Aplikasi Pembelian Dan Penjualan Secara Tunai Dan Kredit Plus Jurnal Akuntansi

 

Dalam bab ini akan dijelaskan tentang aplikasi pembelian dan penjualan secara tunai dan kredit disertai dengan jurnal akuntansinya. Aplikasi ini dapat diunduh pada tautan berikut ini.

Adapun langkah-langkah pembuatannya adalah sebagai berikut:

3.1  Membuat Project Baru

Langkah pertama yang harus dilakukan dalam pembuatan aplikasi ini adalah membuat project baru. Caranya adalah sebagai berikut :

1.              Buka Microsoft Visual Studio 2008 (silakan gunakan versi yang anda miliki)

2.              Pilih Create Project

Gambar 3.1 Membuat project baru

3.2  Memberi Nama Project

Setelah membuat project baru, langkah selanjutnya adalah memberi nama project.

1.              Ketik nama project, contoh "Aplikasi Jual Beli"

2.              Klik OK

Gambar 3.2 Memberi nama project

3.              Selanjutnya klik menu file

4.              Pilih Save All

Gambar 3.3 Menetukan folder project

5.              Tentukan direktori project

6.              Klik Browse

7.              Klik save

3.3  Membuat Database Dan Tabel

Setelah direktori project terbentuk, langkah berikutnya adalah membuat database disimpan di folder debug. Lakukanlah langkah-langkah berikut ini:

1.              Buka Microsoft Office 2003

2.              Pilih Microsoft Access 2003

3.              Klik Create New File

4.              Pilih Blank Database

5.              tulis nama database misal "dbjualbeli". Pastikan posisi foldernya debug.

Gambar 3.4 Memberi nama database

6.              Klik Create

7.              Klik dua kali Create Table In design View

8.              Kemudian buatlah tabel-tabel seperti gambar berikut ini.

Gambar 3.5 Tabel-tabel dalam aplikasi

Catatan :

Tabel-tabel ini sudah tersedia dalam aplikasi dan dapat anda unduh pada tautan yang akan kami jelaskan di halaman berikutnya. Dalam tabel-tabel master sudah tersedia contoh data yang dapat anda edit sesuai kebutuhan.

3.4  Membuat Module Koneksi

Setelah membuat tabel-tabel yang diperlukan, langkah berikutnya adalah membuat module koneksi ke database, caranya adalah sebagai berikut :

1.       Klik Menu Project

2.       Pilih Add Module

3.       Klik Add

Gambar 3.6 Membuat module

4.       Kemudian ketik koding berikut ini

Imports System.Data.OleDb

Imports CrystalDecisions.CrystalReports.Engine

Imports CrystalDecisions.Shared

 

Module Module1

 

    Public Conn As OleDbConnection

    Public DA As OleDbDataAdapter

    Public DS As DataSet

    Public CMD As OleDbCommand

    Public DR As OleDbDataReader

 

    Public cryRpt As New ReportDocument

    Public crtableLogoninfos As New TableLogOnInfos

    Public crtableLogoninfo As New TableLogOnInfo

    Public crConnectionInfo As New ConnectionInfo

    Public CrTables As Tables

 

    Public Sub seting_laporan()

        With crConnectionInfo

            .ServerName = (Application.StartupPath.ToString & "\DBJualBeli.mdb")

            .DatabaseName = (Application.StartupPath.ToString & "\DBJualBeli.mdb")

            .UserID = ""

            .Password = ""

        End With

 

        CrTables = cryRpt.Database.Tables

        For Each CrTable In CrTables

            crtableLogoninfo = CrTable.LogOnInfo

            crtableLogoninfo.ConnectionInfo = crConnectionInfo

            CrTable.ApplyLogOnInfo(crtableLogoninfo)

        Next

    End Sub

 

    Public Sub Koneksi()

 

        Conn = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=DBJualBeli.mdb")

        Conn.Open()

       

    End Sub

End Module

 

 

Catatan :

Jika anda menggunakan database access 2007 atau 2010, maka string koneksi diubah menjadi sebagai berikut:

            Conn = New OleDbConnection("provider=microsoft.ACE.oledb.12.0;data source=DBJualBeli.accdb")

 

Jika program mengalami error karena OS anda 64 bit, maka ubahlah setingnya sebagai berikut :

1.       Klik Menu Project > Aplikasi Jual Beli properties...

2.       Compile > Advance Compile Option

3.       Ubah taget CPU menjadi x86 (32 bit) seperti gambar di bawah ini.

Gambar 3.7 Mengubah target CPU menjadi 32 bit

3.5  Form Login

Setelah membuat module koneksi ke database, langkah berikutnya adalah membuat form login dengan bentuk seperti gambar di bawah ini.

Gambar 3.8  Form login

Setelah itu ketiklah koding berikut ini.

 

Imports System.Data.OleDb

 

