Wednesday, April 29, 2015

Petunjuk Penggunaan : Menu STAF / SEKSI / BIDANG

  No comments
8:50 PM

Menu ini berfungsi untuk menginput data staf yang melakukan transaksi atau meminta barang pakai habis. Nantinya nama staf tersebut digunakan pada laporan yang di dalamnya terdapat nama staf yang menggunakan barang pakai habis tersebut yaitu pada laporan Kartu Barang. Sehingga dapat diketahui histori keluarnya barang tersebut ke staf siapa saja.
Fungsi input bidang maupun seksi digunakan pada menu laporan untuk mengecek permintaan barang per bidang. Dengan data tersebut, dapat diketahui bidang mana saja yang permintaan barangnya banyak atau sedikit.


Ketiga menu tersebut (Staf/Seksi/Bidang) terdiri atas fungsi /Tombol :

  • Edit : Mengedit nama dan identitas
  • Tambah : Menambah nama / identitas baru yang belum ada
  • Simpan : Menyimpan hasil perubahan(edit) / penambahan. Muncul setelah tombol tambah maupun edit diklik.
  • Trans : Tombol ini hanya ada di menu Staf. Fungsinya adalah jika staf yang telah dipilih (dengan cara mengklik pada tabel nama staf) akan mengambil barang. Jika diklik akan langsung mengarah ke menu Barang Keluar.
  • Hapus : untuk menghapus data yang telah dipilih. Tombol hapus dapat digunakan manakala data yang akan dihapus tidak terkait dengan transaksi di tabel lain.

Read More

Source Code : Main Form

  No comments
7:47 PM



****************************************************************************
Thisform.init

PUBLIC harix,bulanx,tahunx,nm_tgl_inp

*DECLARE SetWindowLong In Win32Api AS _Sol_SetWindowLong Integer, Integer, Integer
*DECLARE SetLayeredWindowAttributes In Win32Api AS _Sol_SetLayeredWindowAttributes Integer, String, Integer, Integer

*_Sol_SetWindowLong(this.hWnd, -20, 0x00080000)
*_Sol_SetLayeredWindowAttributes(this.hWnd, 0, 255, 2)

thisform.buatcursor
thisform.up_bdg
thisform.up_jns_brg
thisform.up_kat_brg
thisform.up_lok
thisform.up_brg
thisform.up_sexi
thisform.up_sup
thisform.up_inp
thisform.up_outp
thisform.up_det_inp
thisform.up_det_out                                        
thisform.up_idktr
thisform.up_staf
thisform.kliksexi
thisform.up_user
thisform.up_brg13
thisform.up_reg
*thisform.up_stok

*----------------------------------------
thisform.pageframe1.page14.optiongroup1.Click
thisform.lblid.VALUE=user_id
thisform.lbluser.VALUE=user_name
thisform.pageframe1.page2.cbjns_brg.RowSource="cjns_brg.nm_jns_brg"
thisform.pageframe1.page4.cbjns_brg.RowSource="cjns_brg.nm_jns_brg"
thisform.pageframe1.page2.cbkat_brg.RowSource="ckat_brg.nm_kat_brg"
thisform.pageframe1.page9.cbkat_brg.RowSource="ckat_brg.nm_kat_brg"
thisform.pageframe1.page2.cblok.RowSource="clok.nm_lok"
thisform.pageframe1.page16.cblok.RowSource="clok.nm_lok"
thisform.img_logo.Picture= 'C:\PROGRAM FILES\APPBRG\IMG\LOGO.PNG'

thisform.pageframe1.page4.grid2.RecordSource=''
thisform.pageframe1.page5.grid2.RecordSource=''
thisform.labelip.Caption='IP Database '+ALLTRIM(ipdata)

*----------------------------------------

bln=MONTH(DATE())
DO CASE
    CASE bln=1
    bula="Januari"
    CASE bln=2
    bula="Pebruari"
    CASE bln=3
    bula="Maret"
    CASE bln=4
    bula="April"
    CASE bln=5
    bula="Mei"
    CASE bln=6
    bula="Juni"
    CASE bln=7
    bula="Juli"
    CASE bln=8
    bula="Agustus"
    CASE bln=9
    bula="September"
    CASE bln=10
    bula="Oktober"
    CASE bln=11
    bula="Nopember"
    CASE bln=12
    bula="Desember"
ENDCASE
DO CASE
    CASE DOW(DATE())=1
         hr_="Minggu"
    CASE DOW(DATE())=2
         hr_="Senin"
    CASE DOW(DATE())=3
         hr_="Selasa"
    CASE DOW(DATE())=4
         hr_="Rabu"
    CASE DOW(DATE())=5
         hr_="Kamis"
    CASE DOW(DATE())=6
         hr_="Jumat"
    CASE DOW(DATE())=7
         hr_="Sabtu"
ENDCASE

thisform.txtid_user.Value=user_id
THISFORM.LABEL6.Caption="Anda Login sebagai "+ALLTRIM(user_name)+"( "+ALLTRIM(user_nama)+" )"
THISFORM.LABEL3.Caption="Hari ini : "+alltrim(hr_)+", "+ALLTRIM(STR(DAY(DATE())))+" "+bula+" "+ALLTRIM(STR(YEAR(DATE())))


