*DECK VALUECL 
USETEXT DNTEXT
USETEXT RPTEXT
PROC VALUECL; 
          BEGIN 
  
          #VALUE CLAUSE  ROUTINE# 
          #*# 
          #THIS ROUTINE#
          #- CHECKS THE VALIDITY OF THE IMPLICIT MOVE STATEMENT#
          #SPECIFIED BY ANY VALUE CLAUSE IN THIS REPORT GROUP. #
          #(LITERAL SPECIFIES THE SENDING ITEM OF THE IMPLICIT #
          #MOVE STATEMENT THAT THE RWCS WILL EXECUTE TO MOVE# 
          #LITERAL TO THE PRINTABLE ITEM WHEN IT FORMATS THE# 
          #PRINT LINES OF A REPORT GROUP JUST PRIOR TO# 
          #PRESENTING THE REPORT GROUP.)# 
  
          ITEM   AUXINDEX,
                 RGDNATPTR, 
                 VSENDINGFELD;
  
          XREF   FUNC         MOVECHK     I;
  
  
          ITEM   $TEMP$,
                $DUMMY$;
  
          XREF   PROC         INTERCEPT;
          XREF   FUNC         PLTCNVRT I; 
          XREF   PROC         RWSET    ;
          XREF   PROC         RWSET1   ;
          XREF   PROC         GETNEXT  ;
          XREF   FUNC         RP$AUXPTR;
          XREF   FUNC         RWGET    ;
          XREF   FUNC         RWGET1   ;
  
          DEF    GET          #GETFIELD#; 
          DEF    SET          #SETFIELD#; 
          DEF    GETQ         #GETQUICK#; 
  
*CALL RPCOMM
*CALL DNATVALS
*CALL GETSET
*CALL TABLNAMES 
          CONTROL EJECT;
  
  
  
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  # * #   EPTRACE("VALUECL")                                       # * #
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  
          IF FIRSTF3OR4DE EQ 0 THEN 
              GOTO ENDVALCL;
          FOR RGDNATPTR = FIRSTF3OR4DE STEP 1 UNTIL LASTRGDNAT DO 
              BEGIN 
              AUXINDEX = RP$AUXPTR(RGDNATPTR);
              IF RWGET(RAVALUEBIT,AUXINDEX) EQ 1
              THEN
                  BEGIN 
                  VSENDINGFELD = RWGET(RAVALULITPLT,AUXINDEX + 1);
                  IF MOVECHK    (2,VSENDINGFELD,RGDNATPTR)
                      NQ 1
                  THEN
                      BEGIN 
                      ANALONLYRGRP = 1; 
                      IF GETQ(DN$TYPE,DNAT$,RGDNATPTR) NQ ERRTYPE 
                      THEN
                          CALLDDIAG(RGDNATPTR,104); 
                      END 
  
              #DIAGNOSTIC#
              #ACCORDING TO THE RULES OF THE MOVE STATEMENT  RWCS CANOT#
              #LEGALLY EXECUTE THE IMPLIED MOVE, SPECIFIED BY THE VALUE#
              #CLAUSE, OF THE LITERAL TO THE PRINTABLE ITEM. THE LIT# 
              #OR THE PICTURE CLAUSE MUST BE CHANGED.#
              #THE FOLLOWING IS TO ACCOMODATE RULE 6 43 4B WHICH# 
              #STATES THAT EDITING CHARS IN THE PICTURE HAVE NO EFFECT# 
              #ON INITIALIZATION OF DATA ITEMS, AND THUS THE FOLLOWING# 
              #CODE FORCES THE ITEM TO BE HANDLED AS A VALUE CLAUSE#
              #RATHER THAN AS  A MOVE WHICH RWCS WILL GENERATE# 
                  $TEMP$ = GETQ(DN$TYPE,DNAT$,RGDNATPTR); 
                  IF $TEMP$ EQ ALPHEDIT  OR 
                      $TEMP$ EQ ALPHNUMED  OR 
                      $TEMP$ EQ NUMERICEDIT 
                  THEN
                      SET(DN$TYPE,DNAT$,RGDNATPTR,ALPHNUM); 
                  END 
              END 
ENDVALCL: 
  
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  # * #   EXTRACE("VALUECL")                                       # * #
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  
          END #VALUECL# 
          TERM