Public Class Login

 

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXTnama.KeyPress

        If e.KeyChar = Chr(13) Then TXTPassword.Focus()

    End Sub

 

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXTPassword.KeyPress

        If e.KeyChar = Chr(13) Then BTNLogin.Focus()

    End Sub

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNLogin.Click

 

        Call Koneksi()

        CMD = New OleDbCommand("select * from tbluser where nama_User= '" & TXTnama.Text & "' and pwd_user='" & TXTPassword.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

 

        If DR.HasRows Then

'jika nama dan password tidak cocok huruf besar kecilnya maka login dinyatakan gagal

 

            If TXTnama.Text <> DR.Item("nama_user") And TXTPassword.Text <> DR.Item("Pwd_user") Then

                MsgBox("Login Gagal")

                TXTnama.Clear()

                TXTPassword.Clear()

                TXTnama.Focus()

                Exit Sub

            Else

                Me.Visible = False

                MenuUtama.Show()

                MenuUtama.Panel1.Text = DR.Item("Kode_user")

                MenuUtama.Panel2.Text = DR.Item("nama_User")

                MenuUtama.Panel3.Text = UCase(DR.Item("status_user"))

                If MenuUtama.Panel3.Text <> "ADMIN" Then

                    MenuUtama.btnuser.Visible = False

                Else

                    MenuUtama.btnuser.Visible = True

                End If

            End If

        Else

            MsgBox("Login Gagal")

            TXTnama.Clear()

            TXTPassword.Clear()

            TXTnama.Focus()

        End If

    End Sub

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNKeluar.Click

        End

    End Sub

End Class

3.6  Form Menu Utama

Setelah membuat form login berikut codingnya, selanjutnya adalah membuat menu utama dengan bentuk tampilan sebagai berikut.

Gambar 3.9 Menu utama aplikasi

Menu utama ini dibuat menggunakan TabControl, adapaun cara pembuatannya dapat anda lihat video tutorialnya di website www.konsultasivb.com.

3.7  Form User

Form user digunakan untuk mengentri data user atau pamakai aplikasi, bentuk form user dapat dilihat pada gambar di bawah ini.

Gambar 3.10 Form user

Setelah membuat form user, langkah berikutnya adalah membuat codingnya yang dapat anda lihat pada bagian dibawah ini.

Imports System.Data.OleDb

 

Public Class MasterUser

 

    Sub Kosongkan()

        txtkodeuser.Clear()

        txtnamauser.Clear()

        cbostatus.Text = ""

        txtpassword.Clear()

        txtcaridata.Clear()

        txtkodeuser.Focus()

        Call TampilStatus_user()

        Call TampilGrid()

    End Sub

 

    Sub DataBaru()

        txtnamauser.Clear()

        cbostatus.Text = ""

        txtpassword.Clear()

        txtcaridata.Clear()

        txtnamauser.Focus()

    End Sub

 

    Sub Ketemu()

        txtnamauser.Text = DR.Item("nama_User")

        txtpassword.Text = DR.Item("pwd_User")

        cbostatus.Text = DR.Item("Status_user")

        txtnamauser.Focus()

    End Sub

 

    Sub TampilGrid()

        DA = New OleDbDataAdapter("select * from tblUser", CONN)

        DS = New DataSet

        DA.Fill(DS)

        DGV.DataSource = DS.Tables(0)

        DGV.ReadOnly = True

    End Sub

 

    Sub TampilStatus_user()

        CMD = New OleDbCommand("select distinct Status_user from tblUser", CONN)

        DR = CMD.ExecuteReader

        cbostatus.Items.Clear()

        Do While DR.Read

            cbostatus.Items.Add(DR.Item("Status_user"))

        Loop

    End Sub

 

    Private Sub MasterUser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.StartPosition = FormStartPosition.CenterScreen

        Call Koneksi()

        Call Kosongkan()

    End Sub

 

    Private Sub combobox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cbostatus.KeyPress

        If ((e.KeyChar >= "0" And e.KeyChar <= "9") And e.KeyChar <> vbBack) Then e.Handled = True

    End Sub

 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbatal.Click

        Call Kosongkan()

    End Sub

 

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntutup.Click

        Me.Close()

    End Sub

 

    Private Sub ComboBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbostatus.LostFocus

        cbostatus.Text = UCase(cbostatus.Text)

    End Sub

 

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.Click

        CMD = New OleDbCommand("select * from tblUser where kode_User='" & txtkodeuser.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        Try

            If Not DR.HasRows Then

                Dim simpan As String = "insert into tblUser values ('" & txtkodeuser.Text & "','" & txtnamauser.Text & "','" & txtpassword.Text & "','" & cbostatus.Text & "')"

                CMD = New OleDbCommand(simpan, CONN)

                CMD.ExecuteNonQuery()

            Else

                Dim edit As String = "update tblUser set nama_User='" & txtnamauser.Text & "',Status_user='" & cbostatus.Text & "',pwd_User='" & txtpassword.Text & "' where kode_User='" & txtkodeuser.Text & "'"

                CMD = New OleDbCommand(edit, CONN)

                CMD.ExecuteNonQuery()

            End If

        Catch ex As Exception

            MsgBox(ex.Message)

        End Try

        Call Kosongkan()

    End Sub

 

 

    Private Sub DGV_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.CellMouseClick

        On Error Resume Next

        txtkodeuser.Text = DGV.Rows(e.RowIndex).Cells(0).Value

        txtnamauser.Text = DGV.Rows(e.RowIndex).Cells(1).Value

        txtpassword.Text = DGV.Rows(e.RowIndex).Cells(2).Value

        cbostatus.Text = DGV.Rows(e.RowIndex).Cells(3).Value

    End Sub

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnhapus.Click

        If txtkodeuser.Text = "" Then

            MsgBox("Kode User harus diisi")

            txtkodeuser.Focus()

            Exit Sub

        End If

        If MessageBox.Show("yakin akan dihapus..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then

            Dim hapus As String = "delete * from tblUser where kode_User='" & txtkodeuser.Text & "'"

            CMD = New OleDbCommand(hapus, CONN)

            CMD.ExecuteNonQuery()

            Call Kosongkan()

        Else

            Call Kosongkan()

        End If

    End Sub

 

    Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtkodeuser.LostFocus

        CMD = New OleDbCommand("select * from tblUser where kode_User='" & txtkodeuser.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If Not DR.HasRows Then

            Call DataBaru()

        Else

            Call Ketemu()

        End If

    End Sub

 

 

    Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcaridata.TextChanged

        DA = New OleDbDataAdapter("select * from tblUser where nama_User like '%" & txtcaridata.Text & "%'", CONN)

        DS = New DataSet

        DA.Fill(DS)

        DGV.DataSource = DS.Tables(0)

    End Sub

 

End Class

 

3.8  Form Barang

Setelah membuat form user, langkah berikutnya adalah membuat form barang berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.11 Form barang

3.9  Form Perkiraan

Setelah membuat form barang, langkah berikutnya adalah membuat form perkiraan berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.12 Form perkiraan

3.10  Form Supplier

Setelah membuat form perkiraan, langkah berikutnya adalah membuat form supplier berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.14 Form supplier

3.11  From Customer

Setelah membuat form supplier, langkah berikutnya adalah membuat form customer berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.15 Form supplier

3.12  Form Profil Perusahaan

Setelah membuat form customer, langkah berikutnya adalah membuat form profile perusahaan berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.16 Form profil perusahaan

3.13  Transaksi Pembelian

Setelah membuat form profile perusahaan, langkah berikutnya adalah membuat form pembelian berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.17 Form transaksi pembelian

Proses dalam transaksi pembelian adalah sebagai berikut :

1.       Mengisi nomor nota pembelian

2.       Memilih supplier

3.       Memilih barang yang dibeli dari grid sebelah kanan

4.       Mengisi jumlah barang yang dibeli

5.       Mengisi jumlah pembayaran, jika jumlah pembayaran lebih kecil dari total harga maka akan dinyatakan pembelian kredit, jika jumlah bayar lebih besar dari total harga maka akan dinyatakan pembelian tunai

6.       Jika pembelian secara kredit maka isilah jumlah hari jatuh temponya

7.       Klik simpan

Adapun codingnya seperti terlihat pada listing program di bawah ini.

Imports System.Data.OleDb

Public Class TransaksiPembelian

 

    Sub TampilSupplier()

        CMD = New OleDbCommand("Select * from tblsupplier", Conn)

        DR = CMD.ExecuteReader

        cbosupplier.Items.Clear()

        Do While DR.Read

            cbosupplier.Items.Add(DR.Item("nama_supplier"))

        Loop

    End Sub

 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntutup.Click

        Me.Close()

    End Sub

 

    Sub TampilBarang()

        DA = New OleDbDataAdapter("select * from tblbarang where stok>0", Conn)

        DS = New DataSet

        DA.Fill(DS)

        DGVBarang.DataSource = DS.Tables(0)

        DGVBarang.ReadOnly = True

        DGVBarang.Columns(2).Visible = False

        DGVBarang.Columns(3).Visible = False

        DGVBarang.Columns(4).Visible = False

        DGVBarang.Columns(5).Visible = False

        DGVBarang.Columns(6).Visible = False

    End Sub

 

    Private Sub TransaksiPembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Call Koneksi()

        Call TampilSupplier()

        Call TampilBarang()

    End Sub

 

 

    Private Sub DGVBarang_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGVBarang.CellMouseClick

        Dim baris As Integer = DGV.RowCount - 1

 

        DGV.Rows.Add(DGVBarang.Rows(e.RowIndex).Cells(0).Value, DGVBarang.Rows(e.RowIndex).Cells(1).Value, DGVBarang.Rows(e.RowIndex).Cells(4).Value, 1)

 

        TextBox1.Clear()

        DGV.Rows(baris).Cells(4).Value = DGV.Rows(baris).Cells(2).Value * DGV.Rows(baris).Cells(3).Value

        Call Hitungtransaksi()

 

        For barisatas As Integer = 0 To DGV.RowCount - 1

            For barisbawah As Integer = barisatas + 1 To DGV.RowCount - 1

                If DGV.Rows(barisbawah).Cells(0).Value = DGV.Rows(barisatas).Cells(0).Value Then

                    DGV.Rows(barisatas).Cells(3).Value = DGV.Rows(barisatas).Cells(3).Value + 1

                    DGV.Rows(barisatas).Cells(4).Value = DGV.Rows(barisatas).Cells(2).Value * DGV.Rows(barisatas).Cells(3).Value

                    DGV.Rows.RemoveAt(barisbawah)

                    Call Hitungtransaksi()

                    Exit Sub

                End If

            Next

        Next

    End Sub

 

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

        DA = New OleDbDataAdapter("select * from tblbarang where nama_barang like '%" & TextBox1.Text & "%' and stok>0", Conn)

        DS = New DataSet

        DA.Fill(DS)

        DGVBarang.DataSource = DS.Tables(0)

        DGVBarang.ReadOnly = True

        DGVBarang.Columns(2).Visible = False

        DGVBarang.Columns(3).Visible = False

        DGVBarang.Columns(4).Visible = False

        DGVBarang.Columns(5).Visible = False

        DGVBarang.Columns(6).Visible = False

    End Sub

 

    Sub Hitungtransaksi()

        Dim x As Integer = 0

        For baris As Integer = 0 To DGV.RowCount - 1

            x = x + DGV.Rows(baris).Cells(3).Value

            lbljumlahbarang.Text = x

        Next

 

        Dim y As Integer = 0

        For baris As Integer = 0 To DGV.RowCount - 1

            y = y + DGV.Rows(baris).Cells(4).Value

            lbltotalharga.Text = y

        Next

 

    End Sub

 

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtdibayar.KeyPress

        If e.KeyChar = Chr(13) Then

            If Val(txtdibayar.Text) >= Val(lbltotalharga.Text) Then

                lblcarabeli.Text = "TUNAI"

                lblsisahutang.Text = 0

                txttempo.Text = 0

                txttempo.Enabled = False

                lbljatuhtempo.Text = dtptanggal.Text

                lblstatusbeli.Text = "LUNAS"

                btnsimpan.Focus()

            Else

                lblcarabeli.Text = "KREDIT"

                lblsisahutang.Text = Val(lbltotalharga.Text) - Val(txtdibayar.Text)

                lblstatusbeli.Text = "BELUM LUNAS"

                txttempo.Enabled = True

                txttempo.Focus()

            End If

        End If

        If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled = True

    End Sub

 

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txttempo.KeyPress

        If e.KeyChar = Chr(13) Then

            Dim tambahhari As Integer = txttempo.Text

            lbljatuhtempo.Text = DateAdd(DateInterval.Day, tambahhari, Today)

            btnsimpan.Focus()

        End If

        If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled = True

    End Sub

 

    Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress

        On Error Resume Next

        If e.KeyChar = Chr(27) Then

            DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)

            Call Hitungtransaksi()

        End If

 

        If e.KeyChar = Chr(13) Then

            txtdibayar.Focus()

        End If

    End Sub

 

    Sub kOSONGKAN()

        cbosupplier.Text = ""

        lbljumlahbarang.Text = ""

        lbltotalharga.Text = ""

        lblcarabeli.Text = ""

        lblsisahutang.Text = ""

        lbljatuhtempo.Text = ""

        lblstatusbeli.Text = ""

        lblkodesupplier.Text = ""

        txtdibayar.Text = ""

        txttempo.Text = ""

    End Sub

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbatal.Click

        Call kOSONGKAN()

        DGV.Rows.Clear()

        DGV.Enabled = False

    End Sub

 

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbosupplier.SelectedIndexChanged

        If cbosupplier.Text = "" Then

            DGVBarang.Enabled = False

            DGV.Enabled = False

        Else

            DGVBarang.Enabled = True

            DGV.Enabled = True

        End If

 

        CMD = New OleDbCommand("select * from tblSUPpLIER where NAMA_SUPPLIER='" & cbosupplier.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If DR.HasRows Then

            lblkodesupplier.Text = DR.Item("KODE_SUPPLIER")

        Else

            MsgBox("Kode Supplier tidak terdaftar")

        End If

    End Sub

 

   

 

    Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnofaktur.KeyPress

        If e.KeyChar = Chr(13) Then

            CMD = New OleDbCommand("select * from tblpembelian where faktur_beli='" & txtnofaktur.Text & "'", Conn)

            DR = CMD.ExecuteReader

            DR.Read()

            If DR.HasRows Then

                MsgBox("nomor transkasi sudah terdaftar")

                Exit Sub

            Else

                cbosupplier.Focus()

            End If

        End If

    End Sub

End Class

3.14  Retur Pembelian

Setelah membuat form pembelian, langkah berikutnya adalah membuat form retur pembelian berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.18 Form retur pembelian

proses dalam form retur pembelian adalah sebagai berikut.

1.       Pilih nomor faktur yang akan diretur

2.       Isi jumlah barang yang diretur

3.       Jumlah barang tidak boleh melebihi jumlah yang pernah dibeli sebelumnya

4.       Klik simpan

 

Adapun codingnya seperti terlihat pada listing program di bawah ini.

 

Imports System.Data.OleDb

Public Class TransaksiReturPembelian

 

    Sub NomorOtomatis()

        CMD = New OleDbCommand("select * from tblreturpembelian where No_Retur_beli in(select max(No_retur_beli) from tblreturpembelian)", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If Not DR.HasRows Then

            lblnomorretur.Text = "RB" + Format(Now, "yyMMdd") + "01"

        Else

            If Microsoft.VisualBasic.Mid(DR.Item("No_Retur_beli"), 3, 6) <> Format(Now, "yyMMdd") Then

                lblnomorretur.Text = "RB" + Format(Now, "yyMMdd") + "01"

            Else

                lblnomorretur.Text = Microsoft.VisualBasic.Right(DR.Item("No_Retur_beli"), 8) + 1

                lblnomorretur.Text = "RB" + lblnomorretur.Text

            End If

        End If

    End Sub

 

    Sub TampilFakturBeli()

        CMD = New OleDbCommand("Select * from tblpembelian", CONN)

        DR = CMD.ExecuteReader

        cbofakturbeli.Items.Clear()

        Do While DR.Read

            cbofakturbeli.Items.Add(DR.Item("Faktur_beli"))

        Loop

    End Sub

 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntutup.Click

        Me.Close()

    End Sub

 

 

    Private Sub TransaksiReturPembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Call Koneksi()

        Call NomorOtomatis()

        Call TampilFakturBeli()

    End Sub

 

    Sub ListRESPON()

        Dim cols As New DataGridViewComboBoxColumn

        cols.Items.Add("TUKAR BARANG")

        cols.Items.Add("KEMBALI UANG")

        DGV.Columns.Add(cols)

        cols.HeaderText = "Respon"

    End Sub

 

 

    Sub Hitungtransaksi()

        Dim x As Integer = 0

        For baris As Integer = 0 To DGV.RowCount - 1

            x = x + DGV.Rows(baris).Cells(3).Value

            lbljumlahretur.Text = x

        Next

    End Sub

 

    Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress

        On Error Resume Next

        If e.KeyChar = Chr(27) Then

            DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)

            Call Hitungtransaksi()

        End If

 

 

    End Sub

 

    Sub kOSONGKAN()

        cbofakturbeli.Text = ""

        lbljumlahretur.Text = ""

        lblcarabeli.Text = ""

        lblsisahutang.Text = ""

        lbljatuhtempo.Text = ""

        lblstatusbeli.Text = ""

        lblnamasupplier.Text = ""

        lbltanggalbeli.Text = ""

    End Sub

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbatal.Click

        Call kOSONGKAN()

        DGV.Columns.Clear()

    End Sub

 

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbofakturbeli.SelectedIndexChanged

        CMD = New OleDbCommand("select * from tblpembelian where faktur_beli='" & cbofakturbeli.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If DR.HasRows Then

            lblstatusbeli.Text = DR.Item("status_beli")

            lblcarabeli.Text = DR.Item("cara_beli")

            lblsisahutang.Text = DR.Item("sisa_hutang")

            lbljatuhtempo.Text = DR.Item("jth_tempo_beli")

            lbltanggalbeli.Text = DR.Item("tgl_beli")

            lbljumlahretur.Text = 0

        Else

            MsgBox("Nomor faktur tidak terdaftar")

        End If

 

        CMD = New OleDbCommand("select Nama_Supplier from tblsupplier,tblpembelian where tblpembelian.kode_supplier=tblsupplier.kode_supplier and faktur_beli='" & cbofakturbeli.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If DR.HasRows Then

            lblnamasupplier.Text = DR.Item("nama_supplier")

        Else

            MsgBox("Nomor faktur tidak terdaftar")

        End If

 

 

        DGV.Columns.Clear()

        DA = New OleDbDataAdapter("select TBLdetailBeli.Kode_barang as [Kode Barang],TblBarang.nama_Barang as [Nama Barang],Qty_beli as [Jml Beli] from tblpembelian,tbldetailbeli,tblbarang where tbldetailbeli.faktur_beli=tblpembelian.faktur_beli and tbldetailbeli.kode_barang=tblbarang.kode_barang and tbldetailbeli.faktur_beli= '" & cbofakturbeli.Text & "'", Conn)

        DS = New DataSet

        DA.Fill(DS)

        DGV.DataSource = DS.Tables(0)

        DGV.Columns(0).ReadOnly = True

        DGV.Columns(1).ReadOnly = True

        DGV.Columns(2).ReadOnly = True

 

        DGV.Columns(1).Width = 200

        DGV.Columns(2).Width = 75

 

        DGV.Columns.Add("QTY", "Jml Retur")

        DGV.Columns.Add("Alasan", "Alasan")

    End Sub

End Class

3.15  Transaksi Penjualan

Transaksi penjualan hampir mirip dengan transaksi pembelian, perbedaannya adalah transaksi pembelian akan menambah jumlah barang sedangkan transaksi penjualan akan mengurangi jumlah barang. Bentuk form penjualan berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.19 Form transaksi penjualan

Proses dalam transaksi penjualan adalah sebagai berikut.

1.       Pilih customer dalam combo

2.       Pilih barang yang dijual dalam grid sebelah kanan

3.       Jumlah jual dapat diedit sesuai kondisi

4.       Isilah jumlah bayar

5.       Jika jumlah bayar lebih kecil dari total harga, maka penjualannya dianggap secara kredit, kemudian isilah jumlah hari jatuh temponya

6.       Jika pembayaran lebih besar sama dengan total harga, maka penjualan dianggap tunai

7.       Setelah itu klik simpan

Adapun codingnya seperti terlihat pada listing program di bawah ini.

 

Imports System.Data.OleDb

 

Public Class TransaksiPenjualan

 

    Sub NomorOtomatis()

        CMD = New OleDbCommand("select * from tblPenjualan where Faktur_Jual in(select max(faktur_Jual) from tblPenjualan)", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If Not DR.HasRows Then

            lblnomrofaktur.Text = "FJ" + Format(Now, "yyMMdd") + "01"

        Else

            If Microsoft.VisualBasic.Mid(DR.Item("Faktur_Jual"), 3, 6) <> Format(Now, "yyMMdd") Then

                lblnomrofaktur.Text = "FJ" + Format(Now, "yyMMdd") + "01"

            Else

                lblnomrofaktur.Text = Microsoft.VisualBasic.Right(DR.Item("faktur_Jual"), 8) + 1

                lblnomrofaktur.Text = "FJ" + lblnomrofaktur.Text

            End If

        End If

    End Sub

 

    Sub TampilCustomer()

        CMD = New OleDbCommand("Select * from tblCustomer", CONN)

        DR = CMD.ExecuteReader

        cbocustomer.Items.Clear()

        Do While DR.Read

            cbocustomer.Items.Add(DR.Item("nama_Customer"))

        Loop

    End Sub

 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntutup.Click

        Me.Close()

    End Sub

 

 

    Sub TampilBarang()

        DA = New OleDbDataAdapter("select * from tblbarang where stok>0", Conn)

        DS = New DataSet

        DA.Fill(DS)

        DGVBarang.DataSource = DS.Tables(0)

        DGVBarang.ReadOnly = True

        DGVBarang.Columns(2).Visible = False

        DGVBarang.Columns(3).Visible = False

        DGVBarang.Columns(4).Visible = False

        DGVBarang.Columns(5).Visible = False

        DGVBarang.Columns(6).Visible = False

    End Sub

 

 

    Private Sub TransaksiPenjualan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Call Koneksi()

        Call NomorOtomatis()

        Call TampilCustomer()

        Call TampilBarang()

    End Sub

 

 

 

    Sub Hitungtransaksi()

        Dim x As Integer = 0

        For baris As Integer = 0 To DGV.RowCount - 1

            x = x + DGV.Rows(baris).Cells(3).Value

            lbljumlahbarang.Text = x

        Next

 

        Dim y As Integer = 0

        For baris As Integer = 0 To DGV.RowCount - 1

            y = y + DGV.Rows(baris).Cells(4).Value

            lbltotalharga.Text = y

        Next

 

    End Sub

 

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtdibayar.KeyPress

        If e.KeyChar = Chr(13) Then

            If Val(txtdibayar.Text) = Val(lbltotalharga.Text) Then

                lblcarajual.Text = "CASH"

                lblsisahutang.Text = 0

                txttempo.Text = 0

                lblkembali.Text = 0

                txttempo.Enabled = False

                lbljatuhtempo.Text = dtptanggal.Text

                lblstatusjual.Text = "LUNAS"

                btnsimpan.Focus()

            ElseIf Val(txtdibayar.Text) > Val(lbltotalharga.Text) Then

                lblcarajual.Text = "CASH"

                lblsisahutang.Text = 0

                txttempo.Text = 0

                lblkembali.Text = Val(txtdibayar.Text) - Val(lbltotalharga.Text)

                txttempo.Enabled = False

                lbljatuhtempo.Text = dtptanggal.Text

                lblstatusjual.Text = "LUNAS"

                btnsimpan.Focus()

            Else

                lblcarajual.Text = "CREDIT"

                lblsisahutang.Text = Val(lbltotalharga.Text) - Val(txtdibayar.Text)

                lblstatusjual.Text = "BELUM LUNAS"

                lblkembali.Text = 0

                txttempo.Enabled = True

                txttempo.Focus()

            End If

        End If

        If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled = True

    End Sub

 

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txttempo.KeyPress

        If e.KeyChar = Chr(13) Then

            Dim tambahhari As Integer = txttempo.Text

            lbljatuhtempo.Text = DateAdd(DateInterval.Day, tambahhari, Today)

            btnsimpan.Focus()

        End If

        If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled = True

    End Sub

 

    Sub kOSONGKAN()

        cbocustomer.Text = ""

        lbljumlahbarang.Text = ""

        lbltotalharga.Text = ""

        lblcarajual.Text = ""

        lblsisahutang.Text = ""

        lbljatuhtempo.Text = ""

        lblstatusjual.Text = ""

        lblkodecustomer.Text = ""

        lblkembali.Text = ""

        txtdibayar.Text = ""

        txttempo.Text = ""

    End Sub

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbatal.Click

        Call kOSONGKAN()

        DGV.Rows.Clear()

    End Sub

 

 

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbocustomer.SelectedIndexChanged

        CMD = New OleDbCommand("select * from tblCustomer where NAMA_Customer='" & cbocustomer.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If DR.HasRows Then

            lblkodecustomer.Text = DR.Item("KODE_Customer")

        Else

            MsgBox("Kode Customer tidak terdaftar")

        End If

    End Sub

 

    Private Sub DGVBarang_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGVBarang.CellMouseClick

        Dim baris As Integer = DGV.RowCount - 1

 

        DGV.Rows.Add(DGVBarang.Rows(e.RowIndex).Cells(0).Value, DGVBarang.Rows(e.RowIndex).Cells(1).Value, DGVBarang.Rows(e.RowIndex).Cells(4).Value, 1)

 

        TextBox1.Clear()

        DGV.Rows(baris).Cells(4).Value = DGV.Rows(baris).Cells(2).Value * DGV.Rows(baris).Cells(3).Value

        Call Hitungtransaksi()

        For barisatas As Integer = 0 To DGV.RowCount - 1

            For barisbawah As Integer = barisatas + 1 To DGV.RowCount - 1

                If DGV.Rows(barisbawah).Cells(0).Value = DGV.Rows(barisatas).Cells(0).Value Then

                    DGV.Rows(barisatas).Cells(3).Value = DGV.Rows(barisatas).Cells(3).Value + 1

                    DGV.Rows(barisatas).Cells(4).Value = DGV.Rows(barisatas).Cells(2).Value * DGV.Rows(barisatas).Cells(3).Value

                    DGV.Rows.RemoveAt(barisbawah)

                    Call Hitungtransaksi()

                    Exit Sub

                End If

            Next

        Next

    End Sub

 

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

        DA = New OleDbDataAdapter("select * from tblbarang where nama_barang like '%" & TextBox1.Text & "%' and stok>0", Conn)

        DS = New DataSet

        DA.Fill(DS)

        DGVBarang.DataSource = DS.Tables(0)

        DGVBarang.ReadOnly = True

        DGVBarang.Columns(2).Visible = False

        DGVBarang.Columns(3).Visible = False

        DGVBarang.Columns(4).Visible = False

        DGVBarang.Columns(5).Visible = False

        DGVBarang.Columns(6).Visible = False

 

    End Sub

 

  

    Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress

        On Error Resume Next

        If e.KeyChar = Chr(27) Then

            DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)

            Call Hitungtransaksi()

        End If

 

        If e.KeyChar = Chr(13) Then

            txtdibayar.Focus()

        End If

    End Sub

End Class

 

Adapun faktur transaksi penjualan terlihat pada gambar di bawah ini.

Gambar 3.20 Faktur Penjualan

3.16  Retur Penjualan

Setelah membuat form penjualan, langkah berikutnya adalah membuat form retur penjualan berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.21 Form retur penjualan

Proses dalam transaksi retur penjualan adalah sebagai berikut:

1.       Pilih nomor faktur dalam combo

2.       Isilah jumlah barang yang diretur (tidak lebih besar dari jumlah jual sebelumnya)

3.       Isilah alasan retur barang tersebut

4.       Klik simpan

Adapun coding retur penjualan dapat dilihat di bagian bawah.

 

Imports System.Data.OleDb

 

Public Class TransaksiReturPenjualan

 

    Sub NomorOtomatis()

        CMD = New OleDbCommand("select * from tblreturPenjualan where No_Retur_Jual in(select max(No_retur_Jual) from tblreturPenjualan)", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If Not DR.HasRows Then

            lblnomorreturjual.Text = "RJ" + Format(Now, "yyMMdd") + "01"

        Else

            If Microsoft.VisualBasic.Mid(DR.Item("No_Retur_Jual"), 3, 6) <> Format(Now, "yyMMdd") Then

                lblnomorreturjual.Text = "RJ" + Format(Now, "yyMMdd") + "01"

            Else

                lblnomorreturjual.Text = Microsoft.VisualBasic.Right(DR.Item("No_Retur_Jual"), 8) + 1

                lblnomorreturjual.Text = "RJ" + lblnomorreturjual.Text

            End If

        End If

    End Sub

 

    Sub TampilFakturJual()

        CMD = New OleDbCommand("Select * from tblPenjualan", CONN)

        DR = CMD.ExecuteReader

        cbofakturjual.Items.Clear()

        Do While DR.Read

            cbofakturjual.Items.Add(DR.Item("Faktur_Jual"))

        Loop

    End Sub

 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntutup.Click

        Me.Close()

    End Sub

 

 

    Private Sub TransaksiReturPenjualan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Call Koneksi()

        Call NomorOtomatis()

        Call TampilFakturJual()

    End Sub

 

    Sub ListRESPON()

        Dim cols As New DataGridViewComboBoxColumn

        cols.Items.Add("TUKAR BARANG")

        cols.Items.Add("KEMBALI UANG")

        DGV.Columns.Add(cols)

        cols.HeaderText = "Respon"

    End Sub

 

 

    Sub Hitungtransaksi()

        Dim x As Integer = 0

        For baris As Integer = 0 To DGV.RowCount - 1

            x = x + DGV.Rows(baris).Cells(3).Value

            lbljumlahretur.Text = x

        Next

    End Sub

 

    Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress

        On Error Resume Next

        If e.KeyChar = Chr(27) Then

            DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)

            Call Hitungtransaksi()

        End If

    End Sub

 

    Sub kOSONGKAN()

        cbofakturjual.Text = ""

        lbljumlahretur.Text = ""

        lblcarajual.Text = ""

        lblsisapiutang.Text = ""

        lbljatuhtempo.Text = ""

        lblstatusjual.Text = ""

        lblnamacustomer.Text = ""

        lbltanggaljual.Text = ""

    End Sub

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbatal.Click

        Call kOSONGKAN()

        DGV.Columns.Clear()

    End Sub

 

 

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbofakturjual.SelectedIndexChanged

        CMD = New OleDbCommand("select * from tblPenjualan where faktur_Jual='" & cbofakturjual.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If DR.HasRows Then

            lblstatusjual.Text = DR.Item("status_Jual")

            lblcarajual.Text = DR.Item("cara_Jual")

            lblsisapiutang.Text = DR.Item("sisa_piutang")

            lbljatuhtempo.Text = DR.Item("jth_tempo_Jual")

            lbltanggaljual.Text = DR.Item("tgl_Jual")

            lbljumlahretur.Text = 0

        Else

            MsgBox("Nomor faktur tidak terdaftar")

        End If

 

        CMD = New OleDbCommand("select Nama_customer from tblcustomer,tblPenjualan where tblPenjualan.kode_customer=tblcustomer.kode_customer and faktur_Jual='" & cbofakturjual.Text & "'", CONN)

        DR = CMD.ExecuteReader

        DR.Read()

        If DR.HasRows Then

            lblnamacustomer.Text = DR.Item("nama_customer")

        Else

            MsgBox("Nomor faktur tidak terdaftar")

        End If

 

 

        DGV.Columns.Clear()

        DA = New OleDbDataAdapter("select TBLdetailJual.Kode_barang as [Kode Barang],TblBarang.nama_Barang as [Nama Barang],Qty_Jual as Jumlah from tblPenjualan,tbldetailJual,tblbarang where tbldetailJual.faktur_Jual=tblPenjualan.faktur_Jual and tbldetailJual.kode_barang=tblbarang.kode_barang and tbldetailJual.faktur_Jual= '" & cbofakturjual.Text & "'", Conn)

        DS = New DataSet

        DA.Fill(DS)

        DGV.DataSource = DS.Tables(0)

        DGV.Columns(0).ReadOnly = True

        DGV.Columns(1).ReadOnly = True

        DGV.Columns(2).ReadOnly = True

 

        DGV.Columns(1).Width = 200

        DGV.Columns(2).Width = 75

 

        DGV.Columns.Add("QTY", "Jml Retur")

        DGV.Columns.Add("Alasan", "Alasan")

    End Sub

End Class

 

3.17  Bayar Utang

Setelah membuat form retur penjualan berikut codingnya, langkah berikutnya adalah membuat form pembayaran utang akibat pembelian secara kredit berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.22 Form transaksi bayar utang

Proses dalam transaksi pembayaran utang adalah sebagai berikut:

1.       Pilih nomor pembelian di bagian atas kanan dalam listbox

2.       Isi jumlah pembayaran di bagian bawah sebelah kanan

3.       Jika pembayaran langsung menekan enter berarti pembayaran akan langsung dilunasi dan nomor faktur yang bersangkutan akan hilang dari list setelah disimpan

4.       Jika pembayaran lebih kecil dari sisa utang maka utang akan tersisa dan nomor faktur beli masih tampil dalam listbox

5.       Klik simpan

Coding transaksi bayar utang dapat dilihat pada listing program di bawah ini.

Imports System.Data.OleDb

 

Public Class TransaksiBayarUtang

 

    Sub NomorOtomatis()

        CMD = New OleDbCommand("select * from tblbayarutang where nomor_bayar in(select max(nomor_bayar) from tblbayarutang)", Conn)

        DR = CMD.ExecuteReader

        DR.Read()

        If Not DR.HasRows Then

            lblnomor.Text = "BY" + Format(Now, "yyMMdd") + "01"

        Else

            If Microsoft.VisualBasic.Mid(DR.Item("Nomor_bayar"), 3, 6) <> Format(Now, "yyMMdd") Then

                lblnomor.Text = "BY" + Format(Now, "yyMMdd") + "01"

            Else

                lblnomor.Text = Microsoft.VisualBasic.Right(DR.Item("Nomor_bayar"), 8) + 1

                lblnomor.Text = "BY" + lblnomor.Text

            End If

        End If

    End Sub

 

 

    Sub TampilFakturUtang()

        CMD = New OleDbCommand("select * from tblpembelian where status_beli='BELUM LUNAS'", Conn)

        DR = CMD.ExecuteReader

        ListBox1.Items.Clear()

        Do While DR.Read

            ListBox1.Items.Add(DR.Item("FAKTUR_BELI"))

        Loop

 

    End Sub

 

    Sub InfoUtang()

        If ListBox1.Items.Count = 0 Then

            MsgBox("SEMUA UTANG SUDAH LUNAS")

            Me.Close()

        End If

    End Sub

    Private Sub TransaksiBayarUtang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Call Koneksi()

        Call TampilFakturUtang()

        Call NomorOtomatis()

        Call InfoUtang()

    End Sub

 

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        On Error Resume Next

        CMD = New OleDbCommand("select * from tblpembelian where FAKTUR_BELI='" & ListBox1.Text & "'", Conn)

        DR = CMD.ExecuteReader

        DR.Read()

        If DR.HasRows Then

            lbltglbeli.Text = DR.Item("TGL_BELI")

            lblkodesupplier.Text = DR.Item("KODE_SUPPLIER")

            txtdibayar.Enabled = False

            txttempo.Enabled = False

            lbltotalharga.Text = DR.Item("TOTAL_BELI")

            txtdibayar.Text = DR.Item("BAYAR_BELI")

            lblcarabeli.Text = DR.Item("CARA_BELI")

            lblsisahutang.Text = DR.Item("SISA_HUTANG")

            txtjumlahbayar.Text = lblsisahutang.Text

            txttempo.Text = DR.Item("TEMPO_HARI")

 

            lbljatuhtempo.Text = DR.Item("JTH_TEMPO_BELI")

 

            CMD = New OleDbCommand("select * from tblSUPPLIER where KODE_SUPPLIER='" & lblkodesupplier.Text & "'", Conn)

            DR = CMD.ExecuteReader

            DR.Read()

            If DR.HasRows Then

                lblnamasupplier.Text = DR.Item("nAMA_SUPPLIER")

            End If

            DA = New OleDbDataAdapter("Select tbldetailbeli.kode_barang as [Kode Barang],tblbarang.Nama_barang as [Nama Barang],tbldetailbeli.harga_bl as [Harga],qty_beli as [Jumlah],subtotal_beli as [Total] from tbldetailbeli,tblbarang where tbldetailbeli.kode_barang=tblbarang.kode_barang and tbldetailbeli.faktur_beli='" & ListBox1.Text & "'", Conn)

            DS = New DataSet

            DA.Fill(DS)

            DGV.DataSource = DS.Tables(0)

            DGV.Columns(1).Width = 200

            DGV.ReadOnly = True

 

        End If

    End Sub

 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntutup.Click

        Me.Close()

    End Sub

 

    Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtjumlahbayar.KeyPress

        If e.KeyChar = Chr(13) Then

            If Val(txtjumlahbayar.Text) < Val(lblsisahutang.Text) Then

                MsgBox("Sisa utang  " & Val(lblsisahutang.Text) - Val(txtjumlahbayar.Text) & "")

                btnsimpan.Focus()

            ElseIf Val(txtjumlahbayar.Text) = Val(lblsisahutang.Text) Then

                MsgBox("Utang lunas")

                btnsimpan.Focus()

            ElseIf Val(txtjumlahbayar.Text) > Val(lblsisahutang.Text) Then

                MsgBox("Utang lunas, uang kembali " & Val(txtjumlahbayar.Text) - Val(lblsisahutang.Text) & "")

                btnsimpan.Focus()

            End If

        End If

    End Sub

 

    Sub Bersihkan()

        lbltglbeli.Text = ""

        lblkodesupplier.Text = ""

        lblnamasupplier.Text = ""

        lbltotalharga.Text = ""

        lblcarabeli.Text = ""

        lblsisahutang.Text = ""

        lbljatuhtempo.Text = ""

        txtdibayar.Clear()

        txttempo.Clear()

        txtjumlahbayar.Clear()

        DGV.Columns.Clear()

    End Sub

 

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbatal.Click

        Call Bersihkan()

 

    End Sub

End Class

3.18  Terima Piutang

Langkah berikutnya adalah membuat form penerimaan piutang akibat penjualan secara kredit kepada customer berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Gambar 3.23 Form transaksi terima piutang

Proses penerimaan piutang ini hampir sama dengan pembayaran utang, yaitu :

1.       Piliha nomor faktur di dalam listbox sebelah kanan kanan atas

2.       Kemudian isi jumlah penerimaannya

3.       Jika jumlah penerimaan lebih kecil dari tagihan maka piutang akan menyisakan data dan nomor faktur masih tampil dalam listbox

4.       Jika jumlah penerimaan lebih besar sama dengan tagihan maka piutang dinyatakan lunas dan nomor faktur akan hilang dari listbox

5.       Klik simpan

Coding transaksi terima piutang dapat dilihat pada listing program di bawah ini.

Imports System.Data.OleDb

 

Public Class TransaksiTerimaPiutang

 

 

   Sub NomorOtomatis()

        CMD = New OleDbCommand("select * from TBLTerimaPiutang where Nomor_Terima in(select max(Nomor_Terima) from TBLTerimaPiutang)", Conn)

        DR = CMD.ExecuteReader

        DR.Read()

        If Not DR.HasRows Then

            lnlnomorterima.Text = "TR" + Format(Now, "yyMMdd") + "01"

        Else

            If Microsoft.VisualBasic.Mid(DR.Item("Nomor_Terima"), 3, 6) <> Format(Now, "yyMMdd") Then

                lnlnomorterima.Text = "TR" + Format(Now, "yyMMdd") + "01"

            Else

                lnlnomorterima.Text = Microsoft.VisualBasic.Right(DR.Item("Nomor_Terima"), 8) + 1

                lnlnomorterima.Text = "TR" + lnlnomorterima.Text

            End If

        End If

    End Sub

 

 

    Sub TampilFakturPiutang()

        CMD = New OleDbCommand("select * from TBLpenjualan where Status_Jual='BELUM LUNAS'", Conn)

        DR = CMD.ExecuteReader

        ListBox1.Items.Clear()

        Do While DR.Read

            ListBox1.Items.Add(DR.Item("Faktur_Jual"))

        Loop

    End Sub

 

    Sub InfoPiutang()

        If ListBox1.Items.Count = 0 Then

            MsgBox("SEMUA PIUTANG SUDAH LUNAS")

            Me.Close()

        End If

    End Sub

 

    Private Sub TransaksiterimaPiutang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Call Koneksi()

        Call TampilFakturPiutang()

        Call NomorOtomatis()

        Call InfoPiutang()

    End Sub

 

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        CMD = New OleDbCommand("select * from TBLpenjualan where Faktur_Jual='" & ListBox1.Text & "'", Conn)

        DR = CMD.ExecuteReader

        DR.Read()

        If DR.HasRows Then

            lbltanggaljual.Text = DR.Item("TGL_Jual")

            lblkodecustomer.Text = DR.Item("KODE_Customer")

 

            txtdibayar.Enabled = False

            txttempohari.Enabled = False

            lbltotalharga.Text = DR.Item("TOTAL_Jual")

            txtdibayar.Text = DR.Item("BAYAR_Jual")

            lblcarajual.Text = DR.Item("CARA_Jual")

            lblsisapiutang.Text = DR.Item("SISA_Piutang")

            txtjumlahterima.Text = lblsisapiutang.Text

            txttempohari.Text = DR.Item("jTH_TEMPO_JUAL")

 

            lbljatuhtempo.Text = DR.Item("JTH_TEMPO_Jual")

 

            CMD = New OleDbCommand("select * from tblCustomer where KODE_Customer='" & lblkodecustomer.Text & "'", Conn)

            DR = CMD.ExecuteReader

            DR.Read()

            If DR.HasRows Then

                lblnamacustomer.Text = DR.Item("nAMA_Customer")

            End If

 

            DA = New OleDbDataAdapter("Select tbldetailJual.kode_barang as [Kode Barang],tblbarang.Nama_barang as [Nama Barang],tbldetailJual.harga_JL as [Harga],qty_Jual as [Jumlah],subtotal_Jual as [Total] from tbldetailJual,tblbarang where tbldetailJual.kode_barang=tblbarang.kode_barang and tbldetailJual.Faktur_Jual='" & ListBox1.Text & "'", Conn)

            DS = New DataSet

            DA.Fill(DS)

            DGV.DataSource = DS.Tables(0)

            DGV.ReadOnly = True

        End If

    End Sub

 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntutup.Click

        Me.Close()

    End Sub

 

    Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtjumlahterima.KeyPress

        If e.KeyChar = Chr(13) Then

            If Val(txtjumlahterima.Text) < Val(lblsisapiutang.Text) Then

                MsgBox("Sisa piutang  " & Val(lblsisapiutang.Text) - Val(txtjumlahterima.Text) & "")

                btnsimpan.Focus()

            ElseIf Val(txtjumlahterima.Text) = Val(lblsisapiutang.Text) Then

                MsgBox("Utang lunas")

                btnsimpan.Focus()

            ElseIf Val(txtjumlahterima.Text) > Val(lblsisapiutang.Text) Then

                MsgBox("Utang lunas, uang kembali " & Val(txtjumlahterima.Text) - Val(lblsisapiutang.Text) & "")

                btnsimpan.Focus()

            End If

        End If

    End Sub

 

    Sub Bersihkan()

        lbltanggaljual.Text = ""

        lblkodecustomer.Text = ""

        lblnamacustomer.Text = ""

        lbltotalharga.Text = ""

        lblcarajual.Text = ""

        lblsisapiutang.Text = ""

        lbljatuhtempo.Text = ""

        txtdibayar.Clear()

        txttempohari.Clear()

        txtjumlahterima.Clear()

        DGV.Columns.Clear()

    End Sub

 

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbatal.Click

        Call Bersihkan()

 

    End Sub

End Class

3.19  Laporan Master

Setelah selesai proses transaksi, selanjutnya adalah membuat laporan-laporan master. Laporan ini akan ditarik dari sebuah form dengan bentuk seperti gambar di bawah ini.

Gambar 3.24 Form laporan master

Laporan ini terdiri dari laporan data user, barang, perkiraan, supplier dan customer.

3.19.1 Laporan Data User

Laporan master user sebagai pemakai aplikasi terlihat pada gambar berikut ini.

Gambar 3.25 Laporan data user

Perhatikan bagian header, data ini diambil dari tabel profil perusahaan. jika isi tabel ini diubah maka seluruh laporan akan memiliki header yang sama. Listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNUser.Click

        cryRpt.Load("master User.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.19.2 Laporan Data Barang

Laporan data barang yang dijadikan sumber transaksi jual beli dapat dilihat pada gambar di bawah ini.

Gambar 3.26 Laporan master barang

listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNBarang.Click

        cryRpt.Load("master Barang.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.19.3 Laporan Data Perkiraan

Laporan data perkiraan yang menjadi sumber dalam jurnal dapat dilihat pada gambar di bawah ini.

Gambar 3.27 Laporan kode perkiraan

listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNPerkiraan.Click

        cryRpt.Load("master perkiraan.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.20  Laporan Pembelian

Laporan transaksi pembelian dibagi menjadi beberapa kriteria, diantaranya laporan harian, mingguan, bulanan, laporan per faktur, laporan per status dan sejenisnya. Adapun gambar-gambarnya dapat dilihat pada tampilan dibawah ini.

Gmbar 3.28 Menu laporan pembelian

3.20.1 Laporan Harian

Bentuk laporan harian transaksi pembelian barang dapat dilihat pada gambar di bawah ini.

Gambar 3.29 Laporan Pembelian Harian

Listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNHarian.Click

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "totext({tblpembelian.tgl_beli}) ='" & DTPHarian.Text & "'"

        cryRpt.Load("pembelian umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

 

Coding diatas menjelaskan bahwa daam form laporan pembelian ini terdapat dua objek besar yaitu datagrid dan crystalreportviewer yang diatur kondisinya antara true dan false agar tampilan menjadi lebih proporsional.

3.20.2 Laporan Periodik

laporan periodik yang biasa disebut dengan laporan mingguan dapat dilihat bentunya pada gambar dibawah ini.

Gambar 3.30 Laporan pembelian mingguan

listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNPeriodik.Click

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

 

       CRV.SelectionFormula = "totext({tblpembelian.tgl_beli}) >='" & DTPAwal.Text & "' and totext({tblpembelian.tgl_beli}) <='" & DTPAkhir.Text & "'"

        cryRpt.Load("pembelian umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.20.3 Laporan Bulanan

Laporan bulanan dalam transaksi pembelian barang juga dapat dilihat pada bentuk gambar berikut ini.

Gambar 3.31 Laporan pembelian bulanan

listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNBulanan.Click

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "month({tblpembelian.tgl_beli}) = (" & Month(DTPBulanan.Value) & ") and year({tblpembelian.tgl_beli}) = (" & Year(DTPBulanan.Value) & ")"

        cryRpt.Load("pembelian umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

Catatan :

Bentuk laporan harian, periodik dan bulanan hampir mirip karena transaksi dilakukan pada hari yang sama.

3.20.4 Laporan Per Nomor Faktur

Bentuk laporan pembelian per nomor faktur tampak berbeda dengan laporan harian, mingguan dan bulanan. Gambarnya dapat di lihat dibawah ini.

Gambar 3.32 Laporan pembelian per nomor faktur

listing programnya terlihat di bagian bawah berikut ini.

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "{tblpembelian.faktur_beli} = '" & ListBox1.Text & "'"

        cryRpt.Load("pembelian per faktur.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.20.5 Laporan Per Supplier

laporan pembelian barang per nama supplier terlihat pada tampilan berikut ini.

Gambar 3.33 Laporan pembelian per supplier

listing programnya terlihat di bagian bawah berikut ini.

Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "{tblsupplier.nama_supplier} = '" & ListBox2.Text & "'"

        cryRpt.Load("pembelian per supplier.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.20.6 Laporan Per Cara Pembelian

Laporan pembelian berdasarkan cara beli (tunai atau kredit) dapat dilihat pada gambar di bawah ini.

Gambar 3.34 Laporan pembelian per cara beli (tunai atau kredit)

Listing programnya terlihat di bagian bawah berikut ini.

Private Sub ListBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox3.SelectedIndexChanged

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "{tblpembelian.cara_beli} = '" & ListBox3.Text & "'"

        cryRpt.Load("pembelian umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.20.7 Laporan Per Status Pembelian

laporan pembelian per status (lunas atau belum lunas) terlihat pada gambar berikut ini.

Gambar 3.35 Laporan penjualan per status (lunas atau belum lunas)

Listing programnya terlihat di bagian bawah berikut ini.

Private Sub ListBox4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox4.SelectedIndexChanged

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "{tblpembelian.status_beli} = '" & ListBox4.Text & "'"

        cryRpt.Load("pembelian umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.20.8 Export Data Pembelian Ke Excel

Transaksi pembelian ini dapat diexport ke bentuk excel, codingnya dapat dilihat di bagian bawah.

Imports System.Data.OleDb

Imports Excel = Microsoft.Office.Interop.Excel

Imports System.IO.Directory

Imports Microsoft.Office.Interop

 

Public Class LaporanPembelian

 

Dim NamaFileAccess As String = "tblpembelian"

Dim NamaFileExcel As String

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXTExport.KeyPress

        If e.KeyChar = Chr(13) Then

            Try

                CMD = New OleDbCommand("SELECT * INTO [Excel 8.0;DATABASE=" & TXTExport.Text & ".xls;].[" & TXTExport.Text & "] from [" & NamaFileAccess & "]", Conn)

                CMD.ExecuteNonQuery()

                NamaFileExcel = Application.StartupPath + "\" + TXTExport.Text + ".xls"

                If MessageBox.Show("Konversi ke excel sukses, Buka file hasil konversi", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then

                    System.Windows.Forms.Help.ShowHelp(Me, NamaFileExcel)

                End If

 

            Catch ex As Exception

                MsgBox("Nama file tersebut sudah ada")

                Dim pesan = InputBox("tulis nama file alternatif")

                CMD = New OleDbCommand("SELECT * INTO [Excel 8.0;DATABASE=" & pesan & ".xls;].[" & NamaFileAccess & "] from [" & NamaFileAccess & "]", Conn)

                CMD.ExecuteNonQuery()

                If MessageBox.Show("Konversi ke excel sukses, Buka file hasil konversi", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then

                    NamaFileExcel = Application.StartupPath + "\" + pesan + ".xls"

                    System.Windows.Forms.Help.ShowHelp(Me, NamaFileExcel)

                End If

            End Try

        End If

    End Sub

3.21  Laporan Retur Pembelian

Laporan transaksi retur pembelian dikelompokan menjadi beberapa kriteria seperti laporan pembelian antara lain :

1.       Laporan harian

2.       Laporan periodik

3.       Laporan bulanan

4.       Laporan per nomor faktur

5.       Laporan per supplier

6.       Dan laporan berupa data excel hasil export

Semua laporan yang disebutkan diatas dapat dilihat dalam aplikasi.

3.22  Laporan Penjualan

Laporan transaksi penjualan ditampilkan melalui menu yang dapat dilihat pada gambar di bawah ini.

Gambar 3.36 Menu laporan penjualan

Laporan penjualan terdiri dari beberapa kriteria antara lain, laporan harian, mingguan, bulanan, per nomor faktur, per customer dan lain-lain.

3.22.1 Laporan Penjualan Harian

Laporan transaksi penjualan harian dapat dilihat pada gambar di bawah ini.

Gambar 3.37 Laporan penjualan harian

Listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNHarian.Click

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

 

        CRV.SelectionFormula = "totext({tblPenjualan.tgl_Jual}) ='" & DTPHarian.Text & "'"

        cryRpt.Load("Penjualan umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.22.2 Laporan Penjualan Periodik

Laporan transaksi penjualan periodik dapat dilihat pada gambar di bawah ini.

Gambar 3.38 Laporan Penjualan periodik

listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNPeriodik.Click

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "totext({tblPenjualan.tgl_Jual}) >='" & DTPAwal.Text & "' and totext({tblPenjualan.tgl_Jual}) <='" & DTPAkhir .Text & "'"

        cryRpt.Load("Penjualan umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.22.3 Laporan Penjualan Bulanan

Laporan transaksi penjualan bulanan dilihat pada gambar di bawah ini.

Gambar 3.39 Laporan penjualan bulanan

listing programnya terlihat di bagian bawah berikut ini.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNBulanan.Click

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "month({tblPenjualan.tgl_Jual}) = (" & Month(DTPBulanan.Text) & ") and year({tblPenjualan.tgl_Jual}) = (" & Year(DTPBulanan.Text) & ")"

        cryRpt.Load("Penjualan umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.22.4 Laporan Penjualan Per Nomor Faktur

Laporan transaksi penjualan per nomor faktur dapat dilihat pada gambar di bawah ini.

Gambar 3.40 Laporan penjualan per faktur

listing programnya terlihat di bagian bawah berikut ini.

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "{tblPenjualan.faktur_Jual} = '" & ListBox1.Text & "'"

        cryRpt.Load("Penjualan per faktur.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.22.5 Laporan Penjualan Per Customer

Laporan transaksi penjualan per customer dapat dilihat pada gambar di bawah ini.

Gambar 3.41 Laporan penjualan per customer

Listing programnya terlihat di bagian bawah berikut ini.

Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "{tblCustomer.nama_Customer} = '" & ListBox2.Text & "'"

        cryRpt.Load("Penjualan per Customer.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.22.6 Laporan Per Cara Penjualan

Laporan transaksi penjualan berdasarkan cara penjualan dapat dilihat pada gambar di bawah ini.

Gambar 3.42 Laporan per cara penjualan (cash - kredit)

listing programnya terlihat di bagian bawah berikut ini.

Private Sub ListBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox3.SelectedIndexChanged

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "{tblPenjualan.cara_Jual} = '" & ListBox3.Text & "'"

        cryRpt.Load("Penjualan umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.22.7 Laporan Penjualan Per Status

Laporan transaksi penjualan berdasarkan status dapat dilihat pada gambar di bawah ini.

Gambar 3.43 Laporan per status penjualan (Lunas - belun lunas)

Listing programnya terlihat di bagian bawah berikut ini.

    Private Sub ListBox4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox4.SelectedIndexChanged

        GroupBox4.Dock = DockStyle.Fill

        GroupBox4.Visible = True

        GroupBox5.Visible = False

        CRV.ReportSource = Nothing

        CRV.SelectionFormula = "{tblPenjualan.status_Jual} = '" & ListBox4.Text & "'"

        cryRpt.Load("Penjualan umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

 

3.22.8 Export Data Ke Excel

Pembuatan laporan berbentuk excel hasil konversi diawali dengan menambah beberapa namespace berikut ini.

Imports Excel = Microsoft.Office.Interop.Excel

Imports System.IO.Directory

Imports Microsoft.Office.Interop

 

Public Class LaporanPenjualan

 

Dim NamaFileAccess As String = "tblpenjualan"

Dim NamaFileExcel As String

..................................

Kemudian buatlah coding dibawah ini.

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXTExport.KeyPress

        If e.KeyChar = Chr(13) Then

            Try

                CMD = New OleDbCommand("SELECT * INTO [Excel 8.0;DATABASE=" & TXTExport.Text & ".xls;].[" & TXTExport.Text & "] from [" & NamaFileAccess & "]", Conn)

                CMD.ExecuteNonQuery()

                NamaFileExcel = Application.StartupPath + "\" + TXTExport.Text + ".xls"

                If MessageBox.Show("Konversi ke excel sukses, Buka file hasil konversi", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then

                    System.Windows.Forms.Help.ShowHelp(Me, NamaFileExcel)

                End If

 

            Catch ex As Exception

                MsgBox("Nama file tersebut sudah ada")

                Dim pesan = InputBox("tulis nama file alternatif")

                CMD = New OleDbCommand("SELECT * INTO [Excel 8.0;DATABASE=" & pesan & ".xls;].[" & NamaFileAccess & "] from [" & NamaFileAccess & "]", Conn)

                CMD.ExecuteNonQuery()

                If MessageBox.Show("Konversi ke excel sukses, Buka file hasil konversi", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then

                    NamaFileExcel = Application.StartupPath + "\" + pesan + ".xls"

                    System.Windows.Forms.Help.ShowHelp(Me, NamaFileExcel)

                End If

            End Try

        End If

    End Sub

3.23  Laporan Retur Penjualan

Laporan transaksi retur penjualan dikelompokan menjadi beberapa kriteria seperti laporan retur pembelian antara lain :

1.       Laporan harian

2.       Laporan periodik

3.       Laporan bulanan

4.       Laporan per nomor faktur

5.       Laporan per customer

6.       Dan laporan berupa data excel hasil export

Semua laporan yang disebutkan diatas dapat dilihat dalam aplikasi.

3.24  Laporan Keuangan

Laporan keuangan dari hasil transaksi pembelian, retur pembelian, penjualan, retur penjualan, pembayaran utang dan penerimaan piutang ditampilkan dari menu di bawah ini.

Gambar 3.44 Menu laporan keuangan

3.24.1 Laporan Jurnal Harian

Laporan transaksi harian dapat anda lihat pada gambar di bawah ini.

Gambar 3.45 Laporan jurnal harian

Listing programnya dapat anda lihat di bagian bawah ini.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        CRV.SelectionFormula = "totext({tbljurnal.tgl_Transaksi}) ='" & DTPHarian.Text & "'"

        cryRpt.Load("jurnal umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.24.2 Laporan Jurnal Bulanan

Laporan transaksi bulanan berupa jurnal terlihat pada gambar berikut.

Gambar 3.46 Laporan jurnal bulanan

Listing programnya dapat anda lihat di bagian bawah ini.

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        CRV.SelectionFormula = "month({tbljurnal.tgl_transaksi}) = (" & Month(DTPBulanan.Text) & ") and year({tbljurnal.tgl_transaksi}) = (" & Year(DTPBulanan.Text) & ")"

        cryRpt.Load("jurnal umum.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.24.3 Laporan Buku Besar

Bentuk laporan buku besar terlohat pada gambar di bawah ini.

Gambar 3.47 laporan buku besar

Listing programnya dapat anda lihat di bagian bawah ini.

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        CRV.SelectionFormula = "{TBLPERKIRAAN.NAMA_PERKIRAAN} = '" & ListBox1.Text & "'"

        cryRpt.Load("BUKU BESAR.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub

3.24.4 Laporan Neraca Saldo

Laporan neraca saldo dari semua transaksi dapat dilihat pada gambar di bawah ini.

Gambar 3.48 Laporan necara saldo

Listing programnya dapat anda lihat di bagian bawah ini.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        CRV.SelectionFormula = "month({tbljurnal.tgl_transaksi}) = (" & Month(DTPBulanan.Text) & ") and year({tbljurnal.tgl_transaksi}) = (" & Year(DTPBulanan.Text) & ")"

        cryRpt.Load("NECARA SALDO.rpt")

        Call seting_laporan()

        CRV.ReportSource = cryRpt

        CRV.RefreshReport()

    End Sub