문제

저는 기본 보고서와 다른 방식으로 총계가 그룹화되어 있는 Crystal Report를 작성하려고 합니다.지금까지 이 작업을 수행할 수 있었던 유일한 방법은 합계에 하위 보고서를 사용하는 것이었지만 이는 동일한 데이터를 검색하기 위해 데이터 소스를 다시 조회해야 한다는 것을 의미하므로 말도 안되는 일처럼 보입니다.다음은 간단한 예입니다.

       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

이 예에서는 기본 보고서가 '날짜'별로 그룹화되어 있지만 총계는 '소스'별로 추가로 그룹화되어 있습니다.누적 합계를 사용하는 예를 찾아봤지만 실제로 필요한 작업을 수행하지 않습니다.결과 집합을 저장하고 기본 보고서와 하위 보고서가 모두 동일한 데이터를 참조하도록 하는 방법이 없나요?

도움이 되었습니까?

해결책

흠...보고서에서 저장된 프로세스를 호출하고 모든 것을 한 위치에 포함시키는 것만큼 좋지만, 결국에는 크리스탈이 원하는 작업을 수행할 수 없는 지점에 도달했다는 사실을 발견했습니다. 데이터가 바로 거기에 있습니다.

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

이 기사 보고서에 데이터 푸시를 설정하는 방법에 대한 좋은 소개가 있습니다.귀하의 시간/비즈니스 제약으로 인해 이 작업을 수행할 수 없다는 점을 이해하지만 가능하다면 보고서에서 모든 "코딩"을 제거하고 항상 관리되는 코드로 이동할 수 있다는 의미이므로 강력히 권장합니다. 좋은것.

다른 팁

데이터를 다시 실행하지 않고 이 작업을 수행할 수 있는 유일한 방법은 그룹당 누계를 계산하는 수식을 만드는 것입니다.기존 누계에서 발생하는 문제는 합계를 구하는 각 그룹을 따르도록 의도되었다는 것입니다.모든 '원시' 데이터 뒤에 소계가 따르기를 원하는 것 같으므로 이는 작동하지 않습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top