2016-12-29 76 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之前都運行良好。