【发布时间】:2018-03-16 13:30:40
【问题描述】:
您好,我正在开发一个 MVC 项目,其中我有一个报告页面,用户可以使用 report viewer. 来查看报告
我需要为报表动态设置页面大小,我尝试了很多方法来解决这个问题,但都无法解决。
我可以使用此代码更改 ReportViewer 大小
rptviewer.Height = Unit.Pixel(520);
请帮助我解决以下问题。
1.是否可以使用C#代码更改SSRS报告页面高度?
2.是否可以在运行时更改纸张大小?
我以前的解决方法
System.Drawing.Printing.PageSettings pg = new System.Drawing.Printing.PageSettings();
pg.Margins.Top = 0;
pg.Margins.Bottom = 0;
pg.Margins.Left = 0;
pg.Margins.Right = 0;
System.Drawing.Printing.PaperSize size = new PaperSize();
size.RawKind = (int)PaperKind.A5;
pg.PaperSize = size;
rptviewer.SetPageSettings(pg);
ViewBag.ReportViewer = rptviewer;
return View("_ReportView");
System.Drawing.Printing.PageSettings MyPageSize= new System.Drawing.Printing.PageSettings();
MyPageSize.PaperSize = new System.Drawing.Printing.PaperSize("Custom", 17, 12);
rptviewer.SetPageSettings(MyPageSize);
var setup = rptviewer.GetPageSettings();
setup.PaperSize.Height = 1500;
rptviewer.SetPageSettings(setup);
以上逻辑都不适合我:-(
【问题讨论】:
-
您的 MVC 前端应用程序不会影响报表在报表服务器上的呈现方式。报表查看器对象是一个容器,用于保存呈现的报表。更改其大小不会影响其中报表的属性。您能否向我们提供有关您要解决的问题的更多信息?
-
当然,我错过的第一件事是我没有使用报表服务器,我正在使用 LocalReport 呈现到我的 MVC 应用程序。
-
我假设您的意思是 SSRS 安装在托管网页的系统上。无论哪个系统充当服务器,如果 SSRS 正在提供报表,则您无法更改报表在外部呈现给 SSRS 服务的方式。
-
问题的目标是,我们有一个超过 40 列的大型报表,并且报表的高度固定为 11 英寸(在设计报表时在报表属性中分配)。当我们将报告加载到报告查看器(高度 500 像素)时,我们可以看到水平和垂直滚动条,这是很常见的事情。我们计划让这个报告更具响应性,因为报告的这个高度将使用可用的空来计算空间&我们可以将计算出的高度分配给报告,这样我们就可以避免垂直滚动条,并且在所有屏幕尺寸下看起来都不错
-
唯一可能的方法是将高度(以英寸为单位)作为参数传递给报告。在报告中,您可以纠正一些嵌入式代码以在运行时更改页面大小。但是,我不知道这是否会起作用,因为这些属性没有启用表达式。但是您肯定必须将参数传递到报告中才能远程实现。您的 MVC 报表查看器控件只是一个容器,不会影响报表的定义。
标签: c# sql-server reporting-services ssrs-2008 ssrs-2012