簡體   English   中英

為什么Crystal Reports沒有顯示int,DateTime,double,money字段等?

[英]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>並且DateInWeightIn字段都是空的。

如果它適用於您的情況,您可以做的是發布兩個額外的屬性,將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.NaNDateTime.MinValue ),因為它不知道它們是特殊值,它會按原樣使用它們。 如果這是一個問題(或者您無法使用正確的空值 ),那么您需要更改報告以處理此特殊情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM