c# - 只打印一页

标签 c# winforms reporting-services rdlc localreport

我正在使用 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 和一个业务对象数组作为数据源传递,但这也不起作用。

如有任何想法,我们将不胜感激。谢谢。

最佳答案

如果要呈现报告的所有页面,您需要将 0 设置为 DeviceInfo 中的 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);

关于c# - 只打印一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105791/

相关文章:

c# - windows.forms 中的代码放置

.net - 限制 .net 文本框中的行数

vba - 具有多个条件的嵌套 iif SSRS

reporting-services - 如何更改 ssrs 报告中的字符串颜色

c# - 使用 IMEI 号检测 usb 调制解调器端口

c# - 为什么我在尝试将大文件发布到 Core Web API 时收到 404

c# - 更新局部区域 MVC3

.net - 使用 Entity Framework 4 删除对象的最简单方法

Azure 数据库用户和权限报告

c# - Facebook 图形 API :/me OAuthException (c#)