0

可能かどうかさえわからないという独特の質問があります。

グループごとに複数のグループヘッダーがあるレポートがあります。私がやりたいのは、選択したグループヘッダー(GH1a、GH1p、GH1w ...)に自動インクリメントされた数値を設定し、それをroman(@function)を使用してローマ数字に変換することです。番号付けは、実際のグループの数に依存せず、グループヘッダーのみに依存します。レポートに返されるレコード(グループ)は1〜100,000である可能性がありますが、各レコード(グループ)について、各グループ内のグループヘッダーには、同じ番号のグループヘッダーが選択されます。

元:

グループA

GH1a:  I
GH1b:  
GH1c:  II
GH1d:  III
GH1e:
GH1f:
GH1g:  IV

グループB

GH1a:  I
GH1b:  
GH1c:  II
GH1d:  III
GH1e:
GH1f:
GH1g:  IV

等....

どんな助けでもいただければ幸いです。次のコードを使用して、レポートヘッダーとインクリメントする各GHの両方でグローバル変数xを使用しようとしました。

reportheaderおよび/またはGH1a内//@iCountreset

    Global NumberVar iCount:=1;

インクリメントしたい各GHで//@iCounted

    Global Numbervar iCount;
    iCount:= iCount+1;

次に、それをローマ字化するための2番目の// @ RomanCount

    roman(@iCounted);

私は現在それらをハードコーディングしていますが、いくつかのrptファイルを1つに結合しようとしています。唯一の違いは、いくつかのGHセクションが抑制されるため、番号付けにカウントされないことです。

前もって感謝します。

4

1 に答える 1

0
//{@reset}
WhilePrintingRecords;
Global Numbervar G1:=1;

//{@increment}
WhilePrintingRecords;
Global Numbervar G1:=G1+1;

//{@roman}
Roman({@increment})

** 編集 **

ライアンのコメントは正しかった。私の新しいアプローチでは、サブレポートを使用して共有変数をインクリメントします。これは機能します。

手順:

'main'レポートの{@reset}GH1aを追加します。抑制

//{@reset}
WhilePrintingRecords;
Shared Numbervar G1:=0;

サブレポートを作成します。GH1bに配置します。これらの式をそれに追加します。

詳細セクションに追加します。抑制:

//{@increment}
WhilePrintingRecords;
Shared Numbervar G1:=G1+1;

詳細セクションに追加:

//{@roman}
Roman({@increment})

このサブレポートを、ローマ数字の計算が必要な各セクションに追加する必要があります。このプロセスの負担を少し軽減するには、サブレポートをエクスポートして(「サブレポートを名前を付けて保存」)、再挿入します。

于 2012-05-08T19:22:11.693 に答える