首页 新闻 会员 周边

c# 如何制作报表

-1
悬赏园豆:5 [已解决问题] 解决于 2014-06-05 15:38

以前没做过报表,不知道该怎么做,请各位指点哈呢

余莎莎的主页 余莎莎 | 初学一级 | 园豆:185
提问于:2014-04-30 14:59
< >
分享
最佳答案
0

如果你是用的Visual Studio 2010以上的版本,并且是旗舰版,可以用rdlc报表。直接在添加项目中添加Report就可以使用。

收获园豆:5
酱油能 | 菜鸟二级 |园豆:386 | 2014-05-01 21:33

具体怎么实现呢

余莎莎 | 园豆:185 (初学一级) | 2014-05-03 14:34

@余莎莎: 

假设你要做一个报表是:报价单

报价单一般都是分表头部分和表体部分,你应该可以用两个不同的DataSet把这两部分表示出来。

好了,现在这样做:

1. 添加rdlc报表. VS2010旗舰版里在要加大目录上右键,添加项目,选报表(Report)。这样vS2010会给你一个空的报表。

2. 在报表页面上,在左边的工具栏里选添加Dataset,按照步骤建立DataSet.应该建立2个,一个表头,一个表体。

3. 加好后,像用Word一样,把报表画出来。这个不用教了吧,呵呵。

4. 保存好rdlc文件。好,这样一个报表就搞定了。

你会问,我的报表是有参数的,如不同报价单号的报价单是不同的,怎么办?好问题,继续。

我们可以想一下,刚才的Dataset是为rdlc提供了数据,如果我们通过C#来给这个rdlc提供一个别的类似的dataset会发生什么情况?对数据会改变。我们通过C#来操纵传入Dataset的参数不用教了吧,直接通过sql语句的@parameter传入就行。好,我们来看怎么让C#操纵Dataset给rdlc

1. 新建一个空的页面,拉个ReportViewer控件进去,自己去调一下大小和美观。假设这个控件名字叫: ID="ReportViewer1"

2. 在页面的.cs文件中引入

using Microsoft.Reporting.WebForms;

3. 在页面的.cs文件中创建一个方法ViewReport(), 内容如下:

protected void ViewReport(string quotationCode) { //quotationCode是参数,只用于DataSet,和报表无关。

        ReportViewer1.LocalReport.ReportPath = 'rdlc文件的位置';

        LocalReport localReportQuotation = ReportViewer1.LocalReport;

        DataSet dsHeader = new DataSet("DS_Quotation"); //与RDLC文件中对应的Dataset同名
        dsHeader = getHeader(quotationCode);//getHeader函数自己写吧,不困难
        DataSet dsEntry = new DataSet("DS_Entry");//与RDLC文件中对应的Dataset同名
        dsEntry = getEntry(quotationCode); //getEntry函数自己写吧,不困难

        ReportDataSource rdsHeader = new ReportDataSource();
        rdsHeader.Name = "DS_Header";
        rdsHeader.Value = dsHeader.Tables[0];

        ReportDataSource rdsEntry = new ReportDataSource();
        rdsEntry.Name = "DS_Entry";
        rdsEntry.Value = dsEntry.Tables[0];

        ReportViewer1.LocalReport.DataSources.Clear();
        localReportQuotation.DataSources.Add(rdsHeader);
        localReportQuotation.DataSources.Add(rdsEntry);
        ReportViewer1.LocalReport.Refresh();
    }

4. 在Page_Load事件中调用上面的方法,就行了。

酱油能 | 园豆:386 (菜鸟二级) | 2014-05-04 22:29

@酱油能: 我去试下呢,看行不行 

余莎莎 | 园豆:185 (初学一级) | 2014-05-05 18:18
其他回答(5)
0

报表有很多种,一是用水晶报表等来做,一是自己写代码构建报表,还有一些其他的报表插件也可以

cenlo | 园豆:583 (小虾三级) | 2014-04-30 15:10

哦,谢谢哈,

支持(0) 反对(0) 余莎莎 | 园豆:185 (初学一级) | 2014-05-03 14:33
0

参考水晶报表和微软自带的报表,这两个够用了吧。水晶报表有些东西不好控制,因此推荐学习微软自带的报表。

wongdavid | 园豆:394 (菜鸟二级) | 2014-04-30 15:34

那微软自带的报表怎么做呢

支持(0) 反对(0) 余莎莎 | 园豆:185 (初学一级) | 2014-05-03 14:34

@余莎莎:

 

参考1:http://www.c-sharpcorner.com/UploadFile/a72401/rdlc-report-generation-using-dataset/

参考2:http://www.cnblogs.com/waxdoll/archive/2006/02/25/337713.html 

支持(0) 反对(0) wongdavid | 园豆:394 (菜鸟二级) | 2014-05-03 15:03

@wongdavid: 都是英文的,怎么看呢

支持(0) 反对(0) 余莎莎 | 园豆:185 (初学一级) | 2014-05-05 18:17

@余莎莎: 那你看蜡人张的吧

支持(0) 反对(0) wongdavid | 园豆:394 (菜鸟二级) | 2014-05-06 13:36
0

1.vs里面有这样的控件啊

2.前台JS有  Highchart,你可以上官网看一下

guaiguai1111 | 园豆:192 (初学一级) | 2014-05-06 01:14
0

推荐用Finereport来做,新手上手最快的一款报表了,操作都很简单,学起来很快,而且功能非常强大

kittey | 园豆:220 (菜鸟二级) | 2015-01-19 13:51
0

制作报表的步骤:

  • 创建报表实例
  • 动态添加报表控件和报表区域
  • 修改报表区域和报表控件布局、大小、颜色等
  • 绑定报表数据源

可以看看下面的介绍

zenmshuo | 园豆:287 (菜鸟二级) | 2017-04-13 11:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册