Pemrograman Delphi . Pembuatan Laporan Transaksi PerTanggal dan PerPeriode dengan Menggunakan Rave (Tanggal + datetimePicker)

Langkah-langkahnya adalah :

1. Buatlah Form serperti di atas

2.Koneksikan ke dalam database dan isi adoquery

3. Membuat laporan dengan menggunakan Rave

Untuk nomor 1, 2 dan 3 diatas silahkan baca kembali modul berikut : <a href=”https://ahmadrizal.wordpress.com/2011/01/25/pemrograman-delphi-9-pembuatan-laporan-trasaksi-pembelian-barang-dengan-menggunakan-rave-masterdetail/”&gt; Pembuatan Report dengan Rave </a>

4. Kembali kedalam Form Laporan di Delphi lalu Double klik pada RadioGroup untuk jenis report dan ketikkan listing berikut :


procedure TForm9.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex = 0 then
Jenis :='PT'
else
Jenis :='PP';
end;

5. Kembali ke Form, double Klik Tombol Cetak dan ketikkan koding berikut :


procedure TForm9.CetakClick(Sender: TObject);
begin
if jenis='PT' then
begin
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from penjualan, pelanggan where penjualan.id_pembeli = pelanggan.id_pembeli and tgl_faktur = #' + formatdatetime('mm/dd/yyyy',datetimepicker1.date) + '#');
adoquery1.Open;
if not adoquery1.eof then
begin
adoquery1.Active :=true;
RvProject1.Execute;
rvproject1.ExecuteReport('Transaksi.rav');
end
else
Application.Messagebox('yee datanya kagak ada...','Cek Input',mb_iconstop);
end;

if jenis='PP' then
begin
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from penjualan, pelanggan where penjualan.id_pembeli = pelanggan.id_pembeli and tgl_faktur >= #' + formatdatetime('mm/dd/yyyy',datetimepicker1.date) + '# and tgl_faktur <= #' + formatdatetime('mm/dd/yyyy',datetimepicker2.date) + '#');
adoquery1.Open;
if not adoquery1.eof then
begin
adoquery1.Active :=true;
RvProject1.Execute;
rvproject1.ExecuteReport('Transaksi.rav');
end
else
Application.Messagebox('yee datanya kagak ada...','Cek Input',mb_iconstop);
end;
if jenis='' then
Application.Messagebox('maaf Pilih Dulu Jenis Laporannya...','Cek Input',mb_iconstop);
end;

Selamat Mencoba…. moga sukses

Related Post :
1. Delphi Programming 1. Transaction Processing Application Programs Sales of Goods
2. Delphi Programming 2. Product Sales Transaction Processing Application (Form Product)
3. Delphi Programming 3. Product Sales Transaction Processing Application (Form Costumer)
4. Delphi Programming 4.Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi)
5. Delphi Programming 5. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Distributor)
6. Delphi Programming 6. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi Pembelian Barang)
7. Delphi Programming 7. Pembuatan Laporan Daftar Barang dengan menggunakan Rave
8. Delphi Programming 8. Pembuatan Laporan Daftar Pelanggan dengan menggunakan Rave
9. Delphi Programming 9. Pembuatan Laporan Transaksi Pembelian Barang dengan menggunakan Rave (Master/Detail)
10. Delphi Programming 10. Pembuatan Laporan Transaksi PerTanggal dan PerPeriode dengan Menggunakan Rave (Tanggal + datetimePicker)

Advertisements

