Crystal Reports:选择最接近第90个百分位数的字段值

2020-09-01 14:44发布

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

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


我有一个报告,该报告需要显示值列表中的第90个百分点。 我可以使用摘要选项来获得第90个百分位值,但是我得到的值不是列表中的确切值; 它是通过summary选项计算得出的值。 因此,例如,该报告将给我约150,但我知道列表中第90个百分位数的实际值是155。这有点偏离,因为它不是列表中的确切值(再次)。

是否可以使用此计算出的数字从列表中选择实际的第90个百分位值,或与其接近的值?

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

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


我有一个报告,该报告需要显示值列表中的第90个百分点。 我可以使用摘要选项来获得第90个百分位值,但是我得到的值不是列表中的确切值; 它是通过summary选项计算得出的值。 因此,例如,该报告将给我约150,但我知道列表中第90个百分位数的实际值是155。这有点偏离,因为它不是列表中的确切值(再次)。

是否可以使用此计算出的数字从列表中选择实际的第90个百分位值,或与其接近的值?

付费偷看设置
发送
4条回答
hongfeng1314
1楼 · 2020-09-01 15:14.采纳回答

这不一定是直截了当的,因为您试图获得特定的值。 我认为您的逻辑取最大值的90%。 我可能会改用以下逻辑:

1。 根据值对列表进行排序。

2。 计算值的数量。

3。 将计数除以10。您不必乘以9就可以得到90%,因为您实际上只需要是前10%的计数。

4。 由于第3步中的值可能不是整数,因此您需要确定如何舍入它:
a。 使用小数点右边的值使用标准舍入向上或向下。
b。 一直向上
c。 永远下来

5。 如果您需要90%而不是前10%的确切值,则将在报表标题的子报表中执行此操作,并使用共享变量将您计算出的记录号传递回主报表中的变量。 在这种情况下,请使子报表尽可能小,关闭边框,然后关闭该子报表的"可以增长"。 这样,它实际上不会出现在主报表中,但是您仍然会获得所需的记录号值。

如果让我知道您要如何显示它,我将 ll提供一些操作方法。

-Dell

悠然的二货
2楼-- · 2020-09-01 15:02

我做了一些插入子报表,并且能够使它正常工作! 谢谢您关于如何获取百分位数值的建议!

代楠1984
3楼-- · 2020-09-01 15:06

实际上,更多地了解如何做到这一点,您不会使用我上面解释的内容。 而是为您的值创建摘要。 然后打开"组排序专家"(直到创建摘要后才启用),并使用以下值:

对此组排序:基于最高百分比

关于:报告的摘要

百分比为:10

从这里开始,您可能需要使用它,因为我不确定它是升序还是降序。 如果升序,则将数据放在组头中并隐藏详细信息。 如果它是降序的,则将数据放在组页脚中并取消显示详细信息。

-Dell

槿木_熙
4楼-- · 2020-09-01 15:06

尝试获取在组头之前运行的子报表中的数字。 使用全局变量将值传递回主报表,并将包含变量值的公式放在组标题中。 需要几个公式来处理:

1。 在主报表中创建一个公式以初始化变量值。 看起来像这样:

 WhilePrintingRecords;
 全局NumberVar值:= 0;
 "" <-此行确保该公式实际上不显示任何内容。

2。 将这个公式放在报表标题(即使报表标题被取消)和组页脚中,以便在报表的开头和每个组之间初始化该值。

3。 在子报表中,创建一个公式,该公式将设置变量的值。 将其放在包含所需值的子报表的任何部分。 看起来像这样:

 WhilePrintingRecords;
 全局NumberVar值:= {MyTable.MyField};
 "" 

4。 在主报表中,创建另一个公式以显示子报表中的值。 将此公式放在要显示它的组标题部分。

 WhilePrintingRecords;
 全局NumberVar值

-Dell

一周热门 更多>