VirtualTable Alternatif Pengganti StringGrid dan Temporary Table


Ini mungkin katrok bagi para master Delphier yang sudah malang melintang di dunia perdelphian dan perdatabasean, namun bagi saya teknik ini lumayan seru lah, apa itu virtual table, yang belom punya silahkan langsung sedot aja dari sumbernya disini, komponen ini adalah salah satu produk free dari devart masbro dan mbaksis, jadi Halal untuk diedarkan silahkan tidak usah sungkan, atau yang mau langsung download yang sudah saya tampung di mediafire yaitu virtualtable untuk Delphi XE2 dan Delphi 7 silahkan sedot disini. cara installnya gampang udah ada installernya tinggal next2 dan ok saja 🙂

Komponen akan Muncul di Dalam Pallete > Data Access..

virtual-01

Kembali lagi apa sih Virtual Table itu?? penasaran kan?? bagi yang mahir bahasa inggris silahkan baca-baca disini. Bagi yang tidak demen saya coba jelaskan setahu saya juga 😀 haha, VirtualTable adalah komponen turunan dari Tdataset berfungsi menyimpan data sementara didalam memory, layaknya database, “gunaya buat apa sih??” ada yang pernah buat aplikasi transaksi jual/beli? atau semacamnya? nah pasti sering menggunakan stringgrid (:3 ane pernah pakek juga, hihi) untuk menampung item yang sedang dalam proses beli/jual (kasir) kan?? tujuanya apa?? pastilah supaya data yang “belum pasti disimpan” tidak masuk kedatabase langsung, yang pasti coding stringgrid ruwet lah  ya dah pada tau sendiri, seiring perkembangan muncul ide bikin temporari table di database, jadi datamasuk ke temporari dulu sebelum bener2 disimpan 😀 kelihatanya udah merasa keren banget saat bisa ini, eits tapi ternyata ada kendala juga saat database diakses lebih dari satu user secara bersamaan, pastilah ada cara mengakalinya tapi masih bahaya juga klo misal koneksi atau listrik mati, T.T ketinggalan deh itu data didatabase. (sekali lagi ini cara nyubi, kalo para master pastilah sudah memanfaatkan penuh kemampuan database 😀 jadi jgan diketawaain yah).

Gambaran Penggunaan Temporary Table

virtual-02

Tatarraaaaaa… nah akhirnya gue nemu deh solusi buat penyimpanan sementara tadi yaitu virtual table, karena dia menyimpan data sementara dimemory masing masing komputer jadi tidak akan menggangu user lain maupun database yang diakses lebih dari satu user tadi.. Bagaimana cara menggunakanya?? ayoo silahkan simak

Pertama-tama tentunya tambahkan komponen TVirtualTable ke dalam Form, Setelah itu Properties >FieldsDef

virtual-03

Maka Akan dihadapkan seperti tampilan dibawah ini,

virtual-04

Selanjutnya klik icon untuk menambahkan field, ini sudah sama seperti membuat filed dalam database lihat bagian properties kita diberi pilihan tipe data, nama filed, serta size nya. Selanjutnya tambahkan semua filed yang dibutuhkan setelah selesai bisa dicheck dengan doubleclick pada komponen TVirtualTable maka akan tampak seperti gambar dibawah ini,

virtual-05

Disini kita juga bisa melakukan test dengan menambahkan data lewat navigator yang tersedia, oke untuk penggunaan di dalam aplikasinya sangatlahmudah sama seperti memasukan data kedalam databasae dengan komponen rumpun dari dataset saya biasa menggunakan code seperti ini :

Temp.Append // untuk memasukan record baru
Temp['kdbarang']:=eKode.Text;
Temp['jenis']:=eJenis.Text;
Temp['ukuran']:=eUkuran.Text;
Temp['harga']:=eHarga.Text;
Temp['qty']:=eQty.Text;
Temp['disc']:=eDisc.Text;
Temp['subtotal']:=eGrand.Text;
Temp['stok']:=eStok.Text;
Temp.Post;
//keterangan : Temp = name VirtualTable
//gunakan Temp.Edit, Temp.Delete
//untuk merubah dan hapus record
//untuk mengosongkan Virtualtable
//Temp.Clear;
//Temp.Active:=True;

