*DECK DETAIL
USETEXT TENVIRN 
USETEXT TOPTION 
USETEXT TREPORT 
USETEXT TRPTLST 
USETEXT TXSTD 
      PROC DETAIL;
  
#----------------------------------------------------------------------#
#                                                                      #
#  THE FOLLOWING PROCS ARE XDEF"D WITHIN THIS DECK:                    #
#                                                                      #
#     DTLTAG                       STORE THE *DETAIL* TAG NUMBER       #
#     NODTLTG                      FLAG THE ABSENCE OF A TAG NUMBER    #
#     SONCE                        FLAG THE USE OF THE *ONCE* OPTION   #
#                                                                      #
#----------------------------------------------------------------------#
  
      BEGIN 
  
           DEF COLUMN #XCOLUMN#;
          DEF CURTAB #XTAB#;
  
      XREF ITEM CALLTYP      I;    # CALLTYPE OF THIS REPORT ENTRY     #
      ITEM ENDCOL       I;         # ENDING COLUMN POSITION            #
      XREF BASED ARRAY HEAD;       # TO LOOK AT REPORT HEAD LISTS      #
        BEGIN 
        ITEM HEADL        U(00,03,09);   #                             #
        END 
      XREF ITEM HEADADDR     I; 
      XREF ITEM HEADNDX      I;    # INDEX IN *HEAD* OF MATCHING LEVEL #
                                   # NUMBER, ELSE IT IS ZERO.          #
      XREF ITEM LEVELNB      I; 
      XREF ITEM MAX          I; 
       DEF DFTRPWD #O"40000000000001000000"#;  #DEFAULT VALUE FOR 
                                                REPORTLIST WORD 1,
                                                BEYOND IS ON, 
                                                LINE NB IS 1# 
         DEF DFTRPWD2 #O"04010000000000000000"#;
  
      XREF ITEM SAMELINE     B; 
  
      XREF PROC DIAG;              # ISSUE DIAGNOSTIC MESSAGE TO USER  #
      XREF PROC INIT; 
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
       XDEF PROC DTLTAG;
       PROC DTLTAG; 
       BEGIN
          P<HEAD> = LOC(SELDTLHEAD);
          MAX = MAXSELECT;
          INIT; 
                 #PRESET POINTERS, AND FIND A EMPTY ENTRY FOR THIS
                  DETAIL LINE#
          CALLTYP = 1;
          IF NOT FULLSYNTX THEN STDYES; 
         NONEMPTYRPT = TRUE;                                            004160
          HEADNDX = HEADNDX + 1;   # INCREMENT SINCE SELDTLHEAD STARTS #
                                   # AT [1].                           #
          IF SELTAG[HEADNDX] NQ LEVELNB  # IF THIS ENTRY DOESNT MATCH  #
                                         # THE LEVEL NUMBER            #
          THEN
            BEGIN 
            STDNO;                 # ERROR RETURN.                     #
            END 
  
          DTLFIRST[HEADNDX] = REPORTINDEX;  # SET FIRST POINTER IN HEAD#
          HEADADDR = LOC(DTLWORD[HEADNDX]);  # SAVE LOCATION OF HEAD   #
          STDYES; 
       END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
       XDEF PROC NODTLTG; 
       PROC NODTLTG;
       BEGIN
          CALLTYP = 1;
          IF NOT FULLSYNTX
          THEN
            BEGIN 
            STDYES; 
            END 
  
          P<REPORTLIST> = AREPORTLIST;
          C<8,2>KEYAREA[0] = "0000000000";  # SET DEFAULT LEVEL TO 0 #   FEAT157
          REPORTWORD1[REPORTINDEX] = DFTRPWD; 
          REPORTWORD2[REPORTINDEX] = DFTRPWD2;
          NONEMPTYRPT = TRUE;                                           004180
          IF SELTAG[1] NQ 0 THEN STDNO; 
          DTLFIRST[1] = REPORTINDEX;
          HEADADDR = LOC(DTLWORD[1]); 
          LEVELNB = 0;
          CURTAB =0;
          ENDCOL = TABCOL(1); 
          COLUMN = 1; 
          SAMELINE = FALSE; 
          STDYES; 
       END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
       XDEF PROC SONCE; 
       PROC SONCE;
      BEGIN   ITEM I; 
      I = 0;
      IF NOT FULLSYNTX
      THEN
        BEGIN 
        STDYES; 
        END 
  
      IF  LINEN [REPORTINDEX]  THEN I = 78; 
      IF  NOT BEYOND [REPORTINDEX]  THEN I = 79;
         IF PSSECTION  GR 1  THEN I = 147;
         IF  I EQ 0  THEN BEGIN 
            ONCEFLG = TRUE; 
            ONCE [REPORTINDEX] = TRUE;   END
      IF I EQ 0  THEN STDYES; 
      DIAG (I); 
      STDNO;
          END 
  
  
  
  
#----------------------------------------------------------------------#
  
  
      END 
      TERM
