我在Dynamics AX 2012中有一個AOT查詢,它由HcmWorker和HcmEmployment表(除其他外)組成。我的問題是,當我創建一個報告(而不是SSRS)或以其他方式使用此查詢時,我只會在HcmEmployment中獲得具有有效時間狀態的員工。AOT查詢中的環境有效時間狀態
我想讓所有在該表中有記錄的員工即使他們沒有當前的工作 - 也只有一次。最佳解決方案是從HcmEmployment獲取當前就業記錄(如果存在),否則記錄最後一個記錄,其起始日期在「now」之前。不過,我可以接受一個解決方案,它與最後一個開始日期一起加入。
我更喜歡一個解決方案,我不需要每次使用它時都添加代碼(即在AOT查詢中解決它)。
我已經嘗試在代碼的查詢中設置validTimeStateDateTimeRange屬性,如果員工有多個職位,會導致重複行。
如果我將HcmEmployment數據源設置爲ExistsJoin和firstOnly,那麼它在視圖中工作,但不在報表上(仍然重複記錄):(在報表上使用此視圖不是一種選擇,因爲用戶需要能夠從HcmEmployment上DefaultDimension過濾
我怎樣才能解決這個問題
如果沒有與用戶過濾器匹配的記錄,則不應打印該員工。如果任何記錄匹配,則該員工應打印一次。你的解決方案需要在每個使用查詢的地方使用很多代碼(很多報告),我希望避免這種情況。但感謝您的建議:) – 2012-04-24 13:02:03
然後採取第二種選擇,使用'ExistsJoin'然後找到seperat選擇剩餘的字段。 – 2012-04-24 13:22:30
如果我使用'ExistsJoin',那麼我仍然會得到重複的記錄。你如何建議我使用'maxof'?我可以看到可以使用的唯一方法是禁用HcmEmployment數據源,並且在遍歷員工時,我可以檢查他們是否有職位(通過使用用戶範圍)。不幸的是,在擁有大量員工的數據庫中,性能會很糟糕。這是一個解決方案,如果我找不到更好的解決方案,我會考慮使用它。 – 2012-04-25 06:47:42