0

私はこのクエリを持っています:

select idCustumer, Name, Address from Customer

これにより、レポートのヘッダーが表示されます。これは次のとおりです。

select idCustomer, Description, Sum(Total) as Total from Product group by Description

最初のクエリの実行:

 idCustomer    Name     Address
     1        Phil       Fake Av. 1234
     2        John       Fake Av. 4321

二番目:

 idCustomer    Description    Sum(Total)
   1              PROD01          10
   1              PROD02          20
   2              PROD01          30

1 人の顧客を使用してレポートを生成する場合は問題ありません。問題は、同じレポートに 2 人以上の顧客が含まれていることです。

私がやること?

idCustomer でリンクする 2 つのテーブル (クエリごとに 1 つ) を持つ 1 つのデータセットを作成します。このデータセットを使用してレポートを作成すると、最初のテーブル (ヘッダー) が正常に機能し、4 人のテスト顧客が出力されます。

次に、サブレポートを追加します。

rpt.Subreports(0).SetDataSource(subReportes.Tables(1)) 'Tables(1) is 2nd Query

しかし、これは同じ情報を何度も出力します。

私の報告書:

 Customer: Phil  Address: Fake Av. 1234

 Order:
              PROD01          10
              PROD02          20
              PROD01          30

              Total           60

 Customer: John  Address: Fake Av. 4321

 Order:
              PROD01          10
              PROD02          20
              PROD01          30

              Total           60

このサブレポートを含める方法を学ぶことができるガイドまたはリンクはありますか (または、これを達成する別の方法がある場合)

 Customer: Phil  Address: Fake Av. 1234

 Order:
              PROD01          10
              PROD02          20

              Total           30    

 Customer: John  Address: Fake Av. 4321

 Order: 
              PROD01          10

              Total           10

VS 2010 (VB)、SQL Server 2008 R2、Crystal Report 2010 を使用しています

ありがとう!

4

1 に答える 1

0

あなたのデザインは完全に間違っています。まず、次のように TSQL でプロシージャを記述する必要があります。

SELECT C.idCustomer CustomerId, C.Name Name, C.Address Address, P.Description Description, P.Total Total
FROM CUSTOMER C
INNER JOIN PRODUCT P
   ON C.idCustumer = P.idCustomer

そして、このプロシージャをレポートのデータソースとして設定します。次に、レポートの CustomerId フィールドのグループ化を行う必要があります。その後、グループ ヘッダー セクションに顧客の詳細を配置し、詳細セクションに注文の詳細を配置する必要があります。また、合計値を取得するには、Crystal レポートの集計フィールドを使用する必要があります

于 2012-07-29T09:48:19.840 に答える