English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified

13 November 2011

Auto Increment ID

dalam posting kali ini saya ingin membagikan sedikit tambahan mengenai auto increment ID yang berdasarkan Tahun, Bulan, dan digit auto dengan cara ini diharapkan dapat merubah mindset dan dapat mengecek laporan berdasar bulan dan tahun sesuai yang di maksud

untuk lebih jelas perhatikan form berikut :



pada textbox txtID.Text terdapat kode ID11110001, maksudnya adalah
1. ID = merupakan kode yang telah diset sesuai dengan kebutuhan
2. 11 = diambil dari tahun 2011
3. 11 = diambil dari bulan November
4. 0001 = merupakan auto increment dari jumlah row yang terakhir

skenarionya begini, begitu aplikasi di running maka aplikasi akan mengecek secara sistem apakah sekarang tahun 2011 lalu mengecek apakah sekarang bulan november lalu akan mengecek jumlah row yang terakhir berapa.

kira-kira syntax nya pertama kali saya membutuhkan function untuk menghitung jumlah row di dalam tabel yang dimaksud.
Sub Function cekDigit3(ByVal id As Int16)
Dim a As String
a = IIf(id >= 10, IIf(id >= 100, IIf(id >= 1000, id, "0" & id), "00" & id), "000" & id)
Return a
End Function

function diatas dibutuhkan untuk menghitung row berdasarkan rumus dari IIF bawaan excel. Berikutnya adalah menghitung incrementnya tempatkan pada form load

sub form_load
dim query as string
query="Select ID from tableName where ID like '" & "ID" & mid(Now.Year(3,2) & mid(Now.Month,1,2) & "%'"
da=New OracleDataAdapter(query, xcon)
da.Fill(ds,"TableNameAlias")
'lalu pada txtID.Text diisi
dim n as integer
n=me.BindingContext(ds.Table("TableNameAlias")).Count
txtID.Text="ID" & mid(Now.Year(3,2) & mid(Now.Month,1,2) & cekDigit3(n+1)

Korelasi dari kombinasi seperti ini adalah sistem akan mengecek syarat tahun, syarat bulan dan increment yang terakhir jadi jika pindah bulan atau tahun makan increment akan kembali ke angka 1, jika tahun dan bulan masih sama dan sesuai makan increment akan di tambah 1.

hasilnya pada txtID.Text adalah ID11110001
semoga bermanfaat selamat mencoba, salam

WAL

Insert : Table Transaksi & Detail Transaksi


kapan diperlukannya tabel detail adalah pada saat melakukan transaksi yang mana ID harus diinputkan dua kali dalam sekali menekan tombol simpan

sebagaimana ilustrasi berikut dari PDM penjualan




yang mana terdapat 2 tabel yang pertama berfungsi menampung penyimpanan ke dalam master transaksi penjualan dan tabel kedua berfungsi untuk menampung penyimpanan item-item barang ke dalam detail transaksi

untuk lebih jelasnya ada pada form berikut



disini saya langsung menjelaskan bagaimana memasukkan data item barang ke dalam listview dan simpan ke database.

yang pertama simpan / tampilkan pada listview (pada button simpan) dan ini hanyalah cara untuk menampilkan data pada listview saja.

i = Val(NextLine.Text)
NextLine.Text = Str(Val(NextLine.Text) + 1)
ListView1.Items.Add("")
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("")
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("")
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("")
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("")
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("")
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("")

ListView1.Items(i).SubItems(0).Text = txtKodeIDList.Text
ListView1.Items(i).SubItems(1).Text = txtNamaBarang.Text
ListView1.Items(i).SubItems(2).Text = cbJumlah.Text
ListView1.Items(i).SubItems(3).Text = Format(txtHrgSatuan.Text, "##,##0")
ListView1.Items(i).SubItems(4).Text = Format((txtHrgSatuan.Text * cbJumlah.Text), "##,##0")

berikutnya adalah cara untuk menyimpan kedalam tabel, sekali lagi cara untuk menyimpan ke dalam tabel.

Try
dim no as Integer=0
Do while no <= ListView1.Items.Count-1 dim query, query2 as string query="Insert Into DetailPenjualan Values (" & _

"'" & txtKodeDetailFaktur.Text & "'" & _

",'" & txtKodeFaktur.Text & "'" & _

",'" & ListView1.Items(no).subItems(0).Text & "'" & _

",'" & ListView1.Items(no).subItems(1).Text & "'" & _

",'" & ListView1.Items(no).subItems(2).Text & "'" & _

",'" & ListView1.Items(no).subItems(3).Text & "'" & _

",'" & txtJnsBarang.Text & "'" & _

",'" & ListView1.Items(no).subItems(4).Text & "')"

da=New OracleDataAdapter(query,xcon)

da.Fill(ds,"DetPenj")

no+=1

loop


query2=="Insert Into Penjualan Values (" & _

"'" & txtKodeFaktur.Text & "'" & _

",'" & txtdisc.Text & "'" & _

",'" & txtStlhDisc.Text & "'" & _

",'" & txtGrandTotal.Text & "'" & _

",'" & txtBayar.Text & "'" & _

",'" & txtKembaliUang.Text & "'" & _

",'" & dateTimePicker1.Text & "'" & _

",'" & txtNamaCustomer.Text & "'" & _

da=New OracleDataAdapter(query2, xcon)

da.fill(ds,"Penj")

ds.Clear()



Syntax diatas belum termasuk create koneksi, auto increment ID dan pengecekan validasi

semoga bermanfaat dan selamat mencoba , salam

WAL