2010-03-31 2 views
10

스튜디오 2010 보고서의 필드 식에서 하위 개체를 참조하려고합니다. 이전 버전에서 사용되었습니다. 계정이 속성을 가진 다른 개체를 참조 할 때 다음과 같이 사용됩니다.rdlc의 하위 개체 (Studio 2010RC)

=Fields!Account.Value.Name 

이 같은 표현식 구문이 더 이상 작동

(이름은 자식 객체의 속성입니다, 계정 부모 개체입니다). 어떻게 불행하게도 당신이, 그리고 주위 작업 속성을 만들 (아직)를하다 수없는 스튜디오에서 RDLC에서 2010 년

감사

+1

나는 똑같은 말을하고 있습니다. 왜 그들이이 기능을 사용하지 않았는지 이해하지 못합니다. 매우 짜증이납니다! – AKoran

+1

클래스가 public 및 serializable 인 경우 VS 2010 SP1에서 수정 될 것입니다. –

답변

5

나는이 버그는 VS2010 SP1에서 해결 된 것을 확인할 수 있습니다 ...하지만 당신은 관련의 모든을 표시해야 클래스를 직렬화 가능으로합니다.

당신은 작업 버전을 보여줍니다이 사이트에 샘플 프로젝트를 찾을 수 있습니다

: http://wraithnath.blogspot.com/2011/04/reportviewer-object-datasource-nested.html

저자는 또한 당신의 클래스가 매개 변수가없는 생성자가 필요하지만 기본 생성자없이 클래스를 사용하여 작동하도록 입수했습니다 있다는 언급을 . 여전히 모든 것을 직렬화 가능으로 표시하고 여전히 "# 오류"메시지가 표시되면 매개 변수없는 생성자를 사용하여 시도해보십시오.

1

이것은 아마도 적절한 답변이 아니지만이 주제에 대한 자료가 부족하여 내 조사 결과를 게시하도록 권장 할 때 유용합니다.

예를 들어 부모 개체 내에 하위 개체 개체가 중첩되어있는 경우를 가정 해 보겠습니다. 예를 들어 주문 객체 (상위)가있는 경우 주문 항목 (하위) 목록이있을 것입니다. rdlc를 사용하여 모든 정보를 어떻게 표시합니까? 하위 보고서를 사용하는 방법과 그룹을 사용하는 방법은 두 가지가 있습니다. 보고서에 세부 정보 목록을 표시하는 것과 동일한 것을 얻을 수 있다는 것을 알고 있습니다.

public class Order{ 
    public int OrderID {get; set;} 
    public string Descrpition {get; set;} 
    public List<OrderItem> OrderItems {get; set;} 
} 
public class OrderItem{ 
    public int OrderItemID {get; set;} 
    public decimal Price{get; set;} 
} 

가장 쉬운 방법은 그룹화를 사용하는 것입니다. 그룹화를 사용하면 부모 및 자식의 속성이 포함 된 새 데이터 유형을 만들어야합니다. 이 방법은 객체의 다중 레벨 중첩 목록에서도 작동한다고 생각합니다. 그것은 바보 같은 소리를 수도 있지만, 보고서에 표시 할 필요가있는 유형이 비즈니스 오브젝트에서 다르기 때문에 대부분의 시간을 당신은 어쨌든 새로운 데이터 유형을 만들 수 있습니다

public class OrderReport{ 
    public int OrderID {get; set;} 
    public string Description {get; set;} 
    public int OrderItemID {get; set;} 
    public decimal Price {get; set;} 
} 

그런 다음 RDLC에, 당신은 단지이 상위 행 그룹과 하위 행 그룹을 작성하려면 Parent를 OrderID로 그룹화해야하며 하위 행 그룹은 "세부 사항 표시"로 설정해야합니다. 난 당신이 개체의 여러 수준 중첩 목록을 달성하기 위해 여러 번 이것을 할 수 있다고 생각합니다.

관련 문제