public loReportListener

loForm = Createobject('form')
With loForm
   .Name = 'Pencetakan'
   .Caption = 'Print Preview Aplikasi Persediaan'
   .Visible = .F.
   .WindowType=1
   .WindowState=2
   .MaxButton = .T.
   .MinButton = .F.
   .HEIGHT=600
  .WIDTH=1000
   .BackColor = Rgb(255,255,255)
   lcWndName = .Name
ENDWITH

SET CLASSLIB TO ("c:/program files/APPBRG/sys/_ReportListener.VCX") ADDITIVE
loReportListener = NEWOBJECT("FullJustifyListener", LOCFILE("c:/program files/APPBRG/sys/FJListener.Prg"))

SELECT * FROM cuser WHERE id_user=123456 INTO CURSOR lapx
SELECT lapx
REPORT FORM "C:\PROGRAM FILES\appbrg\rep\lap_rkp_kuitx.frx" OBJECT loReportListener NOCONSOLE PREVIEW WINDOW (lcWndName) TO PRINTER PROMPT NODIALOG

***********************************************************************************
*One of many up_*

thisform.up_brg

mtf = namakursor
msql  = "select * from brg;"
IF     SQLEXEC(Koneksi, msql, "&mtf") <= 0
       =MESSAGEBOX("Proses Query Ke MySQL Gagal 2", 0+16, "Informasi")
       RETURN
ENDIF

IF     USED("&mtf")
      SELECT cbrg
    DELETE ALL
     SELECT &mtf
      GO TOP
       DO     WHILE !EOF()
          SCATTER MEMVAR
          SELECT cbrg
          APPEND BLANK
          GATHER MEMVAR
         SELECT &mtf
          SKIP
       ENDDO
       USE IN &mtf
    ELSE
    =MESSAGEBOX("Gagal Query Ke Data Barang", 0+16, "Informasi")
     RETURN
ENDIF

SELECT     cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.sat_brg,cbrg.stok,cbrg.kuo,cbrg.jml_bl,cbrg.id_lok,;
           cbrg.merk_brg,cbrg.id_jns_brg,cbrg.id_kat_brg,cjns_brg.id_jns_brg,cjns_brg.nm_jns_brg,cbrg.ed,;
        clok.id_lok,clok.nm_lok,ckat_brg.id_kat_brg,ckat_brg.nm_kat_brg FROM cbrg INNER JOIN cjns_brg ;
        ON  cbrg.id_jns_brg = cjns_brg.id_jns_brg INNER JOIN clok ON cbrg.id_lok=clok.id_lok;
        INNER JOIN ckat_brg ON cbrg.id_kat_brg=ckat_brg.id_kat_brg ;       
        INTO CURSOR cbrg1    

SELECT cbrg1
GO TOP


thisform.pageframe1.page2.grid1.RecordSource="cbrg1"
thisform.aturtabel2

thisform.pageframe1.page7.grid1.RecordSource="cbrg1"
thisform.aturtabel7

SELECT * FROM cbrg1 WHERE id_jns_brg_a=1 AND (kuo>0 OR stok>0) INTO CURSOR cbrg9
SELECT cbrg9
GO top
thisform.pageframe1.page9.grid1.RecordSource="cbrg9"
thisform.aturtabel9

SELECT * FROM cbrg1 WHERE stok>0 INTO CURSOR cbrg5
SELECT cbrg5
GO top

thisform.pageframe1.page5.grid1.RecordSource="cbrg5"
thisform.aturtabel5a

********************************************************************************
*One of many Print Command

thisform.pageframe1.page7.cmdCetak.Click


PUBLIC tanggal,bulanx,tahun,tgl

tanggal=DATE()
thisform.nm_bln
tgl=ALLTRIM(cidktr.kt_ktr)+", "+ALLTRIM(STR(DAY(DATE())))+" "+ALLTRIM(bulanx)+" "+alltrim(STR(YEAR(DATE())))
*----------------------------------------------------------------------------------------------------------------      
KEYBOARD "{Ctrl+F10}" PLAIN CLEAR
DO     CASE

    CASE     thisform.pageframe1.page7.Optiongroup2.option1.Value=1 && Lampiran 4 (Daftar Pengadaan Barang)
            SELECT     cdet_inp.id_inp,cdet_inp.id_brg,cdet_inp.jml_inp,cinp.id_inp,cinp.tgl_inp,cinp.tgl_sp,cinp.no_sp,cinp.no_inp,;
            cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.sat_brg;
            FROM cdet_inp INNER JOIN cinp ON cdet_inp.id_inp=cinp.id_inp ;
            INNER JOIN cbrg ON cdet_inp.id_brg=cbrg.id_brg ;
            WHERE year(tgl_inp)=thisform.pageframe1.page7.spinner1.Value AND !(MONTH(tgl_inp)=1 AND DAY(tgl_inp)=1) ORDER BY tgl_inp ASC INTO CURSOR lapthn1
            SELECT lapthn1
            REPORT FORM "C:/Program Files/APPBRG/REP/Lamp4.frx" TO  PRINTER PREVIEW   
