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
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)
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 "& _
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
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
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"
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
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
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(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
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)
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 = ""
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 = ""
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
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
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 =
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
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
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
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)
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
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"
.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
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='"&
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
'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)
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 & "'"
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
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()
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()
Loop End If End With End Sub
Private Sub cmdkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdkeluar.Click
Me.Close() End Sub
Private Sub FormSatuan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call ActiveCMD(True, False, False, False, False, True)
Call ActiveText(False, False) Call IsiListview()
End Sub
Private Sub 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()
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
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