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 プロジェクトのカウントを返しますが、作業者 A に対してプロジェクト 1 が既にカウントされているため、作業者 B に対しては 0 を返します。
私は xslt についてあまり知りませんが、私が理解していることから、 current() を使用することは、最もリソースに優しい方法ではありません。Muenchian のグループ化を試みましたが、機能させることができませんでした。しかし、もう一度やり直してください。繰り返しますが、私は xslt に悪臭を放っています。