DEFINE FIELD コマンド

コンセプト情報

物理フィールドの定義

Analytics テーブル レイアウトで物理データ フィールドを定義します。

構文

DEFINE FIELD フィールド名 データ型 開始位置 長さ <小数点以下桁数|日付書式> <NDATETIME> <PIC 書式> <AS 表示名> <WIDTH バイト数> <SUPPRESS> <フィールド メモ>

パラメーター

名前 説明
フィールド名

フィールドの名前。

メモ

フィールド名は 256 文字までの小文字の英字に制限されます。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。

Analytics には多くの予約キーワードがあり、フィールド名にこのキーワードを使用することはできません。詳細については、予約キーワードを参照してください。

データ型

データを解釈するときに使用するデータ型。サポートされるデータ型の一覧については、サポートされているデータ型を参照してください。

たとえば、請求書番号がソース内に数値として格納されているとします。これらの値を数値ではなく、文字列として処理するには、文字データとしてフィールドを定義できます。

開始位置

Analytics データ ファイル内のフィールドの開始バイトを指定します。

メモ

非 Unicode 版 Analytics 1 バイト = 1 文字
Unicode 版 Analytics、拡張 ASCII (ANSI) データ 1 バイト = 1 文字
Unicode 版 Analytics、Unicode データ 2 バイト = 1 文字

Unicode データでは、一般的に、奇数で開始するバイト位置を指定してください。偶数の開始位置を指定すると、文字が正しく表示されない可能性があります。

長さ

フィールド長のバイト数。

メモ

非 Unicode 版 Analytics 1 バイト = 1 文字
Unicode 版 Analytics、拡張 ASCII (ANSI) データ 1 バイト = 1 文字
Unicode 版 Analytics、Unicode データ 2 バイト = 1 文字

Unicode データでは、偶数バイトのみを指定します。奇数バイトを指定すると、文字が正しく表示されない可能性があります。

小数位

省略可能

数値フィールドの小数点以下の桁数

日付書式

省略可能

ソース日付フィールドでの日付書式。

日付時刻フィールドまたは時刻フィールドについては、代わりに PIC 書式を使用します。PIC 書式は、日付フィールドにも使用できます。

ソース データにスラッシュなどの区切り文字が含まれている場合は、 日付書式書式にその区切り文字を含める必要があります。たとえば、ソース データが 12/31/2014 である場合は、書式を MM/DD/YYYY として入力します。日付書式を引用符で囲まないでください。

NDATETIME

省略可能

数値フィールドに格納されている日付、日付時刻、または時刻の値を日付時刻データとして扱います。

NDATETIME を使用するには、PIC 書式を使ってソースの日付時刻書式も指定されている必要があります。

PIC 書式

省略可能

メモ

数値フィールドまたは日付時刻フィールドにのみ適用されます。

  • 数値フィールド Analytics のビューとレポートに含まれる数値の表示形式。
  • 日付時刻フィールドソース データの日付時刻値の物理形式(日付時刻文字、区切り文字の順など)

    メモ

    日付時刻フィールドの場合、形式はソース データの物理形式と正確に一致する必要があります。たとえば、ソース データが 12/31/2014 である場合は、書式を "MM/DD/YYYY" として入力します。

書式は引用符で囲む必要があります。

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
PRINT
UNISYS
UNSIGNED
VAXFLOAT
ZONED
日付時刻 DATETIME
論理 LOGICAL