2012-08-17 4 views
1

Crystal Reports에서 다음을 수행 할 수 있습니까?Crystal Reports의 한 줄에 상위 - 하위 표시

표 A

ID Boo Far 
1 Test 15 
2 Tast 24 

표 B

Foo Bar ParentID 
A 1 1 
B 2 1 
C 3 1 
A 17 2 
c 18 2 

그리고 크로스 테이블을 사용 Withou 내 보고서

ID Boo Far A B C 
1 Test 15 1 2 3 
2 Tast 24 17 18 

처럼보고 싶어? 크로스 오버와 함께 헤더 A, B, C를 얻을 수 있지만 ID, Boo 및 Far 헤더는 표시 할 수 없습니다. 또한 레코드 당 A, B 및 C 행 행렬화 할 수 있지만 모든 레코드에 대해 모든 B의 열 합계를 만들 수 없습니다. 물론 정상적인 것

ID Boo Far 
1 Test 15 
      Bar 
      1 
      2 
      3 

:

나는 이미 좋은 그룹으로는, 그러나 이것은 나에게 같은 결과를 제공 만드는 시도했다. 그러나 나는 (또는 고객이 ...) 그것을 원하지 않는다.

어떤 도움이 필요합니까?

답변

2

{테이블 A.ID}에 그룹 만들기 테이블을 그룹 헤더 섹션에 추가하십시오.

세 가지 공식을 만들기 그룹 바닥 글 구역

을 억제 :
// {@a} 
If {Table B.Foo}='A' Then {Table B.Bar} 
Else 0 

// {@b} 
If {Table B.Foo}='B' Then {Table B.Bar} 
Else 0 

// {@c} 
If {Table B.Foo}='C' Then {Table B.Bar} 
Else 0 

은 세부 사항 섹션에 추가합니다. 세부 정보 섹션 숨기기

이러한 각 수식에 요약 필드를 삽입하십시오. 그룹 머리글 섹션으로 이동하십시오. 열 머리글에 맞 춥니 다.

+0

굉장합니다. 매력처럼 작동합니다! –

0

당신은

  1. 당신이 이미 {TableA.ID}에 대해 설정 한 그룹화 유지 표 A에 항목 별 A, B, C의 값을 추적하는 변수를 사용할 수 있습니다. 표시하려는 모든 항목을 그룹 바닥 글로 이동하십시오. 제 (비어) 군 헤더
  2. 조건부 인덱스 1 'A'의 값을 포함하도록 배열 갱신 부 사항 REDIM/크기의 어레이 (지금은 빈) 3.
  3. 초기화 , 2는 'B'등입니다.

    whileprintingrecords; 
    numbervar array myArray; 
    select {TableB.Foo} 
    case 'A' : myArray[1]:={tableB.Bar} 
    case 'B' : myArray[2]:={tableB.Bar} 
    case 'C' : myArray[3]:={tableB.Bar} 
    default : 0 //handle error case
  4. 보고서에 표시되지 않도록 그룹 머리글과 본문 섹션을 모두 표시하지 않습니다.
  5. 이제 그룹 바닥 글에서 tableA의 각 상위 레코드에 대해 A, B, C에 대해 tableB의 모든 해당 값에 액세스해야합니다.

참고 : 모든 수식을 올바르게 사용하려면 whileprintingrecords;을 사용해야합니다.

0

크로스 탭 개체를 사용 하겠지만 데이터가 실제로 어떻게 보이는지 잘 모르겠습니다.

는 해결하기 :

는 ID, 우우와 극동에 대한 헤더를 표시 할 수 없습니다.

새 열로 결합하여 행 헤더로 표시 할 수 있습니다. 튜플의 경우 A, B, C와 같은 개별 열로 표시되지 않습니다. 주소

: 나는 모든 레코드에 대한 모든 B 년대의 열 합계를 만들 수 없습니다

.

데이터 소스의 각 그룹에 대한 모든 합계를 사용하여 마지막으로 정렬 된 새 행을 소개합니다.

관련 문제