在Crystal Reports中的同一表/字段中搜索两个参数

2020-09-10 09:09发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)如果找到了两个参数,是否可以在同...

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

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


如果找到了两个参数,是否可以在同一表和同一字段中搜索两个不同的参数,并从第二个字段(链接的)返回值? 这是我的示例:

cases.caseID(string):1234

drugresults.drugID(字符串):阿莫西林

宏出价

如果参数1(阿莫西林)和参数2(宏)都在该特定CaseID的DrugID中,我希望返回caseID。 如果我只有那个caseID的parameter1(阿莫西林)而不是parameter2(宏),则我不希望返回caseID。 和语句不起作用。 如果我使用or语句,则该方法有效,但是当我只希望同时具有两种药物的caseID时,它将返回所有具有阿莫西林的CaseID,然后返回所有具有Macrobid的caseID。

我有Crystal Reports版本11.0.0.895。

预先感谢!

2条回答
d56caomao
2020-09-10 09:13

您的SQL技能如何? 我有两种方法可以做到这一点,并且都需要编写一些SQL。

如果只是在Crystal中联接表,则可以使用以下逻辑编写SQL表达式:

 {%DrugCheck}
 存在(
   选择1
   来自药物结果为dr1
   其中" dr1"。" drugID" ='{?Drug1}'
     和" dr1"。" caseID" ="案例"。" caseID"
 )
 和
 存在(
   选择1
   来自药物结果为dr1
   其中" dr1"。" drugID" ='{?Drug2}'
     和" dr1"。" caseID" ="案例"。" caseID"
 )

我假设"宏"是另一个DrugID。 如果不是,则必须修改第二个Select语句以使其匹配。 另外,请注意我是如何将参数放在单引号中的-在使用SQL表达式或命令时,这是字符串参数所必需的。

然后您将在Select Expert中使用此SQL表达式

执行此操作的另一种方法是使用命令(SQL Select语句)获取报表的所有数据。 在这种情况下,您将在命令的Where子句中包含上述内容。 有关如何使用命令的更多信息,请参阅此博客文章: https://blogs.sap.com/2015/04/01/best-practices-when-using-commands-with-crystal-reports/

最后, 您使用的Crystal版本太旧,并且已经超过10年的支持范围。 如果出于某些原因需要使用Crystal XI,我强烈建议您访问 https://blogs.sap.com/2011/06/07/where-did-all-the-crystal-reports-xi-r1-and-r2- fixes-go/并按照说明升级到最新可用的Service Pack-Crystal XI r2 SP6。 该软件已进行了许多修复,以使其在您使用的版本与上一个版本之间更稳定。 但是,如果可能的话,您应该真正考虑升级到最新版本的Crystal(Crystal 2016)。

-Dell

一周热门 更多>