Overview Schemas Index

ISO13584_IEC61360_DICTIONARY_SCHEMA (jsdai.SIso13584_iec61360_dictionary_schema)


FUNCTION string_for_derived_unit
          (u : derived_unit) : STRING;

FUNCTION string_for_derived_unit_element(
        u: derived_unit_element; neg_exp: BOOLEAN
        ): STRING;
        

    
    LOCAL
        result: STRING;
    END_LOCAL;
        
    result := string_for_named_unit(u.unit);
    IF  (u.exponent <> 0) 
    THEN  
        IF  (u.exponent > 0) OR NOT neg_exp 
        THEN
            result := result + '**' + FORMAT(
                ABS(u.exponent), '2I')[2];
        ELSE
            result := result + '**' + FORMAT(u.exponent, '2I')[2];
        END_IF;
    END_IF;
        RETURN(result); 
    END_FUNCTION; -- string_for_derived_unit_element

LOCAL
    pos, neg: SET OF derived_unit_element;
    us: STRING;
END_LOCAL;
    

pos := QUERY(ue <* u.elements | ue.exponent > 0); 
neg := QUERY(ue <* u.elements | ue.exponent < 0); 
us := '';
IF SIZEOF(pos) > 0 THEN
    
    REPEAT  i := LOINDEX(pos) TO  HIINDEX(pos);
        us := us + string_for_derived_unit_element(pos[i], FALSE);
        IF  i <> HIINDEX(pos) 
        THEN
            us := us + '.'; 
        END_IF;
    END_REPEAT;

    IF  SIZEOF(neg) > 0 
    THEN  
        

        us := us + '/';

        IF  SIZEOF(neg) > 1 
        THEN
            us := us + '('; 
        END_IF;

        REPEAT  i := LOINDEX(neg) TO  HIINDEX(neg);
            us := us + string_for_derived_unit_element(
                neg[i], FALSE);
            IF  i <> HIINDEX(neg) 
            THEN  
                us := us + '.'; 
            END_IF;
        END_REPEAT;

        IF  SIZEOF(neg) > 1 
        THEN  
            us := us + ')'; 
        END_IF;
    END_IF;
ELSE 
    
    IF  SIZEOF(neg) > 0 THEN
        REPEAT i := LOINDEX(neg) TO HIINDEX(neg);
            us := us + string_for_derived_unit_element(
                neg[i], TRUE);
            IF i <> HIINDEX(neg) 
            THEN 
                us := us + '.'; 
            END_IF;
        END_REPEAT;
    END_IF;
END_IF;

RETURN(us);

END_FUNCTION; -- string_for_derived_unit

public class FString_for_derived_unit
          public static Value run(SdaiContext _context, Value u)