Laporan penjualan per barang sangat diperlukan guna referensi pembuatan forecast sales di Marketing Dept.
Dan ini screen shoot serta coding minigui exstendednya
DAN INI CODING SAYA WITH MINIGUI EXSTENDED
#include “minigui.ch”
#include “miniprint.ch”
procedure salbar()
if !iswindowactive (salbar)
SET DATE ITALIA
SET DELETE ON
set browsesync on
set century on
set navigation extended
Define window salbar ;
at 30,30 ;
Width 650 ;
Height 460 ;
on init bukasalbar();
ON RELEASE dbcloseall();
child ;
nomaximize;
NOMINIMIZE;
backcolor {192,192,192}
DEFINE IMAGE SALBAR
ROW 30
COL 30
WIDTH 660
HEIGHT 450
PICTURE ‘D:\SOALGUI\dasar\birutelurpolos.gif’
END IMAGE
@ 17,130 LABEL TBL_LBL Value “LAPORAN PENJUALAN PER BARANG”;
FONT “ARIAL NARROW” SIZE 18 ;
fontcolor {255,0,0} ;
transparent ;
WIDTH 500
DRAW PANEL ;
IN WINDOW salbar ;
AT 10,30 ;
TO 50,615
DRAW PANEL ;
IN WINDOW salbar ;
AT 60,30 ;
TO 400,615
@ 70,440 frame kata_frm ;
caption “Jenis Laporan”;
width 150 ;
height 240
@ 70,40 frame kata_frm2 ;
caption “Data Posting laporan”;
width 385 ;
height 300
@ 110,55 LABEL PRODUK1_LBL VALUE ‘Nama Produk ‘;
font “arial” size 12 ;
transparent
@ 140,210 LABEL PRODUK11_LBL ;
font “arial” size 11 ;
width 200 ;
transparent
@ 170,55 LABEL PRODUK2_LBL VALUE ‘Nama Produk ‘;
font “arial” size 12 ;
transparent
@ 200,210 LABEL PRODUK21_LBL ;
font “arial” size 11;
width 200 ;
transparent
@ 230,55 label stgl1_lbl Value ‘Tanggal ‘;
font “arial” size 12 ;
width 150 ;
height 30 ;
transparent
@ 250,55 label stgl2_lbl Value ‘Tanggal ‘;
font “arial” size 12 ;
width 150 ;
height 30 ;
transparent
@ 110,210 btntextbox PRODUK1_txt ;
font “arial” size 12 ;
width 100 ;
action (playbeep(),carisalbar())
@ 170,210 btntextbox PRODUK2_txt ;
font “arial” size 12 ;
width 100 ;
action (playbeep(),carisalbar2())
define datepicker stanggal1
row 230
col 210
end datepicker
define datepicker stanggal2
row 270
col 210
end datepicker
@ 310,155 LABEL PROGRES_LBL VALUE ‘Proses Exsport ‘;
font “arial” size 10 ;
transparent
@ 330,55 progressbar progress_1;
range 1,100;
width 350 height 26
DEFINE IMAGE BK1
ROW 110
COL 455
WIDTH 20
HEIGHT 30
PICTURE ‘D:\YOKATA\ICO\EXCEL16.BMP’
WHITEBACKGROUND .t.
// ON CLICK { salbarxls(),DBFsalbar()}
END IMAGE
DEFINE IMAGE BK2
ROW 160
COL 455
WIDTH 20
HEIGHT 30
PICTURE ‘D:\YOKATA\ICO\PRINT.ICO’
WHITEBACKGROUND .F.
ON CLICK { salbar2() }
END IMAGE
@ 110,495 buttonex BK3;
caption ‘Exsport &XLS ‘;
height 30 ;
width 80 ;
BACKCOLOR {128,255,0};
// on click { salbarxls(),DBFsalbar()}
@ 160,495 buttonex BK4;
caption ‘Ke &Printer’;
height 30 ;
width 80 ;
BACKCOLOR {128,255,0};
on click { playbeep(),salbar2() }
@ 210,495 buttonex BK5;
caption ‘Ke &P D F ‘;
height 30 ;
width 80 ;
BACKCOLOR {128,255,0};
on click { playbeep(),salbar2() }
end window
salbar.progress_1.value := 0
center window salbar
activate window salbar
Endif
return nil
PROCEDURE bukasalbar
RddSetDefault(“DBFNTX”) //standar clipper-harbour
request dbfntx
&& ini dipakai jika memakai CDX
/*
afile := {“suplier”,”tblwmas”,”intran1″,”invtbl”,”intran2″,”intran28″}
for i := 1 to len(afile)
If opentables (cdrv+afile[i],.F.)
set index to (afile[i])
else
for a:= 1 to i-1
select (afile[i])
dbclosearea()
next
endif
next
*/
&& ini dipakai jika pakai NTX
IF opentables(cDRV+”GLTBL”,.F.)
ELSE
RETURN
ENDIF
IF .NOT. OPENTABLES(cDRV+”SALES”,.F.)
RETURN
ENDIF
IF OPENTABLES(cDRV+”TBLCMAS”,.F.)
SET INDEX TO (cDRV+”TBLCMAS”)
ELSE
RETURN
ENDIF
IF OPENTABLES(cDRV+”TBLWMAS”,.F.)
SET INDEX TO (cDRV+”TBLWMAS”)
ELSE
RETURN
ENDIF
IF OPENTABLES(cDRV+”INTRAN1″,.F.)
SET INDEX TO (cDRV+”INTRAN1″)
ELSE
RETURN
ENDIF
IF OPENTABLES(cDRV+”INVTBL”,.F.)
SET INDEX TO (cDRV+”INVTBL”)
ELSE
RETURN
ENDIF
IF OPENTABLES(cDRV+”INTRAN2″,.F.)
SET INDEX TO (cDRV+”INTRAN23″)
ELSE
RETURN
ENDIF
RETURN
procedure carisalbar
do while .t.
findsalbar(“salbar”,”PRODUK1_txt”)
exit
enddo
return
procedure carisalbar2
do while .t.
findsalbar(“salbar”,”PRODUK2_txt”)
// select invtbl
// salbar.produk21_lbl.value := invtbl->nmbrg
exit
enddo
return
Function findsalbar(cForm, cTextBtn)
Local cReg := “”
cReg := getsalbar(Getproperty(cForm,cTextBtn,”Value”))
If !empty(cReg)
Setproperty(cForm,cTextBtn,”Value”,cReg)
select invtbl
salbar.produk11_lbl.value := invtbl->nmbrg
salbar.produk21_lbl.value := invtbl->nmbrg
EndIf
Return
Function getsalbar(nValue)
Local cReg:= “”, nReg := 1
invtbl->(dbsetorder(1))
if !empty(nValue)
nValue := recno()
Seek Alltrim(str(nValue))
if !eof()
nReg := Recno()
endif
endif
DEFINE WINDOW Form_11;
AT 0,0 ;
WIDTH 700 HEIGHT 440 ;
MODAL NOSIZE
@310,5 frame pilih_salbar ;
width 680 ;
height 80
@ 320,70 label cnonota_lbl value ‘ Masukan Kode Customer yg dicari’;
font “arial” size 16 BOLD;
width 500;
transparent blink;
fontcolor{197,197,255}
@ 350,10 textbox cnonota_txt;
width 660 ;
on change {search_salbar() };
on enter {search_salbar() }
@ 5,5 BROWSE Browse_salbar ;
WIDTH 670 ;
HEIGHT 300 ;
HEADERS { ‘Kode Barang’ , ‘Nama Barang’,’Kode Perusahaan’,’Kode produksi’ } ;
WIDTHS { 70,230,150,150 } ;
WORKAREA INVTBL ;
FIELDS { ‘invtbl->kdbrg’,’invtbl->nmbrg’,’invtbl->kdyokata’,’invtbl->noprod’} ;
VALUE nReg ;
READONLY {.t.,.t.,.t.} ;
Justify {BROWSE_JTFY_LEFT , BROWSE_JTFY_LEFT , BROWSE_JTFY_LEFT , BROWSE_JTFY_LEFT} ;
ON DBLCLICK ( cReg:=invtbl->kdbrg,salbar.produk11_lbl.value:=invtbl->nmbrg,ThisWindow.release) ;
TOOLTIP “Pilihlah Kode customer yang anda inginkan ”
ON KEY ESCAPE ACTION ThisWindow.Release
END WINDOW
CENTER WINDOW Form_11
ACTIVATE WINDOW Form_11
Return cReg
function search_salbar
local cCari:= (form_11.cnonota_txt.value)
local nPanjang := len(ccari)
select invtbl
set order to 1
dbselectarea(“invtbl”)
dbseek(cCari)
If found()
If invtbl->(DbSeek(cCari))
form_11.browse_salbar.value := invtbl->(recno())
Else
MsgExclamation(‘Kode Barang tidak ada’)
EndIf
else
msginfo(“Kode Barang yg anda cari bukan kode Barang”,”Konfirmasi bukan kode Barang”)
form_11.cnonota_txt.value := “”
EndIf
Return
function salbar2()
LOCAL SFLAG1 := “W”
LOCAL SKODE := “SJ”
Local SKD_WIL := “10”
Local cHeader := ” SALES REPORT PER PRODUCT ”
Local cNamapt := gltbl->Namapt
Local cAlamat1 := gltbl->Alamat1
Local cAlamat2 := gltbl->Alamat2
Local i, nCOPIES, lijn, periode
Local cPrinter, bladnum
sPRODUK1 :=(alltrim(salbar.PRODUK1_txt.value))
sPRODUK2 :=(alltrim(salbar.PRODUK2_txt.value))
xtanggal1 := salbar.stanggal1.value
xtanggal2 := salbar.stanggal2.value
nCOPIES :=1
baris := 60
shal := 0
mkolom := 54 &&45
cPrinter := GetPrinter()
If Empty (cPrinter)
Return
EndIf
SELECT PRINTER cPrinter ;
ORIENTATION PRINTER_ORIENT_LANDSCAPE ;
PAPERSIZE PRINTER_PAPER_A4 ;
COPIES nCOPIES ;
QUALITY PRINTER_RES_HIGH;
PREVIEW
START PRINTDOC name “salbarutang”
START PRINTPAGE
mPageNo:=0
kpageno := 0
SELECT SALES
USE
IF OPENTABLEs(cDRV+”SALES”,.T.)
ZAP
index on kdbrg to (cDRV+”SALES.ntx”)
ELSE
RETURN
ENDIF
AWHILE := { || TANGGAL >= xTANGGAL1 .AND. TANGGAL = SPRODUK1 .AND. KDBRG =190 .OR. mPageNo=0
mPageNo++
kpageno = kpageno + mpageno
IF mPageNo>1
&& cetak garis vertical halaman
@ baris,03 PRINT LINE TO mkolom,03 PENWIDTH 0.1
@ baris,13 PRINT LINE TO mkolom,13 PENWIDTH 0.1
@ baris,37 PRINT LINE TO mkolom,37 PENWIDTH 0.1 && 4 && akhir produk
@ baris,100 PRINT LINE TO mkolom,100 PENWIDTH 0.1 &&noorder
@ baris,132 PRINT LINE TO mkolom,132 PENWIDTH 0.1 &&nonota
@ baris,172 PRINT LINE TO mkolom,172 PENWIDTH 0.1 &&term
@ baris,212 PRINT LINE TO mkolom,212 PENWIDTH 0.1 &&tanggal
@ baris,252 PRINT LINE TO mkolom,252 PENWIDTH 0.1 &&AWAL ENDING
@ baris,292 PRINT LINE TO mkolom,292 PENWIDTH 0.1 && n(DBSEEK(SPRODUK),INVTBL->NMJUAL)
SPACK2 := INVTBL->(DBSEEK(SPRODUK),INVTBL->PACK2)
SQUANBK:=SQUANBP:=SQUANTK:=SQUANTP:=0
SNET:=SDISC:=SPPN:=SJUMLAH:=0
DO WHILE .NOT. EOF() .AND. EVAL(BWHILE)
IF HARGA == 0
SQUANBK := SQUANBK + QUANTK
SQUANBP := SQUANBP + QUANTP
ELSE
SQUANTK := SQUANTK + QUANTK
SQUANTP := SQUANTP + QUANTP
ENDIF
SHARGA := HARGA
SDISC1 := INTRAN1->(DBSEEK(“SJ”+SALES->NONOTA),INTRAN1->DISC)
// SPPN1 := INTRAN1->(DBSEEK(“SJ”+SALES->NONOTA),INTRAN1->PPN)
SPPN1 := INTRAN1->(DBSEEK(“SJ”+NONOTA),INTRAN1->PPN)
STOTAL := (QUANTK+(QUANTP/SPACK2))*SHARGA
SDISC := SDISC + (SDISC1 / 100 * STOTAL)
SPPN := SPPN + (SPPN1 / 100 * (STOTAL-SDISC))
SNET := SNET + (STOTAL – SDISC + SPPN)
SJUMLAH := SJUMLAH + (STOTAL – SDISC)
SELECT sales
DbSkip()
ENDDO
IF .NOT. SQUANTK+SQUANTP+SQUANBK+SQUANBP+SJUMLAH+SNET+SDISC+SPPN == 0
XJUMLAH := XJUMLAH + SJUMLAH
XDISC := XDISC + SDISC
XPPN := XPPN + SPPN
XNET := XNET + SNET
XQUANBK := XQUANBK + SQUANBK
XQUANBP := XQUANBP + SQUANBP
XQUANTK := XQUANTK + SQUANTK
XQUANTP := XQUANTP + SQUANTP
shal := shal + 1
@ BARIS,05 PRINT transform(shal,”9999″) SIZE 7
@ baris,15 print sproduk size 8
@ baris,40 print snmproduk size 8
@ baris,130 print IF(SDISC==0,SPACE(12)+”-“,TRANSFORM(SDISC,”9,999,999,999″)) size 8 right
@ baris,170 print IF(SQUANTK==0,SPACE(8)+”-“,TRANSFORM(SQUANTK,”9,999,999″)) size 8 right
@ baris,210 print IF(SJUMLAH==0,SPACE(12)+”-“,TRANSFORM(SJUMLAH,”9,999,999,999″)) size 8 right
@ baris,250 print IF(SPPN==0,SPACE(12)+”-“,TRANSFORM(SPPN,”9,999,999,999″)) size 8 right
@ baris,290 print IF(SNET==0,SPACE(12)+”-“,TRANSFORM(SNET,”9,999,999,999”))size 8 right
baris := baris + 4
ENDIF
IF EOF()
IF .NOT. XJUMLAH+XDISC+XNET+XPPN == 0
SJUMLAH := XJUMLAH
SDISC := XDISC
SNET := XNET
SPPN := XPPN
SQUANTK := XQUANTK
SQUANTP := XQUANTP
SQUANBK := XQUANBK
SQUANBP := XQUANBP
@ baris,03 PRINT LINE TO mkolom,03 PENWIDTH 0.1
@ baris,13 PRINT LINE TO mkolom,13 PENWIDTH 0.1
@ baris,37 PRINT LINE TO mkolom,37 PENWIDTH 0.1 && 4 && akhir produk
@ baris,100 PRINT LINE TO mkolom,100 PENWIDTH 0.1 &&noorder
@ baris,132 PRINT LINE TO mkolom,132 PENWIDTH 0.1 &&nonota
@ baris,172 PRINT LINE TO mkolom,172 PENWIDTH 0.1 &&term
@ baris,212 PRINT LINE TO mkolom,212 PENWIDTH 0.1 &&tanggal
@ baris,252 PRINT LINE TO mkolom,252 PENWIDTH 0.1 &&AWAL ENDING
@ baris,292 PRINT LINE TO mkolom,292 PENWIDTH 0.1 && n<30 AWAL
BARIS := BARIS + 4
@ BARIS,04 print line to BARIS,292 penwidth 0.2
baris := baris + 4
@ BARIS, 10 PRINT "GRAND TOTAL :"
@ baris, 130 print IF(SDISC==0,SPACE(12)+"-",TRANSFORM(SDISC,"9,999,999,999")) size 8 right
@ BARIS, 170 PRINT IF(SQUANTK==0,SPACE(8)+"-",TRANSFORM(SQUANTK,"9,999,999")) SIZE 8 RIGHT
@ BARIS, 210 PRINT IF(SJUMLAH==0,SPACE(13)+"-",TRANSFORM(SJUMLAH,"99,999,999,999.99")) SIZE 8 RIGHT
@ baris, 250 print IF(SPPN==0,SPACE(12)+"-",TRANSFORM(SPPN,"9,999,999,999")) size 8 right
@ baris, 290 print IF(SNET==0,SPACE(12)+"-",TRANSFORM(SNET,"9,999,999,999"))size 8 right
BARIS := BARIS + 4
@ BARIS,04 print line to BARIS,292 penwidth 0.2
BARIS := BARIS + 4
ENDIF
ENDIF
// @ BARIS, 0 SAY AA
SELECT SALES
ENDDO
END PRINTPAGE
END PRINTDOC
RETURN Nil
Tinggalkan komentar