Selasa, 20 November 2012

Membuat User Control Progress Bar

Progress Bar sering kali digunakan dalam berbagai aplikasi terutama dalam proses yang memerlukan waktu sedikit lama.Sehingga user dapat membedakan bahwa proses sedang berjalan. Pembahasan kali ini saya akan membuat User Control Progress Bar. Pertama kali kita buat User Control dan beri nama ProgreswsBar, kemudian masukkan Progress Bar dan Label seperti gambar dibawah ini :


progress Bar diberi nama : bar
label diberi nama : lblProgress


kemudian ketikan list program dibawah ini :


    Inherits System.Windows.Forms.UserControl

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()
        InitializeComponent()
    End Sub

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    Private components As System.ComponentModel.IContainer

    Friend WithEvents Bar As System.Windows.Forms.ProgressBar
    Friend WithEvents lblProgress As System.Windows.Forms.Label
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Bar = New System.Windows.Forms.ProgressBar
        Me.lblProgress = New System.Windows.Forms.Label
        Me.SuspendLayout()
        Me.Bar.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.Bar.Location = New System.Drawing.Point(4, 8)
        Me.Bar.Name = "Bar"
        Me.Bar.Size = New System.Drawing.Size(154, 23)
        Me.Bar.TabIndex = 0       
        Me.lblProgress.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.lblProgress.Location = New System.Drawing.Point(5, 31)
        Me.lblProgress.Name = "lblProgress"
        Me.lblProgress.Size = New System.Drawing.Size(152, 16)
        Me.lblProgress.TabIndex = 1
        Me.lblProgress.Text = "0% Done"
        Me.lblProgress.TextAlign = System.Drawing.ContentAlignment.TopCenter
        Me.Controls.Add(Me.lblProgress)
        Me.Controls.Add(Me.Bar)
        Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Name = "Progress"
        Me.Size = New System.Drawing.Size(164, 49)
        Me.ResumeLayout(False)

    End Sub

#End Region

    Property Value() As Integer
        Get
            Return Bar.Value
        End Get
        Set(ByVal Value As Integer)
            Bar.Value = Value
            UpdateLabel()
        End Set
    End Property

    Property Maximum() As Integer
        Get
            Return Bar.Maximum
        End Get
        Set(ByVal Value As Integer)
            Bar.Maximum = Value
        End Set
    End Property

    Property [Step]() As Integer
        Get
            Return Bar.Step
        End Get
        Set(ByVal Value As Integer)
            Bar.Step = Value
        End Set
    End Property

    Public Sub PerformStep()
        Bar.PerformStep()
        UpdateLabel()
    End Sub

    Private Sub UpdateLabel()
        lblProgress.Text = ((Bar.Value * 100) \ Bar.Maximum).ToString() & "% Done"
    End Sub

setelah selesai kita akan panggil dalam WinForm. Buat sebuah Form dengan nama FrmBar. Masukkan Timer beri nama tmrIncrementBar. masukkan juga User Control yang sudah dibuat ProgressBar kedalam Form. Dalam Propertis Form ubah Control Box menjadi False, Form Border Style -->FixedToolWindow. Skema UI nya akan seperti gambar dibawah ini :








ketik list prog sbb :

Private Sub LoadProgressBar()
        status.Visible = True

        tmrIncrementBar.Enabled = False

        status.Value = 0
        status.Maximum = 100
        status.Step = 1

        tmrIncrementBar.Enabled = True
End Sub

Private Sub tmrIncrementBar_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrIncrementBar.Tick
        Dim sJum As Double

        sJum = status.Value

        status.PerformStep()
        If status.Value = 10 Then
            Call ---Prosedur 1
        ElseIf status.Value = 30 Then
            Call ---Prosedur 2
        ElseIf status.Value = 50 Then
            Call ---Prosedur 3
        ElseIf status.Value = 70 Then
            Call ---Prosedur 4
        ElseIf status.Value = 90 Then
            Call ---Prosedur 5
        ElseIf status.Value = status.Maximum Then
            tmrIncrementBar.Enabled = False
            status.Visible = False
            Close()
        End If
End Sub

dalam load form panggil prosedur LoadProgressBar
     call LoadProgressBar()


demikian pembuatan User Control Progress Bar. Silahkan untuk mencobanya...

Kamis, 25 Oktober 2012

Menggunakan Perintah Pengulangan FOR EACH di VB.NET

Dalam pemrograman sering kali kita melakukan perintah yang berulang terutama ketika kita menggunakan data yang tersimpan dalam Grid atau pun menyimpan ke grid. Untuk itu bisa digunakan perintah berulang, salah satunya adalah perintah FOR EACH LOOP.

Perintah ini biasanya digunakan untuk mengerjakan perintah item dalam suatu grup. Konsep perintah pengualangannya adalah sebagai berikut :