****************************************************************************************************************************************************           
           
    CASE     thisform.pageframe1.page7.Optiongroup2.option2.Value=1 && Lampiran 8 (Buku Penerimaan Barang)
            SELECT     cdet_inp.id_inp,cdet_inp.id_brg,cdet_inp.jml_inp,cinp.id_inp,cinp.tgl_inp,cinp.tgl_sp,cinp.no_sp,cinp.no_inp,;
            cinp.id_sup,csup.id_sup,csup.nm_sup,cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.sat_brg;
            FROM cdet_inp INNER JOIN cinp ON cdet_inp.id_inp=cinp.id_inp ;
            INNER JOIN cbrg ON cdet_inp.id_brg=cbrg.id_brg ;
            INNER JOIN csup ON cinp.id_sup=csup.id_sup ;
            WHERE year(tgl_inp)=thisform.pageframe1.page7.spinner1.Value AND !(MONTH(tgl_inp)=1 AND DAY(tgl_inp)=1) ORDER BY tgl_inp ASC INTO CURSOR lapthn2
            SELECT lapthn2
            REPORT FORM "C:/Program Files/APPBRG/REP/Lamp8.frx" TO  PRINTER PREVIEW   
****************************************************************************************************************************************************                       
           
    CASE     thisform.pageframe1.page7.Optiongroup2.option3.Value=1 && Lampiran 9 (Buku Pengeluaran Barang)
            SELECT     cdet_out.id_out,cdet_out.id_brg,cdet_out.jml_out,coutp.id_out,coutp.tgl_out,coutp.id_staf,;
            cstaf.id_staf,cstaf.nm_staf,cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.sat_brg;
            FROM cdet_out INNER JOIN coutp ON cdet_out.id_out=coutp.id_out ;
            INNER JOIN cbrg ON cdet_out.id_brg=cbrg.id_brg ;
            INNER JOIN cstaf ON coutp.id_staf=cstaf.id_staf ;
            WHERE year(tgl_out)=thisform.pageframe1.page7.spinner1.Value ORDER BY tgl_out ASC INTO CURSOR lapthn3
            SELECT lapthn3
            REPORT FORM "C:/Program Files/APPBRG/REP/Lamp9.frx" TO  PRINTER PREVIEW   
****************************************************************************************************************************************************                       
   
    CASE     thisform.pageframe1.page7.Optiongroup2.option4.Value=1 && Lampiran 11 (Buku Barang Pakai Habis)
            SELECT     cdet_out.id_out,cdet_out.id_brg,cdet_out.id_brg as id_brg1,cdet_out.jml_out,coutp.id_out,coutp.id_out as no_out,coutp.tgl_out,coutp.id_staf,cstaf.id_staf,cstaf.nm_staf,;
                    cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.merk_brg,cbrg.sat_brg FROM cdet_out INNER JOIN coutp ON cdet_out.id_out=coutp.id_out INNER JOIN cstaf ON coutp.id_staf=cstaf.id_staf;
                    INNER JOIN cbrg ON cdet_out.id_brg=cbrg.id_brg WHERE YEAR(tgl_out)=thisform.pageframe1.page7.spinner1.Value INTO CURSOR cbrg7d
            SELECT     cdet_inp.id_inp,cdet_inp.id_brg,cdet_inp.id_brg as id_brg1,cdet_inp.jml_inp,cinp.id_inp,cinp.tgl_inp,cinp.id_sup,cinp.no_inp,csup.id_sup,csup.nm_sup,;
                    cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.merk_brg,cbrg.sat_brg FROM cdet_inp INNER JOIN cinp ON cdet_inp.id_inp=cinp.id_inp INNER JOIN csup ON cinp.id_sup=csup.id_sup;
                    INNER JOIN cbrg ON cdet_inp.id_brg=cbrg.id_brg WHERE YEAR(tgl_inp)=thisform.pageframe1.page7.spinner1.Value AND (MONTH(tgl_inp)<>1 AND DAY(tgl_inp)<>1) INTO CURSOR cbrg7e
            select per_brg       
            DELETE ALL
           
            SELECT cbrg7d
            GO     TOP
            DO     WHILE NOT EOF()
                INSERT INTO  per_brg (id_brg,tgl_inp,nm_brg,merk_brg,thn_brg,jml_inp,sat_brg,no_inp,hrg_brg,tgl_out,nm_staf,jml_out,no_out);
                VALUES (cbrg7d.id_brg1,cbrg7d.tgl_out,cbrg7d.nm_brg,cbrg7d.merk_brg,thisform.pageframe1.page7.spinner1.Value,0,cbrg7d.sat_brg,"",cbrg7d.hrg_brg,;
                cbrg7d.tgl_out,cbrg7d.nm_staf,cbrg7d.jml_out,cbrg7d.no_out)
                SELECT     cbrg7d
                SKIP 
                ENDDO

            SELECT cbrg7e
            GO     TOP
            DO     WHILE NOT EOF()
                INSERT INTO  per_brg (id_brg,tgl_inp,nm_brg,merk_brg,thn_brg,jml_inp,sat_brg,no_inp,hrg_brg,tgl_out,nm_staf,jml_out,no_out);
                VALUES (cbrg7e.id_brg1,cbrg7e.tgl_inp,cbrg7e.nm_brg,cbrg7e.merk_brg,thisform.pageframe1.page7.spinner1.Value,cbrg7e.jml_inp,cbrg7e.sat_brg,cbrg7e.no_inp,cbrg7e.hrg_brg,;
                cbrg7e.tgl_inp,"",0,0)
                SELECT     cbrg7e
                SKIP 
                ENDDO
           

                SELECT * FROM per_brg ORDER BY id_brg,tgl_inp,tgl_out ASC INTO CURSOR per_brg2
                SELECT per_brg2
                REPORT FORM "C:/Program Files/APPBRG/REP/Lamp11.frx" TO  PRINTER PREVIEW   
    
           
