【问题标题】:How do I grep (search) a Crystal report for all uses of a column?如何 grep(搜索)Crystal 报表以用于列的所有用途?
【发布时间】:2009-07-13 21:10:46
【问题描述】:

我正在尝试从 Crystal XI 报表中删除对表的所有引用。 Crystal 告诉我当前正在使用该表中的一列,因为字段查看器中的字段上有一个绿色的小复选标记。此外,如果我尝试删除整个表格,我会收到警告。该警告几乎没有用,因为它没有告诉我 在哪里 使用了该字段。现在,当程序员是真正的程序员,老鼠是猫追逐的东西时,我可以只用 grep 一个目录或文件找到对我感兴趣的变量的所有引用。但是我如何在 Crystal 中做到这一点?我已经尝试将报告导出到报告定义,这有助于找到一些麻烦字段的实例。不幸的是,该格式不包括所有公式,只是一些。请告诉我,我不必为了做这件看似简单的事情而购买第三方应用程序(或编写自己的 COM 东西)。

编辑以添加有关切点的详细信息: 万一有人想知道,我不是疯了 - 我已经重复了公式的定义没有出现在导出的报告定义中的问题。我创建了一个新的空白报告,创建了一个名为隐形的公式,它返回 1234。然后我在 Section Expert 中使用该公式作为详细信息部分,在“抑制”公式中,将其设置为 {@stealth} == 0。使用公式的出现,但没有定义。因此,当公式中使用了我不需要的列时,我无法找到它!这是 rpt def 的样子(删除一些空行之后):

Crystal Report Professional v11.0 (32-bit) - 报表定义 1.0 文件信息 报告文件: 版本:11.0 2.0 记录排序字段 3.0 分组排序字段 4.0 公式 4.1 记录选择公式 4.2 组选择公式 4.3 其他公式 5.0 部分信息 5.1 页眉部分 可见,保持在一起 5.2 页脚部分 可见,新页面后,保持在一起,在页面底部打印 5.3 报告标题部分 可见,之前的新页面 5.4 报表页脚部分 可见,之后的新页面 5.5 细节部分 可见的 第 1 小节 可见,保持在一起 格式化公式 可见:{@stealth}= 0

【问题讨论】:

  • 根据我们在我的(非)答案中的对话,我想说您的选择归结为,没有特别的顺序,1)“升级”到 R2,2)购买第三方工具(是否存在?),3)自己对二进制格式进行逆向工程或 4)从头开始重新创建报告。还记得“损坏的保存”错误吗?我不止一次地从头开始重新创建。

标签: debugging crystal-reports


【解决方案1】:

如果一切都失败了......

File -> Export -> Export Report,然后选择Report Definition (TXT) 选项。

这将为您提供报告中每个元素的纯文本表示形式。您可以通过它grepCTRL-F 或(插入您选择的搜索工具)。 “在公式中查找”通常有效,但我不得不走几次出口路线,没有明显的原因。

编辑:当然,如果我费心完整阅读您的帖子,我会发现您已经完成了。

很好奇。

【讨论】:

  • 正如我在问题中提到的,我已经尝试导出到报告定义,但该格式不包括我报告中所有公式的列表。也许它只显示放置在要打印的报告中的公式,而不是其他公式使用的公式?
  • 你是对的,你确实提到了这一点。在发布我的答案之前,我阅读了您的帖子三遍......(Head, meet Desk)。不幸的是,我每天都在积极使用 9、10 和 XI,所以有时我会迷惑自己。无论如何,老实说,这是我第一次听说报告定义没有显示所有内容。在“在公式中查找”之前,Report Def 是官方的方式。当然,我得到了 Crystal Decisions 的“官方答复”,即“我们无能为力,请尝试从头开始重新生成报告。” :(
  • 我确定您知道这一点,但请记住,尽管报告定义的“第 4.0 节”自称“公式”部分,但可能还有 很多散布在整个文档中的公式(公式?)。条件格式、抑制等,公式将在更下方,它们附加到的实际对象,并且在“公式”部分中。我会为此做噩梦。
  • 我用一个极其简单的报告复制了隐形公式问题。有关详细信息,请参阅上面的编辑帖子。 @Adrien,是时候开始做噩梦了 :)
  • $diety 我讨厌水晶。现在我更讨厌它了;我得到了与您描述的完全相同的行为。拥有一个旨在供程序员使用而不是 PHB 使用的报告组件会有多棒?诚实地。 Crystal 显然是为非技术(l)用户编写的,但我从未在生产中看到过这种级别的用户。而对我们来说……这只是一个笨拙的噩梦。你听到的砰砰声是我的头又碰到了我的办公桌。
【解决方案2】:

如果您在字段资源管理器中右键单击该字段并选择在公式中查找,它应该会弹出一个对话框,其中列出了它在公式中使用的所有位置。对话框的左侧是所有可能位置的树,包括记录选择器和页面格式化功能等奇怪的位置。不幸的是,它似乎没有列出运行总计字段。

