我在水晶報表的SQL中寫入SQL 表達式字段,希望是這種效果
<script src="水晶報表的“SQL 表達式字段”能否使用“參數字段”?.files/show_ads.js" type="text/javascript"> </script> <script src="水晶報表的“SQL 表達式字段”能否使用“參數字段”?.files/show_ads.js" type="text/javascript"> </script>
//表意語句
select sum(自段1) from 表 where 自段2(字符)={?參數自段}
可以通過參數自段,傳遞參數來選擇記錄。
現在這種寫法不認,提示語法錯誤。
這種方法是否可行,如可行應該怎樣處理,請幫助!
------------------------------------------------
解決方案:
1、從SQL 表達式字段定義看,只能使用結構化查詢語言 (SQL) 編寫……
SQL 表達式字段
SQL 表達式與公式相似,但它們以結構化查詢語言 (SQL) 編寫,而不是以 Crystal Reports 公式語言編寫。SQL 表達式可以用於向數據庫查詢特定數據集合。可以基於 SQL 表達式字段進行排序、分組和選擇。有關 SQL 表達式的簡介,請參閱Crystal SQL Designer。
2、將“參數字段”合併到“記錄選定公式”中。
不要在每次打開報表時均顯示報表的所有數據,可以創建參數字段提示用戶指定希望查看的數據。爲了減少從數據庫服務器傳輸的數據量,請將這些參數字段直接合併到記錄選定公式中。
一般情況下,參數字段爲用戶提供交互性,用戶響應參數提示以指定希望查看的數據。但是,通過將參數字段直接合併到記錄選定公式中,將不僅提供交互性,而且減少了數據傳輸並改善了性能。
可以通過“選擇專家”或“記錄選定公式工作室”向記錄選定公式添加參數字段。當使用“記錄選定公式工作室”時,可將參數字段和其他任何字段一樣對待。
下面的示例中,您將創建一個參數字段,然後用“選擇專家”將其添加到記錄選定公式。有關設計和創建參數字段的更多細節,請參閱參數字段。
將一個參數字段添加到記錄選定公式
打開示例報表 Group By Intervals.rpt(位於 Feature Examples 示例文件夾)。
花些時間瀏覽“組”樹並留意數據是如何組織的;您還可以在 Crystal Reports 窗口的右下角看到爲此報表返回了 269 條記錄。
注意: 只有在“視圖”菜單中選中“狀態欄”選項纔會看到此數字。
現在單擊“設計”選項卡。
在“視圖”菜單上單擊“字段資源管理器”。
在“字段資源管理器”中,右擊“參數字段”並從快捷菜單中選擇“新建”。出現“創建參數字段”對話框。
在參數“名稱”中鍵入 SalesQuota。
在“提示文本”中鍵入 What was last year's sales quota?(去年的銷售配額是多少?)
單擊“值類型”列表並選擇“數字”。
確保選中“離散值”,然後單擊“確定”。
注意: 您現在已經創建了參數字段。這些過程的其餘部分講述如何用“選擇專家”將參數字段添加到記錄選定公式中。
在“報表”菜單上單擊“選擇專家”。出現“選擇字段”對話框。
選擇客戶.去年銷售額字段並單擊“確定”。出現“選擇專家”。
在客戶.去年銷售額選項卡中單擊下拉列表並選擇“大於”。出現新的下拉列表。
單擊第二個下拉列表並選擇 {?SalesQuota}。
提示: 單擊“顯示公式”按鈕查看新的記錄選定公式,形如:{客戶.去年銷售額} > {?SalesQuota}。您可能未使用“選擇專家”,而是自己在“記錄選定公式編輯器”中創建了此公式。(要查看該編輯器,可打開“公式工作室”並從 Selection Formulas 文件夾中選擇“記錄選定”。)
在“選擇專家”中單擊“確定”。
您現在已將參數字段添加到記錄選定公式中。當您切換到“預覽”模式,或單擊“刷新”按鈕時,您會被提示輸入新的參數值。然後可以輸入代表去年銷售配額的數值。最終報表將只顯示“去年銷售額”超出指定數值的那些客戶。
例如,如果您指定參數爲 40000,那麼報表將只顯示去年的銷售額超過 $40,000 的那些客戶。還要注意到,在 Crystal Reports 窗口的右下角僅爲報表返回了 58 條記錄,而不是您在將參數字段放入選定公式前返回的 270 條記錄。
通過對此報表進行改進,您檢索到需要的所有信息,同時確保了從數據庫服務器傳輸的記錄數目最少。