找回密码
 立即注册

QQ登录

只需一步,快速开始

liuligo

初级会员

6

主题

34

帖子

348

积分

初级会员

积分
348
最新发帖
liuligo
初级会员   /  发表于:2017-8-24 20:22  /   查看:7987  /  回复: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-8-25 09:21:58
沙发
您好
您发的代码是PDF导出时的一个合并,跟页面预览时是不一样的
您的需求是想让报表预览显示的时候具有连续性还是怎么的。
如果是这样,我们报表本身有一个连续视图,点击后就可以连续的显示报表的所有信息,不用分页
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-8-25 09:28:46
板凳
是这样的,根据我们的需求流程,在流程1的时候只展示报表1,在流程2的时候需要展示报表1+报表2,请问,您上述说的连续视图能否实现上述 根据条件展示多报表的情况呢?
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-8-25 09:30:05
地板
本帖最后由 liuligo 于 2017-8-25 10:03 编辑

我们现在的需求就是在表单上有一个打印按钮,点击后在新页面自动展示以PDF格式表现的报表样式,请看截图

如果可以达到在程序中控制PDF合并的条件,那么可以做到无论如何类型的报表,都可以通过代码去控制


本帖子中包含更多资源

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

x
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-8-25 10:17:58
5#
KearneyKang 发表于 2017-8-25 09:21
您好
您发的代码是PDF导出时的一个合并,跟页面预览时是不一样的
您的需求是想让报表预览显示的时候具有 ...

是这样的,根据我们的需求流程,在流程1的时候只展示报表1,在流程2的时候需要展示报表1+报表2,请问,您上述说的连续视图能否实现上述 根据条件展示多报表的情况呢?

我们现在的需求就是在表单上有一个打印按钮,点击后在新页面自动展示以PDF格式表现的报表样式
如果可以达到在程序中控制PDF合并的条件,那么可以做到无论如何类型的报表,都可以通过代码去控制
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-8-25 17:18:55
6#
您好
你说的这个问题想要解决
我给您提供两种思路,第一种就是把报表1和报表2的两个模板设计在一张报表上,这样预览就会显示在一起。
第二种办法就是通过子报表来实现,子报表的设计具体参考如下博客里的内容:
http://blog.gcpowertools.com.cn/search.aspx?q=子报表
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-8-28 09:12:28
7#
KearneyKang 发表于 2017-8-25 17:18
您好
你说的这个问题想要解决
我给您提供两种思路,第一种就是把报表1和报表2的两个模板设计在一张报表上 ...

显示在一张预览上的话,能够进行出力页面的控制吗?
比如页面报表我设计了3页,在代码中可以传参进行页面显示的控制吗?
即控制输出哪张页面(页1,页2,页3)

本帖子中包含更多资源

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

x
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-8-28 13:25:23
8#
本帖最后由 liuligo 于 2017-8-28 13:26 编辑

目前帐票内的数据都已经设定完成,使用了子报表的方式,现在只要能控制页面的输出即可达到目的
前面电话联系过,可以在CS端编写控制页面输出的代码,静候版主的回复

最后我是使用了页面报表(不是RDL)+ 子报表(可以绑定多个数据源)方式
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-8-28 15:24:57
9#
您好!
经过我这边多种办法的验证,发现页面报表没办法在后台获取当前页,,所以在后台没办法进行您说的输出页的控制。
回复 使用道具 举报
liuligo
初级会员   /  发表于:2017-8-29 08:52:08
10#
本帖最后由 liuligo 于 2017-8-29 08:53 编辑

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

PS:建议你们的软件是否可以在页面报表中追加 当前页可隐藏的属性,便于控制
       我以前用过的另外的帐票软件有类似的功能
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部