嵌入另一个对象的属性

时间:2008-11-05 09:50:09

标签: c# wcf reportviewer

我正在尝试使用我传递给report.rdlc的业务对象。我的对象中的属性不会直接暴露。我需要的属性嵌入在顶级对象内的另一个对象中。由于这是一个WCF项目,我无法控制服务器端发生的事情。我只能从数据库中请求这些对象或插入/更新/删除它们的信息。它以这种方式完成,因为后端可以使用多种口味的数据库。

将业务对象添加为DataSource后,我可以看到以下内容:

-BusinessObject
 -CustomerInfo
  -ClientName
    -ColumnName
    -DisplayName
    -FieldName
    -IsNull
    -KeyColumn
    -SenondKeyColumn
    -StringValue 
  -ClientID
    -ColumnName
    -DisplayName
    -FieldName
    -IntValue
    -IsNull
    -KeyColumn
    -SenondKeyColumn
   +ClientAddress
   +Instrument
   +Telephone

等等

我需要能够显示例如ClientName.StringValue字段。 如果我将我想要的字段拖到我得到的报告上:

=First(Fields!StringValue.Value)

当报表运行时,这不显示任何内容,我假设因为它无法限定它正在谈论的StringValue,并且可能有很多。

如果我尝试拖动我得到的ClientName对象:

=First(Fields!ContactName.Value)

然而,这给出了:

#ERROR

报告运行时。

我原以为你可以使用:

=First(Fields!ClientName.StringValue.Value)

但这甚至不能让我建立。

2 个答案:

答案 0 :(得分:1)

问题是信息不在根级别。我虽然解决了这个问题。

=First(Fields!ClientName.Value.StringValue, "BusinessObject_CustomerInfo")

我对ReportViewer组件的控制非常好,现在欢呼。

答案 1 :(得分:0)

如果将数据源设置为从服务返回的CustomerInfo实例(或列表),它应该可以工作。当您开始处理对象层次结构时,ReportViewer控件可能会有点复杂,但如果所有信息都在根级别,您不必做任何疯狂或特殊的事情。