有report单元中:  public
    { Public declarations }
//加上这个
    class procedure PrintTbsjRpt(SJH: string; isPreview: boolean = true; isTd: boolean = True);
   //参数 isPreview是否预览 isTd 为是否套打
  end;var
  frmZcpzrpt: TfrmZcpzrpt;implementationuses dm_pxcx, main, support;{$R *.dfm}{ TfrmZcpzrpt }class procedure TfrmZcpzrpt.PrintTbsjRpt(SJH: string; isPreview, isTd: boolean);
var
  i: integer;
begin
  with Create(nil) do
  try
    if isTd then
    begin
      for i := 0 to ComponentCount - 1 do
      begin
        if (Components[i] is TqrShape) then
          (Components[i] as Tqrshape).Enabled := not (isTd);
        if (Components[i] is TqrLabel) then
          if (Components[i] as TqrLabel).Tag <> 100 then
            (Components[i] as TqrLabel).Enabled := not (isTd);
      end;
    end;
..............................
        if isPreview then
          qrTbsj.Preview
        else
          qrTbsj.Print;
      end;
    end;
  finally
................
    free;
  end;
end;调用:
procedure TfrmShqz.btnPrintClick(Sender: TObject);
begin
  TfrmZcpzRpt.PrintTbsjRpt(OrdsMain.fieldbyname('sjh').AsString, false, true);
end;

解决方案 »

  1.   

    THANKS!!!!我试试先 ^-^,   还有能说下思路么???帮俺一下
      

  2.   

    用画布的功能,只是见别人用过,没自己做过,你试一下吧,
    什么时候你的功能实现了,麻烦给我发一份了,[email protected]谢谢
      

  3.   

    在QReport中设计,要在什么位置打印数据,就在什么位置放置QRLabel或QRDBText或QRExpr。
      

  4.   

    ————————————————————————————————
    引用( 回复人 jijun:)在QReport中设计,要在什么位置打印数据,就在什么位置放置QRLabel或QRDBText或QRExpr。
    ————————————————————————————————
    难道我还要建数据库么,那..........!!!!!!!!!
      

  5.   

    用Canvas.textout()也可以
    如:
     uses printers;
     ...
     begin
       with Printer do
       begin
         BeginDoc // 开始打印
         Canvas.textout(100,100,'I test ');
         .......
         EndDoc   //结束打印
       end;
     end;
    当然之前还要对打印机设置,进行走纸控制,
    用 API或Tprinter都可以,才能精确打印。
      

  6.   

    那很麻烦呀!有现成的vcl么???
      

  7.   

    呵呵,我们用的是自己先做文件就是quickreport的格式然后用程序控制在上面,最后什么效果都可以实现
      

  8.   

    看来只有硬着头皮写 :(  ,没好方法了????
     “taogou(失去一切,才知道自己只是逃狗)” 你怎弄的,教俺!!!
      

  9.   

    用报表,我用fastReport,先按格式设计好报表,再加代码:
      frReport1.LoadFromFile('xsx.frf');
      frReport1.PrepareReport;
      frReport1.PrintPreparedReport('',1,False,frAll)
      

  10.   


    继续寻求帮助
                     -_-!!用Tprint.Canvas
    如何确定打印内容在票据上的坐标!!!!!