Sunday 28 October 2012

Program Stok Barang Sekolah (SMK Otomotif)


Hari ini :     
 Program ini dasarnya mirip dengan Program Puskesmas yang saya bahas sebelumnya, hanya saja kata kata item diganti dengan Barang dan sebagai supplier adalah toko.
 
Masih sama pada program Puskesmas sebelumnya, yang pertama kali diakses adalah pada Sub Main( )…
-------------------------------------------------------
Public Sub Main()
Set conn = New ADODB.Connection

On Error GoTo Kesalahan
conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False; Integrated Security=SSPI;" & _
        "Initial Catalog=db_Inventaris;"
Utama.Show
FrmLogin.Show vbModal
Kesalahan:
If Err.Number = -2147467259 Then
    MsgBox "Komputer Server tidak aktif." & Chr(13) & _
    "Aktifkan komputer Server terlebih dahulu." & vbCrLf & _
    "Atau hubungi Administrator." & vbCrLf & vbInformation, "Koneksi Error"
End If
End Sub
--------------------------------------
            Dapat dilihat bahwa nama database yang digunakan adalah db_Inventaris, sesuai dengan tujuan program yaitu mengetahui stok barang-barang yang ada disekolah dan kemana saja barang ketika dipinjam.
            Ketika dijalankan (F5) maka akan tampil Halaman Utama dengan background Bengkel karena data diambil dari SMK otomotif dan tidak lupa juga Pembatasan Hak Akses dengan tampilnya form Login. Dimana yang berhak mengakses semua halama hanya yang data loginya sama dengan data login yang ada di dalam database program dan bila data salah maka user akan diberikan kesempatan maksimal 3 kali mencoba bila tetap salah maka program otomatis tertutup.

1. Master Barang
            Dapat diakses dari Data Master -> Barang, terdiri atas 2 form dimana form yang ke-2 akan tampil bila tombol “Tambah” atau “Ubah” ditambah. Digunakanya 2 form ini agar kesan professional dan simple tertampil dari program, tetapi bisa juga tetap dengan 1 form hanya saja dengan pengendalian Properties Visible. Hasilnya akan tetap sama hanya saja pada 2 form maka koding terletak di 2 form dan perlu kejelian untuk mengetahui jalur kodenya. Terkadang data yang di form-1 akan berpindah ke form-2 begitu pula sebaliknya. Sedang pada 1 form dengan Properties Visible komponen yang diubah-ubah maka koding akan menjadi lebih banyak di form tersebut.
Form Barang dengan 1 form
Form Barang dengan form ke-2 tampil

2. Master Toko Supplier
            Dapat diakses dari Data Master -> Toko Supplier , hanya terdiri dari 1 form saja karena data yang masuk tidak terlalu banyak. Kode Toko akan secara otomatis trisi bila tombol “Tambah” ditekan. Data tidak akan disimpan bila data lain seperti nama toko, alamat atau telpon belum diisi. Untuk mengubah data cukup memilih data dari grid, maka tombol “Simpan” yang juga berfungsi sebagai tombol “Update” akan aktif. Untuk proses penghapusan juga begitu, harus ada dahulu data yang dipilih.
  

3. Data Transaksi Barang Masuk
            Dapat diakses dari Data Transaksi -> Barang Masuk , terdiri dari 2 form, form yang pertama berfungsi untuk menampilkan data, sedang form ke-2 berfungsi sebagai Form Input atau Delete data. Dengan 2 form ini maka ada lebih banyak ruang untuk melihat data Barang Masuk dan Lebih banyak ruang juga untuk menginput barang.



4. Data Transaksi Barang Rusak
            Dapat diakses dari Data Transaksi -> Barang Rusak , terdiri dari 1 form, yaitu untuk menampilkan Daftar Data Barang Rusak yang Masuk. Sedangkan untuk input barang rusaknya kita gunakan Frame yang disembunyikan atau kita atur melalui koding, Properties Visiblenya.
 

 
5. Data Transaksi Peminjaman Barang
            Dapat diakses dari Data Transaksi -> Peminjaman Barang

