2010-02-04 2 views
2

코드로 채워지고 CRViewer를 통해 표시되는 일련의 매개 변수가있는 필드가 포함 된 수정 보고서가 있습니다. 데이터 집합을 반환하고 동일한 보고서에이를 표시하는 쿼리를 실행하려면 여기에 몇 개의 섹션을 추가해야합니다. 하위 보고서를 사용하여이 작업을 수행하는 것이 가장 좋은 방법인지 확신 할 수 없습니다. 하위 보고서를 추가하고 하위 데이터 소스의 데이터 소스를 내 데이터 세트로 설정하려고 시도하지만 작동하도록 가져올 수 없습니다.쿼리가 포함 된 하위 보고서가 기본 보고서에 삽입되었습니다.

이것도 적절한 방법인가요, 아니면 제가 잘못하고있는 것입니까?

도움을 주시면 감사하겠습니다.

편집 : 내가 찾고있는 무슨의

예.

고객 테이블이 있다고 가정 해 보겠습니다. FirstName LastName은 주소 및 기본 고객 정보와 함께 양식에 표시된 매개 변수화 된 필드로 있습니다.

모든 고객의 주문을 표시하는 하위 보고서를 동일한 보고서에 배치하려고합니다. 는 여러 주문이 가능한 연관 테이블입니다.

보고서는 VB.NET 응용 프로그램에서 호출 할 수있는 클래스에 배치됩니다. 따라서 UI의 하위 보고서에 대한 데이터 연결을 만들 수 없습니다 (또는 나중에 매개 변수를 전달할 수 있습니다).

나는 성공적으로 다음을 수행하여 매개 변수 필드를 채우는 오전 :

Dim myRpt As New RunReport.RunReport 

myRpt.Load("myReport.rpt") 

'Set Labels 
myRpt.SetParameterValue("@FirstName", strFirstName) 

CrystalReportViewer1.ReportSource = myRpt 

고객 ID가 협회 행에 필요한 경우 바인딩에도 사용할 수있을 것이다.

이것은 가능한 모든 주문을 처리하기 위해 하위 보고서 섹션을 표시해야하는 한 보고서 일 것입니다. 이것이 문제가되는 부분입니다.

+0

본인의 CR 보고서에서 나는 종종 몇 개의 하위 섹션을 만들고 각각에 하위 보고서를 넣습니다. 동일한 보고서에 여러 데이터 집합을 표시해야 할 때 가장 좋은 방법입니다. 좀 더 자세한 정보를 주시겠습니까? 무슨 일있어? – PowerUser

+0

그냥 몇 가지 지침이나 지침을 찾고 나는 봤는데 및 하위 보고서를 만드는 마법사를 사용하여 예제를 참조하십시오. 데이터 세트를 통해 데이터를 전달합니다. 그래서 어떻게 든이 데이터 집합을 하위 보고서로 전달하기 위해해야 ​​할 일을 찾고 있습니다. 하위 보고서의 데이터 소스 속성을 설정하려고 시도했을 때 "보고서에 테이블이 없습니다"라는 메시지가 나타납니다. – Matt

+0

저는 거의 손실에 처해 있었고 그 다음에 전구가 제 머리 위로 들어 왔습니다. 기본 보고서와 독립적으로 하위 보고서를 만들려고합니까? , 고토 삽입 -> 하위 보고서, 주 보고서의 디자인 메뉴에서 를 데이터 테이블을 선택하고 (자리 표시 자) 하위 보고서의 보이는 부분에 해당 필드 중 하나 또는 두 가지를 넣어 : 이보십시오. 주 보고서에서 필요한 매개 변수를 하위 보고서로 전달하는 것을 잊지 마십시오. 그런 다음 미리보기로 이동하십시오. 행운을 빕니다. – PowerUser

답변

1

기본 보고서의 데이터 소스를 이와 같이 설정합니까?

Dim ds as new Dataset 
sqlAdapter.Fill(ds, "Whatever"); 
oRpt.SetDataSource (ds) 

그렇다면, 하위 보고서에 설정하면 다음과 같습니다 나는 위의 업데이 트를 읽고 난 당신이 가고 이해 생각했습니다

Dim oSubReport As ReportDocument 
For Each oReportObject As SubreportObject In oRpt.ReportDefinition.ReportObjects 
    If oReportObject.Kind = ReportObjectKind.SubreportObject Then 
    oSubReportObject = CType(oReportObject, SubreportObject) 
    oSubReport = oRpt.OpenSubreport(oSubReportObject.SubreportName) 
    oSubReport.SetDataSource (ds) 
    End If 
Next 

. 이 방법이 효과가 있는지 확인하십시오 :

