0

所以我正在做的是从 vb.net 中的多个数据源(存储过程)创建一个报告。我通过将它们放入 aDataset并将其传递给报告来实现这一点。

因此,当我得到报告时,我最终得到一个 iif 语句来处理多个字段,这些字段在存储过程中的命名不一致(我无法更改名称)但需要进入同一个文本框。这是一个例子:

=IIF(Fields.TableName <> '', Fields.TableName, IIF(Fields.usuTableName <> '', Fields.usuTableName, NULL))

如您所见,它们都是相同的,但名称不同,因此会害怕压倒对方。只有一个会被填充。但是,问题是如果这些字段值之一不存在... IEFields.usuTableName

例如,我们正在按日期过滤,因此存储过程没有返回任何内容,该存储过程具有该Fields.usuTableName日期范围的命名约定,因此没有创建数据集,但其他数据返回值。当报告渲染时,我们得到一个错误,因为Fields.usuTableName不存在但Fields.TableName确实存在。

在此处输入图像描述

在运行 IF 语句之前,如何确保字段名称有效?

4

1 回答 1

0

这是我在使用它之前用来评估它的函数:

    Public Shared Function GetValue(ByVal reportItem As Processing.ReportItem, ByVal field As String) As String
    Try
        Dim testdString As String
        Try
            testdString = reportItem.DataObject(field).ToString
        Catch ex As Exception
            'must not be date
        End Try

        Return reportItem.DataObject(field).ToString

    Catch ex As Exception
        Return ""
    End Try
End Function

我为报告中的每个字段名称调用它

于 2013-09-27T02:55:19.437 回答