Crystal Reports:在报表中实现昨天的日期或日期范围

2020-09-07 03:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我目前正在报表中使用下面的SQL...

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

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


我目前正在报表中使用下面的SQL来管理用户的要求。

1。 安排报告以显示前一天的数据。

2。 根据需要运行数据范围的报告。

声明
 @beginDate日期时间,
 @endDate日期时间

 if(convert(date,{?BeginDate})= convert(date,'1/1/1800')and convert(date,{?EndDate})= convert(date,'1/1/1800'))
   开始
    设置@beginDate = dateadd(day,datediff(day,1,getdate()),0);
    设置@endDate = dateadd(day,datediff(day,1,getdate()),0);
   结束
 其他
   开始
    设置@beginDate = {?BeginDate};
    设置@endDate = {?EndDate};
   结束

 选择Staffing_Calendar_Da,payhours,Staffing_Start_Dt,unit_name_ch,t.Pos_Desc_Ch,Wstat_Abrv_Ch,Payhours_day,Payhours_night,total_payhours,p.category2,
 如果Payhours_day> 0,则"天"以"天"结尾,
 如果Payhours_night> night> 0然后" Night"以" Night"结尾,
 在total_payhours> 0的情况下,"全部"以" day_night"结尾
  来自vw_position_OTP t
 内部连接vw_mcfrs_Position_Hours p on t.Pos_Desc_Ch = p.Pos_Desc_Ch
 在@beginDate和@endDate之间的t.Staffing_Calendar_Da
 和Category2不像'%chief';
 

我将" 1/1/1800"用作参数值,以便在计划报告时将其传递给报告。 用户将不知道该参数值。 他将只获得包含前一天数据的报告。

现在,我的问题是,是否有办法从SQL中删除此" 1/1/1800"并对其进行配置,以便它可以使用例如getdate()自动生成前一天的数据? 我一直在寻找实现此目的的方法,但问题是,我不知道如何保留日期范围输入行-@beginDate和@endDate之间的t.Staffing_Calendar_Da。

6条回答
2020-09-07 04:18

回答您的问题/意见:

1。 通过中央管理控制台在Crystal Server上安排报告。 为了进行计划,必须输入并保存一个设置值,以便每次按计划运行报表时,该值都将用于检索数据。

2。 因此,当用户登录Crystal Reports网站时,用户会看到与我从Crystal Reports开发人员看到的相同的参数窗口。 用户可以在参数窗口中输入开始日期和结束日期。

4。 先生,您的密码 @endDate必须是getdate()-1才能获取前一天的数据,不是吗? 另外,我需要输入什么值来提取代码中前一天的数据-我需要进行排程?

一周热门 更多>