For Each [Item] In [Group]
   [loopBody]
Next [Item]


contoh list programnya adalah sebagai berikut :

      For Each brs As DataGridViewRow In dgJournal.Rows
            GetPosting(brs.Cells(6).Value, brs.Cells(12).Value)
            brs.Cells(14).Value = gCek
            dgJournal.Update()
      Next


brs = item data gridview merupakan variabel
dgjournal = Nama Grid

demikian pembahasan looping dengan perintah FOR EACH LOOP.

Rabu, 24 Oktober 2012

Cara menggunakan IF..ELSE..END IF

Kondisional Pernyataan IF..ELSE digunakan untuk memeriksa kondisi yang diberikan dan membuat keputusan berdasarkan kondisi itu sendiri. Biasanya menggunakan Operator Perbandingan dan Operator Logis.
Konsep pernyataannya adalah sebagai berikut :
 
    If [your condition here]
       Your code here
    Else
       Your code Here
    End If

Jika kondisi bernilai TRUE maka, sistem akan mengambil keputusan diantara IF dan Else. Dan Apabila bernilai FALSE maka, sistem akan mengambil keputusan diantara Else dan End IF.

Bagaimana jika banyak kondisi yang diinginkan ? Jika lebih dari satu kondisi maka bisa digunakan ElseIf.


    If [your condition here]
       Your code here
    ElseIf [your condition here]
       Your code here
    ElseIf [your condition here]
       Your code here
    Else
       Your code Here
    End If 


sebagai contoh misalkan pemberian nilai terhadap siswa dengan aturan atau asumsi sebagai berikut :
  1. Jika nilai lebih dari atau sama dengan 80 maka siswa mendapat nilai A.
  2. Jika nilai lebih dari atau sama dengan 70 maka siswa mendapat nilai B.
  3. Jika nilai lebih dari atau sama dengan 60 maka siswa mendapat nilai C.
  4. Jika nilai lebih dari atau sama dengan 50 maka siswa mendapat nilai D.
  5. Jika nilai lebih dari atau sama dengan 0 maka siswa mendapat nilai E.
maka penulisan List Program adalah sbb :
 
    1. If Nilai >= 80 Then
    2.     MsgBox("Siswa Mendapat Nilai A")
    3. ElseIf Nilai >= 70 Then
    4.     MsgBox("Siswa Mendapat Nilai B")
    5. ElseIf Nilai >= 60 Then
    6.     MsgBox("Siswa Mendapat Nilai C")
    7. ElseIf Nilai >= 50 Then
    8.     MsgBox("Siswa Mendapat Nilai D")
    9. ElseIf Nilai >= 0 Then 
   10.     MsgBox("Siswa Mendapat Nilai E")
   11. Else
   12.     MsgBox("Tidak Terdefinisi")
   13. End If

 demikian pembahasan pernyataan kondisional IF..ELSE..ENDIF. Semoga bermanfaat



Selasa, 23 Oktober 2012

TextBox AutoComplete dengan Database sebagai Data Source

Proses AutoComplete di TextBox lebih mirip ketika kita mengetikan kata di google, maka akan keluar kata yang menyerupai kata yang diketik secara otomatis. Proses ini dengan tujuan untuk mempermudah user dalam memilih/mencari kata yang dicarinya. Langsung saja kita bahas listing Programnya..

1. buat sebuah TextBox di dalam Form dan kita beri nama txtNama.



2. di Property box ubah AutocompleteMode -- > SuggestAppend dan AotuCompleteSource --> CustomeSource



3. Buat Prosedure :
     
    Private Sub ProcACText()
        Dim ds As DataSet = New DataSet()
        Dim SQL As String
        Dim authors As New AutoCompleteStringCollection

        SQL = "select Fullname from Person where RecordKey between 2042470 and 2045000 order by Fullname"

        CheckConnection() 'Prosedure Koneksi silahkan buat sendiri        

        Dim SqlDbDataAdapter As System.Data.SqlClient.SqlDataAdapter = New System.Data.SqlClient.SqlDataAdapter(SQL, SQLConn)
        SqlDbDataAdapter.Fill(ds, "Person")
        Dim dvManager As DataViewManager = New DataViewManager(ds)
        Dim dv As DataView = dvManager.CreateDataView(ds.Tables("Person"))

        For Each dRow In ds.Tables(0).Rows
            txtNama.AutoCompleteCustomSource.Add(dRow("Fullname").ToString)
        Next
    End Sub


4. Panggil Prosedure di Load Form


Private Sub FrmAutocompleteTextBox_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Call ProcACText()
    End Sub

5. Running Program Hasilnya akan terlihat seperti Gambar dibawah ini :



Selamat Mencoba !!