Crystal Reports中的子报表

时间:2012-10-23 07:54:17

标签: crystal-reports subreport

是否可以在Crystal报表中创建单个报表,显示仅从1个主表中获取信息的3个列表?

这是我从数据库中提取并使用完全外连接到AccountNum1和AccountNum2的主表,导致某些行中出现空白值:

AccountNum1 ActDate     SuspDate    AccountNum2 EntryDate   Charge
12345       01/01/2001  12/12/2012  12345       01/01/2012  1.00
67890       02/02/2002  11/11/2011  67890       02/02/2012  1.00
<Blank>     <Blank>     <Blank>     23456       03/03/2012  1.00
34567       04/04/2004  12/12/2012  <Blank>     <Blank>     <Blank>

对于第一个报告,我想显示包含完整条目的所有记录:

AccountNum  ActDate     SuspDate    EntryDate   Charge
12345       01/01/2001  12/12/2012  01/01/2012  1.00
67890       02/02/2002  11/11/2011  02/02/2012  1.00

对于第二个报告,我想显示所有包含AccountNum2,EntryDate,仅限充电条目的记录

AccountNum  EntryDate   Charge
67890       02/02/2012  1.00

对于第3个报告,我想显示所有只有AccountNum1,ActDate,SuspDate条目的记录

AccountNum  ActDate     SuspDate
34567       04/04/2004  12/12/2012

我需要能够在单个报告中显示信息,并总结报告1,报告2和报告3中的条目数。

感谢您的帮助。:)

2 个答案:

答案 0 :(得分:2)

通过解决方法可以在Crystal中使用 IS

添加一个公式,用于定义您希望该行所在的部分,例如SectionNo公式可能需要根据您的逻辑进行更改

If (Not Isnull(AccountNum) and Not Isnull(ActDate) and Not Isnull(SuspDate) and Not isnull(EntryDate) and Not Isnull(Charge) then
    1
else if (Not Isnull(ActDate)) then
    2
else
    3

现在您可以按新公式添加组,这会将行分为三个部分。

接下来添加两个新的细节部分并设置细节,细节b和细节c,以在第1,2和3部分中显示所需的字段。

最后将3个公式添加到三个细节部分抑制公式中:

DetailA enter "SectionNo <> 1"
DetailB enter "SectionNo <> 2"
DetailC enter "SectionNo <> 3"

如果您需要设置它,请告诉我。

答案 1 :(得分:0)

在水晶报告中不可能这样做,你必须为第二和第三个列表创建两个子报告。