小票打印怎么设计? 类似超市的收款后打印的小票,用QReport设计。宽度固定,长度可变。现在没有小票打印机,要开发后交付的时候再配。怎么设置页面?宽度可以了,按纸张的实际宽度。但长度怎么办?怎么保证小票打印完就停止走纸? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 小弟见过那种小票的制做方法是:把要打印的内容写到一个文本文件里,最后调用一个批处理文件用Copy 文件到LPT就行了.用的打印机是:Epson的Pos58热敏打印机. 小弟见过那种小票的制做方法是:把要打印的内容写到一个文本文件里,最后调用一个批处理文件用Copy 文件到LPT就行了.用的打印机是:Epson的Pos58热敏打印机. 我有一个小票打印的代码.都是写到程序里。你就随便看看吧.写得早了。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; 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;改进一下就可以了 to chenylin(陈SIR) ( ) 信誉:100 我用了你的例子怎么编译不通过啊?[Error] Unit1.pas(35): Undeclared identifier: 'Printer' 推荐一款套打开发模块,是一个dll,调用简单方便可以访问以下网址查看说明http://www.yxjr.com/cp/yxprint.html 请教大家,用FindWindow、GetWindow获取窗口,如何找到我想操作的那个edit? ORACLE自增字段的问题,100分! 報表設計,在線等待,急!!! 关于视频开发的问题! 一个能猜出你想法的东西!我是上当了! 你们的女朋友是怎样认识的? 如何显示单词音标? 怎么能把汉字转换成对应的拼音字母?? 100分赠送,等你来拿!!!! 讨教一个屏幕取词的问题 请问:怎么让一个DBGrid开始插入状态时,当光标离开一行时,不做插入的动作,而是等多输入几行后,点一个按钮统一进行插入呢? ComboBox的哪个属性让控件只能选,不能写
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;
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;改进一下就可以了
我用了你的例子怎么编译不通过啊?
[Error] Unit1.pas(35): Undeclared identifier: 'Printer'
http://www.yxjr.com/cp/yxprint.html