如何在Crystal Report中动态增加公式字段的宽度?

时间:2014-06-27 11:46:15

标签: c# asp.net crystal-reports

我在我的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可能是EventNameLocation。我想在运行时在crystalreport中设置公式字段的宽度;即

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

任何帮助将不胜感激。

2 个答案:

答案 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 -->                  |
----------------------------------
  1. 确保'Can grow'未被发现
  2. 确保'保持在一起'是 取消选中
  3. 将动态列设置为您希望它覆盖的第一个单元格的宽度,宽度公式添加到现有宽度,它不会显式设置值。

    计算宽度公式中非空白列的数量,并以缇为单位乘以子列的大小(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;
    

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