****************************************************************************************************************************************************                       

    CASE     thisform.pageframe1.page7.Optiongroup2.option5.Value=1 && Lampiran 15 (Laporan Semester)
            DO CASE
            CASE    thisform.pageframe1.page7.cbsmt.ListIndex=1
                    SELECT     cdet_out.id_out,cdet_out.id_brg,cdet_out.id_brg as id_brg1,cdet_out.jml_out,coutp.id_out,coutp.id_out as no_out,coutp.tgl_out,coutp.id_staf,cstaf.id_staf,cstaf.nm_staf,;
                            cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.sat_brg FROM cdet_out INNER JOIN coutp ON cdet_out.id_out=coutp.id_out INNER JOIN cstaf ON coutp.id_staf=cstaf.id_staf;
                            INNER JOIN cbrg ON cdet_out.id_brg=cbrg.id_brg WHERE YEAR(tgl_out)=thisform.pageframe1.page7.spinner1.Value AND MONTH(tgl_out)<7 INTO CURSOR cbrg7f
                    SELECT     cdet_inp.id_inp,cdet_inp.id_brg,cdet_inp.id_brg as id_brg1,cdet_inp.jml_inp,cinp.id_inp,cinp.tgl_inp,cinp.id_sup,cinp.no_inp,cinp.no_sp,cinp.tgl_sp,csup.id_sup,csup.nm_sup,;
                            cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.sat_brg FROM cdet_inp INNER JOIN cinp ON cdet_inp.id_inp=cinp.id_inp INNER JOIN csup ON cinp.id_sup=csup.id_sup;
                            INNER JOIN cbrg ON cdet_inp.id_brg=cbrg.id_brg WHERE YEAR(tgl_inp)=thisform.pageframe1.page7.spinner1.Value AND (MONTH(tgl_inp)<>1 AND DAY(tgl_inp)<>1) AND MONTH(tgl_inp)<7 INTO CURSOR cbrg7g
            CASE    thisform.pageframe1.page7.cbsmt.ListIndex=2
                    SELECT     cdet_out.id_out,cdet_out.id_brg,cdet_out.id_brg as id_brg1,cdet_out.jml_out,coutp.id_out,coutp.id_out as no_out,coutp.tgl_out,coutp.id_staf,cstaf.id_staf,cstaf.nm_staf,;
                            cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.sat_brg FROM cdet_out INNER JOIN coutp ON cdet_out.id_out=coutp.id_out INNER JOIN cstaf ON coutp.id_staf=cstaf.id_staf;
                            INNER JOIN cbrg ON cdet_out.id_brg=cbrg.id_brg WHERE YEAR(tgl_out)=thisform.pageframe1.page7.spinner1.Value AND MONTH(tgl_out)>6 INTO CURSOR cbrg7f
                    SELECT     cdet_inp.id_inp,cdet_inp.id_brg,cdet_inp.id_brg as id_brg1,cdet_inp.jml_inp,cinp.id_inp,cinp.tgl_inp,cinp.id_sup,cinp.no_inp,cinp.no_sp,cinp.tgl_sp,csup.id_sup,csup.nm_sup,;
                            cbrg.id_brg,cbrg.nm_brg,cbrg.hrg_brg,cbrg.sat_brg FROM cdet_inp INNER JOIN cinp ON cdet_inp.id_inp=cinp.id_inp INNER JOIN csup ON cinp.id_sup=csup.id_sup;
                            INNER JOIN cbrg ON cdet_inp.id_brg=cbrg.id_brg WHERE YEAR(tgl_inp)=thisform.pageframe1.page7.spinner1.Value AND (MONTH(tgl_inp)<>1 AND DAY(tgl_inp)<>1) AND MONTH(tgl_inp)>6 INTO CURSOR cbrg7g
            ENDCASE
           
            SELECT smt_brg       
            DELETE ALL
           
            SELECT cbrg7f
            GO     TOP
            DO     WHILE NOT EOF()
                INSERT INTO  smt_brg (id_brg,tgl_inp,nm_brg,jml_inp,sat_brg,no_inp,hrg_brg,tgl_out,no_sp,tgl_sp,nm_sup,nm_staf,jml_out,no_out);
                VALUES (cbrg7f.id_brg1,cbrg7f.tgl_out,cbrg7f.nm_brg,0,cbrg7f.sat_brg,"",cbrg7f.hrg_brg,cbrg7f.tgl_out,"",;
                cbrg7f.tgl_out,"",cbrg7f.nm_staf,cbrg7f.jml_out,cbrg7f.no_out)
                SELECT     cbrg7f
                SKIP 
                ENDDO

            SELECT cbrg7g
            GO     TOP
            DO     WHILE NOT EOF()
                INSERT INTO  smt_brg (id_brg,tgl_inp,nm_brg,jml_inp,sat_brg,no_inp,hrg_brg,tgl_out,no_sp,tgl_sp,nm_sup,nm_staf,jml_out,no_out);
                VALUES (cbrg7g.id_brg1,cbrg7g.tgl_inp,cbrg7g.nm_brg,cbrg7g.jml_inp,cbrg7g.sat_brg,cbrg7g.no_inp,cbrg7g.hrg_brg,;
                cbrg7g.tgl_inp,cbrg7g.no_sp,cbrg7g.tgl_sp,cbrg7g.nm_sup,"",0,0)
                SELECT     cbrg7g
                SKIP 
                ENDDO
           

                SELECT * FROM smt_brg ORDER BY id_brg,tgl_inp,tgl_out ASC INTO CURSOR smt_brg2
                SELECT smt_brg2
                REPORT FORM "C:/Program Files/APPBRG/REP/Lamp15.frx" TO  PRINTER PREVIEW   

