我在实现套打票据,但我现在只能实现单张票据套打,如果一次要连续打印10多张票据套打的话应该怎么实现,报表程序是用fastreport  V2.51,纸为:连续纸,请高手指点。

解决方案 »

  1.   

    TO: ygflydream(飞飞)能举个例子吗,我现在也是这样想的我在程序里加上了可还是不行
    问题如下:
    比如Table1里有个字段 Print 布尔型 如果为真时这条记录就不打印,为假时才打印出来,
    要看数据库有几条记录没有打印,如果还剩10条没有打印,就用连续纸一次性打印出来。
    这样要怎样写代码呀!
      

  2.   

    在打印之前记录集先过滤条件,然后直接打印就好了,只要你的band为你所在记录集!
      

  3.   

    比如Table1里有个字段 Print 布尔型 如果为真时这条记录就不打印,为假时才打印出来,
    要看数据库有几条记录没有打印,如果还剩10条没有打印,就用连续纸一次性打印出来。
    这样要怎样写代码呀!我已经用SQL语句找出字段 Print 为假的记录,
    那下来应该怎么做才能使其连续打印出来请指教。
      

  4.   

    if (sender as TMenuItem).Name ='N1' then   //其中frDBDataSet1 为报表数据控件,连数据集
      begin                            //打印当前资料
       frDBDataSet1.RangeBegin:=rbcurrent;
       frDBDataSet1.RangeEnd:=reCount;
       frDBDataSet1.RangeEndcount:=1;
      end   else                      //打印所有资料
      begin
             frDBDataSet1.RangeBegin:=rbfirst;
       frDBDataSet1.RangeEnd:=relast;
       frDBDataSet1.RangeEndcount:=0;
      end;
      

  5.   

    TO:LZGUI(威靈)你的那段代码我改成这样会无限循环,应该怎么改请高手指点  if DM.Query1.FieldByName('Print').AsBoolean = False then   //其中frDBDataSet1 为报表数据控件,连数据集
      begin                            //打印当前资料
       DM.frDBDataSet2.RangeBegin := rbCurrent;
       DM.frDBDataSet2.RangeEnd := reCount;
       DM.frDBDataSet2.RangeEndCount := 1;
        DM.frReport2.PrepareReport;
      end   else                      //打印所有资料
      begin
        DM.frDBDataSet2.RangeBegin:=rbfirst;
       DM.frDBDataSet2.RangeEnd:=relast;
       DM.frDBDataSet2.RangeEndcount:=0;
        DM.frReport2.PrepareReport;
      end;
    end;
      

  6.   

    TO: rgn() 
    不是的一张票据有四五行数据吧,但是一条记录对应一张票据
    但是我已经用SQL语句找出字段 Print 为假的记录,只有数据库中Print字段为False时这条记录才要打印出来,如果有十条记录的Print字段为False就都要一次性打印出来
      

  7.   

    >>但是我已经用SQL语句找出字段 Print 为假的记录
    for i := 0 to 记录集.Count-1 do
      打印(记录集[i]);
    不就结了?
      

  8.   

    TO:zzlingaaa(小舟) 这样不行呀
      for i := 0 to DM.Query1.Count-1 do//这句编译时不能通过
        DM.frReport2.ShowPrintDialog := False;
        DM.frReport2.PrepareReport;
        Dm.frReport2.PrintPreparedReportDlg;
      

  9.   

    试试这个,数据集RangeBegin为rbCurrent,RangeEnd为reCount;
    procedure TForm4.Button5Click(Sender: TObject); 
    begin
     Query1.First;
     while not Query1.Eof do
     begin
    frreport1.PrepareReport;
    frreport1.PrintPreparedReportDlg;
      Query1.Next;
     end;
    end;
      

  10.   

    TO:rgn() 你这段代码不会死循环了,但打印出来的是空的
      

  11.   

    TO:rgn() 你这段代码不会死循环现在可以打印,但是打印了来的记录总是停留在第一条
    比如:查找到了3条未打印记录,但是打印机打印时,总是第一条记录打了3次,其它2条记录就不打印了