专业编程基础技术教程

网站首页 > 基础教程 正文

用 ActiveReports 实现报表批量打印

ccvgpt 2025-01-14 11:11:31 基础教程 8 ℃

在实际工作中,很多系统都要求具有报表的批量打印功能,如批量打印订单,出料单等。

下面,小编和大家一起学习如何使用 ActiveReports 报表实现批量打印功能。

用 ActiveReports 实现报表批量打印

报表批量打印的特点: 使用报表模板都相同,报表数据根据主键的变化而变化,如订单的批量打印用于一次性打印根据订单ID生成的大量订单报表;

实现批量打印基本操作:

1. 创建 ASP.NET Web 项目

打开 Visual Studio,新建项目 ASP.NET WEB 项目。

2. 创建报表模板

添加完项目之后,添加报表模板,右键单击项目,选择添加项-》Reporting –>ActiveReports10 RDL 报表。

  • 为报表添加查询参数

  • 设置动态绑定数据源

3. 在页面添加循环生成报表代码

3.1 定义5个空 PageReport 对象

public GrapeCity.ActiveReports.PageReport[] report = new GrapeCity.ActiveReports.PageReport[5] { null, null, null, null, null };

public GrapeCity.ActiveReports.Document.PageDocument[] reportD = new GrapeCity.ActiveReports.Document.PageDocument[5] { null, null, null, null, null };

3.2 传递参数,并循环生成 PageReport 实例

public void CreateReport()

{

for (int i = 0; i < 5; i++)

{

// 创建 Container 控件,用户加载 Subreport 控件

report[i] = new GrapeCity.ActiveReports.PageReport(new

System.IO.FileInfo(Server.MapPath("RdlReport1.rdlx")));

report[i].Report.ReportParameters[0].DefaultValue.Values.Add(i.ToString());

report[i].Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(pageDocument_LocateDataSource);

}

}

3.3 动态绑定数据源

private DataTable GetDataSource(int id)

{

string connStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("/NWind_CHS.mdb"));

string productSql = string.Format("SELECT * From 入库单 where 入库单ID = '" + id + "' order by ID ");

DataLayer dl = new DataLayer(connStr, productSql);

return dl.DataSetData.Tables["Products"];

}

4. 预览报表

4.1 添加预览按钮

原理就是,点击按钮一次切换到下一张报表,实现多张报表预览

<asp:Button ID="NextReport" runat="server" Text="下一张报表" Height="30px" Width="203px" OnClick="NextReport_Click" />

4.2 在页面添加打印按钮,执行报表打印

protected void Button1_Click(object sender, EventArgs e)

{

for (int i = 0; i < 3; i++)

{

GrapeCity.ActiveReports.Document.PageDocument rptd = new

GrapeCity.ActiveReports.Document.PageDocument(report[i]);

rptd.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(pageDocument_LocateDataSource);

rptd.Print(true, false, false);

rptd.Printer=""

}

}

报表批量打印和预览到这里就已经实现了,相信大家已经掌握了实现的基本思路。

ActiveReports 报表视频会议

参加视频会议,更快掌握ActiveReports报表工具!资深产品经理将详解 ActiveReports 报表功能、实操案例、技术资源等,您还可携带实际项目场景,和产品经理直接沟通,更快评估试用。

报名视频会议:http://www.gcpowertools.com.cn/products/webinars.aspx

快人一步,免费试用

请通过以下方式联系葡萄城,获取 ActiveReports 的免费试用版:

微信:GrapeCityDT

邮件:marketing.xa@grapecity.com

官网:www.gcpowertools.com.cn

关于葡萄城控件

葡萄城是一家跨国软件研发集团,专注控件领域近30年,是全球最大的控件提供商,也是微软认证的金牌合作伙伴。

最近发表
标签列表