*************************************************************************************************************************************

ENDCASE

Read More

Source Code : Login

  No comments
7:25 PM




*****************************************************************************


thisform.konek

ipdb=ALLTRIM(thisform.labelip.Caption)
userdb="root"
passdb="***********"
namedb="dbbrg"
SQLSETPROP(0,"DispLogin",3)
mstr = "DATABASE="+namedb+";SERVER="+ipdb+";port=3306;UID="+userdb+";PWD="+passdb+";provider=MSDASQLR;DRIVER={MySQL ODBC 5.1 Driver};"
THISFORM.Koneksi = SQLSTRINGCONNECT( mstr )
IF     THISFORM.Koneksi <= 0
    thisform.lbkonek.Caption="Koneksi Ke Server Database MySQL Gagal"
ELSE
    thisform.lbkonek.Caption="Koneksi Ke Server Database MySQL Berhasil"
ENDIF
THISFORM.namakursor  = "QT"+SUBSTR(SYS(2015), 5)

koneksi = thisform.koneksi
namakursor=thisform.namakursor

*****************************************************************************
thisform.tampildata

SELECT ( namakursor )
THISFORM.text1.VALUE=pass

PUBLIC user_id, user_name, user_nama

user_id=id_user
user_name=name   
user_nama=nama

THISFORM.REFRESH

****************************************************************************
thisform.init 
 
LOCAL lcFileName
IF SELECT("textfile") = 0
    CREATE CURSOR textfile (filename c(60),mem m)
    APPEND BLANK
ENDIF

REPLACE textfile.FileName WITH "c:/Program Files/APPBRG/param.ini"
SELECT textfile
APPEND MEMO mem FROM ("c:/Program Files/APPBRG/param.ini") OVERWRITE
THISform.labelip.caption =ALLTRIM(textfile.mem)
ipdata=ALLTRIM(textfile.mem)
THISform.Refresh
thisform.konek

 

****************************************************************************
thisform.ambiluser
 
CREATE CURSOR Duser (id_user n(3),name c(10),pass c(10),nama c(50),alamat c(50))

mtf = namakursor
msql  = "select * from user WHERE name = '" + THISFORM.txtname.Value + "';"
IF SQLEXEC(Koneksi, msql, "&mtf") <= 0
   =MESSAGEBOX("Proses Query Ke MySQL Gagal", 0+16, "PESAN")
   QUIT
   RETURN
ENDIF

IF   USED("&mtf")
      SELECT Duser
      DELETE ALL
     SELECT &mtf
      GO TOP
       DO     WHILE !EOF()
          SCATTER MEMVAR
          SELECT Duser
          APPEND BLANK
          GATHER MEMVAR
         SELECT &mtf
          SKIP
       ENDDO
       USE IN &mtf
    ELSE
    =MESSAGEBOX("Gagal Query Ke Data USER", 0+16, "Informasi")
     RETURN
ENDIF


************************************************************************
thisform.txtname.LostFocus

IF Koneksi <= 0
   =MESSAGEBOX("Anda Belum Koneksi Ke Server Database MySQL ", 0+16, "Konfirmasi")
   QUIT
ELSE

mtf = namakursor
msql  = "select * from user WHERE name = '" + THISFORM.txtname.Value + "';"
IF SQLEXEC(Koneksi, msql, "&mtf") <= 0
   =MESSAGEBOX("Proses Query Ke MySQL Gagal", 0+16, "PESAN")
   QUIT
   RETURN
ENDIF

THISFORM.Baru = .T.
THISFORM.nilai_awal

IF USED("&mtf")
   SELECT &mtf
   GO TOP
   IF !EOF()
      THISFORM.Baru = .F.
      THISFORM.tampil_data
   ENDIF
ENDIF
RETURN
ENDIF


************************************************************************
thisform.commandOK.Click

IF EMPTY( THISFORM.txtname.Value )
   MESSAGEBOX("Username Harus diisi!!",0+48,"Perhatian")
   THISFORM.Txtname.SETFOCUS()
   RETURN
   ENDIF
IF EMPTY( THISFORM.Txtpass.Value )
   MESSAGEBOX("Password Harus diisi!!",0+48,"Perhatian")
   THISFORM.Txtpass.SETFOCUS()
   RETURN
   ENDIF
