找回密码
 立即注册

QQ登录

只需一步,快速开始

zysdcyymyw

初级会员

15

主题

50

帖子

223

积分

初级会员

积分
223

微信认证勋章

zysdcyymyw
初级会员   /  发表于:2020-4-27 10:02  /   查看:4696  /  回复:5
1金币
报表中设置了一个订单号参数
现需要实现根据队列中的多个订单编号逐个生成报表并打印(打印完第一个继续打印第二个, 每次传递不同的参数)
打印过程中不显示预览界面, 最好能获得打印的进度

请教下应该如何实现?


最佳答案

查看完整内容

打印的后台设置

5 个回复

正序浏览
zysdcyymyw
初级会员   /  发表于:2020-4-27 14:56:23
5#
预览的时候是能显示单个订单下的这一套报表的, 现在的问题主要是怎样通过 C# 代码控制报表控件逐个生成报表并打印, 例如队列中有三个订单ID
需要实现的功能即:
     1. 使用第一个订单ID作为报表参数渲染第一个订单的整套报表
     2. 打印第一个订单的报表
     3. 根据打印进度(第几页或者百分比)显示提示界面
     4. 第一个订单打印完成
     5. 使用第二个订单ID渲染第二个订单的报表, 如此循环直到队列中的全部订单ID都打印完成时触发事件回报状态
每次渲染和打印的报表都来自同一个报表文件
需要了解的接口:
     1. 获得Viewer是否加载完成(主动查询或回调)
     2. 打印Viewer中的报表
     3. 获得当前正在打印的页数以及当前报表的总页数(主动查询或回调)
     4. 获得打印是否完成(主动查询或回调)
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-27 14:31:50
4#
那你现在报表设计预览展示的时候是这样展示的不,因为报表打印的样式跟预览的结果是一样的,建议你看看预览时候的样式展示。
回复 使用道具 举报
zysdcyymyw
初级会员   /  发表于:2020-4-27 14:25:51
3#
不是每页纸张一个订单, 我这边每个订单对应着一个报表文件, 其中包括多个子页面, 且页数是和订单下的详单数据相关的
现在需要实现的是每个参数值打印一套报表, 在打印完一套之后继续打印下一套
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-27 14:12:56
2#
您好,你的需求是这样的是吧,有多个订单,然后打印的时候想一页纸张打印一个订单的信息,然后连续打印是这样吗?如果是这样
首先你要知道报表打印的结果跟预览展示的结果是一样的,虽然你这里没有预览,但是你设计的报表进行展示的时候应该也符合这个规则。
建议使用页面报表,然后利用页面报表的分组的功能,根据你说的订单号进行分组,就能一页展示一个订单的信息,有多少个订单就会连续打印多少。具体可以参考模板库里的这张报表


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
最佳答案
最佳答案
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-27 10:02:56
来自 6#
打印的后台设置
  1. private void tsbPrint_Click(object sender, EventArgs e)
  2.         {
  3.             string file_name = @"..\..\RdlReport1.rdlx";
  4.             GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name));
  5.             pageReport.Document.LocateDataSource += new LocateDataSourceEventHandler(LocateData);
  6.             pageReport.Document.Printer.DefaultPageSettings.Margins.Bottom = 0;
  7.             pageReport.Document.Printer.DefaultPageSettings.Margins.Left = 0;
  8.             pageReport.Document.Printer.DefaultPageSettings.Margins.Right = 0;
  9.             pageReport.Document.Printer.DefaultPageSettings.Margins.Top = 0;           
  10.             pageReport.Document.Printer.PaperSize.RawKind = 0;
  11.             pageReport.Document.Printer.PaperSize.Width = 14;
  12.             pageReport.Document.Printer.PaperSize.Height = 20;
  13.             pageReport.Document.Printer.PrinterName = "打印机名";
  14.             GrapeCity.ActiveReports.PrintExtension.Print(_document, true, true);

  15.          }
复制代码


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部