交叉表-使用网格值的列总计

2020-09-04 22:21发布

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

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


我的报表中有一个交叉表,其中列出了月份的列和行的提供者:

提供商1月2月3日总计

艾伦5 0 1 6

Donohoe 8 5 0 13

Haque 0 3 5 8

调色板10 6 8 24

其他1 4 1 6

总计24 18 15

我的第一个问题是,底行总数有时会减少1,因此我创建了一个计算所得的成员来为底行总数添加列。 当所有提供程序都存在时,这种方法非常有效,但是如果其中一个提供程序没有任何客户端,那么我的公式就会中断:

GridValueAt(GetRowPathIndexOf(" Allen"),CurrentColumnIndex,CurrentSummaryIndex)

+ GridValueAt(GetRowPathIndexOf(" Donohoe"),CurrentColumnIndex,CurrentSummaryIndex)

+ GridValueAt(GetRowPathIndexOf(" Haque"),CurrentColumnIndex,CurrentSummaryIndex)

+ GridValueAt(GetRowPathIndexOf(" Patel"),CurrentColumnIndex,CurrentSummaryIndex)

+ GridValueAt(GetRowPathIndexOf(" Other"),CurrentColumnIndex,CurrentSummaryIndex)

我已经尝试使用'if'语句测试几种不同的变体来测试有效性,但是到目前为止,我还没有找到解决方案。 有没有一种更好的方法可以总计每个月的列,而不必按名称引用每个提供者?

我非常感谢您提供的所有帮助,我的有限专业知识早已筋疲力尽。

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

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


我的报表中有一个交叉表,其中列出了月份的列和行的提供者:

提供商1月2月3日总计

艾伦5 0 1 6

Donohoe 8 5 0 13

Haque 0 3 5 8

调色板10 6 8 24

其他1 4 1 6

总计24 18 15

我的第一个问题是,底行总数有时会减少1,因此我创建了一个计算所得的成员来为底行总数添加列。 当所有提供程序都存在时,这种方法非常有效,但是如果其中一个提供程序没有任何客户端,那么我的公式就会中断:

GridValueAt(GetRowPathIndexOf(" Allen"),CurrentColumnIndex,CurrentSummaryIndex)

+ GridValueAt(GetRowPathIndexOf(" Donohoe"),CurrentColumnIndex,CurrentSummaryIndex)

+ GridValueAt(GetRowPathIndexOf(" Haque"),CurrentColumnIndex,CurrentSummaryIndex)

+ GridValueAt(GetRowPathIndexOf(" Patel"),CurrentColumnIndex,CurrentSummaryIndex)

+ GridValueAt(GetRowPathIndexOf(" Other"),CurrentColumnIndex,CurrentSummaryIndex)

我已经尝试使用'if'语句测试几种不同的变体来测试有效性,但是到目前为止,我还没有找到解决方案。 有没有一种更好的方法可以总计每个月的列,而不必按名称引用每个提供者?

我非常感谢您提供的所有帮助,我的有限专业知识早已筋疲力尽。

付费偷看设置
发送
3条回答
My梦
1楼 · 2020-09-04 23:01.采纳回答

您好,Dep,

这是您需要做的:

1)首先,确保行总计的打印在底部:右键单击"总计"行 >行总计>取消选中"顶部总计"。 这会将行总数移到底部

2)接下来,右键单击交叉表的"总计"行,然后选择"计算所得成员">"插入子级"

3) 会在"总计"行的所有零值上方插入空白行

4)右键单击具有零值的单元格之一,然后选择"计算所得成员">"编辑计算公式"并使用以下代码:

本地号码var i;

本地号码var tot;

而我<> currentrowindex则

tot:= tot + tonumber(gridvalueat(i,CurrentColumnIndex,CurrentSummaryIndex));

i:= i + 1;

);

tot;

5)接下来,右键单击空白的行标题,然后选择"计算所得成员">"编辑标题"公式并键入以下内容:

"总计"

6)然后,您可以取消显示 右键单击"总计"列>行总计>取消总计,以使行总计

让我知道这是怎么回事!

-Abhilash

Twitter

上关注我们吗? 试用 SAP Idea Place

在SCN主题空间中分享您的知识

灬番茄
2楼-- · 2020-09-04 23:01

嗨,

我在Crystal报表交叉表中具有与上述类似的要求,但变化不大:

我需要将reprot显示为

A

B

C

D

E

计算的成员行(A + B + C + D + E)

计算的成员行=

GridValueAt(GetRowPathIndexOf(" A"),CurrentColumnIndex,CurrentSummaryIndex)+

GridValueAt(GetRowPathIndexOf(" B"),CurrentColumnIndex,CurrentSummaryIndex)+

GridValueAt(GetRowPathIndexOf(" C"),CurrentColumnIndex,CurrentSummaryIndex)+

GridValueAt(GetRowPathIndexOf(" D"),CurrentColumnIndex,CurrentSummaryIndex)+

GridValueAt(GetRowPathIndexOf(" E"),CurrentColumnIndex,CurrentSummaryIndex)

以上计算在地区组下。

以上值(A,B,C,D,E)来自数据库。 假设数据库中不存在特定组的" B"字样,即" GridValueAt的参数#1超出范围。"

如何检查字段的数据库中是否存在特定值?

谢谢

Sahithya

能不能别闹
3楼-- · 2020-09-04 23:09

Hi

我对计算所得的成员字段也有类似的问题,如何检查数据库中某个组是否存在特定值?

一周热门 更多>