本人现在正在负责做一个商品出库单据的套打。打出来的样子是这样的,                                 单据头单据栏:..............................细项名...............................
1
2
3细项合计..........................现在的问题在于,在数据库里每张单据的细项可能有很多,要求每三项就打到下一张单据里。我现在已经将单据的明细号由1234567.....处理为123123123....了。而关于换页打印则没有思路。请大家帮个忙想一下,给个思路也行,谢谢。

解决方案 »

  1.   

    如果樓主用的QuickReport,那麼將QuickReport報表上的dataSet設置為空然後處理其OnDataNeed事件
    在事件中,你判斷你的記錄數與3取模為0時,那麼就調用
    新打印頁的方法即可
      

  2.   

    //簡單的做了一下,希望能為樓主解憂
    unit Unit2;interfaceuses Windows, SysUtils, Messages, Classes, Graphics, Controls,
      StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls;type
      TQuickReport2 = class(TQuickRep)
        procedure QuickRepNeedData(Sender: TObject; var MoreData: Boolean);
        procedure QuickRepBeforePrint(Sender: TCustomQuickRep;
          var PrintReport: Boolean);
      private
        iRecord: Integer;
      public  end;var
      QuickReport2: TQuickReport2;implementation{$R *.DFM}procedure TQuickReport2.QuickRepNeedData(Sender: TObject;
      var MoreData: Boolean);
    begin
      MoreData := DataSet.Eof;
      if MoreData then
      begin
        Inc(iRecord);
        if (iRecord mod 3) = 0 then
          Self.NewPage;
      end;
    end;procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    begin
      iRecord := 0;
    end;end.
      

  3.   

    //寫得太快MoreData := DataSet.Eof;//這一句應該是:
    MoreData := not DataSet.Eof;
      

  4.   

    还有一个问题是这样的,在我将报表分页后,能不能将这几页打在一张纸上。我对quickreport的接触不多,所以问题比较多多,希望段大哥多多包涵,这几天我把这些问题搞定后立刻结贴,分的事好说