找回密码
 立即注册

QQ登录

只需一步,快速开始

Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-25 17:17:58
11#
grape_puppet 发表于 2016-5-25 16:59
附件为测试程序,请根据测试程序测试子报表的页眉页脚问题。

好的,正在验证
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-5-27 10:44:43
12#

郭工,找到解决办法了吗,我们这边比较急
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-27 11:21:47
13#
本帖最后由 Lenka.Guo 于 2016-5-27 11:26 编辑
grape_puppet 发表于 2016-5-27 10:44
郭工,找到解决办法了吗,我们这边比较急

抱歉给您带来不便。。这两天一直在试各种方法,将页眉信息可以显示到表头部分或者使用TextBox 显示到表格上方可以解决。

页码问题由于1,是动态数据加载;2. 是表尾的数据只需要显示一次,所以这个还在找解决方案。


回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-27 12:16:27
14#
Lenka.Guo 发表于 2016-5-27 11:21
抱歉给您带来不便。。这两天一直在试各种方法,将页眉信息可以显示到表头部分或者使用TextBox 显示到表格 ...

Hi,

我因为子报表主要用Table控件制作的,所以我按照以下步骤实现展示页码;
1. 页码信息显示到 Table的表尾行;


2. 设置表尾 的RepeateOnNewPage 属性为True



3. 因为其他表尾行的信息,只有在最后一页显示,所以设置表尾行的Visibility 属性为:=IIF( Globals!PageNumber = Globals!TotalPages,false,true)



Demo:




本帖子中包含更多资源

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

x
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-5-30 09:19:31
15#
Lenka.Guo 发表于 2016-5-27 12:16
Hi,

我因为子报表主要用Table控件制作的,所以我按照以下步骤实现展示页码;

1.现在的需求是一张单据如果数据量过多,表格里的数据换页,页码展示应该是1/2,2/2;第二张单据的页码重新开始1/2,2/2.
2.页码放在table的表尾,在2/2页的table里的数据如果占不满页面,此时的页码位置是根据数据多少变动的,而没有展示到最下方。
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-30 15:51:50
16#
本帖最后由 Lenka.Guo 于 2016-5-30 15:52 编辑
grape_puppet 发表于 2016-5-30 09:19
1.现在的需求是一张单据如果数据量过多,表格里的数据换页,页码展示应该是1/2,2/2;第二张单据的页码重 ...

您好
1, 给您的示例,页码是否正常显示?

2. 关于位置问题,因为这个涉及到子报表,所以暂有的解决方法是放置到表尾部分,如果放置在其他控件内,可能无法保证页码在每一页都显示。

如果在表尾无法满足您的需求,可能需要重新实现一种方法实现批量打印预览问题。

回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-5-30 17:22:40
17#
Lenka.Guo 发表于 2016-5-30 15:51
您好
1, 给您的示例,页码是否正常显示?

现在的页码显示不对,每页都是1/1
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-30 17:48:26
18#
grape_puppet 发表于 2016-5-30 17:22
现在的页码显示不对,每页都是1/1

好的,了解,谢谢您的反馈,我再寻找其他解决方法,并将这个问题反馈给产品组,看产品组是否有更有效的解决方案。
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-31 19:24:03
19#
Lenka.Guo 发表于 2016-5-30 17:48
好的,了解,谢谢您的反馈,我再寻找其他解决方法,并将这个问题反馈给产品组,看产品组是否有更有效的解 ...

Hi,

因为您采用子报表控件的目的是,实现批量打印和批量报表预览,但由于子报表控件在显示页码方面有很大的限制,所以采用了另一种方法来实现批量于看和打印:

1. 采用循环生成报表(根据传入的参数,生成5个报表):
  1. public void CreateReport()
  2.         {
  3.             for (int i = 0; i < 5; i++)
  4.             {
  5.                 // 创建 Container 控件,用户加载 Subreport 控件
  6.                 report[i] = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("RdlReport1.rdlx")));

  7.                 report[i].Report.ReportParameters[0].DefaultValue.Values.Add(i.ToString());
  8.                 report[i].Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(pageDocument_LocateDataSource);


  9.             }

  10.         }
复制代码



2. 在页面中添加下一张报表按钮,分别加载报表

  1.   protected void NextReport_Click(object sender, EventArgs e)
  2.         {
  3.             int index = (int)Session["aa"];

  4.             this.WebViewer1.Report = report[index];

  5.             Session["aa"] = ++index;

  6.             if (index == 5)
  7.                 Session["aa"] = 0;


  8.         }
复制代码



3. 也可以将几个报表合并成一个PDF ,并在浏览器打开,实现预览的效果:
  1.   for (int i = 0; i < 5; i++)
  2.             {
  3.                 PageDocument rptd = new GrapeCity.ActiveReports.Document.PageDocument(report[i]);
  4.                 rptd.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(pageDocument_LocateDataSource);
  5.                 // Export the report in PDF format.
  6.                 GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport PdfExport1 = new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
  7.                 if (i == 0)
  8.                 { PdfExport1.Export(rptd, exportFileAfter); }

  9.                 if (i == 1)
  10.                 {

  11.                     GrapeCity.ActiveReports.Export.Pdf.Page.Settings settings = new GrapeCity.ActiveReports.Export.Pdf.Page.Settings();
  12.                     settings.DocumentToAddBeforeReport = exportFileAfter;
  13.                     FileInfo myFile1 = new FileInfo(exportFileAfter1);
  14.                     PdfRenderingExtension pdfRenderingExtension = new PdfRenderingExtension();
  15.                     FileStreamProvider _outputProvider = new FileStreamProvider(myFile1.Directory, myFile1.Name);
  16.                     rptd.Render(pdfRenderingExtension, _outputProvider, settings);
复制代码




Demo:

本帖子中包含更多资源

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

x
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-6-1 10:48:19
20#
Lenka.Guo 发表于 2016-5-31 19:24
Hi,

因为您采用子报表控件的目的是,实现批量打印和批量报表预览,但由于子报表控件在显示页码方面有 ...

点打印怎么弹出打印机选项,现在点打印直接就打了;我设置了print的参数为true后,点打印后状态栏一直读条页面没反应
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部