【问题标题】:Crystal Report won't display record if GUID column in Record Selection Formula如果记录选择公式中的 GUID 列,Crystal Report 将不显示记录
【发布时间】:2015-08-05 16:10:44
【问题描述】:

我有一个包含 GUID 列和 recordId(不是 guid)列的表。我需要我的报告接受 GUID 作为报告参数并将其用作记录选择公式的一部分,以确保报告仅获得所需的记录 ID。

[链接表] -> [详细包含表]

由于报表不支持直接传递 GUID 参数,我能够将 GUID 转换为字符串并顺利传递。当我在 Crystal Designer 中生成 SQL 查询时,它看起来不错: WHERE 子句格式正确,如果我在 SQL Designer 中运行查询,它将找到我需要获取的所有记录。然而,实际上尝试显示报告失败,它指出尽管 SQL Profiler 也显示相同的 SQL 已被触发,但仍找到了 0 条记录。

有人遇到过这个问题吗?有没有办法让记录选择公式在实际显示报告时不删除记录?

【问题讨论】:

  • 记录选择公式不会删除任何内容。它只会将 where 子句添加到查询中...检查您传递给 GUID 的数据,这会阻止返回所需的数据。
  • 它在 SQL 查询中添加了正确的 where 子句,但在执行显示传递时宣布返回 0 条记录。 SQL Profiler 已验证在 Where 子句中使用了正确的 GUID。
  • 这意味着该 GUID 没有记录...尝试另一个 id
  • 我不确定你是否理解。它是正确的 GUID,并且在 SQL 管理器中直接针对数据库运行 SQL 语句确实会产生记录。
  • 这是奇怪的行为...尝试删除记录选择并运行报告并查看记录是否出现

标签: crystal-reports crystal-reports-xi


【解决方案1】:

与 SAP 支持合作后,我们能够确定 14.0.11 中存在缺陷。 SQL 查询的格式正确,但引擎盖下的记录链接使用了不同(且不正确)的链接顺序。由于数据库结果和内部架构以不同的起始表结束,Crystal 丢弃了结果以防止异常。

转到 Database Expert -> Links -> Order Links 并选中“Link Ordering is Enforced”框会强制引擎在整个报告中使用相同的链接排序以正确的顺序。然后 SQL 查询和内部记录模式匹配,我们得到了记录。

【讨论】:

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