0

値を共有配列に入れ、詳細セクションの別のサブレポートに出力して、配列の各値を 1 つずつ出力したいと考えています。

私はグーグルで検索しましたが、適切な答えが得られないようです。

コードは次のとおりです。

// 1st Sub Report
WhilePrintingRecords;
shared numberVar array Totdepot;

Redim preserve Totdepot[UBound(Totdepot)+1];//more space added to array.
Totdepot[UBound(Totdepot)+1]:={dtSumDe… + {dtSumDealer2.inv_depot2} + {dtSumDealer2.inv_depot3} + {dtSumDealer2.inv_depot4} + {dtSumDealer2.inv_depot5} + {dtSumDealer2.inv_depot7} + {dtSumDealer2.inv_depot6} + {dtSumDealer2.inv_depot8} + {dtSumDealer2.inv_depot9};

// 2nd Sub Report
WhilePrintingRecords;
shared numberVar array Totdepot;
Totdepot

配列の 2 番目の値を出力しようとしていますが、機能しません。エラーの読み取り:「実行中の合計は、印刷時間の式を参照できません」または「式の結果を配列にすることはできません」

4

1 に答える 1

0

問題Ⅰ

2 つの数式の最後の行を配列にすることはできません。次のように変更します。

// 1st Sub Report
WhilePrintingRecords;
Shared NumberVar Array Totdepot;

Redim preserve Totdepot[UBound(Totdepot)+1];//more space added to array.
Totdepot[UBound(Totdepot)+1]:={dtSumDe… + {dtSumDealer2.inv_depot2} + {dtSumDealer2.inv_depot3} + {dtSumDealer2.inv_depot4} + {dtSumDealer2.inv_depot5} + {dtSumDealer2.inv_depot7} + {dtSumDealer2.inv_depot6} + {dtSumDealer2.inv_depot8} + {dtSumDealer2.inv_depot9};

// return a dummy value to eliminate array-error message
True;

// 2nd Sub Report
WhilePrintingRecords;
Shared NumberVar Array Totdepot;

// return a dummy value to eliminate array-error message
True;

問題Ⅱ

データベース レコードが表示されるのと同じ方法で配列を表示することはできません。Crystal Reports は、配列内の各要素の詳細セクション レコードを生成しません。そうするように設計されていません。

次の 2 つのオプションがあります。

  • 配列をループしてコンマ区切り (またはその他の文字) の文字列を作成する数式フィールドを作成します。
  • 使用可能なデータセットが返されるように、計算をデータベースにプッシュします。
于 2012-07-17T15:18:23.177 に答える