我用QuickReport做了一個報表,報表中有若干個字段,其中有一個字段為PrintNo,現想將PrintNo的不同的編號分開打印並且每頁最多打印五行,其條件為:
1:如果前後兩個PrintNo的值則按PrintNo的不同值分頁打印。
2:相同的PrintNo值,其行數超過5行,從第六行起則打印在下一頁,以此類推。
這樣的代碼是不是要在報表的OnStartPage中寫,如何寫,請指點。謝謝!

解决方案 »

  1.   

    我用針式打印機套打報表,紙張已印好,一張A4紙分成兩半,我用以下語句來定義紙張,執行時它還是認為是A4紙,只打印上面一半,下面一半卻是空的,接著從第三頁開始打下一紙,這樣造成浪費很大,定義紙張程式如下,我用的畫布打印:請指點。
    procedure TfrmPrintInto.SetPaperSize(X, Y: Integer);
    var
      Device: array[0..255] of char;
      Driver: array[0..255] of char;
      Port: array[0..255] of char;
      hDMode: THandle;
      PDMode: PDEVMODE;
    begin
      Printer.PrinterIndex := Printer.PrinterIndex;
      Printer.GetPrinter(Device, Driver, Port, hDMode);
      if hDMode <> 0 then
      begin
        pDMode := GlobalLock(hDMode);
        if pDMode <> nil then
        begin
          if (x = 0) or (y = 0) then
          begin
            pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
            pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
          end
          else
          begin
            {Set to custom size}
            pDMode^.dmFields := pDMode^.dmFields or
              DM_PAPERSIZE or
              DM_PAPERWIDTH or
              DM_PAPERLENGTH;
            pDMode^.dmPaperSize := DMPAPER_USER;
            pDMode^.dmPaperWidth := 2710; {SomeValueInTenthsOfAMillimeter};
            pDMode^.dmPaperLength :=700; {SomeValueInTenthsOfAMillimeter};
          end;
          {Set the bin to use}
          pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
          pDMode^.dmDefaultSource := DMBIN_MANUAL;      GlobalUnlock(hDMode);
        end;
      end;
      Printer.PrinterIndex := Printer.PrinterIndex;
    end;
    調用時我用SetPaperSize(2170,1400);
      

  2.   

    pDMode^.dmPaperWidth := 2710; {SomeValueInTenthsOfAMillimeter};
     pDMode^.dmPaperLength :=700; {SomeValueInTenthsOfAMillimeter};
    應為
      pDMode^.dmPaperWidth := x; {SomeValueInTenthsOfAMillimeter};
      pDMode^.dmPaperLength :=y; {SomeValueInTenthsOfAMillimeter};
      

  3.   

    好久沒上csdn論壇,才發現高手比以前少了很多,以前提問,很快就有人回答,可現在三天都沒人解答,不知諸位有沒有同感,不得已只好自已頂一下.