12 April 2014

Menghentikan Looping dengan tombol ESC (VB 6)

Suatu ketika saya mendapatkan data pembayaran biaya pendidikan mahasiswa di Fakultas tempat saya bekerja, yang terdiri dari beberapa ratus file MS excel yang saya download dari sistem informasi pembayaran tingkat Universitas, tugas saya adalah membuat report penerimaan/pendapatan Fakultas dari pembayaran biaya pendidikan, padahal data yang saya peroleh adalah data induk yang memuat beribu-ribu data dari seluruh Fakultas. Akhirnya saya putuskan untuk membuat aplikasi sendiri dengan database sendiri. Dengan metode looping dan filter berdasarkan Fakultas akhirnya saya berhasil mempunyai database pembayaran khusus Fakultas, Alhamdulillah.

Tapi bukan itu permasalahannya, Hehehe..

Waktu itu jam di kantor menunjukkan sesaat lagi harus berkemas untuk pulang, padahal proses import data baru saja saya mulai, ahh.. berarti saya telat pulang. Sebenarnya bisa saja saya hentikan prosesnya dengan CTRL+ALT+DEL, atau langsung Turn Off PC-nya, tapi sepertinya langkah itu sedikit Arogan :D

Di lain kesempatan saya putuskan memperbaiki aplikasi tersebut, akhirnya setelah beberapa kali mencari saya mendapatkan inspirasi dan referensi di sini :

Kemudian saya terapkan dalam project VB 6 saya persis seperti yang ada dalam referensi saya yang nomor 1, seperti ini :

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Private Sub Command1_Click()
    for i = 1 to MsFlexgrid1.Rows-1

        'masukkan perintah-perintah anda disini
        If WasKeyPressed(vbKeyEscape) Then Exit For
    Next i

    Label1.Caption = "Exited loop successfully"

End Sub

Function WasKeyPressed(ByVal plVirtualKey As Long) As Boolean
    If (GetAsyncKeyState(plVirtualKey) And &H8000) Then WasKeyPressed = True
End Function

Dan akhirnya saya bisa menghentikan impor data kapan pun saya inginkan dan pulang tepat waktu :D

ilustrasi menghentikan looping

Selamat mencoba. Semoga bermanfaat. Good Luck ! :p


10 April 2014

Formula Field Saldo Debet Kredit Pada Crystal Report 8.5

Beberapa pekan yang lalu saya mendapatkan masalah, bagaimana menyusun buku besar yang ada saldonya, pertama saya berpikir untuk memasukkannya ke dalam tabel. akh... tapi kan "HARAM" hukumnya membuat field (kolom) perhitungan didalam database.


Kemudian saya browsing berusaha mencari referensi sebanyak-banyaknya, akhirnya saya menemukan solusi sederhana untuk permasalahannya, waktu itu saya berkunjung ke sini : https://scn.sap.com/thread/1871405

Intinya adalah membuat Formula field saldo pada crystal report, kurang lebih  seperti ini codenya :

whileprintingrecords;
if OnFirstRecord then Shared numbervar saldox := ToNumber ({t_jurnal.DEBET})-ToNumber ({t_jurnal.KREDIT} )
else
shared numbervar
saldox := saldox + ToNumber ({t_jurnal.DEBET})-ToNumber ({t_jurnal.KREDIT} )
 Untuk cara membuat formula field silakan baca-baca dulu disini : http://www.vbjadul.net/2009/09/menambahkan-formula-field-pada-crystal_03.html


 Untuk yang masih bingung juga saya sertakan link downloadnya dibawah ini :

http://downloads.ziddu.com/download/23678653/Saldodebetkredit.rar.html

Demikian, semoga bermanfaat.

27 Desember 2013

CETAK FAKTUR / INVOICE / KUITANSI DENGAN VB 6 DAN CRYSTAL REPORT 8.5

Berikut saya berikan link download source code "sangat sederhana" untuk mencetak langsung faktur, invoice atau kuitansi langsung ke printer.

Cara Cetak Faktur

1. Faktur Baru

- Klik tombol baru, secara otomatis aplikasi akan memunculkan nomor faktur/urut baru
- Pilih dropdown kode barang
- Masukkan kuantitas yang dijual
- Klik tombol Tambah, maka grid (MSFlexgrid - red) akan terisi dengan item barang yang dijual lengkap dengan harga dan kuantitasnya, ulangi langkah mulai dari memilih dari dropdown barang sampai dengan menekan tombol tambah untuk mengisi grid.

- Tekan tombol simpan untuk menyimpan dan mencetak atau tekan tombol baru untuk mengisingkan form




2. Cetak Faktur Yang Sudah Pernah diinput

- Cari Faktur dengan memilih dari dropdown (combobox) No Faktur, kemudian tekan tombol (command) Cetak untuk mencetak langsung ke printer.






Component yang perlu ditambahkan
- MSFlexgrid Control 6.0
- Crystal Report Control




Secara singkat dapat saya sampaikan untuk mencetak faktur langsung ke printer dengan vb6 dan crystal report langkah-langkahnya adalah sebagai berikut,
- Menyimpan data ke database dengan identitas tertentu, seperti nomor faktur dll.

