请教超市的小票打印是怎样实现的?通过一行一行的writeln吗?用fastreport能否实现?如何实现?

解决方案 »

  1.   

    procedure TForm1.ButtonPrintClick(Sender: TObject);
    var
      PText:TextFile;
      i:integer;
    begin
      Printer.Canvas.Font.Charset:=GB2312_CHARSET;
      AssignPRN(PText);
      Rewrite(PText);
      Printer.Canvas.Font.Name:='黑体';
      Printer.Canvas.Font.Size:=10;
      writeln(Ptext,'POS 票据');
      writeln(Ptext,'');
      writeln(Ptext,'品名  单价   数量   小计');
      For i:=1 to ADODataSetPJ.RecordCount do
        writeln(Ptext,ADODataSetPJ.FieldByName('pm').asString+
        ADODataSetPJ.FieldByName('dj').asString+
        ADODataSetPJ.FieldByName('sl').asString+
        ADODataSetPJ.FieldByName('hj').asString);
      writeln(Ptext,'');
      CloseFile(Ptext);
    end;改进一下就可以了
      

  2.   

    也可以用QuickReport设计小票报表
      

  3.   

    fastreport可以实现啊!蛮好做的啊 !
      

  4.   

    fastreport可以实现啊用这个怎么做呀
      

  5.   

    最简单的了,
    安装票据打印机
    根据票据设置小票报表
    调用FastReport打印......
      

  6.   

    chenylin(陈SIR),你说的方法,我以前也试过,但是在打印数字的时候,老是不能对齐
    如:
      品名  单价   数量   小计'
       aa    10     10    100
    可以认为这种格式是正确的但我打印出来的结果却是
    品名  单价   数量   小计'
     aa 10  10  100
    实际上标题之间每个词的间格和每行数据间的间隔是一致的,就是不知道为什么打印出来的时候,会变样,只有补加空格。但是,每个数据都有可能不一样,每一行都要加空格,还要计算长度,太麻烦,哪位有根本的解决办法?