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