꾸벅 안녕하세요?
퀵레포트 출력중에 데테일 밴드 "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 "인쇄"
고수님들의 한 수 부탁합니다.
안녕하세요.
흠.. 메일은 잘 받아봤습니다. 김명호님께서는 저와 비슷한 경우에 처해 계시는 것
같네요. 물론 저는 해결을 했습니다.
먼저 아래의 제 경우가 김명호님의 경우와 맞는지(비슷할거라 생각합니다만) 확인해
보시기 바랍니다.
제 업무중에 이런 일이 있었습니다. 전체 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 에 대한 이해가 있으면 될 듯 싶습니다.
더 자세히 해야 하나요????
그렇다면 제 설명이 부족한 것 같네요. 글을 써놓고도..... ^^