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

//==============================================

มีต่อคะ ==>>
1