Вы находитесь на странице: 1из 6

procedure TfPenjualan.

Edit5Change(Sender: TObject);

var

stok : integer;

jmll : String;

begin

with DM.QCari do begin

Close;

SQL.Clear;

SQL.Text:='select jml_stok from data_barang where barcode="'+Edit3.Text+'"';

ExecSQL;

Open;

end;

if DM.QCari.RecordCount >=1 then

begin

if Edit5.Text='' then Edit5.Text:='0';

stok := StrToInt(DM.QCari['jml_stok'])-StrToInt(Edit5.Text);

jmll := DM.QCari['jml_stok'];

if stok < 0 then

begin

MessageDlg('Maaf, Stok Barang tidak Mencukupi!'+sLineBreak+'Jumlah Barang Saat Ini


'+jmll,mtError,[mbok],0);

Edit5.Text:='0';

Edit5.SetFocus;

end;

end;

end;
unit U_Cetak;

interface

uses

SysUtils, Printers, WinSpool;

procedure cetakFile(Const sFilename: string);

function RataKanan(const VField, VItem: String; const VLength: Integer;

const VSpace: Char): string;

implementation

function RataKanan(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;

procedure cetakFile(Const sFilename: string);

const

cBUFSIZE = 16385;
type

TDoc_Info_1 = record

pDocname: PChar;

pOutputFile: PChar;

pDataType: PChar;

end;

var

Count: Cardinal;

BytesWritten: Cardinal;

hPrinter: THandle;

hDeviceMode: THandle;

Device: Array [0 .. 255] Of Char;

Driver: Array [0 .. 255] Of Char;

Port: Array [0 .. 255] Of Char;

DocInfo: TDoc_Info_1;

f: File;

Buffer: Pointer;

begin

Printer.PrinterIndex := -1;

Printer.GetPrinter(Device, Driver, Port, hDeviceMode);

If Not WinSpool.OpenPrinter(@Device, hPrinter, Nil) Then

Exit;

DocInfo.pDocname := 'Report';

DocInfo.pOutputFile := Nil;

DocInfo.pDataType := 'RAW';

If StartDocPrinter(hPrinter, 1, @DocInfo) = 0 Then

begin

WinSpool.ClosePrinter(hPrinter);

Exit;

end;
If Not StartPagePrinter(hPrinter) Then

begin

EndDocPrinter(hPrinter);

WinSpool.ClosePrinter(hPrinter);

Exit;

end;

System.Assign(f, sFilename);

try

Reset(f, 1);

GetMem(Buffer, cBUFSIZE);

While Not Eof(f) Do

begin

Blockread(f, Buffer^, cBUFSIZE, Count);

If Count > 0 Then

begin

If Not WritePrinter(hPrinter, Buffer, Count, BytesWritten) Then

begin

EndPagePrinter(hPrinter);

EndDocPrinter(hPrinter);

WinSpool.ClosePrinter(hPrinter);

FreeMem(Buffer, cBUFSIZE);

Exit;

end;

end;

end;

FreeMem(Buffer, cBUFSIZE);

EndDocPrinter(hPrinter);

WinSpool.ClosePrinter(hPrinter);

finally
System.CloseFile(f);

end;

end;

end.

uses

...., U_Cetak;

procedure TBayar.BtnCetak(Sender: TObject);

var

Enter = #13 + #10;

txtFile: TextFile;

nmfile : string;

begin

// Buat File dengan Nama Struk.txt

nmfile := GetCurrentDir + '\struk.txt';

AssignFile(txtFile, nmfile);

Rewrite(txtFile);

WriteLn(txtFile, '========================================');

WriteLn(txtFile, ' '+'Judul Nota'+' ');

WriteLn(txtFile, ' '+'Alamat Toko'+' ');

WriteLn(txtFile, ' '+'No Telpon'+' ');

WriteLn(txtFile, '========================================');

WriteLn(txtFile, 'No. Nota : ' + 'No Faktur' );

WriteLn(txtFile, 'Tanggal : ' + FormatDateTime('dd-mm-yyyy hh:mm:ss', now));

WriteLn(txtFile, 'Kasir : ' + 'Nama Kasir');


WriteLn(txtFile, '========================================');

WriteLn(txtFile, 'Nama Barang');

WriteLn(txtFile, RataKanan(' QTY Harga Disc ', 'Sub Total', 35, ' '));

WriteLn(txtFile, '========================================');

WriteLn(txtFile, 'Nama Barang');

WriteLn(txtFile, RataKanan

(' ' + 'Jumlah Barang' + ' ' + 'X' +' '+'Harga Barang'+' '+'Diskon', 'Sub Total', 35, ' '));

WriteLn(txtFile, '========================================');

WriteLn(txtFile, RataKanan('Total : ', 'Total Bayar', 35,

' '));

WriteLn(txtFile, RataKanan('Bayar : ', 'Uang Bayar', 35,

' '));

WriteLn(txtFile, RataKanan('Kembali : ', 'Uang Kembali', 35,

' '));

WriteLn(txtFile, '========================================');

WriteLn(txtFile, ' Jumlah Item : Jumlah Item');

WriteLn(txtFile, '========================================');

WriteLn(txtFile, ' Ini Footer ');

WriteLn(txtFile, '========================================');

WriteLn(txtFile, Enter + Enter + Enter + Enter + Enter + Enter + Enter + Enter + Enter + Enter );

CloseFile(txtFile);

// Cetak File Struk.txt

cetakFile('struk.txt');

end;

Вам также может понравиться