Payroll system
-
Upload
wirat-mojo -
Category
Education
-
view
2.058 -
download
2
description
Transcript of Payroll system
STEP BY STEP TO BUILD PAYROLL SYSTEM 2011 USING VB.NET & SQL 2005 In this presentation we will guide you to how to build your first application in VB.Net. we will show you step by step until the program is running well at your PC. So please read and understand it carefully to finished this system.
2011
B.WIRATMOJO Work for Bridgestone Tire Indonesia, PT
6/11/2011
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 2
Prakata Penulis Dear all,
Ini diperuntukan untuk semua kalangan yang sedang beralih dari VB 6.0 ke VB.Net atau
memang sedang belajar dari nol VB.Net. ini adalah tugas UAS pada saat Penulis menjalani
kuliahnya di STMIK Bina Insani Bekasi pada jenjang Strata 1. Tulisan ini pun di dedikasikan
sebagai sumbangsih Penulis kepada teman-teman semua yang ingin belajar, yang diharapkan
menjadi pahala yang auto debet, sebagaimana kata orang jaman dulu, “ilmu yang bermanfaat”
adalah termasuk dari 3 amalan yang pahalanya tidak terputus walaupun orang itu sudah
meninggal dunia.
Sebuah CATATAN penting !! disini Penulis menganggap bahwa semua pembaca sudah
mengetahui dasar-dasar penggunaan VB.Net dan Database SQL Server 2005. Pada system
aplikasi Payroll ini Penulis menggunakan VB.Net 2008. Karena Penulis tidak menjelaskan
bagaimana Instalasi SQL Server 2005 dan VB.Net itu sendiri.
Note :
SQL Server 2005 ada beberapa versi, yaitu untuk computer 32 bit dan 64 bit, jadi
sebelum install silahkan lihat PC anda support untuk yang mana.
Bagi yang tidak menggunakan SQL Server 2005 dapat menggunakan SQL Server 2000,
Penulis pastikan semua pembuatan Query sama persis !! karena Syntax SQL adalah bahasa
umum yang dapat di pakai hampir di semua Aplikasi Database.
Bekasi, 11 Juni 2011
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 3
MEMBUAT DATABASE Nah tentunya sebelum membuat aplikasi apapun kita perlu untuk mendesain Database
sebaik-baiknya, karena disinilah data-data yang kita proses dengan query DML (Data
Manipulation Language) akan di sajikan, relasi atar data, antar table yang ada haruslah relevan.
Klik kanan pada folder “Database” pilih “New Database…”
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 4
Pada Text “Database name” isikan dengan “PAYROL_DB” atau dengan nama database
yang kawan inginkan, TAPI.. harus di ingat benar-benar hingga applikasi selesai dibuat, karena
penamaan apapun saat memrogram adalah sangat penting untuk di ingat..
Pada Grid “Path” Ubahlah direktorinya sesuai yang anda inginkan, disini Penulis sudah
membuatkan “Folder” khusus pada drive D: untuk semua Database SQL 2005 yang dimiliki.
Untuk mengamankan data bila terjadi masalah dengan system windows yang secara default
terinstal pada drive C:
Klik button “OK” maka database “PAYROL_DB” sudah terbentuk !!
WELL DONE to Create Database Application !!
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 5
Membuat Tabel-Tabel Pilih “New Query” untuk membuat table pada system kita.
Nama Database
Execute Syntax
Cek Syntax
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 6
Pastikan nama database yang akan kita buatkan table didalamnya “Cloud Nama
Database” lalu ketikan syntax Create Database didalamnya sbb :
Membuat TABEL_LOGIN
Create Table TABEL_LOGIN(IDUSER Varchar(2) Not Null Primary Key, USERNAMELOG Varchar(25), ACCESS Varchar (5),PASSWORDLOG Varchar(25))
Cek kebenaran pada penulisan syntax SQL Query anda tersebut dengan klik “Cloud Cek
Syntax”. Seharusnya pada kolon “Message” dibawahnya tertulis “Command(s) completed
successfully.” Ini artinya syntax BENAR. Bila “Message” error pastikan kembali syntax anda,
karena sudah pasti ada kesalahan yang terjadi.
Klik “! Execute” untuk menjadikan tabel pada database PAYROL_DB dengan syntax
tersebut.
WELL DONE TABEL_LOGIN has been created
Membuat TABEL_CITY
Lakukanlah hal yang sama saat membuat tabel sebelumnya lalu ketikan sytax sbb: Create Table TABEL_CITY(IDCITY Varchar(2) Not Null Primary Key, NAMACITY
Varchar(25))
WELL DONE TABEL_CITY has been created
Membuat TABEL_PEGAWAI
Lakukanlah hal yang sama saat membuat tabel sebelumnya lalu ketikan sytax sbb: Create Table TABEL_PEGAWAI(NIP Varchar(10) Not Null Primary Key, NAMAPEGAWAI Varchar(25), TGLLAHIR Varchar(10), ALAMAT varchar(50), IDCITY varchar(2), KODEPOS
varchar(5))
WELL DONE TABEL_PEGAWAI has been created
Membuat TABEL_UAS
Lakukanlah hal yang sama saat membuat tabel sebelumnya lalu ketikan sytax sbb: Create Table TABEL_UAS(NOPAYROLL Varchar(7) Not Null Primary Key, IDUSER Varchar(2), NIP Varchar(10), NPWP varchar(15), GAJIBULAN varchar(15), JABATAN nchar(10),GOLONGAN nchar(10), GAJI decimal (18,0), TUNJANGAN decimal(18,0), POTONGAN decimal (18,0), SEBULANLEMBUR varchar(5), UANGLEMBURAN decimal(18,0), GAJIBERSIH decimal (18,0), TAHUN nchar (10))
WELL DONE TABEL_UAS has been created
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 7
Membuat User Login Selamat anda saat ini sudah menjajaki step berikutnya yaitu membuat User Login untuk
digunakan saat aplikasi nanti di run, karena sebelumnya anda sudah berjibaku dengan syntax
dasar Query SQL untuk membuat tabel-tabel pada system ini.
Pada View Database SQL Server 2005 pilih folder “Security” – “Logins” – klik kanan – “New
Login”. Lalu perhatikan dengan seksama setting user anda ini ya pada gambar dan penjelasan
berikutnya??
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 8
Pada Page “General”
Login Name : uas Password : 123 Confirm Password : 123 Default database : PAYROL_DB Default language : English Pada Page “Server Role” Centang “sysadmin” Pada Page “User Mapping” Centang “PAYROL_DB” Pada Page “Status” Permission to connect to database engine pilih “Grant” Login pilih “Enabled” OK WELL DONE your user login to the database system has been created !
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 9
Membuat Stored Procedure SELAMAT !! akhirnya anda sampai pada step yang lebih menantang anda dan menguji semangat programming anda, yaitu pembuatan Stored Procedure. Yuk mari lanjut mang… Nah masih sama saat membuat tabel, bukalah “New Query” pastikan nama databasenya untuk dibuatkan Stored Procedurenya
Membuat Stored Procedure INPUT TABEL LOGIN Ketikan syntax SQL sbb: Create Procedure StoreINPUT_TABEL_LOGIN @IDUSER Varchar(02), @USERNAMELOG Varchar(25), @ACCESS Varchar(05), @PASSWORDLOG Varchar(25) As Insert TABEL_LOGIN Values(@IDUSER,@USERNAMELOG,@ACCESS,@PASSWORDLOG) Membuat Stored Procedure DELETE TABEL LOGIN Ketikan syntax SQL sbb: Create Procedure StoreDELETE_TABEL_LOGIN @IDUSER Varchar(02) As Delete From TABEL_LOGIN Where IDUSER=@IDUSER Membuat Stored Procedure UPDATE TABEL LOGIN Ketikan syntax SQL sbb: Create Procedure StoreUPDATE_TABEL_LOGIN @IDUSER Varchar(02), @USERNAMELOG Varchar(25), @ACCESS Varchar(05), @PASSWORDLOG Varchar(25) As Update TABEL_LOGIN Set USERNAMELOG=@USERNAMELOG, ACCESS=@ACCESS, PASSWORDLOG=@PASSWORDLOG Where IDUSER=@IDUSER Membuat Stored Procedure SPI PEGAWAI Ketikan syntax SQL sbb: Create Procedure SPI_PEGAWAI @NIP Varchar(10), @NAMAPEGAWAI Varchar(25), @TGLLAHIR Varchar(10), @ALAMAT Varchar(50), @IDCITY Varchar(02), @KODEPOS Varchar(5) As Insert TABEL_PEGAWAI Values (@NIP, @NAMAPEGAWAI, @TGLLAHIR, @ALAMAT, @IDCITY, @KODEPOS)
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 10
Membuat Stored Procedure SPD PEGAWAI Ketikan syntax SQL sbb: Create Procedure SPD_PEGAWAI @NIP Varchar(10) As Delete From TABEL_PEGAWAI Where NIP = @NIP Membuat Stored Procedure SPU PEGAWAI Ketikan syntax SQL sbb: Create Procedure SPU_PEGAWAI @NIP Varchar(10), @NAMAPEGAWAI Varchar(25), @TGLLAHIR Varchar(10), @ALAMAT Varchar(50), @IDCITY Varchar(02), @KODEPOS Varchar(5) As Update TABEL_PEGAWAI Set NAMAPEGAWAI = @NAMAPEGAWAI, TGLLAHIR = @TGLLAHIR, ALAMAT = @ALAMAT, IDCITY = @IDCITY, KODEPOS = @KODEPOS Where NIP = @NIP Note : pada saat pembuatan ini pastikan semua Data Type dan Character adalah sesuai dengan yang ada pada database, juga perintah SQL untuk DML (Data Manipulation Language) apa itu INSERT, DELETE dan UPDATE, jadi intinya bukan hanya sekedar copy, paste. Tapi pemahaman tentu jauh lebih penting !! WELL DONE your Stored Procedures have been created !!
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 11
Membuat Aplikasi PAYROLL SYSTEM Nnaaahh.. step ini akan semakin menantang, karena disinilah kita akan berkoding-koding ria, siapkan minuman anda juga cemilan, cepuluh, cebelas (lho?? Ngitung??) [intermezzo]. Bukalah project VB.Net anda dan beri nama aplikasinya “NEW-PAYROLL-SYSTEM”. Lalu pada “Solution Explorer” klik kanan pada project “NEW-PAYROLL-SYSTEM” dan tambahkan beberapa folder (APPLICATION FORM, CLASS, MODULE, REPORT, REPORT FORM) seperti gambar dibawah.
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 12
Folder-folder yang sudah kita buat tersebut akan mempermudah kita saat membuat aplikasi, karena disini kita secara tidak langsung sudah menerapkan konsep OOP sederhana.. yaitu ENKAPSULASI.. (wiidiih bahasanya..??). intinya akan lebih tertata rapi aja sih hehehe..
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 13
Membuat References dan Settings Bab ini akan sangat membantu kita saat berinteraksi dengan database SQL dan Crystal Report nantinya. Dengan men=setting 2 hal ini maka data koneksi dan penggunaan tools untuk saat INHERITANCE system VB.Net itu sendiri. References Klik kanan pada “My Project” di “Solution Explorer” – “Open”. Pada tab “References” tambahkan beberapa referensi system turunananya dengan klik “Add” dan pilih tab “.NET” sbb :
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 14
Settings Pilih tab “Settings” Isi grid “Name” KONEKSI_DBASE, “Type” (Connection string), “Scope” Application
Namun untuk “Value” ini ada spesialisasi khusus, klik saja ujung grid Value tersebut seperti terlihat pada gambar disamping.
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 15
Datasource : Microsoft SQL Server (SqlClient) bila belum sesuai klik button “Change” Server Name : WIRAT-KOMP (ini adalah nama server SQL 2005 anda) bila tidak suka, maka ada 2 cara, 1. Isikan “Localhost”, 2. Isikan “./SQLEXPRESS” Log on to the server : Pilih “Use Windows Authentification” Connect to a database : Pilih “Select or enter a database name PAYROL_DB atau isi dengan nama database yang akan di kunci koneksinya. Test Connection : Message-nya harus “ Test connection succeeded” bila error, wah itu artinya anda harus mengulangi setting hingga koneksi OK, dan jangan pernah lanjut ke step berikutnya bila ini tidak sesuai !!!
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 16
Membuat CLASS Pada bab pembuatan Class PAYROL SYSTEM akan memiliki 3 CLASSES, yaitu Class Koneksi Database, Class Manipulasi Data atau DML dan Class Terbilang. Untuk dapat membuat Class-Class tersebut ikutilah langkahnya berikut ini. Klik kanan pada folder “CLASS” di dalam “Solution Explorer” tambahakanlah sebuah Class sbb :
Class Pertama, beri nama class ini dengan “ClassKONEKSIDATABASE” Dan isilah syntaxnya sbb : Imports System.Data Imports System.Data.SqlClient Namespace AKSESDATA Public Class ClassKONEKSIDATABASE Dim KONEKSI As SqlConnection = New SqlConnection(My.Settings.KONEKSI_DBASE) Public Function BukaKoneksi() As SqlConnection KONEKSI.Open() Return KONEKSI End Function Public Function TutupKoneksi() As SqlConnection KONEKSI.Close()
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 17
Return KONEKSI End Function End Class End Namespace Class Kedua, beri nama class ini dengan “CLASS_TERBILANG” Dan isilah syntaxnya sbb : Public Class CLASS_TERBILANG Public Function ANGKA_TERBILANG(ByVal N As Double) As String Dim SATUAN As String() = {"", "SATU", "DUA", "TIGA", "EMPAT", "LIMA", _ "ENAM", "TUJUH", "DELAPAN", "SEMBILAN", "SEPULUH", "SEBELAS"} Select Case n Case 0 To 11 ANGKA_TERBILANG = " " + SATUAN(Fix(n)) Case 12 To 19 ANGKA_TERBILANG = ANGKA_TERBILANG(N Mod 10) + " BELAS" Case 20 To 99 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 10)) + " PULUH" + _ ANGKA_TERBILANG(N Mod 10) Case 100 To 199 ANGKA_TERBILANG = " SERATUS" + ANGKA_TERBILANG(N - 100) Case 200 To 999 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 100)) + " RATUS" + _ ANGKA_TERBILANG(N Mod 100) Case 1000 To 1999 ANGKA_TERBILANG = " SERIBU" + ANGKA_TERBILANG(N - 1000) Case 2000 To 999999 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 1000)) + " RIBU" + _ ANGKA_TERBILANG(N Mod 1000) Case 1000000 To 999999999 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 1000000)) + " JUTA" + _ ANGKA_TERBILANG(N Mod 1000000) Case 1000000000 To 999999999999 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 1000000000)) + " MILYAR" + _ ANGKA_TERBILANG(N Mod 1000000000) Case Else ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 1000000000000)) + " TRILYUN" + _ ANGKA_TERBILANG(N Mod 1000000000000) End Select End Function End Class
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 18
Class Kedua, beri nama class ini dengan “Class_MANIPULASIDATA” Dan isilah syntaxnya sbb : Imports System.Data Imports System.Data.SqlClient Namespace AKSESDATA Public Class ClassMANIPULASIDATA Public Function AddDATA(ByVal IDUSER As String, ByVal USERNAMELOG As String, ByVal ACCESS As String, ByVal PASSWORDLOG As String) As SqlCommand Dim KoneksiKU As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("StoreINPUT_TABEL_LOGIN", KoneksiKU.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM_IDUSER As New SqlParameter("@IDUSER", SqlDbType.VarChar, 2) PRM_IDUSER.Value = IDUSER Dim PRM_USERNAME As New SqlParameter("@USERNAMELOG", SqlDbType.VarChar, 25) PRM_USERNAME.Value = USERNAMELOG Dim PRM_ACCESS As New SqlParameter("@ACCESS", SqlDbType.VarChar, 5) PRM_ACCESS.Value = ACCESS Dim PRM_PASSWORD As New SqlParameter("@PASSWORDLOG", SqlDbType.VarChar, 25) PRM_PASSWORD.Value = PASSWORDLOG With Command.Parameters .Add(PRM_IDUSER) .Add(PRM_USERNAME) .Add(PRM_ACCESS) .Add(PRM_PASSWORD) End With Command.ExecuteNonQuery() Dim HASIL As New SqlCommand("", KoneksiKU.TutupKoneksi) Return HASIL End Function Public Function UpdateDATA(ByVal IDUSER As String, ByVal USERNAMELOG As String, ByVal ACCESS As String, ByVal PASSWORDLOG As String) As SqlCommand Dim KoneksiKU As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("StoreUPDATE_TABEL_LOGIN", KoneksiKU.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 19
Dim PRM_IDUSER As New SqlParameter("@IDUSER", SqlDbType.VarChar, 2) PRM_IDUSER.Value = IDUSER Dim PRM_USERNAME As New SqlParameter("@USERNAMELOG", SqlDbType.VarChar, 25) PRM_USERNAME.Value = USERNAMELOG Dim PRM_ACCESS As New SqlParameter("@ACCESS", SqlDbType.VarChar, 5) PRM_ACCESS.Value = ACCESS Dim PRM_PASSWORD As New SqlParameter("@PASSWORDLOG", SqlDbType.VarChar, 25) PRM_PASSWORD.Value = PASSWORDLOG With Command.Parameters .Add(PRM_IDUSER) .Add(PRM_USERNAME) .Add(PRM_ACCESS) .Add(PRM_PASSWORD) End With Command.ExecuteNonQuery() Dim HASIL As New SqlCommand("", KoneksiKU.TutupKoneksi) Return HASIL End Function Public Function DeleteDATA(ByVal IDUSER As String) As SqlCommand Dim KoneksiKU As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("StoreDELETE_TABEL_LOGIN", KoneksiKU.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM_IDUSER As New SqlParameter("IDUSER", SqlDbType.VarChar, 2) PRM_IDUSER.Value = IDUSER Command.Parameters.Add(PRM_IDUSER) Command.ExecuteNonQuery() Dim HASIL As New SqlCommand("", KoneksiKU.TutupKoneksi) Return HASIL End Function Public Function TambahData(ByVal NIP As String, ByVal Nama As String, _ ByVal TglLahir As String, ByVal Alamat As String, ByVal IdCity As String, _ ByVal KodePos As String) As SqlCommand Dim Koneksiku As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("SPI_PEGAWAI", Koneksiku.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM1 As New SqlParameter("@NIP", SqlDbType.VarChar, 10) PRM1.Value = NIP
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 20
Dim PRM2 As New SqlParameter("@NAMAPEGAWAI", SqlDbType.VarChar, 25) PRM2.Value = Nama Dim PRM3 As New SqlParameter("@TGLLAHIR", SqlDbType.VarChar, 10) PRM3.Value = TglLahir Dim PRM4 As New SqlParameter("@ALAMAT", SqlDbType.VarChar, 50) PRM4.Value = Alamat Dim PRM5 As New SqlParameter("@IDCITY", SqlDbType.VarChar, 20) PRM5.Value = IdCity Dim PRM6 As New SqlParameter("@KODEPOS", SqlDbType.VarChar, 5) PRM6.Value = KodePos With Command.Parameters .Add(PRM1) .Add(PRM2) .Add(PRM3) .Add(PRM4) .Add(PRM5) .Add(PRM6) End With Command.ExecuteNonQuery() Dim Hasil As New SqlCommand("", Koneksiku.TutupKoneksi) Return Hasil End Function Public Function UbahData(ByVal NIP As String, ByVal Nama As String, _ ByVal TglLahir As String, ByVal Alamat As String, ByVal IdCity As String, _ ByVal KodePos As String) As SqlCommand Dim Koneksiku As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("SPU_PEGAWAI", Koneksiku.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM1 As New SqlParameter("@NIP", SqlDbType.VarChar, 10) PRM1.Value = NIP Dim PRM2 As New SqlParameter("@NAMAPEGAWAI", SqlDbType.VarChar, 25) PRM2.Value = Nama Dim PRM3 As New SqlParameter("@TGLLAHIR", SqlDbType.VarChar, 10) PRM3.Value = TglLahir Dim PRM4 As New SqlParameter("@ALAMAT", SqlDbType.VarChar, 50) PRM4.Value = Alamat Dim PRM5 As New SqlParameter("@IDCITY", SqlDbType.VarChar, 20) PRM5.Value = IdCity Dim PRM6 As New SqlParameter("@KODEPOS", SqlDbType.VarChar, 5)
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 21
PRM6.Value = KodePos With Command.Parameters .Add(PRM1) .Add(PRM2) .Add(PRM3) .Add(PRM4) .Add(PRM5) .Add(PRM6) End With Command.ExecuteNonQuery() Dim Hasil As New SqlCommand("", Koneksiku.TutupKoneksi) Return Hasil End Function Public Function HapusData(ByVal NIP As String) As SqlCommand Dim Koneksiku As New AksesData.ClassKONEKSIDATABASE Command = New SqlCommand("SPD_PEGAWAI", koneksiku.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM1 As New SqlParameter("@NIP", SqlDbType.VarChar, 10) PRM1.Value = NIP Command.Parameters.Add(PRM1) Command.ExecuteNonQuery() Dim Hasil As New SqlCommand("", Koneksiku.TutupKoneksi) Return Hasil End Function End Class End Namespace
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 22
Membuat Module Untuk Module pada aplikasi PAYROLL akan menggunakan 2 Module. Caranya? Ikuti stepnya. Klik kanan pada folder “MODULE” tambahkan sebuah Module.
Module Pertama, beri nama dengan “ModuleKONEKSI” Lalu isikan koding berikut : Imports System.Data.OleDb Module ModuleKONEKSI Public CONN As ADODB.Connection Public Sub KONEKSI_DATABASE() CONN = New ADODB.Connection CONN.Open("Provider=SQLOLEDB; Data Source=WIRAT-KOMP; User Id=uas; Password=123; Initial Catalog=PAYROL_DB;") End Sub End Module Module Kedua, beri nama dengan “ModuleUMUM” Lalu isikan koding berikut : Imports System.Data.SqlClient Module ModuleUMUM Public MSG As Integer Public intResponse As SqlCommand Public Command As SqlCommand Public DataAdapter As SqlDataAdapter Public DataReader As SqlDataReader Public strSQL As String Public Username, Password, Access, IdUser As String Public DS As New DataSet Public DT As New DataTable End Module
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 23
Membuat Form Aplikasi Salut for everybody sekarang saatnya kita untuk lanjut ke step berikutnya yaitu pembuatan Form Aplikasi. Akan ada 11 Form Aplikasi (FormTESKONEKSI_ADODB_SQL, FormSPLASH, FormUSER, FormLISTUSERSYSTEM, FormLOGIN, FormUTAMA, FormPROGRAMMER, FormCITY, FormPEGAWAI, FormTRANSAKSI, FormSLIPGAJI) FormTESKONEKSI_ADODB_SQL Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, beri nama form tersebut dengan “FormTESKONEKSI_ADODB_SQL”
Buatlah form dengan setting seperti dibawah
Keterangan Toolbox : 2 buah Label Beri nama salah satu label dengan “LblSTATUS” bold perbesar font-nya Form ini akan berfungsi sebagai langkah awal anda sebelum ngoding lebih jauh. Dan jangan pernah coba ke step berikutnya bila koneksi database GAGAL disini, karena akan percuma, pasti hanya masalah demi masalah yang terjadi nantinya…
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 24
Lalu isikan syntax berikut : Imports System.Data Imports System.Data.SqlClient Public Class FormTESKONEKSI_ADODB_SQL Private Sub FormTESKONEKSI_ADODB_SQL_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Dim Conn As New SqlConnection("Server=WIRAT-KOMP;Uid=uas;Pwd=123;Database=PAYROL_DB") Conn.Open() If (Conn.State = ConnectionState.Open) Then LblSTATUS.Text = "SELAMAT !!! ANDA BERHASIL KONEK KE SQL SERVER DI JARINGAN ANDA" End If Conn.Close() Catch ex As Exception LblSTATUS.Text = "KONEKSI GAGAL TOTAL !!!!!, SILAHKAN KONTAK ADMINISTRATOR ANDA" End Try End Sub End Class
FormUSER Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormUSER”
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 25
Keterangan Toolbox : 2 GroupBox 5 Button 4 TextBox 1 ComboBox 5 Label 2 GroupBox : GroupBox Button dan GroupBox Data 5 Button : BtnINSERT, BtnDELETE, BtnUPDATE, BtnCLOSE, BtnLISTDATA 4 TextBox : TxtIDUSER, TxtUSERNAME, TxtPASSWORD, TxtVERIFYPASSWORD 1 ComboBox : CmbACCESS 5 Label : IDUSER, USERNAME, ACCESS, PASSWORD, VERIFY PASSWORD Lalu isikan syntax-nya sbb : Public Class FormUSER Private Sub FormUSER_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call HURUF() Call TEXT_TIDAK_AKTIF() Call COMBOACCESS() End Sub Private Sub COMBOACCESS() CmbACCESS.Items.Clear() CmbACCESS.Items.Add("ADMIN") CmbACCESS.Items.Add("USER") End Sub Private Sub HURUF() TxtUSERNAME.CharacterCasing = CharacterCasing.Upper TxtPASSWORD.CharacterCasing = CharacterCasing.Upper TxtVERIFYPASSWORD.CharacterCasing = CharacterCasing.Upper End Sub Private Sub TEXT_TIDAK_AKTIF() TxtIDUSER.Enabled = False TxtUSERNAME.Enabled = False
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 26
CmbACCESS.Enabled = False TxtPASSWORD.Enabled = False TxtVERIFYPASSWORD.Enabled = False End Sub Private Sub TEXT_AKTIF() TxtUSERNAME.Enabled = True CmbACCESS.Enabled = True TxtPASSWORD.Enabled = True TxtVERIFYPASSWORD.Enabled = True End Sub Private Sub TEXT_KOSONG() TxtIDUSER.Text = "" TxtUSERNAME.Text = "" CmbACCESS.Text = "" TxtPASSWORD.Text = "" TxtVERIFYPASSWORD.Text = "" End Sub Private Sub BtnINSERT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnINSERT.Click If BtnINSERT.Text = "&ADD NEW" Then BtnINSERT.Text = "&SAVE" BtnCLOSE.Text = "&CANCEL" Call TEXT_AKTIF() Call TEXT_KOSONG() Call ID_LOGIN() TxtUSERNAME.Focus() BtnUPDATE.Enabled = False BtnDELETE.Enabled = False ElseIf BtnINSERT.Text = "&SAVE" Then BtnINSERT.Text = "&ADD NEW" BtnCLOSE.Text = "&CLOSE" Call SAVE_DATA() End If End Sub Private Sub BtnCLOSE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCLOSE.Click If BtnCLOSE.Text = "&CANCEL" Then BtnINSERT.Text = "&ADD NEW" BtnCLOSE.Text = "&CLOSE" BtnUPDATE.Text = "&UPDATE" BtnDELETE.Text = "&DELETE" BtnINSERT.Enabled = True BtnUPDATE.Enabled = True BtnDELETE.Enabled = True BtnCLOSE.Enabled = True Call TEXT_TIDAK_AKTIF()
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 27
Call TEXT_KOSONG() Else Me.Close() End If End Sub Private Sub TxtUSERNAME_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtUSERNAME.KeyPress If e.KeyChar = Chr(13) Then CmbACCESS.Focus() End If End Sub Private Sub TxtPASSWORD_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPASSWORD.KeyPress If e.KeyChar = Chr(13) Then TxtVERIFYPASSWORD.Focus() End If End Sub Private Sub TxtVERIFYPASSWORD_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtVERIFYPASSWORD.KeyPress If e.KeyChar = Chr(13) Then If TxtVERIFYPASSWORD.Text <> TxtPASSWORD.Text Then MessageBox.Show("PASSWORD VERIFICATION IS MISTAKE !!!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Error) TxtVERIFYPASSWORD.Text = "" TxtVERIFYPASSWORD.Focus() Else If BtnINSERT.Enabled = False Then BtnUPDATE.Focus() ElseIf BtnINSERT.Enabled = True Then BtnINSERT.Focus() End If End If End If End Sub Private Sub ID_LOGIN() Dim rsIDLogin As ADODB.Recordset Dim strIDLogin As String rsIDLogin = New ADODB.Recordset rsIDLogin = CONN.Execute("Select Max(IDUSER) As IDUSER From TABEL_LOGIN") If Not rsIDLogin.EOF Then If rsIDLogin.Fields("IDUSER").Value.ToString <> "" Then strIDLogin = Format(Val(Microsoft.VisualBasic.Left(rsIDLogin.Fields("IDUSER").Value.ToString, 2) + 1), "0#") Else strIDLogin = Format(1, "0#") End If rsIDLogin.Close() TxtIDUSER.Text = strIDLogin
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 28
End If End Sub Private Sub UPDATE_DATA() Dim MyCOMMAND As New AKSESDATA.ClassMANIPULASIDATA If TxtUSERNAME.Text = "" Or TxtPASSWORD.Text = "" Then MessageBox.Show("NO DATA TO BE UPDATED !! PLEASE CHOOSE ANY ITEM", "WIRATMOJO", MessageBoxButtons.OK) Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() Else Dim TANYA As String TANYA = MessageBox.Show("YAKIN MENGUBAH DATA - " & TxtUSERNAME.Text & " - ??", "WIRATMOJO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If TANYA = vbYes Then MyCOMMAND.UpdateDATA(TxtIDUSER.Text, TxtUSERNAME.Text, CmbACCESS.Text, TxtPASSWORD.Text) MessageBox.Show("DATA TELAH DIUBAH !!", "WIRATMOJO", MessageBoxButtons.OK) Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() BtnUPDATE.Text = "&UPDATE" BtnCLOSE.Text = "&CLOSE" End If End If End Sub Private Sub SAVE_DATA() Dim MyCOMMAND As New AKSESDATA.ClassMANIPULASIDATA If TxtUSERNAME.Text = "" Or TxtPASSWORD.Text = "" Then MessageBox.Show("NO DATA TO BE SAVE !!", "WIRATMOJO", MessageBoxButtons.OK) Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() Else If DT.Rows.Count <= 0 Then MyCOMMAND.AddDATA(TxtIDUSER.Text, TxtUSERNAME.Text, CmbACCESS.Text, TxtPASSWORD.Text) MessageBox.Show("DATA TERSIMPAN !!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) Call TEXT_TIDAK_AKTIF() Call TEXT_KOSONG() Else
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 29
MessageBox.Show("DATA SUDAH ADA !!, SILAHKAN PAKAI ID LAIN", "WIRATMOJO", MessageBoxButtons.OK) End If End If End Sub Private Sub CmbACCESS_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbACCESS.KeyPress If e.KeyChar = Chr(13) Then TxtPASSWORD.Focus() End If End Sub Private Sub BtnUPDATE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUPDATE.Click If BtnUPDATE.Text = "&UPDATE" Then BtnUPDATE.Text = "&OK" BtnCLOSE.Text = "&CANCEL" Call TEXT_AKTIF() TxtUSERNAME.Focus() ElseIf BtnUPDATE.Text = "&OK" Then Call UPDATE_DATA() End If End Sub Private Sub BtnLISTDATA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLISTDATA.Click Me.Hide() FormLISTUSERSYSTEM.ShowDialog() End Sub Private Sub BtnDELETE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDELETE.Click Dim MyCOMMAND As New AKSESDATA.ClassMANIPULASIDATA If TxtUSERNAME.Text = "" Or TxtPASSWORD.Text = "" Then MessageBox.Show("NO DATA TO BE DELETED !! PLEASE CHOOSE ANY ITEM", "WIRATMOJO", MessageBoxButtons.OK) Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() Else Dim TANYA As String TANYA = MessageBox.Show("YAKIN MENGHAPUS DATA - " & TxtUSERNAME.Text & " - ??", "WIRATMOJO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If TANYA = vbYes Then MyCOMMAND.DeleteDATA(TxtIDUSER.Text) MessageBox.Show("DATA TELAH DIHAPUS !!", "WIRATMOJO", MessageBoxButtons.OK)
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 30
Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() BtnDELETE.Text = "&DELETE" BtnCLOSE.Text = "&CLOSE" End If End If End Sub End Class FormLISTUSER Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormLISTUSER”
Keterangan Toolbox : 1 DataGridView GridUSER Lalu isikan syntax sbb : Imports System.Data Imports System.Data.SqlClient Public Class FormLISTUSERSYSTEM Private Sub DATAGRID() Dim Koneksi As New SqlConnection("Data Source=WIRAT-KOMP; User Id=uas; Password=123; Initial Catalog=PAYROL_DB;") Dim Query As New SqlCommand("Select * From TABEL_LOGIN", Koneksi) Dim Reader As SqlDataReader Try Koneksi.Open() Reader = Query.ExecuteReader Dim Data As New DataTable Data.Load(Reader) GridUSER.DataSource = Data Reader.Close()
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 31
Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Private Sub FormLISTUSERSYSTEM_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed FormUSER.Show() End Sub Private Sub FormLISTUSERSYSTEM_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call DATAGRID() End Sub Private Sub GridUSER_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridUSER.DoubleClick FormUSER.TxtIDUSER.Text = GridUSER.Item(0, GridUSER.CurrentRow.Index).Value FormUSER.TxtUSERNAME.Text = GridUSER.Item(1, GridUSER.CurrentRow.Index).Value FormUSER.CmbACCESS.Text = GridUSER.Item(2, GridUSER.CurrentRow.Index).Value FormUSER.TxtPASSWORD.Text = GridUSER.Item(3, GridUSER.CurrentRow.Index).Value Me.Hide() FormUSER.Show() End Sub Private Sub GridUSER_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles GridUSER.KeyDown If e.KeyCode = Keys.Enter Then FormUSER.TxtIDUSER.Text = GridUSER.Item(0, GridUSER.CurrentRow.Index).Value FormUSER.TxtUSERNAME.Text = GridUSER.Item(1, GridUSER.CurrentRow.Index).Value FormUSER.CmbACCESS.Text = GridUSER.Item(2, GridUSER.CurrentRow.Index).Value FormUSER.TxtPASSWORD.Text = GridUSER.Item(3, GridUSER.CurrentRow.Index).Value Me.Hide() FormUSER.Show() End If End Sub End Class
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 32
FormLOGIN Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormLOGIN”
Keterangan Toolbox : 1 GroupBox 2 Label 2 TextBox 2 Button 1 PictureBox 1 GroupBox : GroupBox Data 2 Label : USERNAME, PASSWORD 2 TextBox : TxtUSERNAME, TxtPASSWORD 2 Button : BtnLOGIN, BtnCANCEL 1 PictureBox : Silahkan pilih gambar anda sendiri Lalu isikan syntax sbb : Imports System.Data Imports System.Data.SqlClient Public Class FormLOGIN Inherits System.Windows.Forms.Form
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 33
Dim FrmUTAMA As New FormUTAMA Dim Koneksiku As New AksesData.ClassKONEKSIDATABASE Sub CekUSER() DT.Clear() strSQL = "Select * From TABEL_LOGIN Where USERNAMELOG='" & TxtUSERNAME.Text.Trim & "'" DataAdapter = New SqlDataAdapter(strSQL, Koneksiku.BukaKoneksi) DS = New DataSet DataAdapter.Fill(DS, "TABEL_LOGIN") DT = DS.Tables("TABEL_LOGIN") Koneksiku.TutupKoneksi() End Sub Sub CariUSER() strSQL = "Select * From TABEL_LOGIN Where USERNAMELOG = '" & TxtUSERNAME.Text.Trim & "'" Command = New SqlCommand(strSQL, Koneksiku.BukaKoneksi) DataReader = Command.ExecuteReader While DataReader.Read Username = DataReader.Item("USERNAMELOG") Password = DataReader.Item("PASSWORDLOG") Access = DataReader.Item("ACCESS") IdUser = DataReader.Item("IDUSER") End While Koneksiku.TutupKoneksi() End Sub Private Sub BtnCANCEL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCANCEL.Click MSG = MessageBox.Show("SURE WANT TO EXIT PAYROLL SYSTEM ??", "WIRATMOJO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If MSG = vbYes Then End Else Exit Sub End If End Sub Private Sub BtnLOGIN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLOGIN.Click If TxtUSERNAME.Text.Trim = "" Then MessageBox.Show("USERNAME, CANNOT BE EMPTY FIELD", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) TxtUSERNAME.Focus() ElseIf TxtPASSWORD.Text.Trim = "" Then
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 34
MessageBox.Show("PASSWORD, CANNOT BE EMPTY FIELD", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) TxtPASSWORD.Focus() Else Try Call CekUSER() If DT.Rows.Count <= 0 Then MessageBox.Show("USERNAME ISN'T RECOGNIZED, " & vbCrLf & _ "PLEASE USE VALID DATA !!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Error) TxtUSERNAME.Text = "" TxtUSERNAME.Focus() Else Call CariUSER() If Password <> TxtPASSWORD.Text.Trim Then MessageBox.Show("PASSWORD ISN'T RECOGNIZED, " & vbCrLf & _ "PLEASE USE VALID DATA !!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Error) TxtPASSWORD.Text = "" TxtPASSWORD.Focus() Else FrmUTAMA.Show() Me.Hide() TxtUSERNAME.Text = "" TxtPASSWORD.Text = "" End If End If Catch When Err.Number <> 0 MessageBox.Show("SYSTEM CAN'T REACHED DATABASE, " & vbCrLf & _ "PLEASE CONTACT YOUR ADMINISTRATOR !!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End If End Sub Private Sub FormLOGIN_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TxtUSERNAME.CharacterCasing = CharacterCasing.Upper TxtPASSWORD.CharacterCasing = CharacterCasing.Upper End Sub Private Sub TxtUSERNAME_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtUSERNAME.KeyPress
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 35
If e.KeyChar = Chr(13) Then TxtPASSWORD.Focus() End If End Sub Private Sub TxtPASSWORD_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPASSWORD.KeyPress If e.KeyChar = Chr(13) Then BtnLOGIN.Focus() End If End Sub End Class FormSPLASH Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormSPLASH”
Keterangan Toolbox : 5 Label 1 ProgressBar 1 PictureBox 2 Timer 5 Label : LOADING DATABASE CONNECTION, PAYROLL SYSTEM 2011, LblANGKA, % 1 ProgressBar : BAR
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 36
1 PictureBox : Gambar uang atau silahkan pilih gambar anda sendiri, BEBAS daaag.. 2 Timer : TimerSPLASH, TimerLABEL Lalu isikan syntax sbb : Public Class FormSPLASH Dim FRM As New FormLOGIN Dim BARIS As Integer Private Sub TimerSPLASH_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerSPLASH.Tick BARIS = BARIS + 1 BAR.Value = BARIS LblANGKA.Text = BARIS If LblANGKA.Text = 100 Then TimerSPLASH.Dispose() Me.Hide() FRM.Show() End If End Sub Private Sub TimerLABEL_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerLABEL.Tick If Label1.Visible = True Then Label1.Visible = False ElseIf Label1.Visible = False Then Label1.Visible = True End If End Sub End Class
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 37
FormUTAMA Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormUTAMA”
Keterangan Toolbox : 1 MenuStrip 1 Statusbar 2 Timer 1 Statusbar 1 MenuStrip : FILEToolStripMenuItem PROGRAMMERToolStripMenuItem, EXITToolStripMenuItem
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 38
MASTERDATAToolMenuItem USERSYSTEM, EMPLOToolStripMenuItem, CITYToolStripMenuItem1, PAYROLLToolStripMenuItem1
REPORTINGToolStripMenuItem USERDATAToolStripMenuItem, EMPLOYEEDATAToolStripMenuItem, CITYToolStripMenuItem, PAYROLLToolStripMenuItem, PRINTSLIPGAJIToolStripMenuItem
1 ToolStrip : BtnToolUSER, BtnToolEMPLOYEE, BtnToolCITY, BtnToolPAYROLL, BtnToolEXIT
2 Timer : TimerStsLISENSI, TimerJAM 1 StatusBar : StsIDUSER, Username :.:, StsUSER, Access :.:, StsACCESS, Date :.:, StsDATE, Jam :.:, StsJAM, StsLISENSI
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 39
Lalu isikan syntax sbb : Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class FormUTAMA Inherits System.Windows.Forms.Form #Region "JAM" Dim lpT As CLASS_SISTEM Dim dateUTC As Date Dim WTime As Date #End Region Private Declare Sub GetSystemTime Lib "kernel32" (ByRef lpSystemTime As CLASS_SISTEM) Private Structure CLASS_SISTEM Public wYear As Short Public wMonth As Short Public wDayOfWeek As Short Public wDay As Short Public wHour As Short Public wMinute As Short Public wSecond As Short Public wMiliSeconds As Short End Structure Private Sub RUNJAM() Try Call GetSystemTime(lpT) 'Indonesia dateUTC = Date.UtcNow().AddHours(7.0) WTime = CDate(lpT.wHour & ":" & lpT.wMinute & ":" & lpT.wSecond).AddHours(7.0) StsJAM.Text = WTime.ToLongTimeString Catch ex As Exception MsgBox(ex.ToString) End Try End Sub Dim myTabel As CrystalDecisions.CrystalReports.Engine.Table Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo Dim ObjDoc As New ReportDocument Dim ObjCon As New ConnectionInfo Dim ObjLog As New TableLogOnInfo Dim Formula As CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 40
Dim RptUSER As New RptDATAUSER Dim RptPEGAWAI As New RptEMPLOYEE Dim RptCITY As New RptDDATACITY Dim RptGAJIAN As New RptSLIPGAJI Private Sub PROGRAMMERToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PROGRAMMERToolStripMenuItem.Click FormPROGRAMMER.ShowDialog() End Sub Private Sub EXITToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EXITToolStripMenuItem.Click MSG = MessageBox.Show("ARE YOU SURE WANT TO EXIT PAYROLL SYSTEM??", "WIRATMOJO", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) If MSG = vbYes Then End Else Exit Sub End If End Sub Private Sub EMPLOToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EMPLOToolStripMenuItem.Click FormPEGAWAI.ShowDialog() End Sub Private Sub FormUTAMA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load StsIDUSER.Text = IdUser StsUSER.Text = Username StsACCESS.Text = Access StsDATE.Text = Today.Date.ToLongDateString If StsACCESS.Text = "USER" Then USERSYSTEM.Enabled = False BtnToolUSER.Enabled = False USERDATAToolStripMenuItem.Enabled = False Else USERSYSTEM.Enabled = True BtnToolUSER.Enabled = True USERDATAToolStripMenuItem.Enabled = True End If End Sub Private Sub USERDATAToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles USERDATAToolStripMenuItem.Click Dim Koneksi As New AksesData.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim B As New FormRptDATAUSER RptUSER = New RptDATAUSER For Each myTable In RptUSER.Database.Tables
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 41
myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next B.ReportDATAUSER.ReportSource = RptUSER B.ReportDATAUSER.RefreshReport() B.ShowDialog() End Sub Private Sub EMPLOYEEDATAToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EMPLOYEEDATAToolStripMenuItem.Click Dim Koneksi As New AksesData.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim A As New FormRptPEGAWAI RptPEGAWAI = New RptEMPLOYEE For Each myTable In RptPEGAWAI.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next A.REPORTPEGAWAI.ReportSource = RptPEGAWAI A.REPORTPEGAWAI.RefreshReport() A.ShowDialog() End Sub Private Sub CITYToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CITYToolStripMenuItem.Click Dim Koneksi As New AksesData.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim D As New FormRptCITY RptCITY = New RptDDATACITY For Each myTable In RptCITY.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin)
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 42
Next D.RptViewerCITY.ReportSource = RptCITY D.RptViewerCITY.RefreshReport() D.ShowDialog() End Sub Private Sub CITYToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CITYToolStripMenuItem1.Click FormCITY.ShowDialog() End Sub Private Sub TimerStsLISENSI_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerStsLISENSI.Tick If StsLISENSI.Visible = True Then StsLISENSI.Visible = False ElseIf StsLISENSI.Visible = False Then StsLISENSI.Visible = True End If End Sub Private Sub TimerJAM_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerJAM.Tick Call RUNJAM() End Sub Private Sub USERSYSTEM_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles USERSYSTEM.Click FormUSER.ShowDialog() End Sub Private Sub BtnToolUSER_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolUSER.Click FormUSER.ShowDialog() End Sub Private Sub BtnToolEMPLOYEE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolEMPLOYEE.Click FormPEGAWAI.ShowDialog() End Sub Private Sub BtnToolCITY_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolCITY.Click FormCITY.ShowDialog() End Sub Private Sub BtnToolEXIT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolEXIT.Click MSG = MessageBox.Show("ARE YOU SURE WANT TO EXIT PAYROLL SYSTEM??", "WIRATMOJO", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) If MSG = vbYes Then End Else Exit Sub End If End Sub
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 43
Private Sub BtnToolPAYROLL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolPAYROLL.Click FormTRANSAKSI.ShowDialog() End Sub Private Sub PAYROLLToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PAYROLLToolStripMenuItem1.Click FormTRANSAKSI.ShowDialog() End Sub Private Sub PAYROLLToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PAYROLLToolStripMenuItem.Click Dim Koneksi As New AKSESDATA.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim F As New FormRptPAYROLL RptGAJIAN = New RptSLIPGAJI For Each myTable In RptGAJIAN.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next F.ReportViewPAYROLL.ReportSource = RptGAJIAN F.ReportViewPAYROLL.RefreshReport() F.ShowDialog() End Sub Private Sub PRINTSLIPGAJIToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PRINTSLIPGAJIToolStripMenuItem.Click FormSLIPGAJI_UAS.ShowDialog() End Sub End Class
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 44
FormCITY Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormCITY”
Keterangan ToolBox : 2 Label 2 TextBox 1 Button 1 DataGridView 2 Label : KODE KOTA, NAMA KOTA 2 TextBox : TxtKODEKOTA, TxtNAMAKOTA 1 Button : BtnKOTA 1 DataGridView : GridKOTA Lalu isikan syntax sbb : Imports System.Data Imports System.Data.SqlClient Imports System.Windows.Forms.Form Public Class FormCITY Dim rsGRID As ADODB.Recordset
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 45
Private Sub BtnKOTA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKOTA.Click If BtnKOTA.Text = "&Item Baru" Then BtnKOTA.Text = "&Insert Data Seksi" Call ID_KOTA() TxtNAMAKOTA.Focus() Else If TxtNAMAKOTA.Text = "" Then MessageBox.Show("TIDAK ADA DATA!!, SILAHKAN INPUT TERLEBIH DULU", "WIRAT INFO", MessageBoxButtons.OK) TxtNAMAKOTA.Focus() Else Call SIMPAN() BtnKOTA.Text = "&Item Baru" End If End If End Sub Private Sub SIMPAN() CONN.Execute("Insert Into TABEL_CITY Values ('" & TxtKODEKOTA.Text & "','" & TxtNAMAKOTA.Text & "')") MessageBox.Show("DATA TELAH TERSIMPAN !!", "WIRAT INFO", MessageBoxButtons.OK) TxtKODEKOTA.Text = "" TxtNAMAKOTA.Text = "" BtnKOTA.Focus() Call DATABARU() End Sub Private Sub DATABARU() rsGRID = New ADODB.Recordset rsGRID.Open("Select * From TABEL_CITY", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) Call DATAGRID() End Sub Private Sub DATAGRID() Dim Koneksi As New SqlConnection("Data Source=WIRAT-KOMP; User Id=uas; Password=123; Initial Catalog=PAYROL_DB;") Dim Query As New SqlCommand("Select * From TABEL_CITY", Koneksi) Dim Reader As SqlDataReader Try Koneksi.Open() Reader = Query.ExecuteReader Dim Data As New DataTable Data.Load(Reader) GridKOTA.DataSource = Data Reader.Close() Catch ex As Exception
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 46
MessageBox.Show(ex.ToString) End Try End Sub Private Sub ID_KOTA() Dim rsIDSeksi As ADODB.Recordset Dim strIDSeksi As String rsIDSeksi = New ADODB.Recordset rsIDSeksi = CONN.Execute("Select Max(IDCITY) as IDCITY FROM TABEL_CITY") If Not rsIDSeksi.EOF Then If rsIDSeksi.Fields("IDCITY").Value.ToString <> "" Then strIDSeksi = Format(Val(Microsoft.VisualBasic.Right(rsIDSeksi.Fields("IDCITY").Value.ToString, 2) + 1), "0#") Else strIDSeksi = Format(1, "0#") End If rsIDSeksi.Close() TxtKODEKOTA.Text = strIDSeksi End If End Sub Private Sub FormKOTA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call DATAGRID() TxtNAMAKOTA.CharacterCasing = CharacterCasing.Upper End Sub Private Sub TxtNAMAKOTA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNAMAKOTA.KeyPress If e.KeyChar = Chr(13) Then BtnKOTA.Focus() End If End Sub End Class
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 47
FormPROGRAMMER Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormPROGRAMMER” untuk form aplikasi ini, anda bisa saja mengganti gambarnya pada PictureBox.
FormPEGAWAI Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormPEGAWAI”
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 48
Keterangan ToolBox : 7 Button 1 DataGridView 4 TextBox 1 DateTimePicker 1 ComboBox 2 GroupBox 6 Label 7 Button : BtnFIRST, BtnPREVIOUS, BtnNEXT, BtnLAST, BtnADD, BtnEDIT, BtnSAVE, BtnCANCEL, BtnDELETE, BtnREPORT, BtnCLOSE 1 DataGridView : GridPEGAWAI 4 TextBox : TxtNIP, TxtNAMA, TxtALAMAT, TxtKODEPOS 1 DateTimePicker : DtLAHIR 1 ComboBox : CmbKOTA 2 GroupBox : GroupBox Data Employee, GroupBox Button 6 Label : NIP, NAME, BIRTH, CITY, ADDRESS, ZIP CODE Lalu isikan koding berikut : Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class FormPEGAWAI Dim myTabel As CrystalDecisions.CrystalReports.Engine.Table Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo Dim ObjDoc As New ReportDocument Dim ObjCon As New ConnectionInfo Dim ObjLog As New TableLogOnInfo Dim RptPEGAWAI As New RptEMPLOYEE Dim Formula As CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 49
Dim Status As Boolean Dim KodeSeksi As String Private Sub DataComboKOTA() Dim rsKOTA As ADODB.Recordset Dim A As String Dim B As String rsKOTA = New ADODB.Recordset rsKOTA.Open("Select * From TABEL_CITY Order By IDCITY ASC", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) With rsKOTA CmbKOTA.Items.Clear() Do Until .EOF A = rsKOTA.Fields("IDCITY").Value B = rsKOTA.Fields("NAMACITY").Value CmbKOTA.Items.Add(A & " - " & B) .MoveNext() Loop .MoveLast() End With End Sub Sub Validasi(ByVal Bool As Boolean) With Me .TxtALAMAT.Enabled = Not Bool .TxtKODEPOS.Enabled = Not Bool '.TxtKOTA.Enabled = Not Bool CmbKOTA.Enabled = Not Bool .TxtNAMA.Enabled = Not Bool '.TxtNIP.Enabled = Not Bool .DtLAHIR.Enabled = Not Bool .BtnADD.Enabled = Bool .BtnCANCEL.Enabled = Not Bool .BtnCLOSE.Enabled = Bool .BtnDELETE.Enabled = Bool .BtnEDIT.Enabled = Bool .BtnREPORT.Enabled = Bool .BtnSAVE.Enabled = Not Bool .GridPEGAWAI.Enabled = Bool .BtnFIRST.Enabled = Bool .BtnLAST.Enabled = Bool .BtnNEXT.Enabled = Bool .BtnPREVIOUS.Enabled = Bool End With End Sub Sub TampilkanData()
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 50
Call Validasi(True) DT.Clear() Dim KoneksiKu As New AksesData.ClassKONEKSIDATABASE DataAdapter = New SqlDataAdapter("Select * From TABEL_PEGAWAI", KoneksiKu.BukaKoneksi) DS = New DataSet DataAdapter.Fill(DS, "TbPegawai") DT = DS.Tables("TbPegawai") GridPEGAWAI.DataSource = DT TxtNIP.DataBindings.Add("TEXT", DT, "NIP") TxtNAMA.DataBindings.Add("TEXT", DT, "NAMAPEGAWAI") DtLAHIR.DataBindings.Add("VALUE", DT, "TGLLAHIR") TxtALAMAT.DataBindings.Add("TEXT", DT, "ALAMAT") 'TxtKOTA.DataBindings.Add("TEXT", DT, "IDCITY") CmbKOTA.DataBindings.Add("TEXT", DT, "IDCITY") TxtKODEPOS.DataBindings.Add("TEXT", DT, "KODEPOS") End Sub Sub LepasBinding() With Me .TxtALAMAT.DataBindings.Clear() .TxtKODEPOS.DataBindings.Clear() '.TxtKOTA.DataBindings.Clear() .CmbKOTA.DataBindings.Clear() .TxtNAMA.DataBindings.Clear() .TxtNIP.DataBindings.Clear() .DtLAHIR.DataBindings.Clear() End With End Sub Sub KosongkanNilai() With Me .TxtALAMAT.Text = "" .TxtKODEPOS.Text = "" '.TxtKOTA.Text = "" .CmbKOTA.Text = "" .TxtNAMA.Text = "" '.TxtNIP.Text = "" .DtLAHIR.Value = Today.Date End With End Sub Sub CekNIP() DT.Clear() Dim KoneksiKu As New AksesData.ClassKONEKSIDATABASE
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 51
Dim CMD As New SqlCommand("Select * From TABEL_PEGAWAI Where NIP ='" & _ TxtNIP.Text & "'", KoneksiKu.BukaKoneksi) DataAdapter = New SqlDataAdapter(CMD) DS = New DataSet DataAdapter.Fill(DS, "CariNIP") DT = DS.Tables("CariNIP") End Sub Private Sub FormPEGAWAI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call TampilkanData() Call DataComboKOTA() TxtKODEPOS.MaxLength = 5 End Sub Private Sub BtnCLOSE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCLOSE.Click Call LepasBinding() Me.Close() End Sub Private Sub Huruf() TxtNAMA.CharacterCasing = CharacterCasing.Upper TxtALAMAT.CharacterCasing = CharacterCasing.Upper End Sub Private Sub BtnADD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnADD.Click Status = True Call Validasi(False) Call LepasBinding() Call KosongkanNilai() Call Huruf() Call ID_PEGAWAI() TxtNAMA.Focus() End Sub Private Sub BtnEDIT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEDIT.Click Status = False Call Validasi(False) Call LepasBinding() Call Huruf()
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 52
TxtNIP.Enabled = False TxtNAMA.Focus() End Sub Private Sub BtnSAVE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSAVE.Click Dim MyCommand As New AKSESDATA.ClassMANIPULASIDATA Dim KODEKOTA As String KODEKOTA = Format(Microsoft.VisualBasic.Left(CmbKOTA.Text.ToString, 2)) If Status = True Then Call CekNIP() If DT.Rows.Count <= 0 Then MyCommand.TambahData(TxtNIP.Text, TxtNAMA.Text, DtLAHIR.Value, _ TxtALAMAT.Text, KODEKOTA, TxtKODEPOS.Text) Call TampilkanData() Else MessageBox.Show("DATA HAS BEEN INPUTED," & vbCrLf & _ "PLEASE USE ANOTHER NIP", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) End If Else MyCommand.UbahData(TxtNIP.Text, TxtNAMA.Text, DtLAHIR.Value, _ TxtALAMAT.Text, KODEKOTA, TxtKODEPOS.Text) Call TampilkanData() End If End Sub Private Sub BtnCANCEL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCANCEL.Click Call TampilkanData() End Sub Private Sub BtnDELETE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDELETE.Click Dim MyCommand As New AKSESDATA.ClassMANIPULASIDATA MSG = MessageBox.Show("SURE WANT TO DELETE THIS DATA ??", "WIRATMOJO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If MSG = vbYes Then MyCommand.HapusData(TxtNIP.Text) Call LepasBinding() Call TampilkanData() End If
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 53
End Sub Private Sub BtnFIRST_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFIRST.Click BindingContext(DT).Position = 0 End Sub Private Sub BtnPREVIOUS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPREVIOUS.Click BindingContext(DT).Position = BindingContext(DT).Position - 1 End Sub Private Sub BtnNEXT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNEXT.Click BindingContext(DT).Position = BindingContext(DT).Position + 1 End Sub Private Sub BtnLAST_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLAST.Click BindingContext(DT).Position = DT.Rows.Count - 1 End Sub Private Sub BtnREPORT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnREPORT.Click Dim Koneksi As New AksesData.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim A As New FormRptPEGAWAI RptPEGAWAI = New RptEMPLOYEE For Each myTable In RptPEGAWAI.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next A.REPORTPEGAWAI.ReportSource = RptPEGAWAI A.REPORTPEGAWAI.RefreshReport() A.ShowDialog() End Sub Private Sub ID_PEGAWAI() Dim rsIDPegawai As ADODB.Recordset Dim StrIDPegawai As String rsIDPegawai = New ADODB.Recordset rsIDPegawai = CONN.Execute("Select Max(NIP) as NIP FROM TABEL_PEGAWAI") If Not rsIDPegawai.EOF Then If rsIDPegawai.Fields("NIP").Value.ToString <> "" Then
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 54
StrIDPegawai = Format(Val(Microsoft.VisualBasic.Left(rsIDPegawai.Fields("NIP").Value.ToString, _ 5) + 1), "0####") & "-" & Format(Now, "yyyy") Else StrIDPegawai = Format(1, "0####") & "-" & Format(Now, "yyyy") End If rsIDPegawai.Close() TxtNIP.Text = StrIDPegawai End If End Sub Private Sub TxtNAMA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNAMA.KeyPress If e.KeyChar = Chr(13) Then DtLAHIR.Focus() End If End Sub Private Sub DtLAHIR_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DtLAHIR.KeyPress If e.KeyChar = Chr(13) Then CmbKOTA.Focus() End If End Sub Private Sub CmbKOTA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbKOTA.KeyPress If e.KeyChar = Chr(13) Then TxtALAMAT.Focus() End If End Sub Private Sub TxtALAMAT_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtALAMAT.KeyPress If e.KeyChar = Chr(13) Then TxtKODEPOS.Focus() End If End Sub Private Sub TxtKODEPOS_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtKODEPOS.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End Sub End Class
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 55
FormTRANSAKSI Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormTRANSAKSI”
2 GroupBox 26 Label 12 TextBox 4 ComboBox 1 DateTimePicker 2 Button 2 GroupBox : 26 Label : NO PAYROLL, NIP, NAMA PEGAWAI, TGL LAHIR, ALAMAT, KOTA, KODE POS, GAJI BERSIH, GAJI BULAN, JABATAN, GOLONGAN, GAJI, TUNJANGAN, LEMBURAN, JAM, UANG LEMBUR, NPWP, POTONGAN, UANG LEMBUR 30,000/JAM, LblTERBILANGGAJIBERSIH, LblTAHUN, LblTERBILANGGAJI, LblTERBILANGTUNJANGAN, LblTERBILANGLEMBUR, LblTERBILANGPOTONGAN 12 TextBox : TxtNOPAYROLL, TxtNAMAPEGAWAI, TxtKOTA, TxtKODEPOS, TxtGAJIBERSIH, TxtGAJI, TxtTUNJANGAN, TxtLEMBURAN, TxtUANGLEMBUR, TxtNPWP, TxtPOTONGAN 4 ComboBox : CmbNIP, CmbBULAN, CmbJABATAN, CmbGOLONGAN,
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 56
1 DateTimePicker : DtLAHIR 2 Button : BtnINPUT, BtnCLOSE Lalu isikan koding sbb : Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class FormTRANSAKSI Inherits System.Windows.Forms.Form Dim rsCARI As ADODB.Recordset Dim rsSIMPAN As ADODB.Recordset Dim TERBILANG As CLASS_TERBILANG = New CLASS_TERBILANG Dim myTabel As CrystalDecisions.CrystalReports.Engine.Table Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo Dim ObjDoc As New ReportDocument Dim ObjCon As New ConnectionInfo Dim ObjLog As New TableLogOnInfo 'Dim RptPAYROLL As New RptPAYROLL Dim RptGAJIAN As New RptSLIPGAJI Dim Formula As CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition Private Sub CARINIP() Dim cNIP As String rsCARI = New ADODB.Recordset rsCARI.Open("Select Distinct NIP From TABEL_PEGAWAI Order By NIP Asc", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) With rsCARI CmbNIP.Items.Clear() Do Until .EOF cNIP = rsCARI.Fields("NIP").Value CmbNIP.Items.Add(cNIP) .MoveNext() Loop .MoveFirst() End With End Sub Private Sub BtnCLOSE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCLOSE.Click If BtnINPUT.Text = "&SIMPAN" Then BtnINPUT.Text = "&INPUT"
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 57
Call KOSONG() Call KUNCI(False) Else Me.Close() End If End Sub Private Sub BtnINPUT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnINPUT.Click If BtnINPUT.Text = "&INPUT" Then BtnINPUT.Text = "&SIMPAN" Call BUKAKUNCI(True) Call CARINIP() Call PAYROLLNUMBER() CmbNIP.Focus() ElseIf BtnINPUT.Text = "&SIMPAN" Then Call SIMPAN() End If End Sub Private Sub KOSONG() With Me .TxtNOPAYROLL.Text = "" .CmbNIP.Text = "" .TxtNAMAPEGAWAI.Text = "" .DTLahir.Text = Today.Date .TxtALAMAT.Text = "" .TxtKOTA.Text = "" .TxtKODEPOS.Text = "" .CmbBULAN.Text = "" .CmbJABATAN.Text = "" .CmbGOLONGAN.Text = "" .TxtGAJI.Text = "" .TxtTUNJANGAN.Text = "" .TxtLEMBURAN.Text = "" .TxtUANGLEMBUR.Text = "" .TxtNPWP.Text = "" .TxtPOTONGAN.Text = "" .TxtGAJIBERSIH.Text = "" End With End Sub Private Sub KUNCI(ByVal MATI As Boolean) With Me .TxtNOPAYROLL.Enabled = MATI .CmbNIP.Enabled = MATI .TxtNAMAPEGAWAI.Enabled = MATI .DTLahir.Enabled = MATI .TxtALAMAT.Enabled = MATI .TxtKOTA.Enabled = MATI .TxtKODEPOS.Enabled = MATI .CmbBULAN.Enabled = MATI .CmbJABATAN.Enabled = MATI .CmbGOLONGAN.Enabled = MATI .TxtGAJI.Enabled = MATI .TxtTUNJANGAN.Enabled = MATI .TxtLEMBURAN.Enabled = MATI .TxtUANGLEMBUR.Enabled = MATI
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 58
.TxtNPWP.Enabled = MATI .TxtPOTONGAN.Enabled = MATI .TxtGAJIBERSIH.Enabled = MATI End With End Sub Private Sub BUKAKUNCI(ByVal NYALA As Boolean) With Me .CmbNIP.Enabled = NYALA .CmbBULAN.Enabled = NYALA .CmbJABATAN.Enabled = NYALA .CmbGOLONGAN.Enabled = NYALA .TxtLEMBURAN.Enabled = NYALA .TxtNPWP.Enabled = NYALA .TxtPOTONGAN.Enabled = NYALA End With End Sub Private Sub FormTRANSAKSI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call KUNCI(False) Call KOSONG() Call DataCOMBO() TxtNPWP.MaxLength = 15 LblTAHUN.Text = Format(Now, "yyyy") End Sub Private Sub CmbNIP_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbNIP.KeyPress If e.KeyChar = Chr(13) Then CmbBULAN.Focus() End If End Sub Private Sub CmbNIP_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbNIP.SelectedIndexChanged rsCARI = New ADODB.Recordset rsCARI.Open("Select * From TABEL_PEGAWAI Where NIP='" & CmbNIP.Text & "'", _ CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) While rsCARI.EOF <> True TxtNAMAPEGAWAI.Text = rsCARI.Fields("NAMAPEGAWAI").Value DTLahir.Text = rsCARI.Fields("TGLLAHIR").Value TxtALAMAT.Text = rsCARI.Fields("ALAMAT").Value TxtKOTA.Text = rsCARI.Fields("IDCITY").Value TxtKODEPOS.Text = rsCARI.Fields("KODEPOS").Value rsCARI.MoveNext() End While End Sub Private Sub DataCOMBO() With CmbJABATAN
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 59
.Items.Clear() .Items.Add("MANAGER") .Items.Add("SUPERVISOR") .Items.Add("STAFF") End With With CmbBULAN .Items.Clear() .Items.Add("JANUARI") .Items.Add("FEBRUARI") .Items.Add("MARET") .Items.Add("APRIL") .Items.Add("MEI") .Items.Add("JUNI") .Items.Add("JULI") .Items.Add("AGUSTUS") .Items.Add("SEPTEMBER") .Items.Add("OKTOBER") .Items.Add("NOVEMBER") .Items.Add("DESEMBER") End With End Sub Private Sub CmbGOLONGAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbGOLONGAN.KeyPress If e.KeyChar = Chr(13) Then TxtLEMBURAN.Focus() End If End Sub Private Sub TxtGAJI_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtGAJI.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If e.KeyChar = Chr(13) Then TxtTUNJANGAN.Focus() TxtGAJI.Text = Format(TxtGAJI.Text, "#,#") Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub CmbJABATAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbJABATAN.KeyPress If e.KeyChar = Chr(13) Then CmbGOLONGAN.Focus() End If
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 60
End Sub Private Sub TxtTUNJANGAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtTUNJANGAN.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If e.KeyChar = Chr(13) Then TxtLEMBURAN.Focus() TxtTUNJANGAN.Text = Format(TxtTUNJANGAN.Text, "#,#") Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub TxtLEMBURAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtLEMBURAN.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If e.KeyChar = Chr(13) Then Dim UANGLEMBUR As String UANGLEMBUR = TxtLEMBURAN.Text * 30000 TxtUANGLEMBUR.Text = UANGLEMBUR TxtNPWP.Focus() Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub TxtNPWP_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNPWP.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0)
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 61
If e.KeyChar = Chr(13) Then TxtPOTONGAN.Focus() Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub SIMPAN() Dim TANYA As Integer TANYA = MsgBox("SURE TO SAVE DATA??", MsgBoxStyle.Question, "WIRATMOJO") If TANYA = 7 Then Exit Sub Else rsSIMPAN = New ADODB.Recordset rsSIMPAN.Open("Select * From TABEL_UAS", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) rsSIMPAN.AddNew() rsSIMPAN.Fields(0).Value = TxtNOPAYROLL.Text rsSIMPAN.Fields(1).Value = IdUser 'Deklarasi ModulUmum Field dari TabelLogin rsSIMPAN.Fields(2).Value = CmbNIP.Text rsSIMPAN.Fields(3).Value = TxtNPWP.Text rsSIMPAN.Fields(4).Value = CmbBULAN.Text rsSIMPAN.Fields(5).Value = CmbJABATAN.Text rsSIMPAN.Fields(6).Value = CmbGOLONGAN.Text rsSIMPAN.Fields(7).Value = TxtGAJI.Text rsSIMPAN.Fields(8).Value = TxtTUNJANGAN.Text rsSIMPAN.Fields(9).Value = TxtPOTONGAN.Text rsSIMPAN.Fields(10).Value = TxtLEMBURAN.Text rsSIMPAN.Fields(11).Value = TxtUANGLEMBUR.Text rsSIMPAN.Fields(12).Value = TxtGAJIBERSIH.Text rsSIMPAN.Fields(13).Value = LblTAHUN.Text rsSIMPAN.Update() MessageBox.Show("DATA TERSIMPAN !!!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) Dim Koneksi As New AKSESDATA.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim F As New FormRptPAYROLL 'RptPAYROLL = New RptPAYROLL RptGAJIAN = New RptSLIPGAJI
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 62
For Each myTable In RptGAJIAN.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next F.ReportViewPAYROLL.SelectionFormula = "{TABEL_UAS.NOPAYROLL}='" + TxtNOPAYROLL.Text + "'" F.ReportViewPAYROLL.ReportSource = RptGAJIAN F.ReportViewPAYROLL.RefreshReport() F.ShowDialog() Call KUNCI(False) Call KOSONG() BtnINPUT.Text = "&INPUT" End If End Sub Private Sub TxtPOTONGAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPOTONGAN.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If e.KeyChar = Chr(13) Then BtnINPUT.Focus() Dim GAJIBERSIH As String GAJIBERSIH = (Val(TxtGAJI.Text) + Val(TxtTUNJANGAN.Text) + Val(TxtUANGLEMBUR.Text) - Val(TxtPOTONGAN.Text)) TxtGAJIBERSIH.Text = GAJIBERSIH Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub CmbJABATAN_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbJABATAN.SelectedIndexChanged If CmbJABATAN.Text = "MANAGER" Then CmbGOLONGAN.Items.Clear()
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 63
CmbGOLONGAN.Items.Add("S1") CmbGOLONGAN.Items.Add("S2") ElseIf CmbJABATAN.Text = "SUPERVISOR" Then CmbGOLONGAN.Items.Clear() CmbGOLONGAN.Items.Add("M1") CmbGOLONGAN.Items.Add("M2") ElseIf CmbJABATAN.Text = "STAFF" Then CmbGOLONGAN.Items.Clear() CmbGOLONGAN.Items.Add("J1") CmbGOLONGAN.Items.Add("J2") End If End Sub Private Sub CmbGOLONGAN_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbGOLONGAN.SelectedIndexChanged If CmbGOLONGAN.Text = "S1" Then TxtGAJI.Text = "18000000" TxtTUNJANGAN.Text = "700000" ElseIf CmbGOLONGAN.Text = "S2" Then TxtGAJI.Text = "16000000" TxtTUNJANGAN.Text = "600000" ElseIf CmbGOLONGAN.Text = "M1" Then TxtGAJI.Text = "9000000" TxtTUNJANGAN.Text = "400000" ElseIf CmbGOLONGAN.Text = "M2" Then TxtGAJI.Text = "7000000" TxtTUNJANGAN.Text = "300000" ElseIf CmbGOLONGAN.Text = "J1" Then TxtGAJI.Text = "5000000" TxtTUNJANGAN.Text = "500000" ElseIf CmbGOLONGAN.Text = "J2" Then TxtGAJI.Text = "4000000" TxtTUNJANGAN.Text = "200000" End If End Sub Private Sub TxtGAJI_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtGAJI.TextChanged If TxtGAJI.Text <> "" Then LblTERBILANGGAJI.Text = TERBILANG.ANGKA_TERBILANG(TxtGAJI.Text) + " RUPIAH" Else LblTERBILANGGAJI.Text = "TERBILANG GAJI" End If End Sub Private Sub TxtTUNJANGAN_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtTUNJANGAN.TextChanged If TxtTUNJANGAN.Text <> "" Then LblTERBILANGTUNJANGAN.Text = TERBILANG.ANGKA_TERBILANG(TxtTUNJANGAN.Text) + " RUPIAH" Else LblTERBILANGTUNJANGAN.Text = "TERBILANG TUNJANGAN" End If End Sub
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 64
Private Sub TxtUANGLEMBUR_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtUANGLEMBUR.TextChanged If TxtUANGLEMBUR.Text <> "" Then LblTERBILANGLEMBUR.Text = TERBILANG.ANGKA_TERBILANG(TxtUANGLEMBUR.Text) + " RUPIAH" Else LblTERBILANGLEMBUR.Text = "TERBILANG LEMBUR" End If End Sub Private Sub TxtPOTONGAN_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtPOTONGAN.TextChanged If TxtPOTONGAN.Text <> "" Then LblTERBILANGPOTONGAN.Text = TERBILANG.ANGKA_TERBILANG(TxtPOTONGAN.Text) + " RUPIAH" Else LblTERBILANGPOTONGAN.Text = "TERBILANG POTONGAN" End If End Sub Private Sub TxtGAJIBERSIH_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtGAJIBERSIH.TextChanged If TxtGAJIBERSIH.Text <> "" Then LblTERBILANGGAJIBERSIH.Text = TERBILANG.ANGKA_TERBILANG(TxtGAJIBERSIH.Text) + " RUPIAH" Else LblTERBILANGGAJIBERSIH.Text = "TERBILANG GAJIBERSIH" End If End Sub Private Sub CmbBULAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbBULAN.KeyPress If e.KeyChar = Chr(13) Then CmbJABATAN.Focus() End If End Sub Private Sub PAYROLLNUMBER() Dim rsIDPayroll As ADODB.Recordset Dim strIDPayroll As String rsIDPayroll = New ADODB.Recordset 'rsIDPayroll = CONN.Execute("Select Max(NOPAYROLL) as NOPAYROLL FROM TABEL_PAYROLL") rsIDPayroll = CONN.Execute("Select Max(NOPAYROLL) as NOPAYROLL FROM TABEL_UAS") If Not rsIDPayroll.EOF Then If rsIDPayroll.Fields("NOPAYROLL").Value.ToString <> "" Then strIDPayroll = Format(Val(Microsoft.VisualBasic.Right(rsIDPayroll.Fields("NOPAYROLL").Value.ToString, 7) + 1), "0######") Else strIDPayroll = Format(1, "0######") End If rsIDPayroll.Close() TxtNOPAYROLL.Text = strIDPayroll
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 65
End If End Sub End Class FormSLIPGAJI Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormSLIPGAJI”
Keterangan ToolBox : 3 ComboBox 1 Button
3 ComboBox : CmbNIP, CmbGAJIBULAN, CmbTAHUN 1 Button : BtnCETAKSLIP Lalu isikan koding berikut : Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class FormSLIPGAJI_UAS Dim myTabel As CrystalDecisions.CrystalReports.Engine.Table Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo Dim ObjDoc As New ReportDocument Dim ObjCon As New ConnectionInfo Dim ObjLog As New TableLogOnInfo
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 66
Dim Formula As CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition Dim rsCARI As ADODB.Recordset Dim RptGAJIAN As New RptSLIPGAJI Private Sub IsiComboBox() With CmbGAJIBULAN .Items.Clear() .Items.Add("JANUARI") .Items.Add("FEBRUARI") .Items.Add("MARET") .Items.Add("APRIL") .Items.Add("MEI") .Items.Add("JUNI") .Items.Add("JULI") .Items.Add("AGUSTUS") .Items.Add("SEPTEMBER") .Items.Add("OKTOBER") .Items.Add("NOVEMBER") .Items.Add("DESEMBER") End With With CmbTAHUN .Items.Clear() .Items.Add("2011") .Items.Add("2012") .Items.Add("2013") End With End Sub Private Sub CARINIP() Dim cNIP As String rsCARI = New ADODB.Recordset rsCARI.Open("Select Distinct NIP From TABEL_PEGAWAI Order By NIP Asc", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) With rsCARI CmbNIP.Items.Clear() Do Until .EOF cNIP = rsCARI.Fields("NIP").Value CmbNIP.Items.Add(cNIP) .MoveNext() Loop .MoveFirst() End With End Sub Private Sub FormSLIPGAJI_UAS_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call CARINIP() Call IsiComboBox()
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 67
End Sub Private Sub BtnCETAKSLIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCETAKSLIP.Click Dim Koneksi As New AKSESDATA.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim F As New FormRptPAYROLL RptGAJIAN = New RptSLIPGAJI For Each myTable In RptGAJIAN.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next F.ReportViewPAYROLL.SelectionFormula = "{TABEL_UAS.NIP}='" + CmbNIP.Text + "' And {TABEL_UAS.GAJIBULAN}='" + CmbGAJIBULAN.Text + "' And {TABEL_UAS.TAHUN}='" + CmbTAHUN.Text + "'" F.ReportViewPAYROLL.ReportSource = RptGAJIAN F.ReportViewPAYROLL.RefreshReport() F.ShowDialog() End Sub End Class
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 68
Membuat REPORT Kita hampir tiba di penghujung pembuatan aplikasi PAYROLL, yaitu pembuatan report. Tambahkan sebuah report dengan klik kanan pada folder “REPORT” New Item Reporting Crystal Report beri nama RptDATAUSER
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 69
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 70
Pilih TABEL_LOGIN, karena memang data dari table tersebut yang akan ditampilkan
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 71
Pilih field mana saja yang akan ditampilkan pada Report tersebut. Berikutnya pada sesi “Grouping” dan “Record Selection” lewatkan saja karena belum akan dipakai. Dan pada sesi “Report Style” Lalu settinglah layout Report anda sbb :
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 72
Sehingga bila di running reportnya sbb :
Lakukanlah hal yang sama untuk menbuat Report lainnya (RptDATACITY, RptEMPLOYEE) namun khusus pada RptSlip Gaji tambahkan sesi “Grouping” pada pembuatan Reportnya dengan Field “NOPAYROLL”. Dan setting reportnya sbb :
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 73
Sehingga layout reportnya sbb :
Lalu buatlah form untuk menampilkan report-report tersebut. Dengan hanya menambahkan CrystalReportViewer pada masing-masing form tersebut. Buatlah 4 Form Viewer Report (FormRptDATAUSER, FormRptCITY, FormRptPEGAWAI, FormRptPAYROLL).
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 74
FormRptDATAUSER beri nama CrystalReportViewer ReportDATAUSER FormRptCITY beri nama CrystalReportViewer RptViewerCITY FormRptPEGAWAI beri nama CrystalReportViewer REPORTPEGAWAI FormRptPAYROLL beri nama CrystalReportViewer ReportViewPAYROLL Membuat Setup Aplikasi PAYROLL File Add New Project
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 75
Isikan data dengan benar sbb : Projec t types Other Project Types Setup and Deployment Nama Setup Setup PAYROLL-SYSTEM 2011 Setup yang telah kita create tersebut akan tampil dibawah project dan database yang telah kita rapikan sebelumnya. Klik kanan pada Setup PAYROLL-SYSTEM 2011 Properties Prerequisites
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 76
Choose which prerequisites to install .NET Framework 2.0 (x86) Windows Installer 3.1 .NET Framework 3.0 (x86) .NET Framework 3.5 Crystal Reports Basic for Visual Studio 2008 (x68, x64 Microsoft Visual Studio 2008 Report Viewer
Lalu pilih Download prerequisites from the same location as my application OK Langkah selajutnya adalah memastikan seluruh aplikasi sudah berjalan dengan lancar tanpa masalah dan juga sesuai denga algoritma yang di inginkan dengan menjadi “FormSPLASH” yang pertama kali di run dari sistem aplikasi ini.
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 77
User’s Programs Menu klik kanan Add Tab Browse File .exe aplikasi, cari dalam folder “bin” sistem aplikasi PAYROLL anda
Lakukan hal yang sama pada folder “Application Folder” dengan menambahkan sebuah file “.ico” untuk dijadikan icon aplikasi. Juga jangan lupa buatlah “Shortcut” dengan setting propertiesnya menggunakan icon tersebut. Dan kemudian “Cut” Shortcut tersebut dan dipindahkan ke dalam folder “User’s Desktop” Dan langkah terakhir adalah BUILD file Setup ini
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 78
Pastikan pesan Building setup Succeeded yang tertera pada pojok kiri bawah
WELL DONE GOOD JOB MISSION COMPLETED !!!
Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 79
PAYROLL SYSTEM 2011 Materi UAS Visual Basic.NET
B.Wiratmojo Kuliah D3nya diselesaikan pada tahun 2008 lalu di Kampus STMIK Bina Insani, Jurusan Teknik Informatika dan kemudian kembali melanjutkan Program Strata 1 pada tahun 2011 ditempat dan jurusan yang sama. Bekerja di PT Bridgestone Tire Indonesia sejak 2008. Bercita-cita dapat selalu mendedikasikan dirinya dalam bidang IT Indonesia dan Dunia. [email protected] or [email protected]
bambangwiratmojo.blogspot.com