关于多个RDL报表合并成PDF显示的写法
版主好:我想实现多个RDL报表在网页上以PDF合并的形式展现,我的AR版本为9.2
官网上的参考是要将存在本地的PDF合并的实例,但我现在只是需要展示出来,并不需要保存,代码为如下,请看下红色部分的合并该怎么写?谢谢
PageReport rpt = new PageReport();
rpt.Load(new System.IO.FileInfo(Server.MapPath("~") + @"\RPT\" + rptName));
rpt.Report.ReportParameters.DefaultValue.Values.Clear();
rpt.Report.ReportParameters.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.DefaultValue.Values.Clear();
rpt1.Report.ReportParameters.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();
您好
您发的代码是PDF导出时的一个合并,跟页面预览时是不一样的
您的需求是想让报表预览显示的时候具有连续性还是怎么的。
如果是这样,我们报表本身有一个连续视图,点击后就可以连续的显示报表的所有信息,不用分页
是这样的,根据我们的需求流程,在流程1的时候只展示报表1,在流程2的时候需要展示报表1+报表2,请问,您上述说的连续视图能否实现上述 根据条件展示多报表的情况呢? 本帖最后由 liuligo 于 2017-8-25 10:03 编辑
我们现在的需求就是在表单上有一个打印按钮,点击后在新页面自动展示以PDF格式表现的报表样式,请看截图
如果可以达到在程序中控制PDF合并的条件,那么可以做到无论如何类型的报表,都可以通过代码去控制
KearneyKang 发表于 2017-8-25 09:21
您好
您发的代码是PDF导出时的一个合并,跟页面预览时是不一样的
您的需求是想让报表预览显示的时候具有 ...
是这样的,根据我们的需求流程,在流程1的时候只展示报表1,在流程2的时候需要展示报表1+报表2,请问,您上述说的连续视图能否实现上述 根据条件展示多报表的情况呢?
我们现在的需求就是在表单上有一个打印按钮,点击后在新页面自动展示以PDF格式表现的报表样式
如果可以达到在程序中控制PDF合并的条件,那么可以做到无论如何类型的报表,都可以通过代码去控制 您好
你说的这个问题想要解决
我给您提供两种思路,第一种就是把报表1和报表2的两个模板设计在一张报表上,这样预览就会显示在一起。
第二种办法就是通过子报表来实现,子报表的设计具体参考如下博客里的内容:
http://blog.gcpowertools.com.cn/search.aspx?q=子报表 KearneyKang 发表于 2017-8-25 17:18
您好
你说的这个问题想要解决
我给您提供两种思路,第一种就是把报表1和报表2的两个模板设计在一张报表上 ...
显示在一张预览上的话,能够进行出力页面的控制吗?
比如页面报表我设计了3页,在代码中可以传参进行页面显示的控制吗?
即控制输出哪张页面(页1,页2,页3)
本帖最后由 liuligo 于 2017-8-28 13:26 编辑
目前帐票内的数据都已经设定完成,使用了子报表的方式,现在只要能控制页面的输出即可达到目的
前面电话联系过,可以在CS端编写控制页面输出的代码,静候版主的回复:lol
最后我是使用了页面报表(不是RDL)+ 子报表(可以绑定多个数据源)方式
您好!
经过我这边多种办法的验证,发现页面报表没办法在后台获取当前页,,所以在后台没办法进行您说的输出页的控制。 本帖最后由 liuligo 于 2017-8-29 08:53 编辑
那只能通过2个模板来做了,控制打印输出哪个模板了
PS:建议你们的软件是否可以在页面报表中追加 当前页可隐藏的属性,便于控制
我以前用过的另外的帐票软件有类似的功能
页:
[1]
2