自动调整列大小,如果某些列为null则定位

时间:2012-07-30 21:07:25

标签: crystal-reports report reporting crystal-reports-xi

我有一个简单的报告,大约有20列。其中一些列可能为空。这就是我想要做的事情:

  1. 检查列是否为空。
  2. 如果为空,则重新调整其余列的位置和大小 填补空白。
  3. 对每一列重复步骤1-2。
  4. 我有一些想法,从哪里开始,但不知道如何前进。 我可以通过以下方式检查列是否为empty

    If DistinctCount({@SomeField}) > 0
    

    我也知道格式公式可以改变宽度和位置。但是我怎么把它放在一起呢?也就是说,检查和扩展列的逻辑是什么,我在哪里放这个逻辑?我应该使用全局变量吗?

    任何建议都会有所帮助。

    由于

    注意:我使用的是Crystal Report XI

1 个答案:

答案 0 :(得分:1)

尝试这种方法:

WhileReadingRecords;
Global booleanVar col1Empty := True;
Global booleanVar col2Empty := True;
...
if not IsNull({dbtable.col1}) then
  col1Empty := False;
if not IsNull({dbtable.col2}) then
  col2Empty := False;

然后在suppres公式中使用这个全局变量。

然后计算有多少不空可以计算平均列宽。