winfrom报表打印怎么做

 时间:2024-11-11 19:38:02

在winform中设计实现RDLC报表的方法和步骤。通常在报表制作中主要涉及到如两个大元素:报表格式设计,报表数据源绑定。

工具/原料

VisualStudio2017

方法/步骤

1、1.首先创建一个窗体Form,然后添加一个报表浏览器ReportViewer,该报表浏览器可直接从工具箱中拖拽。如下图所示:

winfrom报表打印怎么做

2、2.在锪者谧桁新创建的Form窗体同一目录下添加报表,右键–>添加–>新建项,弹出一个“添加新项”窗口,选择Reporting菜单项,然后选择报表,如下图所示:

winfrom报表打印怎么做

3、3.报表藜局腑载添加完成后,双击打开报表Report1.rdlc,如下图所示。点击左侧工具箱可以根据需要添加表格,文本框等,设计报表样式。

winfrom报表打印怎么做

4、4.报表设塥骈橄摆计好后,需要创建报表所需数据集,同样右键–>添加–>新建项,弹出一个“添加新项”窗口。但这次选择的是Reporting菜单项上方的“数据”菜单剐疫柩缓项。然后选择数据集,输入数据集名字,点击确定,完成数据集创建。如下如所示:

winfrom报表打印怎么做

5、5.双击打开新创建的数据集DataSet,空白处右键添加数据表,或者从工具箱中拖拽。

winfrom报表打印怎么做

6、6.选中数据表,右键添加数据列,并输入数据列的名字

winfrom报表打印怎么做

7、7.重新打开报表Report1.rdlc。在设计好的报表中,点击报表中单元格右上角的数据库图标,添加刚刚创建的数据集到报表中。

winfrom报表打印怎么做

8、8.在表格设计中可能会涉及到根据类别分组,如下图所示表格样式,行根据类别分组

winfrom报表打印怎么做

9、9.分组方法:选中机型名称列单元格,右键选择“添加组”–>”行组”–>”父组”,打开Tablix组界面。

winfrom报表打印怎么做

10、10.添加完成后,如下图所示(列的分组与行分组类似。)

winfrom报表打印怎么做

11、11.有些报表可能需要添加报表参数,根据程序动态改变。报表数据中,选择“参数”,右键选择“添加参数”,如下图所示

winfrom报表打印怎么做

12、12.设置参数名称

winfrom报表打印怎么做

13、13.参数设置完成后,工具箱中拖拽一个文本框到报表中,设置文本框名。

winfrom报表打印怎么做

14、14.然后,右键文本框,选择“文本框”属性,打开文本框属性窗口,设置参数名称和参数值。注意,参数名字必须和文本框名字一致!

winfrom报表打印怎么做

15、15饱终柯肢.填充数据源,在给报表填充数据源时,习惯于写一个通用方法。如下是主要代码片段///<summary>///生成图表///</summary>稆糨孝汶;///<paramname="ds_results">数据源</param>///<paramname="rp">报表参数</param>privatevoidgenerateChart(DataSetds_source,ReportParameter[]rp){try{if(ds_results.Tables.Count>0){//重置报表this.reportViewer1.Reset();this.reportViewer1.LocalReport.ReportEmbeddedResource="Report1.rdlc";//指定报表参数for(inti=0;i<rp.Length;i++){this.reportViewer1.LocalReport.SetParameters(newReportParameter[]{rp[i]});//与报表有关问题}//报表数据源ReportDataSourcerds1=newReportDataSource("DataSet1",ds_results.Tables["DataSet1"]);//注意此处数据集名字“DataSet1”必须要和添加的数据集名字相同,否则无法绑定数据源至报表数据集ReportDataSourcerds2=newReportDataSource("DataSet2",ds_results.Tables["DataSet2"]);reportViewer1.LocalReport.DataSources.Clear();reportViewer1.LocalReport.DataSources.Add(rds1);reportViewer1.LocalReport.DataSources.Add(rds2);reportViewer1.RefreshReport();}else{MessageBox.Show("没有数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);//报表数据源ReportDataSourcerds1=newReportDataSource("DataSet1",ds_results.Tables["DataSet1"]);ReportDataSourcerds2=newReportDataSource("DataSet2",ds_results.Tables["DataSet2"]);reportViewer1.LocalReport.DataSources.Clear();reportViewer1.LocalReport.DataSources.Add(rds1);reportViewer1.LocalReport.DataSources.Add(rds2);reportViewer1.RefreshReport();}}catch(Exceptionex){}}//以下为主方法内代码:#region绑定报表参数stringp1="参数1";stringp2="参数2";ReportParameter[]rp=newReportParameter[2];//string[]rptName=newstring[2]{"START_END_TIME","参数名2"};//这里要注意,报表参数和文本框的名字必须一致object[]rptValue=newobject[]{p1,p2};for(inti=0;i<rp.Length;i++){rp[i]=newReportParameter(rptName[i],rptValue[i].ToString());}#endregion//绑定报表参数后,准备数据集数据源DataSet,然后调用上面通用方法generateChart(ds_source,rp);以上,即为报表设计和为报表填充数据的主要步骤。

matlab生成矩阵并引用 MATLAB整数型、浮点数型和字符型数据之间的操作 C#编程实验指导二(矩阵类,运算符重载,抽象类) java中怎样获取静态变量的值 C语言如何输出当前文件名
热门搜索
凤囚凰漫画 金正恩图片 急性荨麻疹图片 蔷薇缭乱漫画 图片小说