Crystal Reports-显示列表中的所有项目-受影响和不受影响。

2020-08-14 19:07发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在处理一个报告,该报告显示了...

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

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


我正在处理一个报告,该报告显示了用户完成的一组培训列表。 该报告需要显示的是培训列表以及用户完成培训的日期。 例如,对于给定的用户USER A,该报告需要显示:

用户A

 训练
 ---------
 培训A 1/1/2020
 培训B
 培训C 6/1/2020
 培训D 

首先,我在报告中有两个命令。 命令1用于提供有关用户,培训和培训日期的信息。 命令2用于提供可用培训的列表。 我将两个命令与训练描述值链接在一起。 "培训"已分组,并且培训说明位于"详细信息"部分。

我现在如何配置报告,以便报告将在上面显示培训说明的列表以及用户在完成培训后仍显示所有培训的日期?

6条回答
太Q了
2020-08-14 19:40

如果要按Skill排序,然后按TrainingDescript排序,则应该可以:

官员培训为(
   选择
     培训说明
     名称,
     max(CompDateTime)作为CompDateTime,
   来自TrainingCheckOff
   {?SelectedOfficers}中的OfficerId在哪里
     和TrainingDescript之类的'{?Skill}'+'%'
   按TraininDescript分组,名称
 )

 选择
   tl.TrainingDescript,
   案件
     当tl.TrainingDescript喜欢'cspace%'然后'CSPACE'
     当tl.TrainingDescript喜欢'gen%'然后'GENERAL'
     当tl.TrainingDescript喜欢'rope%'然后'ROPE'
     当tl.TrainingDescript喜欢'sct%'然后是'SCT'
     当tl.TrainingDescript喜欢'trench%'然后'TRENCH'
   以技能结束
   ot.Name,
   ot.CompDateTime
 来自TrainingList tl
   左加入主任培训
     在tl.TrainingDescript = ot.TrainingDescript
 其中Code ='TRTSkillCheckOff'
   和TrainingDescript之类的'{?Skill}'+'%'
 但是,如果您需要按人员分组,则事情会变得更加复杂,因为您需要警官和TrainingList之间的完全外部连接才能获取所有信息 。 可能看起来像这样:

,其中OfficerTraining为(
   选择
     培训说明
     名称,
     max(CompDateTime)作为CompDateTime,
   来自TrainingCheckOff
   {?SelectedOfficers}中的OfficerId在哪里
     和TrainingDescript之类的" {?Skill}"
   按名称分组,TraininDescript
 ),

 官员姓名为(
   选择不同的名称
   来自OfficerTraining
 )

 选择
   tl.TrainingDescript,
   案件
     当tl.TrainingDescript喜欢'cspace%'然后'CSPACE'
     当tl.TrainingDescript喜欢'gen%'然后'GENERAL'
     当tl.TrainingDescript喜欢'rope%'然后'ROPE'
     当tl.TrainingDescript喜欢'sct%'然后是'SCT'
     当tl.TrainingDescript喜欢'trench%'然后'TRENCH'
   以技能结束
   oNames.Name
 来自OfficerTraining ot
   完整的外部加入OfficerName oNames
     在1 = 1
   左加入TrainingList tl
     在tl.TrainingDescript = ot.TrainingDescript
 和oNames.Name = ot.Name
 其中Code ='TRTSkillCheckOff'
   和TrainingDescript之类的" {?Skill}"
 按名称,技能,培训顺序排序
 

这只会拉那些至少上过一堂课的人员。 如果需要显示所有人员,请更改OfficerNames查询以从包含所有人员列表的表中获取列表,并添加以下内容:

其中{?SelectedOfficers}  

对于这两种方法,我都用Crystal参数替换了where子句中的硬编码值。 您将在命令编辑器中创建两个参数。

对于{?Skill}参数,在保存命令后将执行以下操作:

-在 字段浏览器的"参数"部分。

-在参数编辑器中间的"值/描述"部分中,将"值"设置为技能案例语句的"喜欢"部分中的值(包括"%" ""和对技能案例陈述中" then"部分的说明。

-设置以下属性:

仅带有说明的提示= True
允许自定义 值= False
显示值或描述=显示值

对于{?OfficerID}参数,请按照我上一篇文章中链接到的博客中有关动态参数的说明进行操作。

Dell

一周热门 更多>