- Untuk memungkinkan hanya satu data yang tercetak yaitu data yang baru saja disimpan, maka crystal report harus dipanggil dan ditambahkan selection formula agar hanya data tersebut yang tampil/tercetak (contoh code : crt1.selectionFormula = "{jual.nofaktur}='" & Combo1.Text & "'")

- setting destination crystal report ke to printer (contoh code di vb6 : crt1.Destination = crptToPrinter)

NB : 

Bila setting destination crystal report langsung ke printer maka aplikasi tidak memberikan pilihan akan di print di printer yang mana, karena aplikasi akan langsung memilih printer yang diset sebagai default

Source code :

http://www.ziddu.com/download/23481200/cetakfaktur.rar.html


23 Mei 2013

Membuat Icon untuk digunakan pada visual basic 6

Tidak semua icon dapat digunakan, seringkali akan muncul pesan error "invalid picture" saat memasukkan icon di vb6, baik untuk mengganti icon pada form, toolbar, dll.



1 : Gambar asli 2 : Setelah menjadi icon 3 : Setelah saya gunakan di vb6


Berikut ini saya berikan link download cara membuat icon yang akan digunakan pada vb 6 dalam file doc tulisan bergambar.

http://www.ziddu.com/download/22242868/MembuatIconuntukvb6.doc.html

16 Februari 2013

Menampilkan Periode Mingguan dalam 1 bulan dengan visual basic 6.0

Komponen yang diperlukan : 
3 buah combo box; 3 buah DTPicker

Setting propertiesnya sebagai berikut :
1. Combo1, name=cmbBulan,    visible=true
2. Combo2, name=cmbTahun,    visible=true
3. Combo3, name=cmbMinggu, visible=true
4. DTPicker1, visible=true, enable=false
5. DTPicker2, visible=true, enable=false
6. DTPicker3, visible=false, enable=false

Code :

Private Sub Form_Load()
On Error Resume Next
Call loadbulan
Call loadtahun
Call settanggal

cmbBulan.Text = Month(Date)
cmbTahun.Text = Year(Date)

Call cariperiode
End Sub
'______________________________________________________________________
Private Sub cmbbulan_Click()
Call cariperiode
End Sub
'______________________________________________________________________
Private Sub cmbtahun_Click()
Call cariperiode
End Sub

'______________________________________________________________________
Sub settanggal()
On Error Resume Next
    DTPicker1.Month = Val(cmbBulan.Text)
    DTPicker1.Year = Val(cmbTahun.Text)
   
    If Not Val(cmbBulan.Text) = 12 Then
        DTPicker2.Month = Val(cmbBulan.Text) + 1
        DTPicker2.Year = Val(cmbTahun.Text)
    Else
        DTPicker2.Month = 1
        DTPicker2.Year = Val(cmbTahun.Text) + 1
    End If
   
    DTPicker1.Day = 1
    DTPicker2.Day = 1
    DTPicker2.Value = DTPicker2.Value - 1
    DTPicker3.Value = DTPicker1.Value
       
End Sub

Sub loadbulan()
    cmbBulan.Clear
    For i = 1 To 12
        cmbBulan.AddItem i
    Next i
End Sub

'______________________________________________________________________
Sub loadtahun()
    cmbTahun.Clear
    For i = 1 To 5
        cmbTahun.AddItem Year(Date) + i - 5
    Next i
End Sub

'______________________________________________________________________
Sub cariperiode()
    Call settanggal
    satu = 1
    minggu = 1
    CmbMinggu.Clear
    For i = 1 To (DTPicker2.Value - DTPicker1.Value) + 1
        DTPicker3.Value = DTPicker3.Value + 1
    
        dua = i
        If Weekday(DTPicker3.Value, vbMonday) = 1 Then
            If satu = 1 Then satu = 1
            CmbMinggu.AddItem "minggu ke-" & minggu & " : " & Right("0" & satu, 2) & " s.d " & Right("0" & dua, 2)
            satu = i + 1
            minggu = minggu + 1
        Else
            If i = (DTPicker2.Value - DTPicker1.Value) + 1 Then CmbMinggu.AddItem "minggu ke-" & minggu & " : " & Right("0" & satu, 2) & " s.d " & Right("0" & dua, 2)
       
        End If
Next i
End Sub

Screenshot :


Source Code :
http://www.ziddu.com/download/21608628/periodemingguan.rar.html


7 Februari 2013

Pindah halaman otomatis saat berganti group pada crystal report

Masih soal Crystal Report, misalnya Anda membuat report penjualan dengan mengelompokkan berdasarkan kota tempat pemasaran. Secara default hasilnya akan ditampilkan seperti gambar dibawah ini :



Apabila ingin memisahkan setiap group pada halaman berbeda, dapat dilakukan dengan langkah-langkah sebagai berikut :

1. Klik kanan pada tab design, kemudian
2. pilih Format Section ...



3. Pilih Group Footer yang dijadikan parameter perpindahan (misalnya group footernya 'KOTA')
4. Centang New Page After, yang berarti report akan berpindah halaman setelah group bersangkutan berakhir.
5. Suppress Report Footernya, pindahkan judul reportnya ke section page header
Berikut hasilnya :


Sekian, Semoga bermanfaat