如何在FastReport.Net報(bào)表設(shè)計(jì)器中創(chuàng)建內(nèi)部報(bào)表數(shù)據(jù)源時(shí)使用SQL查詢
創(chuàng)建SQL數(shù)據(jù)庫連接時(shí),可以指定查詢以選擇已過濾或組合的數(shù)據(jù)。數(shù)據(jù)源創(chuàng)建向?qū)У臉?biāo)準(zhǔn)工具還允許您在SQL查詢中包含參數(shù)。在這種情況下,參數(shù)的指定將取決于進(jìn)行連接的DBMS的類型。例如,對于MS SQL,查詢中的參數(shù)具有前綴@。而對于Access數(shù)據(jù)庫而不是參數(shù)符號“?”被指出。如果有多個(gè)參數(shù),它們將根據(jù)參數(shù)列表中的順序插入到請求中。
假設(shè)我們已經(jīng)創(chuàng)建了一個(gè)到MS SQL數(shù)據(jù)庫的連接字符串。下一步是選擇表格:
在此階段,我們可以使用Add SQL query ...按鈕創(chuàng)建SQL查詢。將來查詢的結(jié)果將保存在表中。需要設(shè)置查詢對象的名稱:
然后,寫下請求文本:
當(dāng)然,在這里你可以使用可視化查詢設(shè)計(jì)器,但現(xiàn)在我們不需要它,演示的目的是查詢。
我們在請求條件中指定了一個(gè)參數(shù)。在下一步中,您需要創(chuàng)建具有相同名稱的參數(shù)。
由于我們只是演示如何使用參數(shù),我們只需設(shè)置默認(rèn)值:
接下來,選擇所需的列。
就這樣。表格準(zhǔn)備好了。
請記住,建議根據(jù)SQL的所有規(guī)則編寫查詢,并指示方案,并且可能使用引號中的名稱。以下是有效的postgresql數(shù)據(jù)庫查詢示例:
SELECT * FROM public."Users" WHERE "Users"."Name"= @Name
但是,除了參數(shù)化查詢,我們還可以使用動態(tài)查詢。這些是我們以文本形式形成的請求,然后我們執(zhí)行它們。此類查詢允許使用報(bào)告變量替換表格或參數(shù)的名稱,或“where”子句的一部分——無論需要什么都行。它看起來像這樣:
但那還不是全部。您還可以在查詢中使用存儲的函數(shù)和存儲過程。以下是使用該功能的示例:
函數(shù)中的參數(shù)在括號中傳遞,以逗號分隔。
使用存儲過程的示例:
存儲過程中的參數(shù)后跟一個(gè)以逗號分隔的過程名稱。
通過這種方式,您可以擴(kuò)展數(shù)據(jù)生成功能,以便在報(bào)告中不執(zhí)行此操作。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 | 在線客服