找回密码
 立即注册

QQ登录

只需一步,快速开始

liuligo

初级会员

6

主题

34

帖子

348

积分

初级会员

积分
348
最新发帖
liuligo
初级会员   /  发表于:2017-8-24 20:22  /   查看:6621  /  回复:16
版主好:
        我想实现多个RDL报表在网页上以PDF合并的形式展现,我的AR版本为9.2
        官网上的参考是要将存在本地的PDF合并的实例,但我现在只是需要展示出来,并不需要保存,代码为如下,请看下红色部分的合并该怎么写?谢谢

            PageReport rpt = new PageReport();
            rpt.Load(new System.IO.FileInfo(Server.MapPath("~") + @"\RPT\" + rptName));
            rpt.Report.ReportParameters[0].DefaultValue.Values.Clear();
            rpt.Report.ReportParameters[0].DefaultValue.Values.Add(taskId);
            try
            {
                rpt.Run();
            }
            catch (GrapeCity.ActiveReports.ReportException eRunReport)
            {
                // Failure running report, just report the error to the user.
                Response.Clear();
                Response.Write("<h1>Error running report:</h1>");
                Response.Write(eRunReport.ToString());
                return;
            }
            PageReport rpt1 = new PageReport();
            rpt1.Load(new System.IO.FileInfo(Server.MapPath("~") + @"\RPT\" + rptName));
            rpt1.Report.ReportParameters[0].DefaultValue.Values.Clear();
            rpt1.Report.ReportParameters[0].DefaultValue.Values.Add(taskId);
            try
            {
                rpt1.Run();
            }
            catch (GrapeCity.ActiveReports.ReportException eRunReport)
            {
                // Failure running report, just report the error to the user.
                Response.Clear();
                Response.Write("<h1>Error running report:</h1>");
                Response.Write(eRunReport.ToString());
                return;
            }

            Response.ContentType = "application/pdf";
            Response.AddHeader("content-disposition", "inline; filename=MyPDF.PDF");
            PdfExport pdf = new PdfExport();
            System.IO.MemoryStream memStream = new System.IO.MemoryStream();
            pdf.Export(rpt.Document, memStream);
            pdf.Export(rpt1.Document, memStream);
            Response.BinaryWrite(memStream.ToArray());
            Response.End();

16 个回复

正序浏览
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-10-30 09:30:06
17#
我明白你这个需求,但是由于报表模板都完全不同,然后每次都打印不同样式的模板,但是报表每次都是需要先加载,然后再打印。你这样的需求,我这边也没有遇到过。我能给出的建议就是,您看看可以通过一个循环,通过点击打印来循环进行报表的渲染,然后循环打印。
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-10-27 19:14:03
16#
每张单据都是对应同一个模板,想实现的功能就是勾选多个单据后,点击打印按钮,可以一次性打出全部的单据
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-10-27 18:44:51
15#
点击打印一次把全部打印出来这是可以的。因为打印的结果是跟预览的结果一样。所以您说的勾选,您只要保证你勾选后显示的就只是您勾选的报表就行,打印就会把您勾选显示的报表全部打印出来了。
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-10-27 18:20:27
14#
如果采取折中的方法去实现,有没有什么好的提议或方案?

在正常业务中其实是存在这样的情况的,部门内有指定人员,批量勾选多个单据,然后点击打印按钮后一次性全部打出(打印按钮只按一次),我想贵方在实施的项目中应该有用户提出过类似的需求吧
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-10-27 16:26:50
13#
这个功能貌似实现不了。
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-10-27 13:35:34
12#
追加提问:
        版主你好,目前有以下需求,不知道能否实现
明细行有多条记录,勾选多条记录后,点击打印按钮,需要将原先单个出力的账票(生成PDF网页格式)合并在一个网页中
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-8-29 09:06:02
11#
谢谢您提出的建议,我们会把您的建议,提给我们的研发人员
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-8-29 08:52:08
10#
本帖最后由 liuligo 于 2017-8-29 08:53 编辑

那只能通过2个模板来做了,控制打印输出哪个模板了

PS:建议你们的软件是否可以在页面报表中追加 当前页可隐藏的属性,便于控制
       我以前用过的另外的帐票软件有类似的功能
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-8-28 15:24:57
9#
您好!
经过我这边多种办法的验证,发现页面报表没办法在后台获取当前页,,所以在后台没办法进行您说的输出页的控制。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部