【问题标题】:SPD: calculated column with data from another listSPD:包含来自另一个列表的数据的计算列
【发布时间】:2013-10-03 11:25:06
【问题描述】:

我的情况与HERE 描述的情况相同。

我正在尝试使用 Create List ItemUpdate List Item 操作(如答案中建议的那样),但没有任何结果。

有人可以解释一下答案中提到的程序吗?

谢谢,

马塞洛

【问题讨论】:

    标签: sharepoint sharepoint-designer sharepoint-workflow


    【解决方案1】:

    我在那里发布了一个答案,但这是一个副本,以防它被删除或删除:

    lem.mallari 的答案是一个巨大的痛苦,除非您可以假设列表 A 中的金额永远不会改变,因为它不会跟踪项目是否已经添加到总和中。工作流无法遍历 SharePoint 列表,这意味着没有简单的方法来计算多个列表项的总和或平均值。

    实现这一点的正确方法将需要一些开发。 SharePoint 开发人员培训(20102013)实际上可以帮助您了解大部分情况:当在列表 A 和 B 中添加或更改项目时,事件接收器应触发,使用 SharePoint 的 API 遍历列表 A 和平均值,然后更新列表 B 中的所有(或仅受影响的)项目。或者,您可以使用 JavaScript 显示列表 A 中与列表 B 中的项目具有相同名称的所有条目的总和,只要所有数据显示在您的页面上。如果您熟悉 XPath 和 InfoPath,则可以将列表 A 作为辅助数据源添加到列表 B 的表单中,并仅选择列表 A 中适用的项目进行汇总。

    但如果我们谈论的是工作流,这里是“仅工作流”方法。这在 2010 年经过测试并取得成功。使用以下列创建自定义列表 C:

    • 标题(字符串,强制,强制唯一值)
    • TotalItems(整数,强制,默认 0)
    • 求和(数字,小数位随意,必填,默认 0)
    • 平均(计算,=IF(TotalItems=0,0,Sum/TotalItems))(可选)

    将列表 A 和 B 中的 Name 列替换为指向列表 C 的查找列。删除列表 B 中的 Amount 列,而不是包括 Sum 列作为附加列。将以下列添加到列表 A 中,并确保用户无法直接更改它们。这可以通过制作 InfoPath 表单或制作替代查看和编辑表单来加以限制。

    • AmountArchive(数字,与Amount相同,默认0)
    • AmountHasBeenSubmitted(是/否,默认否)

    创建一个工作流以在每次在列表 A 中创建或修改项目时运行。使用这些命令(我使用列表是为了便于阅读;它在格式化为代码时变得很难看):

    • 如果当前项目:金额不等于当前项目:金额存档
      • 将变量:项目计数设置为(数据源:列表 C;来自源的字段:TotalItems;查找列表项目:字段标题;值:当前项目:名称(返回字段为:查找值(作为文本)))
      • 计算变量:ItemCount 加 1(输出到变量:ItemCount)
      • 计算列表 C:Sum(与上述设置类似;确保使用查找值(作为文本)而不是字符串!)减去当前项:AmountArchive(输出到变量:SumWithoutValue)
      • 计算变量:SumWithoutValue 加上当前项目:金额(输出到变量:NewSum)
      • 如果当前项目:AmountHasBeenSubmitted 等于否
        • 将 AmountHasBeenSubmitted 设置为是
        • 更新列表C中的项目(将TotalItems设置为变量:ItemCount;将Sum设置为变量:NewSum;以与Field:Title相同的方式查找List Item;值:当前项:名称(返回字段为:查找值(作为文本))
      • 其他
        • 更新列表 C 中的项目(不对 TotalItems 执行任何操作;使用相同的逻辑将 Sum 设置为 Variable:NewSum)
      • 将金额设置为当前项目:AmountArchive

    【讨论】:

      猜你喜欢
      • 2019-11-21
      • 2018-11-09
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      相关资源
      最近更新 更多