Rabu, 28 September 2011

Membuat Autonumber Menggunakan Kombinasi Bulan & Tahun di VB.Net

Di copy dari : http://herosetyanofario.wordpress.com/2011/06/17/membuat-autonumber-menggunakan-kombinasi-bulan-tahun-di-vb-net/

Program VB.NetPada postingan terdahulu gw sudah pernah buat sharing ide cara membuat penomoran otomatis. Baca sebelumnya. Nah kali ini gw mau sedikit improve cara membuat autonumber dengan kombinasi bulan (MM) dan tahun (yy). Seringkali klien banyak request untuk dibuatkan penomoran otomatis yang mengambil kombinasi bulan & tahun. Sebenarnya nga banyak berubah koding yang dipergunakan seperti pada postingan gw terdahulu. Hanya beberapa modifikasi sedikit. O iya sekedar informasi, banyak juga teman-teman yang request ke e-mail gw mengenai aplikasi yang ini. Sehingga membuat gw terpacu untuk memodifikasi penggunaan autonumber yang telah ada. ^-^



Ok seperti biasa aplikasi yang dibuat ini merujuk kepada penggunaan bahasa program Visual Basic (VB.Net 2008) dan SQL Server 2005
*FORMAT NO. INVOICE YANG GW BUAT : INV/CMI/06/11/00001
*keterangan :
INV : adalah kode untuk Invoice
CMI : adalah nama perusahaan
06 : adalah bulan (MM)
11 : adalah tahun (yy)
00001 : adalah autonumber – yang akan bertambah setiap transaksi masuk
Adapun langkah-langkah kerja dalam pembuatan autonumber ini adalah :
1. Persiapkan database-nya. Disini gw membuat database dengan nama “concept_db”
Berikut query untuk pembuatannya :
1create table purchasing_order(
2no_invoice varchar(50),
3nama_cust varchar(50),
4alamat_cust varchar(50));
2. Setelah selesai dengan database langkah selanjutnya adalah koding untuk form yang telah dibuat :
Sebelumnya gw akan kasih liat tampilan program-nya :
Program Autonumber
Tampilan setelah ada data masuk :
Program autonumber
2.1 Pertama-tama buat dulu Class untuk koneksi ke database. Dalam program gw, nama class-nya adalah : ClsKoneksi
Coding :
01Imports Microsoft.VisualBasic
02Imports System.Data.Sql
03Imports System.Data
04Imports System.Data.SqlClient
05Public Class ClsKoneksi
06    Protected tblPengguna = New DataTable
07    Protected SQL As String
08    Protected Cn As SqlClient.SqlConnection
09    Protected Cmd As SqlClient.SqlCommand
10    Protected Da As SqlClient.SqlDataAdapter
11    Protected Ds As DataSet
12    Protected Dt As DataTable
13    Public Function OpenConn() As Boolean
14        Cn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=concept_db;Integrated Security=True")
15        Cn.Open()
16        If Cn.State <> ConnectionState.Open Then
17            Return False
18        Else
19            Return True
20        End If
21    End Function
22    Public Sub CloseConn()
23        If Not IsNothing(Cn) Then
24            Cn.Close()
25            Cn = Nothing
26        End If
27    End Sub
28    Public Function ExecuteQuery(ByVal Query As String) As DataTable
29        If Not OpenConn() Then
30            MsgBox("Koneksi Gagal..!!", MsgBoxStyle.Critical, "Access Failed")
31            Return Nothing
32            Exit Function
33        End If
34 
35        Cmd = New SqlClient.SqlCommand(Query, Cn)
36        Da = New SqlClient.SqlDataAdapter
37        Da.SelectCommand = Cmd
38 
39        Ds = New Data.DataSet
40        Da.Fill(Ds)
41 
42        Dt = Ds.Tables(0)
43 
44        Return Dt
45 
46        Dt = Nothing
47        Ds = Nothing
48        Da = Nothing
49        Cmd = Nothing
50 
51        CloseConn()
52 
53    End Function
54    Public Sub ExecuteNonQuery(ByVal Query As String)
55        If Not OpenConn() Then
56            MsgBox("Koneksi Gagal..!!", MsgBoxStyle.Critical, "Access Failed..!!")
57            Exit Sub
58        End If
59 
60        Cmd = New SqlClient.SqlCommand
61        Cmd.Connection = Cn
62        Cmd.CommandType = CommandType.Text
63        Cmd.CommandText = Query
64        Cmd.ExecuteNonQuery()
65        Cmd = Nothing
66        CloseConn()
67    End Sub
68End Class
2.2 Setelah Class Koneksi dibuat, maka sekarang masuk ke inti dari program ini. Yaitu koding untuk Form1-nya :
Coding :
001Imports System.Data.SqlClient
002Imports System.Data
003Public Class Form1
004Dim SQL As String
005Dim SQL2 As String
006Dim Proses As New ClsKoneksi
007Dim tblMerk As DataTable
008'Dim Da As SqlClient.SqlDataAdapter
009Sub Data_Record()
010tblMerk = Proses.ExecuteQuery("Select * From purchasing_order")
011DataGridView1.DataSource = tblMerk
012DataGridView1.Columns(1).Width = 130
013End Sub
014'Kode otomatis untuk buat invoice
015Sub Kode_Otomatis()
016Dim date1 As String
017date1 = Format(Now, "yy")
018Dim date2 As String
019date2 = Format(Now, "MM")
020tblMerk = Proses.ExecuteQuery("Select * From purchasing_order order by no_invoice desc")
021If tblMerk.Rows.Count = 0 Then
022 
023TextBox1.Text = "INV/CMI/" & date2 & "/" & date1 & "/00001"
024Else
025With tblMerk.Rows(0)
026TextBox1.Text = .Item("no_invoice")
027End With
028TextBox1.Text = Val(Microsoft.VisualBasic.Mid(TextBox1.Text, 15, 5)) + 1
029If Len(TextBox1.Text) = 1 Then
030TextBox1.Text = "INV/CMI/" & date2 & "/" & date1 & "/0000" & TextBox1.Text & ""
031ElseIf Len(TextBox1.Text) = 2 Then
032TextBox1.Text = "INV/CMI/" & date2 & "/" & date1 & "/000" & TextBox1.Text & ""
033ElseIf Len(TextBox1.Text) = 3 Then
034TextBox1.Text = "INV/CMI/" & date2 & "/" & date1 & "/00" & TextBox1.Text & ""
035ElseIf Len(TextBox1.Text) = 4 Then
036TextBox1.Text = "INV/CMI/" & date2 & "/" & date1 & "/0" & TextBox1.Text & ""
037ElseIf Len(TextBox1.Text) = 5 Then
038TextBox1.Text = "INV/CMI/" & date2 & "/" & date1 & "/" & TextBox1.Text & ""
039End If
040 
041End If
042End Sub
043 
044Sub bersih()
045Call Data_Record()
046Call Kode_Otomatis()
047BtnTambah.Enabled = True
048TextBox1.Enabled = False
049TextBox2.Text = ""
050TextBox3.Text = ""
051TextBox1.Focus()
052End Sub
053 
054Private Sub DGJenisBrg_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.DoubleClick
055TextBox1.Text = DataGridView1.SelectedCells(0).Value
056TextBox2.Text = DataGridView1.SelectedCells(1).Value
057TextBox3.Text = DataGridView1.SelectedCells(2).Value
058BtnTambah.Enabled = False
059End Sub
060Private Sub BtnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTambah.Click
061 
062Try
063If (Me.TextBox1.Text = "") Then
064MsgBox("Data Wajib Diisi Lengkap!", MsgBoxStyle.Information, "Perhatian")
065Me.TextBox2.Focus()
066Exit Sub
067Else
068SQL = "Insert Into purchasing_order Values ('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "')"
069Proses.ExecuteNonQuery(SQL)
070MessageBox.Show("Proses Data Berhasil!", "Sukses saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
071Call bersih()
072End If
073Catch ex As SqlException
074MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
075 
076End Try
077 
078End Sub
079Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click
080Call bersih()
081End Sub
082 
083Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
084'Me.WindowState = FormWindowState.Maximized
085Call bersih()
086DataGridView1.Columns(0).HeaderText = "No. Invoice"
087DataGridView1.Columns(1).HeaderText = "Nama Customer"
088DataGridView1.Columns(2).HeaderText = "Alamat Customer"
089 
090Me.DataGridView1.DefaultCellStyle.ForeColor = Color.Coral
091' Change back color of each row
092Me.DataGridView1.RowsDefaultCellStyle.BackColor = Color.AliceBlue
093' Change GridLine Color
094Me.DataGridView1.GridColor = Color.Blue
095' Change Grid Border Style
096Me.DataGridView1.BorderStyle = BorderStyle.Fixed3D
097DataGridView1.EnableHeadersVisualStyles = False
098DataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray
099End Sub
100End Class
Keterangan properties untuk Form1
Textbox1.Text = Untuk input no.invoice
Textbox2.Text = Untuk input nama customer
Textbox3.Text = Untuk input alamat customer
BtnTambah = Eksekusi data
DatagridView1 = Binding data
BtnBatal = Membersihkan textbox dan refresh data

Tidak ada komentar:

Posting Komentar