2015-10-23 49 views
0

我有以下一個一對多的場景:水晶報表 - 獲得第一,第二和linkedTable價值的第三次出現

一個記錄 - >要 - >很多筆記(類型X,Y和Z)

在每個記錄的頁面中,我只需要按時間順序只包括X型的前3個筆記。

我該怎麼做?我嘗試過設置3個子報表,但我無法告訴第二個和第三個子報表哪些筆記已經被選作爲先前事件的一部分。

回答

1

只是對您的解決方案的擴展。

  1. 首先選擇僅​​從數據庫中檢索3條記錄。

  2. 現在在所有3個子報告中按升序或降序排序。

  3. 現在在子報告1中以相同方式在第二個子報告中抑制2和3個記錄抑制1和3個記錄和在子報告3中抑制1和2個記錄。

您可以通過將專業Record Number抑制記錄和抑制條件將

if recordnumber = 1 
then true 
else false 

爲第二和第三記錄方式相同。

+0

我很喜歡這個解決方案的簡單性 - 特別是考慮到非技術人員可能需要在將來更新報告。這個答案很好。 Shawnt關於性能有一個觀點,特別是考慮到我還沒有找到一種方法來製造具有(nolock),極限,偏移或範圍的晶體工具。就我而言,它實際上允許我將引用刪除到低性能表(註釋)上,並且在子報表選擇記錄的方式上更具選擇性。我會建議任何與我的問題類似的用戶考慮性能並選擇最適合其環境的解決方案。 – TaterJuice

1
{@ResetCounter} // Place this in the group/page header where you want to restart the counter 
global numbervar counter := 0; 

Place this in the section suppression formula 
global numbervar counter; 
counter := counter + 1; 
counter > 3; // if true then suppress 

如果您有多個部分壓制,請確保您只增加一次。所以只需在隨後的抑制公式中刪除中間行。

+0

此答案可用作解決方案,但如果非技術人員需要更新報告,將來可能會遇到困難。你的答覆和Siva's都已經作爲工作解決方案進行了測試。謝謝! – TaterJuice

+1

有三個子報表需要查詢每組運行三次。取決於報告的性質,它可能會變得令人難以置信的緩慢,而只是一次性撤回所有數據。 – shawnt00

+0

好點,真實。我希望能夠在報告中使用限制,偏移量或範圍的原因之一。我測試了這兩種方法,但另一種方法允許我完全從主報告中刪除筆記表,同時在從該(巨大)表中提取數據時更具選擇性。我很幸運能收到2個非常適用的答案。我希望我可以將兩者都標記爲:-) – TaterJuice

相關問題