Q&A

  • 퀵레포트 디테일밴드 출력중 도움요청
꾸벅 안녕하세요?

퀵레포트 출력중에 데테일 밴드 "QRDBText" 콤포넌트 3개 걸어놓고

순번 품목 주행거리 거래일자

1 엔진오일 교환 23,000 1999-12-12

2 브레이크오일 교환 34,000 1999-12-25

3 엔진교환 38,000 1999-12-31

4 라이닝 교환 45,000 2000-02-12

5 밧데리 교환 50,000 2000-02-12

인쇄중에 1,2,3 번 까지는 앞전에 인쇄를 했고 4,5번만 요번에

인쇄를 하려고 합니다.

그런데 1,2,3 번까지는 무효값을 주고 4,5번만을 인쇄 하려고 합니다.

그러니까

품목

1 무효값

2 무효값

3 무효값

4 라이닝 교환 45,000 2000-02-12 "인쇄"

5 밧데리 교환 50,000 2000-02-12 "인쇄"

고수님들의 한 수 부탁합니다.

2  COMMENTS
  • Profile
    방기남 2000.09.13 23:44


    안녕하세요.



    흠.. 메일은 잘 받아봤습니다. 김명호님께서는 저와 비슷한 경우에 처해 계시는 것

    같네요. 물론 저는 해결을 했습니다.



    먼저 아래의 제 경우가 김명호님의 경우와 맞는지(비슷할거라 생각합니다만) 확인해

    보시기 바랍니다.



    제 업무중에 이런 일이 있었습니다. 전체 5건까지 입력이 가능하고 꼭 5건을 모두

    입력하지 않고서 프린트할 경우, 예를들어 하나의 자료만 입력하고서 나머지 4건의

    자료에 대해서는 0으로 출력하게끔 하는 경우였습니다.



    비슷한 경우라 할 수 있을지 모르겠지만,



    { 입고전표에 찍힐 내용과, 전체 5건 중에 나머지 부분은 0 으로 찍기위한 루틴 }

    Y_.Close;

    Y_.SQL.Clear;

    Y_.SQL.ADD(' SELECT MST.*, ');

    Y_.SQL.ADD(' MEC.ITEM||'' ''||MEC.NORM ITEMNORM ');

    Y_.SQL.ADD(' FROM MEEN02M MST, ');

    Y_.SQL.ADD(' MECO01M MEC ');

    Y_.SQL.ADD(' WHERE ENTER_DATE = :SQLENTERDATE ');

    Y_.SQL.ADD(' AND ENTER_NO = :SQLENTERNO ');

    Y_.SQL.ADD(' AND CUSTOMER = :SQLCUS ');

    Y_.SQL.ADD(' AND MST.CODE = MEC.CODETTL(+) ');

    Y_.SQL.ADD(' UNION ALL ');

    Y_.SQL.ADD(' SELECT '' '', ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' 0, ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' 0, ');

    Y_.SQL.ADD(' 0, ');

    Y_.SQL.ADD(' 0, ');

    Y_.SQL.ADD(' '' '', ');

    Y_.SQL.ADD(' '' '' ');

    Y_.SQL.ADD(' FROM COPY_T ');

    Y_.SQL.ADD(' WHERE NO1 <= :SQLNO ');



    Y_.Params[0].Value := Call_ENTER_DATE;

    Y_.Params[1].Value := Call_ENTER_NO;

    Y_.Params[2].Value := Call_CUSTOMER;

    { 입고전표관리에서는 최대 5개까지만 입고한다 }

    Y_.Params[3].Value := 5 - Rex;



    Y_.Open;



    이와같이 적용하여 사용했습니다.



    김명호님께서 말씀하신 1~3번까지는 내용은 찍히지 않되 출력될때 자리는 차지를

    해야 한다고 하셨는데, 위와 같은 방법으로 하시면 되실 듯 싶네요. 물론 그대로

    하면 안되고 UNION 에 대한 이해가 있으면 될 듯 싶습니다.



    더 자세히 해야 하나요????

    그렇다면 제 설명이 부족한 것 같네요. 글을 써놓고도..... ^^

  • Profile
    방기남 2000.09.13 04:54


    안녕하세요.



    Total 5개의 항목중에 나머지 두개의 항목을 인쇄할 때에,



    QuickRep 에서 제어할 수 있는 방법은 없는걸로 압니다.



    코딩으로 순번을 잡아주는 수 밖에 없을 듯 싶은데요.



    보통 DBGrid 의 내용을 출력하게 되므로, 출력에 맞는 조건을 걸어주어 인쇄하면



    될 듯 싶네요.



    예를 들면.. 저 같은 경우엔 다음의 사항입니다.



    Q_.Close;

    Q_.SQL.Clear;

    Q_.SQL.Add(' SELECT * FROM TABLES ');

    Q_.SQL.Add(' WHERE NO < :SQLNO ');

    Q_.Params[0].Value := 5;

    Q_.Open;



    위와같이 그리드에 나머지 출력할 것만 올린후에 Print 하는 방법이죠.

    즐코하세요.