Comments
Description
Transcript
リストボックス&ドロップダウンリストボックス
リストボックス&ドロップダウンリストボックス 初版 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