【DO!BOOK・ページリンク】
2009_migaro_techreport_001   44 / 80

BOOKをみる

10秒後にBOOKのページに移動します


42 アプリケーションモードのWeb開発  それでは、アプリケーションモードを 用いてのWeb プログラミングの開発方 法を順に説明していく。  まず、新規プロジェクトを作成する。 この時、新規プロジェクトを作成するに は[ファイル]→[その他]→[Delphi プロジェクト/VCL for the Web]→ [VCL for the Web Application Wizard] を選択する。【図1a】【図1b】  すると、Web アプリケーションのウィ ザードが開始される。ここで表示される Application Type というのが、上記で 説明した3 種のモードに該当する。ここ では、アプリケーションモードのISAPI Extension を選択する。  Option は特に個別に設定する必要が ないため、初期値の状態で設定し、 Project Name、Project Directory は任 意の値を設定する。すべての設定が完了 した後に、[OK]ボタンを押下すれば、 アプリケーションモードでの開発画面に 遷移する。【図2】  開発画面には、ServerController.pas、 Unit.pas、UserSessionUnit.pas の3 種 が自動生成される。ServerController はその名の通り、サーバーのコントロー ルを司るファイルで、ブラウザの戻るボ タンやIntraWeb 終了時の制御を行う等 のことができる。Unit ファイルは実際 に開発を行う画面で、このファイルにコ ンポーネントを貼り付けて開発を行う。 UserSessionUnit は、アプリケーション 開発を行う時のDataModule と同じ扱 いになる。  今回は、条件を指定して検索ボタンを 押下すると商品の検索を行うことができ る、という簡単な照会システムの作成手 順を説明する。 VCL for the Web で の画面設計  IntraWeb で使用できるコンポーネン トは、C/S アプリケーションを開発す るコンポーネントとは違ってくる。ツー ルパレットの中で、頭にIW がつくコン ポーネント群が使用できるコンポーネン トになる。簡単な開発であればIW Standard 群が主に使用される。  今回の開発で使用するコンポーネン トとしては、TIWEdit、TIWGrid、 T I W B u t t o n 、T I W I m a g e F i l e 、 TIWLabel、TIWRegion、TIWLink、 TIWRadioButton がある。コンポーネ ントの配置方法は従来のアプリケーショ ン開発と変わらず、表示を行う箇所にコ ンポーネントの配置を行い、必要に応じ てプロパティの設定を行う。【図3】  簡単に各コンポーネントと主なプロパ ティの説明を、以下に記述する。 ● TIWEdit   ブラウザ画面で文字等の入力制御を行 う。プロパティのMaxlength に数値 を入れることで、最大入力文字数が指 定できる。 ● TIWGrid   表形式の画面を出力する。HTML で 言えばTABLE に相当する。プロパ ティのUseFrame をTrue にするこ とで、開発画面上で指定した幅を固定 にできる。False の場合は、出力する データによってGrid の幅が変化する。 また、Line の設定や列の間隔を設定 することも可能。 ● TIWButton   画面上でクリックすることで、イベン トを呼び出す。 ● TIWImageFile   画像を画面上に表示するコンポーネン ト。プロパティのImageFile のFile   Name または画像保管場所のURL を 指定することで、画像を表示できる。 ● TIWLabel  テキストを表示するコンポーネント。 ● TIWRegion   TPanel と同じ働きをするコンポーネ ント。 ● TIWLink   IntraWeb 内の画面に遷移するコン ポーネント。似たコンポーネントに TIWURL があり、こちらのコンポー ネントはIntraWeb 外の画面に遷移す る時に使用する。 ● TIWRadioButton   複数の選択肢から条件を指定できるコ ンポーネント。プロパティのGroup で同じ名前を指定したものが同一選 択対象になる。  画面の構成が決定した後に、IBM i との連携を行うための非ビジュアルコン ポーネントの配置を行う。よくWeb ア プリケーションで課題となるのが、サー バーからの応答時間の問題である。デー タベースとの接続方法はさまざまな方法 があるが、Delphi/400 で最もレスポン スが早い単一方向データセットを採用し ているDBExpress を使用することが多 い。  そのため、今回の説明もDBExpress 接続方式を採用する。DBExpress の TSQLConnection、TSQLQuery を UserSessionUnit のフォームに配置し、 TSQLConnection を右クリックして接 続設定を図のようにする。【図4】  ここで設定するDataBaseName と HostName には、Configuration で扱う 接続名を設定する。これらの設定はプロ グラム内部で指定することが可能だが、 必要に応じてプロパティで設定をする。 VCL for the Web で のプログラムロジック 開発  次にプログラム内部の設計に入る。プ ログラム内部の設計は従来のアプリケー ション開発と変わらず、各コンポーネン トにあるイベントにプログラムを記述し ていけばよい。  例えば、メッセージのみの出力だけを 考えると、Windows アプリケーション ではShowMessage 関数があるが、同 様にWeb アプリケーションでもShow Message 関数が存在する。 Application.ShowMessage('Hellow World !') ; WebApplication.ShowMessage ('Hellow World !') ; OnClickイベント  今回のプログラムでは、TIWButton にあるOnClick イベントに検索を実行 するプログラムを記述する。ボタンを押 下することで、Query を利用してIBM i に登録されているデータベースにアク セスを行い、検索条件に一致したレコー ドを取得する。【ソース1】  お気づきかもしれないが、OnClick