SET EXACT ON
IF     ALLTRIM(thisform.txtpass.Value)=ALLTRIM(thisform.text1.Value) AND ALLTRIM(thisform.text2.Value)=ALLTRIM(thisform.text3.Value)
    MESSAGEBOX('Anda mempunyai Hak Akses',0+64,'Informasi')
        DO FORM 'c:/program files/appBRG/900.scx'
        thisform.ambiluser
        THISFORM.RELEASE
    ELSE
    MESSAGEBOX('User Atau Password salah',0+16,'Informasi')
    ENDIF 

  

Read More

Source Code : Impor Data dari Excel ke MySQL

  No comments
7:11 PM


Menyajikan data awal pada suatu tabel MySQL tentu akan merepotkan jika data yang akan diinput banyak dan diinputkan secara manual. Namun akan memudahkan jika data sudah tersedia dalam bentuk excel dan dengan bantuan MS Visual Foxpro tentunya. Berikut akan ditampilkan bagaimana cara sederhana agar data dalam bentuk Excel dapat diimpor ke dalam format tabel MySQL. Kelemahan cara ini kalau gak salah hanya bisa maksimal 16382 record, saya sendiri belum mencoba. Tapi tidak ada salahnya jika kita sedikit mencoba dengan cara ini :

1. Ambil data dari excel kemudian memasukan ke dalam cursor baru dan ditampilkan ke dalam tabel:

lcNamaFile = GETFILE([XLS],[File Excel],[Buka],0,[Impor File Excel])
lcTempFile = Getenv("TEMP")+'\'+Sys(2015)+'.xls'
IF     EMPTY(lcNamaFile)
    RETURN
    ELSE
    #DEFINE Pesan1 "Sedang Proses "
    WAIT WINDOW Pesan1 NOWAIT TIMEOUT 0
    loExcel = Createobject("excel.application")

    loExcel.Workbooks.Open(m.lcNamaFile)
    loExcel.ActiveWorkbook.SaveAs(m.lcTempFile,6)
    loExcel.ActiveWindow.Close(.T.)

    create CURSOR tb_imp(id_brg n(9),nm_brg c(100),hrg_brg n(12,2),sat_brg c(30),stok n(9),;
          id_kat_brg n(3),merk_brg c(30),kuo n(9),ed d(8),id_lok n(3))

    Select tb_imp
    DELETE ALL


    Append From (m.lcTempFile) Delimited

    loExcel.Quit

    SELECT tb_imp
    DELETE FROM tb_imp WHERE id_brg=0
    #DEFINE Pesan2 "Proses Selesai"   
    WAIT WINDOW Pesan2 TIMEOUT 1

    WAIT clear
    *USE
    SET SAFETY on
    MESSAGEBOX("Data telah diimpor!"+CHR(13)+"Klik PROSES untuk melanjutkan",0+64,"Informasi")

    SELECT tb_imp
    GO TOP
    SUM (hrg_brg*stok) TO hrg_total
    thisform.pageframe1.page15.txthrg_tot.Value=hrg_total
    thisform.pageframe1.page15.grid1.RecordSource="tb_imp"
    thisform.aturtabel15a
    ENDIF

2. Memasukkan cursor ke dalam tabel transaksi (MySQL) tombol Proses  :

