Crystal reports 如何在Crystal Report中从主报表组中减去子报表组

Crystal reports 如何在Crystal Report中从主报表组中减去子报表组,crystal-reports,subreport,Crystal Reports,Subreport,次级报告公式 whileprintingrecords; shared numbervar exp_credit:= Sum ({Exp_credit.amount}, {Exp_credit.date}, "monthly" 子报表值 04/2014 1500 05/2014 2000 06/2014 1500 07/2014 1000 08/2014 3000 09/2014 4000 10/2014 3500 11/2014 2800 12

次级报告公式

whileprintingrecords;
shared numbervar exp_credit:= Sum ({Exp_credit.amount}, {Exp_credit.date}, "monthly"
子报表值

04/2014    1500
05/2014    2000
06/2014    1500
07/2014    1000
08/2014    3000
09/2014    4000
10/2014    3500
11/2014    2800
12/2014    2600
01/2015    2800
02/2015    2800
03/2015    2600
04/2014    3500
05/2014    3500
06/2014    3000
07/2014    4000
08/2014    3900
09/2014    3900
10/2014    4000
11/2014    5000
12/2014    2800
01/2015    3500
02/2015    3700
03/2015    3700
主报告公式

whileprintingrecords;
shared numbervar exp_debit:= Sum ({Exp_debit.amount}, {Exp_debit.date}, "monthly"
主报告值

04/2014    1500
05/2014    2000
06/2014    1500
07/2014    1000
08/2014    3000
09/2014    4000
10/2014    3500
11/2014    2800
12/2014    2600
01/2015    2800
02/2015    2800
03/2015    2600
04/2014    3500
05/2014    3500
06/2014    3000
07/2014    4000
08/2014    3900
09/2014    3900
10/2014    4000
11/2014    5000
12/2014    2800
01/2015    3500
02/2015    3700
03/2015    3700
净公式

whileprintingrecords; 
shared numbervar exp_credit;
shared numbervar exp_debit; 
shared numbervar net:= (exp_debit-exp_credit);
我得到的是公式净值

04/2014    900
05/2014    900
06/2014    400
07/2014   1400
08/2014   1300
09/2014   1300
10/2014   1400
11/2014   2400
12/2014    200
01/2015    900
02/2015   1100
03/2015   1100

我想每个月都会扣除子报表最后一个值2600,我需要每个月的值,请帮助我。

您可以尝试以下方法:

为借方和贷方创建两个子报告,并在标题中逐个放置。将借方的所有值存储在数组中,贷方的所有值存储在数组中,并将两者传递给主报表

使用以下代码在数组中存储值

Shared StringVar array store;

store:=store+ (Date&"-"&ToText(Value)); 
//append date and value to retrieve correctly in main report
1
使用不同的共享变量在两个子报表中创建相同的公式

在主要报告中

Shared Stringvar Store //assume debit value
Shared stringvar store1 //assume credit

//now split and convert to number and subtract the values
tonumbersplitstore[1],-[2]-TonumberSplitStore1[1],-[2]

小心你减去相似的日期


这将为您提供第一个值的差异。同样,更改store和store 1大括号中的数字以获取其他值的值

您将子报表放置在何处,将主报表放置在何处?在哪一节中?子报表公式@exp_credit放在子报表的集团标题1节中,子报表放在报表标题部分的主报表中。所有值都已正确计算。每个月扣除子报表上一次值2600,我需要分别计算每个月的值。请尽快帮助我。提前谢谢,请回答我的问题,请等待您的答复…您的实现非常混乱…最好使用数组…您是否尝试过使用这些数组…请让我知道…再次在主报告中,您将主报告值放置在何处?您为什么使用子报告…我看不到任何用途…从多少表中,您获得了借方和贷方值Siva,感谢您的及时支持。如果我使用此公式,则收到错误消息,公式的结果不能是数组。如何解决这个问题。很抱歉延迟回复。您正在谈论的公式有两个……而且我检查了不应该出现错误。原始公式是->共享StringVar数组存储;存储:=存储+日期-&ToTextValue;我应用的公式是-->共享StringVar数组存储;store:=store+GroupName{Exp\u debit.date},monthly&&ToTextSum{Exp\u debit.amount},{Exp\u debit.date},monthly;如果我有任何错误,请告诉我您在分号后添加了1…同时添加它编辑解决方案bitI应用的主报告公式为-->共享Stringvar Store共享Stringvar store1 Tonumber SplitStore,[1]-[2]-TonumberSplitStore1[1],-[2],但收到错误消息剩余文本似乎不是公式的一部分。