Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Oracle Designer利用ガイド
第二版
2
目次
1 まずは実行 ................................................................................................................................................................ 31.1 環境の設定...................................................................................................................................................... 3
1.1.1 Oracle Developer のインストール..................................................................................................... 31.1.2 Oracle のインストール........................................................................................................................ 31.1.3 Oracle Designer のインストール....................................................................................................... 41.1.4 リポジトリの作成............................................................................................................................... 41.1.5 リスナーの設定 ................................................................................................................................ 51.1.6 リポジトリ・ユーザーの設定(推奨)............................................................................................... 5
1.2 実行.................................................................................................................................................................. 6
1.2.1 アプリケーション・システムの作成................................................................................................. 61.3 データベース設計 ........................................................................................................................................... 7
1.3.1 「データベースからサーバー・モデルのキャプチャ」ユーティリティ......................................... 71.3.2 ダイアグラムの表示.......................................................................................................................... 81.3.3 表の作成........................................................................................................................................... 91.3.4 定義情報の変更 - SALGRADE表への変更......................................................................... 101.3.5 定義情報の変更 - EMP 表への変更 ...................................................................................... 101.3.6 サーバー・ジェネレータ................................................................................................................. 111.3.7 表領域、ストレージ句、権限の設定......................................................................................... 14
1.4 モジュールの作成 ......................................................................................................................................... 15
1.4.1 モジュール作成ウィザード............................................................................................................ 161.4.2 モジュール・コンポーネント・データ・ウィザード.......................................................................... 161.4.3 モジュール・コンポーネント画面ウィザード................................................................................ 171.4.4 モジュール・コンポーネントの追加(ディテール・ブロック)...................................................... 181.4.5 参照表の追加 ............................................................................................................................... 191.4.6 レイアウト設計................................................................................................................................ 20
1.5 Form ジェネレータの実行.............................................................................................................................. 20
1.5.1 Formジェネレータのオプション設定 ............................................................................................ 201.5.2 コード生成と実行 .......................................................................................................................... 21
2 Form ジェネレータ.................................................................................................................................................... 232.1 概要................................................................................................................................................................ 23
2.2 ジェネレータの仕組み................................................................................................................................... 24
2.2.1 モジュール・デザイン(ユニバーサル・デザイン)....................................................................... 252.2.2 ロジック............................................................................................................................................. 252.2.3 テンプレートファイル(fmb)/連結ライブラリ(pll)...................................................................... 252.2.4 オブジェクト・ライブラリ................................................................................................................... 252.2.5 作業環境設定 ............................................................................................................................... 28
3 アプリケーション設計テクニック............................................................................................................................ 303.1 アプリケーション設計の例 ............................................................................................................................. 30
3.1.1 初級編 - 単純なフォーム画面................................................................................................. 303.1.2 中級編 ............................................................................................................................................. 33
4 追加資料 ................................................................................................................................................................. 364.1 作業環境設定の例 ........................................................................................................................................ 36
3
1 まずは実行
ジェネレータの仕組み等の話の前に、とりあえず、ジェネレータを体感しましょう。Oracle データベースにデ
フォルトで用意されているSCOTT ユーザーの所有するEMP 表、DEPT 表などを使って簡単なForm アプ
リケーションを作成します。
1.1 環境の設定
ここでは、オラクル製品が何もインストールされていない Windows NT4.0 マシンを対象として、
Oracle Designer が実行できる環境を設定する手順を簡単にご紹介します。具体的には以下の作
業をおこないます。
• Oracle Developer のインストール
• Oracle データベースのインストール
• Oracle Designer のインストール
• リポジトリの作成およびリポジトリでの設定
自分の環境に既にOracle Developer や Oracle データベースがインストールされている場合は、そ
の工程は読み飛ばしていただいてかまいませんが、それぞれの工程での注意事項をもう一度ご確
認いただくことをお勧めします。
1.1.1 Oracle Developer のインストールOracle Developer のインストールは、CD-ROM から通常どおりの手順でおこないます。既にご
自分の環境にOracle Developer がインストールされている場合は、ここは読み飛ばしてかま
いませんが、以下の注意事項だけはご確認ください。
インストールするOracle Developer のバージョンは、共に使用するOracle Designer のバージ
ョンに大きく依存します。これは両製品が、共に共通のライブラリやモジュールを利用してい
るためです。
使用する Oracle Designer のバージョン R2.1.1 R2.1.2 R6.0
対応する Oracle Developer のバージョン R2.1R2.1 +Oct 28パッチ
R6.0
※ 上記表にあるように、Oracle Designer R2.1.2 との完全な動作保証がなされている
Oracle Developer は、R2.1 製品版に Oct 28 パッチを適用した環境です。ただし、このパッチを適用していない環境でもほとんどの機能は動作しますので、簡単な機能の確認をおこなうことは可能です。
なお、Oct 28 パッチは Oracle Developer のサポート契約を結ばれている場合、無償提供されます。
ご自分でお使いの Oracle Designer のバージョンに対応した Oracle Developer をインストール
してください(既にインストールされている場合は、対応しているかどうか、もう一度ご確認くだ
さい)。
1.1.2 Oracle のインストールOracle Designer の中核であるリポジトリを格納するためのデータベースをインストールします。
通常、CD-ROM からOracle データベースをインストールした場合、インストール工程の途中
4
で「初期データベースの構成」を選択できます。
図 1-1 Oracle データベースのインストール時に現れる構成選択のダイアログ
ここで「標準構成」を選択すると、ORCLというインスタンス名のデータベースが作成されます。
また、この後の「1.1.4 リポジトリの作成」で紹介する Pre-Configured リポジトリをインストールし
た場合、もう一つ、D704(R2.1.1 では D703)というインスタンス名のデータベースが作成されま
す(したがって、この場合、2 つのデータベース・インスタンスが起動することになります)。この
ような状況が好ましくない場合は、以下のどちらかを選択できます。
A. CD-ROM からの Oracle データベースのインストール時に「初期データベースの構成」
に「なし」を選択する(これによって、ORCL インスタンスは作成されません)。
B. Pre-Configured リポジトリを使わずに、手動でリポジトリを作成する(この場合、ORCLインスタンス上にリポジトリを作成できます)。
ただし、それぞれ以下の点にご注意ください。
Aの場合... Pre-Configured リポジトリをインストールすることで作成されるD704 インスタン
スには、この後に利用するSCOTT ユーザーおよびその所有する表は作成されてい
ません。したがって、別のデータベースの SCOTT ユーザーを利用する必要がありま
す。
Bの場合... 手動でリポジトリを作成するためには、ある程度のデータベースの知識が要
求されます。
なお、Pre-Configured リポジトリは、サポートされるOracle データベースのバージョンおよびグ
レードが限定されます。これについては「1.1.4 リポジトリの作成」を参照ください。
1.1.3 Oracle Designer のインストールOracle Designer のインストールは、CD-ROM から通常どおりの手順でおこないます。
1.1.4 リポジトリの作成
Oracle Designer は常にリポジトリとアクセスするツールです。逆に言えば、リポジトリがないと
何も操作することができません。このリポジトリは Oracle データベース上に作成します。
新規にリポジトリをインストールする場合、次の2 つの選択肢があります。
・ 新規のデータベースとして Pre-Configured リポジトリをインストールする・ 既存のデータベースにリポジトリをインストールする
Pre-Configured リポジトリは、CD-ROM から通常のオラクル製品と同様にインストールできます。
このインストールは最小限の設定で短時間におこなわれます。ただし、データベース名とリポ
ジトリ所有者が事前に定義されているため、このオプションに対しては既存のデータベース
5
は使えません。表領域のサイズとパーティション化も事前に定義されていますが、インストー
ル後に変更できます。
既存のデータベース上にインストールする場合は、ユーザーの設定がより多く必要になりま
すが、ユーザーが制御できる許容範囲も大きくなります。
なお、Pre-Configured リポジトリは、あらかじめデータベース構成が行われているため、サポー
トされるデータベースが以下のように限定されます。
• R2.1.1 の Pre-Configured リポジトリ :Oracle8 Enterprise Edition 8.0.4 以上
• R2.1.2 の Pre-Configured リポジトリ :Oracle8 Enterprise Edition 8.0.4 以上
• R6.0 の Pre-Configured リポジトリ :Oracle8 Enterprise Edition 8.0.5 以上
また、Pre-Configured リポジトリをインストールした場合にはリスナーの設定も必要です。Pre-Configured リポジトリのインストールおよびその後の設定に関する詳細は、Oracle Designerのオンライン・ドキュメントに含まれるインストレーション・ガイドを参照してください。
このオンライン・ドキュメントは、
• CD-ROM メディアのルート・ディレクトリの Welcome.htm• インストール後に、スタートメニューから「Oracle Designer R2.1.x/R6.0→Start Here」
のどちらかから参照できます。
1.1.5 リスナーの設定
Oracle Designer 製品は、データベースとの接続の際に以下のミドルウェアを利用します。
R2.1.x :SQL*NetR6.0 :Net8
したがって、それぞれSQL*Net、Net8で利用するTNS サービス名を構成する必要があります。
特に以下のような場合には注意してください。
同一マシンに Oracle8 とOracle Designer R2.1.x をインストールした場合
このような場合、Oracle8 は Net8 リスナー、Oracle Designer R2.1.x は SQL*Net ですので、
SQL*Net が参照するTNS サービス名の設定と、Net8 リスナーの設定が正しく行われていな
いと、接続できません。
これに関する設定はOracle Designer のオンライン・ドキュメントに含まれるインストレーション・
ガイド 第一章の「データベース接続に関するSQL*Net/Net8 の構成」にも記載されています
ので、そちらも参照ください。
1.1.6 リポジトリ・ユーザーの設定(推奨)この設定は必ずしもおこなう必要はありません。
Oracle Designer 製品付属のインストレーション・ガイドにもあるように、Pre-Configured リポジトリ
を含むデータベースには、リポジトリ所有者として REPOSユーザーが用意されています。この
REPOS ユーザーは、データベースで言うところの DBA 的な位置づけです。したがって、リポ
ジトリに設計情報を作っていくユーザーと、管理者的なREPOSユーザーとを区別したい場合
は、別のデータベース・ユーザーをリポジトリに登録しなければなりません。
データベース・ユーザーをリポジトリに登録する作業は Repository Administration Utility で
行います。
6
※ Repository Administration Utility はリポジトリ所有者(Pre-ConfiguredリポジトリではREPOS ユーザー)でしか実行できません。
Repository Administration Utility では、リポジトリにユーザーを登録するために、「ユーザーの
保守」を選択します。
図 1-2 Repository Administration Utility
これを選択すると、「ユーザー保守」ダイアログが開きます。ここで、リポジトリに登録されてい
るユーザーを確認できます。新しくユーザーを登録したい場合は、以下のようにします。
1 「マネージャ」を選び、右クリック・メニューから「ユーザーの追加」を選択する
2 開かれるダイアログで登録したいデータベース・ユーザーを選択し、「OK」を押す
3 「調 整 」を押すと登 録 処 理が開始されます。
ð ð
1.2 実行
1.2.1 アプリケーション・システムの作成適当なリポジトリ・ユーザーで接続したら、リポジトリに「アプリケーション・システム」を作成しま
す。このアプリケーション・システムというのは、Oracle Designerの世界でのプロジェクトのような
ものです。一つのアプリケーション・システムの中で、関連する表 /ビューといったデータベー
ス・オブジェクトやモジュールを設計します。
アプリケーション・システムの作成はOracle Designer でリポジトリに接続した後に表示される
ダイアログでおこないます。
7
図 1-3 「TEST 」アプリケーション・システムを作成
「アプリケーション・システム」ダイアログで、適当な名前を入力し、「作成」ボタンを押します
(上記例では、「TEST」としています)。
1.3 データベース設計
「1.2.1 アプリケーション・システムの作 成」で作成したアプリケーション・システムを選択している状
態から始めます。
1.3.1 「データベースからサーバー・モデルのキャプチャ」ユーティリティ
Design Editor から起動される「サーバー・モデルのデザインキャプチャ」ユーティリティは、稼
働中の Oracle データベースと接続して、そこに作成されている表やビューなどの様々な情
報を取得します。
1. Design Editor を起動します。
最初に表示されるダイアログでは、設計の目的として「サーバー・モデル」を選択します。
2. メニューから「生成→デザイン・キャプチャ→サーバー・モデル」を選択し、「データベースからサーバー・モデルのキャプチャ」ユーティリティを起動します。
3. 「データベースからサーバー・モデルのキャプチャ」ユーティリティを初めて起動した場合、「データベース・ユーザーの作成」を促されます。※ ここでいうデータベース・ユーザーは、リポジトリ
に定義されたアプリケーション・システムにおけるユーザーのことです。設計情報上のどのユーザーに表を所有させるかを指定します。
設計上のデータベース・ユーザーですので何を指定してもかまいませんが、ここでは
データベース :ORCL データベース・タイプ :Oracle 8 ユーザー名 :SCOTT
とします。
8
4. 「データベースからサーバー・モデルのキャプチャ」ユーティリティの「ソース」タブでは
ユーザー名 :SCOTT パスワード :TIGER 接続文字列 :(適当な TNS 名)
を入力し、「オブジェクト」タブをクリックします。
この時点で、ターゲット・データベースへの接続が行われます。
5. 「オブジェクト」タブの「キャプチャしない」リストの「リレーショナル表」ツリーを開き、それ以下にある
BONUS、DEPT、EMP、SALGRADE 表を選択し
て ボタンを押します。
「キャプチャ」リストの方に表が移動されたら、「開始」を押します。これで、テーブル情報のキャプチャが開始されます。
キャプチャ処理の過程では、いくつかの Warningがメッセージとして表示されますが、特に問題ではありませんので無視してください。
6. キャプチャの完了を示すダイアログがあがります。ので「保存」を押して、キャプチャした情報をリポジトリに確定させます。
この後の1.3.2~1.3.6は Formジェネレータの実行と直接は関係ありませんが、Design Editorの便利
な機能として参考までにご紹介します。
1.3.2 ダイアグラムの表示1. キャプチャしたテーブル情報をダイアグラム表示し
ます。Design Editor のナビゲータ・ウィンドウで、「リレーショナル表の定義」の下の、BONUS、DEPT、
EMP、SALGRADE 表定義を選択し、空白領域へドラッグ&ドロップします。
2. サーバー・モデル・ダイアグラムが表示されます。
キャプチャ対象のデータベースによっては、EMP表に再帰型の外部キー制約(参照元、参照先が共にEMP 表であるもの)がある場合があります(データベースのバージョンやプラットフォームによって、この制約が定義されていたり、そうでなかったりします)。
9
1.3.3 表の作成新規に表定義を作成します。これをおこなうために
「サーバー・モデル・ダイアグラム」ウィンドウのツー
ルバーにある「表」ボタンを押した状態にして、ダイ
アグラム上に(絵を描く感覚で)描きます。これで、
表作成ウィザードがあがります。
Page1 表の名前を入力します。
表名 :CUSTOMER
表別名、表示タイトルのデフォルト値が表名から自動的に設定されます(もちろん、変更可能です)。
2 「結合表」としてEMP 表を選択します。
3 結合表に EMP 表を選択したため、EMP_EMPNO 列が自動的に作成されています。更に列を追加します。「追加」を押して、必要な情報を入力してください。ここでは
列名 データ型 長さ 必須
CUSTID NUMBER 10 üNAME VARCHAR2 30 üADDRESS VARCHAR2 100PHONE VARCHAR2 20
と入力しています。なお、ここで表示された順序で列が作成されますので、順序を変更したい場合は、 / ボタンで入れ替えておきます。
4 主キーとする列を選択します。前のページで、「必須」とマークされた列が候補としてリストされますので、その中
から選択し、 を押します。ここでは CUSTID を選択しています。最後に「完了」を押して表定義を作成します。
10
初めてデータベース・オブジェクトを追加したときには、「デフォルトのデータベース・インプリメント」ウィンドウが表示されます。ここでは、追加したオブジェクト(今回の場合は表)を、設計上、どのデータベースのどのユーザーに所有させるかを指定します。
「このデータベース・オブジェクトならびにそれ以降をデフォルトに割当て」を選択して、次のページで
デフォルト・データベース :ORCLデフォルト・ユーザー :SCOTT
を選択し、「完了」を押します。
1.3.4 定義情報の変更 - SALGRADE 表への変更1. SALGRADE 表のプロパティ・ダイアログを開きま
す。
「列」タブ・ページで
GRADE 「必須」をチェック
LOSAL 「長さ」を 10
HISAL 「長さ」を 10
に変更し、「完了」を押します。
2. SALGRADE 表に主キー制約を追加します。
SALGRADE 表を選択して、右クリック・メニューから「主キーの追加」を選びます。主キーを作成するためのウィザードがあがってきますので、先ほど必須列に設定した GRADE 列を「主キーに含まれる列」へ移動させて、「完了」を押します。
1.3.5 定義情報の変更 - EMP 表への変更「1.3.2 ダイアグラムの表示」の 2.で記述したように、キャプチャ対象のデータベースのバージ
ョンやプラットフォームによっては、EMP 表に再帰型の外部キー制約がついていない場合が
あります。このあとのモジュール定義で、EMP 表の再帰型外部キー制約を利用しますので、
制約がない場合は、ここで定義してください。
Page1 参照する結合先の表を選択します。再帰型にしたいの
で、結合表 :EMP
とします。また、「外部キーは必須ですか」は「いいえ」に設定します。
11
2 参照先の列として、主キー列であるEMPNO を指定しますので、「主キーへ結合」を選択します。
3 既存の EMP 表の列と結合させるため、「EMP の列を選択します」を選びます。
4 「現行表の列」からMGR を選択します。なお、このリストには、EMPNO と同じデータ型のものしか表示されません。
5、6 モジュール設計時に利用する情報を設定できますが、ここでは省略します。「完了」を押してください。
1.3.6 サーバー・ジェネレータ追加・変更された定義情報を実際のデータベースへ反映させるためには、サーバー・ジェネ
レータを使います。
1. メニューから「サーバー・モデルからデータベースを生成」を選択します。
2. 「ターゲット」タブ・ページでは、3 つのオプションを選択できます。直接データベースと接続する「データベース」オプションを選択し、「1.3.1 「データベースからサーバー・モデルのキャプチャ」ユーティリティ」の 4.で入力したものと同じ情報を入力します。
3. 「オブジェクト」タブ・ページで、コード生成するオブジェクトを指定します。「生成しない」リストの「リレーショナル表」ツリーの下にある BONUS 、
CUSTOMER、DEPT、EMP、SALGRADE 表を選
択し、 ボタンで「生成」リストへ移動させます。
「開始」を押すと、サーバー・ジェネレータが実行されます。
処理が終了すると、以下のようなダイアログが表示されます。
12
図 1-4 SQL DDL 生成後に表示されるダイアログ
この時点では、データベースには表の作成や変更は行われていません。処理の過程で、
選択されたデータベース・オブジェクトと同じ名前のものがデータベース上に存在するかどう
かをチェックし、
同じ名前のものが存在する場合 → 作成のための DDL(CREATE文)同じ名前のものが存在しない場合 → 変更のための DDL(ALTER 文)
を作成します。
「DDLの表示」 - 生成されたSQL DDLの内容が表示されます。「レポートの表示」 - 比較レポートを表示します。「DDLの実行」 - 生成されたSQL DDLをデータベースに対して実行します。
ここでは実行してもしなくてもどちらでもかまいません。
13
Generated on Tue Mar 30 17:20:12 1999 by Server Generator 2.1.24.3.0
====== ======== ==============================Object Property Repository Value DatabaseValue====== ======== ==============================
------------------------------------------------------------------------------------------------------------------------------------Object Property Repository Value DatabaseValue------ -------- ---------------- --------------Table SALGRADE * DIFFERENT * * DIFFERENT* Object Type Cluster Index Only NoNo Initial Transactions1 Max Transactions255 Percent Free10 Percent Used40 Initial Extents10240 Next Extent10240 Min Extents1 Max Extents121 Percent Increase50 TablespaceUSER_DATA Parallel NoNo CommentColumn GRADE * DIFFERENT * * DIFFERENT* Datatype NUMBERNUMBER Max Length Scale Mandatory YesNo Default Value Domain CommentColumn LOSAL * DIFFERENT * * DIFFERENT* Datatype NUMBERNUMBER Max Length 10*** Scale Mandatory NoNo Default Value Domain CommentColumn HISAL * DIFFERENT * * DIFFERENT* Datatype NUMBER
l サーバー・ジェネレータによる比較レポートの例
変更された点は「***」で示される
14
1.3.7 表領域、ストレージ句、権限の設定
ユーザーの作成1. Design Editor のナビゲータ・ウィンドウの表示を
「DB 管理」タブ・ページに変更します。
2. 既に作成されているデータベース「ORCL」ツリーの下の「ユーザー」を選択し、右クリック・メニューから「データベース・ユーザーの作成」を選びます。
3. ここでは、以下のように入力します。
ユーザ-名 :USER1
初期パスワード :USER1
この後、「次へ」を押して、ウィザードを進めると、ユーザーに対するより詳細な設定(デフォルト表領域など)を設定できます。
表定義のインプリメント1. 「SCOTT」ユーザーの「表インプリメント」以下にリス
トされている表定義のうち、CUSTOMER を選択し、右クリック・メニューから「プロパティ」を選びます。ここでは SCOTT.CUSTOMER 表の実装に関する詳細な情報を設定できます。
2. 以下のように設定します。
「ストレージ」タブ・ページ
表領域 :USERS (これで新規に表領域が
定義されます)
ストレージ :→「新規ストレージ定義」を押す
ストレージ定義の作成ウィザードが開きます。
3. ストレージ定義を作成します。ここでは以下のようにします。
ストレージ定義の名前 :参照系ストレージ
エクステント細目
初期サイズ :10K 次のサイズ :10K 増加する割合 :0 最小数 :1 最大数 :121
「完了」を押してウィザードを終了します。
15
4. USER1 に対して権限を与えます。
「セキュリティ」タブ・ページ
Qry Ins Del Upd USER1 ü ü ü ü
この変更を反映した DDLスクリプトを生成するために、以下のどちらかを実行してください。
1. ナビゲータ・ツリー内で SCOTT ユーザーを選択した状態にしてから、メニューの「生 成
→サーバー・モデルからデータベースを生成」を選びます。
2. ナビゲータ・ツリー内でSCOTT ユーザーの「表インプリメント」以下のCUSTOMER 表を
選択して、右クリック・メニューから「生成」を選びます。
※ 「1.3.6 サーバー・ジェネレータ」で、DDL スクリプトを生成したときは、特にナビゲータ・ウィンドウでオブジェクトを選択しませんでしたが、ここでは必ず生成対象のユーザーもしくはオブジェクトを選択してください。ナビゲータ・ツリーで選択されているかどうかによって、サーバー・ジェネレータの生成するコードは異なります。
「サーバー・モデルからデータベースを生成」ダイアログが開 きます。ここでの操作は基本的
に「1.3.6 サーバー・ジェネレータ」のステップと同 じです。ただし、「オブジェクト」タブ・ページ
の表示には以下のような違いが出ます。
通常の場合 ユーザー/オブジェクト指定の場合選択リストのルートが、「ユーザー選択」となっている
選択リストのルートが、ユーザーになっている
「オブジェクト」タブ・ページで SCOTT ユーザーの CUSTOMER 表が選択されていることを確
認したら、サーバー・ジェネレータを「開始」します。
このようにユーザーやオブジェクトを指定して DDL 生成を行うことにによって、ストレージ句や
表領域の指定された DDL スクリプトが生成されます。また、他ユーザーに対する権限付与
のためのスクリプトも同時に生成されます。
1.4 モジュールの作成
ここでは、部 門-従業員のマスターディテール・アプリケーションを例として、簡単な作成手順を紹
介します。
16
Design Editor のナビゲータ・ウィンドウの表示を「モ
ジュール」タブ・ページに変更します。ナビゲータ・ウ
ィンドウ内の「モジュール」を選択して、右クリック・メ
ニューから「モジュールの作成」を選択します。
モジュール作成ウィザードが起動されます。
1.4.1 モジュール作成ウィザードPage1 以下のように入力します。
モジュール短縮名 :FORM_TEST言語 : Developer/2000
Forms
2、3 (特に入力しません)
4 「モジュールを作成し、ウィザードを起動してモジュー
ル・コンポーネントを作成」を選択して、「完了」を押しま
す。
引き続いて、モジュール・コンポーネント・データ・ウィザードが起動されます。
1.4.2 モジュール・コンポーネント・データ・ウィザードPage1 以下のように入力します。
名前 :DEPTタイトル :部門
2 「基礎表取扱」としてDEPT 表を選択します。
3 このアプリケーションでは、部門情報は検索のみを行うよ
うに設計します。そのため、ここでは特に設定せず、デフ
ォルトのままにします。
17
4 ボタンを押して、DEPT 表のすべての列を取り扱うよう
にします。
5 列名とは異なる名前を(アプリケーション内で利用する)
項目名として指定できます。必要に応じて変更してくだ
さい。
6 項目ごとに取扱を設定できますが、3 ページ目で、表取
扱全体として問合せ以外の指定をしていませんので、こ
こでは設定しません。
7 このページでは、項目への入力を必須にするか、未入
力を許可するかを指定できます。ただし、今回のモジュ
ール・コンポーネントは検索のみですので、ここには何も
項目がリストされません。
8 引き続き、「モジュール・コンポーネント画面ウィザード」
を起動するようオプション選択して、「完了」を押します。
1.4.3 モジュール・コンポーネント画面ウィザードPage表示 フォーム形式で表示されるように、
表示される行数 :1
とします。
項目の詳細
項目につけられるプロンプトを設定します。以下はその例です。
DEPTNO :部門番号
DNAME :部門名
LOC :場所
18
1.4.4 モジュール・コンポーネントの追加(ディテール・ブロック)1. テーブル情報をダイアグラム表示するためにドラッ
グ&ドロップしたのと同様に、今度は作成したモジュール定義を空白領域へドラッグ &ドロップします。
2. (モジュール・ダイアグラムが表示されます)
3. ナビゲータ・ツリーの「リレーショナル表の定義」から
EMP 表を選択して、DEPT モジュール・コンポーネントの下あたりへドラッグ&ドロップします。
4. 追加するモジュール・コンポーネントに対する設定をおこなうダイアログが表示されます。モジュール・コンポーネント操作を
ü 選択 ü 挿入 ü 更新 ü 削除
とし、さらに ボタンを押してすべての列を選択項目とします。このうち、DEPTNO 列は表示されないよう、[表示]のチェックをはずします。
5. 追加されたモジュール・コンポーネントEMP を選択して、右クリック・メニューから「プロパティ」を選びます。
6. プロパティ・ダイアログの「表示」タブ・ページで、モジュール・コンポーネントで表示される行数を指定します。
ここでは、このモジュール・コンポーネントに複数行の表形式で表示されるように
表示される行数 :8
として、「完了」を押します。
19
7. モジュール・コンポーネントの基礎表(EMP)を選択して、右クリック・メニューから「プロパティ」を選びます。
8. 「表示」タブ・ページで項目に対するプロンプトを設定します。例えば、
EMPNO :従業員番号
ENAME :名前
JOB :職種
MGR :上司 ID
HIREDATE :雇用日
SAL :給与
COMM :コミッション
とします。設定したら「完了」を押します。
1.4.5 参照表の追加1. 「1.4.4 モジュール・コンポーネントの追加(ディ
テール・ブロック)」と同様に、ナビゲータ・ツリーの「リレーショナル表の定義」から EMP 表を選択して、今度は、EMP モジュール・コンポーネントの右あたりへドラッグ&ドロップします。
2. 追加された参照表(EMP)を選択して、右クリック・メニューから「プロパティ」を選びます。
3. 「項目」タブ・ページの「利用可能な列」リストから、
EMP1.ENAME
を選択し、 ボタンを押して選択項目とします。
4. 「表示」タブ・ページで、ENAME2 のプロンプトを設定します(例えば、「上司」など)。
設定し終えたら、「完了」を押します。
20
1.4.6 レイアウト設計
ð
1. 「画面表示への切替え」ボタンを押して、モジュール・ダイアグラムを画面表示に切り替えます。
現在の状態は、マスター部分となる DEPT と、ディテール部分となる EMP がそれぞれ別のウィンドウに表示され、その間をボタンでナビゲートする構成になっています。
2. ナビゲートするボタンにラベルをつけます。
これはダイアグラム上で変更することもできますし、この項目のプロパティ・ダイアログから変更することもできます。
プロパティ・ダイアログから変更する場合は、「プロンプト」プロパティに設定します。
3. モジュール・コンポーネントEMP に含まれる項目の順序を並び替えます。これはダイアグラム上で項目をドラッグ&ドロップすることで変更できます。ここでは、
従業員番号
名前
職種
雇用日
給与
コミッション
上司 ID
上司
の順序にします。
1.5 Form ジェネレータの実行
ダイアグラムをつかって設計されたモジュール定義
から、Form ジェネレータは Oracle Developer の
Form アプリケーション・コードを生成します。
Form ジェネレータは、生成したいモジュールを選
択して、その右クリック・メニュから「生成」を選択する
ことで起動されます。
1.5.1 Form ジェネレータのオプション設定
Form アプリケーションのコード生成を開始する前に、Formジェネレータのオプション設定を確
21
認する必要があります。「Form の生成」ダイアログの「オプション」ボタンを押すと、「FormGenerator オプション」ダイアログが開かれます。
図 1-5 Form Generator オプションの設定
ここでは、以下の項目を確認してください。
• 「Form オプション」タブ・ページ
出力先 生成されるfmb ファイルの出力先(ディレクトリ)を指定
入力例: d:¥users¥
• 「コンパイル」タブ・ページ
出力先 コンパイルされたfmx ファイルの出力先(ディレクトリ)を指定
接続文字列 コンパイル時に利用するデータベース接続情報(ユーザー名 /パスワード@接続文字列)
入力例: SCOTT/TIGER@ORCL
• 「実行」タブ・ページ
接続文字列 実行時に利用するデータベース接続情報(ユーザー名/パスワード@接続文字列)
特に、「コンパイル」、「実行」タブの「接続文字列」の設定がおかしい場合、コンパイルや実
行に失敗しますので注意してください。
1.5.2 コード生成と実行オプション設定を確認したら、「Form Generator オプション」ダイアログの「OK」を押してこのダ
イアログを閉じ、「Form の生成」ダイアログで「開始」を押します。
コード生成処理では、モデル化されたモジュール定義をベースとした機能を実装させるため
に必要な制御ロジックが自動的に追加されます。
コード生成処理の終了後、次のようなダイアログが表示されます。
22
図 1-6 生成終了後のダイアログ
このダイアログでは、Form ジェネレータがコード生成中にモジュール定義に補足/修正した
情報をどう取り扱うか、を選択できます。
「保存」 - Form ジェネレータが自動修正した値をすべて受け入れて、リポジトリに保存します。
「元に戻す」 - Form ジェネレータが自動修正した値をすべてキャンセルします。「参 照 / 編集」
- Form ジェネレータが自動修正した値を参照し、必要に応じて編集できます。修正されたオブジェクトは、Design Editor のナビゲータ上では青色で表示されています。
※ この編集モードではプロパティ・シートしか使えません。
この後、メッセージ・ウィンドウのツール・バーの「操作のリスト」を押 して、「フォームの実行」を
選択すると、生成されたForm アプリケーションが実行されます。
ò
ð
ここで生成された Form アプリケーションは、あまり良いレイアウトではありません。これは、ここ
までのDesign Editor での設計作業で、モジュールの基本定義だけしか作成しなかったため
です。
23
2 Form ジェネレータ
2.1 概要
データベース・アプリケーションにはさまざまな機能が要求されます。通常の開発ツールのアプロー
チは、このような機能を実装するために必要なコードの骨格をウィザードによって提供する、と言うも
のです。このアプローチは、すばやい開発のための手助けとなりますが、そこへ機能追加する、仕
様を一部変更する、といった場合にはどうしてもコードの解析が必要となります。
これに対して Oracle Designer では、開発をより効率的に、かつメンテナンスを容易にすることをね
らって、通常の開発ツールとは異なるアプローチをとっています。そのために、まず、データベース・
アプリケーションに必要とされる機能を大きく3 つに分類します。
アプリケーションに固有の機能・ 取り扱うデータ(表および列)
・ 画面構成
これらの設計情報は、開発するアプリケーションごとに異なります。したがって、少なくともこの
部分の設計は個々におこなう必要がなります。
アプリケーションに依存しない共通の機能・ アプリケーションで共通に用いる業務ロジック
・ アプリケーションで共通に用いるUI(ユーザーインターフェイス)
これらを、画面ごとに毎回開発していくことは無駄なことです。どれからも共有できるようにし
ておくことは開発効率の向上だけでなく、保守や仕様変更時に対応しやすくなります。
アプリケーション間で類似する機能・ データベース・アクセス部分の制御コード
・ 項目値の妥当性検査等のエラー制御コード
対象となる項目名や表、列の名前が異なる程度で、ほとんどの場合、基本的なロジックは
類似しています。
・ 画面の標準化
複数のアプリケーション画面を開発する場合(特に企業レベルのアプリケーションの場合)、
標準化規定に基づく一貫したルック&フィールであることが要求されます。
上記のうち、「アプリケーションに依存しない共通の機能」および「アプリケーション間で類似する
機能」にあたる部分は、アプリケーション自身の本質的な部分ではありませんが、アプリケーション
の品質に関わる重要な要素であり、そのため、その開発には意外なほどに工数を要することがあ
ります。これをデータベース・アプリケーション毎に開発していたのでは生産的ではありません。いく
つかの必要な適用パターンを作成し、そのパターンに応じて、この部分の開発を自動化させるこ
とができれば、開発者は、アプリケーション本来の必要な機能(アプリケーションに固有の機能)の
設計に終始できます。これは開発時のみならず、メンテナンス時にも、無駄なコード解析をしなく
て良いことを意味します。
24
図 2-1 コード生成の自動化のイメージ
この自動化でもたらされるものは、単なる開発効率の向上だけではありません。
何人かのチームでひとつのシステムを開発する場合、同じような機能の実装でも開発者によって
コードの書き方が違ったり、レイアウトに共通性がなかったりと、開発者のクセがでてしまうものです。
このようにして開発されたアプリケーションは、画面によってインターフェイスに統一性がないため、
使いづらく感じてしまいます。また、そのコードの解析も、一貫性がないために非常に困難です。こ
れに対し、アプリケーション開発の自動化は、コーディングの一貫性、レイアウトの標準化を計るこ
とができます。
Oracle Designer では、アプリケーション固有の機能をできる限り汎用的に、誰もが理解できる形に
し、それ以外の部分は再利用性を重視した構成をしていますので、開発予定のアプリケーション
数が多ければ多いほど、その有効性が発揮されます。
2.2 ジェネレータの仕組み
前節で紹介したように、Oracle Designer では、アプリケーション設計の設計個所を、いくつかの部
分に分割して、効率の良い開発を可能にします。具体的には、以下の表で示す部分に分割さ
れます。
機能 Designer で対応する設計個所
データの取扱
画面構成
モジュール・デザインアプリケーション固有の機能
イベントロジック ロジック・エディタ
- クライアント・サイド・ロジック(アプリケーション・ロジック)
- サーバー・サイド・ロジック(PL/SQL ファンクション/プロシージャ)
業務ロジック
連結ライブラリ(pll)
共通機能
共通利用するUI テンプレート
標準化規定 作業環境設定/オブジェクト・ライブラリ類似する機能
エラー制御 (コード生成時に自動的に追加)
アプリケーション設計のメインとなる個所がモジュール・デザインです。このモジュール・デザインを汎
用的で、誰にでも理解できる形にするために、ダイアグラムを使って設計します。
アプリケーション固有部分
用意されたパターンを適用して、コード生成
25
2.2.1 モジュール・デザイン(ユニバーサル・デザイン)生成されるアプリケーションは、Oracle Designer では「モジュール定義」としてリポジトリに保
存されます。このモジュール定義のうち、ダイアグラムを用いて設計/管理される部分(データ
取扱および画面構成)をモジュール・デザインまたはユニバーサル・デザインと呼びます。
※ このモジュール・デザインの概念を使うことによって、最終的な開発言語に対する依存性をできる限りおさえています。この開発言語の非依存性から、”ユニバーサル”といわれることがあります。
モジュール設計で利用されるダイアグラムは 2 つの表示形式をもちます。データ取扱を設計
するためのダイアグラム表示と、画面構成を設計するためのダイアグラム表示です。この 2 つ
を切り替えながら設計していく(アプリケーションをモデル化する)ことで、アプリケーションの基
本機能およびレイアウトが決定します。
← データ表示
リポジトリ内では一つの定義として格納されている情報を、Design Editor では 2 通りのダイアグラムで表現できます。アプリケーションの基本機能はこのダイアグラムを中心としたモジュール定義に保持されます。
画面表示 →
・ 表/列に対する操作
問合せ/挿入/更新/削除・ 計算項目等の作成
・ 項目の表示データ型 /順序
・ ウィンドウの配置/画面遷移
・ 基本的なレイアウト
2.2.2 ロジックモジュール・デザインでデータベース・アプリケーションとしての基本機能は設計されますが、
多くの場合、様々なイベント(トリガー)に応じたロジックが必要になります。Oracle Designerの Design Editor では、FormBuilder と同様に、モジュール/モジュール・コンポーネント/項目レ
ベルでのトリガー設定が可能です。
2.2.3 テンプレートファイル(fmb)/連結ライブラリ(pll)Formジェネレータがコード生成を行う際のベースとなるfmb ファイルをテンプレートと呼びます。
このテンプレートには主に以下のものを定義しておきます。
• フォーム・レベル・プロパティ• 共通で利用したいキャンバス、ブロックおよび項目(これらはユーザー・オブジェクトと呼
ばれます)
2.2.4 オブジェクト・ライブラリオブジェクト・ライブラリは、Oracle Developer で利用されるオブジェクト(ウィンドウや項目な
ど)を部品化して再利用しやすいようにしたセットのことです。Form ジェネレータはこのオブジ
26
ェクト・ライブラリをうまく利用して、画面上の項目の標準化規定の自動化を実現します。
図 2-2 オブジェクト・ライブラリ
例えば、入力画面上では
・ 必須入力項目・ 任意入力項目・ 表示のみで入力させない項目
を、エンドユーザーに一目で判別させるために、プロンプト、項目の背景色を設定することが
あります。通常、このような規定はシステムや企業ごとに一定に設定することによって、スムー
ズなデータ入力を計ります。こういった標準化作業は、アプリケーション開発の本質的な部
分ではありません。しかし、意外と作業工数を要するものです。Form ジェネレータは、オブジ
ェクト・ライブラリを利用して、この作業を自動化することができます。
Form ジェネレータは、フォームのコード生成時に、指定されたオブジェクト・ライブラリの中に
用意されたオブジェクトのプロパティをベースとして、それにリポジトリで定義されたプロパティ
を上書きします。したがって、このベースとされるオブジェクト(ソース・オブジェクトと呼びます)
に標準化となるようにプロパティ設定しておけば、その情報が自動的に利用されるようになり
ます。
例えば、テキスト項目をフォーム上に配置するように設計する場合、項目名や幅 /高さ、プロ
ンプトなどの値はリポジトリに定義できますが、その項目およびプロンプトの色/フォントの指 定
はできません。このようなプロパティ値は、参照されるソース・オブジェクトの設定が継承され
ます。ソース・オブジェクトには生成オブジェクトのすべてのプロパティが含まれているので、
作業環境やリポジトリでの設計情報を使っては設定できないプロパティを生成オブジェクト
に設定することができます。
Form ジェネレータが使用するオブジェクト・ライブラリには、2 種類のソース・オブジェクトを入
れられます。
・ 標準ソース・オブジェクト(CGSO$***)
・ インプリメント・ソース・オブジェクト
標準ソース・オブジェクト(CGSO$***)
標準ソース・オブジェクトとは、Form ジェネレータが指定された型に応じて生成オブジェクト
を作成するときに使用するオブジェクト・ライブラリのオブジェクトです。Form ジェネレータは、
27
標準ソース・オブジェクトの名前で生成中にどのオブジェクトを使うかを判断します。標準ソ
ース・オブジェクトの名前は CGSO$で始まり、残りがこのソースから生成されるオブジェクトの
種類を示します。たとえば、CGSO$CHECK_BOX という標準ソース・オブジェクトは、生成され
るチェックボックスのソース・オブジェクトです。また、さらにこの名前の最後に次で紹介するよ
うな接尾語をつけることで、項目の用途をより細かく特定することができます。
標準ソース・オブジェクトの接尾辞
標準ソース・オブジェクトの名前に以下に示す接尾辞を追加することで、Formジェネレータが生成オブジェクト用にプロパティを取得する標準ソース・オブジェ
クトをさらに絞り込むことができます。
優先順位 接尾辞 生成オブジェクト
1 _MR 複数レコード・ブロックまたは複数レコード・ブロック内の項目
2 _CT 制御ブロック(つまり、モジュール・コンポーネントにはアンバウンド
項目しか含まれていない)
3 _DO 表示のみの項目
4 _MD 必須項目
以上の接尾辞は、単独でも組み合わせても使用できます(つまり、_MR_MD の
ような形でも設定できます。この場合は複数レコード・ブロック内の必須項目の
ソースとなります)。Formジェネレータは、指定されている優先順位に基づいて、
もっとも適した標準ソース項目を使用します。
Form ジェネレータは、まず、該当する接尾辞をすべて含む標準ソース・オブジ
ェクト名をオブジェクト・ライブラリで検索します。そのような標準ソース・オブジェ
クトが存在しない場合は、該当する接尾辞をもっとも多く含む標準ソース・オブ
ジェクトをオブジェクト・ライブラリで検索 します。該当する接尾辞の数が同じ標
準ソース・オブジェクトが 2 つ以上あった場合は、優先順位のもっとも高い接尾
辞を含むオブジェクトが使用されます(上の表を参照)。
適切な接尾辞がない場合は、Form ジェネレータは標準ソース・オブジェクトを
無視します。
インプリメント・ソース・オブジェクト
インプリメント・ソース・オブジェクトはオブジェクト・ライブラリに含まれているオブジェクトで、
Form ジェネレータが特定のオブジェクトを生成するときに(標準ソース・オブジェクトの代わり
に)使用するオブジェクトとして明示的に指定できます。Form ジェネレータが使うインプリメン
ト・ソース・オブジェクトを指定するには、リポジトリ・オブジェクト定義の「テンプレート/ライブラ
リ・オブジェクト」プロパティを使います。
標準ソース・オブジェクトは、Form ジェネレータがもっとも適当なオブジェクトを自動的に判別
して利用しますが、インプリメント・ソース・オブジェクトは明示的に指定しなければ使われま
せん。
ユーザー・インターフェイスの標準化 - 標準ソース・オブジェクト
28
拡張した機能を実装した部品 - インプリメント・ソース・オブジェクト
といった位置づけになります。
2.2.5 作業環境設定作業環境設定とは、レイアウト規定(例えば、ブロックのマージン距離や、プロンプト/項 目
間の幅など)、コーディング規定(ブロックの命名規則など)を指定したパラメータ群です。
図 2-3 作業環境
Form ジェネレータは、この作業環境設定をベースとしたコード生成を行います。同じ作業環
境設定を使って生成されたFormアプリケーションは同じようなレイアウト、コーディング・スタイ
ルが保たれます。
作業環境は階層構造で設定できます。
Design Editor のナビゲータ・ツリーの階層構造どおりに、上図の各レベルで作業環境を設
定できます。最上位の「アプリケーション・システム」レベルで設定された作業環境は、それ
以下のレベルに継承されます。下位レベルでそれを上書きすることが可能です。
つまり、アプリケーション・システム内で統一化させたい基本的な規定を「アプリケーション・シ
ステム・レベル」作業環境に設定し、ある表定義をベースとする場合の規定だけ変更したい
アプリケーション・システムモジュール
モジュール・コンポーネント(表取扱)
項目制約取扱
項目グループドメイン表
列制約
作業環境を設定できる階層レベル
29
場合は「表定義レベル」作業環境に設定し、あるモジュールにだけは固有の設定を行う、と
いうような状況に応じた選択が可能です。
30
3 アプリケーション設計テクニック
3.1 アプリケーション設計の例
3.1.1 初級編 - 単純なフォーム画面最初は、「1 まずは実行」で作成した Form アプリケーションをカスタマイズするところから始め
ましょう。
オブジェクト・ライブラリのソース・ファイルの編集ここでは、Oracle Designer が標準で提供しているオブジェクト・ライブラリ-ofgstnd1.olb を
FORM2LIB ユーティリティを使って編集する方法を、例をあげて紹介します。以下の手順で
は、製品付属のofgstnd1.fmb および ofgstnd1.olb を編集しますので、これらのバックアップを
とっておくことをお勧めします。
1. Oracle Developer FormBuilder を起動して、使用している Oracle Designer のバージョンに応じて以下のファイルを開きます。
<ORACLE_HOME>以下
R2.1.x :Cgenf50¥Admin¥Ofgstnd1.fmb
R6.0 :Cgenf60¥Admin¥Ofgstnd1.fmb
2. 「PARENT」データ・ブロック内に定義されている「CGSO$DEFAULT_ITEM 」のプロパティ・パレットを開きます。ここで、以下のプロパティを編集します。
表示
高さ :.2
フォントとカラー
フォント名 :MS Pゴシック
フォント・サイズ :9
プロンプトのフォントとカラー
フォント名 :MS Pゴシック
フォント・サイズ :9
「CGSO$DEFAULT_ITEM 」のプロパティは、この
fmb 内のすべての項目に継承されます。
3. (表示のみの項目の項目色の変更)
4. 「DISPLAY_ONLY」データ・ブロック内に定義されている項目のうち、「CGSO$NUMBER_DO」および「CGSO$CHAR_DO」のプロパティを以下のように修正します。
フォントとカラー
バックグラウンド・カラー:gray8
5. ファイルを保存します。
31
オブジェクト・ライブラリへの変換編集された ofgstnd1.fmb から新しい ofgstnd1.olb を生成します。これには Oracle Designerが提供するFORM2LIB ユーティリティを利用します。
1. Cgenf50¥Form2lib.reg(R2.1.x の場合)もしくは Cgenf60¥Fm2lib60.reg(R6.0 の場合)をダ
ブルクリックして、FORM2LIB ユーティリティのためのレジストリ設定をおこないます。
2. コマンドラインから以下のように入力します。
R2.1.x の場合
form2lib -i <ORACLE_HOME>¥Cgenf50¥Admin¥Ofgstnd1.fmb -o
<ORACLE_HOME>¥Cgenf50¥Admin¥Ofgstnd1.olb
R6,0 の場合
fm2lib60 -i <ORACLE_HOME>¥Cgenf60¥Admin¥Ofgstnd1.fmb -o
<ORACLE_HOME>¥Cgenf60¥Admin¥Ofgstnd1.olb
図 3-4 FORM2LIB ユーティリティの実行
この操作によって、新しい ofgstnd1.olb が生成されます。
作業環境集合の作成1. Design Editor のナビゲータ・ツリーで作業環境集
合の下の「Forms Generator」を選択して、右クリック・メニューから「作業環境集合の作成」を選びます。
2. プロパティ・シートが開きますので、適当な名前を入力し、「保存」ボタンを押します。ここでは、
名前 :設定サンプル
としています。
32
3. 作成された作業環境集合を編集するために、右クリック・メニューから「ジェネレータ作業環境の編集」を選択します。
ジェネレータ作業環境を設定するためのウィンドウが現れます。
作業環境設定の一例を追加資料として「4.1 作業環境設定の例 」に記載していますので、
それを参考に設定してみてください。
ここまでの作業(オブジェクト・ライブラリの編集および作業環境集合の作成)は、アプリケー
ションごとに設計する必要のないことを頭に置いておいてください。つまり、いくつかの標準化
規定パターンを用意しさえすれば、あとはそれらから適用すべきものを選択するだけで良い
のです。
作業環境集合の適用作成した作業環境集合は、以下のようにしてモジュールに適用させます。
1. モジュールを選択して、右クリック・メニューから「ジェネレータ作業環境の編集」を選びます。
2. ジェネレータ作業環境ウィンドウの「作業環境集合」リストから、適用させたい作業環境集合を選択して、「保存」を押します。
これで、設定が適用されます。ここではモジュール・レベルに対して作業環境集合を適用さ
せましたが、「2.2.5 作業環境設定」にあるようなアプリケーション・システム・レベルやモジュー
ル・コンポーネント・レベルで別の作業環境集合を適用させたり、一部の設定を変更したりす
ることも可能です。
モジュール定義の修正1. DEPT モジュール・コンポーネントの編集
モジュール・コンポーネントのプロパティ・ダイアログで以下の編集を行います。
「サイズ」タブ・ページ
コンテント/スタック・キャンバスのサイズ
幅 :50
2. EMP モジュール・コンポーネントの編集
「表示」タブ・ページ
オーバーフロー・スタイル :スプレッド表
33
3. ウィンドウのプロパティの編集
・ DEPT モジュール・コンポーネントのウィンドウ
- WINDOW 「名前」タブ・ページ
ウィンドウ・タイトル :部門情報
「サイズ」タブ・ページ
幅 :50 高さ :7
・ EMP モジュール・コンポーネントのウィンドウ
- WINDOW_2 「名前」タブ・ページ
ウィンドウ・タイトル :従業員情報
「サイズ」タブ・ページ
X-位置 :4 Y-位置 :5
幅 :65 高さ :10
4. DEPT モジュール・コンポーネント・レベルでの作業環境の設定
DEPT モジュール・コンポーネントを選択して、右クリック・メニューから「ジェネレータ作業環境の編集」を選びます。
以下の作業環境設定を変更します。
Layout - Block BLKUTT :SD
この作業環境設定は、フォーム形式の画面(「表示される行数」に 1 が設定されている場合など)に有効です。
この後、Form ジェネレータを使ってモジュールを再び生成します。
図 3-5 修正後の Form アプリケーション
3.1.2 中級編前節で修正したモジュールは 2つのウィンドウで構成されており、2つめのウィンドウは外部キ
ーを利用した値リストが自動作成されています。ここでは、このモジュールを以下のように変
更します。
・ ウィンドウを1 つにする。・ 外部キーによる参照データをリストボックスで表現する。
34
ウィンドウとキャンバスの変更1. 「FORM_TEST」モジュールのダイアグラムを表示
し、画面表示モードに切り替えます。
2. 1 つめのウィンドウを選択し、角を広げて、EMP モジュール・コンポーネントを含むようにします。
3. モジュール・コンポーネントを含まないウィンドウ、およびアクション項目ボタンを削除します。
(それぞれを選択して、右クリック・メニューから「リポジトリから削除」を選びます)
ð
4. モジュール・コンポーネントを囲む赤い枠がキャンバスを表します。2 つのモジュール・コンポーネントそれぞれが別のキャンバスに囲まれている場合、1つのウィンドウ上であっても同時には表示されません。これを避けるために、赤い枠(コンテント・キャンバス)を広げて2 つのモジュール・コンポーネントが一つのキャンバスに入るように変更します。
外部参照表データによるポップリスト今の設計では、EMP モジュール・コンポーネントの基礎表の MGR 項 目 と、参 照 表 の
ENAME 項目が画面上に表示され、値リストでこれを変更できるようなアプリケーションが生
成されます。ここでは、MGR 項目を表示させず、参照表の ENAME 項目だけで構成される
ポップリストに変更します。
1. モジュール・ダイアグラムをデータ表示モードに切り替えます。基礎表取扱のプロパティ・ダイアログを開き、
「項目」タブ・ページ
MGR の「表示」のチェックをはずす
「操作」タブ・ページ
MGR のすべての操作のチェックをはずす
とします。
35
2. 同様に、参照表取扱のプロパティ・ダイアログで、
「操作」タブ・ページ
ENAME2 のすべての操作にチェックする
「表示」タブ・ページ
ENAME2 表示タイプ:ポップリスト
とします。
この後、Form ジェネレータを使ってモジュールを再び生成します。
図 3-6 さらに修正されたForm アプリケーション
このステップを通してのモジュールに対する修正は、モデルによるアプリケーション設計の利
点を表しています。コーディング中心のアプリケーション開発は、開発当初から最終的なア
プリケーションの形が決まっている場合はすばやい開発が可能ですが、後からの修正には
簡単には対応しづらいものです。特に、このステップのように、ウィンドウの数を変えたり、表
現方法を変更した場合、モデルでの修正ほど容易ではありません。後からコーディングを行
うモデル・ベース開発であるからこそ、容易な仕様変更が可能なのです。
36
4 追加資料
4.1 作業環境設定の例
ここでは、参考情報として、有効であると思われる作業環境設定の例をご紹介します。
作業環境設定は 6文字以内のアルファベットで表現されます。このアルファベット6文字が分かり
づらい場合は、作業環境の説明に表示を切り替えることもできます。この表示切り替えは、ジェネ
レータ作業環境ウィンドウのツールバーにある「名前の表示/説明の表示」ボタンで行います。
以下では、作業環境設定の名前(アルファベット6文字)とその設定例を紹介しています。この設
定を利用すると、FormBuilder で作成したアプリケーションに近いレイアウトで生成されます。
Action Item AIBORD RIGHT TO LEFT
End User Interface BSCSCP W
NATLNG JAPANESE_JAPAN.JA16SJIS
Environment VLDUNT RECORD
Layout - Block BLKBWD 2
BLKDEC LOWERED RECTANGLE
BLKJUS LEFT
BLKMLL 0
BLKSBP RIGHT
BLKTAB 10,30,50
BLKVSB Y
Layout - Content Can
PAGCHT 5
PAGCWD 65
Layout - Context CONDEC OUTSET RECTANGLE
CONDFT N
CONHDS 1
Layout - Font FNTNAM MS Pゴシック
FNTSIZ 9
FNTWGT LIGHT
Layout - Item ITMBIF N
ITMIPG 0
ITMPIG 1
Layout - Item Group GRPDEC INSET RECTANGLE
GRPTAB 10,30,50
GRPUTT SD
Layout - Overflow OFADEC INSET RECTANGLE
OFADFT N
Layout - Text Item TXTDCL 30
TXTDDF RRRR-MM-DD
TXTDNL 8
TXTDTF RRRR-MM-DD HH24:MI
TXTSCA 0
List Of Values LOVACT 略称
LOVBUT Y
LOVHCT 上限値
LOVITG 0
LOVLCT 値
LOVMCT 意味
Navigation NAVNPB Y
Standards STFFMB <使用したいテンプレート・ファイル>
STOOLB <使用したいオブジェクト・ライブラリ>