轉(zhuǎn)帖|使用教程|編輯:龔雪|2022-05-09 10:10:35.233|閱讀 223 次
概述:本文主要為大家介紹ActiveReports支持在設(shè)計(jì)時(shí)和運(yùn)行時(shí)設(shè)置報(bào)表數(shù)據(jù)源是如何設(shè)置的,歡迎下載最新版體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
ActiveReports 支持在設(shè)計(jì)時(shí)和運(yùn)行時(shí)設(shè)置報(bào)表數(shù)據(jù)源,本文將重點(diǎn)介紹如何在運(yùn)行時(shí)為區(qū)域報(bào)表和RDL/頁(yè)面報(bào)表設(shè)置報(bào)表數(shù)據(jù)源。
第一步: 在工程中創(chuàng)建一個(gè)名為 SectionReport_DataSource_RunTime.cs 的基于代碼的區(qū)域報(bào)表。
第二步:創(chuàng)建完成之后,會(huì)自動(dòng)打開(kāi)報(bào)表設(shè)計(jì)界面,此時(shí),我們可以在報(bào)表設(shè)計(jì)界面添加文本框(TextBox)等控件用于顯示數(shù)據(jù)源數(shù)據(jù)。與 設(shè)計(jì)時(shí)數(shù)據(jù)源 不同,運(yùn)行時(shí)數(shù)據(jù)源只需直接設(shè)置文本框控件的DataField屬性便可完成與數(shù)據(jù)源的綁定,比如數(shù)據(jù)源包括以下字段:產(chǎn)品編號(hào)、產(chǎn)品名稱、單價(jià)和庫(kù)存量,我們只需在報(bào)表的 detail 區(qū)域添加四個(gè)文本框,并分別設(shè)置其DataField屬性即可。如下圖:
第三步:在運(yùn)行時(shí)通過(guò) DataSource 屬性設(shè)置數(shù)據(jù)源
private void ToolStripMenuItem_Click(object sender, EventArgs e) { SectionReport_DataSource_RunTime sReport1 = new SectionReport_DataSource_RunTime(); sReport1.DataSource = GetDataSource(); sReport1.Run(); viewer1.Document = sReport1.Document; } private DataTable GetDataSource() { DataTable dt = new DataTable(); dt.Columns.Add("產(chǎn)品編號(hào)"); dt.Columns.Add("產(chǎn)品名稱"); dt.Columns.Add("單價(jià)"); dt.Columns.Add("庫(kù)存量"); dt.Rows.Add("A10002", "蘋果", 20, 50); dt.Rows.Add("A15681", "香蕉", 20, 50); dt.Rows.Add("A15681", "菠蘿", 20, 50); return dt; }
第一步: 在工程中創(chuàng)建一個(gè)名為 PageReport_DataSource_RunTime.rdlx 的頁(yè)面報(bào)表。
第二步:從Visual Studio菜單欄中的“視圖”->“其他窗口”->“報(bào)表資源管理器”中打開(kāi)ActiveReports報(bào)表資源管理器,此時(shí),你可以看到“數(shù)據(jù)源”節(jié)點(diǎn),在該節(jié)點(diǎn)上鼠標(biāo)右鍵選擇“添加數(shù)據(jù)源”菜單項(xiàng),在彈出的“報(bào)表數(shù)據(jù)源”對(duì)話框中選擇類型為Dataset Provider,如下圖:
點(diǎn)擊“確定”按鈕,完成數(shù)據(jù)源創(chuàng)建操作,此時(shí),在報(bào)表資源管理器窗口中的“數(shù)據(jù)源”節(jié)點(diǎn)下新增了一個(gè)名為“DataSource1”的子節(jié)點(diǎn),在該節(jié)點(diǎn)上點(diǎn)擊鼠標(biāo)右鍵,選擇“添加數(shù)據(jù)集”菜單項(xiàng),在彈出對(duì)話框的“字段”選項(xiàng)卡中添加產(chǎn)品編號(hào)、產(chǎn)品名稱、單價(jià)和庫(kù)存量四個(gè)字段,然后點(diǎn)擊“確定”按鈕完成數(shù)據(jù)集創(chuàng)建操作。返回到報(bào)表資源管理窗口之后,點(diǎn)擊“DataSet1”節(jié)點(diǎn),可以看到剛才添加的四個(gè)字段。
第三步:在Visual Studio工具箱中的表格控件(Table)拖拽到報(bào)表設(shè)計(jì)界面,然后點(diǎn)擊表格明細(xì)行中的單元格,此時(shí),會(huì)自動(dòng)顯示DataSet1中數(shù)據(jù)集中的全部字段,然后,為每個(gè)單元格指定需要綁定的字段。
第四步:在運(yùn)行時(shí)通過(guò) LocateDataSource 事件加載數(shù)據(jù)源。
private DataTable GetDataSource() { DataTable dt = new DataTable(); dt.Columns.Add("產(chǎn)品編號(hào)"); dt.Columns.Add("產(chǎn)品名稱"); dt.Columns.Add("單價(jià)"); dt.Columns.Add("庫(kù)存量"); dt.Rows.Add("A10002", "蘋果", 20, 50); dt.Rows.Add("A15681", "香蕉", 20, 50); dt.Rows.Add("A15681", "菠蘿", 20, 50); return dt; } void runtime_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args) { if (args.DataSourceName == "DataSource1") { if (args.DataSetName == "DataSet1") { args.Data = GetDataSource(); } } } private void viewer1_Load(object sender, EventArgs e) { GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport (new System.IO.FileInfo("../../PageReport_DataSource_RunTime.rdlx")); GrapeCity.ActiveReports.Document.PageDocument runtime = new GrapeCity.ActiveReports.Document.PageDocument(pageReport); runtime.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(runtime_LocateDataSource); viewer1.LoadDocument(runtime); }
運(yùn)行結(jié)果:
ActiveReports 是一款專注于 .NET 平臺(tái)的報(bào)表控件,全面滿足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平臺(tái)下報(bào)表設(shè)計(jì)和開(kāi)發(fā)工作需求,作為專業(yè)的報(bào)表工具為全球超過(guò) 300,000 開(kāi)發(fā)人員提供了全面的報(bào)表開(kāi)發(fā)服務(wù)。
本文轉(zhuǎn)載自
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: