为水晶报表中的页面/部分动态设置高度和宽度

Posted

技术标签:

【中文标题】为水晶报表中的页面/部分动态设置高度和宽度【英文标题】:Set height and width dynamically for page/section in crystal report 【发布时间】:2015-10-06 18:43:57 【问题描述】:

我正在使用水晶报表打印详细信息。打印时有两个问题。

    为部分详细信息动态设置高度/宽度

我想通过代码动态更改部分的高度和宽度。这个高度和宽度将来自用户设置,所以我需要它们是动态的。当我检查时,有一个选项可以以编程方式设置截面高度,但它不起作用。我正在使用下面的代码来设置部分高度

ReportDocument rd = new ReportDocument();
Section section = rd.ReportDefinition.Sections["Section3"];
section.Height = 1;

当我使用此代码时,它给了我错误“System.Runtime.InteropServices.COMException:节高无效。”

我还想动态设置“细节之间的差距”。有可能吗?

    动态设置页面内容高度

我想动态设置页面内容高度。我们可以从设计->页面设置->页面选项->设置水平和垂直值设置页面高度和宽度。

在我的情况下,我正在使用水晶报告 tp 打印条形码。当页面高度很大时,它会打印我不想要的空条形码。我想根据要打印的条形码数量设置页面内容高度。我该怎么做?

谁能帮我解决这两个问题?

【问题讨论】:

【参考方案1】:

我添加了一个名为AutoHeight 的公式字段和一个名为Height 的参数字段,然后我将这段代码放入公式中:

Local StringVar height = "";
Local NumberVar i;
For i:=1 to ?@Margin do (
    height := height + Chr(10)+Chr(13)
);
height

最后一步是将我的AutoHeight 公式放在我要控制的部分中,并选中属性Can grow

【讨论】:

【参考方案2】:

我正在寻找如何解决这个问题。对我来说,这是可行的:

ReportDocument rd = new ReportDocument();
rd.ReportDefinition.Sections["Section5"].Height = 1000;

试试这个,好吗?

【讨论】:

以上是关于为水晶报表中的页面/部分动态设置高度和宽度的主要内容,如果未能解决你的问题,请参考以下文章

[水晶报表]为水晶报表(含子报表)绑定数据

水晶报表布局打印不同

水晶报表设置纸张大小

水晶报表 如何设置水晶报表 crystal reports 的字段自动换行

水晶报表页脚打印在页面底部

水晶报表显示动态图片