C#-WinForm报表测试

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

WinForm中使用报表开发平台:【Windows8.1】【VisualStudio2013】【Access】【罗斯文2007.accdb】程序运行结果:1.新建C#工程新建一个Windows窗体应用程序,命名为“WinForm报表测试”;将主窗体name属性设置为FormMain,并将Text属性设置为WinForm报表测试。2.添加Access数据库连接在服务器资源管理器→右键选择数据连接→添加链接,打开添加链接对话框,并选择已经下载的“罗斯文2007.accdb”文件,待测试连接成功后,关闭对话框;向窗体中添加一个ReportViewer控件和两个Button控件,并设置相应的Name和Text属性;NameTextreportViewMainbuttonRpProductsReportProductsbuttonRpOrdersReportOrders3.添加数据集在解决方案资源管理器中右键点击方案并选择添加→新建项,向解决方案中添加两个数据集ProductsDataSet和OrdersDataSet。4.添加报表在解决方案资源管理器中右键点击方案并选择添加→新建项,向解决方案中添加两个报表文件ReportProducts.rdlc和ReportOrders.rdlc;两个Report文件的属性中,“复制到输出目录”要选为“始终复制到输出目录”5.设置报表数据源在报表数据中→右键点击数据集→添加数据集→打开报表向导;在报表向导中,分别设置两个报表的数据集属性,如下图6.设计报表在工具箱中将表格工具拖入报表设计器中,并多添加几列,并向表格中每一列设置数据绑定,如下图:7.源代码:1.usingSystem;2.usingSystem.Collections.Generic;3.usingSystem.ComponentModel;4.usingSystem.Data;5.usingSystem.Drawing;6.usingSystem.Linq;7.usingSystem.Text;8.usingSystem.Threading.Tasks;9.usingSystem.Windows.Forms;10.usingSystem.Data.OleDb;11.12.namespaceWinForm报表测试13.{14.publicpartialclassFormMain:Form15.{16.publicFormMain()17.{18.InitializeComponent();19.}20.21.privatevoidFormMain_Load(objectsender,EventArgse)22.{23.24.//this.reportViewerMain.RefreshReport();25.}26.27.privatevoidbuttonRpProducts_Click(objectsender,EventArgse)28.{29.DataSets.ProductsDataSetProductsDS=newDataSets.ProductsDataSet();//定义数据集对象30.stringStrCommand=SELECT*FROM产品;//定义SQL命令31.stringStrRDLCFile=@Reports\ReportProducts.rdlc;//指定报表文件32.stringStrReportDS=RpProductsDataSet;//指定报表使用的报表数据集33.GetReport(ProductsDS,StrCommand,StrRDLCFile,StrReportDS,false);34.}35.36.privatevoidbuttonRpOrders_Click(objectsender,EventArgse)37.{38.DataSets.OrdersDataSetProductsDS=newDataSets.OrdersDataSet();//定义数据集对象39.stringStrCommand=SELECT*FROM订单;//定义SQL命令40.stringStrRDLCFile=@Reports\ReportOrders.rdlc;//指定报表文件41.stringStrReportDS=RpOrdersDataSet;//指定报表使用的报表数据集42.GetReport(ProductsDS,StrCommand,StrRDLCFile,StrReportDS,false);43.}44.///summary45.///获取报表46.////summary47.///paramname=m_DataSet选择使用的数据集/param48.///paramname=StrCommandSQL命令/param49.///paramname=StrReportFile选择使用的RDLC文件/param50.///paramname=StrDataSetRDLC文件中使用的报表数据集/param51.///paramname=isLandScape报表页面是否横向显示/param52.privatevoidGetReport(DataSetm_DataSet,stringStrCommand,stringStrReportFile,stringStrDataSet,boolisLandScape)53.{54./**************************获取数据**************************/55.//定义数据库连接对象56.OleDbConnectionConnection=newOleDbConnection();57.Connection.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DataSource=E:\\visualstudio2013\\C#Project\\WinForm报表测试\\bin\\Debug\\罗斯文2007.accdb;58.//Properties.Settings.Default.罗斯文_2007ConnectionString;//从前面的配置中获取数据库连接字符串59.//定义SQL命令并设置相应属性60.OleDbCommandCommand=newOleDbCommand();61.Command.CommandType=CommandType.Text;62.Command.CommandText=StrCommand;63.Command.Connection=Connection;64.//定义DataAdapter对象65.OleDbDataAdapterDataAdapter=newOleDbDataAdapter(Command);66.using(Connection)67.{68.Connection.Open();69.DataAdapter.Fill(m_DataSet.Tables[0]);70.}71./**************************生成报表**************************/72.reportViewerMain.ProcessingMode=Microsoft.Reporting.WinForms.ProcessingMode.Local;//使用本地报表模式73.reportViewerMain.LocalReport.DataSources.Clear();//清除控件中原有数据74.Microsoft.Reporting.WinForms.LocalReportReportEngine=reportViewerMain.LocalReport;//定义本地报表引擎75.ReportEngine.ReportPath=StrReportFile;//指定使用的报表文件76.ReportEngine.DataSources.Add(newMicrosoft.Reporting.WinForms.ReportDataSource(StrDataSet,m_DataSet.Tables[0]));//加载数据源77./**************************设置预览**************************/78.reportViewerMain.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);//预置打印预览模式79.System.Drawing.Printing.PageSettingsm_PageSet=reportViewerMain.GetPageSettings();//获取页面设置变量80.m_PageSet.Landscape=isLandScape;//页面是否为横向显示81.reportViewerMain.SetPageSettings(m_PageSet);//设置页面82.reportViewerMain.ZoomMode=Microsoft.Reporting.WinForms.ZoomMode.PageWidth;//预置为页宽显示83.reportViewerMain.RefreshReport();//刷新报表84.}85.}86.}

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功