【问题标题】:Pulling data from Crystal Reports从 Crystal Reports 中提取数据
【发布时间】:2016-01-14 19:23:14
【问题描述】:

我的数据存储在 Oracle 中,我可以使用它运行报表的唯一方法是使用 Crystal Reports。我有一组看起来像 ,,,,,,,,,,1, 或 ,1,,,,,,, 或 ,1,,,,,1,,,,1, 的数据。还有更多的变化。

每一个都意味着记录的一个值是正确的。大约有 54 个“记号/逗号”我想要的是所有记录,其中一个位于 X 点。因此,对于一份报告,我可能想要第 10 个位置的所有记录都有 1。可能在其他时候,我想要 1 在第 36 点之后的记录。我同意它会拉出其他记录,但我想要的主要是X 点。

我如何得到这个?我尝试了一个 Like 命令,但这并没有将数据缩小到足够的范围。我熟悉 SQL 但不熟悉 Crystal。

任何帮助都会很棒。 TIA

【问题讨论】:

  • 对我来说,如果您使用存储过程获取数据并从中调用该存储过程来生成水晶报告会很舒服

标签: oracle crystal-reports report


【解决方案1】:

在 Crystal 中,您可以尝试设置一个参数字段来保存一个数值(1 到 54),然后在公式中将其用作记录选择。运行报表时,系统会提示您输入参数。

【讨论】:

    【解决方案2】:

    在记录选择中,我最初会建议以下内容,这将带回第 12 位中包含 1 的所有记录。但这使得恢复范围变得困难。

    split({yourfield},",")[12] = 1
    

    这会恢复原状

    instr({@test},"1") = 12
    

    那么对于您上面的建议,您可以使用以下命令恢复任何记录,如果它在 36 之后的任何位置都有记录

    instr({@test},"1") >= 37
    

    只要字段中只有一个 1,您也可以将其用于其他范围。

    【讨论】:

      【解决方案3】:

      实际上我不想打扰Clayton Morris 和CoSpringsGuy 的回答,因此发布我的回答。

      您需要结合这两种解决方案以获得所需的结果。

      1. 创建一个数字参数并提供 1 到 57 个数字或只保留一个字段以输入所需的数字。

      2. 现在在记录选择中使用CoSpringsGuy给出的公式

      if instr({databasefield.column},"1") = {?Inputnumber} --parameter field then {databasefield.column}

      【讨论】:

        猜你喜欢
        • 2014-07-08
        • 1970-01-01
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        • 1970-01-01
        • 2012-11-06
        • 1970-01-01
        • 2016-02-21
        相关资源
        最近更新 更多