Skip to content

DO *HIVAL is not working #1

@TorstenKlinge

Description

@TorstenKlinge

in this RPGSRC I have this statement. In Convert2Free I get an NullPointerException

  ******************************************************************                            
 H DEBUG DECEDIT('0,') DFTNAME(MERKEN) DATEDIT(*DMY.)                                           
  ******************************************************************                            
 FCustDSP   CF   E             WORKSTN                                                          
 F                                     SFILE(SFLCUST:RRN1)                                      
 FCustPRT   O    E             PRINTER USROPN                                                   
 FCustLF    UF   E           K DISK                                                             
 D $PGMST         SDS                                                                           
 D  ##PGM                  1     10                                                             
 D  ##USER               254    263                                                             
 DRRN1             S              4  0 INZ                                                      
 DFACTOR           S             12S 6                                                          
  ********************************************************************                          
  *                 Program                                          *                          
  ********************************************************************                          
 C     CustKey       KLIST                                                                      
 C                   KFLD                    ##ID                                               
 C                   EXSR      FIRST                                                            
 C     B0            TAG                                                                        
 C     *NOKEY        CLEAR                   CustFM                                             
 C                   Z-ADD     0             cust_id                                            
 C                   MOVE      '0'           *IN98                                              
 C                   MOVE      '1'           *IN96                                              
 C                   MOVE      '0'           *IN11                                              
 C                   eval      curdate=%DATE                                                    
                                                                                                
 C*    B1            TAG                                                                        
 C                   EXFMT     CustForm                                                         
  *-- F3 -- Program end                                                                         
 C     *INKC         IFEQ      '1'                                                              
 C                   GOTO      END                                                              
 C                   ENDIF                                                                      
  *-- F4 -- SFL with records of customer -- FIRST ONE                                           
 C     *INKD         IFEQ      '1'                                                              
 C                   MOVE      1             cust_id                                            
 C                   EXSR      SFLForCust                                                       
 C     *IN11         IFEQ      '1'                                                              
 C                   Z-ADD     1             cust_id                                            
 C                   EXSR      CustRead                                                         
 C* ****after press ENTER***                                                                    
 C                   EXSR      ChooseRecord                                                     
 C                   ENDIF                                                                      
 C                   ENDIF                                                                      
  *-- F7 -- Next                                                                                
 C     *INKG         IFEQ      '1'                                                              
 C                   READ      CustFM                                 11                        
 C     *IN11         IFEQ      '1'                                                              
 C                   Z-ADD     0             cust_id                                            
 C                   EXSR      CustRead                                                         
 C                   ENDIF                                                                      
 C                   GOTO      B2                                                               
 C                   ENDIF                                                                      
  *-- F8 -- Prior                                                                               
 C     *INKH         IFEQ      '1'                                                              
 C                   READP     CustFM                                 11                        
 C     *IN11         IFEQ      '1'                                                              
 C                   Z-ADD     *HIVAL        cust_id                                            
 C                   EXSR      CustRead                                                         
 C                   ENDIF                                                                      
 C                   GOTO      B2                                                               
 C                   ENDIF                                                                      
 C                   EXSR      CustRead                                                         
 C     B2            TAG                                                                        
 C                   MOVE      '1'           *IN98                                              
 C                   MOVE      '0'           *IN96                                              
 C                   MOVE      '0'           *IN11                                              
 C                   DO        *HIVAL                                                           
 C                   Z-ADD     CUSTID        cust_id                                            
 C                   EXFMT     CustForm                                                         
  *-- F3 -- Program end                                                                         
 C     *INKC         IFEQ      '1'                                                              
 C                   LEAVE                                                                      
 C                   ENDIF                                                                      
  *-- F4 -- SFL with records of customer                                                        
 C     *INKD         IFEQ      '1'                                                              
 C                   EXSR      SFLForCust                                                       
 C     *IN11         IFEQ      '1'                                                              
 C                   EXSR      CustRead                                                         
 C*****After press Enter****                                                                    
 C                   EXSR      ChooseRecord                                                     
 C                   ENDIF                                                                      
 C                   ENDIF                                                                      
  *-- F7 -- Next                                                                                
 C     *INKG         IFEQ      '1'                                                              
 C                   READ      CustFM                                 11                        
 C     *IN11         IFEQ      '1'                                                              
 C                   Z-ADD     0             cust_id                                            
 C                   EXSR      CustRead                                                         
 C                   ENDIF                                                                      
 C                   ITER                                                                       
 C                   ENDIF                                                                      
  *-- F8 -- Prior                                                                               
 C     *INKH         IFEQ      '1'                                                              
 C                   READP     CustFM                                 11                        
 C     *IN11         IFEQ      '1'                                                              
 C                   Z-ADD     *HIVAL        cust_id                                            
 C                   EXSR      CustRead                                                         
 C                   ENDIF                                                                      
 C                   ITER                                                                       
 C                   ENDIF                                                                      
  *-- F5 -- Save                                                                                
 C     *INKE         IFEQ      '1'                                                              
 C                   UPDATE    CustFM                                                           
 C                   LEAVE                                                                      
 C                   ENDIF                                                                      
  *-- F6 -- window with Turnover in euro                                                        
 C     *INKF         IFEQ      '1'                                                              
 C                   EXSR      TurnEURO                                                         
 C                   ENDIF                                                                      
  *-- F9 -- Print                                                                               
 C     *INKI         IFEQ      '1'                                                              
 C                   OPEN      CustPrt                                                          
 C                   WRITE     CustPr                                                           
 C                   CLOSE     CustPrt                                                          
 C                   ENDIF                                                                      
  *-- F10 -- WRKSPLF                                                                            
 C     *INKJ         IFEQ      '1'                                                              
 C                   MOVEL     'WRKSPLF'     CMDNAM           80                                
 C                   Z-ADD     7             CMDLEN           15 5                              
 C                   CALL      'QCMDEXC'                                                        
 C                   PARM                    CMDNAM                                             
 C                   PARM                    CMDLEN                                             
 C                   ENDIF                                                                      
 C                   ENDDO                                                                      
 C     *INKC         IFEQ      '0'                                                              
 C                   GOTO      B0                                                               
 C                   ENDIF                                                                      
 C     END           TAG                                                                        
 C                   MOVE      '1'           *INLR                                              
  *====================================================*                                        
  *  CustRead                                                                                   
  *====================================================*                                        
  *                                                                                             
 C     CustRead      BEGSR                                                                      
 C     CustRead1     TAG                                                                        
 C     CustKey       SETLL     CustFM                                                           
  *                                                                                             
 C     ##ID          IFEQ      *HIVAL                                                           
 C                   READP     CustFM                                 11                        
 C                   ELSE                                                                       
 C                   READ      CustFM                                 11                        
 C     *IN11         IFEQ      '1'                                                              
 C                   MOVE      *ZEROS        cust_id                                            
 C                   GOTO      CustRead1                                                        
 C                   ENDIF                                                                      
  *                                                                                             
 C                   ENDIF                                                                      
 C                   ENDSR                                                                      
  *====================================================*                                        
  *  FIRST  --                                         *                                        
  *====================================================*                                        
  *                                                                                             
 C     FIRST         BEGSR                                                                      
 c                   z-add     12            cust_id                                            
 C                   ENDSR                                                                      
  *====================================================*                                        
  *  SFLForCust -- Subfile with records of Customer                                             
  *====================================================*                                        
 C     SFLForCust    BEGSR                                                                      
 C*    *INKD         IFEQ      '1'                                                              
  * *** CLEAR the subfile ***                                                                   
 C                   EVAL      RRN1=0                                                           
 C                   CLEAR                   CODE                                               
 C                   SETON                                        31                            
 C                   WRITE     CTLCUST                                                          
 C                   SETOFF                                       31                            
  * *** POPULATE the subfile ***                                                                
 C     CustKey       CHAIN     CustLF                                                           
 C                   READ      CUSTFM                                 11                        
 C                   EXSR      CustRead                                                         
 C                   DOW       (NOT *IN11)                                                      
 C                   EVAL      RRN1=RRN1+1                                                      
 C                   WRITE     SFLCUST                                                          
 C                   READ      CUSTFM                                 11                        
 C                   IF        RRN1=50                                                          
 C                   EVAL      *IN11=*ON                                                        
 C                   EVAL      *IN50=*ON                                                        
 C                   MOVE      ##ID          CustID                                             
 C                   EndIf                                                                      
 C                   ENDDO                                                                      
  * *** DISPLAY the subfile ***                                                                 
 C                   SETOFF                                       32                            
 C                   WRITE     NAVIGATION                                                       
 C                   EXFMT     CTLCUST                                                          
 C                   ENDSR                                                                      
  *=========================================================================*                   
  * TurnEURO -- Conversion of turnover in dollar to euro                                        
  *=========================================================================*                   
 C     TurnEURO      BEGSR                                                                      
 C                   CLEAR                   FACTOR                                             
 C                   CLEAR                   TURNRES                                            
 C     TURNOV        MULT      10            FACTOR                                             
 C     FACTOR        DIV       12            FACTOR                                             
 C                   ADD       FACTOR        TURNRES                                            
 C                   EXFMT     TURNFORM                                                         
 C                   ENDSR                                                                      
  *==========================================================================*                  
  * ChooseRecord -- Choosing record from subfile with records of customer                       
  *==========================================================================*                  
 C     ChooseRecord  BEGSR                                                                      
 C                   EVAL      *IN96=*OFF                                                       
 C                   READC     SFLCUST                                11                        
 C                   DOW       (NOT *IN11)                                                      
 C                   SELECT                                                                     
 C                   WHEN      (CODE>*BLANKS)                                                   
 C     CustID        CHAIN     CustLF                                                           
 C                   MOVE      CustID        cust_id                                            
 C                   EVAL      *IN11=*ON                                                        
 C                   ENDSL                                                                      
 C                   LEAVE                                                                      
 C                   ENDDO                                                                      
 C                   ENDSR                                                                      

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions