运行SQL命令

2020-08-20 05:05发布

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

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


我想按月,按客户,按库存组,按销售员...绘制年度销售额图表。

会有很多计算

我想该过程将是:

运行报表时,Crystal Reports将:

1)使用一堆MySQL命令从原始数据中进行计算,并将结果存储到表中

2)使用此表绘制图表

有可能这样做吗?

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

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


我想按月,按客户,按库存组,按销售员...绘制年度销售额图表。

会有很多计算

我想该过程将是:

运行报表时,Crystal Reports将:

1)使用一堆MySQL命令从原始数据中进行计算,并将结果存储到表中

2)使用此表绘制图表

有可能这样做吗?

付费偷看设置
发送
8条回答
Cikesha
1楼 · 2020-08-20 05:38.采纳回答

嗨,Jerry,

如果您希望在没有View且完全在CR中的情况下执行此操作,则需要执行以下操作:

1。 保存后缀为" _subreport"的现有报告的副本(稍后我们需要)。

2。 打开原始报告,然后修改显示月份总数的公式,如下所示:

 WhilePrintingRecords;
 numbervar invoice_total;
 numbervar month_total;
 stringvar str_mtotal;
 month_total:= month_total +发票_total;
 str_mtotal:= str_mtotal + totext(month_total)+">";
 month_total; 

2。 使用以下代码创建一个多带带的公式@final_string:

 WhilePrintingRecords;
 stringvar str_mtotal;
 左(str_mtotal,len(str_mtotal)-1); 

3。 在报表页脚中插入一个子报表。 选择在步骤1中保存的报告作为子报告。

您可以选择创建一个新报告作为子报告,但是,您需要确保主报告和子报告都返回相同的报告 数据或至少相同的月数。 因此,将现有报告用作子报告可能更容易

4。 右键单击子报表>选择"更改子报表链接">选择@final_string公式字段并将其移到右侧窗格。

取消选中"根据字段选择子报表中的数据"选项。

5。 进入子报表并删除所有现有的公式字段。

6。 删除所有不必要的组。 您唯一需要的组是在"日期"字段上显示每个月。

7。 使用此代码创建一个名为@disp_total的公式字段,并将其放在组标题#1(月份组)上:

 tonumber(Split({?Pm- @ finalstring},">")[GroupNumber  ])

8。 取消显示组页眉和组页脚

9。 在报表页脚上插入一个图表。 选择日期字段作为"更改日期",并将其设置为打印"每月"

10。 将@disp_total公式字段用作"显示值",并将其汇总函数设置为"最大"。

希望这会有所帮助。

-阿比拉什

clever101
2楼-- · 2020-08-20 05:41
< p> hi Abhilash,

我已经创建了一个视图并将其用于图表,但这非常慢。

然后,我找到了您的答案,步骤非常清楚且易于遵循,瞧,我得到了图表。

我无法想象我有多兴奋,超级感谢您,您真了不起!!!

Tong__Ming
3楼-- · 2020-08-20 05:33

不,您不能从Crystal存放到桌子上,然后准备 表。 (实际上,您可以,但是这是一个复杂的主要难题,需要在数据库中创建和使用存储过程或存储函数来实现它...)但是,我对此有建议。

您 将在主报表中绘制一个图表,并在其自己的子报表中绘制其他每个图表。 在主报告和每个子报告中,您将编写一个命令(SQL Select语句),该命令将访问报告 AND 的原始数据,并在图表的组级别进行汇总。 因此,例如,一个命令将按月份汇总数据,另一个命令将按客户汇总数据,另一个命令将按销售人员汇总,依此类推。每个命令将针对查询中的每个组返回一行数据(例如,month, 客户等)。 这样,所有的计算都需要包含在您的命令中,并被推送到数据库中,在那里,与Crystal相比,它们的处理效率更高,因为这就是数据库的作用。

您 可以在此处找到有关使用命令的更多信息: https: //blogs.sap.com/2015/04/01/best-practices-when-using-commands-with-crystal-reports/。 如果查询中有任何参数,则需要在命令中创建它们,然后从主报表中的参数链接到"子报表链接"屏幕左下方的子报表中的参数,然后取消选中"选择基于子报表中的数据 屏幕右下方。

-戴尔

闻人可可
4楼-- · 2020-08-20 05:40

感谢戴尔

我的报告如下:

其中数字来自"公式字段",例如:

 WhilePrintingRecords;  
numbervar invoice_total;
numbervar month_total;
month_total:= month_total +发票_total

是否可以将它们(月数与销售额)保存到临时表中,以便我可以从该表中绘制图表?

天桥码农
5楼-- · 2020-08-20 05:32

好吧,我将投票给Dell的答案... 但是
有时出于性能问题,我们避免使用命令。
我们总是尝试通过所需的计算得出一个漂亮的视图。

在您的情况下,类似...

从(选择MonthYear,SUM(InvoiceAmmount)AS InvoiceTotal中选择从MonthYear,SUM(InvoiceAmmount)开始
 从TABLE,其中YEAR = 2019//参数//
  按月分组
 

这是我在社区中的第一个答案,希望对您有帮助...

关于

Augusto

闻人可可
6楼-- · 2020-08-20 05:31

感谢Augusto,但是invoice_total是"公式字段",来自原始数据的计算:应税项目,非应税项目,折扣,税金,运费...

如何将这些值存储到数组或临时表中,以便在图表中使用它们。

Jerry

派大星 ヾ
7楼-- · 2020-08-20 05:27

尊敬的Jerry,

您如何尝试创建一个用于计算客户每月销售额的数据库视图

并使用 查看作为Crystal报表的数据源。

这将帮助您随心携带图表。

问候

Venkat

# p#

hi Abhilash Kumar

这是固定的,我不好。

说明很清楚,但是我做错了,因为我有两个部分(用于计算,显示),而不是一个示例。

将公式字段移动到显示部分后,它是完美的。

再次感谢您的帮助

Jerry

一周热门 更多>