Cetak Struk

Procedure Cetak(Const line: string );
Var
BytesWritten: DWORD;
hPrinter, DevMod: THandle;
DocInfo: TDocInfo1; //tipe data record dalam unit WinSpool
Device, Drv, Port:Array[0..255] of char;
Begin
Printer.PrinterIndex:=-1;
Printer.GetPrinter(Device, Drv, Port, DevMod);
If not WinSpool.OpenPrinter(@Device, hPrinter, nil) Then //tidak pake @ juga bisa
raise exception.create(‘Printer tidak ada…’);
Try
DocInfo.pDocName := ‘Struk Penjualan’;
DocInfo.pOutputFile := Nil;
DocInfo.pDatatype := ‘RAW’;
If StartDocPrinter(hPrinter, 1, @DocInfo) = 0 Then
Abort;
Try
If not StartPagePrinter(hPrinter) Then
Abort;
try
//pertimbangkan untuk mencetak dengan Printer.Canvas agar font bisa diganti
If not WritePrinter(hPrinter, @line[1], Length(line), BytesWritten)
Then
Abort;
Finally
EndPagePrinter(hPrinter);
End;
Finally
EndDocPrinter(hPrinter);
End;
Finally
WinSpool.ClosePrinter(hPrinter);
End;
End;

{Penggunaan}
Procedure CetakSlip;
Const Enter = #13+#10;
begin
with DM do begin
Cetak(Modul.tCompanyNama.AsString+Enter);
Cetak(Modul.tCompanyBisnis.AsString+Enter+Enter);
tJualBeliDetil.First;
While not tJualBeliDetil.Eof do begin
Cetak(tJualBeliDetilluNama.AsString+Enter);
Cetak(tJualBeliDetilQty.AsString+’ x ‘+
tJualBeliDetilHarga.AsString+’ = ‘+
tJualBeliDetilclJumlah.AsString+Enter);
tJualBeliDetil.Next;
end;
Cetak(‘————————–‘);
Cetak(‘Jumlah       ‘+tJualBeliJumlah.AsString+Enter+Enter);
Cetak(‘Terima kasih atas kunjungan Anda’);
end;
end;

{Rata Kanan}
function FormatString(const VField, VItem : String; const VLength: Integer; const VSpace: Char): String;
Var
__SStart : String;
__SStop : String;
__Length : LongInt;
Begin
__SStart:=VField;
__SStop:=VItem;
__Length:=Length(__SStart)+Length(__SStop);
Result:=”;
While __Length+Length(Result)<VLength Do
Result:=Result+vspace;
Result:=__SStart+Result+__SStop;
end;

Tagged: , ,

5 thoughts on “Cetak Struk

  1. dedi aji 20 Maret 2008 pukul 7:24 am

    terima kasih banyak…walau baru dibaca pada tanggal 20 maret 2008 and belum dicoba…tapi jika liat listingnya.. OK juga tuch..once more time thank you very much ..it’s useful for me as beginner in delphi for learning…

  2. eksa 20 Maret 2008 pukul 10:46 am

    thank ya buat dedi….

  3. all listing 3 Juli 2008 pukul 6:56 pm

    semoga turut mencerdaskan kita kita yang baru belajar,

  4. eksa 23 Agustus 2008 pukul 8:54 pm

    amin ……

  5. deni 2 Agustus 2010 pukul 11:07 am

    sudah saya coba, dan terdapat error gan.
    TDocInfo1 -> Undeclared
    itu gimana gan… ???
    Mohon maaf, saya newbie banged dengan Delphi..
    Terima Kasih…

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: