如何动态增加水晶报表中公式字段的宽度

本文关键字:字段 报表 水晶 何动态 动态 增加 | 更新日期: 2023-09-27 18:10:27

我在我的web应用程序中使用水晶报告,它正在动态加载;也就是说,它只显示那些整行不为空的列。参数的值将在运行时设置。

最终报告的设计将如下所示

param1     param2     param 3      param4
@formula1  @formula2  @formula3    @forumula4 

其中param1,param2,...为参数,显示列标题,@formula1,@formula2,@formula3为公式字段,显示详细字段。

@formula1的详细信息如下

if {?param1}="EventName" Then {dtHealth.EventName}
Else If {?param1}="Location" Then {dtHealth.Location}
Else if {?param1}="CashsafeSerialNo" Then {dtHealth.CashsafeSerialNo}

这里param1有可能是EventNameLocation。我想在crystalreport运行时设置公式字段的宽度;例如

if param1="EventName"
    @formula1.width=100px;
else if param1="Location"
    @formula1.width=200px

如何动态增加水晶报表中公式字段的宽度

我不确定,但是这个"Can Grow"选项会帮助你。您不能应用或良好的增长宽度尽可能覆盖近场。我建议给出固定的宽度,并给出可以在高度动态扩展的增长选项。这很好。

我的其他建议是,如果它是一个单行数据显示。然后创建detail子节,并将字段放入其中,并在section expert中勾选"Keep together"

http://www.accoladepublications.com/Crystal-Reports-Tips-and-Tricks/303-auto-grow-fields.html

http://www.codeproject.com/Questions/105407/How-to-expand-a-field-in-Crystal-Reports

我设法使这个工作如我想要的:

我正在编辑一个别人做的报告,他们有大约21个被抑制的集合列,如果为null,我需要一个顶部描述性列,它的大小增长到非抑制字段:

。在以下布局中,任何列b-g都可能被抑制:

----------------------------------
| ID |     Dynamic width column  |
---------------------------------
|    | a | b | c | d | e | f | g |
----------------------------------
| 1  | Data -->                  |
----------------------------------
  1. 确保"Can grow"未勾选
  2. 确保"保持在一起"是取消勾选

将你的动态列设置为你想要覆盖的第一个单元格的宽度,宽度公式添加到现有的宽度,它不显式设置值。

计算宽度公式中非空白列的数量,并乘以子列的大小(1cm=~567 twips):

NumberVar ColumnCount;
ColumnCount := 0;
If not isnull({Column.TextA}) then
    ColumnCount := ColumnCount + 1 ;
If not isnull({Column.TextB}) then
    ColumnCount := ColumnCount + 1 ;
ColumnCount * 450;

好了,你应该得到一个宽度扩展到非空列大小的列