演習 1.2: プリミティブ
このチュートリアルの以下のいくつかの演習では、各種の EGL データ・パーツについて説明します。データ・パーツとは、EGL アプリケーションで利用できるデータ構造です。一度データ・パーツを定義すれば、そのデータ・パーツから変数をいくつでも作成することができます。したがって、データ・パーツは変数のモデルのようなものであると考えることもできます。
主なデータ・パーツの型
以下に、よく使用される EGL データ・パーツの型を示し、それぞれについて簡単に説明します。データ・パーツの型は、単純なものから順に記載されています。また、それぞれの型は、より単純なデータ・パーツを基に作成されます。データ・パーツについて詳しくは、ヘルプを参照してください。dataItem およびレコードについては、このチュートリアルの以降の演習で詳しく説明します。
- プリミティブ
- プリミティブは、EGL で最も単純な形式のデータです。プリミティブには以下の 3 つのグループがあります。
- 数値プリミティブ (bin、int、smallint など)。数値が入ります。
- テキスト・プリミティブ (char や string など)。英数字値が入ります。
- 日時プリミティブ (date、interval、timestamp など)。時刻に関する情報が入ります。
- dataItem
- dataItem パーツは、単一のプリミティブまたは他の dataItem を基に作成されるデータ・パーツであり、追加 EGL プロパティーを含みます。dataItem を使用すると、特定の用途のためにアプリケーションのプリミティブをカスタマイズすることができます。例えば、アプリケーションで電話番号を使用する場合には、電話番号を表す dataItem パーツを定義することができます。数値プリミティブを基に電話番号を表す dataItem を作成し、その長さおよびフォーマット・オプションを指定する EGL プロパティーを含めます。
- レコード
- レコード・パーツは、定義済みの構造を持つその他のデータ・パーツのグループです。レコードは、データベース・レコードを表すためによく使用されます。例えば、レコードによって、データベースに保管されているある人 (顧客や従業員など) に関する情報を表すことなどがあります。そのようなレコードには、その人の名前、電話番号、郵送先住所、電子メール・アドレスといった情報を含めることができます。
EGL プリミティブの型
以下に、プリミティブの例と、それらから変数を作成する方法を示します。
- char
- char プリミティブ変数には英数字データが入ります。厳密には char プリミティブ変数に含めることができるのは単一の英数字ですが、分かりやすくするため、EGL では、多数の char プリミティブ変数を、指定数の英数字 (最大 32,767 字) の単一の変数にまとめることができます。例えば、50 文字の英数字が入る myCharVariable という名前の char 変数を作成するには、
次のようにコードを記述します。
myCharVariable char(50);
- int
- int プリミティブ変数には、整数値、つまり、小数桁のない数値が入ります。int プリミティブ変数の値は、-11 億よりも大きく、11 億よりも小さくなければなりません。int 変数を作成するには、例えば、次のようにコードを記述します。
myIntVariable int;
- bin
- bin プリミティブ変数には、2 進数値が入ります。int 変数とは異なり、bin 変数にはセット・サイズがありません。したがって、bin 変数を作成するときには、4、9、または 18 桁のパラメーター長を指定する必要があります。この長さパラメーターは、変数に保管される数値の最大サイズを桁数で指定します。例えば、2 バイトを使用して、4 桁長までの数値が入る bin 変数を作成するには、次のようにコードを記述します。
myBinVariable bin(4);
-
- num
- num プリミティブ変数には、指定数の小数桁を含む数値が入ります。num 変数を作成するときには、小数点以下の合計桁数が最大 31 桁までの、合計長と小数桁数を指定する必要があります。小数第 2 位までの 9 桁の数値を含む num 変数を作成するには、次のようにコードを記述します。この場合、変数には -9,999,999.99 から 9,999,999.99 までの値が入ります。
myNumVariable num(9,2);
num プリミティブは 1 桁につき 1 バイトを使用する形式で保管されますが、int および bin プリミティブは 2 進数形式で保管されます。そのため、num プリミティブの方が、より多くのスペースを必要とします。
- date
- date プリミティブ変数には、特定のカレンダー日付を表す 1 バイトの 8 桁の数値が入ります。それらの 8 桁の数値は yyyyMMdd という形式になります。
- yyyy
- 年を表す 4 桁の数値 (0000 から 9999)。
- MM
- 月を表す 2 桁の数値 (01 から 12)。
- dd
- 日を表す 2 桁の数値 (01 から 31)。
date 変数は妥当性検査されるので、20050230 というような無効な日付が入力されるととエラーとなります。date 変数を作成するには、次のようにコードを記述します。
myDateVariable date;
- time
- time プリミティブ変数には、特定の時刻を表す 1 バイトの 6 桁の数値が入ります。それらの 6 桁の数値は HHmmss という形式になります。
- HH
- 時刻を表す 2 桁の数字。範囲は 00 から 24 までです。
- mm
- 時刻のうちの分を表す 2 桁の数字。範囲は 00 から 59 までです。
- ss
- 分のうちの秒を表す 2 桁の数字。範囲は 00 から 59 までです。
Web ページにおける EGL プリミティブの使用
以下のステップで、プリミティブ変数を使用する基本的な Web ページを作成する方法を示します。これらのステップを始める前に、「チュートリアルの概要」に示す前提条件を満たしていることを確認してください。
- Web パースペクティブが表示されていない場合には、「ウィンドウ」>「パースペクティブを開く」>「Web」をクリックして、Web パースペクティブに切り替える。
- プロジェクト・エクスプローラー・ビューで、「EGLWeb」プロジェクトをクリックして選択する。通常、プロジェクト・エクスプローラー・ビューはワークベンチの左側にあります。プロジェクト・エクスプローラー・ビュー
が表示されていない場合は、「ウィンドウ」> 「ビューの表示」>「プロジェクト・エクスプローラー」をクリックしてください。
ファイルを作成する前にプロジェクトまたはフォルダーを選択しない場合、そのファイルが意図した場所に表示されないことがあります。
- メニュー・バーから「ファイル」>「新規」>「Faces JSP ファイル」をクリックする。新規 Faces JSP ファイル・ウィザードが開きます。
- 「名前」フィールドに次のファイル名を入力する。
PrimitiveTest
- 「ページ・テンプレートから作成」チェック・ボックスを選択する。
- 「次へ」をクリックする。
- 「ページ・テンプレート・タイプ」の下で、「ユーザー定義ページ・テンプレート」をクリックする。
- 「サムネール」の下で「A_gray.htpl」テンプレートをクリックする。
新規 Faces JSP ファイル・ウィザードは次のようになります。

