- 在Crystal Reports下數據庫 - >數據庫專家都存儲過程(稱爲表)添加到 「選定的表」 部分。點擊「確定」。然後Crystal將嘗試在兩個表格之間建立鏈接。點擊「刪除所有鏈接」。點擊後面的所有鏈接警告中的「確定」。
- 現在使用MyReportStoredProcedure中的列生成報告
- 運行您的報告。你將不會得到提示輸入參數。所有可能的數據將顯示在報告中。
*現在可以將參數鏈接到數據。 *
- 一旦打開報告,Crystal報告將立即執行兩個存儲過程。
- Crystal報表不會根據參數(如報表服務(SSRS))提取數據。
- 在收集完所有數據後,Crystal會根據您選擇的參數值過濾數據。
運行MyReportStoredProcedure返回如下:
1 Stop XX 7A [columns5] [columns6] [columns7] [columns8]
1 Gone CC 88 [columns5] [columns6] [columns7] [columns8]
1 Gone CC 88 [columns5] [columns6] [columns7] [columns8]
2 Nice XX C3 [columns5] [columns6] [columns7] [columns8]
3 Loop EE C3 [columns5] [columns6] [columns7] [columns8]
3 Loop DD C3 [columns5] [columns6] [columns7] [columns8]
3 Loop DD C3 [columns5] [columns6] [columns7] [columns8]
...
... 700,000,000 Additional records
...
運行MyCrystalParameterList返回如下:
1 Stop XX 7A
1 Gone CC 88
2 Nice XX C3
3 Loop EE C3
3 Loop DD C3
>> A distinct list of values only 5 rows <<
*關聯的參數數據列相應的報告列*
現在將參數Column1鏈接到報告欄1。此鏈接將主要報告值(MyReportStoredProcedure)與參數值(MyCrystalParameterList)綁定。
在數據庫下的Crystal Reports - >數據庫專家中單擊名爲Links的選項卡。
在本節中,將表/列鏈接在一起。您可以在上面的步驟中完成此操作,但爲了更好地理解,我希望您在顯示兩個存儲過程(表)返回的數據之後執行此操作。
*創建級聯參數*
在Crystal Reports中找到字段資源管理器面板。通常它在屏幕的右側。
- 現在右鍵單擊[參數字段],選擇[新建]
- 名稱參數
- 離開類型[字符串]
- 集 「值列表」 設置爲[動態]
- [新]
- 在徑向按鈕下方的表格中,單擊「值」字樣下的第一行
- 顯示兩個表格的下拉列表將顯示播放([MyReportStoredProcedure和MyCrystalParameterList])
- 從MyCrystalParameterList存儲過程(表)中選擇第一個參數的列。
- 您的列現在列在第一行。
- 現在單擊下一行並從參數存儲過程(表)中選擇下一列。
- 重複上述操作,直到您所需的所有參數都顯示在表格行中。
- 在此表的右側,您會看到一個名爲「參數」的列,每列都有該列中的文本。
- 單擊「參數」列中的每個字段,並在與您的參數存儲過程(表)列對應的Crystal報表中創建一個參數。
- 單擊「確定」關閉「創建新參數」對話框。
如果您運行報告,系統會提示您爲參數選擇值,參數將列出可用值。
所有數據將在報告中返回!!!我們沒有完成。
*最後一步(最後!)*
告訴Crystal報表過濾基於參數值的報表數據。
在Crystal Reports,請單擊報告 - >選擇專家 - >錄製
注意: 您可以爲每個參數製作單個存儲過程。只需使用Database Expert將它們添加到報告中即可。
在我的示例中,我製作了一個存儲過程,用於抽取所有可能的參數組合。
不要調整您的註冊設置和使水晶報告閱讀超過1000條記錄!
您的報告存儲過程可以返回10億條記錄,但您的參數列表不應超過1000個唯一值。
您不能從報表存儲過程生成參數列表,因爲水晶報表只會查看前1000條記錄。
您的參數列表必須是一個獨立的存儲過程,它可以提取不同的值。
*你有基礎,現在建立其餘的。祝你好運。 *
呵呵,在我使用CR後的七個月裏,我學到了一些關於多表導入的知識 - 所以我用自己的設備糾正了這種情況。我很欣賞這一切。 – ryebr3ad
根據Crystal Reports版本的不同,我已閱讀Crystal將僅編譯基於前200或1000行的列表。我遇到了拉昇銷售代表不全的問題,因爲Crystal在初始選擇後編譯了唯一列表。所以,我的解決方法是使用靜態列表。好處是報告標準列表更快地上傳,但列表必須保留。 – Sun
我還沒有得到一個動態值列表。動態值填充當且僅當我使用報表參數。只要我包含命令參數,Crystal就不會顯示報告參數的值列表。 – Sun