Laman

Cara Mencetak Laporan Di Delphi dengan Sistem Multi Select di DBGRID


Pada tutorial kali ini akan dibahas mengenai penggunaan multi select di komponen DBGRID, dimana pada tutorial sebelumnya telah dibahas penggunaannya untuk menghitung Data Quantity Record. Dan ditutorial ini akan dibahas bagaimana Program bisa mencetak data secara multi select, tetapi sebelumnya harus dibuat terlebih dahulu tabel temporary buat menyimpan data sementara.


Syntak 

procedure TFcetak_barcode.BtCetakClick(Sender: TObject);
var
  i : integer;
begin
 if DBGrid1.SelectedRows.Count > 0 then
   begin
     With DBGrid1.DataSource.DataSet do
      begin
         with qr2 do
            begin
             close;
             sql.Clear;
             sql.Add('delete from tbcode_temp');
             ExecSQL;
             close;
            end;
         for i := 0 to DBGrid1.SelectedRows.Count-1 do
           begin
             //GotoBookmark(pointer(DBGrid1.SelectedRows.items[i]));
             qr1.GotoBookmark(pointer(DBGrid1.SelectedRows[i]));
              begin
              // Buat tabel baru
                 with qr2 do
                  begin
                    close;
                    sql.Clear;
                    sql.Add('insert into tbcode_temp(idbcode,tglinput,idrak,nam_wh,idmat,qty_datang,unit_basic,no_po,brg,supplier)');
                    sql.Add('values(:idbcode,:tgl,:idrak,:nam_wh,:idmat,:qtydatang,:ub,:nopo,:brg,:supp)');
                    ParamByName('idbcode').AsString := qr1idbcode.AsString;
                    ParamByName('tgl').AsDate := qr1tglinput.AsDateTime;
                    ParamByName('idrak').AsString := qr1idrak.AsString;
                    ParamByName('nam_wh').AsString := qr1nam_wh.AsString;
                    ParamByName('idmat').AsString := qr1idmat.AsString;
                    ParamByName('qtydatang').AsString := qr1qtydatang.AsString;
                    ParamByName('ub').AsString := qr1unit_basic.AsString;
                    ParamByName('nopo').AsString := qr1no_po.AsString;
                    ParamByName('brg').AsString := qr1brg.AsString;
                    ParamByName('supp').AsString := qr1supplier.AsString;
                    ExecSQL;
                    close;
                   end;
             end;
           end;
            with qr3 do
              begin
                 close;
                 sql.Clear;
                 sql.Add('select * from tbcode_temp');
                 open;
                 close;
             end;
             frxReport1.Report.ShowReport(false);
      end;
   end;


end;

Logika Program
1.       Data yang akan dicetak di pilih via DBGRID
2.       Selanjutnya Program mengosongkan tabel Temporary
3.       Program Melakukan Pengulangan terhadap record yang dipilih
4.       Program Melakukan Insert data ke Tabel temporary
5.       Dan Selanjutnya program Menampilkan report sesuai dengan data yang di pilih di DBGRID


Notes

Untuk Laporan menggunakan Fast Report


Selamat Mencoba


PADEPOKAN IT COURSES
IT Tutorial, Training Center & IT Solution




1 comment:

  1. mas qr2, qr3 itu di deklarasikan sebgai apa yah?

    ReplyDelete