DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: B T

⟦d4d9f42c1⟧ TextFile

    Length: 4088 (0xff8)
    Types: TextFile
    Names: »B«

Derivation

└─⟦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⟧ 

TextFile

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;