Jumat, 24 April 2015

membuat background dinamis



 Salah satu daya tarik aplikasi adalah adanya background yang menarik user. Sering kali hanya karena background (gambar) harga aplikasi menjadi lebih mahal dari kondisi yang seharusnya. Adapun langkah - langkah membuatnya adalah sebagai berikut :

  1. Buatlah sebuah project baru
  2. Tambahkan form baru dan ganti namanya menjadi FrmMenu
  3. Ubah properti windowstate FrmMenu menjadi maximized
  4. Tambahkan sebuah button dan ubah text-nya menjadi "Ganti Background"
  5. Ubah properti doc pada button menjadi TOP
  6. Tambahkan sebuah picturebox ke dalam FrmMenu
  7. Ubah properti doc menjadi FILL
  8. Tambahkan komponen OpenFileDialog
  9. Lakukan double clik pada button
  10. Lalu ketik coding di bawah ini :
Public ClassForm1

    Private SubButton1_Click(ByVal sender As System.Object, ByVale As System.EventArgs) HandlesButton1.Click
        OpenFileDialog1.ShowDialog()
        PictureBox1.Load(OpenFileDialog1.FileName)
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    End Sub
End Class

hasilnya terlihat pada gambar dibawah ini :








Selasa, 14 April 2015

membuat angka terbilang dengan vb.net



Salah satu fungsi angka terbilang yang sering kita temukan adalah dalam penulisan kwitansi, misal 1.000.000,- ditulis dengan kalimat "Satu Juta Rupiah". Pada kesempatan kali ini saya akan membahas bagaimana cara membuat angka terbilang dengan menggunakan vb.net.


  1. Buatlah sebuah project baru
  2. Buatlah sebuah form dengan bentuk sebagai berikut



Ketiklah atau copy coding dibawah ini :

ImportsSystem.Data.OleDb

Public Class Form1

    Public conn AsOleDbConnection
    Public cmd AsOleDbCommand
    Public dr AsOleDbDataReader

    Public Sub Koneksi()
        conn = New OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=dbterbilang.accdb")
        conn.Open()
    End Sub

    Public FunctionTerbilang(ByVal nilai AsLong) As String
        Dim bilangan As String() = {"", "Satu", "Dua", "Tiga", "Empat", "Lima", _
        "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"}
        If nilai < 12 Then
            Return " "& bilangan(nilai)
        ElseIf nilai < 20 Then
            Return Terbilang(nilai - 10) & " Belas"
        ElseIf nilai < 100 Then
            Return (Terbilang(CInt((nilai \ 10))) & " Puluh") + Terbilang(nilai Mod 10)
        ElseIf nilai < 200 Then
            Return " Seratus" & Terbilang(nilai - 100)
        ElseIf nilai < 1000 Then
            Return (Terbilang(CInt((nilai \ 100))) & " Ratus") + Terbilang(nilai Mod 100)
        ElseIf nilai < 2000 Then
            Return " Seribu" & Terbilang(nilai - 1000)
        ElseIf nilai < 1000000 Then
            Return (Terbilang(CInt((nilai \ 1000))) & " Ribu") + Terbilang(nilai Mod 1000)
        ElseIf nilai < 1000000000 Then
            Return (Terbilang(CInt((nilai \ 1000000))) & " Juta") + Terbilang(nilai Mod 1000000)
        ElseIf nilai < 1000000000000 Then
            Return (Terbilang(CInt((nilai \ 1000000000))) & " Milyar") + Terbilang(nilai Mod 1000000000)
        ElseIf nilai < 1000000000000000 Then
            Return (Terbilang(CInt((nilai \ 1000000000000))) & " Trilyun") + Terbilang(nilai Mod 1000000000000)
        Else
            Return ""
        End If
    End Function

    Private SubTextBox1_KeyPress(ByVal sender As Object, ByVal e AsSystem.Windows.Forms.KeyPressEventArgs) HandlesTextBox1.KeyPress
        On Error Resume Next
        If e.KeyChar = Chr(13) Then
            TextBox2.Text = Terbilang(TextBox1.Text)
            TextBox1.Text = FormatNumber(TextBox1.Text, 0)
            Button1.Focus()
        End If
    End Sub

    Private SubButton1_Click(ByVal sender As System.Object, ByVale As System.EventArgs) HandlesButton1.Click
        Try
            Call Koneksi()
            cmd = New OleDbCommand("insert into table1 values ('" & TextBox1.Text & "','" & TextBox2.Text & "')", conn)
            cmd.ExecuteNonQuery()
            TextBox1.Clear()
            TextBox2.Clear()
            TextBox1.Focus()
        Catch ex As Exception
            MsgBox(ex.Message)
            TextBox1.Focus()
        End Try
    End Sub
End Class

menampilkan kalender dalam datagridview vb.net



Seringkali kita membutuhkan data tanggal sejenis datetimepicker dalam sebuah datagridview. Untuk itu marilah kita coba membuatnya dengan langkah-langkah sebagai berikut :

1.      Buatlah sebuah project baru
2.      Buatlah sebuah form dan tambahkan sebuah datagridview


3.      Lalu ketiklah atau copy coding di bawah ini :

ImportsSystem.Data.OleDb
ImportsSystem
ImportsSystem.Windows.Forms