Pemrograman Delphi 9. Pembuatan Laporan Transaksi Pembelian Barang dengan menggunakan Rave (Master/Detail)

  • Langkah-langkah pembuatan laporan dengan menggunakan Rave adalah :
    1. Menambahkan form baru pada projek yang telah dibuat sebelumnya.
    2. Tambahkan komponen :
    1 buah Ado connection, 2 buah ADoQuery dan Dataset
    dan tambahkan juga 2 buah button, Button1 untuk cetak dan Button2 untuk CancelUntuk membuat laporan kita menggunakan dua komponen pallete RAVE yaitu : 1 buah RVProject dan 2 buah RVDataSetConnectionD
    3. Mengkoneksikan Database dengan Adoconnection : 

    • Klik ADOConnencti pada Form, klik ConnectionString (…), klik Build, Klik Microsoft Office 12.0 Acces Database Engine OLEDB Provider (untuk office 2007) tetapi kalau menggunakan office XP dapat dipilih Microsoft jet OLEDB 4.0, test connection
    • Dan klik next, pada data source ketikkan : D:\Transaksi\transaksi.accdb, dan yang terakhir klik test connection. Apabila test connection tampil keterangan tes connection succeeded, maka koneksinya sudah benar, tutup semua windows koneksi dengan cara klik OK. kembali ke frmCetakanggota.

    4. Mengaktifkan Adoquery 1 untuk tabel Transaksi
    Klik Adoquery1, klik SQL pada properties, lalu ketikkan :

    select * from penjualan, pelanggan where penjualan.id_pembeli = pelanggan.id_pembeli

    perintah ini dijadikan sebagai master yang akan digunakan untuk menampilkan data transaksi dan beralasi dengan tabel pelanggan

    Dan Klik Active pada properties ganti false menjadi true.

    5. Mengaktifkan Adoquery 2 untuk tabel Djual

    select * , harga * jumlah as jumlahharga from djual, barang where djual.kode_barang = barang.kode_barang

    perintah ini dijadikan sebagai Detail yang akan digunakan untuk menampilkan data Detail dari transaksi dan berelasi dengan tabel barang disertai dengan proses untuk menghitung jumlahharga yang didapat diari perkalian harga * jumlah

    6.Mengkoneksikan RVDataSetConnection 1 ke Adoquery 1, sebaiknya nama RVDatasetConnection 1 diganti dengan RVTransaksi pada properties dengan dataset, dengan cara klik RVDataSetConnection/RVtransaksi, pada properties klik Dataset, lalu pilih AdoQuery1.

    7. Mengkoneksikan RVDataSetConnection 2 ke Adoquery 2, sebaiknya nama RVDatasetConnection 2 juga diganti dengan RVDetail pada properties, dengan cara klik RVDataSetConnection/RVDetail, pada properties klik Dataset, lalu pilih AdoQuery2.

    8. Menjalankan Rave
    langkah-langkahnya adalah :

    DataView untuk Master

    • Double klik pada Rave Project atau Klik menu Tools pada delphi, klik RAVE designer
    • Klik File, Klik New Data Object
    • Klik Direct Data view
    • Klik RVTransaksi (DT), lalu klik Finish

    Data View untuk Detail

    • Klik File, Klik New Data Object
    • Klik Direct Data view
    • Klik RVTransaksi (DT), lalu klik Finish

    Dengan cara tersebut maka disudut kanan atas akan terbuat 2 buah Dataview yaitu Dataview 1 (untuk master) dan DataView 2 (untuk Detail)

    9. Desain Report Master/Detail secara Manual
    Klik Report pada Tab report setelah itu klik Region Component, gerak kursur kearah lembar kerja dan drag sehing lembar kerja tertutup semua dengan Region Component :

    Klik Band Component pada tab Report lalu letakkan pada region, Klik Tab Standar lalu klik Text component, pada properties sebelah kiri, ganti text menjadi “Form Laporan Transaksi Pembelian” ini digunakan untuk judul dari laporan yang dibuat.

    Klik Tab Report dan klik Data Band Component gerakkan kearah region lalu klik, maka akan terbuat Data Band 1, ini akan digunakan sebagai master table header, selanjutnya atur pada properties :
    untuk data band pertama rubah

    • Klik Bandstyle lalu klik master (body Header), lalu OK
    • Klik DataView pada properties isi dengan DataView1 (Master)
    • Klik Detail Key isi dengan NO_faktur
    • Klik start New Page isi dengan True

    Jika sudah selesai lanjutkan dengan mengisi Text Component yang ada pada tab Standar, lalu isikan ke dalam Data View satu sebanyak empat buah text masing-masing untuk : no transaksi, tanggal transaksi, id pelanggan dan nama pelanggan.
    Klik Tab Report, lalu klik Data Text Component dan letak pada Dataview 1 atau tepatnya pada Data Band 1, sebanyak empat buah masing-masing ganti pada propertiesnya : Dataview diisi dengan Dataview 1, dan DataField disesuaikan dentan texnya lanjutkan dengan Data text yang lain sehingga membentuk gambar berikut

    uji Rave dengan cara klik File lalu Execute dan klik OK

    Klik Tab Report kembali, lalu klik Data Band Component lalu klik pada region ini digunakan untuk menampilkan field detail, setelah itu atur pada properties dengan cara :

    • Klik BandStyle, lalu klik detail, lalu OK
    • Klik dataviewnya isi dengan dataview2
    • Klik Detail key lalu isi dengan No_faktur
    • Klik ControllerBand isi dengan DataBand1
    • klik MasterDataView isi dengan Dataview1
    • Klik MasterKey isi dengan NO_Faktur

    langkahselanjutnya adalah klik Tab Report lalu klik DataText Component, dan letakkan pada Databand 2, sebanyak 5 buah untuk kode barang, nama barang, harga barang, jumlah, dan total, atur masing-masing data text component pada properties untuk Dataview isi dengan dataview 2 dan Data Fieldnya sesuai dengan data yang akan ditampilkan.

    Tambahkan satu buah Databand dengan cara klik Tab Report dan klik Data Band Componen ini digunakan untuk menjumlah total setelah itu atur pada propertiesnya :

    • Klik BandStyle, lalu klik row Footer(), lalu OK
    • Klik dataviewnya isi dengan dataview2
    • Klik Detail key lalu isi dengan No_faktur
    • Klik ControllerBand isi dengan DataBand1
    • klik MasterDataView isi dengan Dataview1
    • Klik MasterKey isi dengan NO_Faktur

    Klik Tab Report lalu klik Calc Text Component, letakkan pada Databand 3, lalu antur pada propertiesnya untuk Dataview isi dengan Dataview1, dan Data Field isi dengan jumlahharga dan untuk Controllernya isi dengan Dataview 2.

    Uji Program… dengan cara klik File Klik Execute lalu klik OK

    jika sudah selesai setting pada rave simpan file rave dengan cara klik File Klik Save as lalu tentukan Folder dimana project delphi dibuat beri nama Prjlaporantransaksi.rav.

    Kembali ke Delphi,
    Double klik Tombol Cetak lalu ketik listing program berikut :

    adoquery1.SQL.Clear;
    adoquery1.SQL.add('select * from penjualan, pelanggan where penjualan.id_pembeli = pelanggan.id_pembeli');
    adoquery1.Open;
    adoquery1.Active :=true;
    RvProject1.Execute;
    rvproject1.ExecuteReport('Prjlaporantransaksi.rav');
    

    eit jangan lupa klik RvProjectnya lalu klik pada properties dibagian Project File yang titik tiga, lalu buka file Prjlaporantransaksi.rav ….
    selesai… deh….
    selamat mencoba….
    Ahmad Rizal Abidin, M.Kom….

  • Related Post :
    1. Delphi Programming 1. Transaction Processing Application Programs Sales of Goods
    2. Delphi Programming 2. Product Sales Transaction Processing Application (Form Product)
    3. Delphi Programming 3. Product Sales Transaction Processing Application (Form Costumer)
    4. Delphi Programming 4.Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi)
    5. Delphi Programming 5. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Distributor)
    6. Delphi Programming 6. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi Pembelian Barang)
    7. Delphi Programming 7. Pembuatan Laporan Daftar Barang dengan menggunakan Rave
    8. Delphi Programming 8. Pembuatan Laporan Daftar Pelanggan dengan menggunakan Rave
    9. Delphi Programming 9. Pembuatan Laporan Transaksi Pembelian Barang dengan menggunakan Rave (Master/Detail)
    10. Delphi Programming 10. Pembuatan Laporan Transaksi PerTanggal dan PerPeriode dengan Menggunakan Rave (Tanggal + datetimePicker)

    Pemrograman Delphi 8. Pembuatan Laporan Daftar Pelanggan dengan menggunakan Rave


    Related Post :
    1. Delphi Programming 1. Transaction Processing Application Programs Sales of Goods
    2. Delphi Programming 2. Product Sales Transaction Processing Application (Form Product)
    3. Delphi Programming 3. Product Sales Transaction Processing Application (Form Costumer)
    4. Delphi Programming 4.Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi)
    5. Delphi Programming 5. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Distributor)
    6. Delphi Programming 6. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi Pembelian Barang)
    7. Delphi Programming 7. Pembuatan Laporan Daftar Barang dengan menggunakan Rave
    8. Delphi Programming 8. Pembuatan Laporan Daftar Pelanggan dengan menggunakan Rave
    9. Delphi Programming 9. Pembuatan Laporan Transaksi Pembelian Barang dengan menggunakan Rave (Master/Detail)
    10. Delphi Programming 10. Pembuatan Laporan Transaksi PerTanggal dan PerPeriode dengan Menggunakan Rave (Tanggal + datetimePicker)

    Pemrograman Delphi 7. Pembuatan Laporan Daftar Barang dengan menggunakan Rave


    Related Post :
    1. Delphi Programming 1. Transaction Processing Application Programs Sales of Goods
    2. Delphi Programming 2. Product Sales Transaction Processing Application (Form Product)
    3. Delphi Programming 3. Product Sales Transaction Processing Application (Form Costumer)
    4. Delphi Programming 4.Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi)
    5. Delphi Programming 5. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Distributor)
    6. Delphi Programming 6. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi Pembelian Barang)
    7. Delphi Programming 7. Pembuatan Laporan Daftar Barang dengan menggunakan Rave
    8. Delphi Programming 8. Pembuatan Laporan Daftar Pelanggan dengan menggunakan Rave
    9. Delphi Programming 9. Pembuatan Laporan Transaksi Pembelian Barang dengan menggunakan Rave (Master/Detail)
    10. Delphi Programming 10. Pembuatan Laporan Transaksi PerTanggal dan PerPeriode dengan Menggunakan Rave (Tanggal + datetimePicker)

    Pemrograman Delphi 6. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi Pembelian Barang)


     

     

     

     

     

     

     

     

     

     

     

    Kodingnya adalah :

    Double klik Tombol Update lalu ketikkan listing koding berikut :

    
    procedure TForm2.Button6Click(Sender: TObject);
    var jumlah : integer;
    stock:integer;
    begin
    adoquery5.SQL.Clear;
    adoquery5.SQL.Add('Select * from djual WHERE no_faktur = "'+ edit1.Text +'" and kode_barang ="'+ DBLookupComboBox2.KeyValue+'" ');
    adoquery5.Open;
    if not adoquery5.Eof then
    begin
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('select * from barang where kode_barang="'+DBLookupComboBox2.KeyValue+'"');
    adoquery1.open;
    jumlah := adoquery5.Fields[3].AsInteger + adoquery1.Fields[3].AsInteger;
    stock := jumlah - strtoint(edit2.Text);
    
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('update barang set stock="'+inttostr(stock)+'" where kode_barang="'+DBLookupComboBox2.KeyValue+'"');
    adoquery1.ExecSQL;
    
    adoquery5.SQL.Clear;
    adoquery5.SQL.Add('update penjualan set tgl_faktur="'+datetostr(DateTimePicker1.Date)+'", id_pembeli="'+ DBLookupComboBox1.KeyValue +'" where no_Faktur="'+edit1.Text+'"');
    adoquery5.ExecSQL;
    
    adoquery4.sql.Clear;
    adoquery4.SQL.add('update djual set jumlah="'+ edit2.Text +
    '", harga ="'+ edit3.Text +'" where no_Faktur="'+ edit1.Text +'" and kode_barang="'+ DBLookupComboBox2.KeyValue +'"');
    adoquery4.ExecSQL;
    
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('select * from barang');
    adoquery1.open;
    end
    else
    begin
    adoquery4.SQL.Clear;
    adoquery4.SQL.Add('insert into Djual(no_faktur,kode_barang,jumlah,harga)values("'+edit1.text+'","'+DBLookupComboBox2.KeyValue+'","'+ edit2.Text +'","'+edit3.Text+'")');
    adoquery4.ExecSQL;
    tampildb();
    end;
    tampildb();
    kosongbarang();
    end;
    

    2. Buatlah Procedure TAmpildb dan kosongbarang;

    <strong>a. Procedure Tampil Database</strong>

    
    procedure TForm2.tampildb();
    begin
    adoquery4.Close;
    adoquery4.SQL.Clear;
    adoquery4.SQL.Add('select no_Faktur,kode_barang,harga,jumlah, (harga*jumlah) as total from djual where no_Faktur = "'+ edit1.text +'"');
    adoquery4.Open;
    datasource4.DataSet := adoquery4;
    dbgrid1.DataSource := datasource4;
    
    adoquery5.Close;
    adoquery5.SQL.clear;
    adoquery5.SQL.add('select sum(harga*jumlah) from djual where no_Faktur = "'+ edit1.text +'"');
    adoquery5.Open;
    edit4.Text := adoquery5.Fields[0].AsString;
    end;
    
    

    a. Procedure Kosong

    procedure TForm2.kosongbarang();
    begin
    DBLookupComboBox2.KeyValue:='';
    dbedit3.Text:='';
    dbedit4.Text:='';
    edit2.Text:='';
    edit3.Text:='';
    End;
    
    

    3. Double Klik Pada Edit2 (Jumlah), lalu  rubah pada event di properties menjadi On KeyPress, selanjutnya ketik listing berikut :

    
    procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: Char);
    VAR SISA:INTEGER;
    begin
    IF KEY=#13 THEN
    BEGIN
     IF (ADOQUERY1.Fields[3].AsInteger < sTRTOINT(eDIT2.Text)) then
     BEGIN
     Application.MessageBox('DATA TIDAK CUKUP','cONTROL',MB_ICONSTOP);
     END;
    
     EDIT3.Text := INTTOSTR(STRTOINT(DBEDIT4.Text) * STRTOINT(EDIT2.TEXT));
     SISA:= ADOQUERY1.Fields[3].AsInteger - STRTOINT(EDIT2.Text);
    
     ADOQUERY6.Close;
     ADOQUERY6.SQL.CLEAR;
     ADOQUERY6.SQL.Add('UPDATE BARANG SET STOCK = "'+ inttostr(SISA) +'" WHERE KODE_BARANG = "'+ ADOQUERY1.Fields[0].ASSTRING +'"');
     ADOQUERY6.ExecSQL;
    END;
    
    

    4. Double klik Tombol Save, lalu ketikkan listing berikut :

    
    procedure TForm2.Button3Click(Sender: TObject);
    var i : integer;
    begin
    adoquery3.SQL.Clear;
    adoquery3.SQL.add('insert into Penjualan(no_faktur,id_pembeli,tgl_faktur)values("'+ edit1.Text +'","'+DBLookupCombobox1.Text+'","'+DateToStr(DateTimePicker1.Date)+'")');
    adoquery3.ExecSQL;
    
    for i := 1 to SG.RowCount-1 do
    begin
    adoquery4.SQL.Clear;
    adoquery4.SQL.Add('insert into Djual(no_faktur,kode_barang,jumlah,harga)values("'+edit1.text+'","'+ sg.Cells[1,i] +'","'+ edit2.Text +'","'+edit3.Text+'")');
    adoquery4.ExecSQL;
    end;
    end;
    

    Related Post :
    1. Delphi Programming 1. Transaction Processing Application Programs Sales of Goods
    2. Delphi Programming 2. Product Sales Transaction Processing Application (Form Product)
    3. Delphi Programming 3. Product Sales Transaction Processing Application (Form Costumer)
    4. Delphi Programming 4.Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi)
    5. Delphi Programming 5. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Distributor)
    6. Delphi Programming 6. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi Pembelian Barang)
    7. Delphi Programming 7. Pembuatan Laporan Daftar Barang dengan menggunakan Rave
    8. Delphi Programming 8. Pembuatan Laporan Daftar Pelanggan dengan menggunakan Rave
    9. Delphi Programming 9. Pembuatan Laporan Transaksi Pembelian Barang dengan menggunakan Rave (Master/Detail)
    10. Delphi Programming 10. Pembuatan Laporan Transaksi PerTanggal dan PerPeriode dengan Menggunakan Rave (Tanggal + datetimePicker)

    Pemrograman Delphi 5. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Distributor)


    :
    Kodingnya :

    Related Post :
    1. Delphi Programming 1. Transaction Processing Application Programs Sales of Goods
    2. Delphi Programming 2. Product Sales Transaction Processing Application (Form Product)
    3. Delphi Programming 3. Product Sales Transaction Processing Application (Form Costumer)
    4. Delphi Programming 4.Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi)
    5. Delphi Programming 5. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Distributor)
    6. Delphi Programming 6. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi Pembelian Barang)
    7. Delphi Programming 7. Pembuatan Laporan Daftar Barang dengan menggunakan Rave
    8. Delphi Programming 8. Pembuatan Laporan Daftar Pelanggan dengan menggunakan Rave
    9. Delphi Programming 9. Pembuatan Laporan Transaksi Pembelian Barang dengan menggunakan Rave (Master/Detail)
    10. Delphi Programming 10. Pembuatan Laporan Transaksi PerTanggal dan PerPeriode dengan Menggunakan Rave (Tanggal + datetimePicker)

    Pemrograman Delphi 4. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi)


    Form Transaksi :

    Koding Programnya adalah :
    1. Untuk Mengkoneksikan antara program dengan Database bisa dibaca terlebih dahulu Modul 8

    2. Membuat koding pada edit1, sehingga apabila diinputkan no transaksi sistem akan mendeteksi data apakah ditemukan atau tidak, jika ditemukan maka seluruh data yang berhubungan dengan nomor transaksi tersebut akan ditampilkan adapun caranya adalah double klik Edit1, lalu ganti event dari change menjadi KeyPress pada properties dan ketikkan kodingnya sebagai berikut :

    
    procedure TForm2.Edit1KeyPresbs(Sender: TObject; var Key: Char);
    begin
    if key=#13 then
    begin
    adoquery3.Close;
    adoquery3.SQL.Clear;
    adoquery3.SQL.Add('select * from penjualan where no_faktur = "'+ edit1.text +'"');
    adoquery3.Open;
    if not adoquery3.Eof then
    begin
    Sg.Visible:=false;
    dbgrid1.Visible:=true;
    DateTimePicker1.Date := adoquery3.fields[2].AsDateTime;
    datasource3.dataset := adoquery3;
    DBLookupComboBox1.DataSource:=datasource3;
    DBLookupComboBox1.DataField:='id_pembeli';
    
    adoquery2.Close;
    adoquery2.SQL.Clear;
    adoquery2.SQL.add('select * from pelanggan where id_pembeli="'+ adoquery3.Fields[1].AsString +'"');
    adoquery2.Open;
    if not adoquery2.Eof then
    begin
    datasource2.DataSet := adoquery2;
    dbedit1.DataSource:=datasource2;
    dbedit1.DataField:='NAMA';
    Dbedit2.datasource:=datasource2;
    dbedit2.DataField:='Alamat';
    end;
    
    adoquery4.Close;
    adoquery4.SQL.Clear;
    adoquery4.SQL.Add('select no_Faktur,kode_barang,harga,jumlah, (harga*jumlah) as total from djual where no_Faktur = "'+ edit1.text +'"');
    adoquery4.Open;
    datasource4.DataSet := adoquery4;
    dbgrid1.DataSource := datasource4;
    
    adoquery5.Close;
    adoquery5.SQL.clear;
    adoquery5.SQL.add('select sum(harga*jumlah) from djual where no_Faktur = "'+ edit1.text +'"');
    adoquery5.Open;
    edit4.Text := adoquery5.Fields[0].AsString;
    
    button6.Visible:=true;
    button7.Visible:=true;
    dbedit3.Text:='';
    dbedit4.Text:='';
    edit2.Text:='';
    edit3.Text :='';
    DBLookupComboBox2.Enabled:=false;
    dbedit3.Enabled:=false;
    dbedit4.Enabled:=false;
    end
    else
    
    begin
    DBLookupComboBox1.Enabled:=true;
    DBLookupComboBox2.Enabled:=true;
    DBLookupComboBox1.SetFocus;
    adoquery2.sql.clear;
    adoquery2.SQL.Add('select * from pelanggan');
    adoquery2.open;
    
    datasource2.dataset := adoquery2;
    DBLookupComboBox1.ListSource:=datasource2;
    DBLookupComboBox1.ListField :='id_pembeli';
    DBLookupComboBox1.KeyField:='id_pembeli';
    
    adoquery1.sql.clear;
    adoquery1.SQL.Add('select * from barang');
    adoquery1.open;
    
    datasource1.dataset := adoquery1;
    DBLookupComboBox2.ListSource:=datasource1;
    DBLookupComboBox2.KeyField:='kode_barang';
    
    dbgrid1.Visible:=false;
    sg.Visible:=true;
    
    dbedit1.Text:='';
    dbedit2.Text:='';
    dbedit3.Text:='';
    dbedit4.Text:='';
    end;
    end;
    end;
    

    3. Membuat koding pada tombol OK, double klik tombol OK lalu ketik koding berikut :

    procedure TForm2.Button1Click(Sender: TObject);
    var i,qty,tot:integer;
    begin
    sg.RowCount := sg.rowcount+1;
    sg.cells[1,sg.RowCount-1]:=dblookupcombobox2.text;
    sg.Cells[2,sg.RowCount-1]:=dbedit3.Text ;
    sg.Cells[3,sg.rowcount-1]:=dbedit4.Text ;
    Qty:=strtoint(edit2.Text);
    sg.cells[4,sg.rowcount-1]:=edit2.text;
    sg.Cells[5,sg.rowcount-1]:=edit3.Text;
    tot:=0;
    for i:=1 to sg.RowCount-1 do
    begin
    tot := tot + strtoint(sg.Cells[5,i]);
    sg.Cells[0,i]:=inttostr(i);
    end;
    edit4.text := inttostr(tot);
    end;
    

    4. Membuat koding pada Edit2 untuk menghitung jumlah harga dari hasil perkalian harga barang x jumlah barang :

    procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: Char);
    var a,b,c,sisa:integer;
    kodebrg:String;
    begin
    if key=#13 then
    begin
    if edit2.Text ='' then
    begin
    edit3.Text:='0';
    edit2.SetFocus;
    end
    else
    a:=strtoint(edit2.Text);
    b:=strtoint(dbedit4.Text);
    if a > adoquery1.Fields[3].AsInteger then
    begin
    Application.MessageBox('Data Tidak Mencukupi','Control',MB_ICONSTOP);
    end
    else
    begin
    C := a * b;
    edit3.Text:=inttostr(c);
    sisa := adoquery1.Fields[3].AsInteger - Strtoint(edit2.Text);
    kodebrg:=dblookupcombobox2.text;
    adoquery6.close;
    adoquery6.sql.clear;
    adoquery6.SQL.Add('update barang set stock="'+ inttostr(sisa) +'" where kode_barang="'+kodebrg+'"');
    adoquery6.ExecSQL;
    end;
    end;
    end;
    

    5. Tambahkan tombol Hapus, lalu ketik program berikut untuk menghapus data :

    procedure TForm2.Button7Click(Sender: TObject);
    begin
    adoquery3.Close;
    adoquery3.SQL.Clear;
    adoquery3.SQL.Add('delete from Penjualan where no_faktur = "'+ edit1.Text +'"');
    adoquery3.ExecSQL;
    
    adoquery4.Close;
    adoquery4.SQL.Clear;
    adoquery4.SQL.Add('delete from djual where no_faktur ="'+ edit1.Text +'"');
    adoquery4.ExecSQL;
    
    end;
    

    Related Post :
    1. Delphi Programming 1. Transaction Processing Application Programs Sales of Goods
    2. Delphi Programming 2. Product Sales Transaction Processing Application (Form Product)
    3. Delphi Programming 3. Product Sales Transaction Processing Application (Form Costumer)
    4. Delphi Programming 4.Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi)
    5. Delphi Programming 5. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Distributor)
    6. Delphi Programming 6. Aplikasi Pengolahan Transaksi Penjualan Barang (Form Transaksi Pembelian Barang)
    7. Delphi Programming 7. Pembuatan Laporan Daftar Barang dengan menggunakan Rave
    8. Delphi Programming 8. Pembuatan Laporan Daftar Pelanggan dengan menggunakan Rave
    9. Delphi Programming 9. Pembuatan Laporan Transaksi Pembelian Barang dengan menggunakan Rave (Master/Detail)
    10. Delphi Programming 10. Pembuatan Laporan Transaksi PerTanggal dan PerPeriode dengan Menggunakan Rave (Tanggal + datetimePicker)