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>

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

  • 相关阅读:
    【今日CV 视觉论文速览】 19 Nov 2018
    【numpy求和】numpy.sum()求和
    【今日CV 视觉论文速览】16 Nov 2018
    【今日CV 视觉论文速览】15 Nov 2018
    poj 2454 Jersey Politics 随机化
    poj 3318 Matrix Multiplication 随机化算法
    hdu 3400 Line belt 三分法
    poj 3301 Texas Trip 三分法
    poj 2976 Dropping tests 0/1分数规划
    poj 3440 Coin Toss 概率问题
  • 原文地址:https://www.cnblogs.com/leolis/p/2287919.html
Copyright © 2011-2022 走看看