2013-03-05 92 views
1

我已經將類的對象設置爲CR的數據源。所有字符串字段都出現在設計好的字段資源管理器中。但是數字或日期時間字段發生了什麼?我如何帶他們?爲什麼Crystal Reports不顯示int,DateTime,double,money fields等?

public class ClsOutDocket 
{ 
    public string RegistrationNo { get; set; }   
    public double? WeightIn { get; set; }   
    public DateTime? DateIn { get; set; }   
    public string TimeIn { get; set; } 
} 

回答

3

可惜CrystalReport不支持Nullable<T>兩者DateInWeightIn字段nullables。

如果它適合你的情況,你可以做的是發佈映射null的值兩個額外的屬性,如:

public double _WeightIn 
{ 
    get 
    { 
     if (WeightIn == null) 
      return Double.NaN; 

     return (double)WeightIn; 
    } 
    set 
    { 
     if (value == Double.NaN) 
      WeightIn = null; 
     else 
      WeightIn = value; 
    } 
} 

當然,這會讓你的班很「髒」,除非您正在使用模型類將數據傳遞給報告,這可能是一個問題。您可以考慮增加該屬性隱藏在VS編輯器屬性:

[EditorBrowsable(EditorBrowsableState.Never)] 

不要忘記,CR會看到「假空」值(Double.NaNDateTime.MinValue),也因爲它不知道他們」 特殊值它會按原樣使用它們。如果這是一個問題(或者您無法使用正確的空值),那麼您需要更改報告以處理這些特殊情況。

+0

很好的解釋...謝謝阿德里亞諾 – sony 2013-03-05 13:06:40

+0

@sony您好! – 2013-03-05 13:07:15

相關問題