Public Class Form1

    Sub KolomBaru()
        Dim ColumnName1, ColumnName2 AsNew CalendarColumn()
        DGV.Columns.Add("KodeKamar", "Kode Kamar")
        ColumnName1.HeaderText = "Tgl Masuk"
        DGV.Columns.Add(ColumnName1)
        ColumnName2.HeaderText = "Tgl Keluar"
        DGV.Columns.Add(ColumnName2)
    End Sub

    Private SubForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
        Call KolomBaru()
    End Sub

    Public ClassCalendarColumn
        Inherits DataGridViewColumn

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

        Public Overrides Property CellTemplate() AsDataGridViewCell
            Get
                Return MyBase.CellTemplate
            End Get
            Set(ByVal value As DataGridViewCell)
                If (value IsNot Nothing) AndAlso Not value.GetType().IsAssignableFrom(GetType(CalendarCell)) Then
                    Throw NewInvalidCastException("Must be a CalendarCell")
                End If
                MyBase.CellTemplate = value
            End Set
        End Property
    End Class

    Public ClassCalendarCell
        Inherits DataGridViewTextBoxCell

        Public Sub New()
            Me.Style.Format = "d"
        End Sub

        Public Overrides Sub InitializeEditingControl(ByValrowIndex As Integer, ByVal initialFormattedValue As Object, ByVal dataGridViewCellStyle AsDataGridViewCellStyle)
            On Error Resume Next
            MyBase.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle)
            Dim ctl AsCalendarEditingControl = CType(DataGridView.EditingControl, CalendarEditingControl)
            If (Me.Value Is Nothing) Then
                ctl.Value = CType(Me.DefaultNewRowValue, DateTime)
            Else
                ctl.Value = CType(Me.Value, DateTime)
            End If
        End Sub

        Public Overrides ReadOnly PropertyEditType() As Type
            Get
                Return GetType(CalendarEditingControl)
            End Get
        End Property

        Public Overrides ReadOnly PropertyValueType() As Type
            Get
                Return GetType(DateTime)
            End Get
        End Property

        Public Overrides ReadOnly PropertyDefaultNewRowValue() As Object
            Get
                Return DateTime.Now
            End Get
        End Property
    End Class

    Public ClassCalendarEditingControl
        Inherits DateTimePicker
        Implements IDataGridViewEditingControl

        Private dataGridViewControl AsDataGridView
        Private valueIsChanged AsBoolean = False
        Private rowIndexNum AsInteger

        Public Sub New()
            Me.Format = DateTimePickerFormat.Short
        End Sub

        Public PropertyEditingControlFormattedValue() As Object ImplementsIDataGridViewEditingControl.EditingControlFormattedValue
            Get
                Return Me.Value.ToShortDateString()
            End Get
            Set(ByVal value As Object)
                Try
                    Me.Value = DateTime.Parse(CStr(value))
                Catch
                    Me.Value = DateTime.Now
                End Try
            End Set
        End Property

        Public FunctionGetEditingControlFormattedValue(ByVal context As DataGridViewDataErrorContexts) As Object _
            Implements IDataGridViewEditingControl.GetEditingControlFormattedValue
            Return Me.Value.ToShortDateString()
        End Function

        Public SubApplyCellStyleToEditingControl(ByValdataGridViewCellStyle As DataGridViewCellStyle) ImplementsIDataGridViewEditingControl.ApplyCellStyleToEditingControl
            Me.Font = dataGridViewCellStyle.Font
            Me.CalendarForeColor = dataGridViewCellStyle.ForeColor
            Me.CalendarMonthBackground = dataGridViewCellStyle.BackColor
        End Sub

        Public PropertyEditingControlRowIndex() As Integer ImplementsIDataGridViewEditingControl.EditingControlRowIndex
            Get
                Return rowIndexNum
            End Get
            Set(ByVal value As Integer)
                rowIndexNum = value
            End Set
        End Property

        Public FunctionEditingControlWantsInputKey(ByVal key As Keys, ByValdataGridViewWantsInputKey As Boolean) As Boolean ImplementsIDataGridViewEditingControl.EditingControlWantsInputKey
            Select Case key And Keys.KeyCode
                Case Keys.Left, Keys.Up, Keys.Down, Keys.Right, _
                    Keys.Home, Keys.End, Keys.PageDown, Keys.PageUp
                    Return True
                Case Else
                    Return NotdataGridViewWantsInputKey
            End Select
        End Function

        Public SubPrepareEditingControlForEdit(ByVal selectAll As Boolean) ImplementsIDataGridViewEditingControl.PrepareEditingControlForEdit

        End Sub

        Public ReadOnly Property RepositionEditingControlOnValueChange() As Boolean ImplementsIDataGridViewEditingControl.RepositionEditingControlOnValueChange
            Get
                Return False
            End Get
        End Property

        Public PropertyEditingControlDataGridView() As DataGridView ImplementsIDataGridViewEditingControl.EditingControlDataGridView
            Get
                Return dataGridViewControl
            End Get
            Set(ByVal value As DataGridView)
                dataGridViewControl = value
            End Set
        End Property

        Public PropertyEditingControlValueChanged() As Boolean ImplementsIDataGridViewEditingControl.EditingControlValueChanged
            Get
                Return valueIsChanged
            End Get
            Set(ByVal value As Boolean)
                valueIsChanged = value
            End Set
        End Property

        Public ReadOnly Property EditingControlCursor() As Cursor ImplementsIDataGridViewEditingControl.EditingPanelCursor
            Get
                Return MyBase.Cursor
            End Get
        End Property

        Protected Overrides Sub OnValueChanged(ByValeventargs As EventArgs)
            valueIsChanged = True
            Me.EditingControlDataGridView.NotifyCurrentCellDirty(True)
            MyBase.OnValueChanged(eventargs)
        End Sub
    End Class
End Class

Hasil akhir dari coding tersebut adalah sebagai berikut :