【问题标题】:Configure RDLC report's Height on runtime在运行时配置 RDLC 报告的高度
【发布时间】:2018-07-18 08:44:14
【问题描述】:

我一直在尝试以编程方式更改报告的纸张大小。 目标是让它工作,我可以在运行时配置 RDLC 报告的纸张/页面大小。

正如我在Link 上看到的那样。我可以在运行时配置纸张大小。 我已经按照它并设法在运行时更改纸张大小,但是当报告加载时。它仍然使用报告属性上指示的PageSize

这里有什么我错过的吗?我也尝试使用RefreshReport()。我是否误解了 PageSizePaperSize 是一样的?我在DefaultPageSettings 下没有看到PageSize 属性,所以我认为它们是相同的。

下面的屏幕截图显示了运行时更改的PaperSize。我使用了一个消息框来查看它是否发生了变化。

但报告仍然使用 PageSize 属性下指定的 1100 高度 x 850 宽度。

【问题讨论】:

    标签: vb.net visual-studio winforms reporting rdlc


    【解决方案1】:

    您在报告属性页面中设置的纸张大小与您在属性中设置的PageSize相同> 报告窗口。它决定了报告的打印页面大小。

    在运行时设置值:

    Dim pageSettings = New Printing.PageSettings()
    pageSettings.PaperSize = New Printing.PaperSize("Custom", 400, 400)
    Me.ReportViewer1.SetPageSettings(pageSettings)
    

    查看影响:

    • 在运行时单击打印布局按钮:

    注意

    • 通过更改InteractiveSize.Height,您可以在查看器的交互模式(默认视图)下更改页面大小。例如,通过将高度设置为 0,报表的所有项目都将显示在一个页面中。或者通过将其设置为 2 英寸,例如,每页将显示适合 2 英寸的行数。您不能在运行时更改它。

    • 通过更改页面大小,您将更改打印布局中报表的页面大小。您可以在运行时和设计时更改它。

    • 通过更改报表主体宽度,您将更改报表主体所需的空间量,而与纸张大小无关。例如,如果您将页宽设置为小于报表正文宽度,则打印时会出现分页符,以打印报表正文的右侧。您不能在运行时更改它。

    【讨论】:

    • 很好,我会进一步研究,这样,我预定义的所有设置都将重置为默认值。我想我会更多地研究它,也许我可以在这里指定其他元素,比如边距。
    • 这几乎回答了这个问题,我现在将其标记为答案,我会寻找有关边距的方法。
    • 如果您要设置可以使用参数实现的东西,您可以定义一个参数并在报表定义中使用它。但如果它不能是参数化的,您可以为您的报告创建一个运行时 t4 模板。通过这种方式,您可以轻松地将值传递给报表定义。例如看看this post
    • 您在.rdlc 文件中将报告定义为xml。只需将内容复制到.tt 并在文件顶部添加所需的指令,例如语言可以是 VB。然后,例如<Width><#= Model.BodyWidth>in</Width>.
    • 我不确定这是否是您应该遵循的方向,但在 ;east 最好注意这一点 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    相关资源
    最近更新 更多