コード・テーブル設定の高度なオプション
複数言語データ
複数言語アプリケーションには複数言語のテーブル・データが必要です。このような状況では、1つのコードに複数の記述があることは普通で、言語ごとに違うコードのセットがある場合もあります。コード・テーブル・システムは、言語対コードのレコードを1つ持つことで、これを扱います。
VF_TITLEテーブルのテーブル・データを考えてみます。
Code |
Language |
Full Title |
MR |
ENG |
Mr. |
MR |
DEU |
Herr. |
MRS |
ENG |
Mrs. |
MRS |
DEU |
Frau. |
MISS |
ENG |
Miss. |
MISS |
DEU |
Frl. |
(テーブル定義タブの)言語フィールドのパラメータで、どのキー・フィールドが言語コード・フィールドになるかを指定します(この場合フィールド名は"language"です)。
実行時のみ、テーブル・エントリーはユーザーにとって正しい言語コードで表示されます。
多言語テーブル・データが必要でないとき、言語フィールドの値を言語フィールドでない - 単一言語テーブルデータに設定します。この場合、すべてのテーブル・エントリーが実行時に表示されます。
区画が多言語だからといって、テーブルが必ずしも多言語である必要はありません。
順序付け
コード・テーブルのビジュアライゼーションタブで、実行時にエンド・ユーザーに表示されるテーブル・エントリーの順序をどのテーブル・フィールドで順序付けをするかを指定できます。
記述フィールドの選択
コード・テーブルのビジュアライゼーションタブで、実行時にエンド・ユーザーに表示されるテーブル・エントリーのキャプションをどのテーブル・フィールドで使用するか指定できます。
データ・ハンドラーファンクションの作成
作成したテーブルはデフォルトのテーブル・データ・ハンドラーを共有することができますし、またファンクションを作ることもできます。テーブル・データ・ハンドラーを作成する最も簡単な方法は、以下のサンプルファンクションをコピーすることです。
組み込み標準テーブル・データ・ファイル(FPTAB)の中のデータが保存されたテーブルは、デフォルトのテーブル・データ・ハンドラーUF_SYSBR/UFU0010を共有するか、その独自のバージョンを所有しています。
アプリケーションの物理ファイルの中のデータが保存されたテーブルは、テーブル・データ・ハンドラーファンクションを作成することができます。例として、データ・ハンドラーファンクションUF_SYSBR/UFU0011を参照してください。このファンクションは、テーブルDEPTABのファイルDEPTABにデータを読み書きします。
データがテーブル・データ・ハンドラーファンクションのハード・コーディングによって提供されるテーブルは、テーブル・データ・ハンドラーファンクションを作成することができます。このタイプのデータ・ハンドラーの例として、データ・ハンドラーファンクションUF_SYSBR/UFU0012を参照してください。ここでは、SEX テーブルのデータが提供されます。
エンド・ユーザーがWindowsフレームワークを実行していて、フラット・ファイルにアクセスする場合は、テーブルはUF_SYSBR/UFU0013に似たテーブル・データ・ハンドラーファンクションを使ってフラット・ファイルからもデータを取得できます。
テーブル・データ・ハンドラーファンクションはデータ更新を許可する場合と許可しない場合のどちらもあります。UFU0012およびUFU0013は、テーブル・データを供給するが編集したテーブル・データは保存しないテーブル・データ・ハンドラーファンクションの例です。
読み取り専用テーブル
このテーブル・プロパティはテーブル定義タブで設定されます。
テーブル・データ・ハンドラーがデータを保存したり更新したりできない場合、テーブルを読み取り専用にするのは有益です。読み取り専用オプションは、完全なデータ・セットを追加および保存して、設計者が今後管理者にデータを修正させたくないテーブルにも使用できるオプションです。
テーブル項目インジケータを非アクティブにする
環境によっては、アクティブなテーブル項目なのか、あるいは履歴データにだけ存在する非アクティブなテーブル項目なのかを区別できると便利です。非アクティブなテーブル項目は履歴データを正しく表示するためだけに存在しており、新しくデータを作成する際には使用できません。
テーブル項目に非アクティブのフラグを立てる場合は、非アクティブであることを保持する(文字型1文字の)フィールドを作成し、非アクティブテーブル登録インジケータのドロップダウン・リストでそのフィールドを選択します。