2008-11-05 2 views
2

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 필드. 내가 보고서에 내가 원하는 필드를 드래그하면 내가 얻을 : 거기 수는 얘기 무엇 StringValue을 자격을 할 수 없기 때문에

=First(Fields!StringValue.Value) 

보고서를 실행할 때 아무것도 표시되지 않습니다, 나는 가정 많은 사람이 되십시오. 나는 ClientName 객체를 드래그하려고하면

내가 얻을 :

=First(Fields!ContactName.Value) 

그러나이 제공 :

#ERROR 

보고서가 실행됩니다.

난 당신이 사용할 수 있다고 생각했을 것이다 :

=First(Fields!ClientName.StringValue.Value) 

그러나이도 저를 구축 할 수 없습니다.

답변

1

문제는 정보가 루트 수준에 있지 않다는 것입니다. 나는 그것을 밖으로 일했다.

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

저는 지금 ReportViewer 구성 요소를 매우 좋아합니다.

+0

누군가가 답변으로 작성해 주시겠습니까? –

0

서비스에서 반환 된 CustomerInfo 인스턴스 (또는 목록)에 데이터 소스를 설정하면 작동해야합니다. ReportViewer 컨트롤은 개체 계층 구조를 다루기 시작하면 약간 복잡 할 수 있지만 모든 정보가 루트 수준에 있으면 미친 짓이나 특별한 작업을 수행 할 필요가 없습니다.

관련 문제