🙂 Senang bisa berbagi, semoga artikel ini juga bermanfaat bagi para delphier sekalian yang sedang belajar seperti saya juga, terimakasih…

, , , ,

  1. #1 by Chiemon on 20 July 2013 - 2:02 PM

    cara copy dari virtualTable ke table nya gimana mas?

    Like

    • #2 by mboloz on 20 July 2013 - 2:52 PM

      cukup lakukan perulangan mas, karena vtable itu bagaikan database juga… misal vtable name : Temp

      Temp.First;
      While not Temp.Eof do
      Begin
      //misal Pakek AdoQuery
      AdoQuery.Append;
      AdoQuery[‘field1’]:=Temp[‘field1];


      AdoQuery.Post;
      Temp.Next;
      End;

      Silahkan mencoba 🙂

      Like

  2. #3 by Indri on 23 July 2013 - 6:53 AM

    klo hitung grand total dari virtual tabelnya gimana mas?

    Like

    • #4 by mboloz on 23 July 2013 - 9:22 AM

      sebenarnya sama aja kek ngitung di dataset/query, atau bisa manfaatin fasilitas grideh seperti ini https://mboloz.wordpress.com/2012/12/03/menampilkan-footer-sum-di-dbgrideh-delphi/

      atau dengan cara manual buat prosedur total

      procedure Tfjual.total();
      var
      i,jml :integer;
      begin
      qtemp.First;
      jml := 0;
      for i := 1 to qtemp.RecordCount do
      begin
      jml := jml +qtemp.FieldByName(‘subtotal’).AsInteger;
      qtemp.Next;
      end;
      edgrand.Text := IntToStr(jml);
      end;

      Like

      • #5 by Indri on 26 July 2013 - 3:27 PM

        makasi mas

        Like

      • #6 by mboloz on 26 July 2013 - 6:26 PM

        sama-sama bung.. salam delphier

        Like

  3. #7 by NeedHelp on 28 July 2013 - 11:46 AM

    kalo pencarian pake virtualtabel gmn mas?

    Like

    • #8 by mboloz on 28 July 2013 - 10:18 PM

      VirtualTable.Locate(‘namafield’,Edit.Text,[]) sama kayak komponen query

      bisa juga

      VirtualTable1.Filter:=’namafield=’+QuotedStr(Edit.Text);
      VirualTable1.Filtered:=True;

      Like

      • #9 by NeedHelp on 29 July 2013 - 6:44 AM

        ane coba dl juragan, terimakasih 🙂

        Like

      • #10 by mboloz on 29 July 2013 - 9:56 AM

        🙂 monggo silahkan…

        Like

  4. #11 by NeedHelp on 29 July 2013 - 7:11 AM

    its worked gan @button gan (y)
    kalo yg buat di edit.txt nya gmn ya? misal ketik “K1” semua field yg isinya “K1” muncul di gridnya, yg laen ilang 😀

    Like

    • #12 by mboloz on 29 July 2013 - 10:03 AM

      maaf bang belum nemu cara yang kayak gitu, kalo pakek database bisa, virtualtable cuman datasementara..

      Like

  5. #13 by NeedHelp on 29 July 2013 - 7:12 AM

    1 lagi gan 😀 gimana caranya biar data yg diinputkan ke virtualtabel gg ilang pas program close ky kalo kita input data manual ke virtualtabelnya

    Like

    • #14 by mboloz on 29 July 2013 - 9:59 AM

      🙂 di simpan aja ada fasilitas save data disana tar akan jadi file, klo tidak gtu ga bisa soalnya ini kan menyimpan “sementara”
      🙂 klau ga mau gitu ya harus pakek database.

      Like

  6. #15 by NeedHelp on 30 July 2013 - 7:35 AM

    terimakasih om 😀

    Like

  7. #16 by dhasty on 23 September 2013 - 4:22 PM

    gan, bagaimana cara memasukkan data dari dbgrid ke virtualtable? atau file excel ke virtualtable. mohon pencerahaannya…

    Like

    • #17 by mboloz on 23 September 2013 - 7:13 PM

      wah kalau file excel belom penah coba gan..

      klo dari DbGrid bisa di insert biasa misal pakek Query (dalam kondisi struktur tabel yang sama)

      vTable.Append;
      vTable[‘no’]:=Query[‘no’];
      vTable[‘nama’]:=Query[‘nama’];
      VtAble.Post;

      Like

  8. #18 by abdulatif rokhman on 4 October 2013 - 9:13 AM

    Bermanfaat sekali mas

    Like

    • #19 by mboloz on 4 October 2013 - 9:16 AM

      🙂 terimakasih pak, terimakasih sudah mampir dan sudah berkenan memberi komentar…

      Like

  9. #20 by julianto supangat on 5 November 2013 - 6:30 AM

    Jos gandos, mudah-mudahan problem saya selama ini bisa teratasi.
    Mo nanya KAng:
    1. Apakah Vtable hilang saat aplikasi ditutup ato saat form tempat vtab berada ditutup?
    2. Dapatkah vtable diakses banyak user pada saat bersamaan dan tidak error?

    Matur nuwun banyak Kang. Mudah-mudahan Akang panjang umur dan terus bermanfaat, banyak rejeki dan banyak isteri… 😀

    Like

    • #21 by mboloz on 5 November 2013 - 6:56 AM

      😀 terimabasih banyak kang, udah mampir dan memberikan respon, oke saya coba jawab

      yang nomer 1, Tidak asal tidak di lakukan perintah clear pada vTabelnya, data masi ada di memory(RAM), bahkan klo aplikasi kita tutup sekalipun asal tidak ada perintah clear data masih disana, tapi klo komputer di matikan tentu saja hilang

      2, vtabel hanya berjalan pada komputer local bang jadi menurut saya hanya bisa di akses user yg ada pada komputer tersebut saja..

      aamiin aminn, mudah mudahan yang mendoakan juga mendapat berkah rejeki kesehatan dan yang baik-baik 😀

      Like

  10. #22 by deny imam w (@denyimam) on 3 December 2013 - 10:22 AM

    thanks infonya kang.. sangat bermanfaat..

    Like

    • #23 by mboloz on 3 December 2013 - 10:23 AM

      🙂 sama-sama kang, semoga menjadi manfaat.. thank sudah mau meninggalkan pesan..

      Like

  11. #24 by Xavi Mahendra on 4 February 2014 - 10:04 AM

    Mas mau tanya, bagaimana syntac menampilkan nama user di statusbar yang login ke aplikasi, sya menggunakan database acces mas, mohon pencerahahnnya

    Like

    • #25 by mboloz on 4 February 2014 - 3:34 PM

      ada beberapa cara sih, kalau saya pakek dataset..

      tapi cara mudahnya ya habis login bisa kasih aja koding misal (dengan asusmsi ada di form login, statusbar di menu utama)

      futama.statusbar1.panel[1].text:=ednama.text;

      Like

  12. #26 by pingusa446 on 29 March 2014 - 3:30 PM

    wah terimakasih banyak

    Like

  13. #28 by Isabel on 30 March 2014 - 4:20 PM

    Awesome pοst.

    Like

  14. #30 by el rozie on 4 May 2014 - 10:34 AM

    bang cara nyimpen dari vtable ke database yg udah dibuat gmna ya?

    Like

    • #31 by mboloz on 4 May 2014 - 1:31 PM

      🙂 dengan cara melooping, kemudian insert

      coba baca komentar komentar diatas bang, terimkasih

      Like

  15. #32 by azmi on 16 October 2014 - 2:03 AM

    maaf gan newbie…
    apa saja komponen yang dibutuhkan untuk virtual tabel?

    Like

    • #33 by mboloz on 16 October 2014 - 10:22 PM

      😀 virtual table itu komponen, tidak butuh komponen apapun lg kayake, tapi kalau mau nampilin data butuh bantuan datasource sama dbgrid

      Like

  16. #34 by Idal on 10 November 2014 - 9:55 PM

    maaf gan, ane mau nanya…
    kemaren sya dah coba pake virtual tabel, dan penyimpanan nya pun berhasil…
    tapi ada satu kendala gan…
    kok yg tersimpan di database cuma stu data gan,,,,
    padahal saya dah coba input beberapa data …
    mohon pencerahan nya gan…terimakasih

    Like

    • #35 by mboloz on 11 November 2014 - 7:13 AM

      🙂 lakukan looping saat menyimpan bang,
      lakukan

      vTable.first
      While not vTable.EOF do
      begin
      //simpan disini
      vTable.Next;
      end;

      Like

      • #36 by Idal on 14 November 2014 - 3:48 PM

        trima kasih banyk gan…
        sangat membantu…

        Like

      • #37 by mboloz on 14 November 2014 - 3:50 PM

        🙂 alhamdullilah, semoga manfaat

        Like

      • #38 by Idal on 15 November 2014 - 12:35 AM

        gan…maaf mau nanya lagi nich…mudah2n mash boleh gan…hehe
        cara rubah sumValue bisa menjadi Rp.0 lagi…
        maklum newbe gan
        trima kasih sbelum nya..

        Like

      • #39 by mboloz on 15 November 2014 - 5:21 AM

        🙂 dia akan menghitung isi dalam grid, kalau pakai vTable ya lakukan koding vTable.Clear;

        Like

      • #40 by baksoenak on 14 December 2014 - 11:35 PM

        saya juga punya masalah sama bang, padahal saya sudah pake looping tp data yg masuk cuma 1 aja…

        ada solusi bang?

        Like

  17. #41 by baksoenak on 11 December 2014 - 4:35 PM

    bang klo update data dari virtualtable ke database gmana yah ambil inputannya…. untuk perintah sqlnya thx

    Like

    • #42 by mboloz on 11 December 2014 - 7:25 PM

      baca komentar daiatas bang, bisa dengan cara di looping

      saya kurang paham yg di maksut update data dari vtable ke database? vtable fungsinya temporari sebelum di simpan ke database update dulu aja via vtable itu sendiri bisa

      Like

      • #43 by baksoenak on 11 December 2014 - 10:16 PM

        maksudnya update data melalui sql bang
        datamodule1.Qupdate1.SQL.Add(‘jumlah=jumlah+”+Virtualtable1.FieldDefs[2]+’);
        cara mengambil nilai untuk update, klo insert udah bisa bang pake looping tp klo update date gagal terus
        tolong di bantu bang.. terima kasih

        Like

      • #44 by mboloz on 11 December 2014 - 11:13 PM

        kenapa updatenya harus lewat virtual table? coba lewat trigger

        pastikan syntax query updatenya benar

        UPDATE tabel SET field=value
        WHERE field_key=value

        Like

  18. #45 by baksoenak on 13 December 2014 - 1:09 PM

    soanya pake DB absoute bang, gak support trigger, untuk ambil value dari virtual table gmana bang? ambil valu field saya coba gini gak mau
    datamodule1.Qupdate1.SQL.Add(‘jumlah=jumlah + ‘+Quotedstr(virtualtable1.Fields[2]);

    Like

    • #46 by mboloz on 13 December 2014 - 5:17 PM

      ambil value dari vtable sama kek ambil dari dataset

      cukup ginisaja
      vTable[‘namafield’]

      Like

      • #47 by baksoenak on 14 December 2014 - 10:56 AM

        thanks bang. solved

        Like

      • #48 by mboloz on 14 December 2014 - 12:35 PM

        🙂 seeeep sama-sama bang

        Like

  19. #49 by baksoenak on 15 December 2014 - 12:10 AM

    sorry bang…. butuh bantuan lagi, untuk looping di vtable kok gak bisa yah…. saya memasukan lebih dari 1 data tp yg masuk hanya 1 data saya yg update. begini potongan skrip saya:

    virtualtable1.First;
    while not virtualtable1.Eof do
    begin
    Qupdate1.Close;
    Qupdate1.SQL.Clear;
    Qupdate1.SQL.Add(‘UPDATE t_barang SET’);
    Qupdate1.SQL.Add(‘jumlah=jumlah+:jumlah’);
    Qupdate1.SQL.Add(‘WHERE kode_barang=:kode_barang’);
    Qupdate1.ParamByName(‘jumlah’).Value := virtualtable1[‘Jumlah’];
    Qupdate1.ParamByName(‘kode_barang’).Value := virtualtable1[‘Kode Barang’];
    Qupdate1.ExecSQL;

    virtualtable1.Next;

    Like

    • #50 by mboloz on 15 December 2014 - 7:00 AM

      harusnya sudah benar itu, ini memakai komponen apa? Zeos kah?

      Coba seperti ini,

      virtualtable1.First;
      while not virtualtable1.Eof do
      begin
      Qupdate1.Close;
      Qupdate1.SQL.Clear;
      Qupdate1.SQL.Add(‘UPDATE t_barang SET’);
      Qupdate1.SQL.Add(‘jumlah=jumlah+:P1’);
      Qupdate1.SQL.Add(‘WHERE kode_barang=:P2’);
      Qupdate1.Params[0].AsInterger := virtualtable1[‘Jumlah’];
      Qupdate1.Params[1].AsString := virtualtable1[‘Kode Barang’];
      Qupdate1.ExecSQL;

      virtualtable1.Next;

      Like

      • #51 by baksoenak on 15 December 2014 - 8:44 AM

        sama aja hasilnya, tetep hanya 1 yg berhasil terupdate ke database. itu q pake komponet absolut database…. ada solusi lain bang?

        Like

      • #52 by mboloz on 15 December 2014 - 1:37 PM

        kopas lengkap koding tomobl saat update di sini

        Like

      • #53 by baksoenak on 15 December 2014 - 3:12 PM

        udah ketemu bang masalahnya di mana…. 😀

        virtualtable1.next;
        virtualtable1.clear; <—– ini sumber masalahnyanya

        salah penempatan, harusnya ta buatkan tombol reset aja.

        Like

  20. #54 by sultan on 11 February 2015 - 10:18 PM

    mas, itu pake page control atau apa yah mas yang di formnya… mohon info, maklum pemula, kl bisa minta contoh programnya dong, buat referensi.. makasih banget mas sebelumnya.

    Like

    • #55 by mboloz on 12 February 2015 - 6:41 AM

      itu pakai PageControl dari alpha skin mas, maaf tidak bisa kasih app soale itu untuk di jual hehe

      Like

  21. #56 by Hani Mongkau on 21 February 2015 - 11:20 AM

    Makasih, mas.

    Infonya sangat membantu.

    Sudah saya pakai untuk simpan dari grid dengan checkbox 🙂

    Like

    • #57 by mboloz on 22 February 2015 - 7:07 AM

      🙂 sama-sama mas, semoga menjadi ilmu yang manfaat

      Like

  22. #58 by Hani Mongkau on 23 February 2015 - 8:40 AM

    Mas, mau tnya lagi 🙂

    1. Gimana cara hapus salah satu atau beberapa record di Virtual Table?
    saya menggunakan:
    TempKasir.Locate(‘NAMAFIELD’,’STRING YANG AKAN DICARI’,[]);
    if TempKasir.RecordCount > 0 then
    begin
    TempKasir.Delete;
    end;

    Tetapi yang dihapus semua record yang ada di Virtual Table.

    Jika saya tulis seperti ini:
    TempKasir.Locate(‘NAMAFIELD’,’STRING YANG AKAN DICARI’,[]);
    TempKasir.Delete;

    Error jika data yang dicari belum ada.

    2. Bisa gak qta query sesuatu dan menggunakan klausa Where-nya dari Virtual table
    Misalnya kalau tanpa Virtual Table: SELECT item_id, item_nama FROM tbitem WHERE item_id NOT IN (SELECT temp_item_id FROM tbtemp)

    Mohon Pencerahannya, mas.
    Terima Kasih

    Like

    • #59 by mboloz on 24 February 2015 - 5:51 AM

      1. Kita cukup delete menggunakan vtable itu sendiri, misal vTable.Delete; akan menghapus pada posisi cursor sesuai gridnya…, kalau mau multi delete silahkan cari diblog ini “MULTI DELETE” manikan properties multi select, kalau dengan perlulangan seperti itu jelas akan menghapus semua

      2. vtable tidak menggunakan SQL command, untuk membuka close terus open, kalau menggunakanya dalam query kita bisa ambil filed tertentu misal
      SELECT * FROM tabel WHERE id=Vtable[‘id’] pada sisi aplikasi

      Like

  23. #60 by aziscanaritonang on 1 August 2015 - 11:43 AM

    Halo mas, salam kenal.
    Saya baru ketemu artikel ini.
    Kenapa pallette-nya tidak muncul ya setelah di install?

    Like

    • #61 by mboloz on 1 August 2015 - 12:54 PM

      Halo salam kenal juga mas,,
      Diatidak membuat pallet sendiri tapi ikut di pallet Data Access

      Like

  24. #62 by aziscanaritonang on 1 August 2015 - 7:13 PM

    Iya mas, maksud saya ga muncul di pallete data access. Saya cari di pallette yang lain juga ga muncul Tvirtualnya.

    Mohon pencerahannya

    Like

    • #63 by mboloz on 1 August 2015 - 7:21 PM

      Belum pernah mengalami hal serupa, coba run as admin saat install, pastikan versi delphi yg tepat dengan installer TVirtualTablenya

      Like

  25. #64 by Fadhil on 28 November 2015 - 6:15 AM

    Permisi mau tanya..
    Virtualtable ini bisa gak menampilkan data eksekusi dari my sql..
    Misal, menampilkan data barang yg sering muncul dalam proses transaksi
    Trimakasih.

    Like

    • #65 by mboloz on 28 November 2015 - 4:52 PM

      bisa saja, tapi tetep dia hanya menampung data sementara di memory, kalau prosessnya eksekusi mysql > masukan ke temp table bisa.. tapi ngapain juga??? cukup di query langsung tampilkan ke grid mala beres

      Like

  26. #66 by zalfa on 21 March 2016 - 11:38 AM

    gan mau tanya saya newbie ada kesulitan di saat akan menghapus data yaitu “query must return exactly one result set – use execute ”

    pertanyaan kedua bagaimana cara membuat tiap form yang dibuka dijadikan new tab seperti gambar diatas?? terimakasih 🙂

    Like

    • #67 by mboloz on 21 March 2016 - 8:37 PM

      pastikan result dari query cuman 1 baris record saja bisa menambahkan limit 1

      untuk teknik diatas saya pakai page control dari alpha control, maaf belom bisa share karena pakai beberapa koding coba gabung Forum KPPDI ada doc contoh model new tab diatas, ada yg lebih mudah kalau tidak salah pakek bussiness sikins

      Like

  27. #68 by fadjrin on 8 June 2016 - 8:02 AM

    ditambahin field lookup bs gak bang?

    Like

  28. #70 by KDV Shared on 16 July 2016 - 6:14 PM

    oom, klo mau hanya edit qty saat input di nama barang / kode barang yang sama gimana,, jadi saat kita masukan nama barang / kode barang yang sudah maka akan nambah qty aja, dan row baru tidak akan bertambah, ada solusi oom,,

    saya menggunakan virtualtable

    Like

    • #71 by mboloz on 16 July 2016 - 6:51 PM

      locate duluberdasar kode barang misal kalau ketemu berarti Edit kalau kaga ketemu berarti Insert

      Like

  29. #72 by KDV Shared on 24 July 2016 - 6:11 AM

    udh nemu oom, caranya, dan bener2 sama metode yang saya gunakan dengan yang oom, share,, tetap pertahankan Situs ini oom, biar kita bisa saling berbagi… salam KPPDI .. 🙂

    Like

  30. #74 by irul dimy on 27 January 2017 - 12:11 AM

    nampilin virtual editor nya gmana bang? yg kayak pas double klik komponen virtual table, nampilin di aplikasinya, bukan pas coding

    Like

    • #75 by mboloz on 1 February 2017 - 2:03 PM

      wah malah g ak paham bang di jajal jajal saja

      Like

      • #76 by Choirul Dimyati on 4 February 2017 - 9:12 PM

        gan… uda ta pake, aman, kecuali sort nya ga ada.. kalo ado bisa pake table.sort, ni disini ga bisa, hiks..

        Like

      • #77 by mboloz on 14 February 2017 - 7:29 AM

        yavirtual table emg cumansifatnya sementara gan, jadi fasilitas dalam dataset tidak tercover semua

        Like

  31. #78 by akmal on 28 April 2017 - 6:58 PM

    masbro… kalau utk xe8 punya component Virtual tablenya?

    Like

  32. #79 by abdulhakim on 27 December 2017 - 6:11 AM

    saya pakai delphi 7, tab Data Access ga ada TVirtualTabel cuman sampe XMLTransfromClient. cara menambahkan TVirtualTabel di DataAccess gimana ya?

    Like

    • #80 by mboloz on 27 December 2017 - 6:42 AM

      download komponen DAC free itu yang Vtable

      Like

      • #81 by abdulhakim on 27 December 2017 - 8:31 AM

        oh iya mas yang dari devart itu kan ya? makasih mas 😀

        Like

  33. #82 by abdulhakim on 28 December 2017 - 6:12 AM

    Oh ya mas, kalau supaya ngisi qty bisa di DB grid nya langsung gimana ya??

    Like

    • #83 by abdulhakim on 28 December 2017 - 6:54 AM

      cara locate berdasar kode barang itu gimana ya mas?

      Like

  34. #84 by sabila rosad on 16 January 2018 - 8:05 PM

    cara bikin struk nya dari virtual table gimana ya mas

    Like

    • #85 by mboloz on 19 January 2018 - 6:35 AM

      vtabel buat nyimpan data, bikin strk paling mudah pakek komponen reporting seperti FastReport tinggal tarik datanya saja

      Like

  35. #86 by Gus Budhi on 12 April 2018 - 5:40 PM

    Bang.. gimana caranya agar form yang dimasukkan ke pagecontrol lebarnya mengikuti lebar pagecontrolnya?

    Like

  36. #88 by Gus Budhi on 12 April 2018 - 5:46 PM

    oh ya satu lagi bang..gimana caranya merubah value row lain yang di dbgrideh begitu picklist combobox dalam dbgrid saya rubah valuenya.. misalnya saya merubah satuan barang dari pcs ke dus sehingga begitu dirubah harga langsung berubah sesuai satuannya..

    sebenarnya saya sudah bisa tapi begitu satuan dirubah picklistnya tidak otomatis berubah harganya..harus klik disebelah barisnya atau di body dbgrid baru mau berubah.. Mohon bimbingannya..

    Like

    • #89 by mboloz on 12 June 2018 - 8:36 AM

      bisa pakai lookup, tergantung struktur tabel database kita misalsatu barang beda satuan bisa beda harga

      Like

  37. #90 by bagas on 25 March 2019 - 6:02 PM

    gan nubi mo nanya, itu biar sub total pake even oncalcfields gimana yak,

    saya coba tulis gini gan,

    procedure TFPenjualan.vt1CalcFields(DataSet: TDataSet);
    begin
    with vt1 do
    FieldByName(‘sub_total’).AsInteger:= FieldByName(‘harga’).AsInteger * FieldByName(‘jumlah’).AsInteger;
    end;

    ketika saya masukkan barang ke virtualtable, subtotalnya ga muncul, kenapa yak? 😀

    Like

    • #91 by mboloz on 20 April 2019 - 7:59 PM

      pastikan filed sub totalnya merupakan filed calculate

      Like

  38. #92 by Azriel on 23 July 2021 - 11:04 AM

    Mas, jika berkenan mohon saya minta file yang mas jadikan bahan di artikel ini.. saya ingin belajar stringgrid nya 🙏🙏
    Ini email saya mas
    Azrielsandi@gmail.com

    Like

    • #93 by mboloz on 1 September 2021 - 7:08 PM

      Mohon maaf jarang buka blog.. sample tersebut project saya sudah lama mas.. saya lupa taro dimana..

      Like

      • #94 by Azriel on 1 December 2021 - 6:27 PM

        Ga apa² mas, boleh mnta kontak nya mas Whatsapp atau Telegram gitu…
        kirim ke email saya aja mas kalau boleh 🙏🏿

        Like

  1. Cara Install MyDAC di Delphi XE 2 | Mboloz's Blog

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.