Q&A

  • Qreport 페이지당 합계내기
제목 그대로 한 아이템에 대해 페이지당 합계를 내고 싶습니다.



여러 글도 읽어보고 했는데 잘 모르겠습니다.

혹시 도움 주실 수 있으신지요.

Qrexpr을 사용해도 값이 나오질 않네요.

여기 올라온 글들은 거의 다 읽어 봤는데도 잘...

어쨌든 부탁드립니다.



4  COMMENTS
  • Profile
    하기 2001.07.19 18:36
    참고가 될지 모르겠군요... 아마도 레포트에는 페이지 헤더/디테일 /페이지푸터

    이런식이겠죠... 거기서 하나의 합계를 위한 변수를 잡이시고요...

    페이지 헤더를 찍을때 초기화 시켜 주시고... 디테일밴드에서 그 값을 계속 누적

    다음에 페이지 푸터를(아님 다른 밴드를)찍으실때... 그 누적된 값을 뿌려주는

    그런 방법도...



    ^^:



    초보맨 wrote:

    > 제목 그대로 한 아이템에 대해 페이지당 합계를 내고 싶습니다.

    >

    > 여러 글도 읽어보고 했는데 잘 모르겠습니다.

    > 혹시 도움 주실 수 있으신지요.

    > Qrexpr을 사용해도 값이 나오질 않네요.

    > 여기 올라온 글들은 거의 다 읽어 봤는데도 잘...

    > 어쨌든 부탁드립니다.

    >

  • Profile
    초보맨 2001.07.19 21:30
    하기 wrote:

    > 참고가 될지 모르겠군요... 아마도 레포트에는 페이지 헤더/디테일 /페이지푸터

    > 이런식이겠죠... 거기서 하나의 합계를 위한 변수를 잡이시고요...

    > 페이지 헤더를 찍을때 초기화 시켜 주시고... 디테일밴드에서 그 값을 계속 누적

    > 다음에 페이지 푸터를(아님 다른 밴드를)찍으실때... 그 누적된 값을 뿌려주는

    > 그런 방법도...

    >

    > ^^:



    정말 죄송합니다만, 약간의 소스를 보여주실 수 있겠습니까?

    너무 귀찮으실텐데.. 다른회사에 갖고 가야 하는데 막막하네요.

    부탁드립니다.

  • Profile
    하기 2001.07.19 23:36
    더 쉬운방법이 있을지는 모르지만... 지금 생각이 안납니다.

    약간의 소스는 없고...

    SumTmp : Integer; => 모든 프로시져에서 사용할수 있도록 선언하시고..





    procedure TForm1.PageHeaderBand1BeforePrint(Sender: TQRCustomBand;

    var PrintBand: Boolean);

    begin

    SumTmp := 0;

    end;



    procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand;

    var PrintBand: Boolean);

    begin

    SumTmp := SumTmp + Table.FieldByName('아이템').AsInteger;

    end;



    procedure TForm1.PageFooterBand1BeforePrint(Sender: TQRCustomBand;

    var PrintBand: Boolean);

    begin

    QrLable.Caption := intToStr(SumTmp);

    end;

    이런식으로 Test해 보세요... 하다보면 나중에 더 좋은 방법이 나오겠죠...

    ^^;





    초보맨 wrote:

    > 하기 wrote:

    > > 참고가 될지 모르겠군요... 아마도 레포트에는 페이지 헤더/디테일 /페이지푸터

    > > 이런식이겠죠... 거기서 하나의 합계를 위한 변수를 잡이시고요...

    > > 페이지 헤더를 찍을때 초기화 시켜 주시고... 디테일밴드에서 그 값을 계속 누적

    > > 다음에 페이지 푸터를(아님 다른 밴드를)찍으실때... 그 누적된 값을 뿌려주는

    > > 그런 방법도...

    > >

    > > ^^:

    >

    > 정말 죄송합니다만, 약간의 소스를 보여주실 수 있겠습니까?

    > 너무 귀찮으실텐데.. 다른회사에 갖고 가야 하는데 막막하네요.

    > 부탁드립니다.

  • Profile
    초보맨 2001.07.20 23:16
    > procedure TForm1.PageHeaderBand1BeforePrint(Sender: TQRCustomBand;

    > var PrintBand: Boolean);

    > begin

    > SumTmp := 0;

    > end;

    >

    > procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand;

    > var PrintBand: Boolean);

    > begin

    > SumTmp := SumTmp + Table.FieldByName('아이템').AsInteger;

    > end;

    >

    > procedure TForm1.PageFooterBand1BeforePrint(Sender: TQRCustomBand;

    > var PrintBand: Boolean);

    > begin

    > QrLable.Caption := intToStr(SumTmp);

    > end;

    > 이런식으로 Test해 보세요... 하다보면 나중에 더 좋은 방법이 나오겠죠...

    > ^^;



    위의 코드와 흡사하게 작업을 했는데 문제는 합계값이 이상하게 나온다는 겁니다.

    Trace를 해보면 맨 처음 preview를 할때 먼저 Detail 부분을 한번 돌리는군요.

    그다음에 PH의 before 그리구 Detail의 before를 돌리기 때문에 첫번째 필드의 값은 더해지질 않고 다음페이지의 첫번째 라인이 계산값에 합해집니다.



    이러저리 머리를 굴려봐도 워낙 바보인지라 잘 모르겠네요.

    자꾸 리플달기도 죄송스럽구...



    여하튼 도움 정말 감사드립니다.