我在我的Web应用程序中使用Crystal Reports,它正在动态加载;即它仅显示整行不为空的列。参数的值将在运行时设置。
最终报告的设计如下:
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
可能是EventName
或Location
。我想在运行时在crystalreport中设置公式字段的宽度;即
if param1="EventName"
@formula1.width=100px;
else if param1="Location"
@formula1.width=200px
任何帮助将不胜感激。
答案 0 :(得分:1)
我不确定,但是这个" Can Grow"选项会帮助你。你不能应用或者尽可能地增加宽度来覆盖近场。我建议给出固定宽度,并给出可以在高度动态扩展的增长选项。哪个好。
其他我的建议是,它是否作为单行数据显示。然后制作细节的子部分并将字段放入其中,并在部分专家中勾选"保持在一起"
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
答案 1 :(得分:0)
我设法让我按照自己的意愿工作:
我正在编辑其他人做过的报告,他们有大约21个设置列,如果为空则被抑制,我需要一个在非抑制字段上增长到大小的顶级描述性列:
e.g。在以下布局中,任何列b-g都可能被抑制:
----------------------------------
| ID | Dynamic width column |
---------------------------------
| | a | b | c | d | e | f | g |
----------------------------------
| 1 | Data --> |
----------------------------------
将动态列设置为您希望它覆盖的第一个单元格的宽度,宽度公式添加到现有宽度,它不会显式设置值。
计算宽度公式中非空白列的数量,并以缇为单位乘以子列的大小(1cm = ~567缇):
NumberVar ColumnCount;
ColumnCount := 0;
If not isnull({Column.TextA}) then
ColumnCount := ColumnCount + 1 ;
If not isnull({Column.TextB}) then
ColumnCount := ColumnCount + 1 ;
ColumnCount * 450;
你去了,你应该得到一个宽度扩展到非空列大小的列。