zoukankan      html  css  js  c++  java
  • 在InfoPath中利用SharePoint的Lists Web Service向列表提交数据(续一)

    在之前的文档之中已经详细说明了如何在InfoPath中利用SharePoint的Lists Web Service向列表提交数据,做了一个新建项目的Demo,文章链接如下:

    在InfoPath中利用SharePoint的Lists Web Service向列表提交数据

    但是在现实的业务流程中,还会有修改和删除的需求,那么这些该如何操作呢?下面将会一一讲解。

    首先先说一下修改,修改顾名思义是在已有的记录上进行修改,那么第一步就应该取到待修改记录,得有一个Key来关联,一般来说都用ID做Key,弄清楚这个以后我们就可以来建立修改的XML文件了,我的列表还是用之前的两个列表,所以我用记事本建立了一个名为“修改项目”的XML文档,当中的字段名和列表中字段名的Internal Name一一对应,文档内容如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
    2 <Batch OnError="Continue">
    3 <Method ID="2" Cmd="Update">
    4 <Field Name="ID"></Field>
    5 <Field Name="Title"></Field>
    6 <Field Name="Money"></Field>
    7 <Field Name="Month"></Field>
    8 <Field Name="Year"></Field>
    9 </Method>
    10 </Batch>

    与“添加新项目”的XML文档相比多了一个ID字段,这个字段用来关联修改的是哪一条记录,然后接下来的操作和新建几乎一模一样,这里就不详细写出来了。

    好了,修改的差不多了,接下来就是删除了,删除也得知道是哪一条记录,所以也得需要ID,但是是否还需要其他信息呢?当然不需要了,都要删除了,其他的信息都没用了,我就用记事本建立了一个名为“删除项目”的XML文档,文档内容如下:

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <Batch OnError="Continue">
    3 <Method ID="3" Cmd="Delete">
    4 <Field Name="ID"></Field>
    5 </Method>
    6 </Batch>

    接下来调用Lists Web Service删除就可以了。

    但是现在又一个问题,因为所有的Field Name都是英文的,如下图,另外有一些复杂列表的Field的Internal Name并不是所有的用户都能够看懂。

    我们能否将其改成中文的呢?答案是肯定的,只需要修改一下之前的XML文档,以“更新项目”的XML文档为例,只需要为Field节增加一个属性DisplayName,修改后的XML文档如下:

     1 <?xml version="1.0" encoding="GBK"?>
    2 <Batch OnError="Continue">
    3 <Method ID="2" Cmd="Update">
    4 <Field Name="ID" DisplayName="ID"></Field>
    5 <Field Name="Title" DisplayName="标题"></Field>
    6 <Field Name="Money" DisplayName="金额"></Field>
    7 <Field Name="Month" DisplayName="月份"></Field>
    8 <Field Name="Year" DisplayName="年份"></Field>
    9 </Method>
    10 </Batch>

    这里有一个小细节需要注意,就是“UTF-8”编码里面不能直接写中文,会报如下的错误:

    需要改成“GBK”编码格式,然后就可以了,预览一下更新的部分,如下:

    只需要隐藏掉Name那一列就可以了。

    但是我们对一个明细表做操作要做好多数据连接,新建、更新、删除各两个,能不能精简一点呢?当然可以,我们可以将几个XML文档合并成一个,然后在调用Web Service的时候将不同的节赋给updates参数就可以了,我将新建、更新和删除这三个XML文档合并如下:

    View Code
     1 <?xml version="1.0" encoding="GBK"?>
    2 <Management>
    3 <New>
    4 <Batch OnError="Continue">
    5 <Method ID="1" Cmd="New">
    6 <Field Name="Title" DisplayName="标题"></Field>
    7 <Field Name="Money" DisplayName="金额"></Field>
    8 <Field Name="Month" DisplayName="月份"></Field>
    9 <Field Name="Year" DisplayName="年份"></Field>
    10 </Method>
    11 </Batch>
    12 </New>
    13 <Update>
    14 <Batch OnError="Continue">
    15 <Method ID="2" Cmd="Update">
    16 <Field Name="ID" DisplayName="ID"></Field>
    17 <Field Name="Title" DisplayName="标题"></Field>
    18 <Field Name="Money" DisplayName="金额"></Field>
    19 <Field Name="Month" DisplayName="月份"></Field>
    20 <Field Name="Year" DisplayName="年份"></Field>
    21 </Method>
    22 </Batch>
    23 </Update>
    24 <Delete>
    25 <Batch OnError="Continue">
    26 <Method ID="3" Cmd="Delete">
    27 <Field Name="ID" DisplayName="ID"></Field>
    28 </Method>
    29 </Batch>
    30 </Delete>
    31 </Management>

    现在就精简很多了吧,今天就写这么多吧,关于这个问题接下来还会有一些更新。

  • 相关阅读:
    android Service Activity三种交互方式(付源码)
    Android优化
    Android 开发性能优化之SparseArray(三)
    Android 开发性能优化之SparseArray(二)
    ListView封装实现下拉刷新和上拉加载(方式2)(转载)
    Android——谷歌官方下拉刷新控件SwipeRefreshLayout(转)
    Android 6.0
    Android AppCompatActivity去掉actionbar fullScreen
    决心
    Translucent System Bar 的最佳实践
  • 原文地址:https://www.cnblogs.com/leolis/p/2287919.html
Copyright © 2011-2022 走看看