200分求解--如何控制LQ300K打印机退行,急急!! ( 积分: 200 )

  • 主题发起人 主题发起人 szluo
  • 开始时间 开始时间
S

szluo

Unregistered / Unconfirmed
GUEST, unregistred user!
如题。能提供解决方案的朋友,我送上200分。
 
如题。能提供解决方案的朋友,我送上200分。
 
为何要退行?
 
我正在作阿,不过这是别人的代码,还没研究,,
你试试看撒
function TDefaultSProvider.RcuisinebodyDLQ(fsdata: IDataProvider): string;
var
billno,shallname,sdeskname,scusnum,swaitress,stime,Fctname,sumstr:string;
scname,scamount,scunit,scprice,sctotal:string;
sgratulation,sbooktel,saddress:string;
shead,sbody,sfoot:string;
restr:string;
signint:integer;
begin
shead:='' ;
sbody:='' ;
sfoot:='';
restr:='';
sgratulation:=Field('欢迎词');
sbooktel:=Field('订餐电话');
saddress:=Field('餐厅地址');
sfoot:=DupeString('-',50)+#10;
sfoot:=sfoot+#27#97#48#27#68+#21#9+sgratulation+#10+'订餐电话:'+sbooktel+#10;
sfoot:=sfoot+'餐厅地址:'+saddress+#10;
sfoot:=sfoot+#27#74#20;
sfoot:=sfoot+Field('公司名称')+#10;
sfoot:=sfoot+'软件销售电话: '+Field('公司电话')+#10;
sfoot:=sfoot+#27#74#81;
billno:=Field('单号');
shallname:=Field('厅名');
sdeskname:=Field('台名');
scusnum:=Field('客人数');
swaitress:=Field('服务员号');
stime:=Field('开始时间');
{#28#33#8 FS ! N 设置中文字体大小 #27#97#1:居中 }
Fctname:=setcaidmcenter(Field('餐厅名称')+'点菜单') ;
shead:=#28#33#8+Fctname+#10;
shead:=shead+#27#74#25;
shead:=shead+#28#33#0+'NO:'+billno+' '+getchndate(now)+' '+stime+#10;//#28#33#0---转为默认字体
shead:=shead+DupeString('-',50)+#10;
sumstr:=FormatLQTinghao(shallname,sdeskname,scusnum,swaitress) ;
//厅台服务员号
shead:=shead+sumstr ;
shead:=shead+DupeString('-',50)+#10;
shead:=shead+' 名称 数量 规格 单价 金额 '+#10;
signint:=0 ;
fsdata.SetCompField('点菜单列表_本地');
fsdata.First;
while not fsdata.Eofdo
begin
IStoline:=0 ;
scname:=SubField('名称');
scamount:=format('%2.1f',[strtofloat(SubField('数量'))]);
scunit:=SubField('单位');
scprice:=format('%4.2f',[strtofloat(SubField('单价'))]);
sctotal:=format('%2f',[strtofloat(SubField('金额'))]);
sbody:=sbody+Formatlinelq(scname,scamount,scunit,scprice,sctotal);
signint:=signint+IStoline ;
//记录实际打印的记录数(行)
if (signint=28) and (signint<>fsdata.GetCompFieldCount) then
//限制每张单子打印28行
begin
//内容过多要分单打印
restr:=restr + shead+#10+sbody+#10+sfoot+#10;
sbody:='' ;
signint:=0;
end;
//内容过多要分单打印
fsdata.Next;
end;
//菜的内容
sbody:=Addlinefromat(signint,sbody) ;
//菜单行数进行格式化---28行
result:=restr+shead+#10+sbody+#10+sfoot+#10;
end;
你走运撒 我刚从公司 考回来的
 
兄弟 再给点资料你 ,把200分都给我吧
==========================LQ300K===========================
#28#33#8(为大常字体) FS ! N 设置中文字体大小 #28#33#12(为大字体为宋体)
#28 + #33 + #$10 可以设置一个标记位置在右上方 如---> (S^) #28+#114+#0 (小字体)
#28#33#0(为小字体或为取消大字体)
#27+#69 (Bold font) #27+#70 (cancel bold font)
#32 (blank)
#27#74#8;
ESC J n----- Print and feed paper
#13+#10 回车换行
#$0C 走纸(但不知道走的长度)
#$26 符号(&amp;)
#27+#106+#50 退纸命令*

--------------------------------------------------------
#28 + 'W' + #1 与之对应 #28 + 'W' + #0 这个命令不清楚
#$D+#$A 这个命令不清楚
==========================LQ300K===========================
==========================tm-u220B and tm-T883=============

#27#97#48#27#68+#21#9 **命令为与列距间间隔一定距离
#27#48#27#68+#17#22#27#33#9 **意义为从第一列从第#17个字符与第二列间隔#9长度字符
#22表示第二列从第22个字符与第三列间隔#9长度字符
.....以此类推
#28#33#8 FS ! N 设置中文字体大小 #27#97#1:居中
#28#33#0 (为小字体或为取消大字体)
#27#74#8;// ESC J n----- Print and feed paper
#29#86#49 切纸
-------------------------不同的退纸命令------------------------------------
#27#75#40 退纸命令 ESC K n (0<=n<=48) Print and reverse feed (tm-u220B)
#29#66#40 退纸命令 GS B n (0<=n<=255) reverse printing mode (tm-T883)
---------------------------------------------------------------------------
==========================tm-u220B and tm-T883=============
 
后退
顶部