Select * from Cinp WHERE MONTH(tgl_inp)=1 AND DAY(tgl_inp)=1 AND YEAR(tgl_inp)=YEAR(DATE()) into cursor cstok
*? _TALLY
IF _TALLY=0
    IF     MESSAGEBOX('Data ini akan dijadikan stok awal tahun ini?',4+32,'Perhatian')=7
        RETURN
        ELSE
        ************************************************************************************************************************
        *Input Tabel Cbrg
        SELECT cbrg
        GO BOTTOM
        thisform.pageframe1.page15.text1.Value=id_brg
        SELECT tb_imp
        GO TOP
            DO     WHILE NOT EOF()
                replace tb_imp.id_brg WITH thisform.pageframe1.page15.text1.Value+RECNO()
                IF     EMPTY(tb_imp.ed)
                    replace tb_imp.ed WITH {^2030-01-01}
                    ENDIF
                IF     EMPTY(tb_imp.id_lok)
                    replace tb_imp.id_lok WITH 1
                    ENDIF
                SELECT     tb_imp
                SKIP
            ENDDO            

         SELECT tb_imp
        GO TOP 
        DO     WHILE NOT EOF()
            SCATTER MEMVAR
            thisform.sqlawal 
            msql=    'INSERT INTO brg (id_brg,nm_brg,hrg_brg,sat_brg,stok,merk_brg,id_jns_brg,kuo,jml_bl,id_kat_brg,ed,id_lok)'+;
                      'VALUES (?m.id_brg,?m.nm_brg,?m.hrg_brg,?m.sat_brg,?m.stok,?m.merk_brg,"1",?m.kuo,"0",?m.id_kat_brg,?m.ed,?m.id_lok);'
            IF     SQLEXEC( Koneksi, msql ) <= 0
                =MESSAGEBOX("Gagal Insert/ Update Data ke Tabel Barang", 0+16, "Informasi")
                RETURN
            ENDIF       
            thisform.sqlakhir
            SELECT tb_imp
            SKIP
        ENDDO
     
     
     
        *Input Tabel Inp
        SELECT cinp
        GO BOTTOM  
        thisform.pageframe1.page15.txtid_inp.Value=id_inp+1
        tgl_tran    =    TRAN(YEAR(DATE()), "@L 9999")+"-"+TRAN("1", "@L 99")+"-"+TRAN("1", "@L 99")
        thisform.sqlawal
        msql =         'INSERT INTO inp(id_inp,tgl_inp,tot_hrg,id_user,no_inp,id_sup,no_sp,keg,pek,tgl_sp) VALUES ('+;
                      '"' + TRANSFORM(thisform.pageframe1.page15.txtid_inp.value,"999999999")  +'",'+;
                      '"' + TRAN(YEAR(DATE()), "@L 9999")+"-"+TRAN("1", "@L 99")+"-"+TRAN("1", "@L 99")+'",'+;
                      '"' + TRANSFORM(thisform.pageframe1.page15.txthrg_tot.value,"999999999999.99")     +'",'+;
                      '"' + "1"                                                               +'",'+;
                      '"' + "0"                                                              +'",'+;
                      '"' + "1"                                                              +'",'+;
                      '"' + "0"                                                              +'",'+;
                      '"' + "0"                                                              +'",'+;
                      '"' + "0"                                                              +'",'+;
                      '"' +TRAN(YEAR(DATE()), "@L 9999")+"-"+TRAN("1", "@L 99")+"-"+TRAN("1", "@L 99")+'");'
        IF     SQLEXEC( Koneksi, msql ) <= 0
            =MESSAGEBOX("Gagal Insert/ Update Data ke Tabel Input", 0+16, "Informasi")
            RETURN
            ENDIF       
            thisform.sqlakhir
           
        *Input Tabel Det_Inp
        SELECT * FROM cdet_inp WHERE id_inp =thisform.pageframe1.page15.txtid_inp.Value-1 INTO CURSOR cdet_inp15
        SELECT cdet_inp15
        GO BOTTOM    
        thisform.pageframe1.page15.txtid_det_inp.Value=id_det_inp
       
        SELECT id_brg,stok,kuo,hrg_brg FROM tb_imp WHERE stok>0 INTO CURSOR cbrgstok2 READWRITE
        SELECT cbrgstok2
        GO TOP
        DO     WHILE NOT EOF()
            replace cbrgstok2.kuo WITH thisform.pageframe1.page15.txtid_det_inp.Value+RECNO()
            replace cbrgstok2.hrg_brg WITH thisform.pageframe1.page15.txtid_inp.Value
            SELECT     cbrgstok2
            SKIP 
        ENDDO
       
        SELECT cbrgstok2
        GO TOP 
        DO     WHILE NOT EOF()
            SCATTER MEMVAR
            thisform.sqlawal 
            msql=    'INSERT INTO det_inp (id_det_inp,id_inp,id_brg,jml_inp)'+;
                      'VALUES (?m.kuo,?m.hrg_brg,?m.id_brg,?m.stok);'
            IF     SQLEXEC( Koneksi, msql ) <= 0
                =MESSAGEBOX("Gagal Insert/ Update Data ke Tabel Detail Input", 0+16, "Informasi")
                RETURN
            ENDIF       
            thisform.sqlakhir
            SELECT cbrgstok2
            SKIP
        ENDDO
           
   
    thisform.up_brg
    thisform.up_det_inp
    thisform.up_inp
    thisform.progress   
    thisform.pageframe1.page15.grid1.RecordSource=""
    ENDIF

ELSE
MESSAGEBOX('Data Sudah ada,Proses tidak dapat dilanjutkan?',16,'Perhatian')
RETURN
ENDIF


Cara ini sudah saya coba pada submenu Stok Awal. Mohon maaf codingnya berantakan soalnya saya copy paste langsung dari aplikasinya.

Read More

Tuesday, April 28, 2015

Cara Install Database Aplikasi Persediaan

  No comments
11:12 PM

1. Pastikan anda mempunyai hak akses sebagai administrator.
2. Terdapat drive D pada komputer / laptop anda (drive ini untuk menyimpan data agar aman)
3. Tinggal klik run as administrator pada file "Setup-Database-Persediaan.exe" atau doble klik kemudian tekan next dan seterusnya.
Instruksi lebih lengkap silakan simak video berikut ini :

 

Read More

Saturday, April 25, 2015

Cara menginput data barang masuk dan data barang keluar

  No comments
11:34 PM

Kemudahan dari aplikasi ini adalah semua laporan yang dibutuhkan diperoleh dari sebagian besar dua aktifitas rutin berupa melakukan transaksi data barang masuk dan melakukan transaksi data barang keluar.

A. Data Barang Masuk
Pilih Menu Barang>Masuk
Sumber data : Berita acara barang masuk/ bukti penerimaan barang dan lampiran data barangnya. Dalam dokumen tersebut paling tidak memuat asal barang (supplier), tanggal penerimaan, nama dan jenis barang beserta harga, jumlah barang, nomor bukti penerimaan dan nomor pesanan beserta tanggal pemesanan/ permintaan. Lebih lengkapnya dapat dilihat pada penjelasan sebelumnya disini. Data tersebut akan dijadikan data input pada data barang masuk.




















