我正在尝试从Crystal XI报告中删除对表的所有引用。 Crystal告诉我当前正在使用该表中的一列,因为在字段查看器中的字段上有一个绿色的复选标记。此外,如果我尝试删除整个表格,我会收到警告。警告几乎没用,因为它没有告诉我使用字段。现在,当程序员是真正的程序员,老鼠是猫追逐的东西时,我可以只是grep一个目录或文件,找到我感兴趣的变量的所有引用。但是我如何在Crystal中做到这一点?我已经尝试将报告导出到报告定义,这有助于找到麻烦领域的一些实例。不幸的是,这种格式不包括所有公式,只包括一些公式。请告诉我,我不需要购买第三方应用程序(或编写我自己的COM东西)只是为了做这个看似简单的事情。
编辑以添加有关切向点的详细信息: 如果有人想知道,我并不疯狂 - 我已经重复了导出的报表定义中没有显示公式定义的问题。我创建了一个新的空白报告,创建了一个名为stealth的公式,返回1234.然后我在Section Expert中使用了该公式的详细信息部分,在“suppress”公式中,将其设置为{@stealth} == 0。公式显示,但不是定义。因此,当我在公式中使用我不想要的列时,我无法找到它!这是rpt def看起来的样子(在删除一些空白行之后):
Crystal Report Professional v11.0 (32-bit) - Report Definition 1.0 File Information Report File: Version: 11.0 2.0 Record Sort Fields 3.0 Group Sort Fields 4.0 Formulas 4.1 Record Selection Formula 4.2 Group Selection Formula 4.3 Other Formulas 5.0 Sectional Information 5.1 Page Header Section Visible, Keep Together 5.2 Page Footer Section Visible, New Page After, Keep Together, Print At Bottom of Page 5.3 Report Header Section Visible, New Page Before 5.4 Report Footer Section Visible, New Page After 5.5 Details Section Visible Subsection.1 Visible, Keep Together Format Formulas Visible: {@stealth}= 0
答案 0 :(得分:8)
如果一切都失败了......
File -> Export -> Export Report
,然后选择Report Definition (TXT)
选项。
这将为您提供报告中每个元素的纯文本表示。您可以grep
或CTRL-F
或(插入您选择的搜索工具)。 “在公式中找到”通常有效,但我不得不多次走出口路线,原因并不明显。
编辑:当然,如果我想完全阅读你的帖子,我会发现你已经完成了这个。
非常好奇。
答案 1 :(得分:5)
如果右键单击“字段资源管理器”中的字段并选择“在公式中查找”,则应显示一个对话框,其中列出了公式中使用的所有位置。在对话框的左侧是一个可能存在的所有可能位置的树,包括像记录选择器和页面格式化功能这样的奇怪场所。不幸的是,它似乎没有列出正在运行的总字段。
编辑:糟糕,它存在的所有地方都列在对话框的底部;树视图是报告的整个“DOM”。
答案 2 :(得分:4)
我知道这是一个老帖子,但是......
没有敲响公式中的查找,它今天一直在拯救我,但我在查找该字段的最后一个实例时遇到了麻烦。即使在报告中的所有公式和粪便都被处理之后,我仍然只有一个隐藏在某个地方。
我发现它隐藏为子报告链接。右键单击Subreport - > “改变子报告链接......”并且有罪魁祸首。放弃这篇文章是因为我认为其他人也可能有这个问题。
字段有时也可能隐藏在“记录排序专家”
中答案 3 :(得分:2)
回应旧帖子,但遇到了类似的问题。我有一个基于我想要删除的具有指定顺序的公式的组。当我将分组更改为其他字段时,指定的顺序仍然存在。当我删除指定的订单时,我的公式可能会被删除。
答案 4 :(得分:1)
这是在XIr2上测试的......
您可以通过“设置数据源位置”对话框更改表数据源。现在,当它进入列映射模式时,取消选中match-type并选择一个会导致公式出错的新列。 (即,如果您要查找的列是字符串,请将其替换为日期时间列)。转到预览,你会得到一个错误框,如“这里需要一个字符串。”,关闭该错误并弹出违规公式!
答案 5 :(得分:0)
还有一个建议。在遵循了很多建议之后,我的报告仍然告诉我配方正在使用中。我不得不关闭报告。当我再次打开它时,复选标记消失了,它让我删除它。这是在Crystal v 11.0.0.1282
上答案 6 :(得分:0)
虽然这是一篇旧文章,但Crystal Reports本身仍然存在这种功能差距。我们对第三方软件进行了为期14天的全功能试用,该软件使用最新的Crystal.net API一次性搜索Crystal RPT文件库中的纯文本。还可以搜索报告中保存的数据,标签内的文本以及所有报告(存储过程,视图和表数据)背后的数据源,并支持SQL Server,SQL Azure,MySQL,Oracle,Amazon RDS,DB2和访问。
的更多信息和试用版下载注意,您需要下载并安装兼容的SAP Crystal.net运行时连接器,以便搜索RPT文件库。
答案 7 :(得分:0)
在我的情况下,公式字段恰好是旧的“运行总计”字段的一部分,该字段本身未包含在报告中。删除这个旧的运行总计字段后,我可以删除未使用的公式字段。
答案 8 :(得分:0)
很晚,但是我使用CR 2008(12.3.0.601)和今天(2015年6月16日)我试图仅记录我的报告的公式。我知道导出报表定义,并在所有公式中查找公式。但是大约有50个公式。我发现导出的报告定义并没有记录我的所有公式,但我没有理由去揭示其背后的逻辑;相反,我将所有公式放入一个部分,然后导出报告定义。瞧。当然,我仍然需要剔除所有不必要的定义元素。但至少我有所有的公式。
答案 9 :(得分:0)
所有伟大的选择......我仍然有一个实例隐藏我。我通过创建数据表的克隆并重命名\删除字段来找到它的位置。
然后我使用"设置数据库位置"如上所述,指向我的新表。当它找不到那个字段时却出错了,但仍然没有告诉我它到底在哪里(它只是说报告字段)。
我没有映射它并点击继续从报告中删除该字段。然后我把它映射回真实的桌子,我很好。
在我的情况下,有一个图表,该字段被用作" on Change"字段。