BAB XVIII. MENGINPUT DATA TABEL HUBUNGAN DUA ATAU LEBIH TABEL
Unit prak18;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Grids, DBGrids, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Label2 : Tlabel;
Label3 : Tlabel;
Label4 : Tlabel;
Label5 : Tlabel;
EDNONOTA : TEdit;
EDKDSUP : TEdit;
EDTGLNOTA : TEdit;
EDNMSUP : TEdit;
DBGSTRANSB : TDGrid;
GroupBox1: TGroupBox;
GroupBox2 : TGroupBox;
Label6 : TLabel;
EDTOTAL : TEdit;
DBGSUPPLIER : TDBGrid;
DBGBARANG : TDBGrid;
CSimpan : TButton;
CBatal : TButton;
CSelesai : TButton;
ENMSUP : TEdit;
Label7 : TLabel;
Label8 : Tlabel;
ENMBRG : TEdit;
TBBARANG : TTable;
DSBARANG : TDataSource;
TBSUPPLIER : TTable;
DSSUPPLIER : TDataSource;
TBNOTA : TTable;
DSNOTA : TDataSource;
TBTRANSB : TTable;
DSTRANSB : TDataSource;
Label1 : TLabel;
Label9 : TLabel;
Image1 : TImage;
procedure FormCreate (sender : Tobject);
procedure EDNONOTAKeyPress (sender : TObject ; var
Key: Char);
procedure EDTGLNOTAKeyPress (Sender : TObject; var key : char);
procedure EDKDSUPKeyPress(sender:Tobject; var key : char);
procedure EDTGLNOTAExit(sender:Tobject);
procedure DBGSTRANSBKeyPress(sender:Tobject; var key : Char);
procedure CSIMPANClick(sender:Tobject);
procedure CBATALClick(sender : Tobejct);
procedure CSELESAIClick (sender : Tobject);
procedure EDKDSUPChange(sender:Tobject);
procedure ENMBRGKeyPress(sender : Tobject; var Key : char);
procedure ENMBRGChange (sender : Tobject);
procedure ENMSUPKeyPress (sender: Tobject ; var key : Char);
procedure ENMSUPChange (sender:Tobject);
procedure EDNMSUPKeyPress(sender : Tobject ; var key : char);
private
{ Private declarations }
public
{public declarations }
end;
var
Form1 : TForm1;
MTOTAL : SINGLE;
implementation
{$R*.DFM}
procedure TForm1.FormCreate(sender : Tobject);
var I : Integer;
begin
EDTOTAL.ENABLED := TRUE;
EDNMSUP.ENABLED := TRUE;
MTOTAL := 0;
EDTOTAL.text := Format ('%20.0m',[MTOTAL]);
EDNONOTA.text:=' ';
EDKDSUP.text :=' ';
EDNMSUP.text:=' ';
EDTGLNOTA.text:=DATATOSTR (NOW);
TBSTRANSB.First;
while not Tbstransb.eof do
begin
Tbstransb.delete;
end;
for I := 1 to 20 do
begin
Tbstransb.append;
Tbstransb['KDBRG']:=' ';
end;
TBstransb.first;
beep;
end;
procedure TForm1.DBGSTRANSBKeyPress (sender : Tobeject; Var Key : Char);
var
ADA:BOOLEAN;
JMLLAMA : SINGLE;
JMLBARU : SINGLE;
begin
IF NOT (key=CHR(13)) then exit;
if DBGSTRANSB.selectedindex>1 then
begin
end;
if DBGSTRANSB.selectedindex=0 then
begin
TBBARANG.indexname:='BARANG';
try
ADA:TBBARANG.FINDKEY ([Uppercase(Tbstransb['NMBRG'])]);
expect
DBGSTRANSb.selectedindex:=1;
exit
end;
if ada then
begin
tbstransb.edit;
tbstransb['kdbrg']:=tbbarang['kdbrg'];
tbstransb['nmbrg']:=tbbarang['nmbrg'];
beep;
dbgstransb.selectedindex:=2;
end
else
dbgstransb.selectedindex:=1;
exit;
end;
if dbgstransb.selectedindex=1 then
begin
tbbarang.indexname:=' ';
try
ADA:=Tbarang.findkey([uppercase(tbstransb['KDBRG'])]);
expect
dbgstransb.selectedindex:=1;
exit
if ADA then
begin
tbstransb.edit;
tbstransb['KDBRG']:=TBbarang['KDBRG'];
tbstransb['NMBRG']:=TBbarang['NMBRG'];
beep;
end
else
begin
dbgstransb.selectedindex:=1;
exit
end;
dbgstransb.selectedindex:=2;
exit
end;
if dbgstransb.selectedindex=2 then
begin
jmlama:=Tbstransb.fields[4].asfloat;
tbstransb['jumlah']:=tbstransb['hrgbeli']*tbstransb ['qtybeli'];
jmlbaru:=tbstransb.field[4].asfloat;
mtotal:=mtotal+(jmlbaru-jmllama);
edtotal.text:=format('%20.2m',[mtotal]);
dbgstransb.selectedindex=3 ;
exit
end;
if dbgstransb.selectindex= 3 then
begin
jmllama:=tbstransb.field[4].asfloat;
tbtransb['jumlah']:=tbstransb['hrgbeli']*tbstransb['qtybeli'];
tbstransb.next;
end;
end;
procedure TForm1.EDNONOTAKeyPress(sender : Tobject; var key : Char);
begin
if key=chr(13) then
EDTGLNOTA.setfocus;
end;
procedure TForm1.EDTGLNOTAKeyPress(sender:Tobject; var key : Char);
begin
if key=chr(13) then
EDKDSUP.setfocus;
end;
procedure TForm1.EDKSDUPKeyPress(sender : Tobject; var key : char);
begin
if key=chr(13) then
dbgstransb.setfocus;
end;
procedure TForm1.EDTGLNotaExit(sender:Tobject);
var
Cektgl:=strtodate(edtglnota.text);
expect
showmessage('format tanggal : DD-MM-YYYY)');
edtglnota.setfocus;
end;
end;
procedure TForm1.CSIMPANClick(sender : Tobject);
var ada : Boolean;
begin
tbstransb.first;
tbbarang.indexname:=' ';
while not tbstranb.eof do
begin
ada:=tbbarag.findkey ([tbstransb['kdbrg']]);
if ada then
try
begin
tbstrans.append;
tbstransb['nonota']:=ednonota.text;
tbstransb['kdbrg']:=tbstransb['kdbrg'];
tbstransb['qtybeli']:=tbstransb{'qtybeli'];
tbstransb['hrgbeli']:=tbstransb['hrgbeli'];
end;
except
showmessage(ednonota.text+','+edtglnota.text+','+tbstransb['kdbrg']+chr(13)+'sudah ada dalam file');
end;
tbstransb.next;
end;
tbstransb.append;
tbstransb['nonota']:=ednonot.text;;
end;
procedure TForm1.CbatalClick(sender:tobject);
begin
formcreate(sender);
end;
procedure TFrom1.CselesaiClick(sender:Tobject);
begin
application.terminate;
end;
end.
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Grids, DBGrids, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Label2 : Tlabel;
Label3 : Tlabel;
Label4 : Tlabel;
Label5 : Tlabel;
EDNONOTA : TEdit;
EDKDSUP : TEdit;
EDTGLNOTA : TEdit;
EDNMSUP : TEdit;
DBGSTRANSB : TDGrid;
GroupBox1: TGroupBox;
GroupBox2 : TGroupBox;
Label6 : TLabel;
EDTOTAL : TEdit;
DBGSUPPLIER : TDBGrid;
DBGBARANG : TDBGrid;
CSimpan : TButton;
CBatal : TButton;
CSelesai : TButton;
ENMSUP : TEdit;
Label7 : TLabel;
Label8 : Tlabel;
ENMBRG : TEdit;
TBBARANG : TTable;
DSBARANG : TDataSource;
TBSUPPLIER : TTable;
DSSUPPLIER : TDataSource;
TBNOTA : TTable;
DSNOTA : TDataSource;
TBTRANSB : TTable;
DSTRANSB : TDataSource;
Label1 : TLabel;
Label9 : TLabel;
Image1 : TImage;
procedure FormCreate (sender : Tobject);
procedure EDNONOTAKeyPress (sender : TObject ; var
Key: Char);
procedure EDTGLNOTAKeyPress (Sender : TObject; var key : char);
procedure EDKDSUPKeyPress(sender:Tobject; var key : char);
procedure EDTGLNOTAExit(sender:Tobject);
procedure DBGSTRANSBKeyPress(sender:Tobject; var key : Char);
procedure CSIMPANClick(sender:Tobject);
procedure CBATALClick(sender : Tobejct);
procedure CSELESAIClick (sender : Tobject);
procedure EDKDSUPChange(sender:Tobject);
procedure ENMBRGKeyPress(sender : Tobject; var Key : char);
procedure ENMBRGChange (sender : Tobject);
procedure ENMSUPKeyPress (sender: Tobject ; var key : Char);
procedure ENMSUPChange (sender:Tobject);
procedure EDNMSUPKeyPress(sender : Tobject ; var key : char);
private
{ Private declarations }
public
{public declarations }
end;
var
Form1 : TForm1;
MTOTAL : SINGLE;
implementation
{$R*.DFM}
procedure TForm1.FormCreate(sender : Tobject);
var I : Integer;
begin
EDTOTAL.ENABLED := TRUE;
EDNMSUP.ENABLED := TRUE;
MTOTAL := 0;
EDTOTAL.text := Format ('%20.0m',[MTOTAL]);
EDNONOTA.text:=' ';
EDKDSUP.text :=' ';
EDNMSUP.text:=' ';
EDTGLNOTA.text:=DATATOSTR (NOW);
TBSTRANSB.First;
while not Tbstransb.eof do
begin
Tbstransb.delete;
end;
for I := 1 to 20 do
begin
Tbstransb.append;
Tbstransb['KDBRG']:=' ';
end;
TBstransb.first;
beep;
end;
procedure TForm1.DBGSTRANSBKeyPress (sender : Tobeject; Var Key : Char);
var
ADA:BOOLEAN;
JMLLAMA : SINGLE;
JMLBARU : SINGLE;
begin
IF NOT (key=CHR(13)) then exit;
if DBGSTRANSB.selectedindex>1 then
begin
end;
if DBGSTRANSB.selectedindex=0 then
begin
TBBARANG.indexname:='BARANG';
try
ADA:TBBARANG.FINDKEY ([Uppercase(Tbstransb['NMBRG'])]);
expect
DBGSTRANSb.selectedindex:=1;
exit
end;
if ada then
begin
tbstransb.edit;
tbstransb['kdbrg']:=tbbarang['kdbrg'];
tbstransb['nmbrg']:=tbbarang['nmbrg'];
beep;
dbgstransb.selectedindex:=2;
end
else
dbgstransb.selectedindex:=1;
exit;
end;
if dbgstransb.selectedindex=1 then
begin
tbbarang.indexname:=' ';
try
ADA:=Tbarang.findkey([uppercase(tbstransb['KDBRG'])]);
expect
dbgstransb.selectedindex:=1;
exit
if ADA then
begin
tbstransb.edit;
tbstransb['KDBRG']:=TBbarang['KDBRG'];
tbstransb['NMBRG']:=TBbarang['NMBRG'];
beep;
end
else
begin
dbgstransb.selectedindex:=1;
exit
end;
dbgstransb.selectedindex:=2;
exit
end;
if dbgstransb.selectedindex=2 then
begin
jmlama:=Tbstransb.fields[4].asfloat;
tbstransb['jumlah']:=tbstransb['hrgbeli']*tbstransb ['qtybeli'];
jmlbaru:=tbstransb.field[4].asfloat;
mtotal:=mtotal+(jmlbaru-jmllama);
edtotal.text:=format('%20.2m',[mtotal]);
dbgstransb.selectedindex=3 ;
exit
end;
if dbgstransb.selectindex= 3 then
begin
jmllama:=tbstransb.field[4].asfloat;
tbtransb['jumlah']:=tbstransb['hrgbeli']*tbstransb['qtybeli'];
jmlbaru:=tbstransb.field[4].asfloat;
mtotal:=mtotal+(jmlbaru-jmllama);
edtotal.text:=format('%20.2m',[mtotal]);
dbgstransb.selectedindex:=0;tbstransb.next;
end;
end;
procedure TForm1.EDNONOTAKeyPress(sender : Tobject; var key : Char);
begin
if key=chr(13) then
EDTGLNOTA.setfocus;
end;
procedure TForm1.EDTGLNOTAKeyPress(sender:Tobject; var key : Char);
begin
if key=chr(13) then
EDKDSUP.setfocus;
end;
procedure TForm1.EDKSDUPKeyPress(sender : Tobject; var key : char);
begin
if key=chr(13) then
dbgstransb.setfocus;
end;
procedure TForm1.EDTGLNotaExit(sender:Tobject);
var
Cektgl:=strtodate(edtglnota.text);
expect
showmessage('format tanggal : DD-MM-YYYY)');
edtglnota.setfocus;
end;
end;
procedure TForm1.CSIMPANClick(sender : Tobject);
var ada : Boolean;
begin
tbstransb.first;
tbbarang.indexname:=' ';
while not tbstranb.eof do
begin
ada:=tbbarag.findkey ([tbstransb['kdbrg']]);
if ada then
try
begin
tbstrans.append;
tbstransb['nonota']:=ednonota.text;
tbstransb['kdbrg']:=tbstransb['kdbrg'];
tbstransb['qtybeli']:=tbstransb{'qtybeli'];
tbstransb['hrgbeli']:=tbstransb['hrgbeli'];
end;
except
showmessage(ednonota.text+','+edtglnota.text+','+tbstransb['kdbrg']+chr(13)+'sudah ada dalam file');
end;
tbstransb.next;
end;
tbstransb.append;
tbstransb['nonota']:=ednonot.text;;
end;
procedure TForm1.CbatalClick(sender:tobject);
begin
formcreate(sender);
end;
procedure TFrom1.CselesaiClick(sender:Tobject);
begin
application.terminate;
end;
end.
Tidak ada komentar:
Posting Komentar