我有一个名为project的sharepoint列表。此列表包含称为小时工作的列。 然后我还有一个名为tasks的列表。此列表还有一个名为hours working的列。任务列表还有一个查找字段,我们从项目列表中选择项目ID。
因此,对于每个项目,我们都可以完成许多任务。
现在任务列表项由个人用户创建,我必须创建这样一种机制,即项目列表中的工作小时数必须始终是该项目任务中工作小时数的总和。
我怎样才能做到这一点。
答案 0 :(得分:5)
您需要将ItemAdded,ItemUpdated和ItemDeleting(使用ItemDeleted,您将无法知道该任务属于哪个项目)事件接收器上的任务,并且所有这些都将调用相同的函数。
该函数将从任务中的查找中获取项目列表项。然后,您可以使用项目的ID和LookupId属性对任务执行CAML查询,以获取该项目的所有任务,如下所示: < FieldRef Name ='int_field_name'LookupId ='TRUE'/>< Value Type ='Lookup'> value< / Value>
对它们进行计算,并使用SystemUpdate(false)将结果写入项目列表项。 BAM!
答案 1 :(得分:2)
您需要SLAM列表。
或查询引用具有此ID的项目的所有任务,然后循环这些任务,总结小时数。