【问题标题】:Only page one printing只打印第一页
【发布时间】:2012-06-19 17:01:29
【问题描述】:

我正在使用 LocalReport.Render 技术从 Windows 窗体应用程序打印报告,如下所述:http://msdn.microsoft.com/en-us/library/ms252172.aspx

它有效,但只打印第一页。我没有在报告页面上使用任何页眉或页脚,仅使用正文。没有子关系,没有子报表。只是一个非常简单的数据对象列表。

我正在做这样的事情来将数据源加载到报告中:

List<mysimpledataobject> MyData = new List<mysimpledataobject>();
... add 10 items to the list ...
report.DataSources.Add(new ReportDataSource("Sales", MyData));

仅呈现第一页。我想也许所有的页面都被渲染到流列表中,也许只有第一页实际上被发送到打印机,但是当我调试并查看流列表时,我看到的只是一个项目。流应该在每个页面的流列表中有一项。

部分渲染代码如下所示:

report.Render("Image", deviceInfo, CreateStream, out warnings);

foreach (Stream stream in m_streams)
    stream.Position = 0;

m_streams 列表中只有 1 项,因此只打印 1 页。

我也尝试过传递一个 DataTable 和一个业务对象数组作为数据源,但这也不起作用。

任何想法将不胜感激。谢谢。

【问题讨论】:

  • 一些想法:您是否尝试过渲染为 PDF?也许改变打印机,甚至尝试像 PdfWriter 这样的东西?

标签: c# winforms reporting-services rdlc localreport


【解决方案1】:

如果要呈现报表的所有页面,则需要在DeviceInfo 中将0 设置为StartPage 设置。

StartPageEndPage 的默认值为 1。这就是为什么你总是只渲染第一页。

例子:

string mime, encoding, fileNameExtension;
string[] streams;
Warning[] warnings;
byte[] bytes = report.Render("IMAGE", @"<DeviceInfo><OutputFormat>TIFF</OutputFormat><StartPage>0</StartPage></DeviceInfo>", out mime, out encoding, out fileNameExtension, out streams, out warnings);

【讨论】:

    猜你喜欢
    • 2011-06-04
    • 2011-12-31
    • 1970-01-01
    • 2023-03-27
    • 2014-03-16
    • 1970-01-01
    • 2012-11-09
    • 2015-09-29
    • 1970-01-01
    相关资源
    最近更新 更多