如何从Crystal Report

时间:2015-11-14 11:52:08

标签: 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/2014    2600
01/2015    2800
02/2015    2800
03/2015    2600

主要报告公式

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

主报告值

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,我需要分别为每个月的价值,请帮帮我。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

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

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

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

Tonumber(分割(存储[1]," - ")[2]) - Tonumber(分割(Store1 [1]," - ")[2])

小心你减去相似的日期

这将为您提供第一个值的差异。以同样的方式更改商店中的数字并存储1个大括号以获取其他值的值