Crystal Reports.FormulaException:此字段名称未知

时间:2016-12-29 01:35:30

标签: visual-studio-2010 crystal-reports

我已经完成了对类似标题帖子的搜索,似乎与我的问题无关。

我正在使用Oracle,因此我必须创建一个XML Strongly Typed DataSet。我已将该DataSet用作DataExplorer的报告数据源。

我的DataSet包含主要用于页眉的字段,因为“详细信息”部分中的字段与页眉中的字段相关,因此我在数据集中添加了为每个详细信息行重复的列,但包含页眉的数据。 (我以前做过这个)

我的问题是,当我想使用其中一个PageHeader字段中的值来抑制PageHeader中的ITextObject标签时(如果{dataset.fieldName} =“”则为true,否则为false)我得到此错误;

CrystalDecisions.CrystalReports.Engine.FormulaException: This field name is not known. Details: errorKind

如果我不包含公式,报告打印正常,但所有ITextObject标签都存在,无论数据如何,我得到了我想要的分页/部分,但我似乎无法使用与IFieldObject无关的任何字段设置抑制公式。

我正在使用
WIN2008
VS2010
CR4VS2010 13.0.4
我不能更新,因为它不属于我的公司。

我做了以下事情:
修好VS2010
删除并重新安装CR
安装CR Runtime(32bit 13.0.4)
删除公式并重新运行报告(工作正常)

TL; DR:我想在IFieldObject公式中使用Suppress ITextObject以及整个部分的Suppress公式,但我正在获取以上错误。

2 个答案:

答案 0 :(得分:0)

这不是一个真正的答案,但可能会有所帮助,而且发表评论的时间太长了。

我很久以前在迁移到新版本的Crytal之后遇到了这个问题。我发现了3种情况:

  1. 我提到的那个空案。但你已经说过它没用了。
  2. 未键入数据集时。但你说的不是你的情况。如果您使用的是XSD,我建议您仔细检查DataColumns在XSD中是否具有相同的类型。
  3. 奇怪的一个:当一个值可以解释为另一个不同的列类型。例如,一个字符串列,其中值集是一个日期时间(row [column] = date.ToString())。我在我们的bug数据库中发现了3个案例,所有这些案例都包含日期时间列,所有这些案例都包含在迁移Crystal Reports之前工作正常的报告。

答案 1 :(得分:0)

再次感谢@heringer的回复。我发现问题与我连接的数据库有关。它在应用程序中不可见,因为连接字符串存储在应用程序配置文件中,有3个数据库版本,其中只有一个用新的数据字段名称更新。由于app.config文件的不及时签入,我无意中连接到另一个尚未收到更新的数据库。当然,这是我寻找的最后一件事,因为我无法想象我试图在非开发数据库中开发新东西!案件结案。