Q&A

  • 퀵 레포드에서 밴드 높이 조정 했더니 2/3 나오고 1/3 은 빈공간으로 나옵니다
[질문] 퀵레포드 사용 하여 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;


방법좀 알려 주세요
0  COMMENTS