リストボックス&ドロップダウンリストボックス

リストボックス&ドロップダウンリストボックス
初版
2006/09/01
新規作成
Page 1
目
次
1
2
プロジェクト概要
ソフトウエア
2.1 対象NXJバージョン
2.2 アプリケーションサーバ
2.3 使用プロジェクト
3 実行環境設定手順
3.1 プロパティ設定
3.2 データベース接続設定
3.3 データベーステーブル作成
3.4 プロジェクトをMake
3.5 MySQLデータベースを利用時の構成
3.5.1 JDBCドライバのダウンロードとインストール
3.5.2 クラスパスの追加
4 機能解説
4.1 Sample1 フォーム
4.1.1 名称と値の設定
4.1.2 refetchOptions()メソッド
4.2 Sample2 フォーム
4.2.1 setOptions()メソッド
4.3 Sample3 フォーム
4.4 Sample4 フォーム
4.5 Sample5 フォーム
5 実行手順
5.1 アプリケーションサーバの起動
5.2 プロジェクトの配備及び実行
付録A DataServer Connection設定例
付録B Oracle Connection設定例
付録C MySQL Connection設定例
付録D ツールバー 実行ボタン
付録E ツールバー 実行ボタン フォームリスト表示
Page 2
1
プロジェクト概要
このプロジェクトは、NXJ コンポーネントのリストボックスとドロップダウンリストボックスの項目及び値
を実行時に変更する方法を示すプロジェクトです。
Page 3
2
ソフトウエア
2.1 対象 NXJ バージョン
NXJ 10.5D 以降
2.2
アプリケーションサーバ
JBoss アプリケーションサーバ (NXJ バンドル版)
2.3
使用プロジェクト
プロジェクト名称
DynamicListBox
[プロジェクト構成]
DynamicListBox.prj
databases フォルダ
sources フォルダ
プロジェクト設定ファイル
データベーススクリプト格納フォルダ
NXJ 開発ソースファイル格納フォルダ
以下のフォルダは、Make を実行時に作成されるフォルダです。
output フォルダ
J2EE アプリケーションアーカイブファイル格納フォルダ
temp フォルダ
一時ファイル格納フォルダ
プロジェクトは、NXJ アプリケーションデザイナを使ってプロジェクト設定ファイルを開きます。
Page 4
3
実行環境設定手順
プロジェクトを Make&配備し、フォームを実行する前の設定及び確認項目を以下に示しています。
NXJ アプリケーションデザイナは、Windows スタートメニューから、
[プログラム]->[Unify NXJ]->[アプリケーションデザイナ]を選択することで起動します。
3.1
プロパティ設定
アプリケーションに固有の設定はありません。
3.2
データベース接続設定
このプロジェクトの Connections に作成している DataServer, Oracle または、MySQL の
Connection を設定してデータベース接続を確認します。
DataServer
Oracle
MySQL
Unify DataServer データベース接続用 Connection 定義
Oracle データベース接続用 Connection 定義
MySQL データベース接続用 Connection 定義
[例] DataServer Connection を利用する場合
DataServer Connection を開いて、以下の情報を入力します。
タイプ
DataServer になっていることを確認します。
Jar/Zip ファイル
SimbaJDBC.jar ファイルが選択されていることを確認します。
ユーザ名
DataServer データベースに接続するユーザ名を指定します。
パスワード
ユーザ名に対するパスワードを指定します。
実行時のデータソース DataServer になっていることを確認します。
ホスト
DataServer データベースサーバのホスト名を指定します。
ポート
DataServer データベースがリスンしているポート番号を指定します。
DNS
接続するデータベースの DNS を指定します。
このコネクションをデフォルトにする チェックボックスをチェックします。
上記設定を行った後、テストボタンをクリックして接続が成功することを確認し、OK ボタンをクリ
ックして設定を終了します。
[参照] 付録A DataServer Connection設定例
Page 5
[例] Oracle Connection を利用する場合
Oracle Connection を開いて、以下の情報を入力します。
タイプ
Oracle になっていることを確認します。
Jar/Zip ファイル
ojdbc14.jar ファイルが選択されていることを確認します。
ユーザ名
Oracle データベースに接続するユーザ名を指定します。
パスワード
ユーザ名に対するパスワードを指定します。
実行時のデータソース Oracle になっていることを確認します。
ホスト
Oracle データベースサーバのホスト名を指定します。
ポート
Oracle データベースがリスンしているポート番号を指定します。
SID
接続するデータベースの SID を指定します。
このコネクションをデフォルトにする チェックボックスをチェックします。
上記設定を行った後、テストボタンをクリックして接続が成功することを確認し、OK ボタンをクリ
ックして設定を終了します。
[参照] 付録B Oracle Connection設定例
[例] MySQL Connection を利用する場合
MySQL Connection を開いて、以下の情報を入力します。
タイプ
MySQL になっていることを確認します。
Jar/Zip ファイル
mysql.jar ファイルが選択されていることを確認します。
ユーザ名
MySQL データベースに接続するユーザ名を指定します。
パスワード
ユーザ名に対するパスワードを指定します。
実行時のデータソース MySQL になっていることを確認します。
ホスト
MySQL データベースサーバのホスト名を指定します。
ポート
MySQL データベースがリスンしているポート番号を指定します。
dbname
接続するデータベースのデータベース名を指定します。
このコネクションをデフォルトにする チェックボックスをチェックします。
上記設定を行った後、テストボタンをクリックして接続が成功することを確認し、OK ボタンをクリ
ックして設定を終了します。
[備考]
MySQLデータベースを利用する場合は、3.5 MySQLデータベースを利用時の構成 を参照してくだ
さい。
[参照] 付録C MySQL Connection設定例
Page 6
3.3
データベーステーブル作成
プロジェクトの databases フォルダにあるスクリプトを使ってデータベーステーブルとテストデータ
を作成します。
[例] DataServer Connection を使用する場合
DataServer.sql スクリプトにあるテーブルとテストデータを作成します。
[例] Oracle Connection を使用する場合
Oracle.sql スクリプトにあるテーブルとテストデータを作成します。
[例] MySQL Connection を使用する場合
MySQL.sql スクリプトにあるテーブルとテストデータを作成します。
3.4
プロジェクトを Make
NXJ アプリケーションデザイナのメニューバーから[プロジェクト]->[すべて Make]を選択し、プロジ
ェクトを Make し、エラー無く終了することを確認しておきます。
Make を実行するとプロジェクトから J2EE アプリケーションアーカイブファイルの EAR または、
ZIP ファイルを生成します。
ここで作成されたアーカイブファイルが、アプリケーションサーバに配備されます。
Page 7
3.5
MySQL データベースを利用時の構成
MySQL データベースを利用してプロジェクトを実行する場合、事前に準備しなければならないことを
説明します。
3.5.1 JDBC ドライバのダウンロードとインストール
MySQL データベース用の JDBC ドライバは、Unify NXJ には含まれていません。
NXJ のドキュメント
Unify NXJ がサポートする構成(Configurations.pdf) をご参照の上
MySQL データベース用の JDBC ドライバをダウンロードし、インストールを行って下さい。
ここでは、JDBC ドライバを、Unify NXJ をインストールしたフォルダの lib¥jdbcDrivers に
mysql.jar としてインストールしたものとして以降の説明をしています。
[備考]
Unify NXJ のインストールフォルダは、C:¥unify¥nxj フォルダにインストールしているものと
します。
3.5.2 クラスパスの追加
MySQL データベース用の JDBC ドライバクラスを JBoss アプリケーションサーバのクラスパス
に追加します。
Unify NXJ をインストール時、Windows サービスとして登録した場合は、run.bat スクリプトと、
Windows サービスの両方にクラスパス設定を追加します。
●run.bat スクリプトの場合
run.bat スクリプトをエディタで編集し、JBOSS_CLASSPATH に MySQL の JDBC ドライバク
ラスの Jar ファイルへのパスを追加します。
run.bat スクリプトは、インストールフォルダの jboss¥bin フォルダにあります。
[追加例]
set JDBCDRIVERS=%UNIFY_HOME%¥lib¥jdbcDrivers
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JDBCDRIVERS%¥ojdbc14.jar
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JDBCDRIVERS%¥orai18n.jar
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JDBCDRIVERS%¥Fositex.jar
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JDBCDRIVERS%¥jconn2.jar
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JDBCDRIVERS%¥jtds-0.8.1.jar
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JDBCDRIVERS%¥SimbaJDBC.jar
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JDBCDRIVERS%¥JdbcOraWrapper.jar
set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JDBCDRIVERS%¥mysql.jar
[備考]
UNIFY_HOME : Unify NXJ をインストールしたフォルダへのパスを示しています。
Page 8
●Windows サービスの場合
JBoss サービスのレジストリエントリに MySQL の JDBC ドライバクラスの Jar ファイルへのパ
スを設定します。
[レジストエントリ]
(場所)
マイコンピュータ¥HKEY_LOCAL_MACHINE¥System¥CurrentControlSet¥Services¥
Unify NXJ Development Server¥Parameters
(追加するプロパティ名)
-Djava.class.path
(文字列値)
JVM Option Number XX
XX : 設定するプロパティ名を含むエントリの番号に置き換えます。
例えば、16 に上記のプロパティ名が含まれている場合は、文字列値は以下のようにな
ります。
JVM Option Number 16
(追加する設定値)
MySQL の JDBC ドライバクラスの Jar ファイルへのパス
[設定値例] 設定値の最後に追加 (JVM Option Number 16 文字列値)
;C:¥unify¥nxj¥lib¥jdbcDrivers¥mysql.jar
[備考]
この操作は、レジストリ情報に変更を加えます。
レジストリ情報のバックアップを作成する等、十分注意して行ってください。
レジストリエントリの場所を改行して記述していますが、1 つの場所を示しています。
Page 9
4
機能解説
リストボックス、ドロップダウンリストボックスコントロールを使ったフォームです。
リストボックス、ドロップダウンリストボックスコントロールの名称と値のペアを実行時に変更するサンプ
ルフォームです。
4.1
Sample1 フォーム
リストボックスコントロールを配置したフォームで、データベーステーブルから名称や値をセットして
います。
このリストボックスの名称と値は、List/Query プロパティにこれらの表示データを検索する SQL 文が
設定されています。
このリストボックスの名称と値を実行時に変更します。
4.1.1 名称と値の設定
フォームプロパティ List/Query にリストボックスコントロールに表示する名称と値を検索する
SQL 文を指定します。
最初に検索するデータが、リストボックスの値になり、2 番目の検索データがリストボックスの名
称になります。
[例] 名称と値が異なる場合
select F2, F1 from SELECT1 order by F1
[例] 名称と値が同じ場合
select F1 from SELECT1
select F1, F1 from SELECT1
4.1.2 refetchOptions()メソッド
このメソッドを呼び出すと、List/Query プロパティにセットした検索 SQL 文が実行され、リスト
ボックスの名称と値が再設定されます。
このメソッドを実行する場合は、List/Query プロパティに SQL 文が設定されていなければなりま
せん。
Page 10
4.2
Sample2 フォーム
リストボックスコントロールを配置したフォームで、データベーステーブルから名称や値をセットして
います。
このリストボックスの名称と値を実行時に変更します。
この setOptions() メソッドを使用する場合は、名称と値の設定方法は、List/Options または、
List/Query のどちらに設定されていてもその設定値をオーバーライトします。
4.2.1 setOptions()メソッド
このメソッドは、リストボックスの名称と値をスクリプトで編集して設定する為のものです。
名称と値は、NXJ が準備する com.unify.pub.NameValuePair クラスに name と value をセット
します。
名称数分の NameValuePair クラスを編集し、リストボックスに表示したい順番に List クラスに追
加して setOptions()メソッドの引数に渡すことでリストボックスの表示を行います。
このメソッドを呼び出すと、List/Query または List/Options プロパティにセットした情報に関係
なく引数に指定した情報を表示します。
[設定例]
ArrayList nameList = new ArrayList();
nameList.add(new NameValuePair("Item1", "AAA"));
nameList.add(new NameValuePair("Item2", "BBB"));
nameList.add(new NameValuePair("Item3", "CCC"));
select1.setOptions(nameList);
[参照] 「Javadoc Unify NXJ Forms Processing API Interface NullableField」
「Javadoc Unify NXJ Forms Processing API Class NameValuePair」
Page 11
4.3
Sample3 フォーム
Sample1 フォームに配置しているリストボックスコントロールをドロップダウンリストボックスコン
トロールに変更したフォームです。
実装している機能に関しては、Sample1 フォームと同様です。
4.4
Sample4 フォーム
Sample2 フォームに配置しているリストボックスコントロールをドロップダウンリストボックスコン
トロールに変更したフォームです。
実装している機能に関しては、Sample2 フォームと同様です。
Page 12
4.5
Sample5 フォーム
二つのドロップダウンリストボックスコントロールを配置し、一方の選択値が変更されるとそれにあわ
せた内容にドロップダウンリストボックスコントロールの名称を変更するフォームです。
(1) List/Query プロパティ
変更元のドロップダウンリストボックス(select1)は、
select F2, F1 from SELECT2_1 order by F1
をセットし、変更先のドロップダウンリストボックス(select2)は、
select F3, F2 from SELECT2_2 where F1 = :select1
のように SQL 文を設定しています。
この SQL 文の where 句の指定 :select1 は、スクリプト内の変数の値を参照することを指定して
います。
この指定によって変更元の選択されている値によって変更先の SQL 文の検索条件が変更されます。
(2) ドロップダウンリストボックス(select1) ON DATA ACCEPT セクション
このセクションは、データが入力されるとトリガされ、ドロップダウンリストボックス(select2) の
refetchOptions()メソッドを起動します。
起動されたメソッドは、select F3, F2 from SELECT2_2 where F1 = :select1 の検索を実行しま
す。
この時、:select1 は、現在選択されている変更元のドロップダウンリストボックス(select1)の値と
置き換わります。
そのため、上記の SQL 文は、select1 が 2 を選択されていれば、
select "type", typeno from SELECT2_2 where select_number = 2
3 であれば、
select "type", typeno from SELECT2_2 where select_number = 3
のような検索が行われるため、変更先のドロップダウンリストボックス(select2)は、
変更元のドロップダウンリストボックス(select1)の選択値に合わせた項目を表示することになりま
す。
(3) ドロップダウンリストボックス(select1) Interactive/Immediate プロパティ
即時イベントセクションを呼び出す為にこのプロパティを true に設定しています。
Page 13
5
実行手順
プロジェクトの実行手順を説明します。
NXJ アプリケーションデザイナがインストールされたマシンに構成されている JBoss アプリケーションサー
バを使用した手順で説明します。
5.1
アプリケーションサーバの起動
JBoss アプリケーションサーバを Windows サービスまたは、run.bat スクリプトを利用して起動しま
す。
[Windows サービスによる起動]
(1) Windows サービスを表示します。
(2) Windows サービスパネルから Unify NXJ Development Server を開始します。
[run.bat スクリプトによる起動]
(1) Windows コマンドプロンプトを実行します。
(2) Unify NXJ をインストールしたフォルダの jboss¥bin フォルダに移動します。
(3) run.bat バッチファイルを実行します。
JBoss アプリケーションサーバが実行されたことを確認しておきます。
Page 14
5.2
プロジェクトの配備及び実行
ロジェクトをアプリケーションサーバに配備し、実行する手順を説明します。
(1) NXJ アプリケーションデザイナの起動
Windows スタートメニューから [プログラム]->[Unify NXJ]->[アプリケーションデザイナ]を選択
します。
(2) プロジェクトを開く
NXJ アプリケーションデザイナのメニューバーから
[ファイル]->[プロジェクトを開く]を選択し、DynamicListBox.prj ファイルを選択します。
(3) 実行
NXJ アプリケーションデザイナの実行ツールバーをクリックまたは、実行ツールバーの▼をクリッ
クしてフォームリストからフォームを選択して実行します。
NXJ アプリケーションデザイナが、JBoss アプリケーションサーバにプロジェクトを配備し、ブラ
ウザを立ち上げてフォームを表示します。
フォームを選択すると、NXJ アプリケーションデザイナが、JBoss アプリケーションサーバにプロジ
ェクトを配備し、ブラウザを立ち上げて選択したフォームを表示します。
[参照]
付録D ツールバー 実行ボタン
付録E ツールバー 実行ボタン フォームリスト表示
[備考1]
NXJ アプリケーションデザイナは、Make されていないプロジェクトに対して配備または、実行コ
マンドが選択された場合には、自動的に Make を実行し、正常終了した後にプロジェクトをアプリ
ケーションサーバへ配備を実行します。
[備考2]
NXJ リリース 11.5 は、ツールバー実行ボタンをクリックすると、プロジェクトプロパティの全般
パネルの デフォルトエントリポイント に指定されているフォームが実行されます。
Page 15
付録 A DataServer Connection 設定例
ユーザ
administrator
ホスト
senna
ポート
1583
DNS
senna_ds82
Page 16
付録 B Oracle Connection 設定例
ユーザ
honda
ホスト
senna
ポート
1521
SID
ora92
Page 17
付録 C MySQL Connection 設定例
ユーザ
root
ホスト
senna
ポート
3307
dbname
test
Page 18
付録 D ツールバー 実行ボタン
付録 E ツールバー 実行ボタン フォームリスト表示
Page 19