[질문] 퀵레포드 사용 하여 FORM Create 시 높이조정 했더니
2/3 나오고 1/3 은 빈공간으로 나옵니다
제가요 급여대장을 출력을 하는데
밴드는 컬럼헤드, 디테일, 페이지푸터, 섬머리 사용 하고
밴드 안에 Qrdbtext 나열 하였습니다
한라인에 Qrdbtext 10개 넣고 그런줄 3줄을 만들었습니다
<예>
---------------------------------------------
11111 기 본 급 직책수당 .....
장재영 근속수당 연장수당
부장 ................................
-----------------------------------------------
이런모양 이겠지요..
이때 밴드전체 HEIGHT = 90 이었고요
그런데 수당이 20 개 이었을때
FROM CREATE 시 밴드전체 HEIGHT = 60 주었더니
출력이 3/2 쯤에서 내용이 비었습니다
<예>
-------------------------------------------------- <---컬럼 해더 초기HEIGHT :90 -> 60
1 내용물 <---디테일 초기HEIGHT :90 -> 60
1 내용물
1 내용물
1 내용물
------ <---- 빈공간
------ <---- 빈공간
------------------------------------------------- <--- 페이지푸터 초기HEIGHT :90 -> 60
위와같이 출력 이 됩니다
소스 프로그램
procedure TFrmMonMastR.FormCreate(Sender: TObject);
VAR I, J,mSuCnt,mGoCnt,mSuMod,mGoMod,mHt : Integer ;
QRLblSu,QRLblGo : TQRLabel ;
QRDBSu,QRDBGo : TQRDBText ;
QRExSu,QRExPSu,QRExGo,QRExPGo : TQRExpr ;
mName : String ;
begin
inherited;
I := 0 ;
J := 0 ;
//수당
dmModule.QSuMast.CLOSE ;
dmModule.QSuMast.ParamByName('pGbn').AsString := '0' ;
dmModule.QSuMast.PrePare ;
dmModule.QSuMast.OPEN ;
dmModule.QSuMast.FIRST ;
I := 1 ;
WHILE NOT dmModule.QSuMast.EOF DO BEGIN
QRLblSu := TQRLabel(FindComponent('QRLblSu' + FormatFloat('00',I))) ; //라벨
mName := dmModule.QSuMast.FieldByName('Name').AsString ;
QRLblSu.CapTion := '' ;
QRLblSu.CapTion := mName ;
dmModule.QSuMast.NEXT ;
I := I + 1 ;
END ; //WHILE NOT EOF DO
mSuCnt := I - 1 ;
mSuMod := ROUND(mSuCnt / 4) ;
FOR J := I TO 20 DO BEGIN
QRLblSu := TQRLabel(FindComponent('QRLblSu' + FormatFloat('00',J))) ;
QRDBSu := TQRDBText(FindComponent('QRDBSu' + FormatFloat('00',J))) ;
QRExSu := TQRExpr(FindComponent('QRExSu' + FormatFloat('00',J))) ;
QRExPSu := TQRExpr(FindComponent('QRExPSu' + FormatFloat('00',J))) ;
QRLblSu.Enabled := False ;
QRDBSu.Enabled := False ;
QRExSu.Enabled := False ;
QRExPSu.Enabled := False ;
END ;
//공제
dmModule.QSuMast.CLOSE ;
dmModule.QSuMast.ParamByName('pGbn').AsString := '1' ;
dmModule.QSuMast.PrePare ;
dmModule.QSuMast.OPEN ;
dmModule.QSuMast.FIRST ;
I := 1 ;
WHILE NOT dmModule.QSuMast.EOF DO BEGIN
QRLblGo := TQRLabel(FindComponent('QRLblGo' + FormatFloat('00',I))) ; //라벨
mName := dmModule.QSuMast.FieldByName('Name').AsString ;
QRLblGo.Caption := '' ;
QRLblGo.Caption := mName ;
dmModule.QSuMast.NEXT ;
I := I + 1 ;
END ; //WHILE NOT EOF DO
mGoCnt := I - 1 ;
mGoMod := ROUND(mGoCnt / 4) ;
FOR J := I TO 16 DO BEGIN
QRLblGo := TQRLabel(FindComponent('QRLblGo' + FormatFloat('00',J))) ;
QRDBGo := TQRDBText(FindComponent('QRDBGo' + FormatFloat('00',J))) ;
QRExGo := TQRExpr(FindComponent('QRExGo' + FormatFloat('00',J))) ;
QRExPGo := TQRExpr(FindComponent('QRExPGo' + FormatFloat('00',J))) ;
QRLblGo.Enabled := False ;
QRDBGo.Enabled := False ;
QRExGo.Enabled := False ;
QRExPGo.Enabled := False ;
END ;
//Band 높이 조정
IF (mSuMod > 3) OR (mGoMod > 3) THEN Begin
IF mSuMod > mGoMod then
mHt := mSuMod
ELSE
mHt := mGoMod ;
END ELSE Begin
mHt := 3 ;
END ;
// 밴드 Height 변경 해주는 부분 ----------------------
QRShH.Top := 3 + (mHt * 16) ;
QRChildHead.Height := 8 + (mHt * 16) ;
QRDetail.Height := 8 + (mHt * 16) ;
QRGroupFooter.Height := 8 + (mHt * 16) ;
QRBandEnd.Height := 8 + (mHt * 16) ;
dmModule.QSuMast.CLOSE ;
end;
방법좀 알려 주세요