2012-07-28 220 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