Membuat Penomoran Otomatis dengan C# dan VB.NET

Setelah beberapa hari lalu saya memposting tentang Validasi Email dengan VB.NET dan C#
Pada malam hari ini saya akan memposting tentang Membuat Penomoran Otomatis dengan C# dan VB.NET.
Penomoran otomatis biasanya di gunakan ketika kita ingin membuat sebuah program dimana data yang kita inginkan otomatis muncul dengan bentuk yang kita inginkan tanpa harus kita mengetik secara manual,
biasanya penomoran otomatis ada pada penomoran barang,nota dan lain lain

Contoh penomoran dengan format 0001,0002,0003 dan seterusnya

VB.NET
Private conn As SqlConnection
Private cmd As SqlCommand
Private rd As SqlDataReader
Private strconn As String = "Data Source=Kanzato;Initial Catalog=latnomor;Persist Security Info=True;User ID=sa; Password=root123"

Private Sub btn_gen1_Click(sender As Object, e As EventArgs) Handles btn_gen1.Click
Dim hitung As Long
Dim urut As String
' Mempersiapkan koneksi database
conn = New SqlConnection(strconn)
conn.Open()
' Perintah untuk mendapatkan nilai terbesar dari field nomor
cmd = New SqlCommand("select nomor from format1 where nomor in(select max(nomor) from format1) order by nomor desc", conn)
rd = cmd.ExecuteReader
rd.Read()
' Jika data ditemukan
If rd.HasRows Then
' Mengambil 4 karakter kanan terakhir dari field nomor lalu menambahkan dengan 1
hitung = Strings.Right(rd("nomor"), 4) + 1
' Mengambil 4 karakter kanan terakhir dari string hitung+0000
urut = Strings.Right("0000" & hitung, 4)
Else
' Jika tidak ditemukan maka mengisi variable urut dnegna 0001
urut = "0001"
End If
rd.Close()
txt_format1.Text = urut
conn.Close()
End Sub
C#
private SqlConnection conn;
private SqlCommand cmd;
private SqlDataReader rd;
private string strconn = "Data Source=Kanzato;Initial Catalog=latnomor;Persist Security Info=True;User ID=sa; Password=root123";

private void btn_gen1_Click(object sender, EventArgs e)
{
long hitung;
string urut;
// Mempersiapkan koneksi database
conn = new SqlConnection(strconn);
conn.Open();
// Perintah untuik mendapatkan nilai terbesar dari field nomor
cmd = new SqlCommand("select nomor from format1 where nomor in (select max(nomor) from format1) order by nomor desc",conn);
rd =cmd.ExecuteReader();
rd.Read();
// Jika data ditemukan
if (rd.HasRows)
{
// Mengambil 4 karakter kanan terakhir dari field nomor lalu menambahkan dengan 1
hitung = Convert.ToInt64(rd["nomor"])+1;
string joinstr = "0000" + hitung;
// Mengambil 4 karakter kanan terakhir dari string joinstr
urut = joinstr.Substring(joinstr.Length-4, 4);
}
else
{
// Jika tidak ditemukan maka mengisi variable urut dnegna 0001
urut = "0001";
}
rd.Close();
txt_format1.Text = urut;
conn.Close();
}


Contoh penomoran dengan format 0001,0002,0003 dan seterusnya

VB.NET
' Mendeklarasikan variable
Private conn As SqlConnection
Private cmd As SqlCommand
Private rd As SqlDataReader
Private strconn As String = "Data Source=Kanzato;Initial Catalog=latnomor;Persist Security Info=True;User ID=sa; Password=root123"

Private Sub btn_gen2_Click(sender As Object, e As EventArgs) Handles btn_gen2.Click
Dim hitung As Long
Dim urut As String
' Mempersiapkan koneksi database
conn = New SqlConnection(strconn)
conn.Open()
' Perintah untuk mendapatkan nilai terbesar dari field nomor
cmd = New SqlCommand("select nomor from format2 where nomor in(select max(nomor) from format2) order by nomor desc", conn)
rd = cmd.ExecuteReader
rd.Read()
' Jika data ditemukan
If rd.HasRows Then
' Mengambil 4 karakter kanan terakhir dari field nomor lalu menambahkan dengan 1
hitung = Strings.Right(rd("nomor"), 4) + 1
' Menambahkan string BRG dengan 4 karakter paling kanan dari string 0000+hitung
urut = "BRG" + Strings.Right("0000" & hitung, 4)
Else
' Jika tidak ditemukan maka mengisi variable urut dengan BRG0001
urut = "BRG0001"
End If
rd.Close()
conn.Close()
txt_format2.Text = urut
End Sub
C#
private SqlConnection conn;
private SqlCommand cmd;
private SqlDataReader rd;
private string strconn = "Data Source=Kanzato;Initial Catalog=latnomor;Persist Security Info=True;User ID=sa; Password=root123";

