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;
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
mas qr2, qr3 itu di deklarasikan sebgai apa yah?
ReplyDeletebagai mana cara membuat form laporan cetak berdasaran kategori nama,(bukan taggal).
ReplyDelete