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 に答える