private void btn_gen2_Click(object sender, EventArgs e)
{
long hitung;
string urut;
// Mempersiapkan koneksi database;
conn = new SqlConnection(strconn);
conn.Open();
// Perintah untuk mendapatkan nilai terbesar dari field nomor
cmd = new SqlCommand("select nomor from format2 where nomor in(select max(nomor) from format2) order by nomor desc", conn);
rd = cmd.ExecuteReader();
rd.Read();
// Jika data ditemukan
if (rd.HasRows)
{
// Menambahkan data dari field nomor
hitung = Convert.ToInt64(rd[0].ToString().Substring(rd["nomor"].ToString().Length - 4,4))+1;
string joinstr = "0000" + hitung;
// Mengambil 4 karakter kanan terakhir dari string joinstr lalu di tambahkan dengan string BRG
urut = "BRG" + joinstr.Substring(joinstr.Length - 4, 4);
}
else
{
// Jika tidak ditemukan maka mengisi variable urut dengan BRG0001
urut = "BRG0001";
}
rd.Close();
txt_format2.Text = urut;
conn.Close();
}

Contoh penomoran dengan format yyyMMddxxx

VB.NET
Private conn As SqlConnection
Private cmd As SqlCommand
Private rd As SqlDataReader
Private strconn As String = "Data Source=Kanzato;Initial Catalog=latnomor;Persist Security Info=True;User ID=sa; Password=root123"

Private Sub btn_gen3_Click(sender As Object, e As EventArgs) Handles btn_gen3.Click
Dim hitung As Long
Dim urut As String
' Mempersiapkan koneksi database
conn = New SqlConnection(strconn)
' Perintah untuk mendapatkan nilai terbesar dari field nomor
cmd = New SqlCommand("select nomor from format3 where nomor in(select max(nomor) from format3) order by nomor desc", conn)
conn.Open()
rd = cmd.ExecuteReader
rd.Read()
' Jika data ditemukan
If rd.HasRows Then
' Jika 8 karakter dari kiri pada field nomor tidak sama dengan Format(Now, "yyyyMMdd")
If Strings.Left(rd("nomor"), 8) <> Format(Now, "yyyyMMdd") Then
' Mengisi variable urut
urut = Format(Now, "yyyyMMdd") + "0001"
Else
' Menambahkan data dari filed nomor
hitung = rd("nomor") + 1
' Mengisi variable urut
urut = hitung
End If
Else
' Jika tidak ditemukan maka mengisi variable urut dengan format date yyyyMMdd+0001
urut = Format(Now, "yyyyMMdd") + "0001"
End If
rd.Close()
conn.Close()
txt_format3.Text = urut
End Sub
C#
private SqlConnection conn;
private SqlCommand cmd;
private SqlDataReader rd;
private string strconn = "Data Source=Kanzato;Initial Catalog=latnomor;Persist Security Info=True;User ID=sa; Password=root123";

private void btn_gen3_Click(object sender, EventArgs e)
{
long hitung;
string urut;
// Mempersiapkan koneksi database;
conn = new SqlConnection(strconn);
// Perintah untuk mendapatkan nilai terbesar dari field nomor
cmd = new SqlCommand("select nomor from format3 where nomor in(select max(nomor) from format3) order by nomor desc", conn);
conn.Open();
rd = cmd.ExecuteReader();
rd.Read();
// Jika data ditemukan
if (rd.HasRows)
{
// Jika 8 karakter dari kiri pada field nomor tidak sama dengan Format(Now, "yyyyMMdd")
if (rd["nomor"].ToString().Substring(0, 8) != DateTime.Now.ToString("yyyyMMdd"))
{
// Mengisi variable urut
urut = DateTime.Now.ToString("yyyyMMdd");
}
else
{
// Menambahkan data dari field nomor
hitung = Convert.ToInt64(rd["nomor"].ToString())+1;
// Mengisi variable urut
urut = Convert.ToString(hitung);
}
}
else
{
// Jika tidak ditemukan maka mengisi variable urut dengan format date yyyyMMdd0001
urut = DateTime.Now.ToString("yyyyMMdd") + "0001";
}
rd.Close();
txt_format3.Text = urut;
conn.Close();
}

Jalankan program tersebut, berikut screen shot contoh yang saya buat

Membuat Penomoran Otomatis dengan C# dan VB.NET

Anda dapat mendownload source codenya dibawah ini
| VB.NET | C# |
Untuk password silahkan klik disini

Sekian dari saya.
Terima kasih atas kunjugannya semoga bermanfaat

Tidak ada komentar

Diberdayakan oleh Blogger.