2009-04-10 3 views
0

매번 다른 데이터 입력으로 여러 번 실행해야한다는 보고서가 있습니다. 각 보고서에는이를 식별 할 수있는 페이지 머리글, 실제 데이터 본문이 있고 [x 페이지 y] 형식으로 페이지 수가 들어있는 바닥 글이 있습니다. 물론 각 보고서를 개별적으로 실행할 수도 있지만 모든 보고서에서 페이지 번호가 필요합니다. 즉, 두 번 실행하면 첫 번째 페이지가 3 페이지이고 두 번째 페이지가 두 번이면 각 바닥 글의 하단에 [x 5 페이지]가 표시됩니다.ReportViewer : 하나의 보고서로 여러 보고서 결합

마스터 보고서를 작성하고 보고서를 포함 시키려고했지만 페이지 머리글을 표시하지 않고 별도로 실행하고 매개 변수를 전달하여 페이지 번호를 조정하는 것으로 간주했지만 분명히 각 보고서를 렌더링하고, 페이지 합계를 확인한 다음, 각 보고서가 바닥 글에 올바른 페이지 합계를 갖도록 다시 렌더링해야합니다.

제안 사항? 내가 분명히 놓친 게있어? 여기 사람이 비슷한 상황으로 실행 끝나는 경우

답변

0

은 내 솔루션이었다

내 데이터 집합을 설명 할 우선 다음 allFoos을하는 대신 기본적으로

public Foo 
{ 
    string a; 
    List<Bar> subInfo; 
} 

public Bar 
{ 
    string b; 
    string c; 
} 

List<Foo> allFoos; 

내가 마스터에 전달 된 객체 보고서를 작성한 다음 해당 Bar 객체를 subReport에 전달하려고하면 새 객체를 만들었습니다.

Public FooBar 
{ 
    string a; 
    string b; 
    string c; 
} 

List<FooBar> allFooBars; 

기본적으로 데이터를 병합했습니다. 거기서 나는 하나의 보고서를 만들었습니다. "FooBar"를 DataSet으로 사용한 테이블 하나를 추가하고 "allFooBars"컬렉션에 전달했습니다. 또한 보고서에 꼬리말을 만들었으므로 모든 페이지에서 일관된 페이징을 유지할 수있었습니다. 그런 다음 그룹화를 사용하여 "Foo"개체를 함께 유지했습니다. 그룹에서 필자는 "시작시 페이지 나누기"및 "그룹 머리글 포함"및 "그룹 머리글 반복"옵션을 true로 설정했습니다. 그런 다음 그룹 머리글 (그룹 머리글은 기본적으로 5 줄로, 그 중 하나는 약간의 공간을 제공하기 위해 비어 있음)과 함께 페이지 머리글을 가짜로 만들도록 그룹 머리글을 설정했습니다.

그리고 기본적으로 그랬습니다.