Q&A

  • 퀵레포트에서 Grouping한 레코드수를 표시하는 방법
퀵레포트에서 Grouping별로 레코드수를 summary 밴드에



표시할려고 합니다.



예로...고객의 상태(가망고객, 불량고객, 우량고객)별로 Grouping했습니다..



그래서 Summary 밴드에 고객 상태별 레코드 수를 나타내어야 합니다..



도와 주세요...





4  COMMENTS
  • Profile
    최도석 1999.10.30 10:05
    신 기종 wrote:

    > 퀵레포트에서 Grouping별로 레코드수를 summary 밴드에

    >

    > 표시할려고 합니다.

    >

    > 예로...고객의 상태(가망고객, 불량고객, 우량고객)별로 Grouping했습니다..

    >

    > 그래서 Summary 밴드에 고객 상태별 레코드 수를 나타내어야 합니다..

    >

    > 도와 주세요...

    >

    >



    앞에 분이 좋은 방법을 가르쳐 주셨는데 저는 이 방법이 쉽겠네요.

    GroopFooter에서 QrExpression컴포넌트의 Data(맞나?)프라퍼티를 DetailCount로 설정하면 되겠군요.

    즐거운 computing이 되시길...

  • Profile
    이재식 1999.10.30 19:23
    앞에 분이 좋은 방법을 가르쳐 주셨는데 저는 이 방법이 쉽겠네요.

    GroopFooter에서 QrExpression컴포넌트의 Data(맞나?)프라퍼티를 DetailCount로 설정하면

    되겠군요.

    즐거운 computing이 되시길...



    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>





    이재식 Wrote :

    안녕하세요?



    답변 잘 보았습니다.

    그런데요, 제가 실제로 해보니 그룹별 레코드수는 나오질 않습니다.

    제가 알기로는 QRSys컴포넌트의 data속성인데요,

    detailcount는 쿼리의 결과 전체 레코드개수,

    detailno는 말그대로 레코드의 번호(1부터 시작).



    저는 지금까지 컴포넌트의 속성을 이용해서(또는 퀵레포트 자체기능)

    그룹별 레코드수를 계산했다는 보고를 받은적이 없거든요.



    제가 어딘가 실수를 했다면 가르쳐 주세요.



    그럼. 건강하시길...

  • Profile
    이재식 1999.10.30 05:06
    신 기종 wrote:

    > 퀵레포트에서 Grouping별로 레코드수를 summary 밴드에

    >

    > 표시할려고 합니다.

    >

    > 예로...고객의 상태(가망고객, 불량고객, 우량고객)별로 Grouping했습니다..

    >

    > 그래서 Summary 밴드에 고객 상태별 레코드 수를 나타내어야 합니다..

    >

    > 도와 주세요...

    >

    >



    이재식 Wrote :

    안녕하세요?



    그러한 기능은 퀵레포트 자체에서 제공이 되질 않습니다.



    우선 간단한(?) 방법 2가지가 있습니다.



    방법 1. 가장 무난한 방법이죠.

    쿼리 컴포넌트 3개를 더 씁니다.(가망, 불량, 우량)

    그래서, 퀵레포트를 preview하기전에 먼저 그룹별 레코드수를

    구하는 것이죠.

    가령, 각각의 컴포넌트를 query1, query2, query3라고 합시다.

    with query1 do // 가망

    begin

    close ;

    sql.clear ;

    sql.add('select count(*) as gaMangNum') ;

    sql.add('from 테이블명') ;

    sql.add('where 조건') ;

    sql.add('group by 필드명') ;

    open ;

    end ;

    이런식으로 레코드수를 세기위한 컴포넌트를 더 쓰는 것입니다.

    즉, 실제 가망고객에대한 쿼리외에 그 레코드수를 구하기위한

    쿼리 컴포넌트를 하나 더 쓰는 것입니다.

    그런다음 나중에 query1.fields[0].asInteger식으로

    참조하면 되죠.



    방법2는 다소 복잡합니다.

    그룹헤더, 디테일, 그룹푸터를 쓰는 것입니다.

    그리고 그룹푸터는 height를 0으로 세팅하는 것이죠.

    그럼 실제 출력에서는 보이질 않죠.

    데이터를 그룹지었다는데 그룹헤더, 그룹푸터를 2개다 쓰셨는지,

    아니면 그룹헤더만 쓰셨는지 모르겠군요.



    private에는 변수 4개를 선언합니다.

    그래서 디테일과 그룹푸터 before & after Print이벤트를 쓰시면

    해결이 가능한데,

    이것을 글로 쓰려니까 너무 막연하네요.

    소스를 보내주시면 제가 구현을 해드릴수도 있습니다만...



    우선 방법1이 가장 무난하죠.

    실제 실무에서도 단위절삭이나 특정 검색수를 구하기위해서

    방법1을 많이 쓰기도 합니다.



    요즈음 하두 툴과 DB가 좋아서 저 정도 더 쿼리를 했다고 성능이

    급감하는것은 아닐뿐더러 막상 돌려보면 성능차이 잘 못느끼니까요.



    그럼, 건강히...







  • Profile
    신 기종 1999.10.30 05:15
    감사합니다..



    이재식님 좋은 하루 되세요..