| 
    
    
    Command | 
    
    
    IF | 
   
  
    | 
    
      | 
    
  | 
   
  
    | 
    Description | 
    
        Compare variables, buffers or text for value or length.  
        If true, do function1, if false do function2 (optional).  
        The ~ operator types can compare text length with another text or a 
        numeric length. 
        When comparing floating point numbers (max 17 decimal places - v47.12) the lowest 
        bit is masked prior to comparison. | 
       
    
    | 
    
      | 
    
  | 
   
  
    | 
    
    Syntax/Parameters | 
    
    IF(Var~Var?Function1:Function2) | 
   
  
    | 
    
      | 
    
  | 
     
  
    | 
    Options | 
    
    
      
        
    
    The operators allowed for numeric 
    values are: 
   =, ==     equal to 
   <>, !=    not equal to 
   <           less 
        than 
   >           greater 
        than 
   <=         less than or 
        equal to 
   >=         greater 
        than or equal to 
   +            sum 
        not equal to zero 
   -            difference 
        not equal to zero 
   *            multiplication 
        not equal to zero 
   /            division 
        not equal to zero 
   %          modulus 
        not equal to zero 
   &           logical 
        AND 
   |            logical 
        OR 
   ^           logical 
        exclusive-OR 
   =-          equal 
        to the negative of 
   &&          Boolean 
        AND 
   ||           Boolean 
        OR | 
        
        
    The operators allowed for text strings 
        are: 
    =, ==              equal to 
    >                    
        greater than 
    <                    
        less than 
    >=                  
        greater than or equal to 
    <=                  
        less than or equal to 
    <>, !=             
        not equal 
    ~=                  
        same text length 
    ~<                   
        text length shorter than 
    ~>                  
        text length longer than 
    ~!                   
        not same text length | 
       
     
    
    
    
    
         
    IF() - Multiple tests - v49.32
            
             
            Support for multiple tests added.
             
             IF( AopB AND CopD OR EopF AND GopH ? funcY : funcN );
             "op" is one of the existing operators (=, !=, > etc). 
             
            Use AND or OR between pairs of comparisons. Comparisons are performed left to right.
             
             
            
    
    
            Entity Exists Test - 
            IF( name # 0 ? fncThen : fncElse ); - v49.47 
            
    
    
            * New operator '#' added to test if 
            entity exists 
            * The result of ‘#’ is 1 for “exists” or 0 for “not exists”. 
            * The result of ‘!#’ is 1 for “not exists” or 0 for “exists”. 
             
            IF( entName # 0 ? fncThen : fncElse ); // entName does not exist: do 
            "fncThen" else do "fncElse" 
            IF( entName # 1 ? fncThen : fncElse ); // entName exists: do "fncThen" 
            else do "fncElse" 
             
            IF( entName !# 1 ? fncThen : fncElse ); // entName does not exist: 
            do "fncThen" else do "fncElse" 
            IF( entName !# 0 ? fncThen : fncElse ); // entName exists: do "fncThen" 
            else do "fncElse" 
             
            Example: 
            IF(varTest#1?[LOAD(RS2,"Y");]:[LOAD(RS2,"N");]); // outputs N 
            IF(varTest!#1?[LOAD(RS2,"Y");]:[LOAD(RS2,"N");]); // outputs Y 
            IF(varTest#0?[LOAD(RS2,"N");]:[LOAD(RS2,"Y");]); // outputs N 
            IF(varTest!#0?[LOAD(RS2,"N");]:[LOAD(RS2,"Y");]); // outputs Y 
            VAR(varTest,0,U8); 
            IF(varTest#1?[LOAD(RS2,"Y");]:[LOAD(RS2,"N");]); // outputs Y 
            IF(varTest!#1?[LOAD(RS2,"Y");]:[LOAD(RS2,"N");]); // outputs N 
            IF(varTest#0?[LOAD(RS2,"N");]:[LOAD(RS2,"Y");]); // outputs Y 
            IF(varTest!#0?[LOAD(RS2,"N");]:[LOAD(RS2,"Y");]); // outputs N 
              | 
   
  
    | 
    
      | 
    
  | 
   
  
    | 
    Example | 
    
        
        
         IF(K0=“L”?HELPFNC);     //single condition 
        IF(HIGHVAL < ACTVAL ? HIGHFUNC : LOWFUNC); 
        IF(STRVAR~>0? SHOWFUNC);   //if STRVAR length > 0 show 
        data 
        IF(STARVAL >= -STARTMP?SHOWSTAR); 
        IF(STARVAL > 0? [ LOAD(vReqd,15); TEXT(txtCurFlr,"15"); RUN(fncGo); 
        ] ); //uses in line code [..] | 
   
  
    | 
    
      | 
    
  | 
   
 
 |