D
delphiboy
Unregistered / Unconfirmed
GUEST, unregistred user!
目前我们有个小程序,从数据库中取出需要
打印的编码,然后逐个逐个的送到打印机打印,现在我们遇到问题是这样的.
比如现在我们从数据库里面取出10个需要打印的编码,程序先从数据库里面
取出10个编码,然后执行一个循环,先取第一个,送往打印机打印,打印机打印完
后,返回一个消息给我们的程序,我们的程序收到消息后,取第二个编码,然后再打印.
现在的问题是,我们的程序得不到打印机完成打印的消息,或者是得不到扫描仪扫描
到有纸的消息.这样一来,我们的程序一直在循环.打印出的数据就不对.我们希望贵公司
能够提供一个接口给我们,让我们发送一个编码给打印机后就开始等待,当打印机打印完成后,能
返回一个消息,或都打印機的掃描裝置掃描到紙張信息後,也能返回一個信息,我们程序收到消息后,继续发送下一个编码.
procedure TDmn_main01_form.btnPrintClick(Sender: TObject);
var
lrc:LongWord;
begin
if hComm=0 then begin
MessageBox(0,pchar('請首先連接機器!'),'',MB_OK);
exit;
end;
exit_Flag:=False;
btnPrint.Enabled:=False;
while not qryDmntxt00.Eof do begin
Temp:=qryDmntxt00.fieldbyname('txt_content').AsString;
Temp:=chr($1B)+'S'+'001'+Temp+chr($04) ;
try
WriteFile(hComm,Pointer(Temp)^,Length(Temp), lrc, nil);
----------------------------------------------
这里需要加一段代码,来判断打印机打印完成或者扫描仪扫描到纸张,我们程序收到消息后,
就取下一个编码,如果没有收到就等待打印机打印.
----------------------------------------------
except
on e:Exception do begin
MessageBox(0,pchar('發送數據到打印機出錯:'+e.message),'',MB_OK);
btnPrint.Enabled:=True;
exit;
end;
end;//try...
qryDmntxt00.Edit;
qryDmntxt00.FieldByName('txt_flag').Value:='1';
qrydmntxt00.Post;
showmessage(Temp);
qryDmntxt00.Next;
end;
btnPrint.Enabled:=True;
end;
打印的编码,然后逐个逐个的送到打印机打印,现在我们遇到问题是这样的.
比如现在我们从数据库里面取出10个需要打印的编码,程序先从数据库里面
取出10个编码,然后执行一个循环,先取第一个,送往打印机打印,打印机打印完
后,返回一个消息给我们的程序,我们的程序收到消息后,取第二个编码,然后再打印.
现在的问题是,我们的程序得不到打印机完成打印的消息,或者是得不到扫描仪扫描
到有纸的消息.这样一来,我们的程序一直在循环.打印出的数据就不对.我们希望贵公司
能够提供一个接口给我们,让我们发送一个编码给打印机后就开始等待,当打印机打印完成后,能
返回一个消息,或都打印機的掃描裝置掃描到紙張信息後,也能返回一個信息,我们程序收到消息后,继续发送下一个编码.
procedure TDmn_main01_form.btnPrintClick(Sender: TObject);
var
lrc:LongWord;
begin
if hComm=0 then begin
MessageBox(0,pchar('請首先連接機器!'),'',MB_OK);
exit;
end;
exit_Flag:=False;
btnPrint.Enabled:=False;
while not qryDmntxt00.Eof do begin
Temp:=qryDmntxt00.fieldbyname('txt_content').AsString;
Temp:=chr($1B)+'S'+'001'+Temp+chr($04) ;
try
WriteFile(hComm,Pointer(Temp)^,Length(Temp), lrc, nil);
----------------------------------------------
这里需要加一段代码,来判断打印机打印完成或者扫描仪扫描到纸张,我们程序收到消息后,
就取下一个编码,如果没有收到就等待打印机打印.
----------------------------------------------
except
on e:Exception do begin
MessageBox(0,pchar('發送數據到打印機出錯:'+e.message),'',MB_OK);
btnPrint.Enabled:=True;
exit;
end;
end;//try...
qryDmntxt00.Edit;
qryDmntxt00.FieldByName('txt_flag').Value:='1';
qrydmntxt00.Post;
showmessage(Temp);
qryDmntxt00.Next;
end;
btnPrint.Enabled:=True;
end;