home *** CD-ROM | disk | FTP | other *** search
- // SUPERS.PRG
- // Supervisor information maintenance module
- // November, 1993
-
- #include "sys.ch"
-
- #define SUPER_NUM 1
- #define SNAME 2
- #define RECORD_NUMBER 3
- #define TOTAL_FIELDS 3
-
- FUNCTION Entry120()
- LOCAL TheFields[TOTAL_FIELDS], TheChoice
-
- Screen()
- TheChoice := 0
-
- DO WHILE TRUE
- InitData(@TheFields, FALSE)
- PostGets(@TheFields, DISPLAY_MODE)
-
- TheChoice := Menu(TheChoice)
-
- IF TheChoice = QUIT_MODE
- EXIT
-
- ELSEIF TheChoice = ADD_MODE
- Add(@TheFields)
-
- ELSEIF TheChoice = CHANGE_MODE
- Change(@TheFields)
-
- ELSEIF TheChoice = DELETE_MODE
- DeleteIt(@TheFields)
-
- ELSEIF TheChoice = EXIT_MODE
- EXIT
-
- ENDIF
- ENDDO
-
- Close_It()
-
- RETURN TRUE
-
-
- STATIC FUNCTION Screen()
- LOCAL OldColor
-
- Win_Open(0, 0, 23, 79, ' Supervisor Information ')
- Msg("")
-
- OldColor := Normal_Color()
-
- @ 5, 34 SAY 'Number:'
- @ 7, 35 SAY 'Name :'
-
- SetColor(OldColor)
-
- RETURN TRUE
-
-
- STATIC FUNCTION PostGets(TheFields, TheMode)
- LOCAL OldColor, GetList
-
- OldColor := Get_Color()
- GetList := {}
-
- @ 5, 42 GET TheFields[SUPER_NUM] ;
- PICTURE '99' ;
- WHEN (W_Num(TheMode)) ;
- VALID (V_Num(@TheFields, TheMode))
-
- @ 7, 42 GET TheFields[SNAME] ;
- PICTURE '@!' ;
- WHEN (W_Name(TheMode)) ;
- VALID (V_Name(@TheFields, TheMode))
-
- IF TheMode != DISPLAY_MODE
- Read_It(GetList)
-
- ELSE
- CLEAR GETS
-
- ENDIF
-
- SetColor(OldColor)
-
- RETURN !LastKey() = K_ESC
-
-
- STATIC FUNCTION W_Num(TheMode)
-
- IF TheMode = UPDATE_MODE
- RETURN FALSE
- ENDIF
-
- Msg(Build_Msg("supervisor's", 'number', TheMode))
-
- RETURN TRUE
-
-
- STATIC FUNCTION W_Name(TheMode)
-
- IF TheMode = POSITION_MODE
- RETURN FALSE
- ENDIF
-
- Msg(Build_Msg("supervisor's", 'name', TheMode))
-
- RETURN TRUE
-
-
- STATIC FUNCTION V_Num(TheFields, TheMode)
-
- IF TheMode = POSITION_MODE
- IF Empty(TheFields[SUPER_NUM])
- Top_It('Supers', 1)
- TheFields[SUPER_NUM] := Br_Supers()
-
- ELSEIF !Seek_It(TheFields[SUPER_NUM], 'Supers', 1, TRUE)
- TheFields[SUPER_NUM] := Br_Supers()
-
- ENDIF
-
- ELSEIF Empty(TheFields[SUPER_NUM])
- RETURN ErrorMsg("MUST SPECIFY SUPERVISOR'S NUMBER")
-
- ELSEIF !Seek_It(TheFields[SUPER_NUM], 'Supers', 1)
-
- ELSEIF Supers->(RecNo()) = TheFields[RECORD_NUMBER]
-
- ELSE
- RETURN ErrorMsg("DUPLICATE SUPERVISOR NUMBER")
-
- ENDIF
-
- RETURN TRUE
-
-
- STATIC FUNCTION V_Name(TheFields)
-
- IF LastKey() = K_UP
-
- ELSEIF Empty(TheFields[SNAME])
- RETURN ErrorMsg("MUST SPECIFY SUPERVISOR'S NAME")
-
- ENDIF
-
- RETURN TRUE
-
-
- FUNCTION Br_Supers()
- LOCAL TheArray, OldMsg, TheReturn
-
- TheArray := {}
- Select_It('Supers')
-
- AAdd(TheArray, { "Number" , { || Supers->Super_Num } })
- AAdd(TheArray, { "Supervisor", { || Supers->SName } })
-
- OldMsg := Msg('Select the correct supervisor from the above list')
-
- TheReturn := Browse_Tb(TheArray, 4, 9, 17, 71, ' Select supervisor ')
- Msg(OldMsg)
-
- RETURN TheReturn
-
-
- FUNCTION Get_Super(TheSuper, TheMode)
- LOCAL OldAlias, TheReturn
-
- OldAlias := Select()
-
- IF Empty(TheSuper)
- Select_It('Supers')
- TheReturn := Space(Len(Supers->SName))
- TheMode := FALSE
-
- ELSEIF Seek_It(TheSuper, 'Supers', 1)
- TheReturn := Supers->SName
- ELSE
- TheReturn := 'UNKNOWN SUPERVISOR'
- ENDIF
-
- IF !ISLOGICAL(TheMode)
- TheMode := TRUE
- ENDIF
-
- IF TheMode
- TheReturn := TheSuper + ' (' + TheReturn + ')'
- ENDIF
-
- Select(OldAlias)
-
- RETURN TheReturn
-
-
- STATIC FUNCTION InitData(TheFields, TheMode)
-
- Select_It('Supers')
-
- IF TheMode
- TheFields[SNAME] := Supers->SName
- TheFields[SUPER_NUM] := Supers->Super_Num
- TheFields[RECORD_NUMBER] := Supers->(RecNo())
-
- ELSE
- TheFields[SNAME] := Space(Len(Supers->SName))
- TheFields[SUPER_NUM] := Space(Len(Supers->Super_Num))
- TheFields[RECORD_NUMBER] := 0
-
- ENDIF
-
- RETURN TRUE
-
-
- STATIC FUNCTION Menu(TheChoice)
- LOCAL TheScreen, OldColor, TheWrap
-
- TheWrap := Set(_SET_WRAP)
- SET WRAP (FALSE)
-
- TheScreen := Win_Open(20, 2, 22, 38, ' Select ')
- Msg('Select a menu option')
-
- OldColor := Menu_Color()
-
- @ 21, 4 PROMPT ' Add '
- @ 21, 11 PROMPT ' Change '
- @ 21, 21 PROMPT ' Delete '
- @ 21, 31 PROMPT ' Exit '
-
- MENU TO TheChoice
-
- SetColor(OldColor)
- Win_Close(TheScreen)
- SET WRAP (TheWrap)
-
- RETURN TheChoice
-
-
- STATIC FUNCTION Add(TheFields)
-
- Msg('Enter supervisor information')
- DO WHILE TRUE
- IF !PostGets(@TheFields, ENTRY_MODE)
- IF Confirm(16, 30, 'Abort', ;
- 'Do you want to abort data entry?')
- EXIT
- ENDIF
- ELSEIF !Confirm(16, 30, 'Save', ;
- 'Is the above information correct?')
- ELSEIF Save(@TheFields, 0)
- InitData(@TheFields, FALSE)
- ENDIF
- ENDDO
-
- RETURN TRUE
-
-
- STATIC FUNCTION Change(TheFields)
-
- IF Position(@TheFields)
- Msg('Change supervisor information')
- DO WHILE TRUE
- IF !PostGets(@TheFields, UPDATE_MODE)
- IF Confirm(16, 30, 'Abort', ;
- 'Do you want to abort data entry?')
- EXIT
- ENDIF
- ELSEIF !Confirm(16, 30, 'Save', ;
- 'Is the above information correct?')
- ELSEIF Save(@TheFields)
- EXIT
- ENDIF
- ENDDO
- ENDIF
-
- RETURN TRUE
-
-
- STATIC FUNCTION DeleteIt(TheFields)
-
- IF Position(@TheFields)
- PostGets(@TheFields, DISPLAY_MODE)
- IF Confirm(16, 30, 'Delete' , ;
- 'Are you sure you want to delete this department?', ;
- FALSE)
- Delete_It('Supers')
- //--------- delete all of the related information also!
- ENDIF
- ENDIF
-
- RETURN TRUE
-
-
- STATIC FUNCTION Position(TheFields)
-
- Msg('Enter supervisor number')
-
- IF !PostGets(@TheFields, POSITION_MODE)
- RETURN FALSE
- ENDIF
-
- InitData(@TheFields, TRUE)
-
- RETURN TRUE
-
-
- STATIC FUNCTION Save(TheFields)
-
- IF TheFields[RECORD_NUMBER] > 0
- GoTo_It(TheFields[RECORD_NUMBER], 'Supers')
-
- ELSEIF !Append_It('Supers')
- RETURN ErrorMsg('UNABLE TO ADD SUPERVISOR')
-
- ENDIF
-
- Supers->SName := TheFields[SNAME]
- Supers->Super_Num := TheFields[SUPER_NUM]
-
- COMMIT
-
- RETURN TRUE
-