2009-08-26 74 views
1

下午開發人員,C#水晶報表和XML數據集(ADO.NET)數據打字問題

我有一個問題,開始得到我的燈芯。我已經通過谷歌和水晶報表的幫助,並仍然堅持解決方案。

我們創建了一個XSD完整的關於數據類型等的完整信息。 已創建一個與此XSD鏈接的報告(使用使用Microsoft的xsd.exe SDK生成的c#類),並使用字段信息填充報告。

從C#我們這個實例報告,並符合本XSD和已驗證反對一個XML文件填充它。

現在的問題是,雖然一切都驗證沒有錯誤(水晶公式等)和編譯罰款,當我們運行的應用程序,並試圖填充水晶報表報告似乎鬆散的數據輸入的所有知識。

公式如

if ({LetProperty.lp_buildings_selected} = true) then 
    "Standard Cover With Accidental Damage Cover" 
else 
    "Standard Cover"; 

回來與 「這裏需要的字符串。」錯誤。這個公式應該運行良好,因爲引用的字段是布爾型數據類型,Crystal Reports在設計時知道這一點。

爲了得到它的工作,我們一直需要投領域ToText,並將其與「真」。 這是一個簡單的工作,但我們將創建許多報告,並不想扭曲代碼,應該工作到'Fudged'凌亂的代碼,將工作。

誰能告訴我,如果我失去了一些東西昭然若揭或者如果有,我們需要設置,因爲這是非常令人困惑我們的東西!

很多謝謝大家。

+0

早上9點!需要咖啡...... – womp 2009-08-26 16:15:24

回答

1

右鍵,

我只想讓任何人知道我們是如何解決這一點,如果有誰陷在同樣的情況。

我們需要做的是在從Xml文件填充創建的數據集(傳遞給報告)之前,我們將Xsd讀入數據集,這樣它就可以輸入強類型幷包含所有數據類型信息。

我不知道爲什麼晶體不把所有的時候,我們創造了它,並將其鏈接到XSD這是分配給它的數據類型的信息,但是這是我們圍繞了。

+0

+1我沒有做過很多基於XML的報告,所以我不知道這個。我可能剛剛完成了ToText解決方案來解決它以節省時間,但很好了解這個問題。 – Dusty 2009-09-02 18:05:25

0

是LetProperty.lp_buildings_selected設置除了XML文檔中的「真」或「假」(也許是空字符串)什麼?如果是這樣,這可能是Crystal Reports試圖將其用作字符串的原因。

我相信生成的XSD通過防止可能成立,但認爲我會扔在那裏呢。

+0

不,它通過無論是真或假。它不能是空值或空字符串。感謝您的輸入。 – 2009-08-27 08:38:52

0

問題就在於您需要在每個XML文件中包含模式?這樣做會將完整的類型信息發送給Crystal,因爲您告訴它XML文件是DataSource。當我沒有將XSD包含在XML文件的標題中時,我想我遇到了像您提到的問題。