[英]Why Crystal Reports not showing int, DateTime, double, money fields etc?
我已經將類的對象設置為CR的數據源。 所有字符串字段都顯示在設計中的字段資源管理器中。 但是數字或日期時間字段會發生什么? 我怎么帶它們?
public class ClsOutDocket
{
public string RegistrationNo { get; set; }
public double? WeightIn { get; set; }
public DateTime? DateIn { get; set; }
public string TimeIn { get; set; }
}
不幸的是,CrystalReport不支持Nullable<T>
並且DateIn
和WeightIn
字段都是空的。
如果它適用於您的情況,您可以做的是發布兩個額外的屬性,將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會看到“假的null”值( Double.NaN
和DateTime.MinValue
),因為它不知道它們是特殊值,它會按原樣使用它們。 如果這是一個問題(或者您無法使用正確的空值 ),那么您需要更改報告以處理此特殊情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.