winfrom报表打印怎么做

Visual Studio 2017

方式/步调

  1. 1

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

    adaf2edda3cc7cd9f889f4d33601213fb80e9110.jpg
  2. 2

    2.在新建立的Form窗体统一目次下添加报表,右键–>添加–>新建项,弹出一个“添加新项”窗口,选择Reporting菜单项,然后选择报表,如下图所示:

    902397dda144ad34302b478ddfa20cf431ad8520.jpg
  3. 3

    3.报表添加完当作后,双击打开报表Report1.rdlc,如下图所示。点击左侧东西箱可以按照需要添加表格,文本框等,设计报表样式。

    a8014c086e061d9516c1f73274f40ad162d9ca31.jpg
  4. 4

    4.报表设计好后,需要建立报表所需数据集,同样右键–>添加–>新建项,弹出一个“添加新项”窗口。但此次选择的是Reporting菜单项上方的“数据”菜单项。然后选择数据集,输入数据集名字,点击确定,完当作数据集建立。如下如所示:

    f3d3572c11dfa9ecafa9961d6dd0f703918fc131.jpg
  5. 5

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

    9e3df8dcd100baa10df787b14810b912c9fc2ee5.jpg
  6. 6

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

    242dd42a2834349b538aae8fc6ea15ce36d3be28.jpg
  7. 7

    7.从头打开报表Report1.rdlc。在设计好的报表中,点击报表中单位格右上角的数据库图标,添加方才建立的数据集到报表中。

    cb8065380cd79123f168547ea2345982b2b78034.jpg
  8. 8

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

    023b5bb5c9ea15ce65f82303b9003af33a87b2a2.jpg
  9. 9

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

    810a19d8bc3eb135990277b1a91ea8d3fc1f44f7.jpg
  10. 10

    10.添加完当作后,如下图所示 (列的分组与行分组近似。)

    e7cd7b899e510fb3ee57b49dd633c895d1430c6a.jpg
  11. 11

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

    d4628535e5dde71114ae80fca8efce1b9d1661b8.jpg
  12. 12

    12.设置参数名称 

    5366d0160924ab184d10223d3afae6cd7b890bb2.jpg
  13. 13

    13.参数设置完当作后,东西箱中拖拽一个文本框到报表中,设置文本框名。 

    b999a9014c086e0607ebfc410d087bf40ad1cb7d.jpg
  14. 14

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

    aec379310a55b3191d0f417f4ca98226cefc17c2.jpg
  15. 15

    15.填凑数据源 ,在给报表填凑数据源时,习惯于写一个通用方式。如下是本家儿要代码片段

    ///

            /// 生当作图表

            ///

            /// 数据源

            /// 报表参数

            private void generateChart( DataSet ds_source, ReportParameter[] rp)

            {

                try

                {

                    if (ds_results.Tables.Count > 0)

                    {

                            //重置报表

                            this.reportViewer1.Reset();

                            this.reportViewer1.LocalReport.ReportEmbeddedResource = "Report1.rdlc";


                            //指心猿意马报表参数

                            for (int i = 0; i < rp.Length; i++)

                            {

                                this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp[i] });//与报表有关问题

                            }


                        //报表数据源

                        ReportDataSource rds1 = new ReportDataSource("DataSet1", ds_results.Tables["DataSet1"]);//注重此处数据集名字“DataSet1”必需要和添加的数据集名字不异,不然无法绑定命据源至报表数据集

                        ReportDataSource rds2= new ReportDataSource("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);


                         //报表数据源

                        ReportDataSource rds1 = new ReportDataSource("DataSet1", ds_results.Tables["DataSet1"]);

                        ReportDataSource rds2= new ReportDataSource("DataSet2", ds_results.Tables["DataSet2"]);                 


                        reportViewer1.LocalReport.DataSources.Clear();

                        reportViewer1.LocalReport.DataSources.Add(rds1 );

                        reportViewer1.LocalReport.DataSources.Add(rds2 );                   


                        reportViewer1.RefreshReport();

                    }

                }

                catch (Exception ex)

                {


                }

            }


    //以下为本家儿方式内代码:

                 #region 绑心猿意马报表参数

                    string p1 = "参数1";

                    string p2="参数2";


                    ReportParameter[] rp = new ReportParameter[2];//

                    string[] rptName = new string[2] { "START_END_TIME", "参数名2" };//这里要注重,报表参数和文本框的名字必需一致

                    object[] rptValue = new object[] { p1, p2};

                    for (int i = 0; i < rp.Length; i++)

                    {

                        rp[i] = new ReportParameter(rptName[i], rptValue[i].ToString());

                    }


                    #endregion


    //绑心猿意马报表参数后,筹办数据集数据源DataSet,然后挪用上面通用方式

    generateChart(ds_source,rp);

    以上,即为报表设计和为报表填凑数据的本家儿要步调。

  • 发表于 2019-10-22 17:00
  • 阅读 ( 771 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具