【发布时间】:2012-08-22 12:12:44
【问题描述】:
我正在处理 SP 2010 中的数据视图 Web 部件,以汇总来自子站点的一些信息。这些站点包含分配给用户的任务的项目任务列表。客户希望看到一个汇总,该汇总将根据用户是否分配了任务列出项目。由于一个项目可以有多个任务,因此一个项目可能会显示在汇总中的多个用户下,具体取决于哪些任务分配给了哪些用户。
长话短说,我需要一种方法来选择每个用户不同项目的数量。
xml结构是这样的:
<Rows>
<Row Project="Project 1" TaskID="1" AssignedTo="Worker A" />
<Row Project="Project 1" TaskID="2" AssignedTo="Worker B" />
</Rows>
据此,我预计项目数量如下:
工人 A:1
工人 B:1
我正在尝试以下公式:
count($nodeset[not(@Project=preceding-sibling::Row/@Project) and @AssignedTo = current()/@AssignedTo])
这将为工人 A 返回 1 个项目的计数,但为工人 B 返回 0,因为项目 1 已经为工人 A 计数。
我对 xslt 了解不多,但据我了解,使用 current() 并不是对资源最友好的方法。我试图做 muenchian 分组,但我无法让它工作。不过愿意再试一次。任何建议都会有所帮助,因为我再次对 xslt 感到厌恶。
【问题讨论】:
-
那么,这个 XML 文档的预期输出应该是什么?请编辑问题并提供此重要信息。您只想要计数(确切地说是什么?)还是想要将所有任务分配给给定用户?
-
抱歉,这有点含糊。我只需要为每个用户计算不同的项目,即使项目在用户之间重复。我更新了帖子。
标签: sharepoint xslt dataviewwebpart