2

Crystal Reportsを使用していますが、次のような出力があります。

     NumberId         ART_No          InkColor
     ------------------------------------------
     0010             23003             BLUE
     0010             23003             RED
     0010             23003             GREEN
     0013             23004             ORANGE
     0013             23004             PINK
     0013             23004             WHITE
     0015             23007             GREEN
     0015             23007             PINK

SQLスクリプトを使用しなくても(Crystal Reportsで)出力を次のようにするにはどうすればよいですか?

     NumberId         ART_No          InkColor
     ------------------------------------------
     0010             23003             BLUE, RED, GREEN
     0013             23004             ORANGE, PINK, WHITE
     0015             23007             GREEN, PINK

ありがとう

4

1 に答える 1

2

それを達成するには、いくつかのことを行う必要があります。

  1. のグループを作成しますNumberId

  2. グループヘッダーを抑制します。

  3. FormulaFieldを作成します。それを呼びます@ColorReset。次のコードが含まれている必要があります。

    WhilePrintingRecords;
    stringVar Colors:= "";
    

    これをグループヘッダーに配置します。Colorsこれにより、グループヘッダーがヒットするたびにstringVarがリセットされます。

  4. 詳細セクションを抑制します。

  5. 別のFormulaFieldを作成します。それを呼びます@ColorAppend。次のように値を連結する必要があります。

    WhilePrintingRecords;
    stringVar Colors:= Colors + "、" + {YourTable.InkColor};
    

    これを詳細セクションに配置します。これにより、詳細セクションがループするたびにカラー文字列が作成されます。

  6. と呼ばれる、色を表示するFormulaFieldをもう1つ作成します@ColorsShow。次のような色が表示されます。

    WhilePrintingRecords;
    StringVar Colors;
    
    RIGHT(色、LEN(色)-2); //先頭のカンマとスペースを削除します
    

    NumberIdと一緒にこれをグループフッターに配置しますART_No


最終結果は次のようになります。

---------- Group Header 1 ----------
/////////// @ColorReset ////////////

------------- Details --------------
////////// @ColorAppend ////////////

---------- Group Footer 1 ----------
[NumberId] [ART_No] [@ColorsShow]

少し気が遠くなるように見えますが、かなり簡単です。

于 2013-02-05T15:30:57.677 に答える