2008-08-12 14 views
2

나는 합계가 주 보고서와 다른 방식으로 그룹화 된 Crystal Report를 작성하려고합니다. 필자가 지금까지 할 수 있었던 유일한 방법은 합계에 하위 보고서를 사용하는 것이지만 동일한 데이터를 검색하기 위해 데이터 소스를 다시 히트해야한다는 의미입니다. 여기에 간단한 예입니다 : 주 보고서는 '날짜'에 의해 그룹화이 예에서Crystal Reports 데이터 세트를 재활용 할 수있는 방법이 있습니까?

 date name earnings source   location 
----------------------------------------------------------- 
12-AUG-2008 Tom  $50.00 washing cars uptown 
12-AUG-2008 Dick $100.00 washing cars downtown  { main report } 
12-AUG-2008 Harry $75.00 mowing lawns around town 

        total earnings for washing cars: $150.00 { subreport } 
        total earnings for mowing lawns: $75.00 

     date name earnings source   location 
----------------------------------------------------------- 
13-AUG-2008 John  $95.00 dog walking  downtown 
13-AUG-2008 Jane $105.00 washing cars around town { main report } 
13-AUG-2008 Dave  $65.00 mowing lawns around town 

        total earnings for dog walking: $95.00 
        total earnings for washing cars: $105.00 { subreport } 
        total earnings for mowing lawns: $65.00 

하지만 합계는 '소스'에 의해 추가로 그룹화됩니다. 나는 합계를 사용하는 예제를 찾았지만, 실제로 필요한 것은하지 않습니다. 결과 집합을 저장하고 주 보고서와 하위 보고서를 동일한 데이터로 참조하는 방법이 있습니까?

답변

1

음 ... 보고서에서 저장된 proc를 호출하고 모든 위치를 하나의 위치에 포함시키는 것만 큼 좋지만 (우리처럼) 결국에는 결정을 얻을 수없는 지점을 발견했습니다 원하는 데이터를 바로 원하는대로 처리 할 수 ​​있습니다.

우리는 보고서 아래에있는 비즈니스 계층을 소개하고 보고서에서 데이터를 "가져 오는"대신 데이터 집합을 보고서에 "밀어 넣고"데이터를 보고서에 바인딩합니다. 이점은 보고서에 도달하기 전에 데이터 집합이나 개체의 코드에서 데이터를 조작 한 다음 데이터를 보고서에 간단히 바인딩 할 수 있다는 것입니다.

This article에는 데이터를 보고서로 푸시 설정하는 방법에 대한 유용한 정보가 있습니다. 귀하의 시간/업무상의 제약으로 인해 귀하가이를 허용하지 않을 수도 있음을 이해합니다. 그러나 가능하다면, 우리가 모든 "코딩"을 보고서에서 제거하고 항상 관리 코드로 제거 할 수 있다는 것을 의미하므로 추천 할 것입니다. 좋은것.

1

데이터를 두 번째로 실행하지 않고이 작업을 수행 할 수있는 유일한 방법은 그룹당 합계를 실행하는 수식을 만드는 것입니다. 기존 누적 합계로 실행중인 것으로 가정하는 문제는 그들이 합계하는 각 그룹을 따라야한다는 것입니다. 소계가 '원시'데이터 모두를 따라 가려면이 방법이 효과적이지 않을 것입니다.

그룹과 일치하는 행의 합계를 단순히 추가하는 각 그룹에 대해 고유 한 수식을 만들면 보고서 끝에 그 수식을 배치 할 수 있습니다. 이 접근법의 단점은 결과로 나오는 부분합이 그룹과의 관계에서 동적이지 않다는 것입니다. 즉, 새로운 '출처'가있는 경우 추가 할 때까지 부분합에 표시되지 않거나 '개 산책'데이터가없는 경우 하위 데이터가 여전히 남아있게됩니다.