【问题标题】:Use like operator in Crystal Report record selection formula在 Crystal Report 记录选择公式中使用 like 运算符
【发布时间】:2018-04-07 17:31:22
【问题描述】:

您好,我正在使用 Crystal Report 2008 创建报表。我需要将以下 oracle SQL 查询转换为 Crystal Report 记录选择公式。

Oracle 查询是:

AND 
(
  UPPER(920_SEARCH_REPORT.HANDICAP_TYPE) LIKE UPPER(:HANDICAP_TYPE)
  OR UPPER(920_SEARCH_REPORT.SKSKODENR) LIKE UPPER(:SKSKODENR)
)

我已将其转换为公式,如下所示:

and 
(
    isnull({?Hancicap_Type}) = true 
        or ((UpperCase({?Hancicap_Type}) Like ("*"&UpperCase({920_SEARCH_REPORT.HANDICAP_TYPE})&"*"))    
        or (UpperCase({?SKSKODENR}) Like ("*"&UpperCase({920_SEARCH_REPORT.SKSKODENR})&"*")))
)

但水晶报表执行时数据未显示。但是sql查询返回一条记录。

谁能帮我解决这个问题。

【问题讨论】:

  • 公式中的isnull有什么用
  • 检查参数值是否为空。 IsNull 函数不是必须使用的。我们可以这样做: {?Hancicap_Type} = "" 或 ....
  • 这就是你所缺少的一点......我在这种情况下使用 if 函数,那么我相信你的公式会起作用
  • 你能给个主意吗。示例代码。它会帮助我。我的其他条件在不使用多个或运算符的情况下运行良好。
  • 我遇到了同样的一般问题,但我使用的是普通 SQL 语法 (%) 而不是 Crystal 语法 (*)。

标签: crystal-reports sql-like


【解决方案1】:

您需要使用正确的参数语法:{?parameter_name}。

...
AND 
(
  ( UPPER(920_SEARCH_REPORT.HANDICAP_TYPE) LIKE "*" + UPPERCASE({?HANDICAP_TYPE}) + "*")
  OR 
  ( UPPER(920_SEARCH_REPORT.SKSKODENR) LIKE "*" + UPPERCASE({?SKSKODENR}) + "*")
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多