separate (Vt100)

function Print_Report_Menu return Integer is
    ----------------------------------------------------------------------
    --|
    --|  NAME:  PRINT_REPORT_MENU
    --|
    --|  OVERVIEW:
    --|    The report menu consists of the various reports a user is allowed
    --|    to print.
    --|
    --|  EXCEPTIONS HANDLED:
    --|    others   the user is reprompted
    --|
    --|  HISTORY:
    --|    written by   May Lee   March 1985
    --|
    ----------------------------------------------------------------------

begin
    loop
        begin
            Clear_Screen;
            Put_Line ("                         REPORT  MENU  ");
            Put_Line
               ("==============================================================");
            New_Line;
            Put_Line
               ("Choose the number of the report that you would like generated.");
            Put_Line
               ("  The star(s) indicate that you have already requested that ");
            Put_Line ("  report to be generated.  ");
            New_Line (2);

            if Print_Report (1) then
                Put_Line ("        *  1)  Parameter Data List");
            else
                Put_Line ("           1)  Parameter Data List");
            end if;

            if Print_Report (2) then
                Put_Line ("        *  2)  Comments File ");
            else
                Put_Line ("           2)  Comments File ");
            end if;

            if Print_Report (3) then
                Put_Line ("        *  3)  All Element Status Report");
            else
                Put_Line ("           3)  All Element Status Report");
            end if;

            if Print_Report (4) then
                Put_Line ("        *  4)  List By Subsystem");
            else
                Put_Line ("           4)  List By Subsystem");
            end if;

            if Print_Report (5) then
                Put_Line ("        *  5)  List By Milestone   ");
            else
                Put_Line ("           5)  List By Milestone   ");
            end if;

            if Print_Report (6) then
                Put_Line ("        *  6)  List By Person");
            else
                Put_Line ("           6)  List By Person");
            end if;

            if Print_Report (7) then
                Put_Line ("        *  7)  Subsystem Summary");
            else
                Put_Line ("           7)  Subsystem Summary");
            end if;

            if Print_Report (8) then
                Put_Line ("        *  8)  Milestone Summary");
            else
                Put_Line ("           8)  Milestone Summary");
            end if;

            if Print_Report (9) then
                Put_Line ("        *  9)  Work Units Per Subsystem ");
            else
                Put_Line ("           9)  Work Units Per Subsystem ");
            end if;

            if Print_Report (10) then
                Put_Line
                   ("        * 10)  Percent Completion Of Work Within Subsystem ");
            else
                Put_Line
                   ("          10)  Percent Completion Of Work Within Subsystem ");
            end if;

            if Print_Report (11) then
                Put_Line
                   ("        * 11)  Distribution Of Remaining Work Within Subsystems");
            else
                Put_Line
                   ("          11)  Distribution Of Remaining Work Within Subsystems");
            end if;

            if Print_Report (12) then
                Put_Line ("        * 12)  Completion Date For Milestones");
            else
                Put_Line ("          12)  Completion Date For Milestones");
            end if;

            Put_Line ("          13)  All Of The Above and EXIT ");
            New_Line;

            Put_Line ("          14)  EXIT FROM TRACKER ");

            Get (Response);
            Skip_Line;
            return Response;
        exception
            when others =>
                Skip_Line;
                New_Line;
                Put_Line (" Please enter a number between 1 and 14. ");
                delay 1.0;
        end;
    end loop;
end Print_Report_Menu;