Sistem Informasi Penjualan Barang Berbasis Net Pada Pt.Xyz
LISTING PROGRAM
1. Module
Module ModUtama PublicConst cFAsli = "0.00" PublicConst cFComma = "#,##0.00"
'Koneksi ADO
Public oConn AsNew ADODB.Connection
'String SQL
Public S AsString
'Temp Int
Public i AsInteger
'User Name
Public strUser AsString Public strSQL AsString
'User Type
Public strUserType AsString
'Laporan
Public BTgl AsBoolean Public Tgl1 AsDate Public Tgl2 AsDate Public ListTemp As ListViewItem Function main( ByVal ssInitCatalog AsString , ByVal sServer AsString , ByVal sUsername AsString , ByVal sPassword AsString ) AsBoolean Dim strTestKoneksi AsString = Nothing Try
'oConn.ConnectionString = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=Jepara;User
ID=sa;Password=darkangel" strTestKoneksi = "Provider=SQLOLEDB;Data
Source=" & sServer & ";Initial Catalog=" & ssInitCatalog
& ";USER ID=" & sUsername & ";Password=" & sPassword
'strTestKoneksi = "Server=" & sServer & ";Database=" & ssInitCatalog & ";Trusted_Connection=True;"
oConn.CursorLocation = ADODB.CursorLocationEnum.adUseClient oConn.ConnectionString = strTestKoneksi oConn.Open() main = True Catch ex As Exception main = False EndTry EndFunction PublicSub CloseRS( ByVal pRS As ADODB.Recordset) pRS.Close() pRS = Nothing EndSub PublicFunction FormatTgl( ByVal pDate AsDate ) AsString FormatTgl = String .Format( "#{0}#" , Format(pDate,
"yyyy-MM-dd" ))
EndFunction PublicSub GotFocus1( ByVal pOTextBox As TextBox) With pOTextBox .Text = Format( CDbl (0 & .Text), "0" ) .SelectionStart = 0 .SelectionLength = Len(.Text) EndWith EndSub PublicSub LostFocus1( ByVal pOTextBox As TextBox) With pOTextBox If Trim(.Text) = "" Then .Text = "0" .Text = Format( CDbl (0 & .Text), "#,##0" ) EndWith EndSub PublicFunction Kanan( ByVal pcText AsString , ByVal pnLength AsInteger ) AsString Kanan = Right(pcText, pnLength) EndFunction PublicSub FillCombo( ByVal strquery AsString , ByVal objcombo As ComboBox, OptionalByVal Kondisi AsBoolean = True ) Dim RSCombo AsNew ADODB.Recordset objcombo.Items.Clear() RSCombo.Open(strquery, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) With RSCombo If .RecordCount <> 0 Then .MoveFirst() DoWhileNot .EOF If Kondisi Then objcombo.Items.Add(.Fields(0).Value & "|" & .Fields(1).Value) Else objcombo.Items.Add(.Fields(0).Value) EndIf .MoveNext() Loop EndIf EndWith Call CloseRS(RSCombo) EndSub
'Pengecekan apakah No Transaksi sudah ada sebelumnya
PublicFunction IsExistNoBukti( ByVal strbukti AsString ) AsBoolean Dim cF AsString Dim rS AsNew ADODB.Recordset cF = "Select nobukti From tblinfokredit " & _
"Where nobukti = '" & strbukti & "'"
rS.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) IsExistNoBukti = (rS.RecordCount > 0) Call CloseRS(rS) EndFunction
'Pengecekan apakah No Transaksi sudah ada sebelumnya
PublicFunction IsExistNoBayar( ByVal strbukti AsString ) AsBoolean Dim cF AsString Dim rS AsNew ADODB.Recordset cF = "Select nobayar From tblbayar " & _
"Where nobayar = '" & strbukti & "'" rS.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) IsExistNoBayar = (rS.RecordCount > 0) Call CloseRS(rS) EndFunction
'Pengecekan apakah No Transaksi sudah ada sebelumnya
PublicFunction GetOneRecord( ByVal strsql AsString ) AsString Dim cF AsString Dim rS AsNew ADODB.Recordset cF = strsql rS.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) If rS.RecordCount <> 0 Then GetOneRecord = rS(0).Value EndIf Call CloseRS(rS) EndFunction PublicSub GetMDIChild( ByRef ChildForm As Form, ByVal MDIChild As Form) ChildForm.MdiParent = MDIChild ChildForm.Show() ChildForm.BringToFront()
'Call ModData.GetMDIChild(FrmMstCabang, Me, Me.UltraTabbedMdiManager1)
EndSub EndModule
2. Form Utama
PublicClass FormUtama PrivateSub FormUtama_Disposed( ByVal sender AsObject , ByVal e As System.EventArgs) HandlesMe .Disposed End EndSub PrivateSub FormUtama_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase .Load
'main("stocknet", "(local)", "sa", "darkangel")
EndSub
PrivateSub DataSatuanToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataSatuanToolStripMenuItem.Click GetMDIChild(FormUnit, Me ) EndSub PrivateSub DataBarangToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataBarangToolStripMenuItem.Click GetMDIChild(FormBarang, Me ) EndSub PrivateSub KeluarToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeluarToolStripMenuItem.Click End EndSub PrivateSub BarangKeluarToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BarangKeluarToolStripMenuItem.Click GetMDIChild(FormBarangKeluar, Me ) EndSub PrivateSub ToolStripButton1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click GetMDIChild(FormUnit, Me ) EndSub PrivateSub ToolStripButton2_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click GetMDIChild(FormBarang, Me ) EndSub PrivateSub ToolStripButton4_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click GetMDIChild(FormSatuan, Me ) EndSub PrivateSub ToolStripButton6_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click GetMDIChild(FormBarangKeluar, Me ) EndSub PrivateSub DaftarSatuanToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DaftarSatuanToolStripMenuItem.Click
Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString
'SQL Laporan
cF = "Select * From tblsatuan Order By
kodesatuan"
rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep Dim rdReport AsNew RepSatuan rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Laporan Daftar Satuan" c.Show() Else Call CloseRS(rsCetak) MsgBox( "Tidak ada data untuk dicetak !" , vbCritical, "Print" ) ExitSub EndIf EndSub PrivateSub DaftarBarangToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DaftarBarangToolStripMenuItem.Click Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString
'SQL Laporan
cF = "Select * From viewbarang Order By
kodebarang"
rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep Dim rdReport AsNew RepBarang rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Laporan Daftar Barang" c.Show() Else
Call CloseRS(rsCetak) MsgBox( "Tidak ada data untuk dicetak !" , vbCritical, "Print" ) ExitSub EndIf EndSub PrivateSub DaftarUnitKerjaToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DaftarUnitKerjaToolStripMenuItem.Click Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString
'SQL Laporan
cF = "Select * From tblpembeli Order By
kodepembeli"
rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep Dim rdReport AsNew RepUnit rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Laporan Daftar Pembeli" c.Show() Else Call CloseRS(rsCetak) MsgBox( "Tidak ada data untuk dicetak !" , vbCritical, "Print" ) ExitSub EndIf EndSub PrivateSub LaporanBarangKeluarToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LaporanBarangKeluarToolStripMenuItem.Click Call GetMDIChild(FormSeleksiKeluar, Me ) EndSub PrivateSub DataUnitKerjaToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataUnitKerjaToolStripMenuItem.Click Call GetMDIChild(FormSatuan, Me ) EndSub
PrivateSub LaporanPendapatanToolStripMenuItem_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LaporanPendapatanToolStripMenuItem.Click Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString Dim xPesan AsString
'SQL Laporan
xPesan = InputBox( "Masukkan Tahun Pendapatan" ,
"Tahun Transaksi" , Year(Now))
If xPesan <> "" Then cF = "Select * From viewlr where tahun='" & xPesan & "'" rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep Dim rdReport AsNew RepJualAkun rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Laporan Pendapatan" c.Show() Else Call CloseRS(rsCetak) MsgBox( "Tidak ada data untuk dicetak !" , vbCritical, "Print" ) ExitSub EndIf EndIf EndSub EndClass
3. Form Barang
PublicClass FormBarang Sub ActiveCMD( ByVal L0 AsBoolean , ByVal L1 AsBoolean , ByVal L2 AsBoolean , ByVal L3 AsBoolean , ByVal L4 AsBoolean , ByVal L5 AsBoolean ) cmdbaru.Enabled = L0 cmdsimpan.Enabled = L1 cmdedit.Enabled = L2 cmdhapus.Enabled = L3 cmdbatal.Enabled = L4 cmdkeluar.Enabled = L5 EndSub Sub ActiveText( ByVal L0 AsBoolean , ByVal L1 AsBoolean ) txtkode.Enabled = L0 txtnama.Enabled = L1 cbosatuan.Enabled = L1 txtstok.Enabled = L1 txtharga.Enabled = L1 EndSub Sub ClearText() txtkode.Text = "" txtnama.Text = "" cbosatuan.Text = "" txtstok.Text = "" txtharga.Text = "" EndSub Sub IsiListview() Dim cF AsString Dim rsTampil AsNew ADODB.Recordset Dim i AsInteger Me .lv.Items.Clear() cF = "Select * From viewbarang" With rsTampil
'Buka recordset
.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If .RecordCount <> 0 Then .MoveFirst() DoWhileNot .EOF i = i + 1 ListTemp = lv.Items.Add(i) ListTemp.SubItems.Add(rsTampil(0).Value) ListTemp.SubItems.Add(rsTampil(1).Value) ListTemp.SubItems.Add(rsTampil(2).Value) ListTemp.SubItems.Add(rsTampil(3).Value)
ListTemp.SubItems.Add(rsTampil(4).Value) .MoveNext() Loop EndIf EndWith EndSub PrivateSub cmdkeluar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdkeluar.Click Me .Close() EndSub PrivateSub FormBarang_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase .Load Call ActiveCMD( True , False , False , False , False , True ) Call ActiveText( False , False ) Call ModUtama.FillCombo( "select kodesatuan,namasatuan
from tblsatuan" , cbosatuan)
Call ModUtama.FillCombo( "select kodebarang from
tblbarang" , txtkode, False )
Call IsiListview() EndSub PrivateSub cmdbatal_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbatal.Click Call ActiveCMD( True , False , False , False , False , True ) Call ActiveText( False , False ) Call ClearText() Call IsiListview() Call ModUtama.FillCombo( "select kodebarang from
tblbarang" , txtkode, False )
EndSub PrivateSub cmdbaru_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbaru.Click Call ActiveText( True , False ) txtkode.Focus() EndSub PrivateSub txtkode_KeyDown( ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtkode.KeyDown If e.KeyCode = Keys.Enter Then IfNot txtkode.Text = "" Then Dim cF AsString Dim rsTampil AsNew ADODB.Recordset cF = "Select * From tblbarang Where
kodebarang= '" & txtkode.Text & "'"
With rsTampil
'Buka recordset
.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
'Jika terdaftar, maka tampilkan
If .RecordCount > 0 Then txtnama.Text = rsTampil(1).Value cbosatuan.Text = rsTampil(2).Value txtstok.Text = rsTampil(3).Value txtharga.Text = rsTampil(4).Value Call ActiveCMD( False , False , True , True , True , True ) Call ActiveText( False , True ) Else Call ActiveCMD( False , True , False , False , True , True ) Call ActiveText( False , True ) EndIf EndWith
'Tutup RS
Call CloseRS(rsTampil) txtnama.Focus() EndIf EndIf EndSub PrivateSub cmdsimpan_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsimpan.Click Dim cF AsString
'Dim rsTampil As New ADODB.Recordset
cF = "insert into tblbarang values('" & txtkode.Text & "','" & txtnama.Text & "','" & Microsoft.VisualBasic.Left(cbosatuan.Text, 5) & "'," & txtstok.Text & "," & txtharga.Text & ")" oConn.BeginTrans() oConn.Execute(cF) oConn.CommitTrans()
'rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
Call cmdbatal_Click(sender, e) EndSub
PrivateSub cmdedit_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdedit.Click Dim cF AsString Dim rsTampil AsNew ADODB.Recordset cF = "update tblbarang set namabarang='" & txtnama.Text & "',kodesatuan='" & Microsoft.VisualBasic.Left(cbosatuan.Text, 5) & "',stok=" & txtstok.Text & ",harga=" & txtharga.Text & " where
kodebarang='" & txtkode.Text & "'"
oConn.BeginTrans() oConn.Execute(cF) oConn.CommitTrans()
'rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
Call cmdbatal_Click(sender, e) EndSub PrivateSub cmdhapus_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdhapus.Click If MsgBox( "Apakah record ini mau dihapus?" , MsgBoxStyle.YesNo, "Konfirmasi" ) = MsgBoxResult.Yes Then Dim cF AsString Dim rsTampil AsNew ADODB.Recordset cF = "delete from tblbarang where
kodebarang='" & txtkode.Text & "'"
rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) MsgBox( "Record berhasil dihapus" , MsgBoxStyle.OkOnly, "Informasi" ) Call cmdbatal_Click(sender, e) EndIf EndSub PrivateSub txtstok_KeyPress( ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtstok.KeyPress If Asc(e.KeyChar) <> 8 And (Asc(e.KeyChar) < Asc( "0" ) Or Asc(e.KeyChar) > Asc( "9" )) Then e.KeyChar = "" EndIf EndSub
PrivateSub txtharga_KeyPress( ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtharga.KeyPress If Asc(e.KeyChar) <> 8 And (Asc(e.KeyChar) < Asc( "0" ) Or Asc(e.KeyChar) > Asc( "9" )) Then e.KeyChar = "" EndIf EndSub EndClass
4. Form Barang Keluar
PublicClass FormBarangKeluar Dim Ketemu AsBoolean Sub ActiveCMD( ByVal L0 AsBoolean , ByVal L1 AsBoolean , ByVal L2 AsBoolean , ByVal L3 AsBoolean ) cmdbaru.Enabled = L0 cmdsimpan.Enabled = L1 cmdbatal.Enabled = L2 cmdkeluar.Enabled = L3 EndSub Sub ActiveText( ByVal L0 AsBoolean , ByVal L1 AsBoolean ) txtbukti.Enabled = L0 DTTanggal.Enabled = L1 cbosupplier.Enabled = L1 cbobarang.Enabled = L1 txtjumlah.Enabled = L1 EndSub Sub ClearText() txtbukti.Text = "" DTTanggal.Value = Now cbosupplier.Text = "" cbobarang.Text = "" txtstok.Text = "" txtjumlah.Text = "" txttotal.Text = "" txtharga.Text = "" txtbeli.Text = "" txtpasang.Text = 0 txtpotongan.Text = 0 txtangkut.Text = 0 txttotbayar.Text = 0 EndSub
PrivateSub txtjumlah_KeyPress( ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtjumlah.KeyPress If Asc(e.KeyChar) <> 8 And (Asc(e.KeyChar) < Asc( "0" ) Or Asc(e.KeyChar) > Asc( "9" )) Then e.KeyChar = "" EndIf EndSub PrivateSub cmdkeluar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdkeluar.Click Me .lv.Items.Clear() Me .Close() EndSub PrivateSub cmdbatal_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbatal.Click Me .lv.Items.Clear() Call ActiveCMD( True , False , False , True ) Call ActiveText( False , False ) Call ClearText() lv.Enabled = True cmdtambah.Enabled = True cmdhapus.Enabled = True EndSub PrivateSub FormBarangKeluar_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase .Load Call ActiveCMD( True , False , False , True ) Call ActiveText( False , False ) Call FillCombo( "select kodepembeli,namapembeli from
tblpembeli" , Me .cbosupplier)
Call FillCombo( "select kodebarang,namabarang from
tblbarang" , Me .cbobarang)
DTTanggal.Value = Now Ketemu = False EndSub PrivateSub cmdtambah_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdtambah.Click Dim K AsInteger Dim totalbeli AsDouble = 0 If txtjumlah.Text <> "" Then If Val(txtjumlah.Text) > Val(txtstok.Text) ThenExitSub IfNot lv.Items.Count = 0 Then
'Menghilangkan area listview yang terpilih
ForEach ListTemp In lv.SelectedItems ListTemp.Selected = False Next For K = 0 To lv.Items.Count - 1 If Trim(lv.Items(K).SubItems(1).Text) = Microsoft.VisualBasic.Left(cbobarang.Text, 5) Then lv.Items(K).Selected = True lv.Items(K).EnsureVisible() MsgBox( "Kode Barang " & cbobarang.Text & " sudah ada dalam daftar" , MsgBoxStyle.Exclamation, "Peringatan" ) cbobarang.Focus() ExitSub EndIf Next EndIf ListTemp = lv.Items.Add(lv.Items.Count + 1) With ListTemp .SubItems.Add(Microsoft.VisualBasic.Left(cbobarang.Text, 5)) .SubItems.Add(Microsoft.VisualBasic.Mid(cbobarang.Text, 7)) .SubItems.Add(txtstok.Text) .SubItems.Add(txtjumlah.Text) .SubItems.Add(Val(txtstok.Text) - Val(txtjumlah.Text)) .SubItems.Add(Val(txtharga.Text)) .SubItems.Add(Val(txttotal.Text)) EndWith cbobarang.Focus() EndIf If lv.Items.Count <> 0 Then For i AsInteger = 0 To lv.Items.Count - 1 totalbeli = totalbeli + lv.Items(i).SubItems(7).Text Next txtbeli.Text = totalbeli EndIf EndSub PrivateSub cmdhapus_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdhapus.Click Dim totalbeli AsDouble = 0 IfNot lv.Items.Count = 0 Then ForEach ListTemp In lv.Items lv.BeginUpdate() If ListTemp.Selected = TrueThen
'MsgBox(ListTemp.SubItems(4).Text) Jumlah Keluar
'MsgBox(ListTemp.SubItems(1).Text) Kode Barang
lv.Items.Remove(ListTemp) EndIf lv.EndUpdate() Next For i AsInteger = 0 To lv.Items.Count - 1 totalbeli = totalbeli + lv.Items(i).SubItems(7).Text Next txtbeli.Text = totalbeli EndIf EndSub PrivateSub cmdbaru_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbaru.Click Call ActiveText( True , False ) txtbukti.Focus() EndSub PrivateSub txtbukti_KeyDown( ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtbukti.KeyDown Dim TempStok AsInteger Dim TempHarga AsDouble If e.KeyCode = Keys.Enter Then IfNot txtbukti.Text = "" Then Dim cf AsString Dim RSCari AsNew ADODB.Recordset cf = "select * from viewbarangkeluar
where nobukti='" & txtbukti.Text & "'"
RSCari.Open(cf, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) With RSCari If .RecordCount > 0 Then Ketemu = True lv.Enabled = False cmdtambah.Enabled = False cmdhapus.Enabled = False txtangkut.Text = RSCari.Fields(9).Value txtpasang.Text = RSCari.Fields(10).Value txtpotongan.Text = RSCari.Fields(11).Value .MoveFirst() DoWhileNot .EOF ListTemp = lv.Items.Add(lv.Items.Count + 1) With ListTemp .SubItems.Add(RSCari.Fields(3).Value) .SubItems.Add(RSCari.Fields(4).Value) TempStok = Val(RSCari.Fields(5).Value) + Val(RSCari.Fields(6).Value) .SubItems.Add(TempStok) .SubItems.Add(RSCari.Fields(5).Value) .SubItems.Add(RSCari.Fields(6).Value) .SubItems.Add(RSCari.Fields(7).Value) TempHarga = Val(RSCari.Fields(5).Value) * Val(RSCari.Fields(7).Value) .SubItems.Add(TempHarga) EndWith txtbeli.Text = Val(txtbeli.Text) + TempHarga .MoveNext() Loop txttotbayar.Text = Val(txtbeli.Text) + Val(txtpasang.Text) + Val(txtangkut.Text) - Val(txtpotongan.Text)
'MsgBox("No Bukti tersebut sudah terdaftar didalam database", MsgBoxStyle.Information, "Warning") 'txtbukti.Focus()
Else Call ActiveCMD( False , True , True , True ) Call ActiveText( False , True ) DTTanggal.Focus() EndIf EndWith EndIf EndIf EndSub PrivateSub cbobarang_SelectedIndexChanged( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbobarang.SelectedIndexChanged txtstok.Text = GetOneRecord( "select
stok,kodebarang from tblbarang where kodebarang='" &
Microsoft.VisualBasic.Left(cbobarang.Text, 5) & "'" ) txtharga.Text = GetOneRecord( "select
harga,kodebarang from tblbarang where kodebarang='" &
Microsoft.VisualBasic.Left(cbobarang.Text, 5) & "'" ) EndSub PrivateSub cmdsimpan_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsimpan.Click Dim intloop AsInteger If Ketemu = TrueThen strSQL = "update tblbantukeluar set
biayaangkut=" & Val(txtangkut.Text) & ",biayapasang=" &
Val(txtpasang.Text) & ",potongan=" & Val(txtpotongan.Text) & " where nobukti='" & txtbukti.Text & "'"
'Eksekusi SQL - simpan ke tabel
oConn.Execute(strSQL) Call cmdbatal_Click(sender, e) Else If lv.Items.Count <> 0 Then
'Simpan Dalam Tabel Masuk
oConn.BeginTrans() For intloop = 0 To lv.Items.Count - 1 strSQL = "Insert Into tblkeluar
Values ('" & _
Trim(txtbukti.Text) & "','" & Format(DTTanggal.Value, "yyyy/MM/dd" ) & "','" & _ Trim(Microsoft.VisualBasic.Left(cbosupplier.Text, 5)) & "','" & Trim(Trim(lv.Items(intloop).SubItems(1).Text)) & "'," & _ Trim(Trim(lv.Items(intloop).SubItems(4).Text)) & "," & _ Trim(Trim(lv.Items(intloop).SubItems(5).Text)) & ")"
'Eksekusi SQL - simpan ke tabel
oConn.Execute(strSQL) Next
'Commit Trans
oConn.CommitTrans()
'Simpan dalam tabel barang
oConn.BeginTrans() For intloop = 0 To lv.Items.Count - 1 strSQL = "update tblbarang set
stok=" & Trim(lv.Items(intloop).SubItems(5).Text) & " where
kodebarang='" & Trim(lv.Items(intloop).SubItems(1).Text)& "'"
'Eksekusi SQL - simpan ke tabel
oConn.Execute(strSQL) Next
'Commit Trans
oConn.CommitTrans()
'Simpan Dalam Tabel BantuMasuk
oConn.BeginTrans() strSQL = "Insert Into tblbantukeluar
Values ('" & _
Trim(txtbukti.Text) & "','" & Format(DTTanggal.Value, "yyyy/MM/dd" ) & "','" & _ Trim(Microsoft.VisualBasic.Left(cbosupplier.Text, 5)) & "'," & Val(txtangkut.Text) & "," & Val(txtpasang.Text) & ",
" & Val(txtpotongan.Text) & ")" 'Eksekusi SQL - simpan ke tabel
oConn.Execute(strSQL)
'Commit Trans
oConn.CommitTrans() Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString
'SQL Laporan
cF = "Select * From viewbarangkeluar
where nobukti='" & txtbukti.Text & "'"
'cF = "select * from querykredit where nobukti between '"
& cboawal.Text & "' and '" & cboakhir.Text & "'"rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep Dim rdReport AsNew RepBarangKeluar rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Kwitansi" c.Show() EndIf Call cmdbatal_Click(sender, e) EndIf EndIf EndSub PrivateSub txtjumlah_Leave( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtjumlah.Leave If txtjumlah.Text <> "" Then If Val(txtjumlah.Text) > Val(txtstok.Text) Then MsgBox( "Maaf, Stok tidak mencukupi untuk
dijual" , MsgBoxStyle.Critical, "Kesalahan" )
txtjumlah.Focus() Else txttotal.Text = Val(txtjumlah.Text) * Val(txtharga.Text) EndIf EndIf EndSub PrivateSub txtpasang_Leave( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtpasang.Leave txttotbayar.Text = Val(txtbeli.Text) + Val(txtpasang.Text) + Val(txtangkut.Text) - Val(txtpotongan.Text) EndSub PrivateSub txtangkut_Leave( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtangkut.Leave txttotbayar.Text = Val(txtbeli.Text) + Val(txtpasang.Text) + Val(txtangkut.Text) - Val(txtpotongan.Text) EndSub PrivateSub txtpotongan_Leave( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtpotongan.Leave txttotbayar.Text = Val(txtbeli.Text) + Val(txtpasang.Text) + Val(txtangkut.Text) - Val(txtpotongan.Text) EndSub EndClass
5. Form Konfigurasi
PublicClass FormKonfigurasi Dim sConn AsNew ADODB.Connection PrivateSub Button3_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click End EndSub PrivateSub Button2_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click main( "stocknet" , txtds.Text, txtuser.Text, txtpass.Text) Me .Hide() FormUtama.Show() EndSub Function cekKoneksi( ByVal ssInitCatalog AsString , ByVal sServer AsString , ByVal sUsername AsString , ByVal sPassword AsString ) AsBoolean Dim strTestKoneksi AsString = Nothing Try
'oConn.ConnectionString = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=Jepara;User
ID=sa;Password=darkangel"
strTestKoneksi = "Provider=SQLOLEDB;Data
Source=" & sServer & ";Initial Catalog=" & ssInitCatalog
& ";USER ID=" & sUsername & ";Password=" & sPassword sConn.ConnectionString = strTestKoneksi sConn.Open() MsgBox( "Test Connection Success...." , MsgBoxStyle.Information, "Pesan" ) cekKoneksi = True Button2.Enabled = True Catch ex As Exception cekKoneksi = False MsgBox( "Please check your connection
setting..." , MsgBoxStyle.Exclamation, "Peringatan" )
EndTry EndFunction PrivateSub FormKonfigurasi_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase .Load Button2.Enabled = False
EndSub PrivateSub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If cekKoneksi( "stocknet" , txtds.Text, txtuser.Text, txtpass.Text) Then Button2.Enabled = True EndIf EndSub EndClass
6. Form Satuan
PublicClass FormSatuan Sub ActiveCMD( ByVal L0 AsBoolean , ByVal L1 AsBoolean , ByVal L2 AsBoolean , ByVal L3 AsBoolean , ByVal L4 AsBoolean , ByVal L5 AsBoolean ) cmdbaru.Enabled = L0 cmdsimpan.Enabled = L1 cmdedit.Enabled = L2 cmdhapus.Enabled = L3 cmdbatal.Enabled = L4 cmdkeluar.Enabled = L5 EndSub Sub ActiveText( ByVal L0 AsBoolean , ByVal L1 AsBoolean ) txtkode.Enabled = L0 txtnama.Enabled = L1 EndSub Sub ClearText() txtkode.Text = "" txtnama.Text = "" EndSub Sub IsiListview() Dim cF AsString Dim rsTampil AsNew ADODB.Recordset Dim i AsInteger Me .lv.Items.Clear() cF = "Select * From tblpembeli" With rsTampil
'Buka recordset
.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If .RecordCount <> 0 Then .MoveFirst() DoWhileNot .EOF i = i + 1 ListTemp = lv.Items.Add(i) ListTemp.SubItems.Add(rsTampil(0).Value) ListTemp.SubItems.Add(rsTampil(1).Value) .MoveNext() Loop EndIf EndWith EndSub PrivateSub cmdkeluar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdkeluar.Click Me .Close() EndSub PrivateSub FormSatuan_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase .Load Call ActiveCMD( True , False , False , False , False , True ) Call ActiveText( False , False ) Call IsiListview() EndSub PrivateSub cmdbatal_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbatal.Click Call ActiveCMD( True , False , False , False , False , True ) Call ActiveText( False , False ) Call ClearText() Call IsiListview() EndSub PrivateSub cmdbaru_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbaru.Click Call ActiveText( True , False ) txtkode.Focus() EndSub PrivateSub txtkode_KeyDown( ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtkode.KeyDown If e.KeyCode = Keys.Enter Then IfNot txtkode.Text = "" Then Dim cF AsString
Dim rsTampil AsNew ADODB.Recordset cF = "Select * From tblpembeli Where
kodepembeli= '" & txtkode.Text & "'"
With rsTampil
'Buka recordset
.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
'Jika terdaftar, maka tampilkan
If .RecordCount > 0 Then txtnama.Text = rsTampil(1).Value Call ActiveCMD( False , False , True , True , True , True ) Call ActiveText( False , True ) Else Call ActiveCMD( False , True , False , False , True , True ) Call ActiveText( False , True ) EndIf EndWith
'Tutup RS
Call CloseRS(rsTampil) txtnama.Focus() EndIf EndIf EndSub PrivateSub cmdsimpan_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsimpan.Click Dim cF AsString Dim rsTampil AsNew ADODB.Recordset cF = "insert into tblpembeli values('" & txtkode.Text & "','" & txtnama.Text & "')" rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) Call cmdbatal_Click(sender, e) EndSub PrivateSub cmdedit_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdedit.Click Dim cF AsString Dim rsTampil AsNew ADODB.Recordset cF = "update tblpembeli set namapembeli='" & txtnama.Text & "' where kodepembeli='" & txtkode.Text & "'" rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) Call cmdbatal_Click(sender, e) EndSub PrivateSub cmdhapus_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdhapus.Click If MsgBox( "Apakah record ini mau dihapus?" , MsgBoxStyle.YesNo, "Konfirmasi" ) = MsgBoxResult.Yes Then Dim cF AsString Dim rsTampil AsNew ADODB.Recordset cF = "delete from tblpembeli where
kodepembeli='" & txtkode.Text & "'"
rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) MsgBox( "Record berhasil dihapus" , MsgBoxStyle.OkOnly, "Informasi" ) Call cmdbatal_Click(sender, e) EndIf EndSub EndClass
7. Form Seleksi Keluar
PublicClass FormSeleksiKeluar PrivateSub Button3_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me .Close() EndSub PrivateSub FormSeleksiKeluar_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase .Load Call FillCombo( "select distinct nobukti from
tblbantukeluar" , cboawal, False )
Call FillCombo( "select distinct nobukti from
tblbantukeluar" , cboakhir, False )
EndSub PrivateSub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString
'SQL Laporan
cF = "Select * From viewbarangkeluar Order By
nobukti"
rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep Dim rdReport AsNew RepBarangKeluar rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Laporan Barang Keluar" c.Show() Else Call CloseRS(rsCetak) MsgBox( "Tidak ada data untuk dicetak !" , vbCritical, "Print" ) ExitSub EndIf EndSub PrivateSub Button4_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString
'SQL Laporan
cF = "select * from viewbarangkeluar where
tanggalkeluar between '" & Format(dtawal.Value, "yyyy-MM-
dd" ) & "' and '" & Format(dtakhir.Value, "yyyy-MM-dd" ) & "'"
rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep Dim rdReport AsNew RepBarangKeluar rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Laporan Barang Keluar Per Tanggal" c.Show() Else Call CloseRS(rsCetak) MsgBox( "Tidak ada data untuk dicetak !" , vbCritical, "Print" )
ExitSub EndIf EndSub PrivateSub Button5_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString
'SQL Laporan
cF = "Select * From viewbarangkeluar Order By
nobukti"
rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep Dim rdReport AsNew RepBarangKeluar rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Laporan Barang Keluar" c.Show() Else Call CloseRS(rsCetak) MsgBox( "Tidak ada data untuk dicetak !" , vbCritical, "Print" ) ExitSub EndIf EndSub PrivateSub Button2_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim rsCetak AsNew ADODB.Recordset 'Report Recordset Dim cF AsString
'SQL Laporan
cF = "Select * From viewbarangkeluar where
nobukti between '" & cboawal.Text & "' and '" &
cboakhir.Text & "'"
'cF = "select * from querykredit where nobukti between '"
& cboawal.Text & "' and '" & cboakhir.Text & "'"rsCetak.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly) If rsCetak.RecordCount > 0 Then Dim c AsNew FormRep
Dim rdReport AsNew RepBarangKeluar rdReport.SetDataSource(rsCetak) c.CrystalReportViewer1.ReportSource = rdReport rdReport.Refresh() c.Text = "Laporan Barang Keluar" c.Show() Else Call CloseRS(rsCetak) MsgBox( "Tidak ada data untuk dicetak !" , vbCritical, "Print" ) ExitSub EndIf EndSub EndClass
8. Form Pembeli
Public Class FormSatuan Sub ActiveCMD( ByVal L0 As Boolean , ByVal L1 As
Boolean , ByVal L2 As Boolean , ByVal L3 As Boolean , ByVal L4 As Boolean , ByVal L5 As Boolean ) cmdbaru.Enabled = L0 cmdsimpan.Enabled = L1 cmdedit.Enabled = L2 cmdhapus.Enabled = L3 cmdbatal.Enabled = L4 cmdkeluar.Enabled = L5
End Sub Sub ActiveText( ByVal L0 As Boolean , ByVal L1 As
Boolean ) txtkode.Enabled = L0 txtnama.Enabled = L1
End Sub Sub ClearText() txtkode.Text = "" txtnama.Text = ""
End Sub Sub IsiListview()
Dim cF As String Dim rsTampil As New ADODB.Recordset Dim i As Integer
Me .lv.Items.Clear() cF = "Select * From tblpembeli"
End Sub Private Sub FormSatuan_Load( ByVal sender As
True ) Call ActiveText( False , False ) Call ClearText() Call IsiListview()
System.Object, ByVal e As System.EventArgs) Handles cmdbatal.Click Call ActiveCMD( True , False , False , False , False ,
End Sub Private Sub cmdbatal_Click( ByVal sender As
Call ActiveText( False , False ) Call IsiListview()
Call ActiveCMD( True , False , False , False , False , True )
System.Object, ByVal e As System.EventArgs) Handles MyBase .Load
System.Object, ByVal e As System.EventArgs) Handles cmdkeluar.Click Me .Close()
With rsTampil
End With End Sub Private Sub cmdkeluar_Click( ByVal sender As
Loop End If
Do While Not .EOF i = i + 1 ListTemp = lv.Items.Add(i) ListTemp.SubItems.Add(rsTampil(0).Value) ListTemp.SubItems.Add(rsTampil(1).Value) .MoveNext()
If .RecordCount <> 0 Then .MoveFirst()
.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
'Buka recordset
End Sub
Private Sub cmdbaru_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbaru.Click
Call ActiveText( True , False ) txtkode.Focus()
End Sub Private Sub txtkode_KeyDown( ByVal sender As
System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtkode.KeyDown
If e.KeyCode = Keys.Enter Then If Not txtkode.Text = "" Then
Dim cF As String Dim rsTampil As New ADODB.Recordset cF = "Select * From tblpembeli Where
kodepembeli= '" & txtkode.Text & "'"
With rsTampil
'Buka recordset
.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
'Jika terdaftar, maka tampilkan
If .RecordCount > 0 Then txtnama.Text = rsTampil(1).Value
Call ActiveCMD( False , False , True , True , True , True )
Call ActiveText( False , True ) Else
Call ActiveCMD( False , True , False , False , True , True )
Call ActiveText( False , True ) End If
End With
'Tutup RS
Call CloseRS(rsTampil) txtnama.Focus()
End If End If
End Sub Private Sub cmdsimpan_Click( ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles cmdsimpan.Click Dim cF As String Dim rsTampil As New ADODB.Recordset cF = "insert into tblpembeli values('" & txtkode.Text & "','" & txtnama.Text & "')" rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
Call cmdbatal_Click(sender, e) End Sub Private Sub cmdedit_Click( ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles cmdedit.Click Dim cF As String Dim rsTampil As New ADODB.Recordset cF = "update tblpembeli set namapembeli='" & txtnama.Text & "' where kodepembeli='" & txtkode.Text &
"'"
rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
Call cmdbatal_Click(sender, e) End Sub Private Sub cmdhapus_Click( ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles cmdhapus.Click If MsgBox( "Apakah record ini mau dihapus?" ,
MsgBoxStyle.YesNo, "Konfirmasi" ) = MsgBoxResult.Yes Then Dim cF As String Dim rsTampil As New ADODB.Recordset cF = "delete from tblpembeli where
kodepembeli='" & txtkode.Text & "'"
rsTampil.Open(cF, oConn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) MsgBox( "Record berhasil dihapus" , MsgBoxStyle.OkOnly, "Informasi" )
Call cmdbatal_Click(sender, e) End If
End Sub End Class