我使用对象数据源将数据集传递给报表。数据源包含自定义类的对象。该类有一个嵌套对象列表。
我需要输出这些对象中的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 () { }
}
答案 0 :(得分:0)
我已使用以下行解决了我的问题:
=if(Fields!MyLisValue.Count() >= 2,Fields!BolProducts.Value(1).ObjectPropertyToPrint,"")
请注意使用if
代替iif
。由于iif
是一个函数,因此将评估所有参数。这会导致索引超出范围并崩溃。