用戶可以使用ActiveReports參數(shù) (Parameters)集合把數(shù)據(jù)提供給報(bào)表中的文本框或圖表,也可以選擇數(shù)據(jù)的一個(gè)子集顯示到報(bào)表的特定區(qū)域,或者是把數(shù)據(jù)從主報(bào)表象子報(bào)表傳遞。用戶可以通過三種方式獲取數(shù)據(jù)的值:提示用戶輸入;從主報(bào)表取值并傳遞給子報(bào)表;從Windows form或者Web form上取值。
1、創(chuàng)建報(bào)表文件
在應(yīng)用程序中創(chuàng)建一個(gè)名為 rptOrderDetails.rdlx 的 ActiveReports 報(bào)表文件,使用的項(xiàng)目模板為 ActiveReports 頁(yè)面報(bào)表,創(chuàng)建完成之后從 VS 的報(bào)表菜單項(xiàng)中選擇轉(zhuǎn)換為連續(xù)頁(yè)面布局(CPL)報(bào)表,將固定頁(yè)面報(bào)表轉(zhuǎn)換為連續(xù)頁(yè)面報(bào)表。
2、打開報(bào)表資源管理器,在參數(shù)節(jié)點(diǎn)中添加以下三個(gè)報(bào)表參數(shù)
3、打開報(bào)表資源管理器,并按照以下信息創(chuàng)建報(bào)表數(shù)據(jù)源
4、 添加數(shù)據(jù)集
在新建的 NWind_CHS 數(shù)據(jù)源上鼠標(biāo)右鍵并選擇添加數(shù)據(jù)集菜單項(xiàng)
4.1、添加數(shù)據(jù)集參數(shù)
說明:在添加參數(shù)設(shè)置值屬性時(shí),可以點(diǎn)擊下拉列表,并選中 表達(dá)式 選項(xiàng),然后在表達(dá)式編輯對(duì)話框中設(shè)置參數(shù)的值
4.2、設(shè)置數(shù)據(jù)集其他屬性
常規(guī)-名稱:Products
查詢-查詢:
SELECT 產(chǎn)品.*,類別.類別名稱,類別.說明 AS 類別說明,類別.圖片 AS 類別圖片, 供應(yīng)商.公司名稱 AS 供應(yīng)商,供應(yīng)商.聯(lián)系人姓名,供應(yīng)商.城市,供應(yīng)商.地址
FROM (供應(yīng)商 INNER JOIN 產(chǎn)品 ON 供應(yīng)商.供應(yīng)商ID = 產(chǎn)品.供應(yīng)商ID) INNER JOIN 類別 ON 產(chǎn)品.類別ID = 類別.類別ID
ORDER BY 產(chǎn)品.類別ID;
設(shè)置Products數(shù)據(jù)集的目的是為用戶提供產(chǎn)品名稱的選擇,如最終運(yùn)行圖的左上角所示,因此我們需要為最開始設(shè)置的報(bào)表參數(shù)中的參數(shù)1設(shè)置可選值,右鍵點(diǎn)擊報(bào)表參數(shù)1,修改,選擇可選值標(biāo)簽,設(shè)置信息:
查詢-查詢:
SELECT
訂單.訂單ID, 訂單.客戶ID, 訂單.訂購(gòu)日期, 產(chǎn)品.產(chǎn)品名稱,訂單明細(xì).數(shù)量, 訂單明細(xì).單價(jià), 訂單明細(xì).折扣
from
(( 訂單
inner join
訂單明細(xì)
on
訂單.訂單ID = 訂單明細(xì).訂單ID )
inner join
產(chǎn)品
on
訂單明細(xì).產(chǎn)品ID = 產(chǎn)品.產(chǎn)品ID )
where
(訂單明細(xì).產(chǎn)品ID
in
(?)
or
-1
in
(?))
and
DateDiff("d",?,訂購(gòu)日期) > 0
and
DateDiff("d",?,訂購(gòu)日期) < 0
ORDER BY
訂單.訂單ID;
說明:在以上查詢語(yǔ)句 Where 條件中使用了參數(shù)查詢,參數(shù)使用的是 ? 占位,? 的出現(xiàn)順序需要與數(shù)據(jù)集參數(shù)中定義的參數(shù)順序一致。同時(shí), ? 是 Access 中的查詢參數(shù)設(shè)置方式, SQL Server 中需要使用以 @ 開始的字符串作為參數(shù)。
5、設(shè)計(jì)報(bào)表界面
從 Visual Studio 工具箱中將 Table 控件添加到報(bào)表設(shè)計(jì)界面,并將 OrderDetails 數(shù)據(jù)集中的字段拖拽到 Table 的相應(yīng)列中,得到的設(shè)計(jì)界面如下:
6、運(yùn)行程序
通過 F5 鍵運(yùn)行程序,在參數(shù)面板中輸入值之后,點(diǎn)擊查看報(bào)表按鈕,將得到以下結(jié)果:
7、自定義報(bào)表參數(shù)面板
ActiveReports 報(bào)表處理支持內(nèi)置的報(bào)表參數(shù)面板,您還可以提供獨(dú)立于報(bào)表Viewer控件的自定義報(bào)表參數(shù)面板,類似的實(shí)現(xiàn)效果如下:
然后在“運(yùn)行報(bào)表”按鈕的Click事件中實(shí)現(xiàn)報(bào)表參數(shù)的設(shè)置并運(yùn)行報(bào)表:
protected void btnRun_Click(object sender, EventArgs e)
{
GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("PageReport1.rdlx")));
report1.Report.ReportParameters[0].DefaultValue.Values.Add(txtParam.Text);
?
WebViewer1.Report = report1;
}
源碼下載地址:
http://www.gcpowertools.com.cn/products/activereports_demo.htm
ActiveReports 報(bào)表應(yīng)用教程 (8)---交互式報(bào)表之動(dòng)態(tài)過濾
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
