Program Menu
//PROGRAM MENU ประกอบด้วย Procedure ต่างๆหลาย Procedure
//Procedure ของเมนูย่อยต่างๆเช่นเมนูย่อยของรายงานการสั่งซื้อจะประกอบ
// Procedure ไปด้วยการสั่งซื้อตามวัน ตามเดือน สินค้าถึงจุดสั่งซื้อ สั่งซื้อสินค้าตามช่วงวัน
// Procedure การขายตามเดือน ตามวัน ตามช่วงวัน
// Procedure รายงานพนักงานเรียงตามรหัส ตำแหน่ง
// Procedure รายงานลูกค้าเรียงตามรหัส ยอดหนี้ รายงานยอดหนี้ค้างรับ
// Procedure รายงานผู้จำหน่ายเรียงตามรหัส ที่อยู่ รายงานยอดหนี้ค้างชำระ
// Procedure รายงานวัตถุดิบเรียงตามรหัส ปริมาณ ราคา
// Procedure รายงานสรุปยอดการขายประจำเดือน สรุปยอดการสั่งซื้อประจำเดือน สรุป
//กำไรประจำเดือน
SET SCOR OFF
SET CURSOR OFF
SET KEY -2 TO DOSSHELL //F3
SET KEY -8 TO SOURCE //F9
SET KEY 28 TO MY //F1
SET WRAP ON
SET EPOCH TO 1960
SET DATE FORMAT TO [DD/MM/YYYY]
SET CENTURY ON
SET PROCEDURE TO REPORT11.PRG
SET PROCEDURE TO MANA.PRG
SET PROCEDURE TO MANAGE.PRG
SET PROCEDURE TO MAIN.PRG
armain = 4 ; arcm = array(armain)
arcm[1]= [บันทึกประจำวัน]
arcm[2]= [ปรับปรุง/แก้ไข]
arcm[3]= [รายงาน]
arcm[4]= [Exit]
ars1= 5 ; arc1 = array(ars1)
arc1[1] = [ซื้อวัตถุดิบ ]
arc1[2] = [ขายสินค้า]
arc1[3] = [ยกเลิกขาย]
arc1[4] = [ยกเลิกซื้อ ]
arc1[5] = [หนี้ >>]
ars2 = 5 ; arc2 = array(ars2)
arc2[1]= [สินค้า]
arc2[2]= [วัตถุดิบ]
arc2[3]= [ลูกค้า]
arc2[4]= [ผู้จำหน่าย]
arc2[5]= [พนักงาน]
ars3 = 8 ; arc3 = array(ars3)
arc3[1]= [รายงานการสั่งซื้อ ]
arc3[2]= [รายงานการขาย ]
arc3[3]= [รายงานพนักงาน]
arc3[4]= [รายงานลูกค้า]
arc3[5]= [รายงานผู้จำหน่าย]
arc3[6]= [รายงานสินค้า]
arc3[7]= [รายงานวัตถุดิบ ]
arc3[8]= [รายงานสรุป]
//==========================================
SET SCOR OFF
OPT = 11
TOPMLT = OPT
BOTTOMLMT = ARMAIN
ALLSUB = 4
do check
do mainmenu
procedure check()
SET COLOR TO /BG+
CLS
SET COLOR TO /N
@ 7,21 CLEAR TO 17,66
SET COLOR TO W+/B+
@ 6,20 CLEAR TO 16,64
SET CURSOR OFF
SET COLOR TO W+/B+
//==========================================
_ANS = "y"; NUM = 1
DO WHILE _ANS = "y" .OR. _ANS="Y"
SNAME = SPACE(10)
PAS = SPACE(10)
ok = 0 ; _datein = date()
_timein := _timeout := time()
set cursor on
@ 10,30 SAY "Enter User Name :" GET SNAME
@ 12,30 SAY "Enter Password :" GET PAS COLOR("W/W")
READ
USE PA
LOCATE FOR NAME = sNAME .AND. PASs = PAS
if found()
_ANS = "n"
use histin
append blank
replace user with sname, datein with _datein, timein with _timein
ELSE
num++
IF num = 4
use histin
ok++
append blank
replace user with _user,datein with _datein,;
timein with _timein
quit
ENDIF
LOCATE FOR NAME = SNAME
IF FOUND()
@ 15,25 SAY " Your password is incorrect !!"
ELSE
@ 15,25 SAY " Not found your user name !!"
ENDIF
@ 16,28 SAY " TRY AGAIN (y/n) " GET _ANS
READ
IF _ANS = "n" .OR. _ANS = "N"
QUIT
ENDIF
ENDIF
ENDDO
KEYBOARD CHR(0)
SET CURSOR OFF
RETURN
//=========================================
DO MAINMENU
PROCEDURE MAINMENU
DO WRITEMENU
SET KEY -1 TO BROWSE
SET COLOR TO /N
@ 2,5 CLEAR TO 4,76
SET COLOR TO ("B+/R")
SET CURSOR OFF
@ 1,3 CLEAR TO 3,74
@ 1,3 TO 3,74 DOUBLE
SET COLOR TO ("W+/R")
SET EPOCH TO 1960
@ 2,65 SAY DATE()
SET COLOR TO ("W+/R")
@ 2,15 SAY "*** เคลย์ แอนด์ มิเนอร์รัลส์(ประเทศไทย) จำกัด ***"
DO WHILE LASTKEY() !=27
SET COLOR TO ("W+/R")
@ 2,4 SAY TIME()
SET COLOR TO ("N+/BG")
@ 23,5 SAY " DOS SHELL"
@ 23,25 SAY " SOURCE PROGRAM"
@ 23,55 SAY " WOKESYSTEM"
KEYBOARD CHR(0)
INKEY(0.2)
IF LASTKEY() !=0
DO CASE
CASE LASTKEY() = 27
GG= ALERT("คุณต้องการออกจากโปรแกรมใช่ไหม",{"ตกลง","ยกเลิก"})
IF GG = 1
EXIT
ENDIF
CASE LASTKEY() = 4
IF OPT < 10
DO PRESSDOWN
ELSE
IF (OPT-MOD(OPT,10))/10 = ALLSUB
OPT = 11
ELSE
OPT=(OPT-MOD(OPT,10))+11
ENDIF
ENDIF
CASE LASTKEY() = 19
IF OPT < 10
DO PRESSUP
ELSE
IF (OPT-MOD(OPT,10))/10=1
OPT = ALLSUB *10+1
ELSE
OPT =(OPT-MOD(OPT,10))-9
ENDIF
ENDIF
CASE LASTKEY() = 24
DO PRESSDOWN
CASE LASTKEY() = 5
DO PRESSUP
CASE LASTKEY() = -2
DO DOSSHELL
CASE LASTKEY() = -8
DO SOURCE
CASE LASTKEY() = 28
DO MY
CASE LASTKEY() = 13
ss = savescreen(0,0,24,79)
save screen to ss
DO CASE
CASE OPT =1
OPT = 11
CASE OPT = 2
OPT = 21
CASE OPT = 3
OPT = 31
CASE OPT = 4
SET COLOR TO 5/BG
CLS
@ 11,23 TO 15,65
@ 12,33 SAY "(-: BYE BYE :-)"
@ 14,25 SAY "PROGRAM BY...NUTTHANUN KHUTPUAK"
TONE(660,3)
QUIT
//======================================================
CASE OPT = 11
DO ORDER01
CASE OPT =12
DO SALE
CASE OPT = 13
DO CANCLE
CASE OPT = 14
DO NOORDER
CASE OPT = 15
DO PAY_PAID
//============================================
CASE OPT = 21
DO APPPRO
CASE OPT = 22
DO APPMAT
CASE OPT = 23
DO APPCUS
CASE OPT = 24
DO APPDEAL
CASE OPT = 25
DO APPEMPL
//===========================================
CASE OPT = 31
DO ORDER2
CASE OPT = 32
DO SALE2
CASE OPT = 33
DO EMPL2
CASE OPT = 34
DO CUS2
CASE OPT = 35
DO DEAL2
CASE OPT = 36
DO PRO
CASE OPT = 37
DO MAT2
CASE OPT = 38
DO SUM
CASE OPT > 39
SET COLOR TO 5/BG
CLS
@ 11,23 TO 15,65
@ 12,33 SAY "(-: BYE BYE :-)"
@ 14,25 SAY "PROGRAM BY...NUTTHANUN KHUTPUAK"
TONE(550,3)
QUIT
ENDCASE
restscreen(0,0,24,79,ss)
ENDCASE
DO CASE
CASE OPT 10
TOPLMT = 1; BOTTOMLMT = ARMAIN
CASE OPT =11 .AND. OPT= 10+ARS1
TOPLMT = 11; BOTTOMLMT = 10+ARS1
CASE OPT=21 .AND. OPT = 20+ARS2
TOPLMT = 21; BOTTOMLMT = 20+ARS2
CASE OPT =31 .AND. OPT = 30+ARS3
TOPLMT = 31; BOTTOMLMT = 30+ARS3
ENDCASE
DO WRITEMENU
KEYBOARD CHR(0)
INKEY()
TIM = "W"
ENDIF
ENDDO
RETURN
//===========================================
PROCEDURE PRESSDOWN
IF OPT = BOTTOMLMT
OPT = TOPLMT
ELSE
OPT = OPT+1
ENDIF
RETURN
PROCEDURE PRESSUP
IF OPT = TOPLMT
OPT = BOTTOMLMT
ELSE
OPT = OPT-1
ENDIF
RETURN
//==============================================
PROCEDURE WRITEMENU
SET COLOR TO /N
@ 7,5 CLEAR TO 21,76
SET COLOR TO /R
@ 8,3 CLEAR TO 20,74
SET COLOR TO "N/W"
@ 6,3 CLEAR TO 8,74
@ 6,3 TO 8,74 DOUBLE
@ 7,6 SAY ARCM[1]
@ 7,22 SAY ARCM[2]
@ 7,40 SAY ARCM[3]
@ 7,55 SAY ARCM[4]
SET CURSOR OFF
SAVE SCREEN TO SCR1
U = 9
DO CASE
CASE OPT >=11 .AND. OPT<= ARS1+10
DO ROWCLEAR
@ 8,3 CLEAR TO 15,28
@ 8,3 TO 15,28 DOUBLE
FOR J=U TO U+ARS1-1
@ J,6 SAY ARC1[J-U+1]
NEXT
TEMPAR = ARC1
CASE OPT=21 .AND. OPT = ARS2+20
DO ROWCLEAR
@ 8,18 CLEAR TO 15,38
@ 8,18 TO 15,38 DOUBLE
FOR J=U TO U+ARS2-1
@ J,22 SAY ARC2[J-U+1]
NEXT
TEMPAR = ARC2
CASE OPT >=31 .AND.OPT<=ARS3+30
DO ROWCLEAR
@ 8,35 CLEAR TO 18,70
@ 8,35 TO 18,70 DOUBLE
FOR J=U TO U+ARS3-1
@ J,40 SAY ARC3[J-U+1]
NEXT
TEMPAR = ARC3
ENDCASE
SET COLOR TO ("G/R+")
IF OPT10
IF OPT-MOD(OPT,10) = 10
@ U+MOD(OPT,10)-1,6 SAY TEMPAR[MOD(OPT,10)]
ELSEIF OPT - MOD(OPT,10) = 20
@ U+MOD(OPT,10)-1,22 SAY TEMPAR[MOD(OPT,10)]
ELSEIF OPT - MOD(OPT,10) = 30
@ U+MOD(OPT,10)-1,40 SAY TEMPAR[MOD(OPT,10)]
ENDIF
//======================================================
SET COLOR TO W/R+
IF OPT - MOD(OPT,10) = 10
@ 7,6 SAY ARCM[(OPT-MOD(OPT,10))/10]
ELSEIF OPT - MOD(OPT,10) = 20
@ 7,22 SAY ARCM[(OPT-MOD(OPT,10))/10]
ELSEIF OPT - MOD(OPT,10) = 30
@ 7,40 SAY ARCM[(OPT-MOD(OPT,10))/10]
ENDIF
IF OPT- MOD(OPT,10)= 40
@ 7,55 SAY ARCM[(OPT-MOD(OPT,10))/10]
ENDIF
ELSE
IF MOD(OPT,10)=1
@ 7,6 SAY ARCM[1]
ENDIF
IF MOD(OPT,10)=2
@ 7,22 SAY ARCM[2]
ENDIF
IF MOD(OPT,10)=3
@ 7,40 SAY ARCM[3]
ENDIF
IF MOD(OPT,10)=4
@ 7,55 SAY ARCM[4]
ENDIF
ENDIF
SET COLOR TO N/R+
RETURN
//=============================================
PROCEDURE ROWCLEAR
SET COLOR TO "/R+"
@ 10,3 CLEAR TO 20,74
SET COLOR TO "N/W"
RETURN
//==============================================