小票打印怎么设计?

leiming 2004-10-22 03:19:59
类似超市的收款后打印的小票,用QReport设计。宽度固定,长度可变。现在没有小票打印机,要开发后交付的时候再配。怎么设置页面?宽度可以了,按纸张的实际宽度。但长度怎么办?怎么保证小票打印完就停止走纸?
...全文
1095 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
雷振林 2004-11-17
  • 打赏
  • 举报
回复
推荐一款套打开发模块,是一个dll,调用简单方便

可以访问以下网址查看说明
http://www.yxjr.com/cp/yxprint.html
ourshow 2004-11-15
  • 打赏
  • 举报
回复
to chenylin(陈SIR) ( ) 信誉:100
我用了你的例子怎么编译不通过啊?
[Error] Unit1.pas(35): Undeclared identifier: 'Printer'
chenylin 2004-10-24
  • 打赏
  • 举报
回复
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;

改进一下就可以了
ksaiy 2004-10-24
  • 打赏
  • 举报
回复
上面的代码我从我的程序里贴出来的。
ksaiy 2004-10-24
  • 打赏
  • 举报
回复
我有一个小票打印的代码.都是写到程序里。你就随便看看吧.写得早了。
procedure TDPrintFrm.SpeedButton1Click(Sender: TObject);
var
Year,Month,Day:Word;
DateTime:String;
begin

DecodeDate(now,Year,Month,Day);
DateTime:=Format('%d-%d-%d',[Year,Month,Day]);
Printer.BeginDoc;
Printer.Canvas.Font.Name:='宋体';
Printer.Canvas.Font.Size:=10;
// 列 行
Printer.Canvas.TextOut(480,130,DianFrm.Combobox2.text+'(电费交纳单)');
Printer.Canvas.TextOut(100,190,' ----------------------------------------------------------------------------------------------');
Printer.Canvas.polyline([Point(100,200),Point(100,530)]);//第一条线
Printer.Canvas.Polyline([point(210,200),point(210,530)]);//第二条线
Printer.Canvas.Polyline([point(380,200),point(380,460)]);//第三条线
Printer.Canvas.Polyline([point(580,200),point(580,460)]);//第四条线
Printer.Canvas.Polyline([point(780,200),point(780,460)]);//第五条线
Printer.Canvas.Polyline([point(980,200),point(980,460)]);//第六条线
Printer.Canvas.Polyline([point(1180,200),point(1180,530)]);//第七条线
Printer.Canvas.Polyline([point(1330,200),point(1330,530)]);//最后一条线
Printer.Canvas.TextOut(100,220,' 名称 ');
Printer.Canvas.TextOut(220,220,DianFrm.Edit1.Text);
Printer.Canvas.TextOut(400,220,'上期用电(度)');
Printer.Canvas.TextOut(600,220,'本期用电(度)');
Printer.Canvas.TextOut(800,220,'实际用电(度)');
Printer.Canvas.TextOut(1000,220,'单价(度/元)');
Printer.Canvas.TextOut(1200,220,'金额(元)');
Printer.Canvas.TextOut(100,250,' ----------------------------------------------------------------------------------------------');
Printer.Canvas.TextOut(100,290,' 门市');
Printer.Canvas.TextOut(220,290,DianFrm.Edit2.Text+DianFrm.Label1.caption+DianFrm.Edit3.text+DianFrm.Label2.caption+DianFrm.Edit4.text+DianFrm.Label3.Caption);
Printer.Canvas.TextOut(440,290,DianFrm.Edit5.Text);
Printer.Canvas.TextOut(640,290,DianFrm.Edit6.Text);
Printer.Canvas.TextOut(860,290,DianFrm.Edit7.Text);
Printer.Canvas.TextOut(1050,290,DianFrm.Edit8.Text);
Printer.Canvas.TextOut(1230,290,DianFrm.Edit9.Text);
Printer.Canvas.TextOut(100,320,' ----------------------------------------------------------------------------------------------');
Printer.Canvas.TextOut(100,360,' 住房');
Printer.Canvas.TextOut(220,360,DianFrm.Edit10.Text+DianFrm.Label4.Caption+DianFrm.Edit11.Text+DianFrm.Label5.Caption+DianFrm.Edit12.Text+DianFrm.Label6.Caption);
Printer.Canvas.TextOut(440,360,DianFrm.Edit13.Text);
Printer.Canvas.TextOut(640,360,DianFrm.Edit14.Text);
Printer.Canvas.TextOut(860,360,DianFrm.Edit15.Text);
Printer.Canvas.TextOut(1050,360,DianFrm.Edit16.Text);
Printer.Canvas.TextOut(1220,360,DianFrm.Edit17.Text);
Printer.Canvas.TextOut(100,390,' ----------------------------------------------------------------------------------------------');
Printer.Canvas.TextOut(100,430,' 住房');
Printer.Canvas.TextOut(220,430,DianFrm.Edit18.Text+DianFrm.Label7.Caption+DianFrm.Edit19.Text+DianFrm.Label8.Caption+DianFrm.Edit20.Text+DianFrm.Label10.Caption);
Printer.Canvas.TextOut(440,430,DianFrm.Edit21.Text);
Printer.Canvas.TextOut(640,430,DianFrm.Edit22.Text);
Printer.Canvas.TextOut(860,430,DianFrm.Edit23.Text);
Printer.Canvas.TextOut(1050,430,DianFrm.Edit24.Text);
Printer.Canvas.TextOut(1220,430,DianFrm.Edit25.Text);
Printer.Canvas.TextOut(100,460,' ----------------------------------------------------------------------------------------------');
Printer.Canvas.TextOut(100,500,'合计大写');
Printer.Canvas.TextOut(220,500,DianFrm.Edit26.Text);
Printer.Canvas.TextOut(1230,500,DianFrm.Edit27.Text);
Printer.Canvas.TextOut(100,530,' ----------------------------------------------------------------------------------------------');
Printer.Canvas.TextOut(100,580,'收费单位:'+DianFrm.ComboBox2.Text);
Printer.canvas.textout(580,580,'收费员:'+DianFrm.ComboBox1.Text);
Printer.Canvas.TextOut(980,580,'时间:'+DateTime);
Printer.EndDoc;

end;

303 2004-10-24
  • 打赏
  • 举报
回复
小弟见过那种小票的制做方法是:把要打印的内容写到一个文本文件里,最后调用一个批处理文件用Copy 文件到LPT就行了.用的打印机是:Epson的Pos58热敏打印机.
303 2004-10-24
  • 打赏
  • 举报
回复
小弟见过那种小票的制做方法是:把要打印的内容写到一个文本文件里,最后调用一个批处理文件用Copy 文件到LPT就行了.用的打印机是:Epson的Pos58热敏打印机.
Rail100 2004-10-24
  • 打赏
  • 举报
回复
手抄
leiming 2004-10-24
  • 打赏
  • 举报
回复
没人会?那大家怎么做小票打印的?

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