loading...

loading...

Saya Coba sharing cara membuat penomoran otomatis dengan VB.net , dimana nomor akan terbentuk secara otomatis ketika suatu button di klik. For example ,saya mau membuat nomor otomatis transaksi pada Delivery Order, jadi saya mau nomor transaksinya adalah DO00001/MM/09/2016 , jadi formatnya DO ( Delivery Order), 00001 ( Nomor Urut transaksi) , MM (Identitas,kalian ganti aj atau hilangin jga boleh), 09(Bulan transaksi), 2016(Tahun Transaksi) . Kemudian Nomor itu akan terus Berurutan sampai Ganti bulan misal no DO Terakhir pad bulan 9 adalah DO00211/MM/09/2016, nah jika sudah ganti bulan misal bulan 10 maka Nomor jadi DO00001/MM/10/2016 ,secara otomatis nomor akan kembali ke angka 1 lagi. Ok langsung saja kita mulai.
Sebelumnya Saya akan kasih lihat sedikit Field dalam database nya , saya gunakan MYSQL .
Dimana di tabel delivery_order terdapat Field DONumber (Nomor transaksi DO) dan DODate (tanggal Transaksi DO).
do1

saya asumsikan teman2 sudah memiliki databasenya dan VB.net nya sudah terkoneksi dengan databasenya,

Kita buat Sebuah variabel dulu , berikut variabel yang akan kita buat. Letakan Variabel paling atas di bagian class kalian.

Public Class DeliveryOrder
  Dim CURDATE As String 'CURENT DATE
  Dim DOM As String 'DO MAX
  Dim NOM As String 'NO MAX
  Dim YEAR_NOW As String 'TAHUN SEKARANG
  Dim MONTH_NOW As String 'BULAN SEKARANG

Kemudian Kita buat Sub Function dimna saya buat dengan nama Create_No_DO berikut Codingnya.

Sub Create_No_DO()
        YEAR_NOW = Format(Now, "yyyy")
        MONTH_NOW = Format(Now, "MM")
        CURDATE = Format(Now, "MM/yyyy")
        Call BukaDB()
        cmd = New OdbcCommand("SELECT MAX(substring(DONumber,3,5)) as NOMAX FROM tbl_delivery_order WHERE YEAR(DODate)='" & YEAR_NOW & "' AND SUBSTRING(DODate,6,2)='" & MONTH_NOW & "'", conn)
        'query dimana bulan dan tahun DODate = Bulan dan Tahun sekarang maka NOMAX di ambil , jika tahun dan bulan tidak sama ( sudah ganti bulan) maka Pada awal bulan
        'NOMAX = 0 (null) 
        dr = cmd.ExecuteReader
        dr.Read()
        'Jika data tidak ada maka creat DOM dan DOM
        If Not dr.HasRows Then
            DOM = "DO0000"
            NOM = "1"
        Else
            'Jika ada Maka NOM = NOMAX + 1
            NOM = Val(Microsoft.VisualBasic.Mid(dr.Item("NOMAX").ToString, 3, 5)) + 1
            If NOM <= 9 Then
                DOM = "DO0000"
            ElseIf NOM <= 99 Then
                DOM = "DO000"
            ElseIf NOM <= 999 Then
                DOM = "DO00"
            ElseIf NOM <= 9999 Then
                DOM = "DO0"
            ElseIf NOM <= 99999 Then
                DOM = "DO"
            End If
        End If
        Txt_DoNumber.Text = DOM & NOM & "/" & "MM/" & CURDATE & ""
    End Sub

#Ket : *Pada Query         cmd = New OdbcCommand(“SELECT  MAX(substring(DONumber,3,5)) as NOMAX  FROM tbl_delivery_order WHERE YEAR(DODate)='” & YEAR_NOW & “‘ AND SUBSTRING(DODate,6,2)='” & MONTH_NOW & “‘”, conn) , Query tsb untuk menampilkan Nomor terakhir pada Field DONumber .
*MAX(substring(DONumber,3,5)) menarik nomor terakhir /Maximal pad field DONumber dimna yang di ambil adalah di mulai dari karakter 3 dan di ambil 5 karakter, jadi yang di ambil dari field DONumber adalah 000211
do2
* Pada query ini : WHERE YEAR(DODate)='” & YEAR_NOW & “‘ AND SUBSTRING(DODate,6,2)='” & MONTH_NOW & “‘”, conn) , Nomor terakhir DO yang di ambil adalah nomor dengan ketentuan tahun transaksi DO pada field DODate dan Bulan transaksi DO pada Field DODate juga sama dengan Bulan dan Tahun sekarang , jadi jika sekarang adalah bulan 10 dan transaksi terakhir adalah bulan 9 maka NOMAX yang akan di tampilkan adalah Null nah disini lah resetnya , ketika NOMAX tidak ada isinya kita buatkan codingan dari vb yang berfungsi untuk membuat penambahan dimna NOMAX + 1 = 1 jadi nomor DO akan ulang dari 1 lagi ketika bulan berganti.
* NOM = Val(Microsoft.VisualBasic.Mid(dr.Item(“NOMAX”).ToString, 3, 5)) + 1  , Inilah fungsi yang menambahkan ngka 1 , jadi ketika no terakhir / NOMAX adalah 211 maka akan di + 1 ketika di runing programnya maka no yg terbentuk adalah 212 , dan ketika NOMAX yang di tampilkan null maka akan di + 1 jga jadi ketika di runing NOMAX =1 itu jika ganti bulan.
*Pada codingan di bawah ini , jika NOMAX masih di bawah 9 maka DOM = DO0000 artinya jika NOMAX = 5 maka no yg terbentuk adalah DO00005/MM/09/2016 , jika NOMAX adalah 200 maka DO00200/MM/09/2016 dst

            If NOM <= 9 Then
                DOM = "DO0000"
            ElseIf NOM <= 99 Then
                DOM = "DO000"
            ElseIf NOM <= 999 Then
                DOM = "DO00"
            ElseIf NOM <= 9999 Then
                DOM = "DO0"
            ElseIf NOM <= 99999 Then
                DOM = "DO"
            End If

* Txt_DoNumber.Text = DOM & NOM & “/” & “MM/” & CURDATE & “” , nah disinlah hasil coding tadi di tampilkan yaitu pada toolbox textboxt dimna texboxtnya saya beri nama txt_DoNumber. jadi ketika di runing pada bulan yang masih sama hasilnya di gambar a dan di bulan yang sudah berbeda di gambar b, dimna No DO terakhir pada database adalah 211.
gbr.a
do3

gbr.b
do4

, Eits jangan Lupa function create_no_do nya di panggil di button atau dimna lah terserah.
Semoga membantu.!

 

 

Membuat Nomor Transaksi Otomatis dan Reset Setiap Awal Bulan
Share This
FacebookTwitterGoogle+WhatsAppEmailPrintFriendly
loading...

Post navigation


Leave a Reply

Your email address will not be published. Required fields are marked *