Cara Membuat Generate Auto Number/No Urut/No Bukti VBNET
Ini merupakan share pertama kali saya mencoba membuat No Urut di Visual Basic NET.
Kali ini saya menemukan contoh ke coding vbnet dan cara melakukan SELECT query untuk
mendapatkan No urut terakhir dari database. Langsung ajahh...cekidot,
Function
djie_AutoNumber() As String
Dim
v_sql As String
'No Bukti
Dengan Format Biasa 001,002,003
v_sql = "SELECT
NO_BUKTI FROM TBL_HEAD ORDER BY NO_BUKTI DESC"
Using
con As New
SqlClient.SqlConnection("DATA
SOURCE=djiesoft;INITIAL CATALOG=test_db;USER ID=sa;PASSWORD=123"
con.Open()
Dim
cmd As New
SqlClient.SqlCommand(v_sql, con)
Dim
reader As SqlClient.SqlDataReader
reader = cmd.ExecuteReader
If
reader.HasRows Then
reader.Read()
Return
(Val(Trim(reader.Item(0).ToString)) + 1).ToString
Else
Return
"001"
End
If
End Using
End Function
Untuk kasus lain yang sedikit lebih rumit, misalanya ada kombinasi
karakter, tahun, bulan,hari dan sebagainya anda cukup ganti saja pada
bagian ini :
'Contoh
Custom No Bukti A001, A002, B001, C001, C002
'Jadi Setiap
Karakter Masing2 A,B,C punya no urut masing2
v_sql = "SELECT
RIGHT(NO_BUKTI,3) AS NO_BUKTI FROM TBL_HEAD WHERE LEFT(NO_BUKTI,1)='A' ORDER BY
RIGHT(NO_BUKTI,3) DESC"
reader.Read()
Return
"A" +
(Val(Trim(reader.Item(0).ToString)) + 1).ToString
Else
Return
"A001"
End If
'Contoh No
Bukti yyyymmdd-xxx : 20120801-001,20120801-002
'Jika Ingin
Setiap TAHUN Ganti/Reset Ke 001 Lagi
v_sql = "SELECT
RIGHT(NO_BUKTI,3) AS NO_BUKTI FROM TBL_HEAD WHERE
YEAR(LEFT(NO_BUKTI,8))=YEAR(GETDATE()) ORDER BY RIGHT(NO_BUKTI,3) DESC"
'Jika Ingin
Setiap BULAN Ganti/Reset Ke 001 Lagi
v_sql = "SELECT
RIGHT(NO_BUKTI,3) AS NO_BUKTI FROM TBL_HEAD WHERE
YEAR(LEFT(NO_BUKTI,8))+MONTH(LEFT(NO_BUKTI,8))=YEAR(GETDATE())+MONTH(GETDATE())
ORDER BY RIGHT(NO_BUKTI,3) DESC"
'Jika Ingin
Setiap HARI Ganti/Reset Ke 001 Lagi
v_sql = "SELECT
RIGHT(NO_BUKTI,3) AS NO_BUKTI FROM TBL_HEAD WHERE
YEAR(LEFT(NO_BUKTI,8))+MONTH(LEFT(NO_BUKTI,8))+DAY(LEFT(NO_BUKTI,8))=YEAR(GETDATE())+MONTH(GETDATE())+DAY(GETDATE())
ORDER BY RIGHT(NO_BUKTI,3) DESC"
If
reader.HasRows Then
reader.Read()
Return
Format(Now.Date, "yyyyMMdd") + "-" +
(Val(Trim(reader.Item(0).ToString)) + 1).ToString
Else
Return
Format(Now.Date, "yyyyMMdd") + "-001"
End If
Masih
banyak "Jalan/Cara" lain untuk melakukan generate No Urut ini, Mungkin
anda bisa lebih menyingkat/menyederhanakan lagi sintak diatas atau
mungkin anda mempunya cara lain yang lebih praktis yang bisa share
(berbagi) melalui comment dibawah. Semoga
bermanfaat.
Tidak ada komentar:
Posting Komentar