Page History
[ |../../index.htm#lansa/format_string.htm]
現在地:
...
9.75 FORMAT_STRING
| Note |
|---|
注意 |
...
: 9.1 |
...
...
この組み込み関数は、入力フォーマット・パターンから文字列を生成して、その文字列を戻します。フォーマット・パターンはテキストおよびフィールド値で構成することができます。編集オプションをフィールド値に適用することもできます。
| Note |
|---|
特記事項:前にコロン (:) が付いたすべての文字はフィールド名として扱われ、()、スペース、コロンのいずれかの文字で終了します。 |
引数
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | フォーマット・パターン |
パターンの構文とオプションについては、「技術上の注記」を参照してください。 フィールドは、: |
fieldと指定します。 任意のフォーマット・オプションをフィールドに追加することができます。フィールド名の直後にオプションを追加して、括弧 "()" |
で囲みます。 (editcode,x):フィールド値に編集コードを適用します (x=有効なLANSA編集コード) |
。有効な編集コードの一覧については、「標準フィールド編集コード |
」を参照してください。 (substr,n1,n2):フィールド値にサブストリングを適用します(n1=開始位置、n2=長さ) |
。 |
:フィールド値から先行のブランクを削除します。 |
:フィールド値から後続のブランクを削除します。 | 1 | 無制限 |
2 | A | 任意 | DBCS対応 |
デフォルト:非対応 YES = |
注:サブストリングの場合、バイト数ではなく文字数でカウントされます。
DBCS対応にする
| 3 | 3 |
戻り値
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | フォーマット済み文字列 | 1 | 無制限 |
2 | A | 任意 | 戻りコード OK = |
アクションが完了した | 2 | 2 |
技術上の注記
- フィールド名の前にはコロン記号 (
を付けます。 (:) を付けます。
フォーマット・パターンの例 =
従業員 :givename :surname の番号 :EMPNO が見つかりませんでした が見つかりませんでした
戻されるフォーマット済み文字列 =
従業員 DARREN BROWN の番号 A0001 が見つかりませんでした が見つかりませんでした
上記は、フィールド givename の値が "DARREN"、フィールド surname の値が "BROWN" 、フィールド empno の値が "A0001" の場合です。 - フォーマット・パターンで使用されるフィールドはRDMLファンクションで使用してはいけません。 フィールドはリポジトリまたはファクション内部で定義することができます。
- 戻されるフォーマット済み文字列でコロン記号 (
を使うには、入力フォーマット・パターンでコロン記号を2個使用します。 (:) を使うには、入力フォーマット・パターンでコロン記号を2個使用します。
フォーマット・パターンの例 =
従業員番号:::empno empno
戻されるフォーマット済み文字列 =
従業員番号:A0001 - フィールド値の直後に文字を含めるには、括弧 "()" を使用します。 を使用します。
フォーマット・パターンの例 =
従業員番号:::empno()NoSpace NoSpace
戻されるフォーマット済み文字列 =
従業員番号:A0001NoSpace - フォーマット・オプションは、フィールド値に適用することもフォーマット・パターンに指定することもできます。 複数オプションを1つのフィールド値に適用することもできます。 フォーマット・オプションはフィールド名の直後に追加して、括弧 "()" の中に入れる必要があります。 の中に入れる必要があります。
フォーマット・パターンの例 =
従業員 :givename(substr,1,1 UPPER).:SURNAME(trim upper)
戻されるフォーマット済み文字列 =
従業員 D. BROWN - フィールド値に複数のフォーマット・オプションを指定する場合、オプションは以下の順序で適用されます。
フィールド値に複数のフォーマット・オプションを指定する場合、オプションは以下の順序で適用されます。 1.- 編集コード (editcode)
- サブストリング (substr)
- 後続の切り捨て (trim)
- 先行の切り捨て (triml)
- 全切り捨て (trimall)
- 小文字 (lower)
- 大文字 (upper)
- 編集コードのフォーマット・オプションは数値フィールドだけに適用されます。 編集コードのフォーマット・オプションが文字列に適用された場合は無視されます。
- 先行のゼロを抑制する編集コードでは、ゼロが削除されてブランクが先行します。
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