如何调试Rdlc表达式错误-C#

时间:2018-11-05 13:42:55

标签: rdlc

通过阅读SO的一些问题和答案,我知道IIF同时执行对和错。我似乎无法理解如何正确检查和处理null。

以下是我尝试给出的#Error的一些语句,

=switch(
        First(Fields!ShelfLife.Value, "DQA")="N/A", "N/A",
        First(Fields!ShelfLife.Value, "DQA")<>"N/A", (FormatNumber(First(Fields!ShelfLife.Value, "DQA"), 1))
    )

=IIf(
    First(Fields!ShelfLife.Value, "DQA")="N/A",
    "N/A",
    IIf(
        IsNothing((First(Fields!ShelfLife.Value, "DQA"))),
        "Test",
        (FormatNumber(First(Fields!ShelfLife.Value, "DQA"), 1))
    )
)

是否有一种方法可以获取有关该语句的问题的消息?同样重要的是,如何解决收到的错误?

1 个答案:

答案 0 :(得分:1)

前一段时间,我们遇到了这样的问题。它不是也不是完全理想,但是我们的工作涉及像这样将两个数据源传递给报表:

this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("first",  Source1 as DataTable));
this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("second",  Source2 as DataTable));

为进一步说明这一点,Source1和Source 2是相同的。在上述各行之前,请对Source1进行一些检查和操作。因此表达式应如下所示:

=switch(
        First(Fields!ShelfLife.Value, "DQA1")="N/A", "N/A",
        First(Fields!ShelfLife.Value, "DQA1")<>"N/A", (FormatNumber(First(Fields!ShelfLife.Value, "DQA2"), 1))
    )