8.76 FORMAT_STRING

この組み込み関数は、入力フォーマット・パターンから文字列を生成して、その文字列を戻します。フォーマット・パターンはテキストおよびフィールド値で構成することができます。編集オプションをフィールド値に適用することもできます。

特記:前にコロン (:) が付いたすべての文字はフィールド名として扱われ、()、スペース、コロンのいずれかの文字で終了します。

 

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

フォーマット・パターン

パターンの構文とオプションについては、「技術上の注記」を参照してください。

フィールドは、:fieldと指定します。

任意のフォーマット・オプションをフィールドに追加することができます。フィールド名の直後にオプションを追加して、括弧 "()" で囲みます。

(editcode,x):フィールド値に編集コードを適用します (x=有効なLANSA編集コード)。有効な編集コードの一覧については、「標準フィールド編集コード」を参照してください。

(substr,n1,n2):フィールド値にサブストリングを適用します(n1=開始位置、n2=長さ)。
(triml):フィールド値から先行のブランクを削除します。
(trim):フィールド値から後続のブランクを削除します。
(trimall):フィールド値から先行のブランクと後続のブランクを削除します。
(upper):フィールド値を大文字に変換します。
(lower):フィールド値を小文字に変換します。

1

無制限

 

 

2

A

任意

DBCS対応

デフォルト:非対応

YES = DBCS対応にする

注:サブストリングの場合、バイト数ではなく文字数でカウントされます。

3

3

 

 

 

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

フォーマット済み文字列

1

無制限

 

 

2

A

任意

戻りコード

OK = アクションが完了した

ER = エラーが発生した

2

2

 

 

 

技術上の注記

DBCSに関する考慮事項

フォーマット・パターンのテキスト部分にはDBCSまたはDBCS混在の文字列を挿入することができます。ただし、:fieldの指定はシングル・バイト・モードで入力する必要があります。また、テキスト部分は、シフト・アウト/シフト・イン文字を正しく組み合わせて完全な文字列にする必要があります。

デフォルトでは、サブストリング・フォーマット・オプションはDBCS対応ではありません。DBCS対応にするには、2番目の任意指定の引数を'YES'に設定します。開始位置と長さは、バイト数ではなく文字数でカウントされ、シフト・イン/シフト・アウト・バイトはカウントされません。

この例では、ファイルから情報を取得して、さまざまな行を標準ブラウズ・リストにフォーマットしています。各種フォーマット・オプションを使ってフィールド値をフォーマットしています。

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                                                         .