Crystal报告了一对多的关系



我真的不知道如何表达我的标题,所以我只想解释一下我的情况。我对水晶报告相对较新,基本上我所知道的就是显示线性集合,在那里你有一个数据集,你只需要显示你想要的所有字段,基本上这些字段有1..1的关系。然而,我正在尝试做一个字段之间可能存在0..n关系的报告,这将打破报告的线性性质。例如:

我有3组集合,分别具有以下属性:

贡献

  • 缴费月份
  • 出资额

汇款

  • 缴费月份
  • 汇款期限
  • 金额

没收

  • 缴费月份
  • 没收期
  • 金额

对于每一笔捐款,它可以有0..n与其相关的汇款和/或没收。因此,在某些情况下,报告应该是这样的:

控制月|监控月|RemitPeriod

2010年1月||954.23----||2010年第1季度-------||500.00---||------------------|

------------------||---------------||2010年第2季度--------||250.00-||------------------|

2010年2月||5000.00-||------------------||---------------||2010年第2季度-------||550.00

-------------------||-------------||----------------|----------------||2010年第3季度--------||750.00

我试过使用公式,你可以显示汇款和没收的详细信息,比如

if({ContributionDetails.ContributionMonth} =         {RemittancesEmployerMonthly.ContributionMonth})
then
{RemittancesEmployerMonthly.TotalEmployerRemittance}
else 
    0.00

但它创建了一个内部联接,其中它只显示有汇款的捐款,并跳过没有汇款/没收的价值

我该怎么做这种格式?

提前感谢

您需要确保表之间的联接是"左外部联接"或"右外部联接"。在这种情况下,我认为您需要左外联接。这将从主表返回数据,即使其他表中没有数据。

您可以在Database ExpertLinks选项卡中设置此项。右键单击可以更改链接。

然后,您需要创建适当的组(ContriMonth)来对返回的数据进行分组。如果没有数据,您还需要检查公式中的空值。

最新更新