在rdlc报告中检查列表长度

时间:2014-05-14 17:07:56

标签: c# vb.net list reporting rdlc

我使用对象数据源将数据集传递给报表。数据源包含自定义类的对象。该类有一个嵌套对象列表。

我需要输出这些对象中的3个值或String.Empty。因此,如果列表包含' A'和' B'报告应输出' A' B' B'和''。

我在列表中打印对象的值,如下所示:

=Fields!MyList.Value(0).ObjectPropertyToPrint

但是,如果列表中没有包含3个项目,我有#Error

我试过这种方式

=iif(Fields!MyList.Value.Length >= 2,Fields!MyList.Value(2).ObjectPropertyToPrint,"")

=iif(Fields!MyList.Value.GetUpperBound(0) >= 2,Fields!MyList.Value(2).ObjectPropertyToPrint,"")

但两者都会产生#Error

我也尝试仅输出

=Fields!MyList.Value.Length
=Fields!MyList.Value.GetUpperBound(0)

但都打印了#Error

这是我正在使用的C#List对象。它只是将嵌套对象传递给rdlc

的工作方式
[Serializable]
public class MyObjectList : List<MyObject>
{
    public MyObjectList () { }
}

1 个答案:

答案 0 :(得分:0)

我已使用以下行解决了我的问题:

=if(Fields!MyLisValue.Count() >= 2,Fields!BolProducts.Value(1).ObjectPropertyToPrint,"")

请注意使用if代替iif。由于iif是一个函数,因此将评估所有参数。这会导致索引超出范围并崩溃。