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

⟦c47806f21⟧ TextFile

    Length: 4185 (0x1059)
    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.Report_Generator)
procedure Completion_Date_For_Ms is
    ----------------------------------------------------------------------
    --|
    --|  NAME:  COMPLETION_DATE_FOR_MS
    --|
    --|  OVERVIEW:
    --|    This report is a matrix showing the finsh date of each person in
    --|    relation to each defined milestone.  The personnel are represented
    --|    on the x-axis and the milestones on the y-axis.  There are four
    --|    possible values for a date : "...." means the person is not assigned
    --|    to any elements with that milestone, "99/99/99" means the person did
    --|    not have enough time to finish his work, "DONE" means the person has
    --|    completed all work assigned to him on this milestone, otherwise, a
    --|    calculated completion date will appear.  The data in the report
    --|    includes the date each person will complete a milestone, the latest
    --|    date each person will finish all work, the latest date each of the
    --|    milestones will be finished, and the date that the milestone is due.
    --|    If more than 10 people are assigned to the project, the Completion
    --|    Date for Milestone report is repeated until all people have been
    --|    included on a report.
    --|
    --|  EXCEPTIONS HANDLED:
    --|    others   error message printed and execution continues
    --|
    --|  HISTORY:
    --|    written by   Bonnie Burkhardt   March 1985
    --|
    ----------------------------------------------------------------------

    use Calendar;
    use Ac_List_Pkg;
    use El_List_Pkg;
    use Ms_List_Pkg;
    use Pr_List_Pkg;

    Header1 : String (1 .. 132) := (others => ' ');
    Header2 : String (1 .. 132) := (others => ' ');
    Header_Lines : String (1 .. 132) := (others => ' ');

    End_List : Boolean := False;
    Max_Pr_On_Page : constant Integer := 10;
    Ms_Ptr : Milestone_Pointer;
    Pr_Initials : array (1 .. Num_Of_People) of Pr_Init_Type :=
       (others => "  ");
    Pr_Index : Integer := 0;
    Pr_Ptr : Personnel_Pointer;
    Start_Pr : Integer := 1;
    Stop_Pr : Integer := Num_Of_People;
    Title : constant String := "COMPLETION DATE FOR MILESTONES";
    Date_Done : array (1 .. Num_Of_People) of Date_Type :=
       (others => Null_Date);
    Tot_Date_Done : array (1 .. Num_Of_People) of Date_Type :=
       (others => Null_Date);
    Work_Is_Left : array (1 .. Num_Of_People) of Boolean := (others => False);
    Work_Is_Left_Tot : array (1 .. Num_Of_People) of Boolean :=
       (others => False);
    Ms_Work_Left : Boolean := False;
    Tot_Work_Left : Boolean := False;
    Prev_Date_Done : Date_Type := Null_Date;
    Ms_Date_Done : Date_Type := Null_Date;
    Ms_Tot_Date_Done : Date_Type := Null_Date;

    procedure Calc_Date_Totals is separate;
    procedure Init_Date_Headers is separate;
    procedure Print_A_Date (A_Date : in Date_Type;
                            Any_Work_Left : in Boolean := True) is separate;
    procedure Print_Ms_Dates is separate;
    procedure Print_Tot_Ms_Dates is separate;

begin
    -- initialize the initials array
    Start_Walk (Pr_List);
    Pr_Index := 0;

    loop
        Walk (Pr_List, Pr_Ptr, End_List);
        exit when End_List;
        Pr_Index := Pr_Index + 1;
        Pr_Initials (Pr_Index) := Pr_Ptr.Initials;
    end loop;


    -- print out the report, only 10 personnel will fit on a page
    loop
        if Stop_Pr - Start_Pr >= Max_Pr_On_Page then
            Stop_Pr := Start_Pr + Max_Pr_On_Page - 1;
        else
            Stop_Pr := Num_Of_People;
        end if;

        Init_Date_Headers;
        Start_Page (Title, "", Header1, Header2, Header_Lines);

        -- print out each milestone's completion dates
        Start_Walk (Ms_List);

        loop
            Walk (Ms_List, Ms_Ptr, End_List);
            exit when End_List;
            Calc_Date_Totals;
            Print_Ms_Dates;
        end loop;

        Print_Tot_Ms_Dates;

        Start_Pr := Start_Pr + Max_Pr_On_Page;
        exit when Start_Pr > Num_Of_People;
    end loop;

exception
    when others =>
        Put_Line ("exception raised in LIST BY MILESTONE REPORT");
end Completion_Date_For_Ms;