6. Data Transaksi Stok Barang
            Dapat diakses dari Data Transaksi -> Stok Barang

7. Pencarian
            Di menu Pencarian, ada 3 macam pencarian: Pencarian Barang Masuk, Pencarian Barang Rusak dan Pencarian Peminjaman Barang, yang apabila ditampilkan maka semua pencarian akan seperti ini:

8. Laporan
            Hasil akhir dari Program ini :

Sederhana ya laporannya, tapi sebenarnya ada kerumitan juga dalam kodinya, berikut penggalan koding untuk menampilkan Laporan diatas :

--------------------------------------------------------------------------------------------------------------
Private Sub CmdTampil_Click()
Dim VarBulanstok As Integer

If CboBulan.Text = "" Then
    Exit Sub
ElseIf CboTahun.Text = "" Then
    Exit Sub
End If

VarBulanstok = Val(VarBulan) - 1

sql = "select NmBarang, Satuan, Harga, " & _
"(Select Stok from TblBarangStok where KdBarang= TblBarang.KdBarang and Month(Tgl) = '" & Trim(VarBulanstok) & "' and  " & _
"Year(Tgl) = '" & Trim(CboTahun.Text) & "' " & _
"and Urut = (Select Max (Urut) from TblBarangStok where KdBarang= TblBarang.KdBarang and Month(Tgl) = '" & Trim(VarBulanstok) & "' and  " & _
"Year(Tgl) = '" & Trim(CboTahun.Text) & "' )) as JumlahAwal, " & _
"(Select Sum (JlhMasuk) from TblBarangMasukDetail inner join TblBarangMasuk on TblBarangMasuk.NoFaktur = TblBarangMasukdetail.NoFaktur " & _
"where TblBarangMasukDetail.KdBarang= TblBarang.KdBarang and Month(TblBarangMasuk.Tgl) = '" & Trim(VarBulan) & "' and  " & _
"Year(TblBarangMasuk.Tgl) = '" & Trim(CboTahun.Text) & "') as JumlahMasuk, " & _
"(Select Sum (JlhRusak) from TblBarangRusak where TblBarangrusak.KdBarang= TblBarang.KdBarang and Month(Tgl) = '" & Trim(VarBulan) & "' and  " & _
"Year(Tgl) = '" & Trim(CboTahun.Text) & "') as JumlahRusak, " & _
"(Select Sum (JlhPinjam) from TblBarangPinjam where TblBarangPinjam.KdBarang= TblBarang.KdBarang and Month(TglPinjam) = '" & Trim(VarBulan) & "' and  " & _
"Year(TglPinjam) = '" & Trim(CboTahun.Text) & "' and Status = 'Dipinjam' ) as JumlahPinjam, " & _
"(Select Sum (JlhPinjam) from TblBarangPinjam where TblBarangPinjam.KdBarang= TblBarang.KdBarang and Month(TglKembali) = '" & Trim(VarBulan) & "' and  " & _
"Year(TglKembali) = '" & Trim(CboTahun.Text) & "' and Status = 'Dikembalikan' ) as JumlahKembali " & _
"from TblBarang "
Set rsCetak = New ADODB.Recordset
rsCetak.CursorLocation = adUseClient
rsCetak.Open sql, conn, 3, 4

If rsCetak.RecordCount = 0 Then
    MsgBox "Data Kosong!", vbExclamation, "Kosong"
    Exit Sub
Else
  
    Report.DiscardSavedData
    Report.Database.SetDataSource rsCetak
    PreviewStokBarang.CRViewer1.ReportSource = Report
   
    Report.FormulaFields.Item(1).Text = Chr(34) & CboBulan.Text & Chr(34)
    Report.FormulaFields.Item(2).Text = Chr(34) & CboTahun.Text & Chr(34)
   
    PreviewStokBarang.CRViewer1.ViewReport
    PreviewStokBarang.CRViewer1.Zoom (100)
    PreviewStokBarang.CRViewer1.EnableGroupTree = False
    PreviewStokBarang.CRViewer1.EnableExportButton = True
    Set rsCetak = Nothing
 PreviewStokBarang.Show
End If
End Sub