DEFINE FIELD コマンド
コンセプト情報
Analytics テーブル レイアウトで物理データ フィールドを定義します。
構文
DEFINE FIELD フィールド名 データ型 開始位置 長さ <小数点以下桁数|日付書式> <NDATETIME> <PIC 書式> <AS 表示名> <WIDTH バイト数> <SUPPRESS> <フィールド メモ>
パラメーター
名前 | 説明 | ||||||
---|---|---|---|---|---|---|---|
フィールド名 |
フィールドの名前。 メモ フィールド名は 256 文字までの小文字の英字に制限されます。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。 Analytics には多くの予約キーワードがあり、フィールド名にこのキーワードを使用することはできません。詳細については、予約キーワードを参照してください。 |
||||||
データ型 |
データを解釈するときに使用するデータ型。サポートされるデータ型の一覧については、サポートされているデータ型を参照してください。 たとえば、請求書番号がソース内に数値として格納されているとします。これらの値を数値ではなく、文字列として処理するには、文字データとしてフィールドを定義できます。 |
||||||
開始位置 |
Analytics データ ファイル内のフィールドの開始バイトを指定します。 メモ
Unicode データでは、一般的に、奇数で開始するバイト位置を指定してください。偶数の開始位置を指定すると、文字が正しく表示されない可能性があります。 |
||||||
長さ |
フィールド長のバイト数。 メモ
Unicode データでは、偶数バイトのみを指定します。奇数バイトを指定すると、文字が正しく表示されない可能性があります。 |
||||||
小数位
省略可能 |
数値フィールドの小数点以下の桁数 |
||||||
日付書式
省略可能 |
ソース日付フィールドでの日付書式。 日付時刻フィールドまたは時刻フィールドについては、代わりに PIC 書式を使用します。PIC 書式は、日付フィールドにも使用できます。 ソース データにスラッシュなどの区切り文字が含まれている場合は、 日付書式書式にその区切り文字を含める必要があります。たとえば、ソース データが 12/31/2014 である場合は、書式を MM/DD/YYYY として入力します。日付書式を引用符で囲まないでください。 |
||||||
NDATETIME 省略可能 |
数値フィールドに格納されている日付、日付時刻、または時刻の値を日付時刻データとして扱います。 NDATETIME を使用するには、PIC 書式を使ってソースの日付時刻書式も指定されている必要があります。 |
||||||
PIC 書式 省略可能 |
メモ 数値フィールドまたは日付時刻フィールドにのみ適用されます。
書式は引用符で囲む必要があります。 |
||||||
AS 表示名 省略可能 |
ビューにおけるフィールドの表示名(代替列見出し)。表示名をフィールド名と同じにしたい場合は、AS を使用しないでください。 表示名の値は引用符で囲まれた文字列。列見出しを改行したい場合は、語句の間にセミコロン(;)を入れます。 |
||||||
WIDTH 文字数 省略可能 |
フィールドの表示幅(文字数)。 指定した値によって、Analytics のビューおよびレポートにおけるフィールドの表示幅が決まります。表示幅はデータを変更するものではありませんが、表示幅がフィールド長より短い場合にはデータが隠れる可能性があります。 このため、表示幅にはフィールド名や表示名の長さより短い値を指定しないでください。 WIDTH を省略した場合には、表示幅はフィールド長の文字数に設定されます。 メモ WIDTH で指定する文字数は、固定幅の文字数です。実際の文字の幅に関係なく、各文字には同じ空白量が割り当てられます。 Analytics のビューでは、固定幅の文字間隔と対応しないプロポーショナル フォントがデフォルトで使用されます。 WIDTH の値とビューの文字数との間に 1 対 1 の対応が必要な場合は、[オプション]ダイアログ ボックスの[プロポーショナル フォント]設定を Courier New などの固定幅フォントに変更することができます。 |
||||||
SUPPRESS 省略可能 |
数値フィールドにのみ適用されます。 Analytics レポートの数値フィールドの自動合計を抑制します。 一部の数値フィールドの合計は適切ではありません。たとえば、単価フィールドまたは値引率フィールドです。 |
||||||
フィールドノート 省略可能 |
テーブル レイアウトでフィールド定義に追加するフィールド ノートのテキスト。 フィールドノートは、その他すべての必須およびオプション パラメーターよりも後の、最後に指定する必要があります。テキストは、複数行にすることはできません。引用符は必要ありません。 |
例
文字フィールドの定義
文字フィールド ProdDesc を定義します。ビューでのこの列の見出しは、製品説明 です。
非 Unicode 版 Analytics
- 開始:バイト 12(文字位置 12)
- 長さ:24 バイト(24 文字)
DEFINE FIELD ProdDesc ASCII 12 24 AS "製品説明"
Unicode 版 Analytics、拡張 ASCII (ANSI) データ
- 開始:バイト 12
- 長さ:24 バイト(24 文字)
DEFINE FIELD ProdDesc ASCII 12 24 AS "製品説明"
Unicode 版 Analytics、Unicode データ
- 開始:バイト 13
- 長さ:48 バイト(24 文字)
DEFINE FIELD ProdDesc UNICODE 13 48 AS "製品説明"
数値フィールドの定義
数値フィールド QtyOH を定義します。ビューでは、列は指定された表示書式を使用し、ビューの列見出しは 在庫数です。
- 開始:バイト 61
- 長さ:10 バイト
- 小数点以下桁数:なし
DEFINE FIELD QtyOH NUMERIC 61 10 0 PIC "(9,999,999)" AS "在庫数"
文字データからの日付時刻フィールドの定義
ソース文字データから、以下の最初の 2 つの例は、日付時刻フィールドの取引日を定義します。ソースデータでは、日付形式は DD/MM/YYYY です。列見出しは、指定されていないため、デフォルトでフィールド名になります。
- 開始:バイト 20
- 長さ:10 バイト
ここでは、日付形式 を使用して、日付形式が指定されます。
DEFINE FIELD Transaction_date DATETIME 20 10 DD/MM/YYYY
ここでは、PIC 形式 を使用して、日付形式が指定されます。
DEFINE FIELD Transaction_date DATETIME 20 10 PIC "DD/MM/YYYY"
時刻データを含む日付時刻フィールドを定義するときには、PIC 形式を使用する必要があります。
以下の例は、日付時刻フィールドの電子メール タイムスタンプを定義します。ソースデータでは、日付時刻形式は、YYYY/MM/DD hh:mm:ss-hh:mm です。
- 開始:バイト 1
- 長さ:25 バイト
DEFINE FIELD email_timestamp DATETIME 1 25 PIC "YYYY/MM/DD hh:mm:ss-hh:mm"
数値データからの日付時刻フィールドの定義
次の例では、ソースの数値型データを使用して、そのソース データに指定されている日付書式を持っていて、Receipt_timestamp という日付時刻型フィールドを定義しています。
- 開始:バイト 15
- 長さ:15 バイト
DEFINE FIELD Receipt_timestamp DATETIME 15 15 PIC "YYYYMMDD.hhmmss"
"数値" 日付時刻フィールドの定義
次の例では、ソースの数値型データを使用して、そのソース データに指定されている日付書式を持っていて、Receipt_timestamp という数値型フィールドを定義しています。
次の例では、NDATETIME パラメーターにより、Analytics が、数値フィールドに格納されている日付時刻値を日付時刻データとして扱うことができるようになっています。
- 開始:バイト 15
- 長さ:15 バイト
- 小数点以下桁数:6
DEFINE FIELD Receipt_timestamp PRINT 15 15 6 NDATETIME PIC "YYYYMMDD.hhmmss"
メインフレームのパック データを読み取る物理データ フィールドを定義する
NDATETIME オプションを使用して、パックされた数値フィールドから日付値を読み取る物理データ フィールドを作成できます。
Analytics では、1 桁あたり 1 バイト未満に圧縮された、日付書式でない数値の日付は認識できません。したがって、NDATETIME で数値をアンパックしてすべての桁の数字を取得してから、PIC で日付書式を指定する必要があります。
それぞれの数字と年、月、日の対応を正確に示すには、パック型レコード レイアウトの日付書式と同じものを指定します。
DEFINE FIELD 日付フィールド名 NUMERIC 1 8 0 NDATETIME PIC "YYYYMMDD"
備考
このコマンドの動作の詳細については、物理フィールドの定義を参照してください。
スクリプトを使ってフィールドを上書きする
既存のフィールドと同じ名前を使用するフィールドを定義することによって、テーブル レイアウト内のフィールドを上書きすることができます。SET SAFETY ON を実行した場合は、既存のフィールドを上書きする前に確認ダイアログ ボックスが表示されます。
スクリプトが中断されないようにするには、SET SAFETY OFF を実行します。これにより、追加の確認が行われることなく、既存のフィールドが上書きされます。
サポートされているデータ型
データカテゴリ | データ型 |
---|---|
文字 | ASCII |
CUSTOM | |
EBCDIC | |
NOTE | |
PCASCII | |
UNICODE | |
数値 | ACCPAC |
ACL | |
BASIC | |
BINARY | |
FLOAT | |
HALFBYTE | |
IBMFLOAT | |
MICRO | |
NUMERIC | |
PACKED | |
UNISYS | |
UNSIGNED | |
VAXFLOAT | |
ZONED | |
日付時刻 | DATETIME |
論理 | LOGICAL |