0

全て、

VS2010 で Crystal Reports を使用しています。レコードを行としてリストするクエリを実行し、必要に応じてサブクエリとして、フロー レイアウト (.Net/Java スタイル) に似たもの内にレコードを表示したいと考えています。

たとえば、次のように、ストアド プロシージャを実行してデータを取得しています。

SELECT Table1.Field1 AS Title
       Table2.Field1 AS RowRecord1
       Table2.Field2 AS RowRecord2
       Table3.Field1 AS DataRecord

FROM Table1 
JOIN Table2 ON Table1.id = Table2.table1_id
JOIN Table3 ON Table2.id = Table3.table2_id

したがって、Table1 は最上位の親であり、Table2 は中間であり、Table3 には、行ではなく別の方法で表示したい子データがあります。

したがって、select のダミー データは次のようになります。

Title      RowRecord1    RowRecord2   DataRecord
My Test    Some Row1     Test 1       D1
My Test    Some Row1     Test 1       D2
My Test    Some Row1     Test 1       D3
My Test    Some Row1     Test 1       D4
My Test    Some Row1     Test 1       D5
My Test    Some Row2     Test 222     D1
My Test    Some Row2     Test 222     D2
My Test    Some Row2     Test 222     D3

したがって、全体的なレポートは次のようになります。

**My Test** 

Some Row1   Test 1

D1   D2   D3   D4
D5

Some Row2   Test 222

D1   D2   D3

DataRecord は、フロー レイアウトでセクションを左から右 (単一の値) に埋めます。

理想的には、可能であれば Crystal でこれを行う方法を知りたいです。そうでない場合は、別のアイデアや解決策に耳を傾けます。私はいくつかのことを試してみましたが、まだオンラインで何も見つかりませんでした。

ありがとう、

アンデス

4

1 に答える 1

1

私はこのようなものがうまくいくはずだと思います:

Crystal の最初のグループ by Title, RowRecord1,RowRecord2

次に、次の 3 つの数式を作成します。

最も深いグループ ヘッダーに次のように入力します。

WhilePrintingRecords;
Global numberVar count := 0;
StringVar ConCat:= "";

詳細セクション:

WhilePrintingRecords;
StringVar ConCat;
Global NumberVar count;

   if ((count Mod 4) = 0) then
       ConCat:= ConCat & {DBTABLE.DataRecord} & ChrW(13) //adds a line break
   else 
       Concat := Concat & {DBTABLE.DataRecord};
   count := count + 1    

   ConCat

グループ フッター内

WhilePrintingRecords;
StringVar ConCat;
Concat;
于 2012-08-15T09:08:10.183 に答える