2016-12-29 57 views
0

我已经完成了对类似标题帖子的搜索,没有任何内容与我的问题有关。Crystal Reports.FormulaException:此字段名称未知

我使用的是Oracle,所以我必须创建一个我已经完成的XML强类型化数据集。我已经使用该DataSet作为DataExplorer的Source for report数据。

我的DataSet包含主要用于Page Header的字段,因为Details部分中的字段与Page Header中的字段相关,因此我已将列添加到每个详细信息行重复的数据集中,但包含页眉的数据。 (我之前做过)

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

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

如果我不包括公式,报表打印精细,但所有ITextObject标签都存在,无论数据,我得到我想要的分页/节,但我可以似乎没有使用任何与IFieldObject相关的字段设置禁止公式。

我使用
WIN2008
VS2010
CR4VS2010 13.0.4
并且它不是由我公司拥有我不能更新。

我已经做了以下内容:
修复VS2010
删除并重新安装CR
安装CR运行时(32位13.0.4)
删除公式,然后重新运行报告(正常工作)

TL; DR:我想在Suppress公式中使用IFieldObject公式为ITextObject以及整个公式的Suppress公式,但是出现上述错误。

+0

可以试试吗?如果isnull({dataset.fieldName})或{dataset.fieldName} =“”then true else – heringer

+0

感谢回复@heringer。但是,它并没有解决问题。 – Anthony

回答

0

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

0

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

很久以前,我在迁移到新版本的Crytal后面临这个问题。我发现了三种情况:

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