1. Pilih nama supplier/ rekanan dengan mengetikkan nama pada kolom rekana kemudian pilih pada tabel yang muncul dengan klik pada tabel tersebut. Jika data supplier atau rekanan belum ada, bisa ditambahkan pada Menu Rekanan.
2. Pilih nama barang pada tabel dengan  klik pada tabel tersebut. Nama barang akan muncul pada nomor 3. Untuk mempermudah pencarian nama barang, bisa dilakukan dengan mengetikan nama barang pada kolom cari.
3. Pada kolom 'QTY' isikan jumlah barang yang akan diinputkan kemudian klik tombol tambah pada nomor 4, nama barang akan muncul pada tabel nomor 5.
4. Tombol ini berfungsi menambah barang pada tabel nomor 5.
5. Klik pada tabel ini akan memunculkan nama barang pada kolom di bawahnya.
6. Tombol nomor 6 berfungsi untuk menghapus pilihan yang sudah diklik pada tabel nomor 5.
7. Pada kolom nomor 7 akan muncul total harga barang yang akan diinputkan.
8. Kolom nomor 8 berupa isian nomor surat pesanan beserta tanggal surat pesanan atau surat permintaan sesuai SPJ atau bukti penyerahan.
9. Kolom nomor 9 berupa isian nomor Berita Acara penyerahan dari panitia pemeriksa kepada penyimpan barang beserta tanggal penyerahannya.
10. Jika data sudah sesuai, data bisa dimasukkan ke dalam database aplikasi dengan memilih tombol 'Proses'. Tombol 'Batal' untuk membatalkan data yang akan diinput.

B. Data Barang Keluar
Pilih Menu Barang>Keluar
Sumber data : dapat berupa berita acara barang keluar, nota barang keluar, atau buku permintaan barang keluar. Data yang ada di bukti tersebut setidaknya memuat : tanggal barang keluar, nama barang dan jumlah barang keluar, dan nama staf yang meminta. Lebih lengkapnya dapat dilihat pada penjelasan sebelumnya disini. Data tersebut akan dijadikan data input pada data barang keluar.
1. Pilih nama staf dengan mengetikkan nama staf pada kolom ini, data nama yang sesuai akan muncul pada tabel secara otomatis, kemudian klik pada tabel tersebut. Jika nama belum ada, bisa ditambahkan pada Menu Staf>Staf.
2. Pilih nama barang pada tabel nomor 2, nama barang yang diklik akan muncul pada kolom di bawahnya. Untuk mempermudah pencarian, dapat diketik pada kolom 'CARI' .
3. Isikan jumlah barang yang keluar pada isian kolom 'QTY'.
4. Klik tombol 'Tambah' untuk menambahkan daftar barang yang keluar yang akan muncul pada tabel nomor 6.
5. Tombol 'Cetak' berguna untuk mencetak histori barang (keluar dan masuk barang) sebagaimana format kartu barang terhadap nama barang yang sudah diklik pada tabel nomor 2.
6. Tabel nomor 6 berisi daftar barang yang akan dikeluarkan, klik nama barang pada tabel ini akan muncul pada kolom di bawahnya.
7. Tombol 'Hapus' berfungsi untuk menghapus barang yang sudah dipilih pada tabel nomor 6.
8. Pada kolom ini memuat jumlah total harga barang yang akan dikeluarkan.
9. Pemilihan tanggal keluar dilakukan dengan mengklik pilihan ini.
10. Setelah semua isian lengkap, selanjutnya pilih tombol 'Proses' untuk mengeksekusi transaksi ke dalam database aplikasi. Tombol 'Batal' berfungsi untuk membatalkan transaksi yang akan diproses.

Read More

Cara mencetak laporan

  No comments
11:05 PM

Laporan yang ditampilkan dalam aplikasi sudah bisa memenuhi standar kebutuhan Penyimpan Barang SKPD.
Laporan yang dapat ditampilkan dari aplikasi ini adalah :
a. Laporan penerimaan, penyaluran dan stok persediaan
b. Berita acara stok sisa barang pakai habis
c. Daftar pengadaan Barang (Lampiran 4)
d. Buku Penerimaan Barang (Lampiran 8)
e. Buku Pengeluaran Barang (Lampiran 9)
f. Buku Barang Pakai Habis (Lampiran 11)
g. Kartu Barang (Lampiran 12)
h. Kartu Persediaan Barang (Lampiran 13)
i. Laporan Semesteran (Lampiran 15)
j.  Data Barang per Lokasi
k. Berita Acar Stok Opname
l. Rincian barang keluar dan masuk
m. Laporan barang yang akan ED / kadaluarsa.




Semua laporan dapat dicetak berdasarkan bulan atau berdasarkan pilihan untuk jenis barang (kartu barang dan kartu persediaan barang). Setiap laporan yang dicetak dapat ditampilkan dalam output berformat pdf, doc,xls,jpg, dan bmp.
Cara mencetak laporan pada aplikasi ini adalah dengan mengklik tombol cetak, untuk mengekspor laporan dalam format yang diinginkan dapat memilih pada opsi bergambar disket pada print preview seperti ditampilkan pada gambar di bawah ini.


Read More