home *** CD-ROM | disk | FTP | other *** search
- *Program is generic.prg
- *Author Clyde Dever
- *
- *
- SET PROCEDURE TO generic
- PUBLIC begread, mode
- STORE 1 TO begread
- USE tname INDEX tname, tssn
- IF 'MSDOS' $ OS()
- SET SAY VIDEO TO 127
- @ 1,22 SAY 'Customer Entry and Modification'
- SET COLOR TO
- ELSE
- @ 1,15 SAY 'Customer Entry and Modification'
- ENDIF
- @ 4,6 SAY 'Name'
- @ 4,43 SAY 'Account Number'
- @ 8,6 SAY 'Address'
- @ 10,6 SAY 'City'
- @ 12,6 SAY 'State'
- @ 12,29 SAY 'Zip Code'
- @ 14,6 SAY 'Business Phone'
- @ 16,6 SAY 'Home Phone'
- @ 8,49 SAY 'Last Contact'
- @ 16,49 SAY 'Notes'
- @ 23,60 say 'Escape to exit'
- @ 7,4 TO 17,73
- SET EXIT VIDEO TO 112
- IF 'MSDOS' $ OS()
- SET BOX ON | Create Buttons with boxes around them
- ENDIF
- CREATE BUTTON ' Next ' AT 19,3
- CREATE BUTTON ' Prev ' AT 19, 16
- CREATE BUTTON 'Delete' AT 19,29
- CREATE BUTTON ' New ' AT 19,42
- CREATE BUTTON 'Cancel' AT 19,55
- CREATE BUTTON ' Edit ' AT 19,68
- mode = 'E'
- DO dispinfo
- DO WHILE .T.
- ENABLE BUTTON ' Next '
- ENABLE BUTTON ' Prev '
- ENABLE BUTTON 'Delete'
- ENABLE BUTTON ' New '
- ENABLE BUTTON 'Cancel'
- ENABLE BUTTON ' Edit '
- STORE name TO mname
- STORE ssn TO mssn
- @ 4,11 GET mname VALID chkname(mname) CHANGE MESSAGE ;
- 'Enter the name to find' ERROR 'Name not Found'
- @ 4,58 GET mssn VALID chkssn(mssn) CHANGE MESSAGE ;
- 'Enter the Account number to find' ;
- ERROR 'The account number does not exist'
- READ START WITH begread
- action = CHECKEVENT()
- IF .NOT. doevent(action,.F.)
- IF action = 'X'
- EXIT
- ENDIF
- LOOP
- ENDIF
- DO WHILE .T.
- IF action = 'W'
- mode = 'N'
- APPEND BLANK
- @ 4,11 GET name
- @ 4,58 GET ssn
- DISABLE BUTTON ' Next '
- DISABLE BUTTON ' Prev '
- DISABLE BUTTON 'Delete'
- DISABLE BUTTON ' New '
- DISABLE BUTTON ' Edit '
- ELSE
- DISABLE BUTTON ' Edit '
- DISABLE BUTTON ' New '
- @ 4,11 SAY name
- @ 4,58 SAY ssn
- mode = 'E'
- ENDIF
- @ 8,14 GET address
- @ 10,14 GET city
- @ 12,14 GET state
- @ 12,38 GET zip
- @ 14,21 GET busphone PICTURE '(###)###-####'
- @ 16,21 GET homephone PICTURE '(###)###-####'
- @ 8,62 GET date MESSAGE 'Enter the date last contacted'
- @ 12,50 GET active CHECKBOX 'Active'
- @ 16,55 GET notes MESSAGE 'Press Cntl + PgDn to Edit Notes'
- READ
- action = CHECKEVENT()
- IF doevent(action,.T.)
- EXIT
- ENDIF
- ENDDO
- ENDDO
- RELEASE begread, mode
- CLOSE ALL
- RETURN
-
-
- FUNCTION chkname
- PARAMETER target
- SET INDEX TO tname
- SEEK TRIM(target)
- begread = 1 | As a convenience, Change default get field
- IF .NOT. EOF()
- GETNO(30) | Anything larger than number of get fields exist read
- ELSE
- GO BOTTOM
- RETURN(.F.)
- ENDIF
- RETURN(.T.)
-
- FUNCTION chkssn
- PARAMETER target
- SET INDEX TO tssn
- SEEK TRIM(target)
- begread = 2 | As a convenience, Change default get field
- IF .NOT. EOF()
- GETNO(30) | Anything larger than number of get fields exist read
- ELSE
- GO BOTTOM
- RETURN(.F.)
- ENDIF
- RETURN(.T.)
-
- FUNCTION checkevent
- ev = EVENT()
- IF ev = 1
- key = LASTKEY()
- DO CASE
- CASE key = 27
- RETURN('X')
- CASE key = 530
- RETURN('P')
- CASE key = 536
- RETURN('N')
- OTHERWISE
- RETURN('E')
- ENDCASE
- ELSE
- IF ev = 6 | button event
- STORE BUTTON() TO btext
- DO CASE
- CASE btext = ' Next '
- RETURN('N')
- CASE btext = ' Prev '
- RETURN('P')
- CASE btext = 'Delete'
- RETURN('D')
- CASE btext = ' New '
- RETURN('W')
- CASE btext = 'Cancel'
- RETURN('X')
- CASE btext = ' Edit '
- ENDCASE
- ELSE
- BEEP
- RETURN('0')
- ENDIF
- ENDIF
- RETURN('E')
-
- FUNCTION doevent
- PARAMETER act, dflt
- DO CASE
- CASE act = 'X'
- IF mode = 'E'
- GOTO CURRENT
- ELSE
- UNPEND
- ENDIF
- RETURN(dflt)
- CASE act = '0' |Incorrect entry
- RETURN(.F.)
- CASE act = 'N'
- SKIP
- IF EOF()
- SKIP -1
- ENDIF
- do dispinfo
- RETURN(.f.)
- CASE act = 'P'
- SKIP -1
- IF BOF()
- SKIP
- ENDIF
- DO dispinfo
- RETURN(.F.)
- CASE act = 'D'
- DELETE
- SKIP
- IF EOF()
- SKIP -1
- ENDIF
- DO dispinfo
- RETURN(dflt)
- ENDCASE
- RETURN(.T.)
-
- PROCEDURE dispinfo
- @ 8,14 SAY address
- @ 10,14 SAY city
- @ 12,14 SAY state
- @ 12,38 SAY zip PICTURE '99999'
- @ 14,21 SAY busphone PICTURE '(###)###-####'
- @ 16,21 SAY homephone PICTURE '(###)###-####'
- @ 8,62 SAY date
- RETURN
-