mirror of
https://github.com/PDP-10/stacken.git
synced 2026-02-28 17:09:15 +00:00
1220 lines
41 KiB
COBOL
1220 lines
41 KiB
COBOL
IDENTIFICATION DIVISION.
|
||
|
||
PROGRAM-ID. USAG10. V(2).
|
||
AUTHOR. BAHUIZENGA
|
||
DATE-WRITTEN. MAY, 1980.
|
||
REMARKS.
|
||
|
||
EDIT HISTORY:
|
||
|
||
1) /BAH 28-MAY-80 CONVERT TOPS20 USAG20.CBL TO TOPS10 USAG10.CBL.
|
||
2) /BAH 23-SEP-80 Disk reports were wrong.
|
||
|
||
COPYRIGHT (C) 1980 BY
|
||
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
|
||
|
||
|
||
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
|
||
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
|
||
INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
|
||
COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
|
||
OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
|
||
TRANSFERRED.
|
||
|
||
|
||
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
|
||
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
|
||
CORPORATION.
|
||
|
||
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
|
||
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
|
||
|
||
|
||
|
||
INPUT: USAGE.OUT (DEFAULT)
|
||
OUTPUT: USAGE.RPT (DEFAULT)
|
||
ASSEMBLY: USES LIBRARY FILE USAG10.LIB.
|
||
|
||
|
||
ENVIRONMENT DIVISION.
|
||
CONFIGURATION SECTION.
|
||
SPECIAL-NAMES.
|
||
'NAME' IS NAME-DETAIL;
|
||
'ACCOUNT' IS ACCOUNT-DETAIL
|
||
'DNAME' IS DISK-NAME-DETAIL
|
||
'DACCOUNT' IS DISK-ACCOUNT-DETAIL.
|
||
|
||
INPUT-OUTPUT SECTION.
|
||
FILE-CONTROL.
|
||
SELECT IN-FILE
|
||
ASSIGN TO DSK
|
||
RECORDING MODE IS ASCII.
|
||
SELECT OUT-FILE
|
||
ASSIGN TO DSK
|
||
RECORDING MODE IS ASCII.
|
||
SELECT SORT-USAGE
|
||
ASSIGN TO DSK, DSK, DSK.
|
||
SELECT CHARGE-FILE
|
||
ASSIGN TO DSK
|
||
RECORDING MODE IS ASCII.
|
||
DATA DIVISION.
|
||
FILE SECTION.
|
||
|
||
FD IN-FILE VALUE OF ID IS IN-FILE-NAME-EXT
|
||
DATA RECORDS ARE IN-RECORD, ENTRY-HEADER-RECORD, TOPS10-USER-ID-RECORD,
|
||
TOPS20-USER-ID-RECORD, RESTART-RECORD, SESSION-RECORD-1,
|
||
SESSION-RECORD-2, DATE-TIME-CHANGE-RECORD,
|
||
BATCH-PROCESSOR-RECORD, USAGE-FILE-HEADER-RECORD,
|
||
INPUT-SPOOLER-RECORD, OUTPUT-SPOOLER-RECORD,
|
||
DISK-DIRECTORY-RECORD, DISK-ACCOUNT-RECORD,
|
||
DISK-SPINDLE-USAGE-RECORD, USER-FILE-STRUCTURE-RECORD,
|
||
USER-MAGTAPE-RECORD, USER-DECTAPE-RECORD,
|
||
USER-FILE-COMMAND-RECORD, FILE-RETRIEVAL-RECORD,
|
||
FILE-ARCHIVAL-RECORD, FILE-MIGRATION-RECORD,
|
||
FILE-COLLECTION-RECORD.
|
||
01 IN-RECORD. COPY USAG10.
|
||
|
||
FD OUT-FILE VALUE OF ID IS OUT-FILE-NAME-EXT
|
||
REPORTS ARE NAMES, ACCOUNTS, DNAMES, DACCOUNTS.
|
||
01 OUT-RECORD DISPLAY-7 PIC X(137).
|
||
|
||
FD CHARGE-FILE VALUE OF ID IS 'USAG10CHG'.
|
||
01 CHARGE-RECORD PIC X(80).
|
||
|
||
SD SORT-USAGE
|
||
DATA RECORDS ARE SYSTEM-SORT-RECORD, DISK-SORT-RECORD.
|
||
01 SYSTEM-SORT-RECORD.
|
||
02 NAME-SORT PIC X(12).
|
||
02 PROJECT-PROGRAMMER-SORT.
|
||
03 PROJECT-SORT PIC 9(6).
|
||
03 PROGRAMMER-SORT PIC 9(6).
|
||
02 REMARK-SORT PIC X(39).
|
||
02 ACCOUNT-SORT PIC X(39).
|
||
02 CONNECT-SORT PIC 9(6)V99.
|
||
02 RUNTIME-SORT PIC 9(7)V9.
|
||
02 SPOOLER-INPUT-SORT PIC 9(7).
|
||
02 SPOOLER-OUTPUT-SORT PIC 9(7).
|
||
02 CHARGE-SORT PIC 9(9)V99.
|
||
|
||
01 DISK-SORT-RECORD.
|
||
02 DIRECTORY-SORT.
|
||
03 DISK-PROJECT-SORT PIC 9(6).
|
||
03 DISK-PROGRAMMER-SORT PIC 9(6).
|
||
03 FILLER PIC X(27).
|
||
02 STRUCTURE-SORT PIC X(39).
|
||
02 DISK-ACCOUNT-SORT PIC X(39).
|
||
02 DISK-PAGE-SORT PIC 9(8).
|
||
02 FILE-SORT PIC 9(5).
|
||
02 FILLER PIC X(28).
|
||
|
||
WORKING-STORAGE SECTION.
|
||
|
||
01 LETTER-MONTH-RECORD USAGE IS DISPLAY-7
|
||
VALUE 'JanFebMarAprMayJunJulAugSepOctNovDec'.
|
||
02 LETTER-MONTH PIC X(3) OCCURS 12 TIMES.
|
||
|
||
01 IN-FILE-NAME-EXT.
|
||
02 IN-FILE-NAME PIC X(6).
|
||
02 IN-FILE-EXT PIC X(3).
|
||
|
||
01 OUT-FILE-NAME-EXT.
|
||
02 OUT-FILE-NAME PIC X(6).
|
||
02 OUT-FILE-EXT PIC X(3).
|
||
|
||
01 THIS-DATE.
|
||
02 TD-YEAR PIC 99.
|
||
02 TD-MONTH PIC 99.
|
||
02 TD-DAY PIC 99.
|
||
02 TD-HOUR PIC 99.
|
||
02 TD-MIN PIC 99.
|
||
02 FILLER PIC 99.
|
||
77 TD-MMM USAGE IS DISPLAY-7 PIC X(3).
|
||
|
||
01 WS-END-DATE-TIME.
|
||
02 WS-END-YY1 PIC 99.
|
||
02 WS-EDT.
|
||
03 WS-END-YY PIC 99.
|
||
03 WS-END-MON PIC 99.
|
||
03 WS-END-DD PIC 99.
|
||
03 WS-END-HH PIC 99.
|
||
03 WS-END-MIN PIC 99.
|
||
03 FILLER PIC XX.
|
||
77 WS-END-MMM USAGE IS DISPLAY-7 PIC X(3).
|
||
|
||
01 WS-START-DATE-TIME.
|
||
02 WS-START-YY1 PIC XX.
|
||
02 WS-SDT.
|
||
03 WS-START-YY PIC 99.
|
||
03 WS-START-MON PIC 99.
|
||
03 WS-START-DD PIC 99.
|
||
03 WS-START-HH PIC 99.
|
||
03 WS-START-MIN PIC 99.
|
||
03 FILLER PIC XX.
|
||
77 WS-START-MMM USAGE IS DISPLAY-7 PIC X(3).
|
||
|
||
01 DEFINED-ENTRIES PIC 9(4).
|
||
88 KNOWN-ENTRIES VALUES ARE 0001 THRU 0004, 0007 THRU 0009.
|
||
|
||
01 WS-CHARGE-1.
|
||
02 WS-C1-DOLLAR PIC 999.
|
||
02 WS-C1-CENTS PIC 99.
|
||
01 X REDEFINES WS-CHARGE-1.
|
||
02 WS-CHARGE PIC 999V99.
|
||
|
||
77 WS-COMMAND PIC X(15).
|
||
77 WS-REPORT PIC X(8).
|
||
77 WS-SYSTEM-NAME PIC X(39).
|
||
77 WS-SORT PIC X.
|
||
77 WS-CHARGE-CODE PIC X(6).
|
||
77 WS-DOLLAR PIC XXX.
|
||
77 WS-CENTS PIC XX.
|
||
77 WS-COMMENT PIC X(66).
|
||
|
||
77 WS-AVGPAGE PIC 9(7)V9.
|
||
77 WS-RECORDS-READ PIC 9(3).
|
||
77 WS-PAGE-NUMBER PIC 9(9).
|
||
77 WS-STRUCTURE PIC X(39).
|
||
77 WS-DIRECTORY PIC X(39).
|
||
77 WS-ACCOUNT PIC X(39).
|
||
|
||
01 WS-ALL-CHARGES.
|
||
02 WS-SESSION-CONNECT PIC 9(3)V99.
|
||
02 WS-SESSION-RUNTIME PIC 9(3)V99.
|
||
02 WS-CARDS PIC 9(3)V99.
|
||
02 WS-CARD-RUNTIME PIC 9(3)V99.
|
||
02 WS-PAGES PIC 9(3)V99.
|
||
02 WS-PAGE-RUNTIME PIC 9(3)V99.
|
||
02 WS-DISK-PAGES PIC 9(3)V99.
|
||
|
||
REPORT SECTION.
|
||
|
||
RD NAMES
|
||
CODE NAME-DETAIL
|
||
CONTROLS ARE FINAL, NAME-SORT, ACCOUNT-SORT, REMARK-SORT
|
||
PAGE LIMIT IS 120,
|
||
LAST DETAIL 58.
|
||
|
||
01 TYPE PH; LINE 1, NEXT GROUP PLUS 1 USAGE IS DISPLAY-7.
|
||
02 COLUMN 1 PIC X(9) VALUE 'Run Date:'.
|
||
02 COLUMN 12 PIC Z9 SOURCE TD-DAY.
|
||
02 COLUMN 14 PIC X VALUE '-'.
|
||
02 COLUMN 15 PIC X(3) SOURCE TD-MMM.
|
||
02 COLUMN 18 PIC X VALUE '-'.
|
||
02 COLUMN 19 PIC 99 SOURCE TD-YEAR.
|
||
02 COLUMN 22 PIC 99 SOURCE TD-HOUR.
|
||
02 COLUMN 24 PIC X VALUE ':'.
|
||
02 COLUMN 25 PIC 99 SOURCE TD-MIN.
|
||
02 COLUMN 47 PIC X(39) SOURCE WS-SYSTEM-NAME.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(4) VALUE 'User'.
|
||
02 COLUMN 6 PIC X(12) SOURCE NAME-SORT.
|
||
02 COLUMN 18 PIC X VALUE '['.
|
||
02 COLUMN 19 PIC Z(5)9 SOURCE PROJECT-SORT.
|
||
02 COLUMN 25 PIC X VALUE ','.
|
||
02 COLUMN 26 PIC Z(5)9 SOURCE PROGRAMMER-SORT.
|
||
02 COLUMN 32 PIC X VALUE ']'.
|
||
02 COLUMN 53 PIC X(27) VALUE 'TOPS-10 System USAGE Report'.
|
||
02 LINE PLUS 1
|
||
COLUMN 39 PIC X(19) VALUE 'USAGE Entries From:'.
|
||
02 COLUMN 59 PIC 99 SOURCE WS-START-DD.
|
||
02 COLUMN 61 PIC X VALUE '-'.
|
||
02 COLUMN 62 PIC X(3) SOURCE WS-START-MMM.
|
||
02 COLUMN 65 PIC X VALUE '-'.
|
||
02 COLUMN 66 PIC 99 SOURCE WS-START-YY.
|
||
02 COLUMN 69 PIC 99 SOURCE WS-START-HH.
|
||
02 COLUMN 71 PIC X VALUE ':'.
|
||
02 COLUMN 72 PIC 99 SOURCE WS-START-MIN.
|
||
02 COLUMN 75 PIC X(3) VALUE 'to:'.
|
||
02 COLUMN 79 PIC 99 SOURCE WS-END-DD.
|
||
02 COLUMN 81 PIC X VALUE '-'.
|
||
02 COLUMN 82 PIC X(3) SOURCE WS-END-MMM.
|
||
02 COLUMN 85 PIC X VALUE'-'.
|
||
02 COLUMN 86 PIC 99 SOURCE WS-END-YY.
|
||
02 COLUMN 89 PIC 99 SOURCE WS-END-HH.
|
||
02 COLUMN 91 PIC X VALUE ':'.
|
||
02 COLUMN 92 PIC 99 SOURCE WS-END-MIN.
|
||
02 LINE PLUS 2
|
||
COLUMN 53 PIC X(7) VALUE 'Connect'.
|
||
02 COLUMN 73 PIC X(5) VALUE 'Input'.
|
||
02 COLUMN 81 PIC X(6) VALUE 'Output'.
|
||
02 LINE PLUS 1
|
||
COLUMN 43 PIC X(5) VALUE 'Total'.
|
||
02 COLUMN 54 PIC X(4) VALUE 'Time'.
|
||
02 COLUMN 63 PIC X(7) VALUE 'Runtime'.
|
||
02 COLUMN 72 PIC X(7) VALUE 'Spooler'.
|
||
02 COLUMN 80 PIC X(7) VALUE 'Spooler'.
|
||
|
||
02 LINE PLUS 1
|
||
COLUMN 15 PIC X(7) VALUE 'Account'.
|
||
02 COLUMN 42 PIC X(6) VALUE 'Charge'.
|
||
02 COLUMN 53 PIC X(7) VALUE '(Hours)'.
|
||
02 COLUMN 64 PIC X(6) VALUE '(Sec.)'.
|
||
02 COLUMN 73 PIC X(5) VALUE 'Cards'.
|
||
02 COLUMN 81 PIC X(5) VALUE 'Pages'.
|
||
02 COLUMN 88 PIC X(6) VALUE 'Remark'.
|
||
02 LINE PLUS 1
|
||
COLUMN 15 PIC X(7) VALUE '-------'.
|
||
02 COLUMN 40 PIC X(11) VALUE '-----------'.
|
||
02 COLUMN 52 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 62 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 72 PIC X(7) VALUE '-------'.
|
||
02 COLUMN 80 PIC X(7) VALUE '-------'.
|
||
02 COLUMN 88 PIC X(6) VALUE '------'.
|
||
|
||
|
||
|
||
01 TYPE DETAIL.
|
||
02 PIC Z(7)9.99 SOURCE CHARGE-SORT.
|
||
02 PIC Z(6).ZZ SOURCE CONNECT-SORT BLANK WHEN ZERO.
|
||
02 PIC Z(7).Z SOURCE RUNTIME-SORT BLANK WHEN ZERO.
|
||
02 PIC Z(10) SOURCE SPOOLER-INPUT-SORT.
|
||
02 PIC Z(7) SOURCE SPOOLER-OUTPUT-SORT.
|
||
|
||
|
||
|
||
01 TYPE CF REMARK-SORT; LINE PLUS 1; USAGE IS DISPLAY-7.
|
||
02 COLUMN 1 PIC X(39) SOURCE ACCOUNT-SORT.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(6).ZZ SUM CONNECT-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 62 PIC Z(7).Z SUM RUNTIME-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 72 PIC Z(7) SUM SPOOLER-INPUT-SORT.
|
||
02 COLUMN 80 PIC Z(7) SUM SPOOLER-OUTPUT-SORT.
|
||
02 COLUMN 88 PIC X(39) SOURCE REMARK-SORT.
|
||
|
||
|
||
01 TYPE CF ACCOUNT-SORT; LINE PLUS 1; NEXT GROUP IS PLUS 2; USAGE IS DISPLAY-7.
|
||
02 COLUMN 40 PIC X(11) VALUE '-----------'.
|
||
02 COLUMN 52 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 62 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 72 PIC X(7) VALUE '-------'.
|
||
02 COLUMN 80 PIC X(7) VALUE '-------'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(28) VALUE
|
||
'* * * Account Subtotal * * *'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(6).ZZ SUM CONNECT-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 62 PIC Z(7).Z SUM RUNTIME-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 72 PIC Z(7) SUM SPOOLER-INPUT-SORT.
|
||
02 COLUMN 80 PIC Z(7) SUM SPOOLER-OUTPUT-SORT.
|
||
|
||
01 TYPE CF NAME-SORT LINE PLUS 1; NEXT GROUP NEXT PAGE USAGE IS DISPLAY-7.
|
||
02 COLUMN 40 PIC X(11) VALUE '==========='.
|
||
02 COLUMN 52 PIC X(9) VALUE '========='.
|
||
02 COLUMN 62 PIC X(9) VALUE '========='.
|
||
02 COLUMN 72 PIC X(7) VALUE '======='.
|
||
02 COLUMN 80 PIC X(7) VALUE'======='.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(18) VALUE '* * * Totals * * *'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(6).ZZ SUM CONNECT-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 62 PIC Z(7).Z SUM RUNTIME-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 72 PIC Z(7) SUM SPOOLER-INPUT-SORT.
|
||
02 COLUMN 80 PIC Z(7) SUM SPOOLER-OUTPUT-SORT.
|
||
02 LINE PLUS 2
|
||
COLUMN 1 PIC X(30) VALUE '******************************'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(15) VALUE '* End of Report'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(30) VALUE '******************************'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(6) VALUE 'Rates:'.
|
||
02 LINE PLUS 1
|
||
COLUMN 5 PIC X(22) VALUE 'Session Connect Time ='.
|
||
02 COLUMN 28 PIC $ZZZ.99 SOURCE WS-SESSION-CONNECT.
|
||
02 COLUMN 35 PIC X(6) VALUE '/Hour,'.
|
||
02 COLUMN 43 PIC X(24) VALUE 'Session Runtime ='.
|
||
02 COLUMN 68 PIC $ZZZ.99 SOURCE WS-SESSION-RUNTIME.
|
||
02 COLUMN 75 PIC X(7) VALUE '/Second'.
|
||
02 LINE PLUS 1
|
||
COLUMN 5 PIC X(22) VALUE 'Input Spooler Unit ='.
|
||
02 COLUMN 28 PIC $ZZZ.99 SOURCE WS-CARDS.
|
||
02 COLUMN 35 PIC X(6) VALUE '/Card,'.
|
||
02 COLUMN 43 PIC X(24) VALUE 'Input Spooler Runtime ='.
|
||
02 COLUMN 68 PIC $ZZZ.99 SOURCE WS-CARD-RUNTIME.
|
||
02 COLUMN 75 PIC X(7) VALUE '/Second'.
|
||
02 LINE PLUS 1
|
||
COLUMN 5 PIC X(22) VALUE 'Output Spooler Unit ='.
|
||
02 COLUMN 28 PIC $ZZZ.99 SOURCE WS-PAGES.
|
||
02 COLUMN 35 PIC X(6) VALUE '/Page,'.
|
||
02 COLUMN 43 PIC X(24) VALUE 'Output Spooler Runtime ='.
|
||
02 COLUMN 68 PIC $ZZZ.99 SOURCE WS-PAGE-RUNTIME.
|
||
02 COLUMN 75 PIC X(7) VALUE '/Second'.
|
||
|
||
RD ACCOUNTS
|
||
CODE ACCOUNT-DETAIL
|
||
CONTROLS ARE FINAL, ACCOUNT-SORT, NAME-SORT, REMARK-SORT
|
||
PAGE LIMIT IS 120,
|
||
LAST DETAIL 58.
|
||
|
||
01 TYPE PH; LINE 1, NEXT GROUP PLUS 1 USAGE IS DISPLAY-7.
|
||
02 COLUMN 1 PIC X(9) VALUE 'Run Date:'.
|
||
02 COLUMN 12 PIC Z9 SOURCE TD-DAY.
|
||
02 COLUMN 14 PIC X VALUE '-'.
|
||
02 COLUMN 15 PIC X(3) SOURCE TD-MMM.
|
||
02 COLUMN 18 PIC X VALUE '-'.
|
||
02 COLUMN 19 PIC 99 SOURCE TD-YEAR.
|
||
02 COLUMN 22 PIC 99 SOURCE TD-HOUR.
|
||
02 COLUMN 24 PIC X VALUE ':'.
|
||
02 COLUMN 25 PIC 99 SOURCE TD-MIN.
|
||
02 COLUMN 47 PIC X(39) SOURCE WS-SYSTEM-NAME.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(7) VALUE 'Account'.
|
||
02 COLUMN 9 PIC X(39) SOURCE ACCOUNT-SORT.
|
||
02 COLUMN 56 PIC X(20) VALUE 'TOPS-10 USAGE Report'.
|
||
02 LINE PLUS 1
|
||
COLUMN 39 PIC X(19) VALUE 'USAGE Entries From:'.
|
||
02 COLUMN 59 PIC 99 SOURCE WS-START-DD.
|
||
02 COLUMN 61 PIC X VALUE '-'.
|
||
02 COLUMN 62 PIC X(3) SOURCE WS-START-MMM.
|
||
02 COLUMN 65 PIC X VALUE '-'.
|
||
02 COLUMN 66 PIC 99 SOURCE WS-START-YY.
|
||
02 COLUMN 69 PIC 99 SOURCE WS-START-HH.
|
||
02 COLUMN 71 PIC X VALUE ':'.
|
||
02 COLUMN 72 PIC 99 SOURCE WS-START-MIN.
|
||
02 COLUMN 75 PIC X(3) VALUE 'to:'.
|
||
02 COLUMN 79 PIC 99 SOURCE WS-END-DD.
|
||
02 COLUMN 81 PIC X VALUE '-'.
|
||
02 COLUMN 82 PIC X(3) SOURCE WS-END-MMM.
|
||
02 COLUMN 85 PIC X VALUE'-'.
|
||
02 COLUMN 86 PIC 99 SOURCE WS-END-YY.
|
||
02 COLUMN 89 PIC 99 SOURCE WS-END-HH.
|
||
02 COLUMN 91 PIC X VALUE ':'.
|
||
02 COLUMN 92 PIC 99 SOURCE WS-END-MIN.
|
||
02 LINE PLUS 2
|
||
COLUMN 53 PIC X(7) VALUE 'Connect'.
|
||
02 COLUMN 73 PIC X(5) VALUE 'Input'.
|
||
02 COLUMN 81 PIC X(6) VALUE 'Output'.
|
||
02 LINE PLUS 1
|
||
COLUMN 43 PIC X(5) VALUE 'Total'.
|
||
02 COLUMN 54 PIC X(4) VALUE 'Time'.
|
||
02 COLUMN 63 PIC X(7) VALUE 'Runtime'.
|
||
02 COLUMN 72 PIC X(7) VALUE 'Spooler'.
|
||
02 COLUMN 80 PIC X(7) VALUE 'Spooler'.
|
||
02 LINE PLUS 1
|
||
COLUMN 17 PIC X(4) VALUE 'Name'.
|
||
02 COLUMN 42 PIC X(6) VALUE 'Charge'.
|
||
02 COLUMN 53 PIC X(7) VALUE '(Hours)'.
|
||
02 COLUMN 64 PIC X(6) VALUE '(Sec.)'.
|
||
02 COLUMN 73 PIC X(5) VALUE 'Units'.
|
||
02 COLUMN 81 PIC X(5) VALUE 'Units'.
|
||
02 COLUMN 88 PIC X(6) VALUE 'Remark'.
|
||
02 LINE PLUS 1
|
||
COLUMN 17 PIC X(4) VALUE '----'.
|
||
02 COLUMN 40 PIC X(11) VALUE '-----------'.
|
||
02 COLUMN 52 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 62 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 72 PIC X(7) VALUE '-------'.
|
||
02 COLUMN 80 PIC X(7) VALUE '-------'.
|
||
02 COLUMN 88 PIC X(6) VALUE '------'.
|
||
|
||
|
||
|
||
01 TYPE DETAIL.
|
||
02 PIC Z(7)9.99 SOURCE CHARGE-SORT.
|
||
02 PIC Z(6).ZZ SOURCE CONNECT-SORT BLANK WHEN ZERO.
|
||
02 PIC Z(7).Z SOURCE RUNTIME-SORT BLANK WHEN ZERO.
|
||
02 PIC Z(10) SOURCE SPOOLER-INPUT-SORT.
|
||
02 PIC Z(7) SOURCE SPOOLER-OUTPUT-SORT.
|
||
|
||
|
||
|
||
01 TYPE CF REMARK-SORT; LINE PLUS 1.
|
||
02 COLUMN 1 PIC X(12) SOURCE NAME-SORT.
|
||
02 COLUMN 14 PIC X VALUE '['.
|
||
02 COLUMN 15 PIC Z(5)9 SOURCE PROJECT-SORT.
|
||
02 COLUMN 21 PIC X VALUE ','.
|
||
02 COLUMN 22 PIC Z(5)9 SOURCE PROGRAMMER-SORT.
|
||
02 COLUMN 28 PIC X VALUE ']'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(6).ZZ SUM CONNECT-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 62 PIC Z(7).Z SUM RUNTIME-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 72 PIC Z(7) SUM SPOOLER-INPUT-SORT.
|
||
02 COLUMN 80 PIC Z(7) SUM SPOOLER-OUTPUT-SORT.
|
||
02 COLUMN 88 PIC X(39) SOURCE REMARK-SORT.
|
||
|
||
|
||
01 TYPE CF NAME-SORT; LINE PLUS 1; NEXT GROUP IS PLUS 2; USAGE IS DISPLAY-7.
|
||
02 COLUMN 40 PIC X(11) VALUE '-----------'.
|
||
02 COLUMN 52 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 62 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 72 PIC X(7) VALUE '-------'.
|
||
02 COLUMN 80 PIC X(7) VALUE '-------'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(25) VALUE
|
||
'* * * User Subtotal * * *'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(6).ZZ SUM CONNECT-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 62 PIC Z(7).Z SUM RUNTIME-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 72 PIC Z(7) SUM SPOOLER-INPUT-SORT.
|
||
02 COLUMN 80 PIC Z(7) SUM SPOOLER-OUTPUT-SORT.
|
||
|
||
01 TYPE CF ACCOUNT-SORT LINE PLUS 1; NEXT GROUP NEXT PAGE USAGE IS DISPLAY-7.
|
||
02 COLUMN 40 PIC X(11) VALUE '==========='.
|
||
02 COLUMN 52 PIC X(9) VALUE '========='.
|
||
02 COLUMN 62 PIC X(9) VALUE '========='.
|
||
02 COLUMN 72 PIC X(7) VALUE '======='.
|
||
02 COLUMN 80 PIC X(7) VALUE'======='.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(18) VALUE '* * * Totals * * *'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(6).ZZ SUM CONNECT-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 62 PIC Z(7).Z SUM RUNTIME-SORT BLANK WHEN ZERO.
|
||
02 COLUMN 72 PIC Z(7) SUM SPOOLER-INPUT-SORT.
|
||
02 COLUMN 80 PIC Z(7) SUM SPOOLER-OUTPUT-SORT.
|
||
02 LINE PLUS 2
|
||
COLUMN 1 PIC X(30) VALUE '******************************'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(15) VALUE '* End of Report'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(30) VALUE '******************************'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(6) VALUE 'Rates:'.
|
||
02 LINE PLUS 1
|
||
COLUMN 5 PIC X(22) VALUE 'Session Connect Time ='.
|
||
02 COLUMN 28 PIC $ZZZ.99 SOURCE WS-SESSION-CONNECT.
|
||
02 COLUMN 35 PIC X(6) VALUE '/Hour,'.
|
||
02 COLUMN 43 PIC X(24) VALUE 'Session Runtime ='.
|
||
02 COLUMN 68 PIC $ZZZ.99 SOURCE WS-SESSION-RUNTIME.
|
||
02 COLUMN 75 PIC X(7) VALUE '/Second'.
|
||
02 LINE PLUS 1
|
||
COLUMN 5 PIC X(22) VALUE 'Input Spooler Unit ='.
|
||
02 COLUMN 28 PIC $ZZZ.99 SOURCE WS-CARDS.
|
||
02 COLUMN 35 PIC X(6) VALUE '/Card,'.
|
||
02 COLUMN 43 PIC X(24) VALUE 'Input Spooler Runtime ='.
|
||
02 COLUMN 68 PIC $ZZZ.99 SOURCE WS-CARD-RUNTIME.
|
||
02 COLUMN 75 PIC X(7) VALUE '/Second'.
|
||
02 LINE PLUS 1
|
||
COLUMN 5 PIC X(22) VALUE 'Output Spooler Unit ='.
|
||
02 COLUMN 28 PIC $ZZZ.99 SOURCE WS-PAGES.
|
||
02 COLUMN 35 PIC X(6) VALUE '/Page,'.
|
||
02 COLUMN 43 PIC X(24) VALUE 'Output Spooler Runtime ='.
|
||
02 COLUMN 68 PIC $ZZZ.99 SOURCE WS-PAGE-RUNTIME.
|
||
02 COLUMN 75 PIC X(7) VALUE '/Second'.
|
||
|
||
RD DNAMES
|
||
CODE DISK-NAME-DETAIL
|
||
CONTROLS ARE FINAL, DIRECTORY-SORT, DISK-ACCOUNT-SORT, STRUCTURE-SORT
|
||
PAGE LIMIT IS 120,
|
||
LAST DETAIL 58.
|
||
|
||
01 TYPE PH; LINE 1, NEXT GROUP PLUS 1 USAGE IS DISPLAY-7.
|
||
02 COLUMN 1 PIC X(9) VALUE 'Run Date:'.
|
||
02 COLUMN 12 PIC Z9 SOURCE TD-DAY.
|
||
02 COLUMN 14 PIC X VALUE '-'.
|
||
02 COLUMN 15 PIC X(3) SOURCE TD-MMM.
|
||
02 COLUMN 18 PIC X VALUE '-'.
|
||
02 COLUMN 19 PIC 99 SOURCE TD-YEAR.
|
||
02 COLUMN 22 PIC 99 SOURCE TD-HOUR.
|
||
02 COLUMN 24 PIC X VALUE ':'.
|
||
02 COLUMN 25 PIC 99 SOURCE TD-MIN.
|
||
02 COLUMN 47 PIC X(39) SOURCE WS-SYSTEM-NAME.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(9) VALUE 'Directory'.
|
||
02 COLUMN 11 PIC X VALUE '['.
|
||
02 COLUMN 12 PIC Z(6) SOURCE DISK-PROJECT-SORT.
|
||
02 COLUMN 18 PIC X VALUE ','.
|
||
02 COLUMN 19 PIC Z(6) SOURCE DISK-PROGRAMMER-SORT.
|
||
02 COLUMN 25 PIC X VALUE ']'.
|
||
02 COLUMN 54 PIC X(30) VALUE 'TOPS-10 Directory USAGE Report'.
|
||
02 LINE PLUS 1
|
||
COLUMN 48 PIC X(16) VALUE 'USAGE Entries on'.
|
||
02 COLUMN 66 PIC 99 SOURCE WS-START-DD.
|
||
02 COLUMN 68 PIC X VALUE '-'.
|
||
02 COLUMN 69 PIC X(3) SOURCE WS-START-MMM.
|
||
02 COLUMN 72 PIC X VALUE '-'.
|
||
02 COLUMN 73 PIC 99 SOURCE WS-START-YY.
|
||
02 COLUMN 76 PIC 99 SOURCE WS-START-HH.
|
||
02 COLUMN 78 PIC X VALUE ':'.
|
||
02 COLUMN 79 PIC 99 SOURCE WS-START-MIN.
|
||
02 LINE PLUS 2
|
||
COLUMN 43 PIC X(5) VALUE 'Total'.
|
||
02 COLUMN 54 PIC X(4) VALUE 'Disk'.
|
||
02 COLUMN 63 PIC X(6) VALUE 'Number'.
|
||
02 COLUMN 72 PIC X(8) VALUE 'Avg. No.'.
|
||
02 COLUMN 82 PIC X(9) VALUE 'Structure'.
|
||
02 LINE PLUS 1
|
||
COLUMN 15 PIC X(7) VALUE 'Account'.
|
||
02 COLUMN 42 PIC X(6) VALUE 'Charge'.
|
||
02 COLUMN 54 PIC X(5) VALUE 'Pages'.
|
||
02 COLUMN 62 PIC X(8) VALUE 'of Files'.
|
||
02 COLUMN 72 PIC X(8) VALUE 'of Pages'.
|
||
02 COLUMN 84 PIC X(4) VALUE 'Name'.
|
||
02 LINE PLUS 1
|
||
COLUMN 15 PIC X(7) VALUE '-------'.
|
||
02 COLUMN 40 PIC X(11) VALUE '-----------'.
|
||
02 COLUMN 52 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 62 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 72 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 82 PIC X(9) VALUE '---------'.
|
||
01 TYPE DETAIL.
|
||
02 PIC $Z(7)9.99 SOURCE CHARGE-SORT.
|
||
02 PIC Z(9) SOURCE DISK-PAGE-SORT.
|
||
02 PIC Z(9) SOURCE FILE-SORT.
|
||
|
||
|
||
01 TYPE CF STRUCTURE-SORT; LINE PLUS 1.
|
||
02 COLUMN 1 PIC X(39) SOURCE DISK-ACCOUNT-SORT.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(9) SUM DISK-PAGE-SORT.
|
||
02 COLUMN 62 PIC Z(9) SUM FILE-SORT.
|
||
02 COLUMN 72 PIC Z(7).Z SOURCE WS-AVGPAGE BLANK WHEN ZERO.
|
||
02 COLUMN 82 PIC X(7) SOURCE STRUCTURE-SORT.
|
||
|
||
01 TYPE CF DISK-ACCOUNT-SORT; LINE PLUS 1; NEXT GROUP IS PLUS 2; USAGE IS DISPLAY-7.
|
||
02 COLUMN 40 PIC X(11) VALUE '-----------'.
|
||
02 COLUMN 52 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 62 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 72 PIC X(9) VALUE '---------'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(28) VALUE
|
||
'* * * Account Subtotal * * *'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(9) SUM DISK-PAGE-SORT.
|
||
02 COLUMN 62 PIC Z(9) SUM FILE-SORT.
|
||
02 COLUMN 72 PIC Z(7).Z SUM WS-AVGPAGE BLANK WHEN ZERO.
|
||
01 TYPE CF DIRECTORY-SORT LINE PLUS 1; NEXT GROUP NEXT PAGE USAGE IS DISPLAY-7.
|
||
02 COLUMN 40 PIC X(11) VALUE '==========='.
|
||
02 COLUMN 52 PIC X(9) VALUE '========='.
|
||
02 COLUMN 62 PIC X(9) VALUE '========='.
|
||
02 COLUMN 72 PIC X(9) VALUE '========='.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(18) VALUE '* * * Totals * * *'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(9) SUM DISK-PAGE-SORT.
|
||
02 COLUMN 62 PIC Z(9) SUM FILE-SORT.
|
||
02 COLUMN 72 PIC Z(7).Z SUM WS-AVGPAGE BLANK WHEN ZERO.
|
||
02 LINE PLUS 2
|
||
COLUMN 1 PIC X(30) VALUE '******************************'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(15) VALUE '* End of Report'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(30) VALUE '******************************'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(6) VALUE 'Rates:'.
|
||
02 LINE PLUS 1
|
||
COLUMN 5 PIC X(12) VALUE 'Disk Usage ='.
|
||
02 COLUMN 18 PIC $$$.99 SOURCE WS-DISK-PAGES.
|
||
02 COLUMN 24 PIC X(5) VALUE '/Page'.
|
||
|
||
RD DACCOUNTS
|
||
CODE DISK-ACCOUNT-DETAIL
|
||
CONTROLS ARE FINAL, DISK-ACCOUNT-SORT, DIRECTORY-SORT, STRUCTURE-SORT
|
||
PAGE LIMIT IS 120,
|
||
LAST DETAIL 58.
|
||
|
||
01 TYPE PH; LINE 1, NEXT GROUP PLUS 1 USAGE IS DISPLAY-7.
|
||
02 COLUMN 1 PIC X(9) VALUE 'Run Date:'.
|
||
02 COLUMN 12 PIC Z9 SOURCE TD-DAY.
|
||
02 COLUMN 14 PIC X VALUE '-'.
|
||
02 COLUMN 15 PIC X(3) SOURCE TD-MMM.
|
||
02 COLUMN 18 PIC X VALUE '-'.
|
||
02 COLUMN 19 PIC 99 SOURCE TD-YEAR.
|
||
02 COLUMN 22 PIC 99 SOURCE TD-HOUR.
|
||
02 COLUMN 24 PIC X VALUE ':'.
|
||
02 COLUMN 25 PIC 99 SOURCE TD-MIN.
|
||
02 COLUMN 47 PIC X(39) SOURCE WS-SYSTEM-NAME.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(7) VALUE 'Account'.
|
||
02 COLUMN 9 PIC X(39) SOURCE DISK-ACCOUNT-SORT.
|
||
02 COLUMN 54 PIC X(30) VALUE 'TOPS-10 Directory USAGE Report'.
|
||
02 LINE PLUS 1
|
||
COLUMN 48 PIC X(16) VALUE 'USAGE Entries on'.
|
||
02 COLUMN 66 PIC 99 SOURCE WS-START-DD.
|
||
02 COLUMN 68 PIC X VALUE '-'.
|
||
02 COLUMN 69 PIC X(3) SOURCE WS-START-MMM.
|
||
02 COLUMN 72 PIC X VALUE '-'.
|
||
02 COLUMN 73 PIC 99 SOURCE WS-START-YY.
|
||
02 COLUMN 76 PIC 99 SOURCE WS-START-HH.
|
||
02 COLUMN 78 PIC X VALUE ':'.
|
||
02 COLUMN 79 PIC 99 SOURCE WS-START-MIN.
|
||
02 LINE PLUS 2
|
||
COLUMN 43 PIC X(5) VALUE 'Total'.
|
||
02 COLUMN 54 PIC X(4) VALUE 'Disk'.
|
||
02 COLUMN 63 PIC X(6) VALUE 'Number'.
|
||
02 COLUMN 72 PIC X(8) VALUE 'Avg. No.'.
|
||
02 COLUMN 82 PIC X(9) VALUE 'Structure'.
|
||
02 LINE PLUS 1
|
||
COLUMN 12 PIC X(9) VALUE 'Directory'.
|
||
02 COLUMN 42 PIC X(6) VALUE 'Charge'.
|
||
02 COLUMN 54 PIC X(5) VALUE 'Pages'.
|
||
02 COLUMN 62 PIC X(8) VALUE 'of Files'.
|
||
02 COLUMN 72 PIC X(8) VALUE 'of Pages'.
|
||
02 COLUMN 84 PIC X(4) VALUE 'Name'.
|
||
|
||
02 LINE PLUS 1
|
||
COLUMN 12 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 40 PIC X(11) VALUE '-----------'.
|
||
02 COLUMN 52 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 62 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 72 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 82 PIC X(9) VALUE '---------'.
|
||
|
||
|
||
|
||
01 TYPE DETAIL.
|
||
02 PIC $Z(7)9.99 SOURCE CHARGE-SORT.
|
||
02 PIC Z(9) SOURCE DISK-PAGE-SORT.
|
||
02 PIC Z(9) SOURCE FILE-SORT.
|
||
|
||
|
||
01 TYPE CF STRUCTURE-SORT; LINE PLUS 1.
|
||
02 COLUMN 1 PIC X VALUE '['.
|
||
02 COLUMN 2 PIC Z(6) SOURCE DISK-PROJECT-SORT.
|
||
02 COLUMN 8 PIC X VALUE ','.
|
||
02 COLUMN 9 PIC Z(6) SOURCE DISK-PROGRAMMER-SORT.
|
||
02 COLUMN 15 PIC X VALUE ']'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(9) SUM DISK-PAGE-SORT.
|
||
02 COLUMN 62 PIC Z(9) SUM FILE-SORT.
|
||
02 column 72 pic z(7).z source ws-avgPAGE blank when zero.
|
||
02 COLUMN 82 PIC X(7) SOURCE STRUCTURE-SORT.
|
||
|
||
01 TYPE CF DIRECTORY-SORT; LINE PLUS 1; NEXT GROUP IS PLUS 2; USAGE IS DISPLAY-7.
|
||
02 COLUMN 40 PIC X(11) VALUE '-----------'.
|
||
02 COLUMN 52 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 62 PIC X(9) VALUE '---------'.
|
||
02 COLUMN 72 PIC X(9) VALUE '---------'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(30) VALUE
|
||
'* * * Directory Subtotal * * *'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(9) SUM DISK-PAGE-SORT.
|
||
02 COLUMN 62 PIC Z(9) SUM FILE-SORT.
|
||
02 column 72 pic z(7).z sum ws-avgPAGE blank when zero.
|
||
01 TYPE CF DISK-ACCOUNT-SORT LINE PLUS 1; NEXT GROUP NEXT PAGE USAGE IS DISPLAY-7.
|
||
02 COLUMN 40 PIC X(11) VALUE '==========='.
|
||
02 COLUMN 52 PIC X(9) VALUE '========='.
|
||
02 COLUMN 62 PIC X(9) VALUE '========='.
|
||
02 COLUMN 72 PIC X(9) VALUE '========='.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(18) VALUE '* * * Totals * * *'.
|
||
02 COLUMN 39 PIC $Z(7)9.99 SUM CHARGE-SORT.
|
||
02 COLUMN 52 PIC Z(9) SUM DISK-PAGE-SORT.
|
||
02 COLUMN 62 PIC Z(9) SUM FILE-SORT.
|
||
02 column 72 pic z(7).z sum ws-avgPAGE blank when zero.
|
||
02 LINE PLUS 2
|
||
COLUMN 1 PIC X(30) VALUE '******************************'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(15) VALUE '* End of Report'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(30) VALUE '******************************'.
|
||
02 LINE PLUS 1
|
||
COLUMN 1 PIC X(6) VALUE 'Rates:'.
|
||
02 LINE PLUS 1
|
||
COLUMN 5 PIC X(12) VALUE 'Disk Usage ='.
|
||
02 COLUMN 18 PIC $$$.99 SOURCE WS-DISK-PAGES.
|
||
02 COLUMN 24 PIC X(5) VALUE '/Page'.
|
||
|
||
PROCEDURE DIVISION.
|
||
|
||
DISPLAY 'TOPS10 Accounting System'.
|
||
PERFORM GET-CHARGES THRU GET-CHARGES-EXIT.
|
||
MAIN-LOOP.
|
||
MOVE 19 TO WS-END-YY1, WS-START-YY1.
|
||
MOVE TODAY TO THIS-DATE, WS-SDT.
|
||
MOVE ZEROES TO WS-EDT.
|
||
MOVE LETTER-MONTH (TD-MONTH) TO TD-MMM.
|
||
PERFORM ASK-FOR-INPUT-FILE.
|
||
PERFORM ASK-FOR-REPORT.
|
||
PERFORM ASK-FOR-SORT.
|
||
PERFORM ASK-FOR-OUTPUT-FILE.
|
||
PERFORM PROCESS-REPORT.
|
||
GO TO MAIN-LOOP.
|
||
|
||
|
||
************
|
||
|
||
GET-CHARGES.
|
||
OPEN INPUT CHARGE-FILE.
|
||
MOVE ZEROES TO WS-ALL-CHARGES.
|
||
GET-CHARGES-1.
|
||
READ CHARGE-FILE AT END CLOSE CHARGE-FILE
|
||
GO TO GET-CHARGES-EXIT.
|
||
UNSTRING CHARGE-RECORD DELIMITED BY SPACE OR '.' OR '/' OR ALL SPACES
|
||
INTO WS-CHARGE-CODE, WS-DOLLAR, WS-CENTS, WS-COMMENT.
|
||
MOVE WS-DOLLAR TO WS-C1-DOLLAR.
|
||
MOVE WS-CENTS TO WS-C1-CENTS.
|
||
IF WS-CHARGE-CODE = 'SESCON'
|
||
MOVE WS-CHARGE TO WS-SESSION-CONNECT
|
||
ELSE IF WS-CHARGE-CODE = 'SESRUN'
|
||
MOVE WS-CHARGE TO WS-SESSION-RUNTIME
|
||
ELSE IF WS-CHARGE-CODE = 'PAGRUN'
|
||
MOVE WS-CHARGE TO WS-PAGE-RUNTIME
|
||
ELSE IF WS-CHARGE-CODE = 'PAGPAG'
|
||
MOVE WS-CHARGE TO WS-PAGES
|
||
ELSE IF WS-CHARGE-CODE = 'CRDCRD'
|
||
MOVE WS-CHARGE TO WS-CARDS
|
||
ELSE IF WS-CHARGE-CODE = 'CRDRUN'
|
||
MOVE WS-CHARGE TO WS-CARD-RUNTIME
|
||
ELSE IF WS-CHARGE-CODE = 'DSKPAG'
|
||
MOVE WS-CHARGE TO WS-DISK-PAGES.
|
||
GO TO GET-CHARGES-1.
|
||
|
||
GET-CHARGES-EXIT.
|
||
EXIT.
|
||
|
||
ASK-FOR-INPUT-FILE.
|
||
DISPLAY 'Read USAGE file: ' WITH NO ADVANCING.
|
||
ACCEPT WS-COMMAND.
|
||
IF WS-COMMAND = '?' PERFORM DISPLAY-HELP-INPUT
|
||
GO TO ASK-FOR-INPUT-FILE
|
||
ELSE IF WS-COMMAND = 'EXIT' STOP RUN
|
||
ELSE IF WS-COMMAND = SPACES MOVE 'USAGE OUT' TO IN-FILE-NAME-EXT
|
||
ELSE UNSTRING WS-COMMAND DELIMITED BY '.' OR ALL ' ' INTO IN-FILE-NAME,
|
||
IN-FILE-EXT ON OVERFLOW DISPLAY ' Input file error: ', WS-COMMAND
|
||
GO TO ASK-FOR-INPUT-FILE.
|
||
DISPLAY ' Input file name: ' IN-FILE-NAME, '.', IN-FILE-EXT.
|
||
|
||
ASK-FOR-REPORT.
|
||
DISPLAY 'Report by [System usage (S) or Disk usage (D)]: ' WITH NO ADVANCING.
|
||
ACCEPT WS-COMMAND.
|
||
IF WS-COMMAND = '?' PERFORM DISPLAY-HELP-REPORT
|
||
GO TO ASK-FOR-REPORT
|
||
ELSE IF WS-COMMAND = SPACES MOVE 'S' TO WS-REPORT
|
||
ELSE IF WS-COMMAND = 'EXIT' STOP RUN
|
||
ELSE MOVE WS-COMMAND TO WS-REPORT.
|
||
|
||
ASK-FOR-SORT.
|
||
DISPLAY 'Sort by [Name (N) or Account (A)]: ' WITH NO ADVANCING.
|
||
ACCEPT WS-COMMAND.
|
||
IF WS-COMMAND = '?' PERFORM DISPLAY-HELP-SORT
|
||
GO TO ASK-FOR-SORT
|
||
ELSE IF WS-COMMAND = SPACES MOVE 'N' TO WS-SORT
|
||
ELSE IF WS-COMMAND = 'EXIT' STOP RUN
|
||
ELSE MOVE WS-COMMAND TO WS-SORT.
|
||
|
||
ASK-FOR-OUTPUT-FILE.
|
||
DISPLAY 'Write to file: ' WITH NO ADVANCING.
|
||
ACCEPT WS-COMMAND.
|
||
IF WS-COMMAND = '?' PERFORM DISPLAY-HELP-OUTPUT
|
||
GO TO ASK-FOR-OUTPUT-FILE
|
||
ELSE IF WS-COMMAND = SPACES MOVE 'USAGE RPT' TO OUT-FILE-NAME-EXT
|
||
ELSE IF WS-COMMAND = 'EXIT' STOP RUN
|
||
ELSE UNSTRING WS-COMMAND DELIMITED BY '.' OR ALL ' ' INTO OUT-FILE-NAME,
|
||
OUT-FILE-EXT ON OVERFLOW DISPLAY 'Output file error: ', WS-COMMAND
|
||
GO TO ASK-FOR-OUTPUT-FILE.
|
||
DISPLAY ' Output file name: ', OUT-FILE-NAME, '.', OUT-FILE-EXT.
|
||
|
||
PROCESS-REPORT.
|
||
IF WS-REPORT = 'S' AND WS-SORT = 'N' PERFORM REPORT-BY-SYSTEM-USAGE-NAME
|
||
ELSE IF WS-REPORT = 'S' AND WS-SORT = 'A'
|
||
PERFORM REPORT-BY-SYSTEM-USAGE-ACCOUNT
|
||
ELSE IF WS-REPORT = 'D' AND WS-SORT = 'N'
|
||
PERFORM REPORT-BY-DISK-NAME
|
||
ELSE IF WS-REPORT = 'D' AND WS-SORT = 'A'
|
||
PERFORM REPORT-BY-DISK-ACCOUNT.
|
||
|
||
**********************************************************************
|
||
* REPORT BY SYSTEM USAGE SORTED ON NAME SUBROUTINE SECTION
|
||
**********************************************************************
|
||
|
||
|
||
REPORT-BY-SYSTEM-USAGE-NAME.
|
||
SORT SORT-USAGE
|
||
ASCENDING KEY NAME-SORT, PROJECT-PROGRAMMER-SORT, ACCOUNT-SORT, REMARK-SORT
|
||
INPUT PROCEDURE IS REPORT-BY-SYSTEM-NAME-IN THRU REPORT-BY-SYSTEM-NAME-IN-EXIT
|
||
OUTPUT PROCEDURE IS REPORT-BY-SYSTEM-NAME-OUT THRU REPORT-BY-SYSTEM-NAME-OUT-EXIT.
|
||
|
||
***********
|
||
|
||
REPORT-BY-SYSTEM-NAME-IN.
|
||
OPEN INPUT IN-FILE.
|
||
|
||
RBNI-1.
|
||
READ IN-FILE AT END CLOSE IN-FILE GO TO REPORT-BY-SYSTEM-NAME-IN-EXIT.
|
||
MOVE ENTRY-TYPE TO DEFINED-ENTRIES.
|
||
IF KNOWN-ENTRIES
|
||
PERFORM MAKE-SYSTEM-SORT-RECORD.
|
||
GO TO RBNI-1.
|
||
|
||
REPORT-BY-SYSTEM-NAME-IN-EXIT.
|
||
EXIT.
|
||
|
||
**********
|
||
|
||
|
||
REPORT-BY-SYSTEM-NAME-OUT.
|
||
OPEN OUTPUT OUT-FILE.
|
||
INITIATE NAMES.
|
||
MOVE LETTER-MONTH (WS-START-MON) TO WS-START-MMM.
|
||
MOVE LETTER-MONTH (WS-END-MON) TO WS-END-MMM.
|
||
RBNO-1.
|
||
RETURN SORT-USAGE AT END TERMINATE NAMES
|
||
CLOSE OUT-FILE
|
||
GO TO REPORT-BY-SYSTEM-NAME-OUT-EXIT.
|
||
GENERATE NAMES.
|
||
GO TO RBNO-1.
|
||
|
||
REPORT-BY-SYSTEM-NAME-OUT-EXIT.
|
||
EXIT.
|
||
|
||
**********************************************************************
|
||
* END OF REPORT BY SYSTEM USAGE SORTED ON NAME SUBROUTINE SECTION
|
||
**********************************************************************
|
||
**********************************************************************
|
||
* REPORT BY SYSTEM USAGE SORTED ON ACCOUNT SUBROUTINE SECTION
|
||
**********************************************************************
|
||
|
||
REPORT-BY-SYSTEM-USAGE-ACCOUNT.
|
||
SORT SORT-USAGE
|
||
ASCENDING KEY ACCOUNT-SORT, NAME-SORT, PROJECT-PROGRAMMER-SORT, REMARK-SORT
|
||
INPUT PROCEDURE IS REPORT-BY-SACCOUNT-IN THRU
|
||
REPORT-BY-SACCOUNT-IN-EXIT
|
||
OUTPUT PROCEDURE IS REPORT-BY-SACCOUNT-OUT THRU
|
||
REPORT-BY-SACCOUNT-OUT-EXIT.
|
||
|
||
***********
|
||
|
||
REPORT-BY-SACCOUNT-IN.
|
||
OPEN INPUT IN-FILE.
|
||
|
||
RBAI-1.
|
||
READ IN-FILE AT END CLOSE IN-FILE GO TO REPORT-BY-SACCOUNT-IN-EXIT.
|
||
MOVE ENTRY-TYPE TO DEFINED-ENTRIES.
|
||
IF KNOWN-ENTRIES PERFORM MAKE-SYSTEM-SORT-RECORD.
|
||
GO TO RBAI-1.
|
||
|
||
REPORT-BY-SACCOUNT-IN-EXIT.
|
||
EXIT.
|
||
|
||
************
|
||
|
||
REPORT-BY-SACCOUNT-OUT.
|
||
OPEN OUTPUT OUT-FILE.
|
||
INITIATE ACCOUNTS.
|
||
MOVE LETTER-MONTH (WS-START-MON) TO WS-START-MMM.
|
||
MOVE LETTER-MONTH (WS-END-MON) TO WS-END-MMM.
|
||
RBAO-1.
|
||
RETURN SORT-USAGE AT END TERMINATE ACCOUNTS
|
||
CLOSE OUT-FILE
|
||
GO TO REPORT-BY-SACCOUNT-OUT-EXIT.
|
||
GENERATE ACCOUNTS.
|
||
GO TO RBAO-1.
|
||
|
||
REPORT-BY-SACCOUNT-OUT-EXIT.
|
||
EXIT.
|
||
|
||
**********************************************************************
|
||
* END OF REPORT BY SYSTEM USAGE SORTED ON ACCOUNT SUBROUTINE SECTION
|
||
**********************************************************************
|
||
|
||
**********************************************************************
|
||
* COMMON SUBROUTINES USED BY REPORTS OF SYSTEM USAGE
|
||
**********************************************************************
|
||
|
||
MAKE-SYSTEM-SORT-RECORD.
|
||
MOVE SPACES TO SYSTEM-SORT-RECORD.
|
||
IF ENTRY-TYPE = '0002' OR '0003' PERFORM PROCESS-SESSION-ENTRY
|
||
THRU PROCESS-SESSION-ENTRY-EXIT
|
||
ELSE IF ENTRY-TYPE = '0008' PERFORM PROCESS-OUTPUT-SPOOLER
|
||
THRU PROCESS-OUTPUT-SPOOLER-EXIT
|
||
ELSE IF ENTRY-TYPE = '0007' PERFORM PROCESS-INPUT-SPOOLER
|
||
THRU PROCESS-INPUT-SPOOLER-EXIT
|
||
ELSE IF ENTRY-TYPE = '0004' OR '0001' PERFORM PROCESS-HEADER-ENTRY
|
||
THRU PROCESS-HEADER-ENTRY-EXIT.
|
||
|
||
************
|
||
|
||
PROCESS-SESSION-ENTRY.
|
||
IF REC-SEQUENCE-NUMBER = '1' AND ENTRY-TYPE = '0002' OR '0003'
|
||
PERFORM CHECK-RANGE-DATE-TIME
|
||
READ IN-FILE
|
||
AT END CLOSE IN-FILE GO TO PROCESS-SESSION-ENTRY-EXIT.
|
||
IF REC-SEQUENCE-NUMBER = '2' AND ENTRY-TYPE = '0002' OR '0003'
|
||
MOVE SR1-ACCOUNT-STRING TO ACCOUNT-SORT
|
||
MOVE SR1-SESSION-REMARK TO REMARK-SORT
|
||
COMPUTE RUNTIME-SORT ROUNDED = SR1-RUNTIME / 1000
|
||
COMPUTE CONNECT-SORT ROUNDED = SR1-CONSOLE-CONNECT-TIME /3600
|
||
PERFORM COMPUTE-SESSION-CHARGES
|
||
READ IN-FILE AT END CLOSE IN-FILE GO TO PROCESS-SESSION-ENTRY-EXIT.
|
||
IF REC-SEQUENCE-NUMBER = '3' AND ENTRY-TYPE = '0002' OR '0003'
|
||
READ IN-FILE AT END CLOSE IN-FILE GO TO PROCESS-SESSION-ENTRY-EXIT.
|
||
IF REC-SEQUENCE-NUMBER = '4' AND ENTRY-TYPE = '0002' OR '0003'
|
||
MOVE T10-USER-NAME TO NAME-SORT
|
||
MOVE T10-PROJECT-NUMBER TO PROJECT-SORT
|
||
MOVE T10-PROGRAMMER-NUMBER TO PROGRAMMER-SORT
|
||
ELSE DISPLAY 'Incomplete Session entry'.
|
||
IF ACCOUNT-SORT = SPACES
|
||
MOVE ' Unspecified Account' TO ACCOUNT-SORT.
|
||
RELEASE SYSTEM-SORT-RECORD.
|
||
|
||
PROCESS-SESSION-ENTRY-EXIT.
|
||
EXIT.
|
||
|
||
|
||
CHECK-RANGE-DATE-TIME.
|
||
IF WS-END-DATE-TIME < EHR-DATE-TIME
|
||
MOVE EHR-DATE-TIME TO WS-END-DATE-TIME.
|
||
IF WS-START-DATE-TIME > EHR-DATE-TIME
|
||
MOVE EHR-DATE-TIME TO WS-START-DATE-TIME.
|
||
|
||
|
||
COMPUTE-SESSION-CHARGES.
|
||
COMPUTE CHARGE-SORT ROUNDED = CHARGE-SORT + RUNTIME-SORT * WS-SESSION-RUNTIME.
|
||
COMPUTE CHARGE-SORT ROUNDED = CHARGE-SORT + CONNECT-SORT * WS-SESSION-CONNECT.
|
||
|
||
***********
|
||
|
||
***********
|
||
PROCESS-HEADER-ENTRY.
|
||
IF REC-SEQUENCE-NUMBER = '1' AND ENTRY-TYPE = '0004' OR '0001'
|
||
PERFORM CHECK-RANGE-DATE-TIME
|
||
READ IN-FILE AT END
|
||
CLOSE IN-FILE GO TO PROCESS-HEADER-ENTRY-EXIT.
|
||
IF REC-SEQUENCE-NUMBER = '2' AND ENTRY-TYPE = '0004' OR '0001'
|
||
MOVE RR-SYSTEM-NAME TO WS-SYSTEM-NAME.
|
||
|
||
PROCESS-HEADER-ENTRY-EXIT.
|
||
EXIT.
|
||
|
||
************
|
||
|
||
PROCESS-OUTPUT-SPOOLER.
|
||
IF REC-SEQUENCE-NUMBER = '1' AND ENTRY-TYPE = '0008'
|
||
PERFORM CHECK-RANGE-DATE-TIME
|
||
READ IN-FILE
|
||
AT END CLOSE IN-FILE GO TO PROCESS-OUTPUT-SPOOLER-EXIT.
|
||
IF REC-SEQUENCE-NUMBER = '2' AND ENTRY-TYPE = '0008'
|
||
MOVE OSR-ACCOUNT-STRING TO ACCOUNT-SORT
|
||
COMPUTE RUNTIME-SORT ROUNDED = OSR-RUNTIME / 1000
|
||
MOVE OSR-OUTPUT-UNITS TO SPOOLER-OUTPUT-SORT
|
||
PERFORM COMPUTE-OUTPUT-SPOOLER-CHARGES
|
||
MOVE 'Output Spooler Charges' TO REMARK-SORT
|
||
READ IN-FILE AT END CLOSE IN-FILE GO TO PROCESS-OUTPUT-SPOOLER-EXIT.
|
||
IF REC-SEQUENCE-NUMBER = '3' AND ENTRY-TYPE = '0008'
|
||
MOVE T10-USER-NAME TO NAME-SORT
|
||
MOVE T10-PROJECT-NUMBER TO PROJECT-SORT
|
||
MOVE T10-PROGRAMMER-NUMBER TO PROGRAMMER-SORT
|
||
ELSE DISPLAY 'Incomplete output spooler entry'.
|
||
IF ACCOUNT-SORT = SPACES
|
||
MOVE ' Unspecified Account' TO ACCOUNT-SORT.
|
||
RELEASE SYSTEM-SORT-RECORD.
|
||
|
||
PROCESS-OUTPUT-SPOOLER-EXIT.
|
||
EXIT.
|
||
|
||
COMPUTE-OUTPUT-SPOOLER-CHARGES.
|
||
COMPUTE CHARGE-SORT = CHARGE-SORT + SPOOLER-OUTPUT-SORT * WS-PAGES.
|
||
COMPUTE CHARGE-SORT ROUNDED = CHARGE-SORT + RUNTIME-SORT * WS-PAGE-RUNTIME.
|
||
|
||
************
|
||
************
|
||
|
||
PROCESS-INPUT-SPOOLER.
|
||
IF REC-SEQUENCE-NUMBER = '1' AND ENTRY-TYPE = '0007'
|
||
PERFORM CHECK-RANGE-DATE-TIME
|
||
READ IN-FILE
|
||
AT END CLOSE IN-FILE GO TO PROCESS-INPUT-SPOOLER-EXIT.
|
||
IF REC-SEQUENCE-NUMBER = '2' AND ENTRY-TYPE = '0007'
|
||
MOVE ISR-ACCOUNT-STRING TO ACCOUNT-SORT
|
||
COMPUTE RUNTIME-SORT ROUNDED = ISR-RUNTIME / 1000
|
||
MOVE ISR-CARDS-READ TO SPOOLER-INPUT-SORT
|
||
MOVE 'Input Spooler Charges' TO REMARK-SORT
|
||
PERFORM COMPUTE-INPUT-SPOOLER-CHARGES
|
||
READ IN-FILE AT END CLOSE IN-FILE GO TO PROCESS-INPUT-SPOOLER-EXIT.
|
||
IF REC-SEQUENCE-NUMBER = '3' AND ENTRY-TYPE = '0007'
|
||
MOVE T10-USER-NAME TO NAME-SORT
|
||
MOVE T10-PROJECT-NUMBER TO PROJECT-SORT
|
||
MOVE T10-PROGRAMMER-NUMBER TO PROGRAMMER-SORT
|
||
ELSE DISPLAY 'Incomplete input spooler entry'.
|
||
IF ACCOUNT-SORT = SPACES
|
||
MOVE ' Unspecified Account' TO ACCOUNT-SORT.
|
||
RELEASE SYSTEM-SORT-RECORD.
|
||
|
||
PROCESS-INPUT-SPOOLER-EXIT.
|
||
EXIT.
|
||
|
||
COMPUTE-INPUT-SPOOLER-CHARGES.
|
||
COMPUTE CHARGE-SORT = CHARGE-SORT + SPOOLER-INPUT-SORT * WS-CARDS.
|
||
COMPUTE CHARGE-SORT ROUNDED = CHARGE-SORT + RUNTIME-SORT * WS-CARD-RUNTIME.
|
||
|
||
**********************************************************************
|
||
* END OF COMMON SUBROUTINES USED BY REPORTS OF SYSTEM USAGE
|
||
**********************************************************************
|
||
|
||
**********************************************************************
|
||
* REPORT BY DISK USAGE SORTED ON DIRECTORY SUBROUTINE SECTION
|
||
**********************************************************************
|
||
|
||
REPORT-BY-DISK-NAME.
|
||
SORT SORT-USAGE
|
||
ASCENDING KEY DIRECTORY-SORT, DISK-ACCOUNT-SORT, STRUCTURE-SORT
|
||
INPUT PROCEDURE IS REPORT-BY-DISK-NAME-IN THRU
|
||
REPORT-BY-DISK-NAME-IN-EXIT
|
||
OUTPUT PROCEDURE IS REPORT-BY-DISK-NAME-OUT THRU
|
||
REPORT-BY-DISK-NAME-OUT-EXIT.
|
||
|
||
*************
|
||
|
||
REPORT-BY-DISK-NAME-IN.
|
||
OPEN INPUT IN-FILE.
|
||
|
||
RBDNI-1.
|
||
READ IN-FILE AT END CLOSE IN-FILE
|
||
GO TO REPORT-BY-DISK-NAME-IN-EXIT.
|
||
IF ENTRY-TYPE = '0009'
|
||
PERFORM MAKE-DISK-SORT-RECORD
|
||
ELSE IF ENTRY-TYPE = '0001' OR '0004'
|
||
PERFORM PROCESS-HEADER-ENTRY THRU PROCESS-HEADER-ENTRY-EXIT.
|
||
GO TO RBDNI-1.
|
||
|
||
REPORT-BY-DISK-NAME-IN-EXIT.
|
||
EXIT.
|
||
|
||
************
|
||
|
||
REPORT-BY-DISK-NAME-OUT.
|
||
OPEN OUTPUT OUT-FILE.
|
||
INITIATE DNAMES.
|
||
MOVE LETTER-MONTH (WS-START-MON) TO WS-START-MMM.
|
||
MOVE SPACES TO WS-STRUCTURE, WS-DIRECTORY, WS-ACCOUNT.
|
||
MOVE ZEROES TO WS-AVGPAGE, WS-PAGE-NUMBER, WS-RECORDS-READ.
|
||
|
||
RBDNO-1.
|
||
RETURN SORT-USAGE AT END TERMINATE DNAMES
|
||
CLOSE OUT-FILE
|
||
GO TO REPORT-BY-DISK-NAME-OUT-EXIT.
|
||
PERFORM GET-FILE-AVERAGE.
|
||
GENERATE DNAMES.
|
||
GO TO RBDNO-1.
|
||
|
||
REPORT-BY-DISK-NAME-OUT-EXIT.
|
||
EXIT.
|
||
|
||
**********************************************************************
|
||
* END OF REPORT BY DISK USAGE SORTED ON NAME SUBROUTINE SECTION
|
||
**********************************************************************
|
||
|
||
********************************************************************
|
||
* REPORT BY DISK USAGE SORTED ON ACCOUNT SUBROUTINE SECTION
|
||
**********************************************************************
|
||
|
||
REPORT-BY-DISK-ACCOUNT.
|
||
SORT SORT-USAGE
|
||
ASCENDING KEY DISK-ACCOUNT-SORT, DIRECTORY-SORT, STRUCTURE-SORT
|
||
INPUT PROCEDURE IS REPORT-BY-DACCOUNT-IN THRU
|
||
REPORT-BY-DACCOUNT-IN-EXIT
|
||
OUTPUT PROCEDURE IS REPORT-BY-DACCOUNT-OUT THRU
|
||
REPORT-BY-DACCOUNT-OUT-EXIT.
|
||
|
||
*************
|
||
|
||
REPORT-BY-DACCOUNT-IN.
|
||
OPEN INPUT IN-FILE.
|
||
|
||
RBDAI-1.
|
||
READ IN-FILE AT END CLOSE IN-FILE
|
||
GO TO REPORT-BY-DACCOUNT-IN-EXIT.
|
||
IF ENTRY-TYPE = '0009'
|
||
PERFORM MAKE-DISK-SORT-RECORD
|
||
ELSE IF ENTRY-TYPE = '0001' OR '0004'
|
||
PERFORM PROCESS-HEADER-ENTRY THRU PROCESS-HEADER-ENTRY-EXIT.
|
||
GO TO RBDAI-1.
|
||
|
||
REPORT-BY-DACCOUNT-IN-EXIT.
|
||
EXIT.
|
||
|
||
************
|
||
|
||
REPORT-BY-DACCOUNT-OUT.
|
||
OPEN OUTPUT OUT-FILE.
|
||
INITIATE DACCOUNTS.
|
||
MOVE LETTER-MONTH (WS-START-MON) TO WS-START-MMM.
|
||
MOVE SPACES TO WS-STRUCTURE, WS-DIRECTORY, WS-ACCOUNT.
|
||
MOVE ZEROES TO WS-AVGPAGE, WS-PAGE-NUMBER, WS-RECORDS-READ.
|
||
|
||
RBDAO-1.
|
||
RETURN SORT-USAGE AT END TERMINATE DACCOUNTS
|
||
CLOSE OUT-FILE
|
||
GO TO REPORT-BY-DACCOUNT-OUT-EXIT.
|
||
PERFORM GET-FILE-AVERAGE.
|
||
GENERATE DACCOUNTS.
|
||
GO TO RBDAO-1.
|
||
|
||
REPORT-BY-DACCOUNT-OUT-EXIT.
|
||
EXIT.
|
||
|
||
**********************************************************************
|
||
* END OF REPORT BY DISK USAGE SORTED ON ACCOUNT SUBROUTINE SECTION
|
||
**********************************************************************
|
||
|
||
**********************************************************************
|
||
* COMMON SUBROUTINES USED BY REPORTS OF DISK USAGE
|
||
**********************************************************************
|
||
|
||
MAKE-DISK-SORT-RECORD.
|
||
MOVE SPACES TO DISK-SORT-RECORD.
|
||
IF REC-SEQUENCE-NUMBER = '1' AND ENTRY-TYPE = '0009'
|
||
PERFORM CHECK-DISK-DATE-TIME
|
||
READ IN-FILE AT END CLOSE IN-FILE
|
||
ELSE IF REC-SEQUENCE-NUMBER = '2' AND ENTRY-TYPE = '0009'
|
||
READ IN-FILE AT END CLOSE IN-FILE
|
||
ELSE IF REC-SEQUENCE-NUMBER = '3' AND ENTRY-TYPE = '0009'
|
||
MOVE DAR-ACCOUNT-STRING TO DISK-ACCOUNT-SORT
|
||
MOVE DAR-PPN-DIRECTORY TO DIRECTORY-SORT
|
||
MOVE DAR-ACTUAL-DISK TO DISK-PAGE-SORT
|
||
MOVE DAR-FILE-NUMBER TO FILE-SORT
|
||
MOVE DAR-STRUCTURE-NAME TO STRUCTURE-SORT
|
||
PERFORM COMPUTE-DISK-CHARGES
|
||
PERFORM CHECK-FOR-SPACES
|
||
RELEASE DISK-SORT-RECORD.
|
||
|
||
************
|
||
|
||
CHECK-FOR-SPACES.
|
||
IF DISK-ACCOUNT-SORT = SPACES
|
||
MOVE ' UNSPECIFIED ACCOUNT' TO DISK-ACCOUNT-SORT.
|
||
|
||
CHECK-DISK-DATE-TIME.
|
||
IF WS-START-DATE-TIME > EHR-DATE-TIME
|
||
MOVE EHR-DATE-TIME TO WS-START-DATE-TIME.
|
||
|
||
COMPUTE-DISK-CHARGES.
|
||
COMPUTE CHARGE-SORT = CHARGE-SORT + DISK-PAGE-SORT * WS-DISK-PAGES.
|
||
|
||
GET-FILE-AVERAGE.
|
||
IF WS-STRUCTURE NOT = STRUCTURE-SORT
|
||
OR WS-DIRECTORY NOT = DIRECTORY-SORT
|
||
OR WS-ACCOUNT NOT = DISK-ACCOUNT-SORT
|
||
MOVE STRUCTURE-SORT TO WS-STRUCTURE
|
||
MOVE DIRECTORY-SORT TO WS-DIRECTORY
|
||
MOVE DISK-ACCOUNT-SORT TO WS-ACCOUNT
|
||
COMPUTE WS-AVGPAGE ROUNDED = WS-PAGE-NUMBER / WS-RECORDS-READ
|
||
MOVE 1 TO WS-RECORDS-READ
|
||
MOVE DISK-PAGE-SORT TO WS-PAGE-NUMBER
|
||
ELSE ADD 1 TO WS-RECORDS-READ
|
||
ADD DISK-PAGE-SORT TO WS-PAGE-NUMBER.
|
||
|
||
**********************************************************************
|
||
* END OF COMMON SUBROUTINES USED BY REPORTS OF DISK USAGE
|
||
**********************************************************************
|
||
|
||
************************************************************************
|
||
* HELP SUBROUTINES
|
||
************************************************************************
|
||
|
||
DISPLAY-HELP-INPUT.
|
||
DISPLAY 'Type file name of input file containing USAGE entries.'.
|
||
DISPLAY 'Default is USAGE.OUT.'.
|
||
PERFORM DISPLAY-EXIT-HELP.
|
||
|
||
DISPLAY-HELP-OUTPUT.
|
||
DISPLAY 'Type file name of new output file. Default is USAGE.RPT.'.
|
||
PERFORM DISPLAY-EXIT-HELP.
|
||
|
||
DISPLAY-HELP-REPORT.
|
||
DISPLAY 'Type S for system usage report. Type D for disk usage'.
|
||
DISPLAY 'report. Default is S.'.
|
||
PERFORM DISPLAY-EXIT-HELP.
|
||
|
||
|
||
DISPLAY-HELP-SORT.
|
||
DISPLAY 'Type N if reports are broken down by name. Type A if'.
|
||
DISPLAY 'reports are broken down by account. Default is N.'.
|
||
PERFORM DISPLAY-EXIT-HELP.
|
||
|
||
|
||
DISPLAY-EXIT-HELP.
|
||
DISPLAY 'Type EXIT to return to monitor mode. Type ? to get this'.
|
||
DISPLAY 'help message.'.
|