Crystal Reports:在"报表"页脚中创建"最大数组变量"时遇到问题

2020-09-01 07:09发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


第一次张贴,请保持温柔:)

我的数据集如下:

部门帐户值
AAAAA 111111 2.02
AAAAA 111111 1.01
AAAAA 111111 0.46
AAAAA 222222 3.19
AAAAA 222222 5.31

我需要在帐户级别分组并将值的总和在一起以创建帐户值,还要在部门级别分组并提供该部门的最大帐户值。 然后在报表页脚中,提供总体的"最大帐户价值"。

认为最好的方法是在使用数组和变量时通过公式。 这是我做的事情,它使我能够在部门级别获得最高限额,但仍在尝试找出最高总体限额的公式。

请记住,组1是部门,组2是帐户

创建此公式并显示在GH1中:
WhilePrintingRecords;
如果不是InRepeatedGroupHeader,则

Numbervar数组amt;
NumberVar c:= DistinctCount({Account},{Sector});
Redim amt [c];
NumberVar i := 1;
''

else''

创建此公式并显示在GF2中以给出每个帐户的帐户值:
whileprintingrecords;
numbervar sumvalue:= sum({value},{account});
sumvalue

创建了这个公式,并将其放在GF2的最右侧,远离显示:
WhilePrintingRecords;
NumberVar数组amt;
NumberVar i; amt [i]:=(总和({value},{account}));
i:= i + 1;

创建此公式并显示在GF1中,以给出每个部门的最大帐户值:
WhilePrintingRecords;
NumberVar数组amt;
maximum(amt)

通过此设置,报告将帐户1的3.49和帐户2的8.50相加,并从2中找出最大值,并将其放入GF1 8.50中,这正是我 想要:

PH部门帐户值
D AAAAA 111111 2.02
D AAAAA 111111 1.01
D AAAAA 111111 0.46
GF2 AAAAA 111111 3.49 AAAAA 222222 3.19 AAAAA 222222 5.31 < br> GF2 AAAAA 222222 8.50
GF1 AAAAA 8.50
RF?

但是,如何在"报表页脚"中获得"最大总体帐户价值"? 例如,假设扇区A的最大值为8.50,扇区B的最大值为10.31,扇区C的最大值为6.00。 RF的最大值应为10.31。 任何帮助将不胜感激!

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


第一次张贴,请保持温柔:)

我的数据集如下:

部门帐户值
AAAAA 111111 2.02
AAAAA 111111 1.01
AAAAA 111111 0.46
AAAAA 222222 3.19
AAAAA 222222 5.31

我需要在帐户级别分组并将值的总和在一起以创建帐户值,还要在部门级别分组并提供该部门的最大帐户值。 然后在报表页脚中,提供总体的"最大帐户价值"。

认为最好的方法是在使用数组和变量时通过公式。 这是我做的事情,它使我能够在部门级别获得最高限额,但仍在尝试找出最高总体限额的公式。

请记住,组1是部门,组2是帐户

创建此公式并显示在GH1中:
WhilePrintingRecords;
如果不是InRepeatedGroupHeader,则

Numbervar数组amt;
NumberVar c:= DistinctCount({Account},{Sector});
Redim amt [c];
NumberVar i := 1;
''

else''

创建此公式并显示在GF2中以给出每个帐户的帐户值:
whileprintingrecords;
numbervar sumvalue:= sum({value},{account});
sumvalue

创建了这个公式,并将其放在GF2的最右侧,远离显示:
WhilePrintingRecords;
NumberVar数组amt;
NumberVar i; amt [i]:=(总和({value},{account}));
i:= i + 1;

创建此公式并显示在GF1中,以给出每个部门的最大帐户值:
WhilePrintingRecords;
NumberVar数组amt;
maximum(amt)

通过此设置,报告将帐户1的3.49和帐户2的8.50相加,并从2中找出最大值,并将其放入GF1 8.50中,这正是我 想要:

PH部门帐户值
D AAAAA 111111 2.02
D AAAAA 111111 1.01
D AAAAA 111111 0.46
GF2 AAAAA 111111 3.49 AAAAA 222222 3.19 AAAAA 222222 5.31 < br> GF2 AAAAA 222222 8.50
GF1 AAAAA 8.50
RF?

但是,如何在"报表页脚"中获得"最大总体帐户价值"? 例如,假设扇区A的最大值为8.50,扇区B的最大值为10.31,扇区C的最大值为6.00。 RF的最大值应为10.31。 任何帮助将不胜感激!

谢谢

付费偷看设置
发送
3条回答
xfwsx85
1楼 · 2020-09-01 07:58.采纳回答

嗨,

1。 将GF1上的公式修改为:

 WhilePrintingRecords;
 NumberVar数组amt;
 Numbervar max_sector;
 如果maximum(amt)> max_sector,则
  max_sector:=最大值(amt);
 最高(amt); 

2。 创建一个公式来显示最大值,并将其放在报表页脚中:

 WhilePrintingRecords;
 Numbervar max_sector;
 max_sector; 

-Abhilash

木偶小白
2楼-- · 2020-09-01 07:51

这很完美,谢谢Abhilash!

代楠1984
3楼-- · 2020-09-01 08:00

声明一个全局变量Reports_Sector_Max并为其分配Sector_Account_Max值 如果它大于Reports_Sector_Max中的当前值。

您可以使用相同的逻辑简化使用单个数字变量而不是数组来建立Sector_Account_Max的方式。

无论如何,您都可以摆脱sumvalue公式。

一周热门 更多>