home *** CD-ROM | disk | FTP | other *** search
- #command SAVE GETS => __PushGet()
- #command REST GETS => __PopGet()
- #define ZipFmt GETLIST[5][5]
- #define ZipRow GETLIST[5][1]
- #define ZipCol GETLIST[5][2]
- #define SCR_COLOR IIF(ISCOLOR(),'GB/N,GB/N','W/N,W/N')
- #define S_G_COLOR IIF(ISCOLOR(),'RG+/N,N/W,,,W+/B','W/N,N/W,,,W/N')
- #define LBL_COLOR IIF(ISCOLOR(),'W+/G','W/N')
- #define MNU_COLOR IIF(ISCOLOR(),'W+/N,RG+/R','W/N,N/W')
- #define HDR_COLOR IIF(ISCOLOR(),'N/G','N/W')
- #define BGD_COLOR IIF(ISCOLOR(),'R/R,R/R','W/N,W/N')
- #define HLP_COLOR IIF(ISCOLOR(),'RG+/B','RG+/B')
- #define ALERT_COLOR IIF(ISCOLOR(),'*R+/B','*R+/B')
-
- *...............................................
- * Simple.prg
- *
- SET SCOREBOARD OFF
- LOCAL Key, choice := 1
- USE PGCUS
- SET DELETED ON
- CLS
- SETCOLOR(BGD_COLOR) && set background
- @ 1,0 CLEAR TO 22,79
- SETCOLOR(SCR_COLOR)
- @ 05,10 CLEAR TO 20,70
- @ 05,10 TO 20,70 DOUBLE
- @ 07,15 SAY "Name......:"
- @ 09,15 SAY "Street....:"
- @ 11,15 SAY "City......:"
- @ 13,15 SAY "State.....:"
- @ 15,15 SAY "Zip.......:"
- @ 17,15 SAY "Date/Time.:"
- DO WHILE .T.
- SETCOLOR(S_G_COLOR) && SAY and GET color set
- @ 07,27 SAY CUSNAME
- @ 09,27 SAY CUSADDR1
- @ 11,27 SAY CUSCITY
- @ 13,27 SAY CUSSTATE
- @ 15,27 SAY CUSZIP
- @ 17,27 SAY DTOC(DATE())+SPACE(5)+TIME()
- choice = BarMenu(@choice)
- DO CASE
- CASE choice==1 && if Add
- Add_Cus()
- CASE choice==2 && if Edit
- EditFlds()
- CASE choice==3 && if Delete
- delete
- CASE choice==4 && if Prev
- SKIP -1
- CASE choice==5 && if Next
- Skip
- CASE choice==6 && if Top
- GO TOP
- CASE choice==7 && if Bottom
- GO BOTT
- CASE choice==8 && if Credit
- PopWindow()
- OTHERWISE && Quit
- EXIT
- ENDCASE
- ENDDO
- @ 23,0
- *....................................................
- FUNCTION BarMenu
- *....................................................
- PARAMETER opt
- LOCAL OldColor := SETCOLOR(MNU_COLOR)
- SET MESSAGE TO 24
- SET WRAP ON
- @ 23,0
- @ 23,0 PROMPT "Add" MESSAGE "Add a record"
- @ 23,COL()+2 PROMPT "Edit" MESSAGE "Edit record"
- @ 23,COL()+2 PROMPT "Del" MESSAGE "Delete Record"
- @ 23,COL()+2 PROMPT "Prev" MESSAGE "Go To Previous record"
- @ 23,COL()+2 PROMPT "Next" MESSAGE "Go To Next Record"
- @ 23,COL()+2 PROMPT "Top" MESSAGE "Go To First Record"
- @ 23,COL()+2 PROMPT "Bottom" MESSAGE "Go To Last Record"
- @ 23,COL()+2 PROMPT "Credit" MESSAGE "View Credit Info"
- @ 23,COL()+2 PROMPT "Quit" MESSAGE "Quit the System"
- MENU TO Opt
- SETCOLOR(OldColor)
- @ 23,0 CLEAR TO 24,79
- RETURN (opt)
- *....................................................
- PROCEDURE Add_Cus
- *....................................................
- APPEND BLANK
- EditFlds()
- RETURN
- *....................................................
- PROCEDURE PopWindow
- *....................................................
- LOCAL oldwin := SAVESCREEN(11,30,19,65)
- LOCAL OldColor := SETCOLOR(HLP_COLOR)
- @ 11,30 CLEAR TO 19,65
- @ 11,30 TO 19,65 DOUBLE
- @ 13,35 SAY "Credit Limit..: "+STR(CUSCRELIM,5)
- SETCOLOR(IF(CUSCREAVA<=0,ALERT_COLOR,HLP_COLOR))
- @ 14,35 SAY "Credit Avail..: "+STR(CUSCREAVA,5)
- SETCOLOR(HLP_COLOR)
- @ 16,35 SAY "Strike a key to return"
- INKEY(0)
- RESTSCREEN(11,30,19,65,oldwin)
- SETCOLOR(OldColor)
- RETURN
- *....................................................
- PROCEDURE EditFlds
- *....................................................
- LOCAL CUSNAME,CUSADDR1,CUSCITY,CUSSTATE,CUSZIP
- LOCAL OldColor := SETCOLOR(S_G_COLOR)
- SET KEY -3 TO ChgZip && F4 runs ChgZip
- SET KEY -4 TO EditCred && F5 runs EditCred
-
- M->CUSNAME := FIELD->CUSNAME
- M->CUSADDR1 := FIELD->CUSADDR1
- M->CUSCITY := FIELD->CUSCITY
- M->CUSSTATE := FIELD->CUSSTATE
- M->CUSZIP := FIELD->CUSZIP
-
- @ 07,27 GET M->CUSNAME VALID NotNan(M->CUSNAME)
- @ 09,27 GET M->CUSADDR1 PICTURE "@!"
- @ 11,27 GET M->CUSCITY PICTURE "@!"
- @ 13,27 GET M->CUSSTATE WHEN !EMPTY(M->CUSCITY) PICTURE "@A!" ;
- VALID M->CUSSTATE $ "GA|CA|NY|IL"
- @ 15,27 GET M->CUSZIP PICTURE ZipPic()
- READ
-
- FIELD->CUSNAME := M->CUSNAME
- FIELD->CUSADDR1 := M->CUSADDR1
- FIELD->CUSCITY := M->CUSCITY
- FIELD->CUSSTATE := M->CUSSTATE
- FIELD->CUSZIP := M->CUSZIP
-
- SET KEY -3 TO
- SET KEY -4 TO
- SETCOLOR(OldColor)
- RETURN
- *.............................................................
- FUNCTION NotNan(Comp)
- *.............................................................
- LOCAL retval := .T., OldColor := SETCOLOR(ALERT_COLOR)
- IF Comp = "Nantucket"
- @ 23,0 SAY "Sorry, we won't sell to those dead beats!"
- ?? chr(7) && ring the bell
- retval = .F.
- ELSE
- SETCOLOR(OldColor)
- @ 23,0
- ENDIF
- RETURN retval
-
- *..............................................................
- PROCEDURE ChgZip(Call_Prg, Line_Num, Input_Var)
- *..............................................................
- IF ZipFmt == "99999"
- ZipFmt := ZipPic("99999-9999")
- ELSE
- ZipFmt := ZipPic("99999")
- ENDIF
- @ ZipRow, ZipCol SAY SPACE(10)
- RETURN
-
- *..............................................................
- FUNCTION ZipPic(NewPic) && returns current zip or new zip
- * && if passed
- *..............................................................
- STATIC ZPict := "99999-9999"
- RETURN IF(VALTYPE(NewPic)=="C", (ZPict := NewPic), ZPict)
-
- *.............................................................
- PROCEDURE EditCred(Call_Prg, Line_Num, Input_Var)
- *.............................................................
- LOCAL oldwin := SAVESCREEN(11,30,19,65)
- LOCAL OldColor := SETCOLOR(HLP_COLOR)
- SAVE GETS
- @ 11,30 CLEAR TO 19,65
- @ 11,30 TO 19,65 DOUBLE
- M->CUSCRELIM := FIELD->CUSCRELIM
- @ 13,35 SAY "Credit Limit..:" GET M->CUSCRELIM PICT "99999"
- @ 14,35 SAY "Credit Avail..: "+STR(CUSCREAVA,5)
- @ 16,35 SAY "Enter New Credit Limit"
- READ
- FIELD->CUSCREAVA := FIELD->CUSCREAVA+(M->CUSCRELIM-FIELD->CUSCRELIM)
- FIELD->CUSCRELIM := M->CUSCRELIM
- RESTSCREEN(11,30,19,65,oldwin)
- SETCOLOR(OldColor)
- REST GETS
- RETURN