【问题标题】:Computed Column Based on Other Columns基于其他列的计算列
【发布时间】:2011-10-13 00:21:54
【问题描述】:

我有一个Dataset,其中有一组列用于Report (DevExpress XtraReports)(DataSet 是DataSource)。数据集有很多列,我需要读取一列(基于行类型),并决定为该行读取哪个列值,并根据行类型应用格式。

示例:

数据集

DataType    IntValue    RealValue   StringValue DateValue
Int32           123
DateTime                                        1/1/2011 1:23 AM
String                              XYZ
...

如果Datatype是DateTime,我需要读取DateValue列值等

我知道我们可以在计算列上使用 DataSet 表达式,但无法找到一种方法来应用所需的表达式,并为报告设置数据格式。

是否有建议的方法在报告或数据集级别处理此问题(格式化部分除外)?

【问题讨论】:

    标签: c# vb.net dataset strongly-typed-dataset xtrareport


    【解决方案1】:

    我不确定您为什么采用这种方法。这个数据集是从 SQL 数据源还是某种后端填充的?如果是这种情况,为什么不直接从 SQL 中获取正确格式的计算列呢?循环遍历所有记录以尝试计算“正确”列不是性能开销吗?

    既然是报表,显示数据还不够吗?如果你真的需要使用类型,你也可以从 sql 中获取,所以你最终只有两个列,类型和数据。如果您能详细说明您正在尝试做的事情,那将会很有帮助。

    【讨论】:

    • 我完全同意你的观点,这也是我的观点,除了 DBA 坚持不能将数据格式化为一种数据类型,因为数据可能会失去精度(如果 double 是唯一返回的列, int 失去精度等)。我们采用这种方法的主要原因是我们有不同数据类型的数据,并且报告需要根据数据类型适当地格式化数据并生成参数/值对。
    • 在这种情况下,最好为每个报告构建一个存储过程,带来它所需要的东西。有时过多的概括也是不好的。您应该为报告构建一个框架,该框架知道如何与相应的存储过程通信并根据类型呈现报告。您可能有额外的限制,但只是一个想法。
    • 我们正在审查其他几个选项。 id 发布我们采用的方法 :)
    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多