编辑:哎呀,它存在的所有地方都列在对话框的底部;树视图是报表的整个“DOM”。

【讨论】:

  • 嘿。如果它像右键单击一样简单,我会在几个小时前完成这项工作!既然我知道要寻找什么,很容易知道我想要的功能以及您描述的功能仅在 XI Release 2 中引入 (help.sap.com/businessobject/product_guides/boexir2/en/…) 我明天将尝试升级我的工作站,假设我们的供应商got crystal from 可以为我提供更新的版本。谢谢你! (现在投赞成票,如果没有人在旧版本中这样做,明天最好的答案)
  • 嘿,我什至没有意识到这是 R2 独有的功能。 BusinessObjects 表示,R2 只是为了与 .NET 2.0 兼容而设计的,没有添加任何新内容... XIR2 可以下载...您只需要您的许可证号(您应该可以从 Help->About 中获得它。@ 987654322@(Service Pack 2 完整版本)。
  • 如果你有 XIr1,我认为 R2 是免费升级的。当然,由于 SAP 比 Business Objects 更糟糕,因此找到下载可能会很困难,但它不应该是不可能的,而且应该是合法的。这可能会有所帮助:resources.businessobjects.com/support/additional_downloads/…
【解决方案3】:

我知道这是一篇旧帖子,但是...

没有敲“在公式中查找”,它今天救了我,但我很难找到该字段的最后一个实例。即使把报告上的所有公式和粪便都处理了,我仍然有一个孤独的用途躲在某个地方。

我发现它隐藏为子报表链接。右键单击子报表->“更改子报表链接...”,这是罪魁祸首。放弃这篇文章是因为我认为其他人也可能有这个问题。

字段有时也可以隐藏在“记录排序专家”中

【讨论】:

    【解决方案4】:

    回复一个旧帖子,但遇到了类似的问题。我有一个基于我想删除的具有指定顺序的公式的组。当我将分组更改为不同的字段时,指定的顺序仍然存在。当我删除指定的订单时,我的公式可能会被删除。

    【讨论】:

      【解决方案5】:

      这是在 XIr2 上测试的...

      您可以通过“设置数据源位置”对话框更改表数据源。现在,当它进入列映射模式时,取消选中匹配类型并选择一个会导致公式错误的新列。 (即,如果您要查找的列是字符串,请将其替换为日期时间列)。转到预览,您应该会看到一个错误框,例如“此处需要一个字符串。”,关闭该错误并弹出有问题的公式!

      【讨论】:

      • +1 既狡猾又聪明。明天早上看看它是否在 R1 中工作,(似乎它必须工作。)这现在只是一个智力练习,因为我找到了实际的违规公式!谢谢:)
      • 它可能会导致 r1 崩溃。 :)
      【解决方案6】:

      还有一个建议。在遵循了这里的很多建议之后,我的报告仍然告诉我这个公式正在使用中。我不得不关闭报告。当我再次打开它时,复选标记消失了,它让我删除它。这是在 Crystal v 11.0.0.1282 上

      【讨论】:

        【解决方案7】:

        在我的情况下,公式字段恰好是旧的运行总计字段的一部分,该字段本身未包含在报告中。一旦我删除了这个旧的运行总计字段,我就可以删除未使用的公式字段。

        【讨论】:

          【解决方案8】:

          很晚了,但我使用的是 CR 2008 (12.3.0.601),就在今天(2015 年 6 月 16 日),我试图只记录我报告的公式。我知道导出报告定义和在所有公式中查找公式。但是大约有50个公式。我发现导出的报告定义并没有记录我的所有公式,但我没有费心去揭示其背后的逻辑;相反,我将所有公式放入一个部分,然后导出报告定义。瞧。当然,我仍然需要剔除所有不必要的定义元素。但至少我有所有公式。

          【讨论】:

            【解决方案9】:

            因此,在所有出色的选择中.. 我仍然有一个实例对我隐藏。我通过创建数据表的克隆并重命名\删除该字段来找到它的位置。

            然后我使用上面建议的“设置数据库位置”来指向我的新表。当它找不到那个字段但仍然没有告诉我它到底在哪里(它只是说报告字段)时,它确实出错了。

            我没有映射它并单击继续从报告中删除了该字段。然后我把它映射回真实的桌子,我很好。

            在我的例子中,有一个图表,并且该字段被用作“更改”字段之一。

            【讨论】:

              【解决方案10】:

              虽然是一篇旧帖子,但 Crystal Reports 本身仍然存在这种功能差距。我们对第三方软件进行了 14 天的全功能试用,该软件使用最新的 Crystal.net API 在 Crystal RPT 文件库中一举搜索纯文本。还搜索保存在报告中的数据和标签中的文本……以及所有报告背后的数据源(存储过程、视图和表数据),支持 SQL Server、SQL Azure、MySQL、Oracle、Amazon RDS、DB2和访问。

              更多信息和试用版下载地址http://www.finditez.com

              请注意,您需要下载并安装兼容的 SAP Crystal.net 运行时连接器以搜索您的 RPT 文件库。

              【讨论】:

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