9 96 FORMAT_STRING

LANSA Technical

9.96 FORMAT_STRING

Þ Note: Built-In Function Rules.

This Built-in Function returns a character string which is built from an input Format Pattern. The Format Pattern can consist of text plus field values. Editing options may be applied to the field values.

Special Note: All characters preceded by a colon (:) will be treated as a field name and ends with either one of the following characters () space and colon.

For use with

LANSA for i

YES

Visual LANSA for Windows

YES

Visual LANSA for Linux

YES

 

 

Arguments

No

Type

Req/ Opt

Description

Min Len

Max Len

Min Dec

Max Dec

1

A

Req

Format Pattern

Refer to Technical Notes for pattern syntax and options.

Fields specified as :field

Optional formatting options may be appended to fields. The option/s immediately follow the field name and are enclosed in brackets ().

(editcode,x) apply edit code to field value where x is a valid LANSA editcode. Refer to Standard Field Edit Codes for a list of valid edit codes.

(substr,n1,n2) apply substring to field value where n1=start position, n2=length.
(triml) remove leading blanks from field value.
(trim) remove trailing blanks from field value.
(trimall) remove leading and trailing blanks from field value.
(upper) convert field value to uppercase.
(lower) convert field value to lowercase. 

1

Unlimited

 

 

2

A

Opt

DBCS enable

Default: disable

YES = to enable

Note: For substring, the number count is for each character, not byte.

3

3

 

 

 

 

Return Values

No

Type

Req/ Opt

Description

Min Len

Max Len

Min Dec

Max Dec

1

A

Req

Formatted String

1

unlimited

 

 

2

A

Opt

Return code

OK = action completed

ER = Error occurred

2

2

 

 

 

 

Technical Notes

  • Field names are preceded by a colon (:).
    Example Format Pattern =
    Employee :givename :surname with number :EMPNO was not found.

    Return Formatted String =
    Employee DARREN BROWN with number A0001 was not found.

    when field givename contains the value "DARREN", field surname contains the value "BROWN" and field empno contains the value "A0001"
  • Fields used in the Format Pattern must be used elsewhere in the RDML function.
    Fields may be defined in the repository or internally within the function.
  • To include a colon (:) in the returned Formatted String, use two colons in the input Format pattern.
    Example Format Pattern=
    Employee no:::empno

    Returned Formatted String=
    Employee no:A0001
  • To include a character straight after the field, use brackets().
    Example Format Pattern=
    Employee no:::empno()NoSpace

    Returned Formatted String=
    Employee no:A0001NoSpace
  • Formatting option/s may be applied to a field value and specified in the Format Pattern.
    Multiple options may be applied to a field value.
    Formatting options must immediately follow the field name and be contained within brackets ().

    Example Format Pattern=
    Employee :givename(substr,1,1 UPPER). :SURNAME(trim upper)

    Returned Formatted String=
    Employee D. BROWN
  • When multiple formatting options are specified for a field value, the options are applied in the following order
    1. edit code
    2. substring
    3. trim trailing (trim)
    4. trim leading (triml)
    5. trim all
    6. lower
    7. upper
  • The Edit code formatting option are applied only to numeric fields.
    If an edit code formatting option is specified for a character field, it will be ignored.
  • Edit codes which suppress leading zeroes will remove any resulting leading blanks.

DBCS considerations

Text sections of the Format Pattern may contain DBCS or mixed characters. However the :field specification must be entered in single byte mode. Also any text section must be a complete string with the correct pairing of shift out/ shift in characters.

The substring format option is not DBCS sensitive by default. To enable DBCS, set the second optional argument to 'YES'. Note that the number for the start position and length are in character count, not in byte and the shift in and shift out bytes are not counted.

Example

This example retrieves information from a file and formats different lines into a standard browse list. A variety of formatting options are used to format field values.

FUNCTION   OPTIONS(*DIRECT)                                         
DEFINE     FIELD(#STRING) TYPE(*CHAR) LENGTH(75) COLHDG('Details') INPUT_ATR(LC)
DEFINE     FIELD(#PATERN) TYPE(*CHAR) LENGTH(256) INPUT_ATR(LC)     
DEF_LIST   NAME(#BRWLST) FIELDS((#STRING))                          
**********                                                          
SELECT     FIELDS((#EMPNO) (#GIVENAME) (#SURNAME) (#STARTDTE) (#TERMDATE) (#ADDRESS1) (#ADDRESS2) (#ADDRESS3) (#SALARY) (#POSTCODE)) FROM_FILE(PSLMST)
CHANGE     FIELD(#PATERN) TO('''EMPLOYEE:: :empno :GIVENAME(substr,1,1 upper).:surname(upper trim)''')
EXECUTE    SUBROUTINE(ADDTOBRW)                                     
CHANGE     FIELD(#PATERN) TO('''          Start :startdte(editcode ,Y) Salary $:salary(editcode,J)''')
EXECUTE    SUBROUTINE(ADDTOBRW)                                    
CHANGE     FIELD(#PATERN) TO('''          Address:: :ADDRESS1(trim) :ADDRESS2(TRIM)''')
EXECUTE    SUBROUTINE(ADDTOBRW)                                    
CHANGE     FIELD(#PATERN) TO('''                   :aDDRESS3(trima ll) :postcode(editcode,4)''')
EXECUTE    SUBROUTINE(ADDTOBRW)                                    
ENDSELECT                                                          
**********                                                         
DISPLAY    BROWSELIST(#BRWLST)                                     
RETURN                                                             
********** -------------------------------------------             
SUBROUTINE NAME(ADDTOBRW)                                          
USE        BUILTIN(FORMAT_STRING) WITH_ARGS(#PATERN) TO_GET(#STRING)
ADD_ENTRY  #BRWLST                                                 
ENDROUTINE                                                         .