2010-03-31 62 views
1

我有一個名爲project的共享點列表。這個名單有專欄稱爲工作小時。 然後我也有一個名爲任務的列表。這份名單還有一個名爲小時工作的專欄。任務列表還有一個查找字段,我們從項目列表中選擇項目ID。項目工作時間是任務工作時間的總和

因此對於每個項目我們可以有很多任務。

現在任務列表項是由個人用戶創建的,我必須創建這樣一種機制,即在項目列表中工作的小時數必須始終是該項目任務中工作小時數的總和。

我怎樣才能做到這一點。

回答

5

您需要在任務上放置ItemAdded,ItemUpdated和ItemDeleting(其中ItemDeleted您無法知道該任務屬於哪個項目)事件接收器,並且它們都將調用相同的函數。

該功能將從任務中查找項目列表項。然後,您對任務執行CAML查詢,以使用項目ID和LookupId屬性獲取該項目的所有任務,如下所示: < FieldRef Name ='int_field_name'LookupId ='TRUE'/ > < Value Type = '查找'>值< /值>

對它們進行計算,並使用SystemUpdate(false)將結果寫入項目列表項。巴姆!

+0

但是您可能還需要項目上的Closed標誌,並在接收方中檢查此標誌,因爲您不希望項目小時數無限期地變化 – kerray 2010-04-03 12:11:51

2

您需要SLAM的列表。

或查詢引用項目的所有任務與這樣的ID,然後循環這些任務,總結小時。