机房收费系统合作版——周结账单之报表

前言:

报表这部分在16年8月份结束机房合作项目的时候被遗留下来一直没有解决好,也没有总结,直到年前验收的时候又一次相遇,现在它终于在经过“两年的奔波之后安全着陆”,赶紧收藏起来。

这次弄这个报表花了不少时间,也站在巨人的肩膀上折腾了很久~~~(*^__^*) ,今天在我将要放弃的时候,又坚持了一下,终于弄出来了,还是很开心的。印证了一句话,千万别在黎明前放弃,嘻嘻。

步骤:

1、创建窗体

首先创建相应的窗体,然后在工具箱中把报表控件拖到窗体中。

同时也将日期控件拖到窗体上,最后的界面如下。

2、创建报表

创建后的界面:

右侧解决方案中出现了“Report1.rdlc”这一项,窗体中出现空白报表。

添加表:

在空白报表上单击右键,添加表

出现如下界面:

添加表头和数据:

表添加成功后,再添加对应的表头和数据,列数可以根据自己的需要添加和删除,同时表头也可以根据需要改成中文。

简单效果:

3、报表控件的配置

选中reportViewer控件,点击右上角的小三角,选择上一步创建好的报表“Report1.rdlc”。

这时窗体下面会出现如下三个:

:如果只出现了前两个,则说明选择报表时没有自动选择数据源,这时要自己手动添加对应的数据源,如下。

在选择数据源实例时,要注意不要只选中数据集,而是要选到具体的表,否则在后面的代码部分将点不出对应的Fill()方法。

绑定好之后,进行进一步的配置:

点击在数据集设计器中编辑查看后,出现下面的界面。右击Fill,GetData()进行配置操作。

点击配置后,出现配置向导界面,再点击‘查询生成器’按钮。

出现如下界面,可以根据需要勾选自己所需的字段,同时也可以在sql语句处添加where条件。

4、代码实现

using Microsoft.Reporting.WinForms; //引用
 private void Form1_Load(object sender, EventArgs e)
        {
            this.reportViewer1.RefreshReport();
        }
private void btnCheck_Click(object sender, EventArgs e)
        {
            //获取日期控件的参数
            string strBegin = dtpBeginTime.Value.ToShortDateString();
            string strEnd = dtpEndTime.Value.ToShortDateString();
            //实例化
            ReportDataSource rptDataSource = new ReportDataSource();
            //设置报表数据源名称
            rptDataSource.Name = "DataSet1";
            //设置报表数据源实例
            rptDataSource.Value = T_CheckOutBindingSource;
            //获取或设置嵌入报表的资源的名字
            this.reportViewer1.LocalReport.ReportEmbeddedResource = "report.Report1.rdlc";
            //清空报表
            this.reportViewer1.LocalReport.DataSources.Clear();
            //添加数据源
            this.reportViewer1.LocalReport.DataSources.Add(rptDataSource);
            //传递参数
            this.T_CheckOutTableAdapter.Fill(Co_JF_ChargeSystemDataSet.T_CheckOut,strBegin ,strEnd);
            //刷新报表
            this.reportViewer1.RefreshReport();
        }

5、效果

总结:

在整个过程中,我用的是通过绑定获取数据的方法,代码编写比较简单。但再前期的报表的创建和配置的过程中,我认为容易出错的地方是报表控件的配置过程,还有在sql语句写where条件时,注意前后参数的名称的一致性,各种错误的有可能出现,如:本地报表处理期间出错,尚未为数据源DataSet1提供数据实例等,耐心和细心是比较重要的,同时注意代码编写的过程数据源名称,实例等地方的赋值要与前面的配置时所起的名字对应。



 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 73
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 73
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值