0

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

  1. 检查列是否为空。
  2. 如果为空,则重新调整其余列的位置和大小以填补空白。
  3. 对每一列重复步骤 1-2。

我对从哪里开始有一些想法,但不确定如何前进。我可以通过以下方式检查列是否为

If DistinctCount({@SomeField}) > 0

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

任何建议都会有所帮助。

谢谢

注意:我使用的是 Crystal Report XI

4

1 回答 1

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;

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

然后数一下有多少不为空就可以计算出平均列宽。

于 2012-07-31T08:12:40.183 回答