美文网首页.NET
RDLC系列(一)ASP.NET RDLC 报表自定义数据源

RDLC系列(一)ASP.NET RDLC 报表自定义数据源

作者: 疯子哦 | 来源:发表于2017-02-27 13:41 被阅读28次

最近一段时间开发ERP系统中要用到不少报表打印,在网上找了一圈发现想些好用的报表控件大部分要收费,一些面免费要么不好用要么IE8不兼容,最后还是用了微软自带的RDLC报表,把自己遇到的坑和技巧整理分享出来。

一般Visaul Studio上新建的的EDLC报表文件之后数据源都是按照向导直接连接数据库,自动生成数据源和数据集的,但是遇到一些复杂的就不够灵活。

一、新建报表

1.新建一个空白的报表如下

2.打开新建好的空报表文件,选择报表文件右键选择【打开方式】→【XML(文本)编辑】打开 在Page节点下面添加DataSources 和DataSets 节点

1)空报表文件

2)添加节点后

DataSources:数据源名称标签,每次加一个新的数据源需要在 DataSources 标签下新标签DataSource

DataSets:数据实体集合,每次新添加一个数据源后在DataSets 对应添加新的DataSet节点,DataSourceName和DataSetName 要和DataSource 的Name 名称一致。Fields 下面是添加每个实体对应的字段

3.报表DataSource和DataSet建好后可以看到刚才添加的数据源和数据集

4.设计好需要额报表,填充刚才数据集里对应的字段

5.后台数据源赋值代码

publicActionResult PrintProduct()

{stringreportPath = Server.MapPath("~/Reports/订单信息.rdlc");varlocalReport =newLocalReport { ReportPath =reportPath };

List productOrders =newList();for(inti =0; i <20; i++)

{

ProductOrder productOrder=newProductOrder

{

SKUDetail= $"A00300000{i}",

Quantity=i,

DeliveryDate= DateTime.Now.AddDays(i).ToString("yyyy-MM-dd HH:mm:ss"),

DeliveryDateActual= DateTime.Now.AddDays(i+1).ToString("yyyy-MM-dd HH:mm:ss")

};

productOrders.Add(productOrder);

}vardataSource =newReportDataSource("ProductOrderDs", productOrders);

localReport.DataSources.Add(dataSource);vartype ="PDF";stringreportType =type;stringmimeType;stringencoding;stringfileNameExtension;vardeviceInfo = $"{type}";

Warning[] warnings;string[] streams;varrenderedBytes =localReport.Render(

reportType,

deviceInfo,outmimeType,outencoding,outfileNameExtension,outstreams,outwarnings);returnFile(renderedBytes, mimeType);

}

实体代码:

publicclassProductOrder

{publicGuid ProductOrderId {get;set; }publicstringSKUDetail {get;set; }publicintQuantity {get;set; }publicstringDeliveryDate {get;set; }publicstringDeliveryDateActual {get;set; }publicstringBak {get;set; }

}

注意:报表文件DataSet中的用到的字段必须和实体字段对应,代码中DataSource 中名字必须和报表中的一样

最后预览如下:

出处:乐学网

相关文章

  • RDLC系列(一)ASP.NET RDLC 报表自定义数据源

    最近一段时间开发ERP系统中要用到不少报表打印,在网上找了一圈发现想些好用的报表控件大部分要收费,一些面免费要么不...

  • 在Winform开发中使用Grid++报表

    之前一直使用各种报表工具,如RDLC、DevExpress套件的XtraReport报表,在之前一些随笔也有介绍,...

  • RDLC发布出错整理

    WinForm客户端软件开发时,使用rdlc做报表,并且使用ReportViewer呈现报表时,开发者的机器运行正...

  • RDLC报表控件一 绑定数据源

    一 绑定数据库资源 二 运行时动态绑定资源 5. 写一个返回DataTable的函数,返回的DataTable即...

  • RDLC报表控件二 子报表

    首先新建一个子报表,新建数据集,完成所需的数据绑定等工作。图1 新建一个主报表,在主报表中添加subreport控...

  • VS2015 使用RDLC报表[转载]

    安装VS2015,一开始我只是勾选了WEB开发者选项, 发现不支持RDLC报表, 然后就去百度了, 先选择了 通用...

  • C#之VS自带RDLC报表学习

    说到报表,大家肯定会想到和VS结合的比较紧密的是水晶报表了。水晶报表做出来的东西很漂亮。接着可能就是fastrep...

  • grafana + influxdb + telegraf ,

    安装3个软件 1.Grafana安装 grafana , 访问各类数据源 , 自定义报表、显示图表等等 , 用于提...

  • BIRT报表

    1、添加数据源相关依赖包 2、报表开发设计 调出报表相关工具 数据源配置 创建报表显示数据 编写sql 如选择da...

  • 金蝶云苍穹报表开发

    创建报表:通过模板创建报表模板 选择报表列表配置查询数据源属性 给报表列表添加字段 保存管理员进行用户授权操作后当...

网友评论

    本文标题:RDLC系列(一)ASP.NET RDLC 报表自定义数据源

    本文链接:https://www.haomeiwen.com/subject/ltszwttx.html