- 「終了」をクリックする。新規ファイルがプロジェクトに追加され、そのファイルがエディターで開きます。
PageHandler におけるプリミティブ変数の作成
- 新規 PrimitiveTest.jsp ページで、デフォルト・テキストの
「Place your page content here.」を削除する。
- 削除したテキストの代わりに、Primitive Variables と入力して、Enter キーを押す。
- ページを右クリックして、「ページ・コードの編集」をクリックする。ページ・コード・ファイルが開き、このページの PageHandler が表示されます。ページ・コード・ファイルは PrimitiveTest.egl という名前で、pagehandlers パッケージ内にあります。
- ページ・コード・ファイル内のすべてのコードを削除して、代わりに以下のコードを入力する。
package pagehandlers;
PageHandler PrimitiveTest
{view="PrimitiveTest.jsp", onPageLoadFunction=onPageLoad}
//Variables
//Variables based on character primitives
myCharVariable char(44);
myMbcharVariable mbchar(44);
myUnicodeVariable unicode(44);
myHexVariable hex(4);
//Variables based on numeric primitives
myIntVariable int;
myBigintVariable bigint;
mySmallintVariable smallint;
myDecimal7_2Variable decimal(7,2);
myNum7_2Variable num(7,2);
//Variables based on datetime primitives
myDateVariable date;
myTimeVariable time;
Function onPageLoad()
myCharVariable = "This is my char variable";
myMbcharVariable = "This is my mbchar variable";
myUnicodeVariable = "This is my unicode variable";
myHexVariable = "012B";
myIntVariable = 1111;
myBigintVariable = 22222222;
mySmallintVariable = 333;
myDecimal7_2Variable = 44.44;
myNum7_2Variable = 555.55;
myDateVariable = "20050101";
myTimeVariable = "010101";
End
Function changeValues();
myCharVariable = "New value for the char variable";
myMbcharVariable = "New value for the mbchar variable";
myUnicodeVariable = "New value for the unicode variable";
myHexVariable = "079F";
myIntVariable = 6666;
myBigintVariable = 77777777;
mySmallintVariable = 888;
myDecimal7_2Variable = 99.99;
myNum7_2Variable = 111.11;
myDateVariable = "20061115";
myTimeVariable = "090909";
End
End
以下は、ここで挿入したコードに関する技術面での注釈です。
- 「Variable」と記述されているセクションでは、それぞれ異なる型のプリミティブを基に 11 の変数が作成されます。
- onPageLoad() 関数は、それぞれの変数を開始値に設定します。この関数はページのロード時に呼び出されます。
- changevalues() 関数は、それぞれの変数を異なる値に設定します。この演習では、後で、この関数をボタンにバインドして、ユーザーが Web ページから変数の値を変更できるようにします。
- ページ・コード・ファイルを保管して閉じる。
ページでの変数の表示
PageHandler で変数が作成されたので、それらを EGL コードまたはページ上で使用することができます。以下のステップでは、変数をページに追加して、そのページをサーバー上でテストします。
- PrimitiveTest.jsp ページに戻る。
- ページ・データ・ビューを開く。
通常、ページ・データ・ビューはワークベンチの左下にあります。ページ・データ・ビューが見つからない場合は、「ウィンドウ」>「ビューの表示」>「ページ・データ」をクリックすると開きます。
- ページ・データ・ビューで、「PrimitiveTest」および「アクション」を展開する。
PrimitiveTest がない場合は、ページを保管して、ページ・データ・ビューを最新表示します。
この Web ページで使用できるデータおよび関数がページ・データ・ビューに表示されます。11 のプリミティブ変数をこのページの PageHandler に追加したので、それらの 11 の変数がページ・データ・ビューの「PrimitiveTest」(PageHandler の名前) の下に表示されます。また、changeValues() という関数も追加したので、その関数がページ・データ・ビューの「アクション」の下に表示されます。ページ・データ・ビューは次のようになります。

