Wednesday, September 19, 2012

Fransiskus Sutris

Membuat Fungsi Fleksible AutoNumber di VB.NET


Flexible Autonumber

Dengan fungsi yang saya buat ini anda bisa membuat autonumber yang fleksibel, kenapa fleksibel karena fungsi ini tidak sebatas hanya pada jenis numbering yang berisikan digit angka saja melainkan gabungan dari Huruf dan angka juga bisa dilakukan secara otomatis oleh fungsi ini.
Contoh untuk membuat penomoran otomatis pada Nota Penjualan, Nota Pembelian, dll.
Perhatikan ilustrasi pada table berikut :

No. Saat ini
No. Berikutnya
1
2
3
dst
00001
00002
00003
dst
PO-0001
PO-0002
PO-0004
dst
INV-20.09.2012-00001
INV-20.09.12-00002
INV-20.09.2012-00003
dst

Mari kita lihat contoh penggunaan fungsi ini secara sederhana agar mudah dipahami.
1.
Langkah awal buatlah sebuah project baru di VB Express / VB.net Anda.

2.
Letakan 2 buah label, 2 buah textbox dan 1 buah button (boleh diatur sesuai gambar di bawah ini).

3.
Tambahkan 1 buah class di project Anda dan beri nama class tersebut dengan nama clsFunction.vb, lihat gambar di bawah ini
 
4.
Silahkan buka clsFunction.vb dengan cara double click, lalu hapus dua baris code di sana, dan pastekan coding berikut ini:


Public Class clsFunction
    Function GetNextNumber(ByVal strBefore As String) As String
        Dim temp1 As String = vbNullString
        Dim lnStrBefore, lnTemp1 As Integer

        temp1 = Val(strBefore) + 1

       lnStrBefore = Len(strBefore)
        lnTemp1 = Len(temp1)

        If lnStrBefore > lnTemp1 Then
            Dim a As Integer
            For a = lnTemp1 To (lnStrBefore - 1)
                temp1 = "0" & temp1
            Next
        End If
        Return temp1
    End Function

    Function GetNextString(ByVal strBefore As String) As String
        Dim strAwal As String = vbNullString
        Dim temp1 As String = vbNullString
        Dim lnStrBefore As Integer

        lnStrBefore = Len(strBefore)
        Dim a, b As Integer
        Dim cKarakter As String

        b = lnStrBefore + 1
        For a = 1 To lnStrBefore
            b = b - 1
            cKarakter = Mid(strBefore, b, 1)

            If IsNumeric(cKarakter) = False Then
                strAwal = Left(strBefore, b)
                temp1 = Right(strBefore, a - 1)
                temp1 = strAwal & GetNextNumber(temp1)'CALLFUNCTION GetNextNumber
                Exit For
            End If
        Next
        Return temp1
    End Function

    Function FlexibleAutoNumber(ByVal strRecentNumber As String) As String
        If IsNumeric(strRecentNumber) Then
            Return GetNextNumber(strRecentNumber)
        Else
            Return GetNextString(strRecentNumber)
        End If
    End Function
End Class

5.
Penjelasan singkat 3 buah function diatas
a.    Function GetNextNumber digunakan ketika susunan nomor terdiri dari digit angka saja
b.    Function GetNextString digunakan ketika susunan nomor terdiri dari penggabungan huruf dan angka.
c.    Function FlexibleAutoNumber, fungsi ini yang akan memanggil salah satu dari kedua fungsi diatas sesuai dengan jenis nomornya.


6.
Langsung saja bukalah form1 design, dan double click pada button1, kemudian isikan coding di bawah ini:


Public Class Form1
    Dim c As New clsFunction
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As String = TextBox1.Text
        TextBox1.Text = c.FlexibleAutoNumber(a)
    End Sub
End Class

7.
Simpan project anda dan coba jalankan, silahkan masukan contoh nomor, misal INV-0001 maka setelah tombol Save di-click maka INV-0001 akan berubah menjadi INV-0002, dst.


8.
Silahkan explore sendiri untuk penggunaan fungsi ini sesuai dengan program yang anda buat. Dan Selamat mencoba semoga bermanfaat.

download projectnya.


Fransiskus Sutris

About Fransiskus Sutris -

Halo, perkenalkan saya Fransiskus Sutris. Saya berbagi tips and trik di blog saya ini dan semoga apa yang saya bagi disini bisa bermanfaat bagi anda yang membacanya.

Subscribe to this Blog via Email :

1 comments:

Write comments