|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 4088 (0xff8)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
separate (Tracker.Personnel_Pkg)
procedure Pr_Modify is
------------------------------------------------------------------------------
--|
--| NAME: PR_MODIFY
--|
--| OVERVIEW:
--| This procedure allows the user to modify an existing person record.
--| The user is prompted for an existing person record by calling
--| the appropriate Prompt_Pkg function. The generic FIND is used to
--| get the record. The user is then allowed to change the fields by
--| choosing a menu selection. The record fields are modified directly.
--| When a person's initials are modified in a personnel record,
--| his initials also have to be changed in every element to which
--| he belonged in the element list by calling the procedure
--| MODIFY_PERSONNEL_KEY.
--|
--|
--| EXCEPTIONS HANDLED:
--| none
--|
--| HISTORY:
--| written by May Lee March 1985
--|
-----------------------------------------------------------------------------
use Calendar;
Abort_Proc : Boolean; -- abort getting existing pr
Exit_Field_Menu : Boolean := False; -- exit personnel field menu
Field_Selection : Integer; -- selection from personnel field menu
Pr_Record : Personnel_Pointer; -- pointer to person data record
Key : Pr_Init_Type; -- initials of person looking for
Found : Boolean := False; -- if the record was found in the list
procedure Modify_Personnel_Key is separate;
procedure Modify_Start_Stop_Date (Pair : in Integer) is separate;
begin
New_Line;
Put_Line ("Which person would you like to modify?");
Prompt_Pkg.Existing_Person_Initials (Abort_Proc, Key);
-- set pointer to that person, returned in pr_record
Find (Pr_List, Key, Pr_Record, Found);
if not Abort_Proc then
while not Exit_Field_Menu loop
Field_Selection := Vt100.Print_Pr_Menu (Pr_Record);
case Field_Selection is
when 1 =>
-- get person's name
Put (" The current person's name is ");
Put (Pr_Record.Name);
New_Line;
Put_Line (" What would you like to change it to? ");
Pr_Record.Name := Prompt_Pkg.Persons_Name;
when 2 =>
-- Getting new person's initials , change key
Put (" The current person's initials are ");
Put (Pr_Record.Initials);
New_Line;
Put_Line (" What would you like to change it to? ");
Modify_Personnel_Key;
when 3 =>
-- Get new production rate
Put (" The current production rate is ");
Put (Pr_Record.Production_Rate, 4);
New_Line;
Put_Line (" What would you like to change it to? ");
Pr_Record.Production_Rate := Prompt_Pkg.Pr_Production_Rate;
when 4 =>
-- Get new hours per week
Put (" The hours per week is ");
Put (Pr_Record.Hours_Per_Week, 2);
New_Line;
Put_Line (" What would you like to change it to? ");
Pr_Record.Hours_Per_Week := Prompt_Pkg.Pr_Hrs_Per_Week;
when 5 =>
-- Get new first set of start/stop dates
Modify_Start_Stop_Date (1);
when 6 =>
-- Get new second set of start/stop dates
Modify_Start_Stop_Date (2);
when 7 =>
-- Get new third set of start/stop dates
Modify_Start_Stop_Date (3);
when 8 =>
Exit_Field_Menu := True;
when others =>
Put_Line ("Please enter a number beween 1 and 8.");
end case;
end loop;
end if;
end Pr_Modify;