2012-07-28 312 views
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 

當我使用一個客戶生成報告沒關係。問題是在同一份報告中有兩個或兩個以上的客戶。

我該怎麼辦?

我創建了一個包含兩個表(每個查詢一個)的數據集,通過idCustomer鏈接它們。我使用這個數據集創建一個報告,第一個表格(標題)工作正常,它打印我的四個測試客戶。

然後我添加一個SubReport。

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

謝謝!

回答

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 

並添加設置此proc作爲報表的數據源。 然後,您必須在報告中爲字段CustomerId進行分組。之後,您需要將客戶詳細信息放入組標題部分,並在詳細信息部分中列出訂單詳細信息。而且要獲得總價值,你必須使用水晶報告中的彙總字段

+0

我完全忘記接受這一點。對不起,謝謝! – Jaxedin 2012-12-06 14:55:28