如何在FastReport.Net中使用動(dòng)態(tài)查詢
【下載FastReport.Net最新版本】
FastReport.Net構(gòu)建的大多數(shù)用戶報(bào)表從SQL DBMS接收數(shù)據(jù),并希望在他們的報(bào)表中利用Sql。在本文中,我們將了解如何在創(chuàng)建報(bào)表數(shù)據(jù)源時(shí)使用動(dòng)態(tài)查詢。 此類查詢用于繞過SQL語言的語法限制,但是由于次優(yōu)查詢計(jì)劃,這些請求可以執(zhí)行得更長,并且需要以不同方式構(gòu)建安全性。但動(dòng)態(tài)查詢很方便,因此在FastReport中使用它們。 假設(shè)用戶希望在顯示報(bào)表之前過濾數(shù)據(jù)似乎很簡單,但是,如果要更改將過濾數(shù)據(jù)的字段?就可以使用動(dòng)態(tài)查詢,可以向查詢主體添加變量,其中一個(gè)是強(qiáng)加條件的字段名稱,第二個(gè)是該字段的值。
創(chuàng)建報(bào)表,以前,需要?jiǎng)?chuàng)建兩個(gè)報(bào)表參數(shù),添加字符串類型的ParamName和ParamValue?,F(xiàn)在創(chuàng)建與數(shù)據(jù)庫的連接,我們連接到SQL server:
在選擇表格的階段,單擊Add SQL query...按鈕,運(yùn)行查詢向?qū)В?/p>
設(shè)置future表的名稱,然后單擊Next。
手動(dòng)輸入動(dòng)態(tài)查詢,此查詢有兩個(gè)參數(shù):@Param1——字段名稱,@ Param2——字段值,在這里,可以添加第三個(gè)參數(shù)——操作符號(=,in,<,>,<,>),但在本文中設(shè)置兩個(gè)參數(shù),由于查詢表示為文本值,因此我們使用Execute語句來執(zhí)行,單擊“Next”按鈕。
在參數(shù)定義窗口中,使用與SQL查詢中相同的名稱創(chuàng)建兩個(gè),必須指定Expression。對于第一個(gè)參數(shù),這是[ParamName],對于第二個(gè)參數(shù)——[ParamValue],這些是我們之前創(chuàng)建的報(bào)表參數(shù)名稱,單擊“Finish”按鈕,得到了數(shù)據(jù)來源:
將字段從Product表拖到band的數(shù)據(jù)中。
現(xiàn)在,讓我們添加一個(gè)對話框表單,將兩個(gè)參數(shù)從“Data”窗口拖到它,現(xiàn)在我們可以指定字段的名稱及其過濾樣本的值,運(yùn)行報(bào)表。
設(shè)置參數(shù)值,然后單擊“Ok”。
得到了需要的記錄,嘗試在不同的字段上過濾報(bào)表,再次運(yùn)行報(bào)表。
結(jié)果如下圖所示:
因此,可以使用動(dòng)態(tài)查詢來幫助用戶避免不必要的代碼或報(bào)表設(shè)置,如果需要處理大量數(shù)據(jù),則可以通過在接收數(shù)據(jù)的過程中切斷不必要的數(shù)據(jù)來加快報(bào)表生成的時(shí)間。