1) 기본 보고서를 작성하십시오. 원하는 선택 기준을 부여하십시오 (예 : CustName 또는 CustID)
2) 하위 보고서를 작성하십시오. 원하는 선택 선택 기준 (예 : CustID)
3) 기본 보고서에 하위 보고서를 삽입했으면 디자이너의 하위 보고서 개체/상자를 마우스 오른쪽 단추로 클릭하고 "하위 보고서 링크 변경"을 선택하십시오.
4) "연결할 필드"상자에서 하위 보고서를 실행할 주요 보고서의 값을 선택합니다. (예. CustID)가에서
5) 드롭 다운, 당신은 주 보고서에 연결하려면 하위 보고서 매개 변수 필드를 선택 "하위 보고서 매개 변수 필드가 사용하는"(예. CustID)

보고서를 실행

의 하위 보고서는 주 보고서에 표시된 레코드의 데이터 만 표시해야합니다.

그 단계는 당신이 찾고있는 무엇을 얻을 수없는 경우, 누락 된 기능은 무엇 설명해주십시오.

P.S : 한 번만 (대신 한 번 주에 다시 하위에 대한) 데이터를 가져하려는 경우, 내 질문은 다음과 같습니다 이유는 무엇입니까?

+0

이봐, 나를 정답으로 안내해 줬어.하위 보고서를 삽입하고 내가 만든 데이터 세트의 필드를 배치했습니다. 그런 다음 코드에서 보고서에 생성 된 데이터 테이블에 데이터 집합을 바인딩했습니다. 지금 원하는대로 작동하고 있습니다. 도와 주셔서 감사합니다. – Matt

+0

다행 이네요 :) – bluecoder

0

당신은이 개 데이터 세트를 생성하고 PARAMS에 둘 다 합격해야합니다. 1에는 기본적인 고객 정보와 키가 포함됩니다. 다른 하나는 해당 고객 키가있는 첫 번째 데이터 집합의 모든 고객의 주문을 포함합니다. 여기에서 주 보고서를 첫 번째 데이터 집합에 바인딩합니다. 포함 된 보고서는 두 번째 데이터 집합과 연결됩니다. 그런 다음 상위 보고서의 고객 키를 하위 보고서의 매개 변수로 사용하고 해당 매개 변수를 기준으로 필터링합니다. 그러면 하위 키가 해당 고객 키의 주문 만 표시하도록 제한됩니다. 보고서에 코드가 거의 없어도이 모든 작업을 수행 할 수 있습니다. 모든 코드는 보고서를 호출하는 .Net 개체에서 수행됩니다.

아직 본 적이없는 경우 시작하도록 만드는 훌륭한 사이트입니다. 내가 올바르게 이해 바랍니다 http://www.emoreau.com/Entries/Articles/2006/09/Feeding-Crystal-Reports-from-your-application.aspx

1

: 그것은 많은 날을 도왔다.

는 기본적으로 난 당신이 헤더는 고객의 정보를 표시하고 세부 송장의 세부 사항을 보여줍니다 곳 송장 보고서를 만들려고 생각합니다. 이 경우 다음의 경우 나는 이것을 수용 할 수있는 가장 쉬운 방법이라고 생각 단순히 같은 아래 송장의 세부 사항이 포함 된 데이터 세트에 대한 고객의 필드를 추가하여 : 당신은 단순히 추가

Name   Address  City State InvSeq Item Amt 
Peter Griffin 36 Spooner St Quahog RI  1  Item1 40.00 
Peter Griffin 36 Spooner St Quahog RI  2  Item2 30.00 
Peter Griffin 36 Spooner St Quahog RI  3  Item3 20.00 
Peter Griffin 36 Spooner St Quahog RI  4  Item4 10.00 

그런

데이터를 첫 번째 레코드의 데이터 만 고객 정보에 대해 표시되도록 고객 정보 필드를 보고서 머리글 (또는이 보고서가 여러 고객의 경우 고객 그룹 머리글)에 연결합니다.

*RH*:  Sold To: 
      Peter Griffin 
      36 Spooner St 
      Quahog, RI 

*Details*: InvSeq Item  Amt. 
       1  Item1 $40.00 
       2  Item2 $30.00 
       3  Item3 $20.00 
       4  Item4 $10.00 

가 잘하면 내가 문제를 올바르게 이해하고있어

보고서 레이아웃 그렇다면 난이 도움이 되었으면 좋겠 : 그리고 그들은 다음과 같이 각 행에 대해 반복되도록 세부 정보 섹션에 송장 세부 필드를 추가합니다.

+0

+1 가족 용 – dotjoe

관련 문제