找遍了台灣的資料,對於POS收銀系統硬體相關的程式非常的少。
只好自己Try & Error一番,順便也將結果告訴一下大家囉~希望大家不要再為了它而浪費了不少時間。
很簡單的示範如何利用Delphi XE3及SPComm 元件來印出收據、切紙並打開錢櫃。
[sourcecode language=”delphi”]
procedure TForm2.Button1Click(Sender: TObject);
var
s:Ansistring;
begin
Comm1.CommName := ComboBox1.Text;
Try
Comm1.StartComm;
//初始化
s:= chr(27) + chr(64);
Comm1.WriteCommData(PAnsiChar(s),Length(s));
// 印出目前日期、時間並換行
s:= DateToStr(now)+’ ‘+TimeToStr(now)+ chr(10)+ chr(13) ;
Comm1.WriteCommData(PAnsiChar(s),Length(s));
s:= chr(27) + chr(100) + chr(2);
Comm1.WriteCommData(PAnsiChar(s),Length(s));
s:= chr(29) + chr(33) + chr(17) ;
Comm1.WriteCommData(PAnsiChar(s),Length(s));
s:= ‘Printer – Testing Success’+ chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s));
s:= chr(29) + chr(33) + chr(0) ;
Comm1.WriteCommData(PAnsiChar(s),Length(s));
s:= chr(27) + chr(100) + chr(5);
Comm1.WriteCommData(PAnsiChar(s),Length(s));
// 切紙
s := Chr(29) + Chr(86) + Chr(0) ;
Comm1.WriteCommData(PAnsiChar(s),Length(s));
//打開錢櫃
s := chr(27) + chr(112) + chr(0) + chr(50) + chr(200) ;
Comm1.WriteCommData(PAnsiChar(s),Length(s));
Except
on E: Exception do Begin
ShowMessage(‘Open ComPort Error!’+#10#13+’Error MSG:’+E.Message);
End;
End;
end;
[/sourcecode]
林大哥,
你好,本人近來有利用VB開發POS系統,但近期在出單機的部份遇到問題,想請問一下,
出單機的收據格式是否用程式來設定大小,有在國外網站看到有人發表若用如CrystalReport來設計的話
出單機的列印速度不會很快……請問這方面的觀念是正確的嗎?….
對於出單機的收據…是否能幫小弟我提供一個好的方向…..不然目前真的沒有概念來設計這方面…謝謝
若你不吝回覆小弟我的問題,是否可以直接回信到小弟的E-mail,謝謝。
E-mail: wickwolf@gmail.com