- ページ・データ・ビューの「PrimitiveTest」の下に表示されているすべてのプリミティブ変数を選択する。
- 最初の変数をクリックして選択する。
- Shift キーを押しながら最後の変数をクリックして選択する。これで、すべての変数が選択されます。
- すべての変数をページ・データ・ビューからページへドラッグする。「挿入のコントロール」ウィンドウが開きます。
- 「挿入のコントロール」ウィンドウで、「既存レコードの更新」をクリックする。
- 「オプション」をクリックする。「オプション」ウィンドウが開きます。
- 「オプション」ウィンドウで、「削除ボタン」チェック・ボックスをクリアする。
- 「実行ボタン」チェック・ボックスを選択する。
- 実行ボタンの「ラベル」フィールドに Show new values と入力する。
「オプション」ウィンドウは次のようになります。

- 「OK」をクリックする。
- 「終了」をクリックする。変数が、ラベルの付いた 11 の入力フィールドと、「Show new values」というラベルの 1 つの実行ボタンがある表として、ページに表示されます。
- changeValues() 関数をページ・データ・ビューから Web ページの「Show new values」ボタンへ直接ドラッグする。これで、ボタンが関数にバインドされました。ユーザーがボタンをクリックすると、PageHandler 内の changeValues() 関数が呼び出されます。
ページは次のようになります。

- ページを保管する。
- プロジェクト・ナビゲーター・ビューで、PrimitiveTest.jsp ページを右クリックし、ポップアップ・メニューから「実行」>「サーバーで実行」をクリックする。
ワークベンチ内の Web ブラウザーで
Web ページが開きます。 外部の Web ブラウザーを使用したい場合は、ワークベンチ内の
Web ブラウザーから URL をコピーして、その URL を外部ブラウザーの URL バーに
貼り付けることができます。
ページが開いたら、入力フィールドに変数の現行値が表示されていることを確認します。
- ブラウザー (エディターではありません) で Web ページを開き、「Show new values」ボタンをクリックする。
このボタンをクリックすると、changeValues() 関数が呼び出され、変数に新規の値が割り当てられます。入力フィールドに新規の値が表示されるようになります。
以上で、プリミティブ変数を作成および使用する方法に関する学習は終了です。以降の 2 つの演習では、この演習で得た知識を応用して、より複雑な変数およびデータ・パーツを処理します。
これで、「演習 1.3: dataItem」を開始する準備ができました。