powerbuilder 入門 · pdf file目次 powerbuilder 入門 v アプリケーションの close...

346
PowerBuilder 入門 PowerBuilder® 9

Upload: truongnhi

Post on 25-Mar-2018

283 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder 入門

PowerBuilder®

9

Page 2: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

DOCUMENT ID: 37772-01-0900-01

LAST REVISED: March 2003

Copyright © 1989-2004 by Sybase, Inc. All rights reserved.

本書に記載されているソフ ト ウェアは、Sybase ラ イセンス契約に基づいて Sybase, Inc. が提供し、かかる契約の条項に従う場合にのみ使用が許諾されます。

本書に記載されている内容は、 Sybase, Inc. およびその関連会社の書面による許可なく、 いかなる形態、 または手段、 電子的、 機械的、 手作業、 光学的およびその他にかかわらず、 複製、 転載および翻訳を禁じます。

Sybase, Sybase (ロ ゴ) , AccelaTrade, ADA Workbench, Adaptable Windowing Environment, Adaptive Component Architecture,Adaptive Server, Adaptive Server Anywhere, Adaptive Server Enterprise, Adaptive Server Enterprise Monitor, Adaptive ServerEnterprise Replication, Adaptive Server Everywhere, Adaptive Server IQ, Adaptive Warehouse, Anywhere Studio, ApplicationManager, AppModeler, APT Workbench, APT-Build, APT-Edit, APT-Execute, APT-FORMS, APT-Translator, APT-Library, BackupServer, BizTracker, ClearConnect, Client-Library, Client Services, Convoy/DM, Copernicus, Data Pipeline, Data Workbench,DataArchitect, Database Analyzer, DataExpress, DataServer, DataWindow, DB-Library, dbQueue, Developers Workbench, DirectConnect Anywhere, DirectConnect, Distribution Director, e-ADK, E-Anywhere, e-Biz Integrator, E-Whatever, EC Gateway, ECMAP,ECRTP, eFulfillment Accelerator, Embedded SQL, EMS, Enterprise Application Studio, Enterprise Client/Server, Enterprise Connect,Enterprise Data Studio, Enterprise Manager, Enterprise SQL Server Manager, Enterprise Work Architecture, Enterprise Work Designer,Enterprise Work Modeler, eProcurement Accelerator, EWA, Financial Fusion, Financial Fusion Server, Gateway Manager, GlobalFIX,ImpactNow, Industry Warehouse Studio, InfoMaker, Information Anywhere, Information Everywhere, InformationConnect,InternetBuilder, iScript, Jaguar CTS, jConnect for JDBC, MainframeConnect, Maintenance Express, MDI Access Server, MDIDatabase Gateway, media.splash, MetaWorks, MySupport, Net-Gateway, Net-Library, New Era of Networks, ObjectConnect,ObjectCycle, OmniConnect, OmniSQL Access Module, OmniSQL Toolkit, Open Biz, Open Client, Open ClientConnect, Open Client/Server, Open Client/Server Interfaces, Open Gateway, Open Server, Open ServerConnect, Open Solutions, Optima++, PB-Gen, PC APTExecute, PC Net Library, Power++, power.stop, PowerAMC, PowerBuilder, PowerBuilder Foundation Class Library, PowerDesigner,PowerDimensions, PowerDynamo, PowerJ, PowerScript, PowerSite, PowerSocket, Powersoft, PowerStage, PowerStudio, PowerTips,Powersoft Portfolio, Powersoft Professional, PowerWare Desktop, PowerWare Enterprise, ProcessAnalyst, Rapport, Report Workbench,Report-Execute, Replication Agent, Replication Driver, Replication Server, Replication Server Manager, Replication Toolkit, ResourceManager, RW-DisplayLib, S-Designor, SDF, Secure SQL Server, Secure SQL Toolset, Security Guardian, SKILS, smart.partners,smart.parts, smart.script, SQL Advantage, SQL Anywhere, SQL Anywhere Studio, SQL Code Checker, SQL Debug, SQL Edit, SQLEdit/TPU, SQL Everywhere, SQL Modeler, SQL Remote, SQL Server, SQL Server Manager, SQL SMART, SQL Toolset, SQL Server/CFT, SQL Server/DBM, SQL Server SNMP SubAgent, SQL Station, SQLJ, STEP, SupportNow, S.W.I.F.T. Message Format Libraries,Sybase Central, Sybase Client/Server Interfaces, Sybase Financial Server, Sybase Gateways, Sybase MPP, Sybase SQL Desktop, SybaseSQL Lifecycle, Sybase SQL Workgroup, Sybase User Workbench, SybaseWare, Syber Financial, SyberAssist, SyBooks, System 10,System 11, System XI ( ロ ゴ ), SystemTools, Tabular Data Stream, TradeForce, Transact-SQL, Translation Toolkit, UltraLite.NET,UNIBOM, Unilib, Uninull, Unisep, Unistring, URK Runtime Kit for UniCode, Viewer, Visual Components, VisualSpeller,VisualWriter, VQL, WarehouseArchitect, Warehouse Control Center, Warehouse Studio, Warehouse WORKS, Watcom, Watcom SQL,Watcom SQL Server, Web Deployment Kit, Web.PB, Web.SQL, WebSights, WebViewer, WorkGroup SQL Server, XA-Library, XA-Server および XP Server は Sybase, Inc. の登録商標です。

Unicode および Unicode のロゴは Unicode, Inc. の登録商標です。

本書で使用される会社名および製品名はそれぞれの会社の商標および登録商標です。

本書に記載されている内容は、 将来予告なしに変更するこ とがあ り ます。 また、 本ソフ ト ウェアおよび説明書を使用したこ とによる損害、 または第三者からのいかなる請求についても、サイベース株式会社、 その親会社である米国法人 Sybase,Inc. またはその関連会社は、 一切の責任を負わないものと します。

Page 3: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

目 次

本書について .................................................................................................................................. ix

第 1 部 PowerBuilder の紹介

第 1 章 PowerBuilder の概要 ................................................................................................. 3PowerBuilder とは............................................................................ 3PowerBuilder の環境 ........................................................................ 6PowerBuilder オブジェク ト ........................................................... 11

第 2 章 PowerBuilder チュート リアルについて ........................................................ 21クライアン ト / サーバー アプリケーシ ョ ンの構築方法の学習 ...... 21PowerDynamo Web アプリケーシ ョ ンの構築方法の学習............. 23JSP Web サービス アプリケーシ ョ ンの構築方法の学習 .............. 24チュート リアルの進め方................................................................ 25

所要時間 .................................................................................. 26学習する内容 ........................................................................... 26

チュート リアルのセッ トアップ ..................................................... 27

第 2 部 クライアン ト / サーバー アプリケーシ ョ ンの構築

レ ッ スン 1 PowerBuilder の起動 ..................................................................... 31ワークスペースの新規作成 ............................................................ 32ターゲッ トの作成 .......................................................................... 35アプリケーシ ョンのアイコンの指定.............................................. 40メイン ウィンドウのサイズ変更 .................................................... 43アプリケーシ ョンの実行................................................................ 46

レ ッ スン 2 PowerBuilder の環境のカスタマイズ ............................................ 49システム ツリー ウィンドウの操作 ............................................... 50オブジェク トのオープン ................................................................ 52ビューの操作.................................................................................. 54

PowerBuilder 入門 iii

Page 4: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

目次

新規スクリプ ト ビューの追加................................................. 55ビューのタイ トル バーの表示................................................. 56ビューの浮動化と固定化 ......................................................... 56タブ付きビューの操作 ............................................................ 57ビューのレイアウト構成の保存 .............................................. 58ビュー レイアウト構成を標準設定に戻す............................... 59

ツールバーのセッ トアップ ............................................................ 60ツールバー ボタン上へのラベルの表示 .................................. 60ツールバーの浮動化 ................................................................ 61ツールバーの再配置 ................................................................ 62

レ ッ スン 3 ログイン ウィ ンドウの作成............................................................. 65ウィンドウの新規作成 ................................................................... 66コン ト ロールの追加 ....................................................................... 70

ピクチャの追加 ....................................................................... 72スタテ ィ ック テキスト コン ト ロールの追加 .......................... 74スタテ ィ ック テキスト コン ト ロールのプロパテ ィの指定 .... 74シングルライン エディ ッ ト コン トロールの追加................... 76シングルライン エディ ッ ト コン トロールのプロパティの

指定 .................................................................................. 77コマンドボタン コン ト ロールの追加...................................... 78コマンドボタン コン ト ロールのプロパティの指定 ................ 79

ウィンドウのタブ順序の変更 ........................................................ 80Help イベン トのコーディングとウィ ンドウのプレビュー ............ 82ログイン ウィンドウを開く スクリプ トの記述 .............................. 86

フレーム ウィンドウの Open イベン トの修正 ....................... 87スクリプ トのコンパイル ......................................................... 90

レ ッ スン 4 データベースへの接続 ..................................................................... 91EAS Demo DB データベースの参照 .............................................. 92

EAS Demo DB データベース プロファイルの参照................. 93EAS Demo DB データベースのテーブル定義の参照 .............. 96

接続オブジェク ト ウィザードの実行........................................... 101グローバル変数の宣言 ................................................................. 104接続情報の変更 ............................................................................ 109

of_GetConnectionInfo 関数の変更 ........................................ 109接続サービス マネージャの呼び出し .................................... 111

ログインおよびログアウト スクリプ トの完了 ............................ 114オートスクリプ ト シ ョート カッ トの設定............................. 115[OK] ボタンの Clicked イベン トに対するコードの追加 ..... 116[キャンセル] ボタンの Clicked イベン トに対するコード

の追加............................................................................. 118

iv PowerBuilder

Page 5: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

目次

アプリケーショ ンの Close イベン トに対するコードの追加 ................................................................................ 119

アプリケーシ ョ ンの実行.............................................................. 121

レ ッ スン 5 先祖ウィンドウの変更 .................................................................. 123探索パスへのライブラリの追加 ................................................... 124先祖シート ウィンドウの新規作成 .............................................. 126

新規シート ウィンドウの継承階層の作成............................. 127マスター データウィ ンドウ用のデータウィ ンドウ

コン トロール (dw_master) の追加 .............................. 129詳細データウィ ンドウ用のデータウィ ンドウ コン ト ロール

(dw_detail) の追加 ........................................................ 131ユーザ オブジェク トから継承されたスクリプ トの参照 ....... 132

ユーザ イベン トおよびイベン ト スクリプ トの追加 .................... 134データウィ ンドウ コン ト ロールのデータの検索を行う

スクリプ トの追加 ........................................................... 138シート ウィンドウのサイズに合わせた実行時の設定の調整....... 142

レ ッ スン 6 メニューの設定 ............................................................................. 143フレーム メニューの修正............................................................. 144

[フ ァイル] メニューの修正 ................................................. 145[ヘルプ] メニュー項目の有効化 .......................................... 147

シート メニューの新規作成 ......................................................... 149継承される新規メニューの作成および保存 .......................... 150新規メニューへのメニュー項目の追加 ................................. 151新規メニュー項目のツールバーの追加 ................................. 154

ユーザ イベン ト を発生させるメニュー スクリプ トの追加 ......... 156新規メニューのアタ ッチとアプリケーシ ョ ンの実行 .................. 158

レ ッ スン 7 データウィ ンドウ オブジェク トの作成 ........................................ 161データウィ ンドウ オブジェク トの新規作成とプレビュー .......... 162データウィ ンドウ オブジェク トの保存 ....................................... 1661 つめのデータウィ ンドウ オブジェク トの表示の変更 .............. 1672 つめのデータウィ ンドウ オブジェク トの作成 ......................... 169

データ ソースおよびスタイルの選択 .................................... 169テーブルとカラムの選択 ....................................................... 170検索引数の定義 ..................................................................... 171WHERE 句の指定.................................................................. 172データウィ ンドウ ペインタでのデータウィ ンドウの表示 ... 173データウィ ンドウ オブジェク トの保存 ................................ 176

2 つめのデータウィ ンドウ オブジェク トの表示の変更 .............. 178カラムとラベルの再配置 ....................................................... 178ラベルとカラムの整列 .......................................................... 180

PowerBuilder 入門 v

Page 6: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

目次

ドロップダウン データウィ ンドウ編集スタイルの矢印の表示 ................................................................................ 181

レ ッ スン 8 データウィ ンドウ オブジェク トのアタ ッチ ................................. 183マスター データウィ ンドウ コン ト ロールへの

データウィンドウ オブジェク トのアタ ッチ .................. 184詳細データウィ ンドウ コン ト ロールへのデータウィ ンドウ

オブジェク トのアタ ッチ ................................................ 187アプリケーシ ョ ンの実行.............................................................. 189商品管理 ウィンドウへのデータウィ ンドウ オブジェク トの

アタ ッチ ......................................................................... 193アプリケーシ ョ ンの再実行 .......................................................... 195

レ ッ スン 9 デバッガの実行.............................................................................. 199アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加 .... 200デバッグ モードでのアプリケーショ ンの実行 ............................ 204ウォッチと条件ブレークポイン トの設定 .................................... 209

レ ッ スン 10 例外処理 ........................................................................................ 211既存のアプリケーショ ンへの新規のシート ウィンドウの追加 ... 212

シート ウィンドウの作成 ...................................................... 213メイン アプリケーシ ョ ン フレームからシート ウィンドウ

にアクセスできるようにする ......................................... 215ユーザ定義の例外オブジェク トの作成 ........................................ 218新規のユーザ関数とユーザ イベン トの作成 ................................ 220メ ソ ッ ドの呼び出しと例外の捕捉 ............................................... 223アプリケーシ ョ ンの実行.............................................................. 226

新規のシート ウィンドウのテスト ....................................... 226ゼロによる除算エラーのテス トの追加 ................................. 229

レ ッ スン 11 アプリケーシ ョ ン配布の準備 ........................................................ 233プロジェク ト オブジェク トの作成 .............................................. 234実行ファイルの作成 ..................................................................... 237シ ョート カッ トの作成 ................................................................. 239実行ファイルのテス ト ................................................................. 241

vi PowerBuilder

Page 7: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 3 部 WEB アプリケーシ ョ ンの構築

レ ッ スン 12 Web ページの作成 ........................................................................ 245PowerDynamo Web サイ トの作成 ............................................... 247基本 Web ページの作成と修正..................................................... 250

4GL を用いた Web ページの作成.......................................... 250フォン トの変更...................................................................... 253グラフ ィ ックの追加 .............................................................. 254グラフ ィ ックへの絶対位置の追加......................................... 255

ページ ナビゲーシ ョ ンの追加...................................................... 257商品情報の Web ページの作成.............................................. 257ハイパーリンクの追加........................................................... 258ボタンの追加 ......................................................................... 259

検証と リダイレク ト を行うログイン ページの作成 ..................... 261基本ログイン ページの作成................................................... 262セッシ ョ ン変数の追加........................................................... 263シングル ライン テキスト コン ト ロールの追加.................... 264パスワードの検証の追加 ....................................................... 266サーバ リダイレク トの追加................................................... 268

スタート ページの指定................................................................. 269Web サイ トの配布と実行............................................................. 270

レ ッ スン 13 Web データウィ ンドウの使い方................................................... 273EAServer 接続プロファイルのセッ トアップ ............................... 275Web データウィンドウ コンテナの構築 ...................................... 277Web データウィンドウ コンテナを使用しての Web ページの

作成................................................................................. 279データウィ ンドウ Web ページへのほかのコン ト ロールの追加 .. 282

新規の商品情報ボタンの有効化 ............................................ 282データベースを更新するボタンの追加.................................. 285[商品情報] ページへのハイパーリンクの追加 ..................... 285

既存の Web ページへのデータウィ ンドウの追加........................ 287商品情報の検索機能の追加 .......................................................... 290Web アプリケーシ ョ ンのテスト と実行 ....................................... 292

Addproduct.htm Web ページのテスト ................................... 292データベースへの新しい商品の追加 ..................................... 294Web アプリケーシ ョ ンの実行............................................... 295

PowerBuilder 入門 vii

Page 8: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 4 部 JSP WEB サービス アプリケーシ ョ ンの作成

レ ッ スン 14 JSP Web サービス アプリケーシ ョ ンの作成............................... 303JSP ターゲッ トの作成 ................................................................. 304簡単な JSP アプリケーシ ョ ンでの Web サービスの利用............ 307

JSP アプリケーシ ョ ンの非 4GL ページの作成..................... 307アプリケーシ ョ ンのスタート ページを完成させる............... 310JSP Web サービス プロキシ ウィザードを使用する ............ 312Web サービスへの呼び出しの追加........................................ 314アプリケーシ ョ ンの構築、 配布、 実行.................................. 317

4GL JSP アプリケーシ ョ ンでの Web サービスの利用................ 3184GL JSP ページの作成.......................................................... 3184GL ページへの Web サービスとページ変数の追加............. 3194GL JSP ページへのテーブルの追加 .................................... 320Web サービスへの呼び出しの完了........................................ 3234GL JSP ページの構築、 配布、 実行 .................................... 325

索 引............................................................................................................................................. 327

viii PowerBuilder

Page 9: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

本書について

目的 このマニュアルは、 PowerBuilder を使用して開発を始めるための情報を提供しています。

• 第 1 部 PowerBuilder 開発環境の概要です。

• 第 2 部 PowerBuilder アプリ ケーシ ョ ンを初めて構築される方のためのチュート リ アルです。

• 第 3 部 PowerDynamo Web ターゲッ ト の作成、 Web サイ ト の配布と実行、 および Web データウ ィ ンド ウの使い方についてのチュート リ アルです。

• 第 4 部 Web サービスのク ラ イアン ト ページを含む JSP Webターゲッ ト を作成および実行するチュート リ アルです。

対象とする読者 このマニュアルは、 PowerBuilder を使用してアプ リ ケーシ ョ ンを構築するあらゆる開発者を対象と しています。

オンライン ヘルプ PowerBuilder を使用して開発している と きはいつでも、 オンラ イン ヘルプを参照できます。 オンライン ヘルプでは、以下のこ とを参照できます。

• 操作手順 アプ リ ケーシ ョ ン作成の操作手順

• リファレンス情報 ト ピ ッ クやコンポーネン ト に対する リ ファレンス情報

• 状況依存ヘルプ ス ク リプ ト中の関数や予約語に対する状況依存ヘルプ

関連マニュアル 次の表に、 PowerBuilder のマニュアル セッ ト を、 項目ごとに分けて示します。

項目 マニュアル 説明

インス トール、機能ガイ ド、 およびチュート リアル

PowerBuilder インストール ガイ ド

PowerBuilder のインス ト ール方法を解説しています。

PowerBuilder 入門 PowerBuilder について概説し、基本的 な 使い方 を 段階的に学べ るチュート リアルです。

PowerBuilder 入門 ix

Page 10: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリ ケーシ ョン開発

ユーザーズ ガイ ド PowerBuilder でペインタ を使用してオブジェ ク ト を構築する方法を解説しています。

アプ リケーシ ョ ン テクニッ ク

共通のアプ リ ケーシ ョ ン機能を実装する ためのテ ク ニ ッ ク集のほか、 配布に関する詳細や、 ク ロ スプラ ッ ト フォーム アプリ ケーシ ョンの開発と配布のためのアドバイスを紹介しています。

データウ ィンド ウ プログラマーズ ガイ ド

サポー ト し ているすべての環境(PowerBuilder、 Web ページ、 Java)でデータウ ィ ン ド ウを使用する方法や、データのアクセス、表示、操作、 更新に関するプログラ ミ ングのテクニッ クを説明します。

Web ターゲッ ト と JSP ターゲッ トでの作業

PowerBuilder の Web ターゲッ ト をビルド、 配布、 デバッ グ、 実行する方法を解説しています。

プログラマーズ リ ファレンス

PowerScript リ ファレンス

PowerScript 言語 (変数、式、ステート メ ン ト、 関数、 イベン ト ) の構文と使い方を解説しています。

データウ ィンド ウ リ ファレンス

データウ ィ ンド ウ オブジェク ト のリ フ ァ レンス情報 (た とえば、 式のプロパテ ィや関数、 データやプロパテ ィにアクセスするための構文、 すべてのサポー ト 環境におけるデータウ ィ ンド ウ コン ト ロールやデータス ト アのメ ソ ッ ド、 イベン ト 、 およびプロパテ ィの リ フ ァレンスなど) を掲載しています。

Web ターゲッ ト と JSP ターゲッ ト リファレンス

Web ターゲッ ト オブジェク ト モデルのオブジェ ク ト およびク ラスのリ ファレンスが載っています。

オブジェク ト と コン ト ロール

PowerBuilder システムのオブジェク トおよびコン ト ロールのプロパテ ィ、 イベン ト、 関連する関数のリ ス ト を示します。

PowerBuilder ネイティブ インタフェース (PBNI)プログラマーズ ガイ ド と リ ファレンス

PBNI を使用して PowerBuilder エクステンシ ョ ンを作成し、 C++ アプリ ケーシ ョ ン と対話する方法およびリ フ ァ レンス情報を掲載しています。

項目 マニュアル 説明

x PowerBuilder

Page 11: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

本書について

そのほかの参考資料 製品に関するそのほかの詳細情報については、 Sybase のテクニカル ライブラ リ CD、 およびテクニカル ラ イブラ リ製品マニュアル Web サイト (英語) を参照して ください。

• ソフ ト ウェア付属のテクニカル ラ イブラ リ CD には、 製品マニュアルが含まれています。 製品マニュアルは、 PDF 形式にて提供しています。

テクニカル ラ イブラ リ CD の使い方については、 テクニカル ラ イブラ リ CD 内の Readme.txt ファ イルを参照して ください。

• テクニカル ラ イブラ リ製品マニュアルの Web サイ ト (英語)には、Product Manuals http://www.sybase.com/support/manuals/ からアクセスできます。

サポートについて 製品に同梱している 「サポート ハンドブッ ク」 を参照して ください。

PowerBuilder エクステンシ ョ ン リ ファレンス

PBNI を使用して作成した PowerBuilder 拡張モジュール(PBDOM、 EJBClient、 Web サービスなど) についてのリ ファレンスです。

データベース関連

データベース との接続

PowerBuilder からのデータベースへの接続方法のほか、 PowersoftODBC インタフェースまたはネイテ ィ ブの Powersoft データベースインタフェースのいずれかを介してアクセス されるデータベース接続のセッ ト アップ、 定義、 管理方法について解説しています。

接続リ ファレンス データベース接続を作成、定義、確立、保守、ト ラブルシューティ ングするための手順を掲載しています。

PowerBuilder Foundation Class Library (PFC)

PFC ユーザーズ ガイ ド

アプリ ケーショ ン開発プロ セスを加速するためのオブジェク ト 、サービス、およびユーティ リ ティ を含むPFC(PowerBuilder Foundation Class)の使用方法と拡張方法について解説しています。

PFC オブジェク ト リ ファレンス

PFC で提供しているオブジェク ト 、インスタンス変数、イベント 、関数について解説しています。

項目 マニュアル 説明

PowerBuilder 入門 xi

Page 12: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

xii PowerBuilder

Page 13: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 部 PowerBuilder の紹介

第 1 部は、 PowerBuilder 開発環境の概要です。

Page 14: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加
Page 15: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

この章について この章では、 チュー ト リ アルの第 2 部から第 4 部で使用するPowerBuilder 開発環境について解説します。 また、 PowerBuilder の構築ブロッ クについても解説します。

内容

詳細について PowerBuilder 開発環境についての詳細は、 『PowerBuilder ユーザーズ ガイ ド』 マニュアルを参照して ください。

PowerBuilder とはPowerBuilder は、 多くの種類のアプ リ ケーシ ョ ンおよびコンポーネン ト を構築するための企業向け開発ツールです。PowerBuilder を使用すれば、 ク ラ イアン ト / サーバ アプリ ケーシ ョ ン、 多層アプリ ケーシ ョ ン、 およびインターネッ ト アプリ ケーシ ョ ンを開発できます。

PowerBuilder アプリケーシ ョ ンの構成について

PowerBuilder ク ラ イアン ト アプ リ ケーシ ョ ンの構成内容は以下のとおりです。

• ユーザ インタフェース メ ニュー、 ウ ィ ン ド ウ、 およびウ ィ ンド ウ コン ト ロールです。 ユーザはこれら と対話するこ とでアプリ ケーシ ョ ンを制御します。

• アプリケーシ ョ ン処理ロジック イベン ト および関数のス ク リプ トです。 ビジネス ルールや入力条件則などの処理コードをこの中に記述します。 PowerBuilder では、アプリ ケーシ ョ ン処理ロジッ クのコードをユーザ インタフェースの一部と して、またはカスタム ク ラス ユーザ オブジェ ク ト と呼ばれる別のモジュールと して記述できます。

項目 ページ

PowerBuilder と は 3PowerBuilder の環境 6

PowerBuilder オブジェク ト 12

PowerBuilder 入門 3

Page 16: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder とは

PowerBuilder アプリケーシ ョ ンのコンポーネン トについて

多層アプ リ ケーシ ョ ンでは、 アプ リ ケーシ ョ ン処理ロジッ クが含まれているモジュールをサーバに配布できます。また EAServer コンポーネン ト または COM コンポーネン ト と して機能するよ うに設計されたコンポーネン ト を構築するこ と もできます。

PowerBuilder イベント駆動型のアプリケーシ ョ ン

ク ラ イアン ト アプリ ケーシ ョ ンでは、 ユーザがと るアクシ ョ ンによって処理内容が制御されます。 たとえば、 ユーザがボタンをク リ ッ ク した り、 メニュー項目を選択した り、 テキス ト ボッ クスにデータを入力する と、 1 つまたは複数のイベン トが発生します。 開発者はイベン ト発生時に実行する処理をスク リプ トに記述します。

ウ ィ ン ド ウやコン ト ロールなど、 PowerBuilder で作成するアプ リ ケーシ ョ ン コンポーネン トには、 定義済みイベン トのセッ トが用意されています。 たとえば、 各ボタンには Clicked イベン ト、 各テキス ト ボックスには Modified イベン トが関連付けられています。 たいていの場合は定義済みのイベン トだけあれば十分ですが、 場合によっては独自のイベン ト を定義する必要が生じるこ と もあ り ます。

PowerScript 言語 スク リプ トは、PowerBuilder の PowerScript 言語を使用して記述します。スク リプ トは、 イベン トに応答して処理を実行するための PowerScriptコマンド、 関数、 およびステート メ ン トから構成されます。

たとえば、ボタンの Clicked イベン ト用スク リプ ト を使用して、データベース か ら情報を取 り 出 し て表示し た り、 テキ ス ト ボ ッ ク スのModified イベン ト 用ス ク リ プ ト を使用して、 データを評価してそのデータに基づいて処理を実行できます。

また、 あるイベン ト スク リプ ト を実行して、 別のイベン ト を発生させるこ と も可能です。たとえば、ボタンの Clicked イベン ト用スク リプ トを実行し、 別のウ ィ ン ド ウの Open イベン ト を発生させてそのウ ィ ンド ウを開く こ と もできます。

PowerScript 関数 PowerScript には豊富な組み込み関数が用意されており、 これらの関数を使用するこ とでアプ リ ケーシ ョ ンの各種コンポーネン トの操作を行う こ とができます。 たとえば、 関数にはウ ィ ンド ウを開く関数、 ウ ィン ド ウを閉じる関数、 ボタンを有効にする関数、 データベースを更新する関数などがあ り ます。

また、 PowerBuilder では開発者が独自の関数を作成して、 アプ リ ケーシ ョ ン固有の処理を定義するこ と もできます。

4 PowerBuilder

Page 17: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

PowerBuilder でのオブジェク ト指向プログラ ミング

PowerBuilder で作成される メニューやウ ィ ン ド ウは、 それぞれ独立したモジュールであ り、 オブジェ ク ト と呼ばれます。 これらの作成オブジェク ト を組み合わせてアプ リ ケーシ ョ ンを構築します。 各オブジェク ト には、 そのオブジェ ク ト に適した特性および動作 (プロパテ ィ、イベン ト、 関数) が含まれています。 カプセル化、 継承、 多相性 (ポリモフ ィズム) のよ うなオブジェク ト指向プログラ ミ ング テクニッ クを利用するこ とによ り、 作成された各オブジェク ト を 大限に活用して、 再利用性が高く、 拡張性に富み、 高性能なオブジェク ト を使用するこ とができます。

インターネッ ト アプリケーシ ョ ン

Enterprise エディシ ョ ンを使用している場合は、 Web ターゲッ ト テクノ ロジを利用して Web 上で稼働する PowerBuilder アプリ ケーシ ョ ンを開発できます。Web ターゲッ ト を使用する と、 ク ラ イアン ト サイ ド スク リプ ト 、サーバ サイ ド スク リプ ト、データベース コンテンツ、 Webデータウ ィ ンド ウ、および EAServer コンポーネン ト を含む複雑な Webページを構築できます。

どのエデ ィ シ ョ ンの PowerBuilder で も、 データ ウ ィ ン ド ウおよびPowerBuilder ウ ィンドウ プラグイン、PowerBuilder ウ ィンド ウ ActiveX、および ActiveX 対応のデータウインド ウ Web コン ト ロールを使用できます。

Web ターゲッ トについては、『Web ターゲッ ト と JSP ターゲッ トでの作業』 マニュアルを参照して ください。 PowerBuilder のプラグインについては、 『アプ リ ケーシ ョ ン テクニッ ク』 マニュアルを参照して ください。ActiveX 対応の データウ ィ ンド ウ Web コン ト ロールについては、『データウ ィンド ウ プログラマーズ ガイ ド』 マニュアルおよび 『データウ ィンド ウ リ ファレンス』 マニュアルを参照して ください。

多層アプリケーシ ョ ン PowerBuilder を使用すれば、 分散コンピューティ ング環境で稼働するアプ リ ケーシ ョ ンを開発できます。 多層アプ リ ケーシ ョ ンには以下の利点があ り ます。

• ビジネス ロジッ クをサーバ (EAServer サーバまたは MTS) に集中させるこ とができる

• アプ リ ケーシ ョ ン機能を ク ラ イアン ト とサーバに分割でき るため、 ク ラ イアン トの負荷を軽減できる

• 保守が容易なスケーラブル アプリ ケーシ ョ ンを構築できる

多層アプリ ケーシ ョ ンについては、『アプ リ ケーシ ョ ン テクニッ ク』 マニュアルの分散型アプ リ ケーシ ョ ン テクニッ クに関する節を参照して ください。

PowerBuilder 入門 5

Page 18: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder の環境

データベース接続 PowerBuilder では、 さまざまなデータベースに格納された企業の情報に簡単にア クセスでき ます。 データは、 PowerBuilder ODBC またはJDBC インタフェース、 中間層のデータ アクセス サーバを介して、 あるいはデータベースへのネイティブ (直接) 接続によってアクセスできます。

データベース接続については、『データベース との接続』 マニュアルを参照して ください。

オンライン ヘルプとドキュメン ト

PowerBuilder のオンライン ヘルプは、 インタフェースの [ヘルプ] ボタンおよびメ ニュー項目、 または 〔F1〕 キーによって、 PowerBuilderのどこからでもアクセスできます。 オンライン ヘルプのさまざまな場所から HTML 形式のブッ クにジャンプできます。オンライン ヘルプには、 HTML 形式のマニュアルへのジャンプ項目があ り ます。

PowerBuilder の環境ワークスペースとターゲッ ト

PowerBuilder では、 ワークスペース内で 1 つまたは複数のターゲッ トを操作します。 ターゲッ ト を必要なだけワークスペースに追加して、複数のターゲッ ト内のオブジェ ク ト を開いて編集し、 それぞれのターゲッ ト を一度に構築して配布できます。

PowerBuilder のターゲッ トは、 以下の 2 種類のいずれかです。

• PowerScript ターゲッ ト ク ラ イアン ト /サーバ実行アプリ ケーシ ョン、 多層実行可能アプ リ ケーシ ョ ン、 またはサーバ コンポーネントです。

• Web ターゲッ ト Web アプ リケーシ ョ ンです。Web サイ ト構築に必要な要素 (HTML ファ イル、 スク リプ ト 、 画像、 ダウンロード されたコンポーネン ト ) のほか、 構築オプシ ョ ン、 データベース接続、 配布の設定などが含まれています。

チュート リ アルの 初のレッスンでは、 ワークスペース と PowerScriptターゲッ トの作成方法を案内します。 以降のレッスンでは、 Web ターゲッ トの作成方法を学びます。

6 PowerBuilder

Page 19: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

開発環境 PowerBuilder を起動する と、 上部にメニュー バーとパワーバー、 左端にシステム ツリ ーと ク リ ップ ウィ ンド ウのあるウィ ンド ウが開きます。

システム ツリー システム ツ リー ウ ィ ンド ウは、開発活動の中心と して機能します。システム ツ リー ウ ィ ンド ウを使用して、 ターゲッ トのオープン、 実行、デバッグ、 および構築や、 ド ラ ッグ アンド ド ロ ップ プログラ ミ ングを行います。

クリ ップ ウィンドウ ク リ ップ ウ ィンド ウには、頻繁に使用するコード フラグメン ト を保存できます。

出力ウィンドウ メ イン ウ ィンド ウの下部にある出力ウ ィンド ウには、 各種の操作 (移行、 構築、 配布、 プロジェ ク ト実行、 オブジェ ク トの保存、 および検索) の出力が表示されます。

ペインタ ワークスペース と PowerScript ターゲッ ト を作成したら、ペインタを使用してターゲッ トのコンポーネン ト を構築します。 ペインタにはオブジェク ト を作成するためのツールが提供されています。

PowerBuilder では、 作成するオブジェ ク トの種類に対してそれぞれペインタが用意されています。 たとえば、 ウ ィンド ウはウ ィンド ウ ペインタで作成します。 ウ ィンド ウ ペインタでウ ィンド ウのプロパティ を定義し、 ボタンやテキス ト ボッ クスなどのコン ト ロールを追加できます。

PowerBuilder 入門 7

Page 20: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder の環境

エディ タ Web ターゲッ トには、HTML、スタイルシート、フレームセッ ト エディタが用意されています。 HTML エディ タでは、 ソース形式や表示形式でページを編集した り、 結果をプレビューできます。 スタン ドアロン型のスク リプ ト エディ タ、 または HTML エディ タに組み込まれたエディ タを使用できます。

ウィザード ウ ィザードを使用する と、アプ リ ケーシ ョ ン、オブジェク ト 、コンポーネン ト 、 Web サイ ト、 および Web ページを簡単に作成できます。

デザイン タイム コント ロール

デザイン タ イム コン ト ロール (DTC) では、 プロパティ シートで指定した情報に基づいて、基本的な HTML およびスク リプ ト を作成できます。 プロパティ シートは、 HTML エディ タで DTC を Web ページ上にド ロ ップする と表示されます。

Web データウ ィンド ウ の DTC を使用する と、 Web ページからデータベースに簡単にアクセスできます。 DTC を使用する と、 動的なデータベース コンテンツがさまざまな形式で表示されます。 また、 DTC によって、データベースに対する挿入、更新、削除がサポート されます。

To-Do リスト To-Do リ ス ト には、 現在のターゲッ トに対して実行する必要のある開発タスクの リ ス ト が表示されます。 To-Do リ ス ト上のエン ト リは、 ほとんどの PowerBuilder ウ ィザードで自動的に作成できます。 エン ト リを入力、 またはテキス ト フ ァ イルからエン ト リ をインポー ト した後で、それらのエン ト リ を遂行するタスクにリ ンクするこ と も可能です。

ブラウザ ブラウザを使用する と、 オブジェク ト 、 メ ソ ッ ド、 変数、 および構造体のう ち、PowerScript ターゲッ ト用に定義したものや PowerScript ターゲッ ト で使えるものをすべて表示できます。 ブラウザ内のオブジェ クトは、 アルファベッ ト順または階層順に表示できます。 メ ソ ッ ド と ともに、 (あらゆる引数および戻り値のデータ型を含む) 完全な署名も、ブラウザに表示されます。

パワーバー パワーバーは、PowerBuilder セッシ ョ ンを開始する と表示されます。パワーバーは、 アプリ ケーシ ョ ン構築に際して中心的な役割を果たします。 パワーバーで [新規作成] 、 [オブジェク トの継承] 、 または [開く] ボタンをク リ ッ クする と、 すべての PowerBuilder ペインタを開くこ とができます。パワーバーでは、ブラウザを開いて、現行アプ リ ケーシ ョ ンのデバッグや実行、 およびワークスペースの構築や配布を行えます。

8 PowerBuilder

Page 21: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

ペインタバー ペインタまたはエディ タを開く と、 ワークスペースのあるウ ィ ンド ウが表示されます。 構築するオブジェク トの設計は、 このワークスペースで行います。 また、 PowerBuilder では、 ボタン付きのペインタバーが 1 つまたは複数表示されます。 このボタンを使用する と、 ペインタまたはエディ タで使用可能なツールに簡単にアクセスできます。

スタイルバー テキス ト コン ト ロールを含めるこ とができるペインタ (たとえばウ ィンド ウ ペインタ) を開く と、 スタイルバーが表示されます。 スタイルバー上のボタンを使用して、 フォン トやポイン ト サイズなどのテキスト プロパティを変更できます。

PowerTips ボタンの上にマウス ポインタを数秒置く と、 ボタンについての簡単な説明 (PowerTips) が表示されます 。 PowerTips の表示と非表示は、 任意のツールバーのポップアップ メ ニューで [PowerTips の表示] メニュー項目を選択して切り替えます。

また、任意のツールバーのポップアップ メニューで [テキス トの表示]を選択すれば、 機能を簡単に示すテキス ト をそれぞれのツールバー ボタン上に表示するこ と もできます。

環境のカスタマイズ ツールバー ボタンのテキス ト表示に加えて、 ツールバーの配置場所を変更したり、 新規ツールバーの追加や既存のツールバーのカスタマイズを行う こ と もできます。 また 「ペインタを開く」 などの作業を実行するボタンを追加するこ と もできます。

システム ツ リー、 ク リ ップ ビュー、および出力ビューの並べ替え、各ペインタのカスタム レイアウ トのセッ ト アップ、 後に使用したワーク スペースをペインタやエディ タの起動時に開く かど う かの選択、シ ョート カッ ト キーのカスタマイズ、 さ らにスク リプ トに使用する色とフォン トの変更なども行う こ とができます。

パワーバーのボタン パワーバー上のボタンを使用すれば、 頻繁に使用する PowerBuilder のタスクにすばやくアクセスできます。

PowerBuilder 入門 9

Page 22: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder の環境

表 1-1: パワーバーのボタン

ボタン 説明

ワークスペース、 ターゲッ ト 、 コンポーネン ト などのオブジェク ト を新規作成するか、 またはツールを開く

メニュー、ユーザ オブジェク ト 、 またはウ ィンド ウを継承する

既存のアプリケーシ ョ ン、データウ ィンド ウ、関数、 メニュー、パイプラ イン、 プロジェ ク ト、 クエ リ、 構造体、 ユーザ オブジェク ト 、 ウ ィ ンド ウ、 HTML ページ、 HTML フレーム、 スタイルシート、 またはスク リプ ト ファ イルを開く

ウ ィン ド ウ オブジェク ト またはデータウ ィ ンド ウ オブジェ クト をプレビュー表示する

システム ツ リー ウ ィンド ウの表示と非表示を切り替える

出力ウ ィンド ウの表示と非表示を切り替える

出力ウ ィンド ウ内の次の行に移動する

出力ウ ィンド ウ内の直前の行に移動する

実行する必要のある開発タスクの リ ス ト を表示する。 これらはユーザが手動で入力するか、 PowerBuilder ウ ィザードで自動的に入力が可能

オブジェ ク ト プロパティやグローバル変数のよ う なオブジェク ト情報を参照したり、 コピー、 エクスポート、 印刷を行う

ク リ ップ ウ ィンド ウの表示と非表示を切り替える

オブジェク ト を格納するライブラ リの作成や管理を行う

データベースへの接続の方法を指定する

EAServer への接続の方法を指定する

10 PowerBuilder

Page 23: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

データベースの管理、 データベースへのユーザ アクセスの制御、 データベース内のデータの操作を行う

ファ イルを編集する

ワークスペースのインク リ メンタル構築を開始する

ワークスペースのフル構築を開始する

ワークスペースを配布する

ワーク スペースのフル配布などの一連の操作が進行している間に、 次の操作に飛ぶこ と も可能

構築や配布の操作、 または一連の操作を停止する

現在のターゲッ トに対してデバッグを実行する

ターゲッ ト を選択し、 そのデバッグを実行する

現在のターゲッ ト を実行する

ターゲッ ト を選択して実行する

PowerBuilder を終了する

ボタン 説明

PowerBuilder 入門 11

Page 24: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder オブジェク ト

PowerBuilder オブジェク トPowerScript ターゲッ ト の基本構築ブロ ッ ク と してのオブジェ ク ト には、 以下のものがあ り ます。

表 1-2: PowerScript ターゲッ トの基本構築ブロック

これらのオブジェク トについては、 以降の節で詳し く解説します。

アプリケーシ ョ ン オブジェク ト

PowerBuilder では、 アプ リ ケーシ ョ ンの構築作業の前にアプ リ ケーシ ョ ン オブジェク ト を作成します。アプ リ ケーシ ョ ン オブジェク ト とは、 ウ ィンド ウ、 メニュー、 関数、 データウ ィンド ウ オブジェク ト などと同様に、 ラ イブラ リ (PBL ファ イル) 内に保存される独立したオブジェク トです。

アプ リ ケーシ ョ ン オブジェク トには、アプリ ケーシ ョ ン レベルの動作形態を定義します。 たとえば、 テキス トのデフォルト フォン ト と してどのフォン ト を使用するか、 アプ リ ケーシ ョ ンを開始する と き と終了する と きに行う処理の内容などを定義します。

オブジェク ト 説明

アプリ ケーシ ョ ン アプ リ ケーシ ョ ンの構築作業の前にアプ リ ケーシ ョ ン オブジェク ト を作成する

ウ ィンド ウ ユーザと PowerBuilder アプ リ ケーシ ョ ン間の主要なインタフェース

データウ ィンド ウ リ レーシ ョ ナル データベースやほかのデータ リソースからデータを取得および操作する

メニュー 現行のアクテ ィブ ウ ィ ン ド ウで選択可能なコマンドやオプシ ョ ンを一覧表示する

グローバル関数 一般的な目的の処理を実行する

クエリ データウ ィンド ウ オブジェク トのデータ ソース として繰り返し使用される SQL 文

構造体 1 つまたは複数の関連する変数を 1 つの名前でグループ化したコレクシ ョ ン

ユーザ オブジェク ト 再使用可能な処理モジュール、またはビジュアルあるいは非ビジュアルなコン ト ロールのセッ ト

パイプライン 1 つのデータベースまたは複数のデータベース間でデータを複製 (転送) する

プロジェク ト ユーザ配布用にアプ リ ケーシ ョ ンをパッケージ化する

12 PowerBuilder

Page 25: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

ユーザがアプ リケーシ ョ ンを実行する と、 アプ リ ケーシ ョ ン オブジェク ト の Open イベン ト が発生します。 アプ リ ケーシ ョ ン内のアクテ ィビティは、Open イベン ト用に記述したスク リプ トによって開始されます。 ユーザがアプ リケーシ ョ ンを終了する と、 アプ リ ケーシ ョ ン オブジェク トの Close イベン トが発生します。

通常は、 アプ リ ケーシ ョ ンの終了に必要な作業 (データベースを閉じる、環境設定ファイルに書き込みをするなど) をすべて、 Close イベント用に記述したスク リプ トで実行します。 実行中に PowerBuilder の例外処理メカニズムによって捕捉できない深刻なエラーが発生した場合は、 アプ リ ケーシ ョ ン オブジェク トの SystemError イベン トが発生します。

図 1-1: アプリケーシ ョ ンのライフ サイクル

ウィンドウ ウ ィ ンド ウは、 ユーザと PowerBuilder アプリ ケーシ ョ ン間の主要なインタフェースです。 ウ ィ ンド ウは、 情報を表示した り、 ユーザに情報を要求した り、ユーザによるマウスやキーボードの操作に応答します。

ウ ィ ンド ウは以下の内容から構成されます。

• プロパティ : ウ ィンド ウの外観や動作を定義する (たとえば、 ウ ィンド ウにタイ トル バーや 小化ボタンを付けるこ と も可能)。

• イベン ト : ユーザのアクシ ョ ンによって発生する

PowerBuilder 入門 13

Page 26: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder オブジェク ト

• コン ト ロール : ウ ィンド ウ上に配置されるスタティ ッ ク テキス トやコマンドボタンなどの総称

ウ ィ ンド ウには、 以下の図のよ うに、 いろいろな種類のコン ト ロールがあ り ます。

ウ ィ ンド ウの左端には、 水平ト ラ ッ クバーおよび垂直ト ラ ッ クバーが付いたデータウ ィンド ウ コン ト ロールがあ り ます。 右端には、 グループ ボッ クス (スタティ ッ ク テキス ト コン ト ロール、スピンコン ト ロール プロパティ をオンにしたエディ ッ ト マスク コン ト ロール、チェッ クボッ クスを含む) と、 そのグループ ボッ クスよ り も小さな、 ラジオボタン付きグループ ボッ クス 2 つがあ り ます。グループ ボッ クスの下部には、 コマンド ボタンがあ り ます。

データウィンドウ オブジェク ト

データウ ィンド ウ オブジェク トは、リ レーシ ョナル データベースやほかのデータ ソース (たとえば、 Excel のワークシートや dBASE ファ イル) のデータの検索や操作を行うオブジェク トです。

提示様式 データウ ィ ン ド ウ オブジェ ク ト では、 ユーザがいくつかの種類の中から提示様式を選択し、 その提示様式を使用してデータを処理します。たとえば、タブラ提示様式やフ リーフォーム提示様式でデータを表示できます。

14 PowerBuilder

Page 27: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

データウ ィ ン ド ウ オブジェ ク ト のデータの提示および操作を向上させるには、 た く さんの方法があ り ます。 たとえば、 データウ ィ ンド ウの検索データに直接結び付けられた計算フ ィールドやピクチャ、 グラフなども使用できます。

表示様式、 編集様式、 入力条件則 カラムに対する表示様式、 編集様式、入力条件則を定義するこ とによって、 カラムにデータを表示する と きの書式を指定した り、 データ ウ ィ ン ド ウ オブジェ ク ト で入力されたデータを確認できます。

以下に例を示します。

• 数個の決まった値しか入力できないカラムの場合、 データをラジオ ボタンと して表示し、 エンド ユーザに値を選択させます。

PowerBuilder 入門 15

Page 28: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder オブジェク ト

• データが電話番号、 給与額、 日付の場合、 データに適した表示様式を指定できます。

• 限られた範囲の数値しか入力できないカラムには、 入力条件則を指定します。 入力条件則を使用すれば、 入力されたデータが有効かど うかを判定するコードを記述する必要がなくな り ます。

Web データウィンドウ EAServer または MTS で実行される PowerBuilderコンポーネン ト を使用して HTML を生成するこ とによ り、HTML 形式のデータウ ィ ン ド ウ オブジェ ク ト を生成してブラ ウザで表示できます。 Web ターゲッ ト での Web データウ ィ ン ド ウの使用方法については、 チュート リ アルのレッスンの 1 つで案内します。

メニュー メニューは、 ユーザが現行のアクティブなウ ィンド ウのメニュー バーで選択できる メニュー項目のリ ス トです。 通常、 メニュー項目はそれぞれ関連があ り ます。 メニューには、 コマンドが用意された り、 あるタスクを実行するための代替手段が用意されます。 コマンド とは、 たとえば、 PowerBuilder の [ファ イル] メニューの [開く] や [名前を付けて保存] などです。 代替手段とはたとえば、 ウ ィンド ウ ペインタの[編集] メニューの項目などであ り、各項目はそれぞれペインタ バーのボタンに対応します。

マウスやキーボードでメニュー項目を選択した り、 メニュー項目に対して定義してあるアクセラレータ (ニーモッ ク アクセス) キーを使用できます。[ツール|シ ョート カッ ト ] メニュー項目を選択して開いたダイアログボッ クスで、 任意の PowerBuilder メニュー項目のキーボード シ ョート カッ ト を独自に定義できます。

16 PowerBuilder

Page 29: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

ド ロ ップダウン メニューは、メニュー バーのメニュー項目の下に表示される メ ニューです。 カスケード メ ニューは、 ド ロ ップダウン メニューの隣に表示される メニューです。

PowerBuilder では、 メニューの選択肢をそれぞれ、 メニュー オブジェク ト と して定義します。 上図のウ ィンド ウではメニュー バーに 2 つのメニュー オブジェク ト ([ファ イル] と [データ]) があ り ます。 [データ]のド ロ ップダウン メニューには 3 つのメニュー オブジェク ト ([更新]、 [削除]、 [キャンセル]) があ り、 [更新] メニューのカスケードメニューに 2 つのメニュー オブジェク ト ([現在の行]、[すべての行])があ り ます。

グローバル関数 PowerBuilder では、 以下の 2 種類の関数を定義できます。

• オブジェ ク ト関数は、 特定のオブジェ ク ト型 (た とえば、 ウ ィ ンド ウやメニュー) 用に定義され、 そのオブジェ ク ト関数が定義されているオブジェ ク トの内部にカプセル化されます。 さ らに、 システム関数 (特定のオブジェク ト ク ラスのオブジェク トがいつでも使用できる関数) とユーザ定義関数に分類されます。

• グローバル関数は、どのオブジェク ト内にもカプセル化されず、独立したオブジェク ト と して格納されます。

グローバル関数は、オブジェク ト関数とは異な り、特定のオブジェク ト インスタンスでは使用しません。 そのかわり、 計算や文字列処理などの一般的な処理に使用します。

クエリ クエ リ とは、 データウ ィ ンド ウ オブジェク トのデータ ソース と して再利用できるよ うに名前を付けて保存した SQL 文です。 クエ リは、一度コードを記述すれば必要に応じて再利用できるので、 開発の効率を高めるこ とができます。

PowerBuilder 入門 17

Page 30: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder オブジェク ト

構造体 構造体とは、 1 つ以上の関連し合う変数を 1 つの名前のも とにグループ化した集合体です。 Pascal や COBOL のよ う な言語では、 構造体はレコード と呼ばれています。

構造体では、 関連し合う変数を個々にではなく 1 つの集合体と して参照できます。 たとえば、 従業員のユーザ ID、 住所、 アクセス レベル、ピクチャ (ビッ ト マップ) を user_struct とい う構造体と して定義すると、 これらの変数の集合を user_struct と して参照できます。

構造体には以下の 2 種類があ り ます。

• オブジェ ク ト構造体は、 ウ ィ ン ド ウやメニューのよ うに特定のオブジェ ク トの種類に関連付けられ、 常にそのオブジェ ク トのス クリ プ ト で使用できます。 また、 構造体をほかのスク リプ ト からアクセスできるよ うに設定するこ と もできます。

• グローバル構造体は、 アプ リ ケーシ ョ ン内のオブジェ ク トやオブジェク ト タイプには関連付けられていません。 グローバル構造体のインスタンスを宣言する と、 アプ リ ケーシ ョ ンの任意のスク リプ トでそのインスタンスを参照できます。

ユーザ オブジェク ト アプ リ ケーシ ョ ンにはたいてい共通の機能があ り ます。 たとえば、 多くのアプ リ ケーシ ョ ンは、 一連の操作を実行した後でウ ィ ンド ウを閉じるボタン ( [閉じる] ボタン) や、 同じ種類のエラー チェッ クを行う複数のデータウ ィンド ウ コン ト ロールを備えています。 アプ リ ケーシ ョ ンには、 標準ファイル ビューアが必要なものもあ り ます。

同じアプ リ ケーシ ョ ン機能を繰り返し利用する場合は、 ユーザ オブジェ ク ト を定義します。 ユーザ オブジェ ク ト を一度定義しておく と、必要なと きに再利用できます。

ユーザ オブジェク トは、 ビジュアルまたは非ビジュアル (ク ラス) です。 さ らに標準ユーザ オブジェク ト とカスタム ユーザ オブジェ ク トに分類できます。 標準ユーザ オブジェク トは、 ビジュアルであるか非ビジュアルであるかに関係な く、 PowerBuilder システムで常に使用できるオブジェ ク トです。 PowerBuilder の外部で作成された外部ビジュアル オブジェク ト用のコン ト ロールを使用するこ と もできます。 ユーザ オブジェク トは、 以下の 2 つに大別されます。

• ビジュアル ユーザ オブジェク ト : 再利用可能なコン ト ロール、または一貫性のある動作を行う一連のコン ト ロールです。 たとえば、 1つの単位と して機能する複数のボタンから 1 つのビジュアル ユーザ オブジェク トの作成が可能です。 ボタンには標準的な処理を実行する ス ク リ プ ト を割 り当ててお く こ とができます。 一度オブジェク ト を定義しておく と、 必要な時に使用できます。

18 PowerBuilder

Page 31: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 1 章 PowerBuilder の概要

• クラス ユーザ オブジェク ト : ビジュアル コンポーネン ト を持たない、 再利用可能な処理モジュールです。 ク ラス オブジェク トは通常、 ビジネス ルールを定義した り、 一連の処理を 1 つの単位と して定義するのに使用します。 たとえば、 手数料の計算や統計の分析を行う場合に使用できます。 こ う した処理を実行するためには、ク ラス ユーザ オブジェク ト を定義します。ク ラス ユーザ オブジェク ト を使用するには、 ス ク リ プ ト でオブジェ ク ト のインスタンスを作成し、 そのオブジェク ト関数を呼び出します。

関数や変数を定義するカスタム ク ラス オブジェク ト は、PowerBuilderの多層アプリ ケーシ ョ ンの基礎になっています。

ライブラリ ウ ィ ンド ウやメニューのよ うなオブジェク トはライブラ リ (PBL ファイル) に格納します。 アプ リ ケーシ ョ ンを実行する と、 ラ イブラ リからオブジェク トが検索されます。 また、 アプ リ ケーシ ョ ンでは必要な数だけラ イブラ リ を使用できます。 アプ リ ケーシ ョ ンで使用するライブラ リは、 アプリ ケーシ ョ ンを作成する と きに指定します。

プロジェク ト 実行可能アプ リ ケーシ ョ ンを構築するプロジェ ク ト オブジェ ク ト 、サーバへの配布が可能なコンポーネン ト、および EAServer アプリ ケーシ ョ ンで使用するプロキシ オブジェク ト を作成できます。

PowerBuilder 入門 19

Page 32: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerBuilder オブジェク ト

20 PowerBuilder

Page 33: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 2 章 PowerBuilder チュート リアルについて

この章について この章では、 チュー ト リ アルの内容とセッ ト アップの方法について解説します。

内容

クライアント /サーバー アプリケーションの構築方法の学習PowerBuilder チュー ト リ アルは、 4 部構成になっています。 このチュート リ アルの第 1 部では、 10 通りの演習を行います。 この一連の演習では、 MDI (マルチ ドキュ メ ン ト インタフェース) データベース アプリ ケーシ ョ ンを構築します。 このアプ リ ケーシ ョ ンでは、 顧客情報や商品情報をデータベースから検索および取得したり、顧客および商品のデータに対して、データの挿入、更新、および削除を実行した りできます。

項目 ページ

ク ラ イアント / サーバー アプリ ケーショ ンの構築方法の学習 21

PowerDynamo Web アプリ ケーショ ンの構築方法の学習 23JSP Web サービス アプリ ケーショ ンの構築方法の学習 23

チュート リ アルの進め方 25所要時間 26

学習する内容 26チュート リ アルのセッ ト アッ プ 27

PowerBuilder 入門 21

Page 34: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

クライアン ト / サーバー アプリケーシ ョンの構築方法の学習

顧客情報ウィンドウと商品管理ウィンドウ

この MDI アプ リ ケーシ ョ ンには、 EAS Demo DB データベースのCustomer テーブルおよび Product テーブルにアクセスするための、2 つのウ ィンド ウがあ り ます。

この 2 つのウ ィ ン ド ウが、 マスタ ウ ィ ンド ウ と詳細ウ ィ ン ド ウです。各ウ ィ ンド ウでは、 ある特定のテーブルから検索したマスタの リ ス トを表示し、 そのマスタの リ ス ト で選択した項目の詳細情報を表示できます。 たとえば、 商品管理ウ ィ ンド ウでは、 上部に商品リ ス トが表示され、 1 つの製品がポインタで指し示されます。 ウ ィ ン ド ウの下部には上部で選択された商品の詳細情報が表示されます。

ログイン ウィ ンドウ MDI アプリ ケーシ ョ ンには、 起動時にデータベースに接続するためのログイン ウ ィンド ウ も含まれています。

22 PowerBuilder

Page 35: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 2 章 PowerBuilder チュート リアルについて

PowerDynamo Web アプリケーシ ョ ンの構築方法の学習第 2 部の一連の演習では、 同じデータベースに対して情報の追加および検索を実行できる Web インタフェースを構築します。 ただし、 今回はブラウザを使用しません。

チュ ト リアル Web ページ

PowerDynamo Web ターゲッ トの作成チュート リ アルでは、 5 つの Webページを使用して、 ログイン、 ウェルカム ページへのアクセス、 データベースへの商品の追加、 商品情報の表示を行います。 次にその一例と してウェルカム ページを取り上げます。

Web ページを使用する と、 データ ソースにアクセスした り、 以前に作成した Web データウ ィンド ウを表示できます。

PowerBuilder Enterpriseチュート リ アルの Web アプリ ケーシ ョ ン部分を完了させるには、以下の準備が必要です。

• PowerBuilder Enterprise エディシ ョ ン

• PowerBuilder の Web ターゲッ ト オプシ ョ ンのインス トール

• EAServer と PowerDynamo へのアクセス

PowerBuilder 入門 23

Page 36: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

JSP Web サービス アプリケーシ ョ ンの構築方法の学習

JSP Web サービス アプリケーシ ョ ンの構築方法の学習JSP Web ターゲッ トの作成チュート リ アルでは、4GL JSP ページを含む3 つの JSP ページを作成します。 この う ち 2 つのページで、 為替レート を計算する Web サービスを呼び出します。

このチュー ト リ アルで作成する 4GL Web ページの画面を以下に示します。

24 PowerBuilder

Page 37: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 2 章 PowerBuilder チュート リアルについて

チュート リアルの進め方表 2-1: チュート リアルを構成する各レッスンとその内容

PowerDynamo または JSP Web ターゲッ ト のみを学習したい場合は、チュー ト リ アルの第 1 部で開発したソ リ ューシ ョ ンを利用できます。このソ リ ューシ ョ ンは、 Tutorial¥Solutions ディレク ト リにあ り ます。

レッスン チュート リアルの内容

1 PowerBuilder を起動し、PowerBuilder 開発環境をよ く理解した上で、PowerBuilder ワークスペースおよびターゲッ トでテンプレート アプ リ ケーシ ョ ン ウ ィザード を使用してアプ リ ケーシ ョ ンオブジェク ト 、 ウ ィ ンド ウ、 およびメニューを作成する

2 PowerBuilder 環境を詳し く調べ、ワークスペースをカスタマイズする

3 データベースに接続するログイン ウ ィンド ウを作成する。 ユーザにデータベース接続パラ メータ (ユーザ ID およびパスワード) を入力させる

4 ト ランザクシ ョ ン オブジェク ト とユーザ入力パラ メータを使用してデータベースに接続する。PowerBuilder 環境におけるデータベース プロファイルの定義方法も参照する

5 マスター / 詳細データウ ィンド ウ コン ト ロールを追加して基本のベースシート ウ ィンド ウを変更する。 また、 データを検索した り、 データベースに対して挿入、 更新、 および削除の処理を行う スク リプ ト を記述する

6 アプリ ケーシ ョ ンのフレーム メニューの修正、新しいシート メニューの作成を行う

7-8 顧客情報や商品情報を検索するデータウィ ンド ウ オブジェク トを作成し、 顧客情報ウィ ンド ウと 商品管理ウィ ンド ウに追加する

9 作成したアプリ ケーシ ョ ンをデバッグ モードで実行する。 こ こでは、 ス ク リプ ト に対するブレークポイン ト の設定、 ステップ実行、 変数の表示について学習する

10 新規のウ ィンド ウを作成して、PowerBuilder の例外処理をテス トする

11 PowerBuilder 開発環境外でアプ リ ケーシ ョ ンを実行する場合に使用できる実行ファイルを作成する

12 PowerDynamo Web ターゲッ トの作成、 ハイパーリ ンクおよびグラフ ィ ッ ク付きの Web ページの作成、 検証スク リプ ト を用いたログイン ページの作成、 Web ページの配布および構築を行う

13 Web データウ ィンド ウを既存の Web ページに追加する。 データソースに商品情報を追加し、 情報を表示できるよ うにする

14 4GL および非 4GL ページを使用して JSP Web ターゲッ ト を作成し、 インターネッ トで利用可能な Web サービスを呼び出す

PowerBuilder 入門 25

Page 38: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

チュート リアルの進め方

所要時間

チュート リ アルは約 5、 6 時間で全体を学べますが、あるレッスンを終えた時点で中断して、 後で残り を引き続き学ぶこ と もできます。

学習する内容クライアン ト / サーバ アプリケーシ ョ ン

この PowerBuilder チュート リ アルでは、 以下の基本動作について学習します。

表 2-2: PowerScript チュート リアルで紹介する機能

PowerDynamo または JSP Web アプリケーシ ョ ン

Web ターゲッ トの基本的な技術および概念と して、 以下の内容を学びます。

機能 目的

アプリ ケーシ ョ ン ペインタ

アプ リ ケーシ ョ ン オブジェ ク ト と アプ リ ケーシ ョ ンレベルでのスク リプ ト を定義

ウィ ンドウ ペインタ シングルラインエディ ッ ト コン ト ロール、 スタティ ックテキス ト コン ト ロール、コマンドボタン コン ト ロール、データウ ィンド ウ コン ト ロール、 ウ ィンド ウ レベルのスク リプ ト 、 およびコン ト ロール レベルのスク リプ ト を作成

データウ ィンド ウ ペインタ

選択オプシ ョ ンと表示オプシ ョ ンを定義

メニュー ペインタ メニュー、 メニュー項目、 アクセラレータ キー、 およびシ ョート カッ ト キーを定義

レイアウ ト ビュー アプリ ケーシ ョ ン実行時のウ ィン ド ウ、 メニュー、 およびデータウ ィンド ウの外観を設計

スク リプ ト ビュー アプ リ ケーシ ョ ン、 ウ ィ ン ド ウ、 ウ ィ ン ド ウ コン トロール、 およびメニューのスク リプ ト を定義

デバッガ アプリ ケーシ ョ ン実行時に問題を引き起こすロジッ クエラーを検出

プロジェク ト ペインタ

アプ リケーシ ョ ンの実行ファイルを作成

26 PowerBuilder

Page 39: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 2 章 PowerBuilder チュート リアルについて

表 2-3: Web ターゲッ ト チュート リアルで紹介する機能

このチュート リ アルを学習しても、 PowerBuilder を完璧に習得できるわけではあ り ません。 習得のためには、 実際にアプ リ ケーシ ョ ンを構築する経験を重ねる必要があ り ます。 しかし、 このチュート リ アルで実際にアプ リ ケーシ ョ ンを構築するこ とによ り、 今後の学習に必要な基礎を固めるこ とができます。

チュート リアルのセッ トアップチュート リ アル開始前に、データベースへのアクセスが可能なこ と と、チュート リ アル ファ イルがあるこ とを確認して ください。

データベースとの接続 チュート リ アルでは、 PowerBuilder と と もにインス トールされる EASDemo DB V9 データベースを使用します。このデータベースは、AdaptiveServer Anywhere データベースであ り、 Sybase Adaptive Server Anywhereエンジンを必要と します。

ローカル マシンまたはサーバ上に Sybase Adaptive Server Anywhere をまだインス トールしていない場合は、 すぐにインス トールする必要があ り ます。 インス トールは、 PowerBuilder の CD-ROM から行う こ とができます。 PowerBuilder をデフォル ト以外の場所にインス トールしてある場合は、EAS Demo DB をデータ ソース と して定義する odbc.ini レジス ト リ エン ト リが Adaptive Server Anywhere エンジンの場所を正しく参照しているこ とを確認して ください。

チュート リアル ディレク ト リ

チュート リ アルでは、 以下のファ イルを使用します。

機能 目的

Web ターゲッ ト ウ ィザード

Web ページの設計やサーバとの対話処理の追加、 およびブラウザ環境で作業するためのその他の要件を満たす

スク リプ ト ビュー アプ リ ケーシ ョ ン、 Web ページ、 および Web コン トロール用のスク リプ ト を定義する

HTML エディ タ ページ ビューと ソース ビューを用いて Web ページを編集し、 4GL ページ設計の利用法を学ぶ

PowerBuilder 入門 27

Page 40: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

チュート リアルのセッ トアップ

表 2-4: PowerScript チュート リアルに必要なファイル

PowerBuilder をインス トールする と、上記のファ イルが Tutorial ディレク ト リ にインス トールされます。 このディ レ ク ト リは、 PowerBuilderのインス トール ディレク ト リのサブ ディレク ト リです。

チュート リ アル終了後は、 これらのファ イルを削除してもかまいません。

Tutorial¥Solutions ディレク ト リ

Tutorial¥Solutions ディレク ト リ内には、 pbtutor.pbl とい う PowerBuilderラ イブラ リがあ り ます。 この PowerBuilder ラ イブラ リ内には、 チュート リ アルの第 1 部で作成したすべてのオブジェク トおよびスク リプ トだけでなく、 ワークスペースおよびターゲッ ト ファ イルも含まれています。 チュート リ アルの第 1 部が完了するまでの間は、 このソ リ ューシ ョ ン ラ イブラ リ を リ ファレンス と して使用できます。

チュー ト リ アルの Web アプ リ ケーシ ョ ンの部分のみを学習する場合には、 このソ リ ューシ ョ ン ラ イブラ リ を出発点と して使用できます。246 ページの「 このチュート リ アルに必要なファ イルの入手」 を参照して ください。

Web ターゲッ トのチュート リアル

PowerDynamo Web ターゲッ トおよび JSP Web サービスのチュート リ アルを開始する際は、 以下のツールがコンピュータにインス トールされているこ とを事前に確認してください。

• EAServer 4.2 以降

• PowerDynamo 3.6 以降 (PowerDynamo チュート リ アルの場合のみ)

• Adaptive Server Anywhere 8.0 以降

• PowerBuilder の Web ターゲッ ト機能

• Internet Explorer 6.0

ファイル 内容

tutor_pb.pbl チュート リ アルで使用するオブジェク ト を含んだ PowerBuilder ラ イブラ リ

pbtutor.hlp チュート リ アルで構築されたウ ィンド ウに状況依存ヘルプを提供するヘルプ ファ イル

tutsport.bmp ビッ トマップ

tshirtw.jpg グラフ ィ ッ ク

tutorial.ico アイコン

28 PowerBuilder

Page 41: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 2 部 クライアン ト / サーバー アプリケーシ ョ ンの構築

第 2 部は、 PowerBuilder の基本操作を示したチュート リアルです。 簡単なデータベース アプリケーシ ョ ンの作成のしかたを、 手順を追って説明しています。

Page 42: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加
Page 43: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 1 PowerBuilder の起動

このレ ッ スンでは、 PowerBuilder を起動してアプ リ ケーシ ョ ンを開発するための必要事項について説明します。

このレッスンでは、 以下の項目について学習します。

• ワーク スペースの新規作成

• ターゲッ ト の作成

• アプリ ケーショ ンのアイコンの指定

• メ イン ウィ ンド ウのサイズ変更

• アプリ ケーショ ンの実行

所要時間約 15 分

PowerBuilder 入門 31

Page 44: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ワークスペースの新規作成

ワークスペースの新規作成

現在の学習個所> ワークスペースの新規作成

ターゲッ ト の作成アプリ ケーショ ンのアイコンの指定メ イン ウィ ンド ウのサイズ変更アプリ ケーショ ンの実行

ワークスペースは、 PowerBuilder のターゲッ ト を構築、 配置、 デバッグ、 実行する場所です。 1 つのワークスペース内に複数のターゲッ ト(このチュート リ アルの第 3 部で取り上げている Web ターゲッ ト も含む) を構築できます。

まず、 PowerBuilder を起動して、 新規ワークスペースを作成します。

チュート リアルをはじめる前にインス トール マニュアルには 新の情報が記載されています。 チュート リ アルをはじめる前に必ず目を通すよ うにして ください。 チュートリ アルを完了するのに必要なファ イルがすべて揃っているこ とを確認するには、 27 ページの「 チュート リ アルのセッ ト アッ プ」 を参照してください。

1 Sybase¥PowerBuilder 9.0 のパス内の PowerBuilder アイコン(PB90J.EXE を表す) をダブルクリ ックします。またはWindows の [スタート] メニューから [プログラム| Sybase |PowerBuilder 9.0 | PowerBuilder 9.0] を選択します。

PowerBuilder へよう こそダイアログボックスが表示された場合このダイアログボッ クスが PowerBuilder 起動のたびに表示されないよ う にするには、 [次回か ら こ のウ ィ ン ド ウ を表示し ない]チェッ クボッ クスをオンにします。PowerBuilder セッシ ョ ンを開始して [このウ ィ ン ド ウを閉じる] をク リ ッ クするたびに、 近使用されたワークスペースがロード されるよ うにするには、 [スタート時に前回使用したワークスペースをロードする] チェ ッ クボックスをオンにします。

PowerBuilder 開発環境が表示されます。

32 PowerBuilder

Page 45: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 1 PowerBuilder の起動

マシン上で初めて PowerBuilder を開いた場合は、 システム ツ リー内に 上位エン ト リ しか表示されません。 これは、 現在どのワークスペースも開いていないとい う こ とです。 開いているワークスペースがあれば、 システム ツ リーの内部にターゲッ トおよびオブジェク トが表示されます。

2 [フ ァイル] メニューから [新規作成] を選択します。またはパワーバーの [新規作成] ボタンをクリ ッ クします。

新規作成 ダイアログボッ クスの [ワークスペース] ページが表示されます。

PowerBuilder 入門 33

Page 46: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ワークスペースの新規作成

新規作成 ダイアログボックスに、 さまざまなページが表示された場合新規作成 ダイアログボッ クスでは、 前回ダイアログを閉じたと きに使用していたタブ ページが表示されます。 このステップでは、[ワークスペース] タブをク リ ッ ク して [ワークスペース] ページが表示されるかど うかを確認します。

3 新規作成 ダイアログボックスの [ワークスペース] ページから 「ワークスペース」 を選択します。 [OK] をクリ ッ クします。

新しいワークスペース ダイアログボッ クスが表示されます。

4 Tutorial フォルダに移動します。

Tutorial フォルダは、 PowerBuilder 9.0 フォルダの直下にあ り ます。

5 [フ ァイル名] テキストボックスに 「MyWorkspace」 と入力します。[保存] をク リ ックします。

新しいワークスペース ダイアログボッ クスが閉じ、 作成したワーク スペースがシステム ツ リー内の 初の項目と して表示されます。

34 PowerBuilder

Page 47: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 1 PowerBuilder の起動

ターゲッ トの作成

現在の学習個所ワークスペースの新規作成

> ターゲッ ト の作成アプリ ケーショ ンのアイコンの指定メ イン ウィ ンド ウのサイズ変更アプリ ケーショ ンの実行

こ こでは、テンプレート アプ リ ケーシ ョ ン ウ ィザードを使用して、新規ターゲッ ト を作成します。 選択された内容に基づいて、 テンプレート アプ リ ケーシ ョ ン ウ ィザードでは、 コーディング済みのイベン ト、メニュー、 ウ ィ ンド ウ、 およびアプ リケーシ ョ ン オブジェク ト とユーザ オブジェク トが作成されます。

1 [フ ァイル] メニューから [新規作成] を選択し、 [ターゲッ ト] タブをクリ ッ クします。またはシステム ツリー内の MyWorkspace を右ク リ ッ ク し、 ポップアップ メニューの [新規作成] を選択して、 [ターゲッ ト] タブをクリ ックします。

新規作成 ダイアログボッ クスの [ターゲッ ト ] ページが表示されます。

2 [テンプレート アプリケーシ ョ ン] アイコンを選択して、 [OK] をク リ ックします。

テンプレート アプリ ケーシ ョ ン ウ ィザードが表示されます。ほとんどのウ ィザードでは、 初のページでウ ィザードの使用目的が説明されます。 ウ ィザードの使用中は、 〔F1〕 を押すこ とでたいていのフ ィールドのヘルプ情報を表示できます。

PowerBuilder 入門 35

Page 48: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ターゲッ トの作成

3 [次へ] を 2 回クリ ッ クして、 新規アプリケーシ ョ ンとライブラリの指定ページを表示します。

4 [アプリケーシ ョ ン名] テキストボックスに 「pbtutor」 と入力します。

このアプ リ ケーシ ョ ン名を使用するラ イブラ リおよびターゲッ トには、 ウ ィザードによ り自動的にファイル名が割り当てられます。ラ イブラ リには PBL 拡張子が、ターゲッ トには PBT 拡張子が割り当てられます。

5 [次へ] をク リ ックします。

[アプ リ ケーシ ョ ンの種類の指定] ページが表示されます。 [マイク ロヘルプ付き MDI アプ リケーシ ョ ン] ラジオボタンが選択されています。 MDI テンプレート アプ リ ケーシ ョ ンを作成するので、このラジオボタンの選択を変更する必要はあ り ません。

MDI とはMDI は、マルチ ドキュ メン ト インタフェースの略称です。MDI アプリ ケーシ ョ ンでは、 アプ リ ケーシ ョ ン用のメ イン ウ ィンド ウのこ とを MDI フレームと呼びます。 MDI フレーム メニュー バーを使用して、 さ らにシート ウ ィンド ウ とい う、 フレーム ウ ィンド ウの内部に表示されるウ ィンド ウを開く こ と もできます。

6 [次へ] を 4 回クリ ッ クして、 [シート名の指定] ページを表示します。

このチュー ト リ アルでは、 アプ リ ケーシ ョ ンの種類、 ラ イブラ リ探索パス、 フレーム と フレーム メ ニュー名、 シー ト メ ニューとシート管理サービス名、 および MDI ベースシート名に、 デフォルト値をそのまま使用します。

[次へ] をク リ ックしすぎた場合ウ ィザードの [戻る] ボタンをク リ ッ クすれば、 目的のウ ィザード ページに戻るこ とができます。

7 [シート名の指定] ページで、 [シート 1] テキストボックスに「w_customers」、 [シート 2] テキストボックスに 「w_products」 と入力し、 [シート 3] テキス トボックスを空白にします。

36 PowerBuilder

Page 49: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 1 PowerBuilder の起動

デフォル ト のベース シー ト (w_pbtutor_basesheet) を基に 2 つのウ ィ ンド ウが作成されます。 1 つが顧客情報用、 も う 1 つが商品管理用です。 例外処理のレッスンで、 3 つ目のシート ウ ィ ン ド ウを追加します。

8 [次へ] をクリ ックします。シート 1 の表示名として 「顧客情報」 と入力します。シート 2 の表示名として 「商品管理」 と入力します。

こ こで入力した名前は、 それぞれのシート ウ ィンド ウのタイ トルバーに表示されます。

PowerBuilder 入門 37

Page 50: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ターゲッ トの作成

9 [次へ] を 2 回クリ ッ クします。

バージ ョ ン情報ウ ィ ンド ウおよびツールバー ウ ィンド ウの名前を変更する必要はあ り ません。

10 [接続の指定] ページで 「なし」 を選択します。

接続オブジェク トは後で追加します。

11 [次へ] を 2 回クリ ッ クして、[アプリケーシ ョ ンの作成準備完了] ページを表示します。

プロジェク トは後で作成します。

後のウ ィザード ページが表示されます。 ウ ィザード ページに、現在の選択内容が リ ス ト されます。 も う一度見直して、 必要であれば [戻る] ボタンを使用して前のページに戻り、 変更を行う こと もできます。

12 [To-Do リス トの作成] チェ ッ クボックスがオンになっていることを確認します。[完了] ボタンをクリ ックします。

38 PowerBuilder

Page 51: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 1 PowerBuilder の起動

アプ リ ケーシ ョ ン ウ ィ ザー ド は pbtutor.pbt ターゲ ッ ト およびpbtutor.pbl ラ イブラ リ を作成し、 新しい pbtutor アプ リ ケーシ ョ ンをデフォル ト アプ リ ケーシ ョ ン と して設定します。 システム ツリーを展開する と、 テンプレート アプ リケーシ ョ ン ウ ィザードで作成されたオブジェク ト をすべて表示できます。

PowerBuilder 入門 39

Page 52: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンのアイコンの指定

アプリケーシ ョ ンのアイコンの指定

現在の学習個所ワークスペースの新規作成ターゲッ ト の作成

> アプリ ケーショ ンのアイコンの指定メ イン ウィ ンド ウのサイズ変更アプリ ケーショ ンの実行

このステップでは、 アプ リ ケーシ ョ ンのアイコンを指定します。 アイコンは、 実行中にアプ リ ケーシ ョ ンを 小化したと きにワークスペースに表示されます。 実行ファ イルを作成する と、 アイコンは自動的に設定されます。 アイコンの指定は、 アプ リ ケーシ ョ ン ペインタのプロパティ ビューから行います。

1 システム ツリーの pbtutor アプリケーシ ョ ン項目をダブルクリ ックします。またはpbtutor アプリケーシ ョ ン項目を右クリ ックして、ポップアップ メニューから [編集] を選択します。

pbtutor アプリ ケーシ ョ ン項目は、 テンプレート アプ リ ケーシ ョ ンウ ィザードで作成した pbtutor.pbl および pbtutor ターゲッ ト オブジェク トの下にあ り ます。 アプ リ ケーシ ョ ン ペインタに、 アプリケーシ ョ ン オブジェク トのさまざまなビューが表示されます。

2 アプリケーシ ョ ン ペインタにプロパティ ビューが表示されていることを確認して く ださい。

40 PowerBuilder

Page 53: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 1 PowerBuilder の起動

プロパティ ビューが開いていない場合は、 アプリ ケーシ ョ ン ペインタのメニュー バーから [ビュー|プロパティ] を選択して開くこ とができます。プロパティ ビューが開いている場合は、メニュー項目がグレー表示されます。

3 プロパティ ビューの [付加的なプロパティ] ボタンをク リ ックします。

タブ付きのアプリ ケーシ ョ ン プロパティ シートが表示されます。

4 [アイコン] タブをクリ ックします。

5 [アイコンの参照] をクリ ックします。Tutorial ディ レク ト リが開きます。

6 tutorial.ico ファイルを選択します。[開く ] をクリ ックします。

拡張子 ico が見つからない場合Windows エ ク ス プ ロ ー ラ のオプシ ョ ン ダ イ ア ロ グボ ッ ク ス(Windows 98 ではフォルダ オプシ ョ ン ダイアログボッ ク ス) で、[登録されているファ イルの拡張子は表示しない] チェ ッ クボッ クスをオンにした場合、 ICO ファ イルの拡張子は表示されません。

PowerBuilder 入門 41

Page 54: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンのアイコンの指定

アプ リ ケーシ ョ ン プロパテ ィ シー ト の [ア イ コ ン] ページにチュート リ アル アイコンが表示されます。

7 [OK] をクリ ッ クします。ペインタバー 1 の [保存] ボタンをクリ ックするか、 [ファイル|上書き保存] を選択します。ペインタバー 1 の [閉じる] ボタンをク リ ックするか、 [ファイル|閉じる] を選択します。

42 PowerBuilder

Page 55: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 1 PowerBuilder の起動

メイン ウィンドウのサイズ変更

現在の学習個所ワークスペースの新規作成ターゲッ ト の作成アプリ ケーショ ンのアイコンの指定

> メ イン ウィ ンド ウのサイズ変更アプリ ケーショ ンの実行

こ こでは、 アプ リ ケーシ ョ ンのメ イン ウ ィンド ウのサイズを変更します。 アプ リ ケーシ ョ ンを実行する と、 指定した位置に指定したサイズでメ イン ウ ィンド ウが表示されます。

1 システム ツリーで w_pbtutor_frame をダブルクリ ッ クします。

アプリ ケーシ ョ ンのフレーム ウ ィンド ウが開きます。

2 プロパティ ビューの [全般] ページで [中央] チェ ックボックスをオンにします。

これで、 アプリ ケーシ ョ ンを実行する と、 フレーム ウ ィンド ウが中央に表示されます。

PowerBuilder 入門 43

Page 56: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

メイン ウィンドウのサイズ変更

3 [ウィ ンドウの状態] ドロップダウン リス トボッ クスを下にスクロールして、 「normal!」 を選択します。

プロパティ ビューの外観が異なっている場合プロパテ ィ ビューのラベルの位置を変更するには、 プロパテ ィビューを右ク リ ッ ク し、 ポップアップ メニューから変更後のラベル位置を選択します。 (上の図のよ うに) 全フ ィールドの左側、 またはテキス ト フ ィールド上部とチェッ クボッ クスの右側にラベルを配置する 2 通りの表示ができます。

4 プロパティ ビューの [その他] タブをクリ ックします。[幅] テキス トボックスに 「3000」、 [高さ] テキス トボックスに 「2400」と入力します。〔Tab〕 キーを押します。

レイアウ ト ビュー内にある長方形のウ ィンド ウのサイズが変更されます。 入力する値は、 PowerBuilder 単位系 (PBU) です。

5 メニュー バーから [ファイル|閉じる] を選択します。変更内容を保存するように要求されたら、 [はい] ボタンをクリ ッ クします。

ウ ィンド ウ ペインタが閉じます。

44 PowerBuilder

Page 57: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 1 PowerBuilder の起動

次のステップでは、 アプ リ ケーシ ョ ンを実行します。 アプ リ ケーシ ョ ンを実行する と、 フレーム ウ ィ ンド ウが中央に表示され、 指定したサイズになり ます。

PowerBuilder 入門 45

Page 58: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

アプリケーシ ョ ンの実行

現在の学習個所ワークスペースの新規作成ターゲッ ト の作成アプリ ケーショ ンのアイコンの指定メ イン ウィ ンド ウのサイズ変更

> アプリ ケーショ ンの実行

このステップでは、 アプ リ ケーシ ョ ンを実行して、 それがどのよ うに動作するのかを確認します。 この時点では、 アプ リ ケーシ ョ ンで実行される処理はあま り多くあ り ません。 アプリ ケーシ ョ ンを実行することで、テンプレート アプリ ケーシ ョ ン ウ ィザードでアプ リ ケーシ ョ ンを作成する際に自動的に生成されるウ ィン ド ウ と メニューを確認できます。 このウ ィ ンド ウ と メニューを後で変更します。

1 パワーバーの [実行] ボタンをクリ ックします。

MDI フレーム ウ ィンド ウが画面に 大化表示されます。 ウ ィザード を使用して作成したすべての MDI アプ リ ケーシ ョ ンには、 メニュー バーとツールバーがあ り、 一部の項目はすでにコーディングされています。

2 [フ ァイル|新規作成|顧客情報] を選択します。

アプ リ ケーシ ョ ンによってシート ウ ィ ンド ウが開きます。 シート1 のテンプレート アプリ ケーシ ョ ン ウ ィザードで入力した表示名がタイ トル バーに表示されます。 シート ウ ィンド ウのタイ トルの後ろには、 表示中のウ ィ ン ド ウのインスタンスを示す番号が付きます。

46 PowerBuilder

Page 59: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 1 PowerBuilder の起動

ウィンドウのタイ トル バーの数字について「1」 とい う数字がウ ィ ンド ウ タイ トルの後に表示されるのは、 開いている w_customers のシート ウ ィ ンド ウの 初のインスタンスであるこ とを示すためです。 タイ トル バーにインスタンス番号を追加す る ス ク リ プ ト は、 ベー ス シ ー ト ウ ィ ン ド ウ で あ るw_master_detail_ancestor の ue_postopen イベン トに記述されています。

3 [フ ァイル|新規作成|商品管理] を選択します。

2 つ目のアプ リ ケーシ ョ ン シート ウ ィンド ウが表示されます。

4 [ウィ ンドウ|縦に並べて表示] を選択します。

2 つのシート ウ ィンド ウが MDI フレーム内で上下に並べて表示されます。 アクティブな方が上に配置されます。

5 メニュー バーから [ファイル|ツールバー] を選択します。

ツールバー ダイアログボッ クスが表示されます。

6 ツールバー ダイアログボックスの [浮動] を選択します。

MDI フレーム内でツールバーが浮動状態にな り ます。 ツールバーダイアログボッ クスの背後に浮動ツールバーが隠れている場合もあ り ます。

7 [上端] を選択します。

フレームの上部にツールバーが再配置されます。

PowerBuilder 入門 47

Page 60: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

8 [完了] をク リ ックして、 ツールバー ダイアログボックスを閉じます。

9 [フ ァイル|終了] を選択します。

アプ リ ケーシ ョ ンが閉じ、 PowerBuilder 開発環境に戻り ます。

次に PowerBuilder を起動する と き、 前回の PowerBuilder 終了時の状態でワークスペースおよびペインタを開くには、 以下のよ うに操作します。

10 メニュー バーから [ツール|システム オプシ ョ ン] を選択し、 [ワークスペース] タブをクリ ックします。

11 [開始時にワークスペースを再度開く ] および [ワークスペースを開く時にペインタを再ロードする]チェ ッ クボックスがオンになっていることを確認します。[OK] をクリ ッ クします。

これで PowerBuilder を起動する と、 終了時に開いていたワークスペー ス お よ びペ イ ン タ が開 く よ う に な り ま す。 終了時にPowerBuilder 内でコーディングしていた場合は、 後にコーディングしていたスク リプ ト が開き、 後に編集した行位置にカーソルが設定されます。

48 PowerBuilder

Page 61: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 2 PowerBuilder の環境のカスタマイズ

レッ スン 2 では、 PowerBuilder の環境をよ く理解しワークスペースをカスタマイズするための必要事項について説明します。 レッスン 2 は必須ではないので、 このレ ッ スンを省略したい場合はレッスン 3 に飛んでもかまいません。

このレッスンでは、 以下の項目について学習します。

• システム ツリ ー ウィ ンド ウの操作

• オブジェク ト のオープン

• ビューの操作

• ツールバーのセッ ト アッ プ

所要時間約 10 分

PowerBuilder 入門 49

Page 62: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

システム ツリー ウィンドウの操作

システム ツリー ウィンドウの操作

現在の学習個所> システム ツリ ー ウィ ンド ウの操作

オブジェ クト のオープンビューの操作ツールバーのセッ ト アッ プ

システム ツ リーの [ワークスペース] ページに、 作業の概要が表示されます(システム ツ リーのほかのページは Web ターゲッ ト関連のもので、 PowerScript ターゲッ ト とは無関係です) 。 ワークスペース とその内部のオブジェク ト を展開する と、 ターゲッ トの内容および構造を確認できます。

ワークスペース内のオブジェク トは、 すべて直接操作できます。 たとえば、システム ツ リーのポップアップ メニューを使用して、 ウ ィ ンドウの編集、実行、検索、再生成などを行う こ とができます。 このステップでは、 システム ツ リーを別の位置に移動した り、 閉じた り開いたりする練習をします。 ド ラ ッグ バーを使用する と、 メ イン ウ ィンド ウを基準にシステム ツ リーを別の位置に移動できます。 システム ツ リー、ク リ ップ ウ ィンド ウ、 および出力ウ ィ ンド ウの並べ方を変更するこ ともできます。

1 パワーバーの [出力] ボタンをクリ ックします。出力ウィンドウが表示されます。

2 メニュー バーから [ツール|システム オプシ ョ ン] を選択します。[全般]ページの[水平ド ッ クウィ ンドウを 大幅にする]ボタンをクリ ックしてオフにします。

メ イン ウ ィンド ウの上部から下部まで、 システム ツ リーおよびクリ ップ ウ ィンド ウが表示されます。

3 システム ツリーの上部で、 ド ラ ッグ バーをクリ ックしてマウス ボタンを押した状態にします。システム ツリーをド ラッグして、ペインタ ワークスペースの上部、下部、または右の方へ移動します。

ド ラ ッグを開始する と、 システム ツ リーの周囲にグレーの四角形が表示されます。 マウス ボタンを放したと きの範囲が、 システムツ リーが占める領域とな り ます。

50 PowerBuilder

Page 63: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 2 PowerBuilder の環境のカスタマイズ

4 グレーの矩形アウト ラインがシステム ツリーを表示する位置に移動したら、 マウスのボタンを放します。

新しい場所にシステム ツ リーが表示されます。

5 パワーバーの[システム ツリー]ボタンをクリ ックして、システム ツリーを閉じます。

システム ツ リーが閉じた後も、 現在のワークスペースは開いたままです。 システム ツ リーを閉じる と、 ペインタのワークスペースビューのスペースが増大します。

6 パワーバーの [システム ツリー] ボタンをクリ ッ クして、もう 一度システム ツリーを開きます。

7 パワーバー上にある各ウィンドウ用のボタンをクリ ッ クするか、各ウィンドウの隅にある小さな x をクリ ックして、 クリ ップ ウィンドウおよび出力ウィンドウを閉じます。

8 MyWorkspace を右クリ ッ クして、 ポップアップ メニューから [閉じる]を選択します。

ワークスペースが閉じます。 システム ツ リーにワークスペースが表示されていない状態になり ます。

PowerBuilder 入門 51

Page 64: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

オブジェク トのオープン

オブジェク トのオープン

現在の学習個所システム ツリ ー ウィ ンド ウの操作

> オブジェ クト のオープンビューの操作ツールバーのセッ ト アッ プ

こ こでは、テンプレート アプリ ケーシ ョ ン ウ ィザードによって作成されたオブジェク ト を開きます。

1 メニュー バーから [ファイル| 近使用したワークスペース] を選択し、カスケード メニューから 「MyWorkspace」 を選択します。

2 システム ツリーで、 MyWorkspace、 pbtutor ターゲッ ト、 および pbtutor.pbl を展開します。

3 pbtutor アプリケーシ ョ ン ターゲッ ト をダブルクリ ッ クします。または pbtutor アプリケーシ ョ ン オブジェク ト を右クリ ッ クして、ポップアップメニューから [編集] を選択します。

52 PowerBuilder

Page 65: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 2 PowerBuilder の環境のカスタマイズ

アプリ ケーシ ョ ン ペインタに、pbtutor アプリ ケーシ ョ ン オブジェク トのさまざまなビューが表示されます。 ビューのレイアウ ト構成は、 ユーザによって異な り ます。 デフォル ト のレイアウ ト を表示するには、[ビュー|レイアウ ト|(デフォル ト )]を選択します。

デフォル トのアプ リ ケーシ ョ ン ペインタのレイアウ トに、 2 つのタブ付きペインのスタ ッ クが表示されます。 左のスタ ッ クにはスク リプ ト ビュー ([Open] タブが選択されており、アプ リ ケーシ ョン オブジェ ク ト の Open イベン ト のス ク リ プ ト が表示されている)、 イベン ト リ ス ト ビュー、 関数リ ス ト ビュー、 およびインスタンス変数の宣言ビューが含まれています。右のスタ ッ クには、プロパティ ビュー、および非ビジュアル オブジェク ト リ ス ト ビューが含まれています。

4 スクリプ ト ビューで、 Open イベン トのコードを確認します。

このコードは、メ イン ウ ィンド ウを開くためのコードで、ウ ィザードで自動的に生成されたものです。 このチュート リ アルの後半でこのコードを修正します。

PowerBuilder 入門 53

Page 66: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ビューの操作

ビューの操作

現在の学習個所システム ツリ ー ウィ ンド ウの操作オブジェ クト のオープン

> ビューの操作ツールバーのセッ ト アッ プ

こ こでは、 PowerBuilder ペインタ ビューの位置や外観の調整方法について学習します。 メニュー バーの [ビュー] メニューからビューを選択してペインタのワークスペースに追加できます。

種類が同じ複数のビューを追加し、 それらのビューを結合して下部に選択タブを持つペイン スタ ッ クを作成できます。 ペインタのワークスペース内でビューやその隣のビューの周囲にある分割バーをつかんでド ラ ッグするこ とで、 ビューのサイズを変更できます。

こ こでは、アプリ ケーシ ョ ン ペインタを使用して、ペインタ ビューの外観を変える方法を実際に説明しますが、 どのペインタにおいても同様にビューに対する操作を行う こ とができます。

この練習では以下の操作を行います。

• 新規スク リ プト ビューの追加

• ビューのタイ ト ル バーの表示

• ビューの浮動化と 固定化

• タブ付きビューの操作

• ビューのレイアウト 構成の保存

• ビュー レイアウト 構成を標準設定に戻す

54 PowerBuilder

Page 67: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 2 PowerBuilder の環境のカスタマイズ

新規スクリプ ト ビューの追加

デフォルトのアプリ ケーシ ョ ン ペインタのレイアウ トには、 スク リプト ビューが 2 つあ り ます。 スク リプ ト ビューの 1 つには、アプリ ケーシ ョ ン オブジェク トのイベン ト用スク リプ トが表示されます。 も う 1つのスク リプ ト ビューには、オブジェク ト インスタンス用に宣言された変数、 またはアプ リ ケーシ ョ ン全体に対して宣言された変数が表示されます。 これらのスク リプ ト ビューは、 同一のタブ付きビュー (ペイン) のスタ ッ ク内に存在します。

こ こでは、3 つ目のスク リプ ト ビューと して、タブ付きペインのスタ ックに含まれないビューを追加します。 ペインタのレイアウ トには複数のス ク リ プ ト ビ ューを追加でき ますが、 同一ス ク リ プ ト を複数のビューで開く こ とはできません。

1 メニュー バーから [ビュー|スクリプ ト] を選択します。

新規ス ク リプ ト ビューが表示されます。 このス ク リ プ ト ビューは、 タブ付きペインのスタ ッ クには追加されません。 このス ク リプ ト ビューの 初のド ロ ップダウン リ ス ト ボッ ク ス内にはアプリ ケーシ ョ ン オブジェ ク ト が リ ス ト されますが、 2 番目のド ロ ップダウン リ ス ト ボッ クス内は空です。

既存のスク リプ ト ビューに Open イベン トが表示されている場合、新規スク リプ ト ビューは空になり ます。既存のスク リプ ト ビューに Open イベン ト が表示されていない場合は、 新規ス ク リ プ トビューに Open イベン トが表示されます。

PowerBuilder 入門 55

Page 68: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ビューの操作

2 2 番目のドロップダウン リストボックスから Close イベン ト を選択します。

別のスク リプ ト ビューがすでに Close イベン ト を開いている場合は、 PowerBuilder ステータス バー内にエラー メ ッセージが表示されます。

ビューのタイ トル バーの表示

こ こでは、ビューのタイ トル バーをペインタ ワークスペースの背景に固定させて表示します。 固定されていないタイ トル バーが表示されるのは、 ビューの上端近くにマウス ポインタを置いたままにした場合だけです。

1 先ほど追加した新規スクリプ ト ビューの 上部にマウス ポインタを移動します。

ビューのタ イ ト ル バーが表示されます。 タ イ トル バーの左端には、 [プッシュピン] ボタン、 右端には [ 大化] ボタンおよび[閉じ る] ボタンがあ り ます。 タ イ ト ル バーの左端にある [プッシュピン] ボタンの横に、 ビューの名前が表示されます。

2 タイ トル バーの [プッシュ ピン] ボタンをクリ ッ クします。またはビュー タイ トル バーを右クリ ッ クして、 ポップアップ メニューから [タイ トルバー固定] を選択します。

[プッシュ ピン] ボタン と [タ イ トルバー固定] メニュー項目は、ク リ ッ クするたびにオン とオフが切り替わり ます。 [プッシュ ピン] ボタンまたは [タ イ トルバー固定] をも う一度ク リ ッ クすると、 ビュー タイ トル バーが固定状態から解放されます。

ビューの浮動化と固定化

このステップでは、 ペインタのワークスペースでビューの浮動化と固定化を行います。 ビューを浮動化する と、 ペインタ フレームの外にビューを移動できるよ うにな り ます。

1 浮動化する非スタ ック ビューのタイ トル バーを右クリ ッ クします。またはタブ付きペインのスタ ックで、 ビューのタブを右クリ ックします。

56 PowerBuilder

Page 69: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 2 PowerBuilder の環境のカスタマイズ

タイ トル バーが固定されていない場合は、 マウスポインタをタイトル バー領域の上に移動し、 タイ トル バーが表示されてから右クリ ッ ク します。

2 ポップアップ メニューで [浮動] をク リ ックします。

ビューが浮動状態にある場合は、 [浮動] メニュー項目は選択できません。 ビューが固定状態にある場合は、 [固定] メニュー項目は選択できません。

3 画面の周囲にビューをドラ ッグします。

浮動型ビューは、 ペインタのワークスペースの外にも配置できます。

4 浮動型ビューのタイ トル バーを右クリ ックします。ポップアップ メニューで [固定] をク リ ックします。

ビューが元の位置に戻り ます。

タブ付きビューの操作

このステップでは、タブ付きペインのスタ ッ クからビューを切り離し、独立したビューにする作業を行います。 その後で、 そのビューを元のスタ ッ クに戻し、 スタ ッ ク内のビューの位置を変更します。

1 [関数リス ト] タブ上でマウス ボタンを押したままにします。アプリケーシ ョ ン ペインタの 2 つのデフォルト スタ ッ クを区切る分割バー上に、 タブをド ラ ッグします。マウス ボタンを放します。

マウス ボタンを放すと、関数リ ス ト ビューがスタ ッ クから切り放されます。 タブをかな り遠くの位置にド ラ ッグして、 プロパテ ィビューおよび非ビジュアルオブジェク ト リ ス ト の右スタ ッ ク上でマウス ボタンを放すと、 関数リ ス トがそのスタ ッ クの一部にな ります。

ビューをスタ ッ クから浮動させる別の方法〔Ctrl〕 または 〔Shift〕 を押した状態でスタ ッ クから タブ付きペインのタブの部分をド ラ ッグする と、 そのペインが浮動型ビューにな り ます。

PowerBuilder 入門 57

Page 70: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ビューの操作

2 [関数リスト] タイ トル バー上でマウス ボタンを押した状態にします。浮動型ビューを、 元のスタ ック上にドラッグします。関数リス ト ビューのグレーの矩形アウト ラインが、 スタ ッ クの上に重なり合ったら、 マウス ボタンを放します。

関数リ ス ト ビューが元のスタ ッ クに戻り、 スタ ッ ク内の 後のペインと して追加されます。

3 [関数リスト] タブ上でマウス ボタンを押したままにします。この 後のペインを、同じスタ ッ ク内にあるほかのペインの上にドラッグします。小さなグレーの矩形アウト ラインが、 タブ ウィンドウ内の別のタブの上に重なり合ったら、 マウス ボタンを放します。

マウス ボタンを放したスタ ッ ク内の位置に、関数リ ス ト ビューが移動します。

ビューのレイアウト構成の保存

ペインタ ビューのレイアウ ト構成を保存して、 ペインタを開くたびに使用できるよ うにします。

1 ペインタ内でビューを使いやすい配置に並べます。

2 メニュー バーから [ビュー|レイアウト|管理] を選択します。

3 レイアウト ダイアログボックスの [新しいレイアウト] ボタンをクリ ックします。

4 テキスト フィ ールド にレイアウト 名を入力し 、ダイアログボックスの背景をクリ ックして、ダイアログボックスの右上隅にある [x] ボタンをクリ ックして閉じます。

レイアウ ト構成が保存されます。 これで、 [ビュー|レイアウ ト ]を選択する と、 カスケード メニューに保存したレイアウ トが表示されます。

ツールバーおよびシステム ツリーのレイアウトの保存ツールバーおよびシステム ツ リーのカスタマイズ内容は、 ビューの レ イ ア ウ ト と は別個に保存 さ れます。 こ れ ら の設定値はPowerBuilder に保持され、ユーザがアクセスしたワークスペースおよび選択したビュー レイアウ トのすべてに再適用されます。

58 PowerBuilder

Page 71: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 2 PowerBuilder の環境のカスタマイズ

ビュー レイアウト構成を標準設定に戻す

PowerBuilder ペインタには、 デフォルトのビュー レイアウ トがあ り ます。レイアウ ト構成は、いつでも このデフォルトのレイアウ トに リセットするこ とができます。

1 メニュー バーから [ビュー|レイアウト] を選択します。

2 カスケード メニューから 「デフォルト」 を選択します。

デフォル ト のビュー レイアウ ト がペインタ ワークスペースに適用されます。

PowerBuilder 入門 59

Page 72: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ツールバーのセッ トアップ

ツールバーのセッ トアップ

現在の学習個所システム ツリ ー ウィ ンド ウの操作オブジェ クト のオープンビューの操作

> ツールバーのセッ ト アッ プ

ペインタのワークスペースには、 パワーバーなど、 作業時に使用できるペインタバー ツールバーが常に含まれています。 ツールバーのボタンは、 使用中のターゲッ ト またはオブジェク トの種類に応じて変わります。 ツールバーをカスタマイズして、 機能を追加するこ と もできます。

こ こでは、 ツールバーの外観を以下のよ うに変更します。

• ツールバー ボタン上へのラベルの表示

• ツールバーの浮動化

• ツールバーの再配置

ツールバー ボタン上へのラベルの表示

ツールバー ボタンの上にカーソルを置いて PowerTip を表示するこ とで、 ツールバー ボタンの機能を知るこ とができます。 PowerTip は、 ボタンの機能を示すポップアップ テキス トです。

ツールバーの各ボタン上に、 ラベルを表示するこ と もできます。

1 パワーバーにあるボタンのいずれかの上にマウス ポインタを合わせます。 ここではクリ ックしないで く ださい。

ボタンの PowerTip が表示されます。

2 メニュー バーから [ツール|ツールバー] を選択します。

ツールバー ダイアログボッ クスが表示されます。

60 PowerBuilder

Page 73: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 2 PowerBuilder の環境のカスタマイズ

3 [テキス トの表示] チェ ッ クボックスをオンにしてから、 [閉じる] ボタンをクリ ッ クします。

パワーバーとペインタバーにある各ボタンにラベルが表示されます。

ツールバーの浮動化

作業時などには、 ツールバーを浮動化して、 ペインタのワークスペースの周辺に移動させるこ とができます。

1 パワーバー内の任意の場所を右クリ ッ クします。

ツールバーのポップアップ メニューが表示されます。 ポップアップ メニューで、 ワークスペースの上下左右の位置にツールバーを設定できます。ツールバーを浮動状態に設定するこ と もできます。

ポップアップ メニューについてPowerBuilder では、 ポップアップ メニューを用いてすばやく処理を行う こ とができます。 ポップアップされる メニュー項目は、 どのペインタを使用しているか、 およびワークスペース内のどこで右マウス ボタンをク リ ッ ク したかによって異なり ます。

2 ポップアップ メニューで [浮動] をク リ ックします。

ペインタバーが浮動型ツールバーに変わ り ます。 浮動型ツールバーの形状は調整できます。

PowerBuilder 入門 61

Page 74: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ツールバーのセッ トアップ

3 パワーバーの端または境界にマウス ポインタを移動します。 パワーバー上で左マウス ボタンを押し、ワークスペースの左側にド ラッ グします。パワーバーが垂直バーに変わったら、 マウス ボタンを放します。

フレームの左部にパワーバーが固定されます。

ツールバーの再配置

ツールバーの位置は、作業スタイルに合わせてカスタマイズできます。

1 メニュー バーから [ツール|ツールバー] を選択します。

ツールバー ダイアログボッ クスが表示されます。 現在選択されているツールバーの位置は、 [移動] ラジオボタンの う ちのどれがチェッ ク されているかを調べればわかり ます。

62 PowerBuilder

Page 75: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 2 PowerBuilder の環境のカスタマイズ

2 [上部] をクリ ックします。

この操作によ り、 パワーバーがワークスペースの上部に再配置されます。

ラジオボタンのグレー表示(指定したツールバーが表示されていない場合)指定したツールバーがペインタに表示されていない場合は、 そのツールバーをワークスペース内のどの位置に表示するかを選択できません。 この場合は、 ラジオボタンがグレー表示になり ます。 ラジオボタンを選択可能な状態にするには、 先に [表示] ボタンをク リ ッ クする必要があ り ます。

3 [ツールバーの選択] リストボックスで 「ペインタバー 1」 を選択し、 [右端] をクリ ッ クします。ツールバー ダイアログボックスで [閉じる] をク リ ックします。

4 「ペインタバー 2」 を右ク リ ックして、ポップアップ メニューから [左端]を選択します。

この操作によ り、 2 つのペインタバーの位置が入れ替わり ます。

5 ツールバーを目的の場所に配置します。

ツールバーは、 ペインタのワークスペースの上下左右にド ラ ッグできます。 ツールバーの位置を固定する と、 ツールバー ボタンの左または上部にド ラ ッグ バーができます。 ド ラ ッグ バーをク リ ック してマウスを移動するこ とで、 ペインタのワークスペースの周辺にツールバーを移動できます。

ツールバー設定は、 すべてのペインに適用されます。 また、 この設定は保存され、 次回 PowerBuilder を開いた時にも この設定が適用されます。

6 アプリケーシ ョ ン ペインタを閉じます。

PowerBuilder 入門 63

Page 76: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ツールバーのセッ トアップ

64 PowerBuilder

Page 77: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 3 ログイン ウィ ンドウの作成

ウ ィ ンド ウは、 ユーザと PowerBuilder アプ リ ケーシ ョ ンを結ぶ主要なインタフェースです。 情報の表示、 情報の入力要求、 マウスやキーボードの操作への応答は、 ウ ィ ン ド ウによって実現されます。

ウ ィンド ウは、 ウ ィ ンド ウ ペインタを使用して作成する独立したオブジェ ク ト です。 PowerBuilder では、 アプ リ ケーシ ョ ンを開発している間、 いつでもウ ィ ンド ウを作成できます。

このレッスンでは、 以下の項目について学習します。

• ウィ ンド ウの新規作成

• コント ロールの追加

• ウィ ンド ウのタブ順序の変更

• Help イベント のコーディ ングと ウィ ンド ウのプレビュー

• ログイン ウィ ンド ウを開く スク リ プト の記述

所要時間約 20 分

PowerBuilder 入門 65

Page 78: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ウィンドウの新規作成

ウィンドウの新規作成

現在の学習個所> ウィ ンド ウの新規作成

コント ロールの追加ウィ ンド ウのタブ順序の変更Help イベント のコーディ ングとウィ ンド ウのプレビューログイン ウィ ンド ウを開く スクリ プト の記述

このステップでは、 アプ リ ケーシ ョ ンのウ ィ ンド ウを新規に作成します。 こ こで作成するウ ィ ンド ウは、ユーザ ID およびパスワードの入力と、 データベースへの接続が可能なログイン ウ ィンド ウです。 このログイン ウ ィンド ウはレスポンス ウ ィンド ウです。

レスポンス ウィンドウについてレスポンス ウ ィ ンド ウ とは、 ユーザに情報を要求するダイアログボックスです。 レスポンス ウ ィ ンド ウはアプ リ ケーシ ョ ン モーダルです。レスポンス ウ ィ ンド ウは、 表示される とアクティブ (フォーカスされている状態) にな り、 ユーザが応答するまでそのアプ リ ケーシ ョ ン以外のウ ィ ンド ウにアクセスできな くな り ます。ただし、ほかの Windowsアプ リ ケーシ ョ ンにはアクセスできます。 この場合、 元のアプ リ ケーシ ョ ンに戻ってもレスポンス ウ ィ ン ド ウはアクテ ィブな状態を保ちます。

1 パワーバーの [新規作成] ボタンをクリ ックします。

新規作成 ダイアログボッ クスが表示されます。

2 [PB オブジェク ト] タブをク リ ックします。[ウィ ンドウ] アイコンを選択して [OK] をクリ ックします。

ウ ィ ンド ウ ペインタが開きます。 スタ イルバーとペインタバー 3という、 2 つのツールバーがあるこ とに注意して ください。

3 ウィンドウ ペインタにレイアウト ビューとプロパティ ビューが表示されていることを確認します。

これらのビューは、 [ビュー] メニューから選択して表示します。これらのビューがメニュー内でグレー表示されている場合は、 すでにペインタに表示されています。

デフォルトのビュー レイアウ トには、 両方のビューがあ り ます。

66 PowerBuilder

Page 79: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

デフォルトのペインタ レイアウトにするにはワークスペースのメニュー バーから [ビュー|レイアウ ト| (デフォルト )] を選択します。

レイアウ ト ビュー内の四角形は、 作成しているウ ィンド ウを表します。 プロパティ ビューのデフォルト プロパティは、 ウ ィンド ウが表示可能かつ使用可能になっており、 ウ ィ ン ド ウの種類がウ ィンド ウ型であるこ とを示します。 プロパティ ビューをスク ロールしないと、 ウ ィンド ウの種類が表示されない場合もあ り ます。

ウィンドウがペグボード状になっていない場合レイアウ ト ビュー内のウ ィ ンド ウの外観が無地で表示されている場合は、 [グ リ ッ ドの表示] オプシ ョ ンが無効になっています。 このオプシ ョ ンを有効にするには、 メニュー バーから [デザイン|オプシ ョ ン] を選択します。 次に、 オプシ ョ ン ダイアログボッ クスの [全般] ページで [グ リ ッ ドの表示] チェ ッ クボッ ク スをオンにします。 [更新] をク リ ッ ク し、 [OK] をク リ ッ ク して変更を保存し、 ダイアログボッ クスを閉じます。

4 プロパティ ビューの [全般] ページの [タイ トル] テキストボックスに「Welcome」 と入力します。[ウィ ンドウの種類] ドロップダウン リストボックスで 「response!」 を選択します。

PowerBuilder 入門 67

Page 80: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ウィンドウの新規作成

5 [タイ トルバー] と [コン ト ロール メニュー] チェ ッ クボックスがオンになっていることを確認します。[文脈ヘルプ] チェ ックボックスをオンにします。

文脈ヘルプ プロパティによって、 ログイン ウ ィ ンド ウのタイ トルバー内の [閉じ る] ボタンの横に [?] ボタンが追加されます。[?] ボタンをク リ ッ クする と、 ウ ィ ン ド ウ コン ト ロールの Helpイベン ト を発生させるこ とができます。

6 プロパティ ビューの [その他] タブをクリ ックします。[幅] テキス トボックスに 「2300」、 [高さ] テキス トボックスに 「1000」と入力します。〔Tab〕 キーを押します。

レイアウ ト ビュー内にある長方形のウ ィンド ウのサイズが変更されます。 入力する値は、 PowerBuilder 単位系 (PBU) です。 この値は、 後でコン ト ロールをウ ィ ン ド ウに追加する と きに修正できます。

位置プロパティを入力する別の方法値は、 手動入力するかわりにスピン コン ト ロールを使用して入力できます。

レイアウ ト ビュー内のログイン ウ ィ ン ド ウのサイズを変更する方法と してはそれ以外にも、 ポインタをウ ィ ン ド ウの下部または右端に移動する方法があ り ます。 ポインタが双方向の矢印に変わったら、 ド ラ ッグしてウ ィンド ウのサイズを変更できます。

7 メニュー バーから [ファイル|上書き保存] を選択します。

ウ ィ ン ド ウの保存 ダイアログボッ ク スが表示されます。 [アプ リケーシ ョ ン ラ イブラ リ ] テキス ト ボッ クスには、 唯一のライブラリ と して 「Pbtutor.pbl」 が選択されています。

8 ウィンドウ名に 「w_welcome」 と入力します。

「w_」 は、 ウ ィンド ウを表す標準的な接頭辞です。

9 (オプシ ョ ン) [コ メン ト] テキス ト ボックスに以下のコ メン ト を入力します。

これはログイン ウィンドウです。続行するには ID とパスワードを入力する必要があります。

68 PowerBuilder

Page 81: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

このコ メン トは、 ラ イブラ リ ペインタの リ ス ト ビューで表示できます。

10 [OK] をク リ ックします。

新しいログイン ウ ィンド ウが保存されます。 システム ツ リー内のMyWorkspace、 pbtutor、 および pbtutor.pbl を展開する と、 その下部に w_welcome が表示されます。

PowerBuilder 入門 69

Page 82: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

コン ト ロールの追加

コン ト ロールの追加

現在の学習個所ウィ ンド ウの新規作成

> コント ロールの追加ウィ ンド ウのタブ順序の変更Help イベント のコーディ ングとウィ ンド ウのプレビューログイン ウィ ンド ウを開く スクリ プト の記述

ユーザはコン ト ロールを介して、 ウ ィン ド ウやデータウ ィ ンド ウなどの PowerBuilder オブジェ ク ト と対話できます。 まずこれらのコン トロールのプロパティ を設定し、 後でコン ト ロール イベン トおよび関数のスク リプ ト を追加します。

ペインタバーからのコン ト ロール ボタンの選択 コン ト ロールを追加するには、 [挿入] メニューか、 またはペインタバー 1 のコン ト ロール ボタンを選択します。 ツールバーをカスタマイズしない限り、 ペインタバーに表示されるコン ト ロール ボタンは 1 つだけです。 ペインタを初に開いたと きに、 ペインタバー 1 の中にコマンドボタン コン ト ロール ボタンが表示され、 その右側に下矢印が表示されます。 その下矢印をク リ ッ クする と、コン ト ロール ボタンのド ロ ップダウン リ ス トが表示されます。

ド ロ ップダウン リ ス トから選択できるコン ト ロールの一部を、以下の表に示します。

ボタンの外観コン ト ロールの種類 チュート リアルでの使用法

コマンド ボタン ペインタバー 1 のコン ト ロール ボタンのデフォルト アイコン。 コマンド ボタンの追加については、このレッスンの後半を参照

ピクチャ ログイン ウ ィ ン ド ウにピクチャを追加する

ピクチャ ハイパーリ ンク

このチュー ト リ アルでは使用しない。Web サイ トへの リ ンクを指定する と きに使用する

ピクチャ ボタン このチュート リ アルでは使用しない。コマン ド ボタンに似ているが、 テキス トだけではなく、 ピクチャも表示される

スタティ ッ ク テキス ト

ログイン ウ ィンド ウにテキス ト ラベルを追加する

70 PowerBuilder

Page 83: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

コン ト ロールを選択する と、 ペインタバー 1 上にある [コマンドボタン] ボタンのかわりに、 選択したコン ト ロールが表示されます。

コン ト ロールを 3D 表示にするコン ト ロールの外観を 3 次元表示にするには、 メニュー バーから [デザイン|オプシ ョ ン] を選択し、 オプシ ョ ン ダイアログボッ ク スで[全般] ページの [3D がデフォルト ] チェ ッ クボッ クスがオンになっているこ とを確認します。 ウ ィンド ウの背景色は、 ウ ィンド ウ ペインタのプロパテ ィ ビューで、 デフォル ト の 「3D オブジェ ク ト グレー」から別の色に変更できます。

こ こでは、 コン ト ロールを追加し、 プロパティの一部を変更して、 作成したログイン ウ ィ ド ウを修正します。 このレッスンの内容は以下のとおりです。

• ピク チャの追加

• スタティ ッ ク テキスト コント ロールの追加

• スタティ ッ ク テキスト コント ロールのプロパティ の指定

• シングルラ イン エディ ッ ト コント ロールの追加

• シングルラ イン エディ ッ ト コント ロールのプロパティ の指定

• コマンド ボタン コント ロールの追加

• コマンド ボタン コント ロールのプロパティ の指定

スタティ ッ ク ハイパーリ ンク

Web サイ トへのリ ンクを提供する

シングルライン エディ ッ ト

ログイン ウ ィ ン ド ウにユーザ入力用テキス ト ボッ クスを追加する

マルチライン エディ ッ ト

このチュート リ アルでは使用しない。マルチラ イン編集用のテキス ト ボッ ク スを追加する

ボタンの外観コン ト ロールの種類 チュート リアルでの使用法

PowerBuilder 入門 71

Page 84: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

コン ト ロールの追加

ピクチャの追加

こ こでは、 ピクチャ コン ト ロールをログイン ウ ィ ン ド ウに追加します。

1 コン ト ロールのドロップダウン リス トから [ピクチャ] ボタンを選択します。またはメニュー バーから [挿入|コン ト ロール|ピクチャ] を選択します。

2 レイアウト ビューの長方形ウィンドウの内側をクリ ックします。

選択した場所に、 ピクチャ コン ト ロールが表示されます。 コン トロールを追加する と同時に、 プロパティ ビューが、 ウ ィンド ウ プロパティの表示からコン ト ロール プロパティの表示に切り替わります。

プロパテ ィ ビューが表示されない場合は、 メ ニュー バーから[ビュー|プロパティ] を選択します。プロパティ ビューにコン トロールのプロパティが表示されない場合は、 レイアウ ト ビューのピクチャ コン ト ロールをク リ ッ ク します。

コン ト ロールを削除するにはコン ト ロールをウ ィ ン ド ウに追加した後で不要になった場合は、コン ト ロールを選択して、 〔Delete〕 キーを押します。 コン ト ロールとそれに記述されているスク リプ トが削除されます。

3 プロパティ ビューで、 [全般] タブ上の [名前] テキス トボックスから「p_1」 を選択します。[名前] テキストボックスに 「p_sports」 と入力します。

「p_sports」 はピクチャ名です。 「p_」 はピクチャ コン ト ロールを表す標準的な接頭辞です。

4 [ピクチャ名] テキストボックスの隣にある参照 ([...]) ボタンをクリ ックします。

ピクチャの選択 ダイアログボッ クスが表示されます。

5 現行のディレク ト リが Tutorial でない場合は、Tutorial ディレク ト リに移動します。tutsport.bmp ファイルを選択して [開く ] をクリ ッ クします。

72 PowerBuilder

Page 85: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

選択したビ ッ ト マップが、 レ イアウ ト ビューに追加したコン トロールの内部に表示されます。 プロパティ ビューでは、 デフォルトで [表示可能] 、 [使用可能] 、 および [元のサイズ] チェ ッ クボッ クスがオンになり ます。

6 レイアウト ビューでピクチャ コン ト ロールが選択されていることを確認します。プロパティ ビューの [その他] タブをク リ ックします。[X] テキス トボックスに 「40」 、 [Y] テキストボックスに 「50」 と入力します。

[X] および [Y] テキス ト ボッ クスのスピン コン ト ロールを使用して、 これらの数値を入力するこ と もできます。 このレ ッ スンの後にウ ィンド ウをプレビューした後で、 必要ならピクチャ コン

ト ロールの位置を調整します。

7 [幅] テキストボックスに 「300」、 [高さ] テキストボックスに 「250」 と入力します。

ピクチャ コン ト ロールのサイズを変更します。 このピクチャのサイズも、 ウ ィ ン ド ウをプレビューした後で、 必要に応じて調整できます。

PowerBuilder 入門 73

Page 86: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

コン ト ロールの追加

スタテ ィ ッ ク テキスト コン ト ロールの追加

このステップでは、 スタテ ィ ッ ク テキス ト コン ト ロールをログインウ ィンド ウに追加します。

1 コン ト ロールのドロップダウン リス トから [テキス ト] ボタンを選択します。またはメニュー バーから [挿入|コン ト ロール|スタテ ィ ック テキスト] を選択します。

2 レイアウ ト ビューに追加したピクチャ コン ト ロールの右側のワークスペースをクリ ックします。

スタティ ッ ク テキス ト コン ト ロールが、選択した場所に表示されます。

3 スタテ ィ ック テキスト コン トロールを右クリ ッ クして、ポップアップ メニューから [複製] を選択します。

選択しているコン ト ロールが複製されます。

4 も う一度スタテ ィ ック テキスト コン ト ロールのポップアップ メニューから [複製] を選択します。

3 つ目のスタティ ッ ク テキス ト コン ト ロールが複製されます。

ウ ィンド ウ上部にスタティ ッ ク テキス ト コン ト ロールが縦に 3 つ並んで配置されます。

5 3 つのコン ト ロールの間隔を十分に取って配置し直します。

スタテ ィ ッ ク テキスト コン ト ロールのプロパティの指定

このステップでは、 スタテ ィ ッ ク テキス ト コン ト ロール (ラベル テキス ト ボッ クス) のプロパティ を指定して、 それらのコン ト ロールのログイン ウ ィンド ウ上での表示方法を定義します。

1 追加した一番上のスタテ ィ ック テキスト コン ト ロールを選択します。

プロパティ ビューに、スタティ ッ ク テキス ト コン ト ロールのプロパティが表示されます。プロパティ ビューが表示されない場合は、メニュー バーから [ビュー|プロパティ] を選択します。

74 PowerBuilder

Page 87: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

2 プロパティ ビューで、 [全般] ページ上の [名前] テキストボックスから「st_1」 を選択します。[名前] テキス トボックスに 「st_welcome」 と入力します。

これで、 コン ト ロールの名前に意味を持たせるこ とができました。「st_」 はスタテ ィ ッ ク テキス ト コン ト ロールの標準的な接頭辞です。

3 [テキス ト] テキス トボックスの 「未設定」 を選択します。 「PowerCAP 営業支援システム」 と入力します。

〔Enter〕 を押した り、 プロパティ ビューのほかのページを選択するか、 または別のビューをク リ ッ クする と、 入力したテキス ト がレイアウ ト ビューで 「未設定」 が入力したテキス トに置き換わります。

4 プロパティ ビューの [フォン ト] タブをク リ ックします。このコン ト ロールの [サイズ] プロパティ を 18 ポイン トに変更します。

コン ト ロール内のテキス トのサイズが変更されます。

デフォルトの書体は 「MS ゴシッ ク」 です。 ただし、 システムにこのフォン ト とサイズが用意されていないと きは、 ほかのものを選択してかまいません。

スタイルバーの使い方スタ イルバーを使用してフォン ト を変更するこ と もできます。 スタイルバーが表示されていない場合は、 メニュー バーから [ツール|ツールバー] を選択して、 [ツールバーの選択] リ ス ト ボッ クスの 「スタイルバー」 をク リ ッ ク し、 [表示] ボタンをク リ ッ ク して ください。

5 スタティ ッ ク テキスト コン ト ロールのサイズを、 入力したテキストに合わせて調整します。入力したテキストの全体が表示されるように調整して ください。

サイズを調整するには、 レイアウ ト ビューでコン ト ロールの右上隅のハンドルをウ ィンド ウの右上隅の方へド ラ ッグします。

サイズを変更する方法と してはそれ以外にも、 このコン ト ロールのプロパティ ビューの [その他] ページで適切な値を入力する方法があ り ます。

6 レイアウト ビューで追加した 2 番目のスタテ ィ ック テキスト コン ト ロールを選択します。

PowerBuilder 入門 75

Page 88: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

コン ト ロールの追加

プロパテ ィ ビューで、 [全般] ページの [名前] テキス ト ボッ クスに「st_userid」 と入力します。[テキスト] テキストボックスに 「ユーザ ID:」 と入力し、 〔Tab〕 を押します。

コン ト ロール内に表示されているテキス トが変更されます。

7 レイアウト ビューで追加した 3 番目のスタティ ッ ク テキスト コン ト ロールを選択します。プロパテ ィ ビューで、 [全般] ページの [名前] テキス ト ボッ クスに「st_password」 と入力します。[テキスト] テキストボックスに 「パスワード :」 と入力し、 〔Tab〕 を押します。

変更内容がレイアウ ト ビューに表示されます。

シングルライン エディ ッ ト コン ト ロールの追加

このステップでは、 2 つのシングルライン エディ ッ ト コン ト ロールをウ ィンド ウに追加して、データベースへの接続に必要なユーザ ID とパスワードを入力できるよ うにします。シングルライン エディ ッ ト コント ロールとは、 1 行分のテキス ト を入力できるテキス ト ボッ クスのことです。通常、シングルライン エディ ッ ト コン ト ロールはデータの入出力に使用されます。

1 コン ト ロールのドロップダウン リス トから[シングルライン エディ ッ ト]ボタンを選択します。またはメニュー バーから [挿入|コン ト ロール|シングルラインエディ ッ ト] を選択します。

76 PowerBuilder

Page 89: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

2 レイアウト ビューに追加した st-userid スタテ ィ ック テキスト コン トロールの右側のワークスペースをクリ ッ クします。

選択した場所にシングルラ イン エディ ッ ト コン ト ロールが表示されます。

3 シングルライン エディ ッ ト コン ト ロールの幅を広げてサイズを調整します。

4 シングルラインエディ ッ ト コン ト ロールを右クリ ックして、 ポップアップ メニューから [複製] を選択します。複製したシングルライン エディ ッ ト コン ト ロールを、スタティ ッ ク テキスト コン ト ロール st_password の右隣に移動します。

スタティ ッ ク テキス ト コン ト ロールの右側に、シングルライン エディ ッ ト コン ト ロールが縦に 2 つ並んで配置されます。

シングルライン エディ ッ ト コン ト ロールのプロパティの指定

このステップでは、 前のステップでログイン ウ ィンド ウに追加したシングルライン エディ ッ ト コン ト ロールの各プロパティ を定義します。

1 1 番目のシングルライン エディ ッ ト コン ト ロールを選択します。

プロパティ ビューの [全般] ページにシングルライン エディ ッ トコン ト ロールのプロパティが表示されます。 プロパティ ビューが表示されない場合は、 メニュー バーから [ビュー|プロパテ ィ]を選択します。

2 [名前] テキス トボックスから 「sle_1」 を選択します。[名前] テキス トボックスに 「sle_userid」 と入力します。

PowerBuilder 入門 77

Page 90: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

コン ト ロールの追加

[テキスト] テキス トボックスのデフォルト テキスト 「未設定」 をクリアします。

「sle_」 はシングルライン エディ ッ ト コン ト ロールの標準的な接頭辞です。

3 2 番目のシングルライン エディ ッ ト コン ト ロールを選択します。[名前] テキストボックスに 「sle_password」 と入力します。[テキスト] テキス トボックスのデフォルト テキスト 「未設定」 をクリアします。[パスワード] チェ ックボックスをオンにします。

[パスワード] チェ ッ クボッ クスをチェッ ク している と、 実行時にユーザが入力するパスワードがアスタ リ ス クで表示されます。

コマンドボタン コン ト ロールの追加

このステップでは、 コマンドボタン コン ト ロールを追加します。 これらのボタンをク リ ッ ク したと きに実行するスク リプ トは、 後で定義します。

1 コン ト ロールのドロップダウン リス トから [コマンドボタン] ボタンを選択します。またはメニュー バーから [挿入|コン ト ロール|コマンドボタン] を選択します。

2 シングルライン エディ ッ ト コン ト ロール sle_userid の右側のワークスペースをクリ ックします。

選択した場所にコマンドボタン コン ト ロールが表示されます。

3 コマンドボタン コン ト ロールを右クリ ックして、 ポップアップ メニューから [複製] を選択します。

選択しているコン ト ロールが複製されます。

4 必要に応じてコマンドボタン コン ト ロールの位置を変更し、2 つのコマンドボタン コン ト ロールの間に適当な間隔を置く ようにします。

78 PowerBuilder

Page 91: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

コマンドボタン コン ト ロールのプロパティの指定

このステップでは、 コマンドボタン コン ト ロールのプロパティを定義します。

1 1 番目のコマンドボタン コン ト ロールを選択します。

プロパテ ィ ビューの [全般] ページに、 コマン ドボタン コン トロールのプロパティが表示されます。

2 プロパテ ィ  ビューで、 [全般] ページの [名前] テキス ト ボッ クスに「cb_ok」 と入力します。[テキス ト] テキス トボックスに 「OK」 と入力します。[デフォルト] チェ ックボックスをオンにします。

こ こではコン ト ロールの内容を説明するために、デフォルト名「未設定」 を変更して、ボタンにラベルを付けています。[デフォルト ]チェ ッ クボッ クスをオンにしたので、 〔Enter〕 を押したと きに、 このボタンの Clicked イベン トが発生します。

3 2 番目のコマンドボタン コン ト ロールを選択します。[名前] テキス トボックスに 「cb_cancel」 と入力します。[テキス ト] テキス トボックスに 「キャンセル」 と入力します。[キャンセル] チェ ックボックスをオンにします。

[キャンセル] チェッ クボッ クスをオンにしたので、 〔Esc〕 を押したと きに、 このボタンの Clicked イベン トが発生します。

PowerBuilder 入門 79

Page 92: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ウィンドウのタブ順序の変更

ウィンドウのタブ順序の変更

現在の学習個所ウィ ンド ウの新規作成コント ロールの追加

> ウィ ンド ウのタブ順序の変更Help イベント のコーディ ングとウィ ンド ウのプレビューログイン ウィ ンド ウを開く スクリ プト の記述

ウ ィ ンド ウ上にコン ト ロールを配置する と、 デフォル トのタブ順序が割り当てられます。 タブ順序は、 〔Tab〕 を押した際に、 複数のコン トロールをフォーカスが移動する順序を決めるものです。

このステップでは、 作成したウ ィンド ウのタブ順序を変更します。

1 メニュー バーから [書式|タブ順序を表示] を選択します。

デフォル トのタブ順序が表示されます。 タブ順序はコン ト ロールの相対位置に基づいて設定され、 コン ト ロールの右上に赤い数字で表示されます。 タブ順序が 0 のコン ト ロールは、 タブを押したと きにフォーカスされないコン ト ロールです。

2 sle_userid コン ト ロールの [タブ順序番号] をク リ ックします。 このコン ト ロールのタブ順序の値として 「10」 と入力します。

新しいタブ順序の番号を入力できるのは、 古い番号が赤い背景の青字に変わった場合のみです。

3 ほかのコン ト ロールの値が以下のとおりであることを確認します。

設定対象のコン トロール コン ト ロール名 適用される値

パスワードを入力するためのシングルライン エディ ッ ト コン ト ロール

sle_password 20

[OK] ボタンのコマンドボタン コント ロール

cb_ok 30

[キャンセル] ボタンのコマンドボタン コン ト ロール

cb_cancel 40

80 PowerBuilder

Page 93: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

4 メニュー バーから [書式|タブ順序を表示] を選択します。

これはト グル スイ ッチになっています。 このメニュー項目を選択する と、 変更内容が保存され、 タブ順序の番号がログイン ウ ィンド ウから消去されます。 ペインタバー上の [タブ順序] ボタンを使用しても同じ処理ができます。

PowerBuilder 入門 81

Page 94: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Help イベン トのコーディングとウィ ンドウのプレビュー

Help イベン トのコーディ ングとウィンドウのプレビュー

現在の学習個所ウィ ンド ウの新規作成コント ロールの追加ウィ ンド ウのタブ順序の変更

> Help イベント のコーディ ングとウィ ンド ウのプレビューログイン ウィ ンド ウを開く スクリ プト の記述

このステップでは、 スク リプ ト ビューを使用して、 ログイン ウ ィ ンドウに配置されているシングルラ イン エディ ッ ト コン ト ロールに状況依存ヘルプ メ ッセージを追加し、 そのウ ィンド ウをプレビュー表示します。スク リプ ト ビューがウ ィ ンド ウ ペインタに表示されていないときは、 レイアウ ト ビューでオブジェク ト をダブルク リ ッ ク して開きます。

スクリプ ト ビューの使い方 スク リプ ト ビューには、 3 つのド ロ ップダウン リ ス ト ボッ クスがあ り ます。 初のド ロ ップダウン リ ス ト ボッ クスには、 現在のオブジェク トで利

用可能なコン ト ロールのリ ス トおよび特殊エン ト リである 「Functions」と 「Declare」が表示されています。2 番目のド ロ ップダウン リ ス ト ボックスの内容は、 初のド ロ ップダウン リ ス ト ボッ クスで何を選択したかによって変わり ます。3 番目のド ロ ップダウン リ ス ト ボッ クスには、現在のオブジェク トの先祖オブジェク トが存在する場合は、 そのオブジェク トすべてが含まれています。

1 レイアウト ビューで、一番上のシングルライン エディ ッ ト コン ト ロールをダブルクリ ックします。

初のドロップダウンリス トボックスでの選択

2 番目のドロップダウンリストボックスの内容

3 番目のドロップダウンリストボックスの内容

オブジェク ト またはコン ト ロール名

選択したオブジェ ク トまたはコ ン ト ロールのイベン トの リ ス ト

現在のオブジェ ク ト とそのすべての先祖オブジェク ト

Functions 編集可能な関数の リ スト 。編集可能な関数が存在しない場合は、 「新しい関数」 が表示される

選択した関数と同じ署名の関数を持つ、すべての先祖オブジェク ト

Declare グローバル、共有、およびイ ンス タ ンス変数の宣言型の リ ス ト と ローカル外部関数

なし

82 PowerBuilder

Page 95: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

スク リプ ト ビューの 1 番目のド ロ ップダウン リ ス ト ボッ クスにオブジェク ト名 sle_userid が表示されます。

2 スクリプ ト ビューの 2 番目のドロップダウン リストボッ クスで Help イベン ト を選択します。

Help イベン ト のプロ ト タ イプは次のとおりです。 help (integerxpos, integer ypos) returns long [pbm_help]

3 スクリプ ト領域内に、 次の行を入力します。

ShowPopupHelp("pbtutor.hlp", this, 100)

pbtutor.hlp ファ イルは、Tutorial ディレク ト リ内にあ り ます。2 番目の引数は現在のシングルライン エディ ッ ト コン ト ロールを、 後の引数は pbtutor.hlp ファ イルのコンテキス ト ID を表します。

スク リプ ト ビューにテキス ト を入力する と、 入力した構文要素の種類 (キーワード、 変数、 コ メ ン ト など) によってテキス ト の色が変わり ます。

4 スクリプ ト ビューの 初のドロップダウン リストボックスから「sle_password」 を選択します。2 番目のドロップダウン リス トボックスで Help イベン ト を選択します。

sle_userid のシングルライン エディ ッ ト テキス ト ボッ クスの Helpイベン ト用に入力したスク リプ トが、 コンパイルされます。 こ こで、 [sle_password] シングルライン エディ ッ ト テキス トボッ クスの Help イベン ト を追加します。

5 スクリプ ト領域内に、 次の行を入力します。

ShowPopupHelp("pbtutor.hlp", this, 200)

6 メニュー バーから [ファイル|実行 / プレビュー] を選択します。またはパワーバーの [オブジェク トの実行 / プレビュー] をクリ ックします。

実行ダイアログボッ クスが表示されます。 [オブジェ ク トの種類]リ ス ト ボ ッ ク ス に 「ウ ィ ン ド ウ」 が表示 さ れてい る こ と と、w_welcome オブジェク トが選択されているこ とを確認します。

PowerBuilder 入門 83

Page 96: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Help イベン トのコーディングとウィ ンドウのプレビュー

ウィンドウのプレビュース ク リ プ ト を実行せずにウ ィ ン ド ウをプレビューするには、 メニュー バーの [デザイン|プレビュー] を選択するか、 ペインタバー 1 (パワーバーの [オブジェク トの実行 / プレビュー] と同じアイコン) の [プレビュー] ボタンをク リ ッ ク します。 ただし、直前に入力した Help イベン ト ス ク リプ ト の結果を表示したい場合は、 いずれの操作も使用しないでください。

7 [OK] をクリ ッ クします。

変更内容を保存するかど うかを問い合わせる メ ッセージボッ ク スが表示されます。

8 [はい] をク リ ックします。

ログイン ウ ィ ン ド ウの実行時の外観がプレビュー表示されます。ウ ィンド ウ レイアウ ト を変更したい場合は、 ウ ィンド ウ ペインタのワークスペースに戻って、 ウ ィ ン ド ウ コン ト ロールのサイズ、配置、 フォン ト を変更できます。

9 ログイン ウィンドウのタイ トル バーで [?] ボタンをクリ ッ クします。シングルライン エデ ィ ッ ト テキス トボッ クス sle_userid の内側をクリ ックします。

「ここにユーザー ID を入力します。」 とい う メ ッセージが表示されます。 このメ ッセージは、 pbtutor.hlp ファ イルのコンテキス ト ID 100に対応し ています。 こ のコ ンテキ ス ト ID は、 Help イベン トsle_userid の ShowPopupHelp 関数の引数と して指定したものです。

10 ウィンドウ内の任意の場所をクリ ックすると、 メ ッセージが閉じます。シングルライン エディ ッ ト テキストボックス sle_password の内側をクリ ックして、 〔F1〕 を押します。

84 PowerBuilder

Page 97: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

「ここにパスワードを入力します。」 とい う メ ッセージが表示されます。このメ ッセージは、 pbtutor.hlp ファ イルのコンテキス ト ID 200 に対応しています。

11 ウィンドウ内の任意の場所をクリ ッ クすると、 メ ッセージが閉じます。ログイン ウィンドウのタイ トル バーで [閉じる] ボタンをク リ ックします。

ウ ィ ンド ウ ペインタのワークスペースに戻り ます。

後で、 アプリ ケーシ ョ ンを閉じる [キャンセル] ボタンの Clickedイベン トに、 スク リプ ト を追加します。

12 ウィンドウ ペインタを閉じます。

PowerBuilder 入門 85

Page 98: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ログイン ウィンドウを開く スクリプ トの記述

ログイン ウィ ンドウを開く スクリプ トの記述

現在の学習個所ウィ ンド ウの新規作成コント ロールの追加ウィ ンド ウのタブ順序の変更Help イベント のコーディ ングとウィ ンド ウのプレビュー

> ログイン ウィ ンド ウを開く スクリ プト の記述

このステップでは、 アプリ ケーシ ョ ン起動開始の直後にログイン ウ ィン ド ウを開く ための、 ス ク リ プ ト を追加します。 このス ク リ プ ト は、MDI フレーム ウ ィンド ウの Open イベン トに追加します。 このウ ィンド ウ (w_pbtutor_frame) は、 テンプレート アプ リ ケーシ ョ ン ウ ィザードで作成されたものです。

MDI フレームは、 アプリ ケーシ ョ ンの Open イベン トによって呼び出されます。 しかし、 ログイン ウ ィンド ウはレスポンス ウ ィ ンド ウであるため、 フレーム ウ ィ ンド ウからログイン ウ ィ ンド ウを呼び出すと、フレーム ウ ィンド ウよ り先に表示されたままになり ます。

この練習では、 以下の操作を行います。

• フレーム ウィ ンド ウの Open イベント の修正

• スク リ プト のコンパイル

86 PowerBuilder

Page 99: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

フレーム ウィンドウの Open イベン トの修正

フレーム ウ ィンド ウは、 アプリ ケーシ ョ ン オブジェク トの Open イベン トによって呼び出されます。 こ こで、 フレーム ウ ィンド ウ Open イベン ト のス ク リ プ ト を、 ログイン ウ ィ ン ド ウを開く よ う に修正します。 ログイン ウ ィンド ウはレスポンス ウ ィンド ウであるため、 フレーム ウ ィ ン ド ウ よ り も先に表示されたままにな り ます。 このため、 フレーム ウ ィンド ウの Open イベン トのスク リプ トは、(ユーザが応答するまで一時的に) 処理がブロ ッ ク されます。

ウィザードで生成されたスクリプ トフレーム ウ ィンド ウの Open イベン トには、 テンプレート アプリ ケーシ ョ ン ウ ィザードによって生成されたス ク リ プ ト がすでに関連付けられています。 このスク リプ トは、 シート (ウ ィ ン ド ウ) マネージャと して機能するウ ィザードが生成したユーザ オブジェ ク ト のインスタンスを作成します。 その後で、 Open スク リプ トが ue_postopen イベン ト を呼び出します。

ue_postopen イベン トは、 シート ウ ィ ンド ウをシート マネージャに登録します。ue_postopen イベン トはウ ィンド ウのメ ッセージ キューの後にポス ト され、 (このレッ スンで追加された) Open スク リプ トの残りが実行された後で処理されます。

1 メニュー バーから [ファイル|開く ] を選択します。開く ダイアログボッ クスで、 以下の項目を選択するか、 または選択されている項目を確認します。

w_pbtutor_frame オブジェク トは、 テンプレート アプリ ケーシ ョ ンウ ィザードで作成されたアプ リ ケーシ ョ ンのメ イン ウ ィンド ウです。

2 [OK] をク リ ックします。

開く ダイアログボックスの項目 選択 (確認) 項目

ターゲッ ト pbtutor — 現在の唯一のターゲッ ト

ライブラ リ pbtutor.pbl — 現在の唯一のライブラ リ

オブジェク トの種類 ウ ィンド ウ

オブジェク ト名 w_pbtutor_frame

使用 ペインタ

PowerBuilder 入門 87

Page 100: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ログイン ウィンドウを開く スクリプ トの記述

ウ ィンド ウ ペインタが開き、 ペインタのワークスペースにアプリケーシ ョ ンのメ イン ウ ィンド ウのビューが表示されます。

ス ク リ プ ト ビ ューが開いていない場合、 ワーク スペースの メニュー バーで [ビュー|スク リプ ト ] を選択するか、 またはレイアウ ト ビューの内側をダブルク リ ッ ク して開きます。

3 スクリプト ビューで Open イベント が表示されていることを確認します。スクリプ ト ビューのタイ トル バーをペインタの背景に固定させて表示します。

ス ク リプ ト ビューのタ イ ト ル バーに、 次の文字列が表示されます。

スクリプ ト w_pbtutor_frame の open の戻り値のデータ型は Long です。

ス ク リ プ ト ビューのスク リプ ト コードの前にコ メ ン ト が記述されています。

コ メン トの使い方PowerScript では、 2 つの方法でコ メン ト をあらわします。 1 行のコメン トには、 その行の先頭にスラ ッシュを 2 個 (//) を付けます。1 行または複数行のコ メン トには、先頭にスラ ッシュ とアスタ リ スク (/*) を、 末尾にアスタ リ ス ク と スラ ッシュ (*/) を付けます。コ メ ン トは、 コンパイラの解析の対象にはなり ません。

こ こで、 ログイン ウ ィ ン ド ウを表示するための Open イベン トのスク リプ ト を修正します。

4 次に示す行の中にあるカ ッ コの後ろにカーソルを合わせてク リ ッ ク します。

this.Post Event ue_postopen ( )

ue_postopen イベン トは引数をと り ません。

88 PowerBuilder

Page 101: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 3 ログイン ウィンドウの作成

5 〔Enter〕 を 2 回押します。

ス ク リプ ト ビューの中に空白行を挿入して、 読みやすく します。カーソルが空白行の次の行に移動します。

6 スクリプ ト ビューで、 新しい行に 「ログイン ウィ ンドウを開く 」 と入力します。ペインタバー 2 の [コ メン ト] ボタンをクリ ックします。

入力した行の前に 2 個のスラ ッシュが表示され、 その行のスラ ッシュ以降の領域がコ メン トに変わり ます。

7 〔Enter〕 を押して改行します。スクリプ ト ビューで、 次の行に 「open (w_welcome)」 と入力します。

この文は、Open 関数を呼び出し、作成したログイン ウ ィンド ウを表示します。

状況依存ヘルプへのアクセス状況依存ヘルプにアクセスするには、 スク リプ ト ビューで関数や予約語 (たとえば Open) を選択して 〔Shift〕 + 〔F1〕 を押します。〔F1〕を押すと、状況に関係なく常にメ イン ヘルプ画面が開きます。

PowerBuilder 入門 89

Page 102: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ログイン ウィンドウを開く スクリプ トの記述

スクリプ トのコンパイル

こ こでは、 入力したス ク リプ ト をコンパイルします。 PowerBuilder では、 スク リプ ト ビューを閉じたと きや、 スク リプ ト ビューで別のオブジェク ト 、 イベン ト、 または関数を選択したと きに、 自動的にスク リプ トがコンパイルされます。

このステップでは、 スク リプ ト ビューを閉じたり別のスク リプ トに変更した りせず、 ポップアップ メニューの項目を使用してスク リプ ト をコンパイルします。

スクリプ トのエラー処理スク リプ トにエラーがある場合は、 スク リプ ト ビューの下部にエラーウ ィンド ウが開き、 エラー番号とエラーメ ッセージが表示されます。

エラーを見つけるには エラーメ ッセージをク リ ッ クする と、 エラーのある行にカーソルが移動します。 エラーを修正したら、 スク リプ トのコンパイルを再試行します。

エラーのコ メン ト化 PowerBuilder では、 エラーのあるス ク リプ トは保存されません。 エラーのあるスク リプ ト を保存するには、 そのスク リプ ト全体を選択して、 [コ メ ン ト ] ボタンをク リ ッ ク します。 こ う して保存しておいたス ク リプ トは、 後で開いて、 コ メ ン ト を外してから、エラー箇所を修正します。

1 スク リプ ト ビューのスク リプ ト領域内の任意の場所を右ク リ ッ ク します。ポップアップ メニューで [コンパイル] を選択します。

スク リプ トがコンパイルされます。このと きに、スク リプ ト ビューまたはウ ィ ンド ウ ペインタのワークスペースを閉じたり、 ほかのビューに移動したり しないでください。

2 メニュー バーから [ファイル|上書き保存] を選択します。メニュー バーから [ファイル|閉じる] を選択します。

ウ ィンド ウ ペインタが閉じます。

90 PowerBuilder

Page 103: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 4 データベースへの接続

このレッ スンでは、 実行時にアプ リ ケーシ ョ ンをエンタープライズ アプリ ケーシ ョ ン サンプル (EAS Demo DB) データベースに接続するためのスク リプ ト を記述します。 また、 データベース ペインタを使用してテーブル定義を参照した り、EAS Demo DB データベースのデータベース プロファ イルを参照します。

このレッスンでは、 以下の項目について学習します。

• EAS Demo DB データベースの参照

• 接続オブジェク ト ウ ィザードの実行

• グローバル変数の宣言

• 接続情報の変更

• ログインおよびログアウ ト スク リプ トの完了

• アプ リ ケーシ ョ ンの実行

所要時間約 25 分

PowerBuilder 入門 91

Page 104: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

EAS Demo DB データベースの参照

EAS Demo DB データベースの参照

現在の学習個所> EAS Demo DB データベースの参照

接続オブジェク ト ウィザードの実行グローバル変数の宣言接続情報の変更ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

多くの企業には、 データベース専門の管理者がいます。 組織内にデータベース管理者がいれば、 データベース内にテーブルを作成して管理する必要はないかもしれません。 しかし、 こ こでは PowerBuilder の機能をフルに活用するために、データベースでの作業方法を説明します。

データ ソースの定義 ODBC Administrator などのデータベース接続ユーティ リ ティを使用して、 データベースをデータ ソース と して定義できます。 ODBC Administrator には DB プロファ イル ダイアログボッ クスからアクセスできます。ODBC データソースの定義は、odbc.ini レジスト リ キーに記述されています。

データベース プロファイルを使用した接続 いったんデータ ソースを定義したら、そのデータ ソース用のデータベース プロファ イルを作成できます。データベース プロファ イルとは、ある特定のデータ ソースまたはデータベース との接続を行う際に指定するパラ メータ セッ ト のこ とです。 データベース プロファ イルを使用すれば、 使用頻度の高いデータベース接続の管理を容易に行 う こ とができます。 アプ リ ケーシ ョ ンの開発中にデータベース プロファ イルを変更してほかのデータ ソースに接続できます。

データベース接続を行う時期 デザイン時または実行時の環境のいずれかでデータベースへの接続を確立できます。 PowerBuilder は、 ペインタを開く と きや、埋め込み SQL 文を含むスク リプ ト をコンパイルまたは保存する と き、 あるいはデータベースにアクセスするアプ リ ケーシ ョ ンを実行する と きにデータベースへの接続を行います。

PowerBuilder でデータベース定義を管理するには、 ほとんどの場合データベース ペインタを使用します。データベース ペインタでは以下の操作が行えます。

• テーブルの作成、 変更、 削除

• 主キーと外部キーの作成、 変更、 削除

• インデッ クス キーの作成、 削除

92 PowerBuilder

Page 105: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

• カラムの拡張属性の定義、 修正

• ビューの削除

この練習では、 以下の操作を行います。

• EAS Demo DB データベース プロファ イルの参照

• EAS Demo DB データベースのテーブル定義の参照

EAS Demo DB データベース プロファイルの参照

標準オプシ ョ ンで PowerBuilder をインス ト ールした場合は、 すでにEAS Demo DB データベース用に定義されたデータ ソース とデータベース プロファ イルがあ り ます。このチュート リ アルでは、EAS DemoDB データベースを使用します。

EAS Demo DB データベースは、ODBC を介してアクセスする AdaptiveServer Anywhere です。 このレッスンでは、 EAS Demo DB データベースのデータベース プロファ イルを調べます。データベース プロファ イルのパラ メータは、 レジス ト リ内に保持されます。

1 パワーバーの [DB プロファイル] ボタンをクリ ッ クします。またはメニュー バーの [ツール| DB プロファイル] を選択します。

DB プロファ イル ダイアログボッ ク スが表示されます。 DB プロファ イル ダイアログボッ クスには、 インス トールしたデータベース インタフェース と各インタフェースで定義したデータベースプロファ イルがツ リー形式で表示されています。

2 EAS Demo DB V9 を選択します。

このプロファ イルは、 インス トール時に作成されます。

PowerBuilder 入門 93

Page 106: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

EAS Demo DB データベースの参照

EAS Demo DBV9 データベース プロファイルが表示されない場合EAS Demo DBV9 データベースのプロファ イルがない場合は、データベースをインス ト ールしていない可能性があ り ます。 インストールは、 製品 CD-ROM から行う こ とができます。

EAS Demo DB V9 データベース を イ ン ス ト ールし、 ODBCAdministrator でデータ ソース と して定義している場合は、 データベース プロファ イル ペインタのツ リー ビューから 「ODB ODBC」を選択して、 [新規作成] をク リ ッ ク します。 DB プロファ イル設定ダイアログボッ クスで、 [データ ソース] ド ロ ップダウン リ スト ボッ クスからデータ ソースを選択し、[プロファ イル名] テキスト ボ ッ ク スに 「EAS Demo DB V9」 と入力し ます。 ユーザ ID に「dba」 、 パスワードに 「sql」 と入力し、 [OK] をク リ ッ ク してペインタに戻り ます。

94 PowerBuilder

Page 107: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

3 [編集] をクリ ックします。

DB プロファ イル設定 ダイアログボッ クスの [接続] ページが表示されます。

4 [プレビュー] タブをクリ ックします。

選択した各オプシ ョ ンの接続構文が [プレビュー] タブに表示されます。 オプシ ョ ンを変更する と、 構文も変わり ます。

5 [接続のテスト] ボタンをクリ ックします。

接続に成功したこ とを通知する メ ッセージ ボッ クスが表示されます。

PowerBuilder 入門 95

Page 108: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

EAS Demo DB データベースの参照

接続に失敗したという メ ッセージ ボックスが表示された場合メ ッセージ ボッ クスを閉じて、 DB プロファ イル設定ダイアログボッ ク スの [接続] ページの内容が正しいこ と を確認してから、ODBC Administrator のデータ ソースの設定内容をチェッ ク して ください。

6 [OK] をクリ ッ クして、 メ ッセージ ボックスを閉じます。[キャンセル] をク リ ックして、 DB プロファイル設定 ダイアログボックスを閉じます。[閉じる] をク リ ックして、 DB プロファイル ダイアログボックスを閉じます。

EAS Demo DB データベースのテーブル定義の参照

このステップでは、EAS Demo DB データベースの顧客情報 (customer)テーブルと商品管理 (product) テーブルの定義を参照します。 これによ り、 データベース ペインタ とチュート リ アルで使用するテーブルについてよ く理解できます。

接続時の処理内容 テーブル定義を参照するには、 データベースに接続する必要があ り ます。 開発環境でデータベース環境に接続する と、 接続パラ メータが Windows レジス ト リに書き込まれます。

異なるデータベースに接続するたびに、 レジス ト リ内の既存の接続パラ メータが新しいデータベースの接続パラ メータに置き換えられます。 データベースにアクセスする PowerBuilder ペインタを開く と、後に使用したデータベースに自動的に接続されます。 PowerBuilder は、レジス ト リの読み出しによ り、 後に使用したデータベースを特定します。

1 パワーバーの [データベース] ボタンをクリ ックします

PowerBuilder がデータベースに接続し、 データベース ペインタが開きます。データベース ペインタのタイ トル バーにアクティブなデータベース接続が表示されます。

96 PowerBuilder

Page 109: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

データベース ペインタのオブジェク ト ビューで、「使用できる DBインタフェース」 とい うヘッダの下に、 既存の全データベース プロファ イルがツ リー形式で表示されています。 ツ リー ビューで項目の横にある + 記号をク リ ッ クするか、 アイコンをダブルク リ ック して、ツ リー ビューのノードを開いた り閉じたりできます。EASDemo DB V9 データベースは、ツ リー ビューの ODB ODBC ノードの下に表示されます。

オブジェク ト ビューが開いていない場合オブジェク ト ビューは、デフォルトのビュー レイアウ トの一部です。 このビュー レイアウ ト構成を リセッ トするには、[ビュー|レイアウ ト| (デフォル ト )] を選択します。 また、 メニュー バーから [ビュー|オブジェク ト ] を選択して、 オブジェク ト ビューを開く こ と もできます。

2 オブジェク ト ビューで、EAS Demo DBV9 データベース ノードを展開します。

EAS Demo DBV9 データベース ノードの下にあるフォルダを確認します。

3 テーブル フォルダを開きます。

データベースにあるテーブルがリ ス ト表示されます。

PowerBuilder 入門 97

Page 110: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

EAS Demo DB データベースの参照

テーブル名には接頭辞を付けることができます。テーブルの選択 ダイアログボッ クスのテーブル名に付けられる接頭辞と しては、 dba や dbo などがあ り ます。テーブル名に付けられる接頭辞は、 使用しているログイン ID によって異なり ます。接頭辞は無視してもかまいません。

4 「customer」 テーブルを右クリ ッ クして、 ポップアップ メニューの [レイアウトに追加] を選択します。または オブジェ ク ト ビューから 「customer」 テーブルを ド ラ ッグして、 オブジェク ト レイアウト ビューにドロップします。

現在のビューからほかのビューにオブジェク ト をド ラ ッグする方法オブジェ ク ト ビューからほかのビューへのド ラ ッグを始める と、ポインタの形状が斜線入りの円に変わり ます。 オブジェ ク ト を ドロ ップできるほかのビューまでそのままカーソルを移動する と、斜線入りの円がポインタの形に戻り、 小さなボッ クスの中に新しい矢印が表示されます。 この矢印が表示されたら、 オブジェ ク トをド ロ ップするこ とができます。

5 手順 4 を繰り返して、 product テーブルについても同じ作業を行います。

オブジェク ト レイアウト ビューの拡大オブジェク ト レイアウ ト ビューは、分割バーをペインタ フレームの方へド ラ ッグして幅を広げるこ とができます。 オブジェク ト レイアウ ト ビューがスタ ッ クの一部の場合、 サイズを変更する前にスタ ッ クから切り離したほうが簡単な場合もあ り ます。

オブジェク ト レイアウ ト ビューに、 2 つのテーブルが表示されます。

98 PowerBuilder

Page 111: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

テーブルのデータ型、 コ メン ト、 キー、 およびインデックスの表示オブジェ ク ト レイアウ ト ビューには、 各カラムについての説明と、 キーおよびインデッ クスのアイコンが表示されます。 このアイコンが表示されない場合は、 ビュー内の空白の領域を右ク リ ック し、 ポップアップ メニューから [コ メ ン トの表示] と [参照整合性の表示] を選択してから、 [インデッ クスの表示] を選択します。 [データタイプの表示] を選択しないと、 選択されているテーブル内にある各カラムのデータ型は表示されません。

6 オブジェク ト レイアウト ビューで customer テーブルのタイ トルバーを右クリ ッ クして、 ポップアップ メニューの [テーブルの変更] を選択します。またはオブジェク ト ビューで customer テーブルを右クリ ックして、ポップアップ メニューの [テーブルの変更] を選択します。

カラム ビューに、 テーブルのカラム定義が表示されます。

7 オブジェク ト レイアウト ビューで、 customer テーブルのカラムを右クリ ッ クします。 ポップアップ メニューから [プロパテ ィ] を選択します。

データベース ペインタのプロパティ ビューは、オブジェク トの詳細ビューと も呼ばれます。

オブジェク トの詳細 ビューのタイ トル バーと タブ ヘッダは、どのオブジェ ク ト を選択しているかによってまった く異な り ます。 タイ トル バーには、 オブジェク トの種類、 データベース接続、 およびオブジェク トの識別子が表示されます。

PowerBuilder 入門 99

Page 112: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

EAS Demo DB データベースの参照

カラムのオブジェ ク ト の詳細 ビューには 5 つのタブがあ り ます。通常のデータベースのプロパティ全般に関するものが 1 つ、 カラムのヘッダ情報に関するもの、 そのほかのタブはカラムの拡張属性に関するものです。

拡張属性についてPowerBuilder では、データベースのシステム テーブルの集ま り ( リポジ ト リ ) に拡張属性情報を格納します。 拡張属性とは、 カラムのヘッダと ラベル、 カラムの初期値、 入力条件則、 表示書式のことをいいます。

データベース ペインタの拡張属性ビューで、 項目のポップアップメニューから、 新しい拡張属性を定義した り、 既存の拡張属性の定義を変更できます。

8 データベース ペインタを閉じます。

100 PowerBuilder

Page 113: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

接続オブジェク ト ウィザードの実行

現在の学習個所EAS Demo DB データベースの参照

> 接続オブジェク ト ウィザードの実行グローバル変数の宣言接続情報の変更ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

このステップでは、 接続オブジェク ト ウ ィザードを実行して、 実行時のデータベース接続の確立に使用する接続サービス マネージャを作成します。

接続サービス マネージャは、 非ビジュアル ユーザ オブジェク トです。「非ビジュアル」 とは実行時にグラフ ィ ッ クで表示されないこ と を示し、「ユーザ オブジェク ト 」 と はユーザによってカスタマイズされているこ と を示します。 接続サービス マネージャは、 PowerBuilder アプ リケーシ ョ ンでのデータベース接続処理を実行するために使用します。

2 番目のウィザードを実行する理由テンプレート アプリケーシ ョ ン ウ ィザードで接続情報を指定していた場合は、アプリケーシ ョ ンの生成時に接続サービス マネージャを作成します。 アプリケーシ ョ ンの構築には複数のウ ィザードを使用できます。

1 パワーバーの [To-Do リスト] ボタンをクリ ックします。

する と、 To-Do リ ス トがテンプレート アプ リ ケーシ ョ ン ウ ィザードによって生成されます。

PowerBuilder 入門 101

Page 114: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

接続オブジェク ト ウィザードの実行

2 リス ト内の接続オブジェク ト ウィザードを実行し、 追加の接続オブジェク ト を作成する項目をダブルクリ ックします。または接続オブジェク ト ウィザードを実行し、 追加の接続オブジェク ト を作成する項目を右クリ ックします。ポップアップ メニューの [リンク先へ] を選択します。

これは、 リ ス ト内の 後から 2 番目の項目です。 To-Do リ ス ト に、アプ リ ケーシ ョ ンを完成させるための必要事項が一覧表示されます。 この リ ス ト を使用して、 自分自身やほかのアプ リ ケーシ ョ ン開発者へのコ メン ト を付けるこ と もできます。

新規作成ダイアログボッ クスの [PB オブジェク ト ] ページから 接続オブジェク ト ウ ィザードを実行するこ と もできます。 新規作成ダイアログボ ッ ク スからテンプレー ト アプ リ ケーシ ョ ン ウ ィザードを実行する方法については、 レッスン 1 「PowerBuilder の起動」 で説明されています。

ウ ィザードの 初のページには、 実行可能な作業に関する説明があ り ます。

3 データベース プロファイルの選択ページが表示されるまで [次へ] をクリ ックします。

格納先ライブラ リ (pbtutor.pbl) とデータベース コネクティ ビティオプシ ョ ン (SQL) は、 ウ ィザードによ りデフォル ト で選択された値をそのまま使用して ください。 データベース プロファ イルの選択ページに、 レジス ト リ 内に保存されているすべてのデータベース プロファ イルが一覧表示されます。

4 「EAS Demo DB V9」 がまだ選択されていない場合は、 [データベース プロファイル] リス トボックスから選択します。

PowerBuilder をインス トールした時点では、 このデータベース プロファ イルしか一覧表示されません。

5 接続オブジェク トの作成準備完了ページが表示されるまで、 [次へ] をクリ ックします。

以下の項目についてデフォルトの設定を確認します。

102 PowerBuilder

Page 115: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

ウ ィザードは、 データベース接続の管理用にユーザ オブジェク トn_pbtutor_connectservice を作成します。 このオブジェク トのインスタンス変数を変更する と、 接続情報のソースをレジス ト リ またはスク リプ ト ファ イルに変更できます。それ以外の場合は、ウ ィザードで作成した pbtutor.ini ファ イルがアプ リ ケーシ ョ ンの接続情報と して使用されます。

後のウ ィザード ページに、 ウ ィザードで選択した内容 (デフォル トのものも含む) のま とめが表示されます。

6 [完了] ボタンをクリ ックします。

接続サービス オブジェク トが、 ウ ィザードによって作成され、 開きます。 それ以外に、 アプ リ ケーシ ョ ンの INI ファ イルも作成されます。 To-Do リ ス トは開いたままです。

7 To-Do リスト を閉じます。

ウィザード ページ オプシ ョ ン デフォルト設定

接続ソース情報の指定

接続情報の取得元 アプリ ケーシ ョ ン INI ファ イル

接続サービス オブジェク ト

n_pbtutor_connectservice

アプリケーシ ョ ンの INI ファ イルの指定

アプリ ケーシ ョ ン INI ファ イル

pbtutor.ini

PowerBuilder 入門 103

Page 116: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

グローバル変数の宣言

グローバル変数の宣言

現在の学習個所EAS Demo DB データベースの参照接続オブジェク ト ウィザードの実行

> グローバル変数の宣言接続情報の変更ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

次のステップでは、 新しい接続サービス マネージャを検証して、 参照するグローバル変数を作成します。グローバル変数は、アプリ ケーシ ョンのすべてのオブジェク トに対して有効です。

複雑なアプ リ ケーシ ョ ンでは、 ローカル変数で接続サービス マネージャを参照したほうがよい場合もあ り ます。 そ うすれば、 ローカル変数がスコープから出たと きに、 よ り多くのメモ リが解放されます。 しかし このチュー ト リ アルでは、 データベース接続が開いている限り、接続サービス マネージャのインスタンスを利用できるよ うにします。

接続の確立 アプ リ ケーシ ョ ンが実行時にデータベースに接続できるよ うにするために、 接続サービス マネージャは、 ウ ィザードで生成した関数を呼び出して、 アプ リ ケーシ ョ ン とデータベースの間の通信領域と して機能する ト ランザクシ ョ ン オブジェ ク ト のプロパテ ィ を設定します。

SQLCA ト ランザクシ ョ ン オブジェク ト 接続サービス マネージャは、組み込みの-非ビジ ュ アル シ ステム オブジ ェ ク ト 、 SQL 通信領域(SQLCA) オブジェク ト を、 デフォルトの ト ランザクシ ョ ン オブジェク ト と して使用します。SQLCA オブジェク トには、いくつかのプロパティ (データベース名、 ログイン ID、 およびパスワードを含む) が接続サービス マネージャによってデフォルトで設定されています。

アプ リ ケーシ ョ ンが複数のデータベース と通信する場合は、 必要であれば、 データベース接続ごとに 1 つのト ランザクシ ョ ン オブジェク トを作成できます。

104 PowerBuilder

Page 117: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

必要なものと省略可能なものデータベースへの接続には ト ランザクシ ョ ン オブジェ ク ト が必要です。 接続サービス マネージャは接続自体に必要なものではあ り ませんが、 ト ランザクシ ョ ン オブジェク トのプロパティを自動的に生成するため、 このチュート リ アルでは使用します。 接続サービス マネージャがない場合、 アプ リ ケーシ ョ ンのスク リプ トでプロパティ を直接入力しなければなり ません。

1 ユーザ オブジェク ト ペインタの 「n_pbtutor_connectservice」 が開いていることを確認します。

接続サービス マネージャを開くユーザ オブジェク ト ペインタの n_pbtutor_connectservice オブジェク トが開いていない場合は、 システム ツ リーの「n_pbtutor_connectservice」 をダブルク リ ッ ク して ください。

このペインタの場合、 デフォルトのビュー レイアウ ト構成に、 タブ付きペインのスタ ッ クの一部と してのスク リプ ト ビューと インスタンス変数の宣言ビューが含まれています。

2 スクリプ ト ビューの 初のドロップダウン リストボックス内で「n_pbtutor_connectservice」 が選択されていることを確認します。2 番目のドロップダウン リス トボックスで Constructor イベン トが選択されていることを確認します。

ス ク リ プ ト ビューに、 接続オブジェ ク ト ウ ィザードで作成したConstructor イベン トのスク リプ トが表示されます。

PowerBuilder 入門 105

Page 118: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

グローバル変数の宣言

スク リプ トは、 of_GetConnectionInfo 関数を呼び出して、 接続情報を取得します。 次に、 この関数のスク リプ ト を参照します。

3 スクリプト ビューの 初のド ロッ プダウン リスト ボッ クスで「Functions」を選択します。2 番目のドロップダウン リストボックスで 「of_GetConnectionInfo」 を選択します。

この関数のスク リプ トは、 データベース接続情報を接続サービスマネージャの Constructor イベン ト に渡します。 渡される情報は、インスタンス変数によって異なり ます。こ こでは、is_connectionfrom変数の値は 1 です。 これを確認します。 インスタンス変数は、 すべての関数および n_pbtutor_connectservice オブジェ ク ト のすべてのイベン トに対して有効です。

is_connectfrom 変数が 1 であるため、 接続サービス マネージャは、INI ファ イルの [データベース] セクシ ョ ンを参照し、 ProfileString関数呼び出しでデータベース接続情報を取得します。こ こでは、指定した INI ファ イルは pbtutor.ini です。この pbtutor.ini ファ イルは、前のステップで 接続オブジェ ク ト ウ ィザード を使用して作成したものです。

この後のステップで、 pbtutor.ini フ ァ イルと of_GetConnectionInfo関数を変更し、 ユーザ ID とパスワード情報を INI ファ イルではなく ログイン ウ ィ ンド ウから取得するよ うにします。

4 2 番目のドロップダウン リストボックスで 「of_ConnectDB」 を選択します。

これは、SQLCA ト ランザクシ ョ ン オブジェク ト を使用して実際にデータベースに接続する接続サービス マネージャの関数です。 この関数は、 レッスン 3 「ログイン ウ ィンド ウの作成」 で作成したログイン ウ ィンド ウから呼び出すこ とができます。

ウ ィザードで生成されたこの関数のスク リプ トには、 データベース接続が失敗した場合にメ ッセージ ボッ クスを表示するこ と も記述されています。

5 2 番目のドロップダウン リス トボッ クスで 「of_DisconnectDB」 を選択します。

これは、データベース接続を解除するための、接続サービス マネージャの関数です。 この関数は、アプ リ ケーシ ョ ンの Close イベン トから呼び出すこ とができます。

106 PowerBuilder

Page 119: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

6 [インスタンス変数の宣言] タブをクリ ックします。2 番目のドロップダウン リス トボックスで 「Instance Variables」 が選択されていることを確認します。

スクリプ ト ビューでの 「Declare」 の選択インスタンス変数の宣言 ビューは、 スク リプ ト ビューの特殊なインスタンスです。 スク リプ ト ビューの 初のド ロ ップダウン リ スト ボッ クスで 「Declare」 を選択する と表示されます。 2 番目のスクリ プ ト ビューにすでにインスタンス変数が表示されている場合は、 「Declare」 を選択できません。

こ こで、 is_connectionfrom 変数の値が 1 であるこ とが分かり ます。

7 2 番目のドロップダウン リス トボックスで 「Global Variables」 を選択します。システム ツリーの 「n_pbtutor_connectservice」 をスクリプ ト ビューにドラッグします。

システム ツ リーのオブジェ ク ト名と関数名をス ク リ プ ト ビューにド ラ ッグする と、 時間の節約と誤入力の回避に役立ちます。

8 オブジェク ト名のあとに変数名を入力して行を完成させます。

n_pbtutor_connectservice gnv_connect

このオブジェク トは、n_pbtutor_connectservice ユーザ オブジェク トのスク リプ ト ビューで宣言しますが、 アプ リ ケーシ ョ ンのどこからでも利用できます。

PowerBuilder 入門 107

Page 120: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

グローバル変数の宣言

変数の命名規約ス ク リプ ト をよ り読みやすくするには、 一般的な命名ルールに従うのが 適な方法と言えます。一般的なルールでは、 2 文字か 3 文字の接頭辞の後にアンダースコア ( _ ) が付きます。 接頭辞の先頭の英字は変数のアクセス レベルの範囲 (g は global、 l は local)を表し、後ろの文字は変数のデータ型 (s は String 型、l は Long 型、nv は非ビジュアル オブジェク ト ) を表します。

9 ペインタバーの [保存] ボタンをクリ ックします。またはメニュー バーから [ファイル|上書き保存] を選択します。

ス ク リプ トがコンパイルされて保存されます。 グローバル変数のデータ型を (システム ツ リーから ド ラ ッグせずに) 入力した場合、入力ミ スがある と、 エラー メ ッセージが表示されます。 その場合は、 エラーを修正してから も う一度 [上書き保存] を選択して ください。

108 PowerBuilder

Page 121: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

接続情報の変更

現在の学習個所EAS Demo DB データベースの参照接続オブジェク ト ウィザードの実行グローバル変数の宣言

> 接続情報の変更ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

これで、 接続サービス マネージャを呼び出してデータベース接続を確立できます。ただし、データベース接続を確立するのは、ログイン ウ ィン ド ウで有効なユーザ ID とパスワードが入力された場合のみにする必要があ り ます。 そこで、 pbtutor.ini ファ イルの情報をユーザが入力した情報に置き換えて、 ログイン ウ ィ ンド ウの [OK] ボタンの Clickedイベン トに接続サービス呼び出しを追加します。

この作業を行う前に、ProfileString 呼び出しが記述されている行を削除してコ メン ト化します。ProfileString 呼び出しは、INI ファ イルからユーザ ID とパスワード情報を取得するために接続サービス マネージャが作成するものです。さ らに、ユーザ ID とパスワードの値は、pb.ini ファイルから取得されてハード コードになっているため、 pbtutor.ini ファイルで DBParm パラ メータのそれぞれの値を変更します。

この練習では、 以下の操作を行います。

• of_GetConnectionInfo 関数の変更

• 接続サービス マネージャの呼び出し

of_GetConnectionInfo 関数の変更

前のステップで、 of_GetConnectionInfo 関数について触れました。 こ こでは、ユーザ ID とパスワード情報用にこの関数が返す情報をコ メン ト化する方法について説明します。

ユーザ オブジェ ク ト ペインタを閉じている場合は、 も う一度開いてn_pbtutor_connectservice ユーザ オブジェ ク ト を表示し て く だ さい。[ファ イル| 近使用したオブジェク ト ] メニューを選択すれば、再表示できます。

PowerBuilder 入門 109

Page 122: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

接続情報の変更

1 スクリプト ビューの 初のド ロッ プダウン リスト ボッ クスで「Functions」を選択します。2 番目のドロップダウン リストボックスで 「of_GetConnectionInfo」 を選択します。

2 ProfileString が代入されている 2 行を選択します。

as_userid = ProfileString (...)as_dbpass = ProfileString (...)

ProfileString 呼び出しで指定する引数は、 INI ファ イル名または変数、 INI ファ イル セクシ ョ ン、 INI ファ イル キー、 およびそれらが正し くない場合に使用するデフォルト値の 4 つです。 これらの行は、 of_GetConnectionInfo 関数の CHOOSE CASE 文にある IS_USE_INIFILE の一部です。

3 ペインタバー 2 の [コ メン ト] ボタンをク リ ックします。

これらの行をコ メン ト化するこ とで、ユーザ ID とパスワード情報が pbtutor.ini から取得されなくな り ます。

4 以下のコードで始まる行で、 任意の場所をクリ ックします。

as_dbparm = ProfileString ( ... )

5 ペインタバー 2 の [コ メン ト] ボタンをク リ ックします。

ptutor.ini ファ イルの DBParm パラ メータには、 ハード コーディ ングされたユーザ ID、 パスワード、 およびデータベース名が含まれていますが、 これらの値は使用しないでください。 そのかわりに、ユーザが入力した情報 (ユーザ ID とパスワード) の値を DBParmパラ メータに代入します。

SQLCA DBParm パラメータDBParm の ConnectString でユーザ ID とパスワードは不要ですが、その 2 つを ConnectString に代入する と、 Adaptive Server Anywhereデータベースのデータ ソース定義にあるユーザ ID とパスワードは上書き されます。 こ の DBMS では、 DBParm パラ メ ータは、SQLCA の UserID パラ メータ と DBPass パラ メータよ り優先します。

6 ペインタバー 1 の [保存] ボタンをクリ ックします。ペインタバー 1 の [閉じる] ボタンをク リ ックします。

110 PowerBuilder

Page 123: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

接続サービス マネージャの呼び出し

次のステップでは、 接続サービス マネージャを呼び出して、 データベースに接続します。 ログイン ウ ィンド ウからユーザ入力情報を追加する必要があるため、 接続サービス マネージャを呼び出すスク リプ トを、 このウ ィンド ウの [OK] ボタンの Clicked イベン トに追加します。

オブジェク トは、そこに追加されたコン ト ロールの親と見なされます。したがって、 ログイン ウ ィ ン ド ウは [OK] ボタンの親とい う こ とにな り ます。

ス ク リ プ ト で親オブジェ ク ト を参照する場合は通常、 明示的にオブジェ ク ト名で指定するよ り も限定子 parent を使用する方が適切です。parent を使用する と、 ほかのオブジェ ク ト上に配置されているコン トロールに対して、 そのコードを再利用しやすくな り ます。 Clicked イベン トのスク リプ トでは、 ログイン ウ ィンド ウを親と して参照します。

単一のウィザードでアプリケーシ ョ ンと接続サービス オブジェク ト を作成した場合テンプレー ト アプ リ ケーシ ョ ン ウ ィザードで接続サービスのユーザオブジェク トがすでに作成してあれば、 このステップで入力する接続サービス マネージャを呼び出すためのコードは自動的に生成されています。 ただし、 そのコードは、 ログイン ウ ィン ド ウの Clicked イベン ト ではな く、 アプ リ ケーシ ョ ンの Open イベン ト に追加されています。 なお、 このコードには、 グローバル変数ではなく ローカル変数が使用されます。

1 システム ツリーの w_welcome をダブルクリ ックします。

ウ ィ ンド ウ ペインタが開きます。

2 スクリプト ビューの 初のド ロッ プダウン リスト ボッ クスで 「cb_ok」 を選択します。またはレイアウト ビューの [OK] ボタンをダブルクリ ッ クします。

2 番目のド ロ ップダウン リ ス ト ボッ クスでは Clicked イベン トが選択されていなければな り ません。 Clicked イベン トが選択されていない場合は選択します。 Clicked イベン トのスク リプ トには何も記述されていません。

PowerBuilder 入門 111

Page 124: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

接続情報の変更

3 以下の行を入力します。

// 1) ト ランザクシ ョ ン オブジェク ト をインスタンス化// 2) 接続が成功ならばログイン ウィンドウを閉じる

この 2 行は、 Clicked イベン トに追加するコードの説明です。 行の先頭にスラ ッシュを 2 個付ける と、 コ メ ン トが入力できるよ うにな り ます。

4 コ メン トの下に次の代入文を入力します。

gnv_connect = CREATE &n_pbtutor_connectservice

このスク リプ トの行を 1 行にま とめる場合、 アンパサンド (&) は入力しないでください。 アンパサンドは、 ス ク リ プ ト行が次の行に続く こ とを示す文字です。

CREATE 文は、 of_GetConnectionInfo 関数が pbtutor.ini ファ イルから取 り出したすべての値を持つ SQLCA ト ラ ンザクシ ョ ン オブジェ ク ト をインスタンス化します。 ユーザ ID とパスワードの行は、 すでにコ メン ト化されているので取り出されません。

スク リプ ト をよ り読みやすく理解しやすくするには、 コ メ ン ト と、グローバル変数 gnv_connect の代入文の間に空白行を挿入します。

5 CREATE 文の下に以下の行を入力します。

IF gnv_connect.of_ConnectDB ( ) = 0 THENClose (parent)

END IF

of_ConnectDB 関数はアプ リ ケーシ ョ ンをデータベースに接続します。 このレ ッスンの始めの方で説明したよ うに、 接続が失敗した場合 (SQL コードが 0 以外の場合) は、 メ ッセージ ボッ クスが開き、 そのボッ クスに SQL エラー文が表示されます。

112 PowerBuilder

Page 125: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

of_ConnectDB が 0 (接続の成功を表す SQL コード) を返した場合は、IF-THEN 文の次の行から解析が続けられます。この場合、cb_okコン ト ロールの親ウ ィンド ウ (w_welcome) が閉じられます。

6 ペインタバー 2 の [コンパイル] ボタンをクリ ックします。またはスクリプ ト ビューの内部を右クリ ックして、 ポップアップ メニューから[コンパイル] をクリ ックします。

このス ク リプ ト では、 コンパイル エラーは発生しないはずです。エラー メ ッセージが表示された場合は、 オブジェク ト名と関数名を正し く入力しているこ と、および gnv_connect をグローバル変数と して保存したこ とを確認して ください。

スクリプ ト ビューのエラー ウィンドウの表示 / 非表示スク リプ ト ビューで、 タイ トル バーの下の右端にあるアイコンをク リ ッ クする と、 エラー ウ ィ ンド ウの表示 / 非表示を切り替えられます。

この後で、 Clicked イベン トのスク リプ ト を記述し、 ユーザが入力した接続情報を持つト ランザクシ ョ ン オブジェク ト をインスタンス化する必要があ り ます。

PowerBuilder 入門 113

Page 126: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ログインおよびログアウト スクリプ トの完了

ログインおよびログアウト スクリプ トの完了

現在の学習個所EAS Demo DB データベースの参照接続オブジェク ト ウィザードの実行グローバル変数の宣言接続情報の変更

> ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

このレ ッ スンの初めの方で、 ログイン ウ ィ ン ド ウの [OK] ボタンのClicked イベン ト から接続サービス マネージャを呼び出す手順を説明しました。 次のステップでは、 ユーザが入力した情報を使用して、 トランザクシ ョ ン オブジェ ク ト をインスタンス化するためのス ク リプト を、 同じ Clicked イベン トに追加します。

ログイン ウ ィ ンド ウの [キャンセル] ボタンの Clicked イベン トおよびアプリ ケーシ ョ ン Closed イベン トに、 コードを追加するこ と もできます。

スクリプ ト ビューの入力ミスを減らすにはスク リプ トの作成領域内を右ク リ ッ クする と、[形式を指定して貼り付け] コマンドを含むポップアップ メニューが開きます。 これらのコマンドを使用して、 ステート メ ン ト 、 オブジェ ク ト 、 関数、 またはテキス ト ファ イルの内容をイベン ト ス ク リプ ト に貼り付ける こ とができます。 この操作によって手動入力によるエラーの可能性を減らすこ とができます。 オート スク リプ ト を使用してコードにデータを入力するこ と も可能です。 この入力方法については、 このレッスンで説明します。

この練習では、 以下の操作を行います。

• オート スク リプ ト シ ョート カッ トの設定

• [OK] ボタンの Clicked イベン トに対するコードの追加

• [キャンセル] ボタンの Clicked イベン トに対するコードの追加

• アプ リ ケーシ ョ ンの Close イベン トに対するコードの追加

114 PowerBuilder

Page 127: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

オートスクリプ ト シ ョート カッ トの設定

オート スク リプ トは、 スク リプ ト を記述する と きに役立ちます。 たとえば、 入力中の文を自動的に完成させた り、 カーソル位置に挿入すべき言語要素のリ ス ト を表示する、 などの機能があ り ます。

1 メニュー バーから [デザイン|オプシ ョ ン] を選択し、 [オートスク リプト] タブをクリ ッ クします。

2 初の 3 つのグループボックス内のすべてのチェ ックボックスがオンになっていることを確認します。[ド ッ トの直後のみ起動] チェ ックボックスおよび [自動的にポップアップ] チェ ッ クボッ クスがオフになっているこ とを確認して、 [OK] をクリ ッ クします。

このよ うに設定しておく と、オート スク リプ トは、挿入すべきコードを判定するための十分な情報がある と ころで、 ヘルプを表示します。 ただし、 カーソルを置いただけでは自動的にはポップアップしません。[ステート メン ト テンプレート ] チェ ッ クボッ クスをオンにする と (デフォルトではオフ)、 オート スク リプ ト を使用して、 複数行にまたがる PowerScript 構文を入力できます。

3 メニュー バーから [ツール|シ ョート カッ ト] を選択します。ツリーの [編集] ノードを展開します。

4 下にスクロールして、 [オートスクリプ ト を有効にする] を選択します。[シ ョート カ ッ ト キー]ボッ クスにカーソルを合わせて、〔Ctrl〕+ 〔Space〕キーを押します。

5 [編集] メニューの [ジャンプ] ノードを展開し、 [次のマーク] を選択します。[シ ョート カ ッ ト キー] ボックスで 〔Ctrl〕 + 〔M〕 を押します。[OK] をク リ ックします。

これで、 コードの入力中にヘルプが必要な場合はいつでも、 〔Ctrl〕+ 〔Space〕 を押して、 入力データ候補の リ ス ト をポップアップさせる こ とができます。 文または関数の中にコ メ ン ト を貼り付けると きは、 〔Ctrl〕 + 〔M〕 を押して次のコ メン トに移動できます。

PowerBuilder 入門 115

Page 128: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ログインおよびログアウト スクリプ トの完了

[OK] ボタンの Clicked イベン トに対するコードの追加

本番アプ リ ケーシ ョ ン開発の際には、 ある接続プロパティ を初期設定ファ イルから、 別の接続プロパティ をユーザ入力から取得するこ とがよ くあ り ます。

このチュー ト リ アル アプ リ ケーシ ョ ンのユーザ ID とパスワードは、チュート リ アルの INI ファ イルから取得しないでください。 この 2 つはログイン ウ ィ ンド ウで入力するよ うにし、 データベースに関する情報はスク リプ トで用意して ください。

1 cb_ok コン トロールの Clicked イベン ト スクリプ トが表示されていることを確認します。

これは、 接続サービス オブジェク トの呼び出しを追加するスク リプ トです。

2 IF-THEN 文の前をクリ ックします。以下の行を入力します。

// ローカル変数宣言string ls_database, ls_userid, ls_password

// 代入文ls_userid = Trim ( sle_userid.text )ls_password = Trim ( sle_password.text )ls_database = "ConnectString='DSN=EAS Demo DB V9;"

ここではローカル変数を宣言して、値を代入しています。ConnectStringテキス ト内では、 = 記号の前後にスペースを入れないでください。

オートスクリプ ト を使用して代入文を簡単にコーディングする方法オート スク リ プ ト で代入文を入力する と きに、 変数名の中のアンダースコア (_) よ り も前に英字を入力して 〔Ctrl〕 + 〔Space〕 キーを押すと、 入力データ候補の リ ス ト をポップアップさせる こ とができます。矢印キーを使用して適切な入力データ候補に移動し、これを 〔Tab〕 キーでスク リプ ト内に貼り付けます。 まずアンダースコア (_) を入力し、 その後ろに先頭の英字を入力して 〔Ctrl〕 +〔Space〕 を押すと、 一意の入力データ候補がある場合は、 これが直接スク リプ ト内に貼り付けられます。

Trim 関数は、 ログイン ウ ィ ン ド ウのシングルラ インエディ ッ トボッ ク スから引数と して渡されたユーザ ID およびパスワードの値の前後のスペースを削除します。

116 PowerBuilder

Page 129: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

3 追加した行 (および CREATE 文) よりも後ろ、 IF-THEN 文よりも前の位置でクリ ッ クします。以下の行を入力します。

// ユーザ入力の値でインスタンス化SQLCA.userid = ls_useridSQLCA.dbpass = ls_passwordSQLCA.dbparm = ls_database + "UID=" + &

ls_userid + ";PWD=" + ls_password + "'"

上記の行によって、[シングルライン エディ ッ ト ] テキス トボッ クスから取得した値で SQLCA パラ メータがインスタンス化されます。

上記の行は、 CREATE 文よ り も後ろに追加する必要があ り ます。これは、 接続サービスマネージャの Constructor イベン トで取得した空の値が上記の行を上書きしてしま うのを防ぐためです。 上記の行を IF-THEN 文よ り も前に追加するこ と も必要です。 そ う しないと、接続サービス マネージャの of_ConnectDB 関数によって上記の行が呼び出されたと きに、 ト ランザクシ ョ ン オブジェ ク ト によってこれらの値が使用されません。

4 ペインタバー 2 の [コンパイル] ボタンをクリ ックします。またはスクリプ ト ビューの内部を右クリ ックして、 ポップアップ メニューから[コンパイル] をクリ ックします。

PowerBuilder 入門 117

Page 130: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ログインおよびログアウト スクリプ トの完了

このス ク リプ ト では、 コンパイル エラーは発生しないはずです。エラー メ ッセージが表示された場合は、 オブジェク ト と関数名を正し く入力しているか確認します。

[キャンセル] ボタンの Clicked イベン トに対するコードの追加

このステップでは、 コードを [キャンセル] ボタンに追加して、 ボタンをク リ ッ ク したと きにアプ リ ケーシ ョ ンの実行が中止されるよ うにします。

1 レイアウト ビューで [キャンセル] ボタンをダブルクリ ックします。またはスクリプト ビューの 初のド ロップダウン リスト ボッ クスで「cb_cancel」を選択します。

[キャンセル] ボタンのスク リプ ト領域は空白になっています。

2 Clicked イベン トのスクリプ ト を 1 行入力します。

HALT

このスク リプ トは、 ログイン ウ ィ ンド ウで [キャンセル] ボタンをク リ ッ クする と、 すぐにアプ リ ケーシ ョ ンを強制終了します。

3 ペインタバーの [保存] ボタンをクリ ックします。またはメニュー バーから [ファイル|上書き保存] を選択します。

スク リプ トがコンパイルされます。

4 ペインタバーの [閉じる] ボタンをクリ ックします。またはメニュー バーから [ファイル|閉じる] を選択します。

ウ ィンド ウ ペインタが閉じます。

118 PowerBuilder

Page 131: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

アプリケーシ ョ ンの Close イベン トに対するコードの追加

接続サービス マネージャは、 グローバル変数によって呼び出されているため、 このままアプ リ ケーシ ョ ンで利用できます。(ローカル変数を使用した場合とは異な り) インスタンス化し直す必要はあ り ません。

このステップでは、 接続サービス マネージャで接続を解除する関数を呼び出して、 データベース接続を終了します。

1 システム ツリーの pbtutor アプリケーシ ョ ン アイコンをダブルクリ ックします。

アプリ ケーシ ョ ン ペインタに、チュート リ アル アプリ ケーシ ョ ンオブジェ ク ト のさ まざまなビューが表示されます。 ス ク リ プ トビューがデフォル ト レイアウ ト内のスタ ッ クの一部である場合は、 スタ ッ クから切り離すか、 2 番目のスク リプ ト ビューを開くほ うが簡単な場合もあ り ます。

2 スクリプ ト ビューの 2 番目のドロップダウン リストボッ クスで 「close( ) returns (none)」 を選択します。

アプリ ケーシ ョ ンの Close イベン トには、まだ何もコードが記述されていません。

3 Close イベン トのコ メン ト と して以下の行を入力します。

// アプリケーシ ョ ンを閉じるためのスクリプト// データベースとの接続解除

4 追加した行の一部または全部を選択します。 [コ メン ト] ボタンをクリ ックします。

5 入力したコ メン トの下の行に、次の行を入力します (オートスク リプ ト を使用すると簡単に変数名と関数名を入力できます)。

gnv_connect.of_DisconnectDB ( )

PowerBuilder 入門 119

Page 132: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ログインおよびログアウト スクリプ トの完了

グローバル変数を null に設定してメモリを解放する場合アプ リ ケーシ ョ ンの Close イベン トがな く、接続グローバル変数のインスタンスを必要と しない場合は、 SetNull 関数を呼び出して、割り当てられていたメモ リ を解放できます。

PowerBuilder には、 オブジェク ト インスタンスを破棄する DESTROY文も用意されています。 非ビジュアル オブジェク トのローカル変数またはグローバル変数には DESTROY 文を使用しないでください。 PowerBuilder ガベージ コレクシ ョ ンは、 スコープの外に出たローカル変数を削除します。

6 スクリプト ビューのスクリ プト 領域内の任意の場所を右クリ ッ クします。ポップアップ メニューで [コンパイル] をクリ ックします。

Close スク リプ トがコンパイルされます。エラー メ ッセージが表示された場合は、入力済みの行をチェッ ク して、変数またはオブジェク ト名に入力ミ スがないかど うかを確認して ください。

7 ペインタバー 1 の [閉じる] ボタンをク リ ックします。

メ ッセージ ボッ ク スが表示され、 アプ リ ケーシ ョ ン ラ イブラ リファ イルのアプリ ケーシ ョ ン オブジェク トの変更内容を保存するかど うかをたずねられます。

8 [はい] をク リ ックします。

変更内容が保存され、 アプリ ケーシ ョ ン ペインタが閉じます。

120 PowerBuilder

Page 133: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 4 データベースへの接続

アプリケーシ ョ ンの実行

現在の学習個所EAS Demo DB データベースの参照接続オブジェク ト ウィザードの実行グローバル変数の宣言接続情報の変更ログインおよびログアウト スクリプ トの完了

> アプリケーシ ョ ンの実行

このステップでは、 アプリ ケーシ ョ ンを実行します。

1 パワーバーの [実行] ボタンをクリ ッ クします。メ ッセージ ボックスが表示され、 変更を保存するよう要求されたら、 [はい] をクリ ッ クして保存します。

ワークスペースが閉じ、 アプリ ケーシ ョ ンが実行されます。

2 [ユーザ ID] テキス トボックスに 「dba」 と入力します。[パスワード] ボックスに 「sql」 と入力します。

パスワードはアスタ リ ス クで表示されます。 このウ ィ ンド ウのタブ順序はすでに設定してあるため、 〔Tab〕 を押して [ユーザ ID]ボッ クスから [パスワード] ボッ クス、 さ らに [OK] にフォーカスを移動できます。

3 [OK] をク リ ックします。

データベースに接続して、 MDI フレームが開きます。

無効なユーザ ID とパスワードを入力した場合ユーザ ID とパスワードに入力ミ スがあった場合、ODBC の設定 ダイアログボッ クスが表示されます。このダイアログボッ クスの [ログイン] ページで正しいユーザ ID とパスワードを入力し直して ください。 パスワード とユーザ ID を変更せずに、 このダイアログボッ クスの [ODBC] ページで [テス ト接続] ボタンをク リ ッ クする と、ユーザ ID とパスワードの無効を通知する メ ッセージ ボッ クスが表示されます。

4 メニュー バーから [ファイル|終了] を選択します。

アプリ ケーシ ョ ンが終了し、 PowerBuilder 開発環境に戻り ます。

PowerBuilder 入門 121

Page 134: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

122 PowerBuilder

Page 135: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 5 先祖ウィ ンドウの変更

このレッスンでは、テンプレート アプリ ケーシ ョ ン ウ ィザードを使用して生成したベースシート ウ ィンド ウを継承するウ ィンド ウを作成します。 まず、 データウ ィ ンド ウ コン ト ロールを含む定義済みのユーザオブジェ ク ト を、 継承されるウ ィ ンド ウに追加します。 次に、 オ リジナルのベースシートではなく、 拡張レイヤ ウ ィンド ウを継承する新規ウ ィンド ウ w_customers と w_products を作成します。 後に、 これらのシート ウ ィンド ウが、 デザイン時に設定したサイズで実行時にオープンされるよ うにします。

その前にまず、 データウ ィ ンド ウ コン ト ロールを含む定義済みのユーザ オブジェク トが登録されたライブラ リ リ ス トに、ラ イブラリ を追加します。 このレッスンでは、 以下の項目について学習します。

• 探索パスへのライブラ リの追加

• 先祖シート ウ ィンド ウの新規作成

• ユーザ イベン トおよびイベン ト スク リプ トの追加

• データウ ィンド ウ コン ト ロールのデータの検索を行う スク リプ トの追加

• シート ウ ィンド ウのサイズに合わせた実行時の設定の調整

所要時間約 25 分

PowerBuilder 入門 123

Page 136: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

探索パスへのライブラリの追加

探索パスへのライブラリの追加

現在の学習個所> 探索パスへのライブラリの追加

先祖シート ウィンドウの新規作成ユーザ イベン トおよびイベン ト スクリプ トの追加データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加シート ウィンドウのサイズに合わせた実行時の設定の調整

このステップでは、 チュート リ アル アプリ ケーシ ョ ンの探索パスにライブラ リ を追加します。 アプ リ ケーシ ョ ンで使用するすべてのラ イブラ リ を追加する必要があ り ます。

現在のアプ リ ケーシ ョ ンに追加する ラ イブラ リ には、 ベースシー トウ ィンド ウに後で追加するユーザ オブジェク ト (u_dwstandard) など、いくつかのコーディング済みのオブジェク トが含まれます。

1 システム ツリーで pbtutor ターゲッ ト を右クリ ッ クします。ポップアップ メニューで [プロパテ ィ] をクリ ックします。

pbtutor ターゲッ ト プロパテ ィ ダイアログボッ ク スが表示されます。

2 [ライブラリ リスト] ページが表示されていることを確認します。[参照 (…)] をクリ ックします。

ラ イブラ リの選択 ダイアログボッ クスが表示されます。

3 Tutorial フォルダに移動します。「tutor_pb.pbl」 を選択し、 [開く ] をクリ ックします。

124 PowerBuilder

Page 137: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

[ラ イブラ リ リ ス ト ] ページに戻り ます。 チュー ト リ アル アプ リケーシ ョ ンの探索パスに tutor_pb.pbl ファ イルが含まれています。

4 [OK] をク リ ックします。

PowerBuilder 入門 125

Page 138: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

先祖シート ウィンドウの新規作成

先祖シート ウィンドウの新規作成

現在の学習個所探索パスへのライブラリの追加

> 先祖シート ウィンドウの新規作成ユーザ イベン トおよびイベン ト スクリプ トの追加データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加シート ウィンドウのサイズに合わせた実行時の設定の調整

テンプレー ト アプ リ ケーシ ョ ン ウ ィザードを使用して生成したベースシート ウ ィンド ウを継承するウ ィ ンド ウを作成し、 データウ ィ ンドウ コン ト ロールを追加します。 ソース エディ タで、 生成したシートウ ィンド ウ (w_customers と w_products) が、 上記の新規ウ ィンド ウを継承するよ うに変更します。

新規の先祖ウ ィ ン ド ウに追加するデータウ ィ ン ド ウ コン ト ロールは、チュー ト リ アル アプ リ ケーシ ョ ン用に作成したユーザ オブジェ ク トから定義を継承します。 このユーザ オブジェク トは、 先ほどターゲット ラ イブラ リ リ ス トに追加した PBL ファ イルに含まれています。ユーザ オブジェ ク ト とは、 カスタマイズされたデータウ ィ ン ド ウ コン トロールのこ とで、 標準のデータベース エラーのチェッ クを実行するスク リプ ト を含みます。

ユーザ オブジェク ト を使用する理由PowerBuilder では、 アプ リ ケーシ ョ ンでよ く使用する処理を実行するためにユーザ オブジェク ト を構築します。定義したユーザ オブジェクトは、 追加作業なしで繰り返し利用できます。

この練習では、 以下の操作を行います。

• 新規シート ウ ィ ンド ウの継承階層の作成

• マスター データウ ィンド ウ用のデータウ ィンド ウ コン ト ロール(dw_master) の追加

• 詳細データウ ィ ンド ウ用のデータウ ィンド ウ コン ト ロール(dw_detail) の追加

• ユーザ オブジェク トから継承されたスク リプ トの参照

126 PowerBuilder

Page 139: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

新規シート ウィンドウの継承階層の作成

このステップでは、 ベースシート ウ ィンド ウを継承するウ ィンド ウを新規に作成します。 このレッスンでは、 この新規ウ ィ ン ド ウを、 ベースシート ウ ィ ン ド ウ とアプ リ ケーシ ョ ン シート ウ ィ ン ド ウの間の拡張レイヤと して使用します。 後で、 この拡張レイヤ ウ ィンド ウに変更を加えます。 この変更は、 この拡張レイヤ ウ ィンド ウを継承するすべての新規シート ウ ィンド ウに自動的に反映されます。

現在のチュート リ アル アプリ ケーシ ョ ンでは、 すでに w_customers および w_products ウ ィンド ウが w_pbtutor_basesheet ウ ィンド ウを継承しています。 ウ ィザードによって生成されたこれらのシート ウ ィンド ウには (名前と表示テキス ト を除き) 固有のプロパティ値や関数をまだ追加していないため、 これらのウ ィ ンド ウを上書きして新規のウ ィンド ウを作成する際にコードをコピーする必要は一切あ り ません。 このレッスンでは、 これらのウ ィ ンド ウを上書きして、 拡張レイヤ ウ ィンド ウを継承する新規ウ ィ ンド ウを作成します。

1 PowerBuilder メニューから [ファイル|継承] を選択します。

オブジェク トから継承 ダイアログボッ クスが表示されます。

2 [ライブラリ] リス トボックスで pbtutor.pbl が選択されており、 [オブジェク トの種類] ドロップダウン リス トボッ クスで 「ウィ ンドウ」 が選択されていることを確認します。「w_pbtutor_basesheet」 を選択して、 [OK] をクリ ックします。

3 [フ ァイル|上書き保存] を選択し、 新規ウィンドウ名に「w_master_detail_ancestor」 と入力します。

4 (オプシ ョ ン) [コ メン ト] ボッ クスに以下のコ メン ト を入力します。

w_customers および w_products シート ウィンドウに使用する新規先祖ベースシート

5 [アプリケーシ ョ ン ライブラリ] リス トボッ クスで 「pbtutor.pbl」 が選択されていることを確認して、 [OK] をク リ ックします。 [フ ァイル|閉じる] を選択して、 新規先祖ベースシートを閉じます。

先祖ウ ィ ン ド ウがウ ィ ン ド ウ ペインタ内で開いている と、 子孫ウ ィ ンド ウを作成できません。

6 PowerBuilder メニューから [ファイル|継承] を選択します。

PowerBuilder 入門 127

Page 140: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

先祖シート ウィンドウの新規作成

7 [ライブラリ] リス トボッ クスで pbtutor.pbl が選択されており、 [オブジェ ク トの種類] ドロップダウン リス トボッ クスで 「ウィ ン ドウ」 が選択されていることを確認します。「w_master_detail_ancestor」 を選択して、 [OK] をクリ ックします。

8 プロパティ ビューの [全般] ページの [タグ] テキス トボックスに「Maintain Customers」 と入力します。 PowerBuilder メニューから [フ ァイル|名前を付けて保存] を選択し、[ウィ ンドウ] リストボッ クスで 「w_customers」 を選択します。

9 コ メン トのテキストを次のように変更します。

w_master_detail_ancestor から継承する Customer シート ウィンドウ

10 [OK] をクリ ックして、既存の w_customers ウィンドウを置き換えるかど うかを尋ねるウ ィ ン ドウの保存 ダイアログボッ クスが表示されたら[はい] をク リ ックします。

w_pbtutor_basesheet ではな く w_master_detail_ancestor を継承するシート ウ ィンド ウが新規に作成されます。

11 以下の 2 つの手順を変更して、 手順 6 ~ 10 を繰り返します。

12 新規に作成した w_customers および w_products ウィンドウを閉じます。

いずれかの子孫がウ ィンド ウ ペインタに表示されている場合、 その先祖ウ ィンド ウをオープンするこ とはできません。

13 PowerBuilder メニューから [実行|ワークスペースのフル構築] を選択します。

手順 変更指示

8 プロパティ ビューの [全般] ページの [タグ] テキス ト ボックスに 「Maintain Products」 と入力します。 PowerBuilderメ ニューから [フ ァ イル|名前を付けて保存] を選択し、[ウ ィ ン ド ウ] リ ス ト ボッ ク スで 「w_products」 を選択します。

9 コ メン トのテキス ト を次のよ うに変更します。w_master_detail_ancestor から継承する Product シート

ウィ ンドウ

128 PowerBuilder

Page 141: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

ワークスペースの再構築は、継承階層を変更した後、新規先祖ウ ィン ド ウを修正する前に行う必要があ り ます。 構築の進行状況は、PowerBuilder メ イン ウ ィンド ウ下部のシステム ツ リーの下に表示される出力ウ ィンド ウで見るこ とができます。構築が終了する と、出力ウ ィンド ウに 「終了 ワークスペースのフル構築 MyWorkspace」 と表示されます。

マスター データウィンドウ用のデータウィンドウ コン ト ロール(dw_master) の追加

このステップでは、データウ ィ ンド ウ コン ト ロール (ユーザ オブジェク ト u_dwstandard と して保存) を w_master_detail_ancestor ウ ィンド ウに追加します。 このコン ト ロールは、 先祖ウ ィ ンド ウおよびその子孫ウ ィ ンド ウのマスタ データウ ィンド ウ と して使用されます。

u_dwstandard のようなユーザ オブジェク トの作成方法データウ ィ ン ド ウ コン ト ロールを基にしたユーザ オブジェ ク ト を作成するには、 [新規作成] ボタンをク リ ッ ク し、 新規作成 ダイアログボッ クスの [PB オブジェク ト ] ページから [標準ビジュアル] を選択します。これで標準ビジュアル オブジェク トのデータ型の選択 ダイアログボッ クスが表示されます。 [データ型] テキス ト ボッ クスで 「datawindow」 を選択し、必要に応じてユーザ イベン ト を追加します。 ユーザ イベン ト を追加する方法については、 このチュート リ アルの後半で説明します。

1 システム ツリーで w_master_detail_ancestor をダブルクリ ックします。

ウ ィ ンド ウ ペインタに w_master_detail_ancestor ウ ィンド ウが開きます。このウ ィンド ウは テンプレート アプリ ケーシ ョ ン ウ ィザードによって作成されたウ ィンド ウです。同ウ ィザードによって、メニューが作成され、 このウ ィンド ウ m_pbtutor_sheet にアタ ッチされています。 このメニューは、 ウ ィンド ウのプロパティ ビューに表示されます。 このプロパティは後で変更します。

2 ウィンドウ ペインタにレイアウト ビューが見えていることを確認して ください。

3 システム ツリー内の tutor_pb.pbl を展開します。システム ツ リーからレイアウ ト ビューの w_master_detail_ancestorウィンドウに u_dwstandard をド ラ ッグします。

PowerBuilder 入門 129

Page 142: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

先祖シート ウィンドウの新規作成

4 ウィンドウを広げて、コン ト ロール全体がウィンドウ内に表示されるようにします。

ユーザ オブジェ ク ト の定義を継承するデータウ ィ ン ド ウ コン トロールが作成されます。

5 レイアウト ビューで新しいコン ト ロールが選択されていることを確認します。

隅に小さな黒い正方形が表示されていれば、 そのコン ト ロールは選択されています。 プロパティ ビューには選択されているコン トロールのプロパティが表示されます。

6 プロパティ ビューの [名前] テキストボックスで 「dw_1」 を選択します。[名前] テキストボックスに 「dw_master」 と入力します。[垂直スクロールバー] チェ ッ クボックスをオンにします。

データ ウ ィ ン ド ウ コン ト ロールに垂直ス ク ロールバーが追加され、 コン ト ロール名が dw_master に変更されます。

「dw_」 はデータウ ィンド ウ コン ト ロールの標準的な接頭辞です。

130 PowerBuilder

Page 143: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

詳細データウィンドウ用のデータウィンドウ コン ト ロール(dw_detail) の追加

このステップでは、 アプ リ ケーシ ョ ンの詳細データウ ィン ド ウである2 番目のデータウ ィンド ウ コン ト ロールを追加します。

1 2 番目のデータウィンドウ コン ト ロールを 1 番目のコン ト ロールの下に追加するスペースを確保するために、ウィンドウのサイズを変更します。 システム ツリーからレイアウト ビューの dw_master コン ト ロールの下に u_dwstandard をド ラ ッグします。

ユーザ オブジェ ク ト u_dwstandard の定義を継承する別のデータウ ィ ンド ウ コン ト ロールが作成されます。

2 全体がウィンドウ内に表示されるようにデータウィンドウ コン ト ロールを移動します。

必要に応じて、 レイアウ ト ビューを 大化し、 その中のウ ィンドウ オブジェク ト を拡大して、データウ ィンド ウ コン ト ロールを表示するスペースを大き く します。

3 レイアウト ビューで新しいコン ト ロールが選択されていることを確認します。

プロパティ ビューには選択されているコン ト ロールのプロパティが表示されます。

4 プロパティ ビューの [名前] テキス トボックスで 「dw_1」 を選択します。[名前] テキス トボックスに 「dw_detail」 と入力します。

コン ト ロール名が dw_detail に変更されます。

PowerBuilder 入門 131

Page 144: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

先祖シート ウィンドウの新規作成

ユーザ オブジェク トから継承されたスクリプ トの参照

このステップでは、データウ ィンド ウ コン ト ロールが u_dwstandard から継承したスク リプ ト を参照します。

1 レイアウト ビューで dw_detail データウィンドウをダブルクリ ックします。またはまだ選択していない場合は、 スクリプ ト ビューの 初のドロップダウンリス トから 「dw_detail」 を選択します。

スク リプ ト ビューで、 dw_detail コン ト ロールの ItemChanged イベン トに対するスク リプ トが開きます。このスク リプ トは空です(何も記述されていません)。

ス ク リプ トが記述されていないイベン トは、 スク リ プ ト が記述されたイベン ト とは別にアルファベッ ト順に並べられます。 スク リプ トが記述されたイベン トが、 ド ロ ップダウン リ ス ト ボッ クスの先頭に一覧表示されます。 先祖スク リプ トが記述された dberror イベン トはこ こに表示されます (表示されない場合は、 イベン トのド ロ ップダウン リ ス ト ボッ ク スを上方にス ク ロールして ください)。

2 スクリプ ト ビューの 2 番目のドロップダウン リス トボックスで「dberror」 を選択します。

このス ク リプ ト も何も記述されていませんが、 イベン ト名の横のスク リプ ト アイコンが紫色で表示されています。 これは、 先祖コン ト ロール (u_dwstandard) に、 関連付けられたスク リプ トがあるこ とを意味します。

3 メニューバーの [編集|ジャンプ|先祖スクリプ ト] を選択します。または3 番目のドロップダウン リストボックスで 「u_dwstandard」 を選択します。

132 PowerBuilder

Page 145: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

スク リプ ト ビューに、 DBError イベン トに対するスク リプ ト が表示されます。 先祖ス ク リ プ ト は、 子孫ウ ィ ン ド ウのス ク リ プ トビューからアクセスする と きは読み込み専用にな り ます。

4 適宜ウィンドウをスクロールして、 DBError イベン トに定義されたデータベースのエラー処理を見ます。

このスク リプ トでは、DBError イベン トが通常表示するデフォルトのエラー メ ッセージを抑制して、 発生する可能性のあるデータベース エラーご とに適切な メ ッセージを表示しています。 また、ユーザ オブジェ ク ト に宣言されたユーザ イベン ト を呼び出しています。

dw_master と dw_standard は、 と もに u_dwstandard を継承したコント ロールなので、 このロジッ クは両方のコン ト ロールで自動的に再利用されます。

5 メニューバーの [編集|ジャンプ|子孫スクリプ ト] を選択します。またはスクリプ ト ビューのスクリプ ト領域を右クリ ックします。ポップアップ メニューの [ジャンプ|子孫スクリプト] を選択します。

3 番目のド ロ ップダウン リ ス ト ボッ クスに、 現在のコン ト ロールを含むオブジェク トの識別子である 「w_master_detail_ancestor」 が再度表示されます。 このコン ト ロール (dw_detail) の DBError イベン トのスク リプ トはまだ記述されていません。

PowerBuilder 入門 133

Page 146: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ユーザ イベン トおよびイベン ト スクリプ トの追加

ユーザ イベン トおよびイベン ト スクリプ トの追加

現在の学習個所探索パスへのライブラリの追加先祖シート ウィンドウの新規作成

> ユーザ イベン トおよびイベン ト スクリプ トの追加データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加シート ウィンドウのサイズに合わせた実行時の設定の調整

ウ ィンド ウ、 ユーザ オブジェク ト 、 およびコン ト ロールは、 定義済みのイベン ト を持ちます。 必要とするイベン トはほとんど定義済みイベン トで提供されていますが、 必要に応じて独自のイベン ト を宣言するこ とができます。 このよ う なイベン ト をユーザ イベン ト と呼びます。

ユーザ イベン トの使い方 ユーザ イベン ト を定義する目的の 1 つは、 あるアプ リ ケーシ ョ ンが同じタスクをいくつかの異なる場所に記述している場合に、それらを 1 箇所にま とめてコード記述を減らすこ とです。たとえば、 データベースを更新する とい う タスクは、 ボタンをク リ ック した り、 メニュー項目を選択した り、 ウ ィン ド ウを閉じた りする と実行されます。 こ う した場合に、 ボタンやメニュー項目やウ ィ ン ド ウといった各場所にデータベースを更新するスク リプ ト を記述しな くても、 ユーザ イベン ト を 1 つ定義しておき、 データベースを更新する各場所でそのイベン ト を起動すればよいのです。

このステップでは、チュート リ アル データベースに対して検索、挿入、更新、 削除の処理を行うユーザ イベン ト を定義します。 これらの変更はウ ィンド ウ ペインタのスク リプ ト ビューで行います。このチュートリ アルの後半で、 これらのイベン ト を発生させるコードを メニュー ペインタで追加します。

1 スクリプ ト ビューの 初のドロップダウン リス トボッ クスで「w_master_detail_ancestor」 を選択します。

2 メニュー バーの [挿入|イベン ト] を選択します。またはスクリプ ト ビューの 2 番目のドロップダウン リス トボッ クスで 「 (新規イベン ト)」 を選択します。

スク リプ ト ビューに、 新しいイベン ト を定義するためのプロ ト タイプ ウ ィ ンド ウが表示されます。

134 PowerBuilder

Page 147: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

3 番目のド ロ ップダウン リ ス ト ボッ クスの右にある 1 番目のボタンは、 プロ ト タイプ ウ ィ ンド ウの表示 / 非表示を切り替える ト グル スイ ッチです。

3 プロ ト タイプ ウィンドウの [イベン ト名] テキストボックスに「ue_retrieve」 と入力します。プロ ト タイプ ウィンドウ下部のスクリプト ビュー内をクリ ックします。次のように入力します (または、次に説明しているオートスクリプ ト を使用します)。

IF dw_master.Retrieve() <> -1 THEN dw_master.SetFocus()

dw_master.SetRowFocusIndicator(Hand!)END IF

オートスクリプ トの使い方オート スク リプ ト を使用する と、 次のよ うに IF THEN テンプレート 、 および変数や関数名を貼り付けるこ とができます。

「IF」 と入力してから、 〔Ctrl〕 + 〔Space〕 を押します。〔Tab〕 を押して IF THEN 文を貼り付けます。「dw_m」 と入力してから、 〔Ctrl〕 + 〔Space〕 を押します。「dw_master」 の後ろにカーソルを置き、 ド ッ ト を 1 個入力してから、 〔Ctrl〕 + 〔Space〕 を押します。スク ロールして retrieve( ) を選択し、 〔Tab〕 を押し、 行の残りを入力します。〔Ctrl〕 + 〔M〕 を押して次のコ メン トに移動します。別の関数呼び出しを入力するか、オート スク リプ ト を使用して入力します。

PowerBuilder 入門 135

Page 148: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ユーザ イベン トおよびイベン ト スクリプ トの追加

スク リプ ト領域をク リ ッ クする と、 スク リプ ト ビューの 2 番目のド ロ ップダウン リ ス ト ボッ クスのテキス トが 「 (新規イベン ト ) 」から 「ue_retrieve」 に変わり ます。 この関数に引数はなく、 値は返しません。 また、 ユーザ定義の例外も送出しません。 ユーザ定義の例外の送出についての詳細は、 レッスン 10 「例外処理」 を参照して ください。

入力したスク リプ ト行は Retrieve 関数を実行し、検索した行をデータウ ィ ンド ウ コン ト ロール dw_master に配置します。 検索に成功した場合は、 データウ ィンド ウ コン ト ロールの 1 行目にフォーカスがセッ ト され、現在の行を示すハンド ポインタが表示されます。

検索に失敗した場合検索に成功しなかった場合は、 DBError イベン ト が発生し ます。DBError イベン トはユーザ オブジェク ト u_dwstandard で処理されます。 このスク リプ トについては以前の練習で説明しました。

4 メニュー バーから [ファイル|上書き保存] を選択します。プロ ト タイプ ウィンドウを右クリ ッ クして、ポップアップ メニューの「新規イベン ト」 を選択します。

ue_retrieve イベン ト に対して入力したスク リプ ト がコンパイルされます。 スク リプ ト ビューに、 別の新しいユーザ イベン トのプロト タイプ ウ ィンド ウが表示されます。

136 PowerBuilder

Page 149: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

エラー メ ッセージが表示された場合スク リプ トで入力ミ スがあった場合はコンパイル エラーになり ます。 コンパイル エラーを無視するかど うかを尋ねるダイアログで[いいえ] を選択する と、 スク リプ ト ビューの一番下にコンパイルエラー領域が表示され、 エラーが特定されます。 この場合は、ue_retrieve イベン トのスク リプ ト を入力し直します。

コンパイル エラー領域の表示 / 非表示を切り替えるには、 スク リプ ト ビューの右上の 2 番目のト グル スイ ッチをク リ ッ ク します。

5 以下を入力して手順 3 と 4 を繰り返します。

スクリプ トの処理内容 ue_insert イベン ト のス ク リプ ト の 1 行目は、データウ ィ ンド ウ コン ト ロール dw_detail をク リ アします。 2 行目ではデータウ ィンド ウ コン ト ロールの 終行の後に新規の行を挿入します(引数 0 は 終行を指定)。3 行目ではカーソルを dw_detailコン ト ロールに置きます。

ue_insert および ue_delete イベン トはデータベースではなく、 データウ ィンド ウ バッファを操作します。 これらのイベン トが発生しても、 データベースへの行の挿入や、 データベースからの行の削除は行われません。 一緒に Update 関数も呼び出されて初めてデータベースが更新されます(Update 関数は ue_update イベン トによって呼び出されます)。 Update 関数が整数 1 を返すと、バッファに対する変更はデータベースにコ ミ ッ ト されます。 ほかの整数値が返される と、 バッファに対する変更はロールバッ ク されます。

ue_delete イベン ト のスク リプ ト では、 DeleteRow 関数の引数 0 によって、 dw_detail コン ト ロールの現在の行が削除される こ とを指定しています。

6 [保存] ボタンをクリ ックします。

イベン ト名 スクリプ ト

ue_insert dw_detail.Reset()

dw_detail.InsertRow(0)

dw_detail.SetFocus()

ue_update IF dw_detail.Update() = 1 THEN

COMMIT using SQLCA;

MessageBox ("保存 ","保存に成功しました ")ELSE

ROLLBACK using SQLCA;

END IF

ue_delete dw_detail.DeleteRow(0)

PowerBuilder 入門 137

Page 150: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

データウィ ンドウ コン ト ロールのデータの検索を行うスクリプ トの追加

データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加

現在の学習個所探索パスへのライブラリの追加先祖シート ウィンドウの新規作成ユーザ イベン トおよびイベン ト スクリプ トの追加

> データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加シート ウィンドウのサイズに合わせた実行時の設定の調整

先ほ ど入力 し た ス ク リ プ ト はデー タ ウ ィ ン ド ウ コ ン ト ロ ールdw_master に対して何も作用しませんが、ue_retrieve イベン トのスク リプ トがあるので、 このイベン ト を発生させるだけでデータウ ィン ド ウdw_master にデータを取り出すこ とができます。

ue_retrieve イベン トは、シート ウ ィンド ウの Open イベン トから発生させます。 これでウ ィンドウ (またはその子孫ウ ィンドウ) が開く と同時に、 データ ウ ィ ン ド ウ dw_master にデータが取り出されます。 次に、dw_master の RowFocusChanged イベン トに、データウ ィンドウ dw_detailにデータを取り出すためのスク リプ ト を追加します。 データウ ィ ンドウ dw_master 内でフォーカスが変更されるたびに RowFocusChanged イベン トが発生します。

データウィンドウ表示と同時に RowFocusChanged イベン トが発生初めてデータウ ィンド ウ w_master が表示される と きにも RowFocusChanged イベン トが発生します。 これによ り、 アプ リ ケーシ ョ ンはマスタ データウ ィンド ウで検索された 初の行についての詳細情報を検索および表示できます。

この節での作業が完了する と、 ス ク リ プ ト は w_master_detail_ancestorウ ィンド ウおよびその子孫で以下の処理を行います。

• 初めてシート ウ ィンド ウを開いたと きに、 上のデータウ ィンド ウコン ト ロールに リ ス ト (すべての顧客または商品の リ ス ト ) が表示されます。 リ ス ト の 初の項目の詳細情報は、 下のデータウ ィンド ウ コン ト ロールに表示されます。

• ユーザが上矢印または下矢印キーを使用して、 または行をク リ ック して、 上のデータウ ィンド ウ コン ト ロールのリ ス ト内を移動する と、 下のデータウ ィンド ウ コン ト ロールに現在の行の詳細が表示されます。

138 PowerBuilder

Page 151: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

1 w_master_detail_ancestor のスクリプ ト ビューで、2 番目のドロップダウン リストボックスから 「open」 を選択します。

Open イベン トのスク リプ ト アイコンは紫色になっています。これは、 先祖スク リプ トがある こ とを示しています。 先祖スク リプ トを確認してみる と、 ue_postopen イベン ト を呼び出し、 それをウ ィンド ウのメ ッセージ キューの 後にポス ト しているこ とがわかります。

2 次のコード を、 w_master_detail_ancestor の Open イベント スクリ プト領域に入力します。

dw_master.settransobject ( sqlca )dw_detail.settransobject ( sqlca )this.EVENT ue_retrieve()

初の 2 行で、 データウ ィンド ウ dw_master および dw_detail に対して、SQLCA ト ランザクシ ョ ン オブジェク ト内のデータベース変数の値を検索するよ うに指示しています。3 行目は ue_retrieve イベン ト を発生させます。 代名詞 This は現在のオブジェク ト を参照します。 この例では、w_master_detail_ancestor ウ ィンド ウが現在のオブジェク トです。

3 スクリプ ト ビューの 初のドロップダウン リストボックスで「dw_master」 を選択します。2 番目のドロップダウン リス トボックスで 「rowfocuschanged」 を選択します。

こ こでデータウ ィ ンド ウ コン ト ロール dw_master の RowFocusChanged イベン トのスク リプ ト を追加します。 このスクリプ トは検索要求と選択した行の ID 番号をデータウ ィンド ウ コン ト ロール dw_detail に送り ます。

イベン ト名に注意RowFocusChanging イベン トではなく、 RowFocusChanged イベン トを選択するよ う注意して ください。

4 RowFocusChanged イベン トのスクリプ ト領域に次の行を入力します。

long ll_itemnum

この行は、 long 型のローカル変数 ll_itemnum (l は文字であ り、 数字ではない) を宣言します。

PowerBuilder 入門 139

Page 152: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

データウィ ンドウ コン ト ロールのデータの検索を行うスクリプ トの追加

5 手順 4 で入力した変数宣言の下に次の行を入力します。

ll_itemnum = this.object.data[currentrow, 1]

角括弧 ([ ]) の使用上記の式では、 ( ) ではなく [ ] を使用します。

この行は、データウ ィンド ウのデータ式を使用して、 dw_master で現在選択されている行のカラム 1 の項目番号を取得します。 値は変数 ll_itemnum に格納されます。

CurrentRow は RowFocusChanged イベン トに渡される引数で、データウ ィ ンド ウ コン ト ロール内の現在の行を指定します。 現在の行とは、 ク リ ッ ク した り、 矢印キーや 〔Tab〕 を使用してスクロールしたり してユーザが選択した行です。

6 手順 5 で入力したデータ式の下に以下の行を入力します。

IF dw_detail.Retrieve(ll_itemnum) = -1 THEN

MessageBox ("検索 ","検索が失敗しました -detail")END IF

これらの行は、 検索要求を、 データ ウ ィ ン ド ウが期待する引数(ll_itemnum 変数に格納されている ID 番号) と と もにデータウ ィンド ウ dw_detail に送り ます。 Retrieve 関数を囲む IF 文は正常に処理されたかど うかをチェ ッ ク します。 検索に失敗した場合は、 エラー メ ッセージ ボッ クスが表示されます。

140 PowerBuilder

Page 153: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 5 先祖ウィンドウの変更

7 ペインタバー 1 の [保存] ボタンをクリ ックします。ペインタバー 1 の [閉じる] ボタンをクリ ックします。

スク リプ トがコンパイルされて保存されます。

8 パワーバーの [ワークスペースのフル構築] ボタンをクリ ッ クします。

先祖オブジェ ク ト を変更したら、 すべてのオブジェ ク ト を再構築するよ うにして ください。

PowerBuilder 入門 141

Page 154: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

シート ウィンドウのサイズに合わせた実行時の設定の調整

シート ウィンドウのサイズに合わせた実行時の設定の調整

現在の学習個所探索パスへのライブラリの追加先祖シート ウィンドウの新規作成ユーザ イベン トおよびイベン ト スクリプ トの追加データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加

> シート ウィンドウのサイズに合わせた実行時の設定の調整

テンプレー ト アプ リ ケーシ ョ ン ウ ィザードによって作成されるシート マネージャは、シート ウ ィンド ウを開く OpenSheet 関数を作成します。 OpenSheet 関数は、 実行時のシート ウ ィンド ウ サイズを設定する引数をと り ます。 ウ ィザードはこの引数にデフォル ト で Cascaded! という値を設定します。 この値は、 デザイン時に設定したシート ウ ィンド ウのサイズを上書きします。 こ こでは、 この値を変更して、 実行時のウ ィ ン ド ウ サイズがデザイン時のサイズと同じになるよ う にします。

1 システム ツリーで n_pbtutor_sheetmanager をダブルクリ ックします。またはシステム ツリーの n_pbtutor_sheetmanager を右クリ ックして、ポップアップ メニューから [編集] を選択します。

2 スクリプ ト ビューの 初のドロップダウン リス トボッ クスで「(Functions)」 を選択します。2 番目のドロップダウン リス トボックスで 「of_opensheet」 を選択します。

3 スクリプ ト領域内の次の行に移動します。

li_rc = OpenSheet ( lw_sheet, as_sheetname, w_pbtutor_frame, 0, Cascaded! )

4 Cascaded! 引数を Original! に変更します。

li_rc = OpenSheet ( lw_sheet, as_sheetname, w_pbtutor_frame, 0, Original! )

5 ペインタバー 1 の [保存] ボタンをクリ ックします。ペインタバー 1 の [閉じる] ボタンをク リ ックします。

次回チュート リ アル アプリ ケーシ ョ ンを実行する と、 デザイン時に設定したサイズでシート ウ ィンド ウが開きます。 ただし、 開いているほかのシート と重ねて表示される点は同じです。

142 PowerBuilder

Page 155: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 6 メニューの設定

このレッスンでは、 チュート リ アル アプリ ケーシ ョ ンで使用するメニューの設定を行います。 このレッスンでは、 以下の項目について学習します。

• フレーム メ ニューの修正

• シート メ ニューの新規作成

• ユーザ イベント を発生させるメ ニュー スク リ プト の追加

• 新規メ ニューのアタッ チと アプリ ケーショ ンの実行

メニューは独立したオブジェク トで、 メニュー ペインタを使用して作成します。 作成したメニューは複数のウ ィ ンド ウで使用できます。 アプ リ ケーシ ョ ン開発プロセスのどの時点でも メニューを作成できます。

所要時間約 25 分

PowerBuilder 入門 143

Page 156: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

フレーム メニューの修正

フレーム メニューの修正

現在の学習個所> フレーム メ ニューの修正

シート メ ニューの新規作成ユーザ イベント を発生させるメ ニュー スクリ プト の追加新規メ ニューのアタ ッ チとアプリ ケーショ ンの実行

現在のフレーム メニューはテンプレート アプ リ ケーシ ョ ン ウ ィザード によ って自動的に作成された メ ニューです。 m_pbtutor_frame メニューは、 チュート リ アルで作業するほかのすべてのメニューの先祖オブジェ ク ト なので、 この メ ニューを変更する と自動的に子孫 メニューも変更されます。

メニュー ペインタの プレビュー ビューでは、 アプ リ ケーシ ョ ンを実行した と きに表示される とお り に メ ニューが表示されます。 このチュート リ アルでは、 プレビュー ビューを使用してアプ リ ケーシ ョ ンメニューに変更を加えますが、ツ リー メニュー ビューで同様の変更を加える こ と もできます。 ツールバー ボタンを変更する と きはプロパティ ビューを使用します。

この練習では、 以下の操作を行います。

• [ ファ イル] メ ニューの修正

• [ ヘルプ] メ ニュー項目の有効化

144 PowerBuilder

Page 157: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 6 メニューの設定

[フ ァイル] メニューの修正

このステップでは、 m_pbtutor_frame メニューの [ファ イル] カスケード メニューを変更します。

1 システム ツリーで m_pbtutor_frame をダブルクリ ックします。

メニュー ペインタに、 アプリ ケーシ ョ ンの MDI フレーム ウ ィ ンド ウに関連付けられている メニューが表示されます。m_pbtutor_sheet は m_pbtutor_frame を継承しているので、フレーム メニューに変更を加える と、 シート メニューも変更されます。

プレビュー ビューが開いていない場合は、 メニュー ペインタのメニュー バーの [ビュー] メニューから選択できます。

2 m_pbtutor_frame のプレビュー ビューで [ファイル] メニューをクリ ックします。

プレビ ュー ビ ューで メ ニュー項目を ク リ ッ クする と、 その メニュー項目が実行時と同じよ うに表示されます。

[フ ァイル] メニューのメニュー項目が表示されない場合プレビュー ビューを表示する と きは [ファ イル] メニューが選択されています。 そのほかのメニュー (編集、 ウ ィ ン ド ウ、 またはヘルプ) の 1 つをク リ ッ ク してから再び [ファ イル] メニューをク リ ッ クする と、 メニュー項目が表示されるこ とがあ り ます。

3 [フ ァイル] メニューの [新規作成] を右クリ ックします。ポップアップ メニューの [メニュー項目テキストの編集] を選択します。「レポート (&R)」 と入力して 〔Enter〕 を押します。

[新規作成] メニュー項目の表示名を [レポート ] に変更して ください。 メニュー名は m_new のまま変更されず、 その目的 (新しいシート を開きます) も変更されません。

アンパサンド文字を使用したアクセラレータ キーの定義アンパサンド (&) の次の文字がアクセラレータ キー (ニーモニック) と して使用され、 プレビュー表示では下線付きで表示されます。 アプ リ ケーシ ョ ンの実行時には、 〔Alt〕 + 〔F〕 + 〔R〕 を押すと、 [ファ イル|レポート ] メニューにアクセスできます。

4 プロパティ ビューの [テキスト] テキス トボックスに 「レポート (&R)」と表示されていることを確認します。

PowerBuilder 入門 145

Page 158: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

フレーム メニューの修正

プロパティ ビューの [ツールバー] タブをクリ ックします。

ツールバー項目のテキス トは、 「新規作成 , 新規シート 」 です。 [ピクチャ名] ボッ クスでは何も選択されていないので、実行時に [レポート ] メニュー項目でツールバー ボタンは表示されません。[レポー ト ] メニュー項目は、 新しいシート を開く コマンド と してではなく、 カスケード メニュー項目にアクセスするために使用するので、 こ こにツールバー ボタンは追加しません。

5 プレビュー ビューで [ファイル] メニューの [開く ] メニュー項目をクリ ックします。プロパティ ビューで [全般] タブをクリ ックします。プロパティ ビューの [全般] ページで [表示可能] チェ ッ クボックスのチェ ックをはずします。プロパティ ビューの [全般] ページで [使用可能] チェ ッ クボックスのチェ ックをはずします。

すべての実行時メニューでこの項目を非表示にします。 [表示可能] プロパティのチェ ッ クをはずすと、 プレビュー ビューで、 このメニュー項目が淡色表示されます。実行時には表示されません。

6 プロパティ ビューの [ツールバー] タブをクリ ックします。[表示可能] チェ ックボックスのチェ ッ クをはずします。

これで、 この メ ニュー項目のツールバー ボタ ンがフレーム メニューのツールバーに表示されな くな り ます (対応する メニュー項目が表示または有効化されない場合でも、 ボタンをツールバーに表示できます)。

7 プレビュー ビューで、[フ ァイル] メニューの [終了] をク リ ックします。

プロパティ ビューの [ツールバー] ページが開いたままになっていれば、 [項目テキス ト ] および [ピ クチャ名] の値が m_exit メニュー項目の値に替わり ます。

146 PowerBuilder

Page 159: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 6 メニューの設定

[ヘルプ] メニュー項目の有効化

[ヘルプ] メニューには 3 つの項目があ り ますが、有効になっている項目は [バージ ョ ン情報] の 1 つだけです。 このステップでは、 テンプレート アプ リケーシ ョ ン ウ ィザードおよび Tutorial ディレク ト リ内のpbtutor.hlp ファ イルが提供したコ メン ト化コードを使用して、そのほかのメニュー項目を有効にします。

ShowHelp 関数を使用してアプ リ ケーシ ョ ンのヘルプ ト ピッ クを呼び出し、 ヘルプの目次またはインデッ クスを表示するか、 特定の ト ピック またはキーワードを表示するかを識別するカタログ値を渡します。ShowHelp は、 Windows のヘルプまたはコンパイルされた HTML ヘルプ (CHM) フ ァ イルを開く こ とができます。

1 プレビュー ビューの [ヘルプ] メニューの [目次] メニュー項目をダブルクリ ッ クします。

[目次] メニュー項目は使用可能になっていなくてもダブルク リ ックできます。スク リプ ト ビューに [目次] メニュー項目がフルネームで表示されます。 フルネームには、 [ヘルプ] メニューであることを示す m_help 接頭辞も含まれます。

2 まだ選択されていない場合は 2 番目のドロップダウン リストボックスで「Clicked」 を選択します。

3 ShowHelp 関数を含む行にカーソルを置き、 パワーバーの [コ メン ト解除] ボタンをクリ ッ クします。次のように myapp.hlp を pbtutor.hlp に変更します。

ShowHelp ("pbtutor.hlp", Index!)

する と、 ヘルプ ファ イルにデフォルト ト ピッ クが表示されます。

4 プロパティ ビューの [全般] ページで、 m_helpindex メニュー項目の[使用可能] チェ ックボックスをオンにします。

5 [ ト ピックの検索] メニュー項目についても以上の手順を繰り返します。

ShowHelp 呼び出しは次のよ うにな り ます。

ShowHelp ("pbtutor.hlp", Keyword!, "")

ヘルプ ファ イルのキーワードである文字列がこの呼び出しの 3 番目の引数に含まれている場合は、 関連付けられた ト ピッ クが表示されます。 こ こではこの引数が空の文字列なので、 ト ピ ッ クの検索ウ ィンド ウが表示されます。

PowerBuilder 入門 147

Page 160: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

フレーム メニューの修正

6 PowerBuilder のメイン メニュー バーの [ファイル|上書き保存] を選択します。PowerBuilder のメイン メニュー バーの [ファイル|閉じる] を選択します。

148 PowerBuilder

Page 161: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 6 メニューの設定

シート メニューの新規作成

現在の学習個所フレーム メ ニューの修正

> シート メ ニューの新規作成ユーザ イベント を発生させるメ ニュー スクリ プト の追加新規メ ニューのアタッ チとアプリ ケーショ ンの実行

このステップでは、 ユーザが顧客または商品情報を見るために MDIシート を開いたと きに表示される メニューを新規作成します。 作成する メニューは、テンプレート アプリ ケーシ ョ ン ウ ィザードによって生成された m_pbtutor_sheet メニューの子孫オブジェク トです。

m_pbtutor_sheet メニューは m_pbtutor_frame を継承していますが、いくつかのメニュー項目が追加されています。 作成する メニューには、 先祖メニューにないメニュー項目を追加します。

この練習では、 以下の操作を行います。

• 継承される新規メ ニューの作成および保存

• 新規メ ニューへのメ ニュー項目の追加

• 新規メ ニュー項目のツールバーの追加

PowerBuilder 入門 149

Page 162: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

シート メニューの新規作成

継承される新規メニューの作成および保存

アプ リ ケーシ ョ ンのシート メニューから継承すれば、 先祖メニューを変更せずにそのシー ト メ ニューの特性を保持でき ます。 新しい メニューをただちに保存し、 修正した後で再び保存するこ とをお勧めします。

1 パワーバーの [オブジェク トの継承] ボタンをクリ ックします。

オブジェク トから継承 ダイアログボッ クスが表示されます。

2 [オブジェク トの種類] ドロップダウン リストボッ クスで 「メニュー」 が選択されていることを確認します。[オブジェク ト] リス トボックスで 「m_pbtutor_sheet」 を選択して [OK]をクリ ックします。

m_pbtutor_sheet のすべての性質を備えた タ イ ト ル未設定の メニューが表示されます。

継承されたシート メニューでは [ウ ィ ンド ウ] メニュー項目が有効になってお り、 m_pbtutor_sheet メ ニューの場合と同じ よ う にウ ィ ン ド ウを並べて表示した り、 重ねて表示した りする こ とができます。 これらのメニュー項目は m_pbtutor_frame メニューでは無効化されていました。

MDI フレーム メニューに対する変更プレビュー ビューで [フ ァ イル] メ ニューをク リ ッ クする と、 1番目のメニュー項目が [レポート ] になっています。 [開く] 項目は、 淡色表示の場合は非表示である こ とを示し、 グレー表示の場合は無効化 さ れ て い る こ と を 示 し ま す。 こ れ ら の性質はm_pbtutor_frame から継承チェーンを通じて伝えられたものです。

3 メニュー バーの [ファイル|上書き保存] を選択します。

メニューの保存 ダイアログボッ クスが表示されます。

4 [メニュー] ボックスにメニュー名として 「m_my_sheet」 と入力します。[コ メン ト] ボックスに次のように入力します。

w_master_detail_ancestor および子孫オブジェク トの新しいシート メニュー

150 PowerBuilder

Page 163: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 6 メニューの設定

5 [OK] をク リ ックします。

これでメニューに名前が付けられます。m_ はメニューの標準的な接頭辞です。

新規メニューに付けた名前がメニュー ペインタのワークスペースのタ イ トルバーに表示され、 m_my_sheet メ ニューがシステム ツリーに表示されます。

新規メニューへのメニュー項目の追加

こ こでは、 m_pbtutor_sheet から継承したメニューの [編集] メニューに項目を追加します。 プレビューおよびプロパティ ビューを使用します。

1 新規メニューのプレビュー ビューで [編集] メニューをクリ ックします。

アプリ ケーシ ョ ン実行時と同じよ うに [編集] メニューのメニュー項目のリ ス トが表示されます。 [編集] メニューのメニュー項目はすべて表示されますが、 無効です (プレビュー ビューではグレーですがディザ表示にはなっていません)。

2 プレビュー ビューで[ 編集]メ ニューのメ ニュー項目を右クリ ッ クします。ポップアップ メニューの [メニュー項目の 後に挿入] を選択します。

[編集] メニューのリ ス トの 後に表示される空のボッ クスにカーソルが移動します。

3 ハイフン (-) を入力して 〔Enter〕 を押します。

ハイフンが区分線に変わり ます。プロパティ ビューでは、メニュー項目の名前が m_- に変わり ます。 メニュー項目間の区分線も、 名前は一意でなければな り ません。 メニュー内のほかの区分線には、接頭辞 m_- の後に一意のインデッ クス番号が付けられます。

4 プロパテ ィ ビューで新しい区分線の [使用可能] チェ ッ クボッ クスのチェ ッ クをはずします。

5 プレビュー ビューで新しい区分線を右クリ ックします。ポップアップ メニューの [メニュー項目の 後に挿入] を選択します。新しい区分線の下に表示されるボックスに「挿入(&I)」と入力し、〔Enter〕を押します。

PowerBuilder 入門 151

Page 164: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

シート メニューの新規作成

メニュー項目名の [名前] が自動的に m_ 挿入 i に設定されます。デフォルト の名前が正し くないとい う メ ッセージが表示された場合は、 かわりの名前が示されます。 その場合、 示された名前を使用するには [OK] をク リ ッ ク します。

メニュー項目名を挿入する別の方法プレビュー ビューではなく、プロパティ ビューの[テキス ト ]ボックスに 「挿入 (&I)」 と入力します。 この場合、 後で 〔Enter〕 を押す必要はあ り ません。 ただし、 [名前] ボッ ク スがグレー表示になっている場合は、 まず [項目名固定] チェ ッ クボッ ク スをオフにする必要があ り ます。そ う しないと メニュー名は m_ 挿入 i にリセッ ト されません。

6 プロパティ ビューの [マイクロヘルプ] ボッ クスに 「行の挿入」 と入力します。

デフォルトでは、新規メニュー項目は表示され、有効になり ます。

ユーザがこのメニュー項目を選択する と、 アプ リ ケーシ ョ ン ウ ィンド ウの一番下の [マイ ク ロヘルプ] 行に 「行の挿入」 とい う テキス トが表示されます。

7 以下のメニュー項目について、 手順 5 と 6 を繰り返します。

メニュー項目 マイクロヘルプ テキスト

更新 (&A) データベースを更新

削除 (&D) 現在の行を削除

152 PowerBuilder

Page 165: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 6 メニューの設定

[編集] メニューに、 データベースのレコードの更新および削除のためのメニュー項目を追加します。有効化されてはいませんが、文字 U はすでにメニュー項目 [元に戻す] のアクセラレータ キーとして使用されているので、 メニュー項目 [更新] に同じアクセラレータ キーを使用しないでください。 かわりに文字 A を使用します。

PowerBuilder 入門 153

Page 166: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

シート メニューの新規作成

新規メニュー項目のツールバーの追加

こ こでは、 さきほど定義したメニュー項目に対するツールバー ボタンを追加し 2 番目のツールバーに配置します。

1 プレビュー ビューの [編集] メニューの新しい [挿入] メニュー項目をクリ ックします。

2 プロパティ ビューの [ツールバー] タブをクリ ックします。[項目テキスト] ボックスに 「挿入」 と入力します。[ピクチャ名] ドロップダウン リス トボッ クスで 「Insert!」 と入力または選択します。

これで Insert! という組み込みピクチャを使用する [挿入] メニュー項目のツールバー ボタンが定義されます。 実行時のアプ リ ケーシ ョ ンでツールバーに対して [テキス ト の表示] オプシ ョ ンが有効になっている と、 「挿入」 という テキス トがボタンの上に表示されます。

3 [項目の間隔] スピン コン ト ロールに 「1」 と入力します。[項目の順序] スピン コン ト ロールに 「1」 と入力します。[項目インデックス] スピン コン ト ロールに 「2」 と入力します。

追加されたメニュー項目用の新しいツールバーを作成し、 [挿入]ボタンをこのツールバーの 初の項目にします。

4 プレビュー ビューの[ 編集] メ ニューの[ 更新] メ ニュー項目をクリ ッ クします。プロパティ ビューでも選択されていることを確認します。

5 まだ [ツールバー] ページを開いていない場合は [ツールバー] タブをクリ ックします。[項目テキスト] ボックスに 「更新」 と入力します。[ピクチャ名] ドロップダウン リス トボッ クスで 「Update!」 を入力または選択します。

これで、 Update! とい う組み込みピ クチャを使用する [更新] メニュー項目のツールバー ボタンが定義されます。 ボタンのテキストは 「更新」 です。

6 [項目の順序] スピン コン ト ロールに 「2」 と入力します。[項目インデックス] スピン コン ト ロールに 「2」 と入力します。

154 PowerBuilder

Page 167: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 6 メニューの設定

新規ツールバーの [挿入] ボタンの後に [更新] ボタンを追加します。

7 プレビュー ビューで [編集] メニューの新規 [削除] メニュー項目をクリ ッ クします。プロパティ ビューでも同じ メニュー項目が選択されていることを確認します。

8 まだ [ツールバー] ページを開いていない場合は [ツールバー] タブをクリ ッ クします。[項目テキスト] ボックスで 「削除」 と入力します。[ピクチャ名] ドロップダウン リストボックスで 「DeleteRow!」 を入力または選択します。

これで、DeleteRow! とい う組み込みピクチャを使用する [削除] メニュー項目のツールバー ボタンが定義されます。 ボタンのテキストは 「削除」 です。

9 [項目の順序] スピン コン ト ロールに 「3」 と入力します。[項目インデックス] スピン コン ト ロールに 「2」 と入力します。

新規ツールバーの [更新] ボタンの後に [削除] ボタンを追加します。

10 PowerBuilder メニュー バーの [ファイル|上書き保存] を選択します。

PowerBuilder 入門 155

Page 168: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ユーザ イベン ト を発生させるメニュー スクリプ トの追加

ユーザ イベン ト を発生させるメニュー スクリプ トの追加

現在の学習個所フレーム メ ニューの修正シート メ ニューの新規作成

> ユーザ イベント を発生させるメ ニュー スクリ プト の追加新規メ ニューのアタ ッ チとアプリ ケーショ ンの実行

このステップでは、 シート ウ ィ ン ド ウのメニュー バーからユーザ イベン ト を発生させるスク リプ ト を追加します。 これらのユーザ イベント はレッ スン 5「 先祖ウ ィ ンド ウ の変更」 で追加したものです。 メニュー ペインタでは、 m_my_sheet メニューがまだ開いているはずです。 開いていない場合は、 パワーバーの [開く] ボタンを使用して開きます。

1 スクリプ ト ビューの 初のリス トボックスで 「m_edit.m_ 挿入 i」 を選択します。またはプレビュー ビューの [挿入] メニュー項目をダブルクリ ックします。

スク リプ ト ビューに [挿入] メニュー項目がフルネームで表示されます。フルネームには、[編集] メニューであるこ とを示す m_edit接頭辞も含まれます。

2 まだ選択されていない場合は 2 番目のドロップダウン リス トボックスで「Clicked」 を選択します。Clicked イベン トに以下の行を入力します。

w_master_detail_ancestor lw_activesheetlw_activesheet = w_pbtutor_frame.GetActiveSheet()lw_activesheet.EVENT ue_insert()

初の 2 行では、 現在 MDI フレーム内のどのシートがアクティブであるかを判定します。 3 行目では、 アクテ ィブ シートに対してユーザ イベン ト ue_insert が発生します。

156 PowerBuilder

Page 169: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 6 メニューの設定

3 以下のメニュー項目およびスクリプ ト を使用して、 手順 1 と 2 を繰り返します。

4 PowerBuilder メニュー バーの [ファイル|上書き保存] を選択します。

メニュー スク リプ トがコンパイルされ、 保存されます。

5 ペインタバー 1 の [閉じる] ボタンをクリ ックします。またはPowerBuilder メニュー バーの [ファイル|閉じる] を選択します。

メニュー名 Clicked イベン トのスクリプ ト

m_edit.m_ 更新 a w_master_detail_ancestor lw_activesheetlw_activesheet = w_pbtutor_frame.GetActiveSheet()lw_activesheet.EVENT ue_update()

m_edit.m_ 削除 d w_master_detail_ancestor lw_activesheetlw_activesheet = w_pbtutor_frame.GetActiveSheet()lw_activesheet.EVENT ue_delete()

PowerBuilder 入門 157

Page 170: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

新規メニューのアタ ッチとアプリケーショ ンの実行

新規メニューのアタ ッチとアプリケーシ ョ ンの実行

現在の学習個所フレーム メ ニューの修正シート メ ニューの新規作成ユーザ イベント を発生させるメ ニュー スクリ プト の追加

> 新規メ ニューのアタ ッ チとアプリ ケーショ ンの実行

このステップでは、 新規シート メニューをアタ ッチして、 も う一度アプリ ケーシ ョ ンを実行します。

1 システム ツリーで w_master_detail_ancestor をダブルクリ ックします。

ウ ィンド ウ ペインタのプロパティ ビューの [メニュー名] ボッ クスに リ ス ト されている メニューはまだ m_pbtutor_sheet です。

プロパティ ビューが表示されていない場合メニュー バーの [ビュー|プロパティ] を選択します。

2 プロパティ ビューの [メニュー名] ボッ クスの隣の参照 ([...]) ボタンをクリ ックします。

オブジェク ト選択ダイアログボッ クスが表示されます。

3 [メニュー] リス トボッ クスで 「m_my_sheet」 を選択して [OK] をクリ ックします。

これは m_pbtutor_sheet から継承した後で変更したシート メニューです。これでプロパティ ビューでメニューと して リ ス ト されます。

4 ペインタバー 1 の [保存] ボタンをクリ ックします。パワーバーの [実行] ボタンをクリ ックします。

アプ リ ケーシ ョ ン ログイン ウ ィ ンド ウが表示されます。

5 [ユーザ ID] ボックスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力して、 [OK] ボタンをク リ ッ クします。

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開き ます。 [フ ァ イル] メ ニューには、 [新規作成] メニュー項目のかわりに [レポート ] カスケード メニューが表示されます。 [開く] メニュー項目は表示されなくなっています。

158 PowerBuilder

Page 171: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 6 メニューの設定

6 メニュー バーの [ファイル|レポート|顧客情報] を選択します。

2 番目のツールバーが表示され、 [編集] および [ウ ィ ンド ウ] カスケード メニューに使用可能なメニュー項目が表示されていることに注意して ください。

7 [編集] メニューを選択します。

[編集] メニューには、 追加した [挿入] 、 [更新] 、 [削除] オプシ ョ ンがあ り ます。 顧客情報ウ ィンド ウのデータウ ィンド ウ コント ロールにはデータウ ィンド ウ オブジェク トが関連付けられていないので、 これらのオプシ ョ ンはまだ機能しません。

8 [ウィ ンドウ] メニューを選択します。

開いたシートに対応する新規メニュー項目が追加されています。

9 メニュー バーの [ファイル|レポート|商品情報] を選択します。

2 番目の MDI シートが開きます。 このシートは 1 番目のシートに重なるよ うにして表示されます。メニュー バーは変更されません。これは m_my_sheet が w_customers と w_products の両方のメニューであるためです。

10 [編集] メニューを選択します。

w_products ウ ィンド ウは m_my_sheet メニューを使用するので、商品管理 ウ ィ ンド ウが開いている と きに [挿入] 、 [更新] 、 [削除]オプシ ョ ンも利用できます。

11 [ウィ ンドウ] メニューを選択します。

開いた 2 番目のシートに対応する メニュー項目が追加されています。このメニュー項目の隣にチェ ッ クマークが表示され、アクティブなシートであるこ とが示されます。

12 メニュー バーの [ファイル|終了] を選択します。

アプ リ ケーシ ョ ンが終了し、 ウ ィンド ウ ペインタのワークスペースに戻り ます。

13 ウィンドウ ペインタを閉じます。

PowerBuilder 入門 159

Page 172: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

新規メニューのアタ ッチとアプリケーショ ンの実行

160 PowerBuilder

Page 173: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 7 データウィ ン ドウ オブジェク トの作成

データウ ィ ンド ウ オブジェク トは、 PowerBuilder のもっと も強力で有用な機能の 1 つです。データウ ィ ンド ウ オブジェク トは、データベース と接続してデータを読み込み、 さ まざまな提示様式でデータを表示します。 また、 データベースを更新するこ と もできます。

このレッスンでは、 以下の項目について学習します。

• データウィ ンド ウ オブジェク ト の新規作成と プレビュー

• 1 つめのデータウィ ンド ウ オブジェク ト の表示の変更

• 2 つめのデータウィ ンド ウ オブジェク ト の作成

• 2 つめのデータウィ ンド ウ オブジェク ト の表示の変更

所要時間約 20 分

PowerBuilder 入門 161

Page 174: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

About this lesson

データウィンドウ オブジェク トの新規作成とプレビュー

現在の学習個所> データウィ ンド ウ オブジェ クト の新規作成とプレビュー

データウィ ンド ウ オブジェ クト の保存1 つめのデータウィ ンド ウ オブジェ クト の表示の変更2 つめのデータウィ ンド ウ オブジェ クト の作成2 つめのデータウィ ンド ウ オブジェ クト の表示の変更

このステップでは、 データウ ィ ン ド ウ オブジェ ク ト を新規作成して、データウ ィ ン ド ウ ペインタに表示します。 ほかのペインタ と同様に、データウ ィンド ウ ペインタには、 同時に開く こ とができるさまざまなビューがあ り ます。

データウィンドウ ペインタのデザイン ビューについてデータウ ィンド ウ ペインタのデザイン ビューは、ほかのペインタのレイアウ ト ビューと似ています。 一度に表示できるデザイン ビューは 1つだけです。

デザイン ビューは、 ヘッダ、 詳細、 サマ リ、 およびフ ッ タの 4 つの「区域」 と呼ばれる領域に分かれています。 これらの区域の内容は変更するこ とができます。 たとえば、 サイズの変更や、 オブジェク ト (コン ト ロール、 テキス ト、 線、 ボッ クス、 楕円) の追加、 色やフォン トの変更を行う こ とができます。

データウ ィンド ウ ペインタのプレビュー ビューでは、実行時におけるアプ リ ケーシ ョ ンでのオブジェ ク ト の表示をテーブル データが挿入された状態で見るこ とができます。

1 パワーバーの [新規作成] ボタンをクリ ックします。

新規作成 ダイアログボッ クスが表示されます。

2 [データウィンドウ] タブをクリ ッ クします。提示様式のリス トで 「タブラ」 を選択して [OK] をク リ ックします。

データウ ィ ン ド ウ ウ ィザードのタブラ データウ ィ ン ド ウのためのデータ ソースの選択ページが表示されます。

3 データ ソースとして 「Quick Select」 を選択します。[プレビュー時に検索する] チェ ッ クボックスをオンにします。[次へ] をク リ ックします。

162 PowerBuilder

Page 175: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

EAS Demo DB データベースに接続し、Quick Select ダイアログボックスが表示されます。

4 [テーブル] リス トボッ クスで 「customer (顧客情報テーブル)」 をク リ ックします。

テーブルが開き、 カラムが一覧表示されます。 このデータウ ィ ンド ウでは 4 つのカラムを選択します。

5 [カラム] リス トボックスで 「id」 、 「lname」 、 「fname」 を、 並んでいる順にクリ ッ クします。リスト をスクロールして 「company_name」 をクリ ッ クします。

Quick Select ダイアログボッ クスの下のグ リ ッ ドに、 選択したカラムが表示されます。

選択する順序で表示される順序が決まります各カラムは、 選択した順に、 データウ ィンド ウ オブジェク ト内で左から右へ表示されます。誤ってカラムをク リ ッ ク した場合は、もう一度ク リ ッ クする と選択を取り消すこ とができます。

PowerBuilder 入門 163

Page 176: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

データウィ ンドウ オブジェク トの新規作成とプレビュー

ダイアログボッ クスの下のグ リ ッ ド領域を使用して、 ソート条件(SQL ORDER BY 句の場合) や選択条件 (SQL WHERE 句の場合)を指定できます。 こ こではソー ト条件だけを指定します。 id カラムを昇順にソート します。

6 Quick Select ダイアログボックスのグリ ッ ド領域で、[ソート]の横、[Id]の下のセルをクリ ックします。

ド ロ ップダウン リ ス ト ボッ クスが表示されます。

7 2 番目のドロップダウン リストボックスで 「昇順」 を選択します。

これで id カラムを昇順でソートするよ うに指定されます。

8 [OK] をクリ ッ クします。

データウ ィ ン ド ウ ウ ィザードから、 新規データウ ィ ン ド ウ オブジェ ク ト の色と境界を選択するよ うに求められます。 デフォルトでは、 テキス ト またはカラムの境界はあ り ません。

9 [次へ] をク リ ックします。

境界と色のデフォル ト 設定値を使用し ます。 データ ウ ィ ン ド ウウ ィザードによ り、 選択した値が集約されます。

10 [完了] ボタンをクリ ックします。

新規データウ ィ ンド ウ オブジェク トが作成され、 データウ ィンドウ ペインタが開きます。

デザイン ビューに、 デフォル ト のヘッダが付いたヘッダ区域と、選択したカラムのある詳細区域がそれぞれ表示されます。

164 PowerBuilder

Page 177: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

プレビュー ビューでは、 実行時に表示される ものと同じデータウ ィ ン ド ウが表示されます。 すべての顧客のデータが表示されます。データは、指定したとおり、顧客 ID で昇順にソート されます。

プレビュー ビューの表示プレビュー ビューが表示されていない場合は、 メニュー バーから[ビュー|プレビュー] を選択します。 [プレビュー] がグレー表示の場合は、 すでに表示されているので選択できません。 一度に表示できるプレビュー ビューは 1 つだけです。

PowerBuilder 入門 165

Page 178: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

データウィ ンドウ オブジェク トの保存

データウィンドウ オブジェク トの保存

現在の学習個所データウィ ンド ウ オブジェ クト の新規作成とプレビュー

> データウィ ンド ウ オブジェ クト の保存1 つめのデータウィ ンド ウ オブジェ クト の表示の変更2 つめのデータウィ ンド ウ オブジェ クト の作成2 つめのデータウィ ンド ウ オブジェ クト の表示の変更

このステップでは、 データウ ィ ン ド ウ オブジェ ク トに名前を付けて、pbtutor.pbl ライブラ リに保存します。

別のライブラリへの保存オブジェ ク ト は別のアプ リ ケーシ ョ ン ラ イブラ リ に保存する こ とができますが、 複雑にならないよ うにするために、 新規チュート リ アルオブジェ ク トはすべて同一のラ イブラ リに保存します。 また、 ラ イブラ リ ペインタを使用する と、 ラ イブラ リ間でオブジェク ト をコピーしたり、 移動したりするこ と もできます。

1 メニュー バーから [ファイル|上書き保存] を選択します。

データウ ィンド ウの保存 ダイアログボッ クスが表示され、[データウ ィンド ウ] ボッ クスに挿入ポイン トが示されます。

2 [アプリケーシ ョ ン ライブラリ] ボックスで 「pbtutor.pbl」 が選択されていることを確認します。[データウィンドウ] ボッ クスに 「d_custlist 」 と入力します。

これで、 データウ ィ ン ド ウ オブジェ ク ト に名前が付けられます。「d_」 はデータウ ィ ンド ウ オブジェク トの標準の接頭辞です。

3 (オプシ ョ ン) [コ メン ト] ボックスに以下のコ メン ト を入力します。

このデータウィンドウ オブジェク トは顧客名とその会社名を検索します。

4 [OK] をクリ ッ クします。

データウ ィ ンド ウ オブジェク トが保存され、 データウ ィンド ウの保存 ダイアログボッ クスが閉じます。

166 PowerBuilder

Page 179: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

1 つめのデータウィンドウ オブジェク トの表示の変更

現在の学習個所データウィ ンド ウ オブジェ クト の新規作成とプレビューデータウィ ンド ウ オブジェ クト の保存

> 1 つめのデータウィ ンド ウ オブジェ クト の表示の変更2 つめのデータウィ ンド ウ オブジェ クト の作成2 つめのデータウィ ンド ウ オブジェ クト の表示の変更

こ こでは、 データウ ィン ド ウの表示を変更します。 カラム とカラム見出しを移動して、 現在選択されている行の左にハンド ポインタを表示するスペースを作り ます。 また、 一部のカラムを移動して見出し と揃う よ うにします。

これらの変更作業はデザイン ビューで行います。 同時にプレビュービューを開いておけば、 変更した結果、 実行時にデータウ ィ ンド ウがどのよ うに表示されるかを確認できます。

1 メニュー バーの [編集|選択|すべて選択] を選択します。または〔Ctrl〕 + 〔A〕 を押します。

データウ ィンド ウ オブジェク ト内のすべてのコン ト ロールがデザイン ビューで選択されます。

2 選択したオブジェク トの 1 つにマウス ポインタを移動します。右に 4 cm ほど、 オブジェク ト をド ラ ッグします。

選択されているすべてのオブジェク トがいっし ょに移動します。

3 デザイン ビューで、 空白の領域をクリ ックします。

オブジェク トの選択が解除されます。

4 ヘッダ区域の上の [顧客 ID] ヘッダをク リ ックします。〔Ctrl〕 を押したまま [id] カラムをクリ ッ クします。左に 2.5 cm ほど [id] カラムをド ラ ッグします。

カラムとそのヘッダがいっし ょに移動します。

PowerBuilder 入門 167

Page 180: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

1 つめのデータウィンドウ オブジェク トの表示の変更

5 スタイルバーの [中央揃え] ボタンをクリ ックします。デザイン ビューで、 空白の領域をクリ ッ クします。

カラム ヘッダのテキス ト とカラム データの中央揃えを行ってから、 オブジェク トの選択を解除します。

6 [姓] ヘッダをクリ ックします。〔Ctrl〕 を押したまま [名] および [会社名] ヘッダをクリ ッ クします。スタイルバーの [左寄せ] ボタンをクリ ックします。

操作を完了する と、 デザイン ビューは次の図のよ うになるはずです。

7 メニュー バーから [ファイル|閉じる] を選択します。

変更内容を保存するかど うかを確認する メ ッセージ ボッ クスが表示されます。

8 [はい] をク リ ックします。

データウ ィンド ウ オブジェク トが保存され、データウ ィンド ウ ペインタが閉じます。

168 PowerBuilder

Page 181: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

2 つめのデータウィンドウ オブジェク トの作成

現在の学習個所データウィ ンド ウ オブジェ クト の新規作成とプレビューデータウィ ンド ウ オブジェ クト の保存1 つめのデータウィ ンド ウ オブジェ クト の表示の変更

> 2 つめのデータウィ ンド ウ オブジェ クト の作成2 つめのデータウィ ンド ウ オブジェ クト の表示の変更

1 つめのデータウ ィ ン ド ウ オブジェ ク ト を作成したと きには、 QuickSelect を使用してテーブルとカラムを指定しました。 Quick Select を使用する と、 Select ペインタを使用しないですべての顧客を検索できます。

2 つめのデータウ ィ ン ド ウ オブジェ ク トの作成では、 Select ペインタを使用します。 実行時に引数をデータウ ィンド ウ オブジェク トに渡すために、 検索引数と WHERE 条件を定義する必要があ り ます。 こ こでは、 顧客 ID を渡します。

こ こでは以下の内容について学習します。

• データ ソースおよびスタイルの選択

• テーブルと カラムの選択

• 検索引数の定義

• WHERE 句の指定

• データウィ ンド ウ ペインタでのデータウィ ンド ウの表示

• データウィ ンド ウ オブジェク ト の保存

データ ソースおよびスタイルの選択

こ こでは、データ ソースを選択して、データの表示方法を指定します。

1 パワーバーの [新規作成] ボタンをクリ ッ クします。

新規作成 ダイアログボッ クスが表示されます。

2 まだ選択していない場合は、[データウィンドウ] タブをクリ ックします。提示様式のリス トで 「フ リーフォーム」 を選択して [OK] をクリ ッ クします。

PowerBuilder 入門 169

Page 182: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

2 つめのデータウィンドウ オブジェク トの作成

3 データ ソースとして [SQL Select] を選択します。[プレビュー時に検索する] チェ ッ クボックスをオンにします。[次へ] をク リ ックします。

データ ソースが [SQL Select] なので、 Select ペインタに移動します。 テーブルの選択 ダイアログボッ クスが表示されます。

[プレビュー時に検索する] チェッ クボッ クスをオンにする と、 開発環境でクエ リによって返されたデータを表示できますが、 指定するすべての検索引数に初期値を与える必要があ り ます。

テーブルとカラムの選択

こ こでは、 データウ ィンド ウ オブジェク トで使用するテーブルとそのテーブル内のカラムを選択します。

1 [テーブルの選択] リス トで 「customer」 を選択して [開く ] をクリ ックします。

Select ペインタに、customer テーブルとそのテーブルのカラムが表示されます。

別の方法customer テーブルを選択して [開く] を ク リ ッ クするかわ り に、customer テーブルをダブルク リ ッ ク した場合は、 テーブルの選択ダイアログボッ ク スは開いたままにな り ます。 この場合、 次の操作に進むには [キャンセル] をク リ ッ クする必要があ り ます。

2 テーブル レイアウト ビューで、 customer テーブルのヘッダ領域を右クリ ックします。ポップアップ メニューで [すべて選択] をクリ ックします。

テーブル レイアウ ト ビューでテーブルの上の [選択リ ス ト ] 領域にカラム名が表示されます。

[選択リ ス ト ] 内でのカラムの順序は、 カラムを選択した順序になり ます。 一度にすべてのカラムを選択した場合は、 データベース内でのカラムの元の順序で表示されます。 カラムの表示順序は後で変更します。

170 PowerBuilder

Page 183: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

Syntax ビューでは、選択の順序を確認するこ と もできます。Syntaxビューを表示するには、 タブ ウ ィンド ウの一番下にある [Syntax]タブをク リ ッ ク します。 Syntax ビューに、 生成された Select 文が表示されます。

検索引数の定義

こ こでは、 検索引数を定義します。

1 メニュー バーの [デザイン|検索引数] を選択します。

検索引数の指定 ダイアログボッ クスが表示されます。

2 [名前] ボックスに 「cust_id」 と入力します。

デフォルトのデータ型は 「Number」 で、 これを使用します。

PowerBuilder 入門 171

Page 184: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

2 つめのデータウィンドウ オブジェク トの作成

検索引数名について使用する検索引数にはどのよ う な名前を付けてもかまいません。これは、 実行時に渡す値のプレースホルダにすぎません。 ただし、意味のある名前を使用するよ うにしたほうがよいでし ょ う。

3 [OK] をクリ ッ クします。

検索引数が定義されます。

WHERE 句の指定

こ こでは、 特定の顧客を検索するために検索引数を使用して WHERE句を指定します。

1 [Where] タブをク リ ックします。

Where ビューが表示されます。

2 Where ビューで、 [カラム名] の下のボックスをクリ ックします。

下矢印が表示され、 ボッ クスがド ロ ップダウン リ ス ト ボッ クスにな り ます。

3 下矢印をクリ ックします。「"customer"."id"」 を選択します。

カラム見出しのすぐ下に 「"customer"."id"」 が表示されます。[演算子] ボッ クスに等号 (=) が表示されます。 この演算子は正しいので、 変更の必要はあ り ません。

4 Where ビューで、[値] のカラム ヘッダの下のボックスを右クリ ックします。

172 PowerBuilder

Page 185: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

ポップアップ メニューから [引数] を選択し、 「:cust_id」 を選択して、[貼り付け] をクリ ックします。

5 [Syntax] タブをクリ ッ クします。

Syntax ビューに、 修正した SELECT 文が表示されます。

6 スクロールして、 生成された WHERE 句を表示します。

これで、 完全な SQL SELECT 文が作成されました。 この文は、 実行時に指定される引数に等しい id カラムがある顧客情報テーブルの複数のカラムからデータを検索します。

データウィンドウ ペインタでのデータウィンドウの表示

こ こでは、デザイン ビューとプレビュー ビューを使用してデータウ ィンド ウ ペインタでデータウ ィンド ウを表示します。

1 ペインタバーの [ペインタに戻る] ボタンをクリ ッ クします。またはメニュー バーの [ファイル|データウィンドウ ペインタに戻ります] を選択します。

データウ ィ ンド ウ ウ ィザードによ り、新規データウ ィンド ウ オブジェク トの枠線と色を選択するよ うに求められます。

2 カラムの [枠線] ドロップダウン リス トボッ クスで 「3D 凸表示」 を選択します。[次へ] をクリ ックします。

カラムには盛り上がった枠線が付きますが、 データウ ィンド ウ オブジェク トのラベルには付きません。 データウ ィ ンド ウ ウ ィザードによ り、 選択した値が集約されます。

PowerBuilder 入門 173

Page 186: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

2 つめのデータウィンドウ オブジェク トの作成

3 [完了] ボタンをクリ ックします。

[プレビュー時に検索する] チェ ッ クボッ ク スをオンにしており、データ ウ ィ ン ド ウ ペイ ン タのデフ ォル ト のレ イアウ ト にプレビューが含まれているため、 検索引数の指定 ダイアログボッ クスが表示されます。

このダイアログボッ クスでは、 引数値の入力が求められます。 このデータウ ィ ン ド ウ オブジェ ク ト をチュー ト リ アル アプ リ ケーシ ョ ンに入れる と、 必要な引数をデータウ ィンド ウ オブジェク トに渡すスク リプ トが自動的に記述されます。

4 [値] フ ィールドに顧客 ID (101、 102、 103 など) を入力します。[OK] をクリ ッ クします。

174 PowerBuilder

Page 187: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

データウ ィ ンド ウ ペインタが開きます。デザイン ビューに新しいデータウ ィ ンド ウ オブジェク トが表示されます。

フォン ト サイズの変更ラベルの文字がすべて見えない場合は、〔Ctrl〕 + 〔A〕 を押してデータウ ィ ン ド ウ内のすべての項目を選択してから、 スタ イルバーで小さいフォン ト サイズを選択します。

PowerBuilder 入門 175

Page 188: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

2 つめのデータウィンドウ オブジェク トの作成

要求された顧客データがデータウ ィ ン ド ウ プレビュー ビューで検索されます。

ほかのレコードの検索ほかの顧客のレコードをプレビューする場合は、 データウ ィ ン ドウ プレビュー ビューを右ク リ ッ ク して、ポップアップ メニューの[データ検索] を選択し、検索引数の指定 ダイアログボッ クスで別の顧客 ID を指定します。

データウィンドウ オブジェク トの保存

こ こではデータウ ィ ン ド ウ オブジェ ク トに名前を付けて保存します。ペインタを終了するまで保存しないでおく こ と もできますが、 頻繁に作業内容を保存するよ うにするのが適切です。

1 メニュー バーから [ファイル|上書き保存] を選択します。

データウ ィンド ウの保存 ダイアログボッ クスが表示されます。

2 [アプリケーシ ョ ン ライブラリ] ボックスで 「pbtutor.pbl」 が選択されていることを確認します。[データウィンドウ] ボッ クスに 「d_customer」 と入力します。

以前は、データウ ィンド ウ オブジェク ト を d_custlist という名前で保存しました。

176 PowerBuilder

Page 189: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

3 (オプシ ョ ン) [コ メン ト] ボッ クスに以下のコ メン ト を入力します。

このデータウィンドウは、 顧客情報テーブルのすべてのカラムを検索します。 詳細データウィンドウとして使う と便利です。

4 [OK] をク リ ックします。

データウ ィ ンド ウ ペインタに戻り ます。

PowerBuilder 入門 177

Page 190: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

2 つめのデータウィンドウ オブジェク トの表示の変更

2 つめのデータウィ ンドウ オブジェク トの表示の変更

現在の学習個所データウィ ンド ウ オブジェ クト の新規作成とプレビューデータウィ ンド ウ オブジェ クト の保存1 つめのデータウィ ンド ウ オブジェ クト の表示の変更2 つめのデータウィ ンド ウ オブジェ クト の作成

> 2 つめのデータウィ ンド ウ オブジェ クト の表示の変更

こ こでは、 データウ ィンド ウ オブジェク ト を修正します。 このレッスンでは、 以下の項目について学習します。

• カラムと ラベルの再配置

• ラベルと カラムの整列

• ド ロ ッ プダウン データウィ ンド ウ編集スタイルの矢印の表示

フリーフォーム データウィンドウのカラムフ リーフォーム データウ ィ ン ド ウ オブジェ ク トのデータ フ ィールドは、 テーブル形式ではあ り ませんが、 カラムと呼ばれます。

カラムとラベルの再配置

こ こでは、 新規データウ ィンド ウ オブジェク トのカラムと ラベルを再配置します。 デザイン ビューを 大化する と、 カラムと ラベルを非常に操作しやすくな り ます。

1 デザイン ビューで 「郵便番号」 ラベルをクリ ックします。〔Ctrl〕 を押したまま、 zip カラムをクリ ックします。

2 つの項目が選択されます。

2 〔Ctrl〕 を押したまま、以下のカラム ラベルとカラム コント ロールをクリ ックします。

ラベル カラム

郵便番号 : zip

都道府県 : state市区 : city

町村番地 : address

178 PowerBuilder

Page 191: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

3 〔Ctrl〕 を放します。選択されているオブジェク トの 1 つにカーソルを置き、データウィンドウオブジェク トの右上隅にドラッグします。

すべてのオブジェク トがいっし ょに移動します。

4 この 〔Ctrl〕 を押したままクリ ッ クする方法を使用して、 以下のラベルおよびカラム コン ト ロールを示された位置に移動します。

必要であれば、 スク ロールしてデータウ ィ ン ド ウ内にすべてのカラムが表示されるよ うにします。

5 詳細区域を 後のカラム ラベルの下へドラッグします。

詳細区域に余分なスペースがあれば削除します。

フ ィールドど う しが重なる場合があ り ます。その場合の修正は、次の練習で行います。 デザイン ビューでは、 データウ ィンド ウが次のよ うに表示されるはずです。

データウ ィ ンド ウ プレビュー ビューは、 次のよ うにな り ます。

ラベル カラム コン ト ロール 移動先

[会社名] company_name [Fname Yomi:] の下

[電話番号] phone [会社名] の下

PowerBuilder 入門 179

Page 192: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

2 つめのデータウィンドウ オブジェク トの表示の変更

ラベルとカラムの整列

こ こでは、 新規データウ ィンド ウでラベルとカラムを整列します。

1 デザイン ビューで [町村番地] ラベルを選択します。[町村番地] ラベルを lname_yomi カラムのできるだけ近 く に移動します。

ラベル ボッ ク スの左端とカラム ボッ ク スの右端に小さなスペースが残る く らいに間を詰めます。

2 [町村番地] ラベルが選択されている状態で、 〔Ctrl〕 + クリ ッ クを使用して [郵便番号]、 [都道府県]、 および [市区] ラベルを選択します。

3 メニュー バーの [書式|オブジェク トの配置] を選択します。

整列オプシ ョ ンのカスケード メニューが表示されます。

4 1 つめのオプシ ョ ン ([左端]) を選択します。

選択したオブジェク トの左端が、 選択した 1 つめの項目 ([町村番地] ラベル) の左端に揃えられます。

ペインタバーからの整列ツールの選択ペインタバー 2 の [配置] ボタンをク リ ッ クする と、 整列ツールのド ロ ップダウン リ ス トにアクセスできます。

5 address のカラムを [町村番地] ラベルのすぐ横に移動します。カラム ラベルのときと同じようにして、zip、state、city カラムを addressカラムに揃えます。

180 PowerBuilder

Page 193: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 7 データウィンドウ オブジェク トの作成

ドロップダウン データウィンドウ編集スタイルの矢印の表示

顧客の State カラムにはデータウ ィンド ウ編集スタイルがあ り ます。これは EAS Demo DB データベースの State カラムに関連付けられている拡張属性です。 State カラムが関連付けられている (ド ロ ップダウン)データウ ィ ンド ウには、 State と 2 文字のコードのリ ス トがあ り ます。

State の選択リ ス ト がアプ リ ケーシ ョ ンで常に表示されるよ う にしたり、 選択リ ス トが利用可能である こ とを示す矢印を常に表示されるようにした りするこ とができます。 こ こでは、 State カラムのプロパティを変更して、 矢印が常に表示されるよ うにします。

1 デザイン ビューで State カラムをクリ ッ クします。プロパティ ビューが表示されることを確認します。

このプロパティ ビューにはカラムのプロパティが表示されます。

2 プロパティ ビューで [編集] タブをク リ ックします。

[編集] タブが見えない場合は、プロパティ ビューの一番上近くにある矢印キーをク リ ッ ク して ください。 [様式の種類] で 「ド ロ ップダウン データウ ィンド ウ」が選択されているこ とを確認します。

3 [矢印を常時表示] チェ ックボックスをオンにします。デザイン ビューの State カラムが、 矢印プラス 2 文字を表示できる幅であることを確認します。

デザイン ビューおよびプレビュー ビューで、State カラムの横に矢印が表示されます。

4 ペインタバー 1 の [保存] ボタンをクリ ックします。ペインタバー 1 の [閉じる] ボタンをクリ ックします。

PowerBuilder 入門 181

Page 194: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

2 つめのデータウィンドウ オブジェク トの表示の変更

182 PowerBuilder

Page 195: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 8 データウィ ン ドウ オブジェク トのアタ ッチ

データ ウ ィ ン ド ウ オブジェ ク ト を作成して保存する と、 データウ ィンド ウ オブジェク ト をウ ィンド ウで使用できるよ うにな り ます。すでに d_custlist および d_customer というデータウ ィンド ウ オブジェ ク ト を作成しました。 こ こでは、 これらのデータウ ィ ンドウ オブジェ ク ト を、 w_customers ウ ィ ン ド ウ内のデータウ ィ ン ドウ コン ト ロールに関連付けます。

このレッスンでは、 以下の項目について学習します。

• マスター データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェク ト のアタッ チ

• 詳細データウィ ンド ウ コント ロールへのデータウィ ンド ウオブジェク ト のアタッ チ

• アプリ ケーショ ンの実行

• 商品管理 ウィ ンド ウへのデータウィ ンド ウ オブジェク ト のアタッ チ

• アプリ ケーショ ンの再実行

所要時間約 15 分

PowerBuilder 入門 183

Page 196: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

マスター データウィ ンドウ コン ト ロールへのデータウィ ンドウ オブジェク トのアタ ッチ

マスター データウィ ンドウ コン ト ロールへのデータウィンドウ オブジェク トのアタ ッチ

現在の学習個所> マスター データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェ

クト のアタ ッ チ詳細データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェ クトのアタ ッ チアプリ ケーショ ンの実行商品管理 ウィ ンド ウへのデータウィ ンド ウ オブジェ クト のアタ ッ チアプリ ケーショ ンの再実行

このステ ップでは、 データ ウ ィ ン ド ウ オブジェ ク ト を w_customersウ ィンド ウ上のデータウ ィンド ウ コン ト ロールにアタ ッチします。

1 システム ツリーで pbtutor.pbl ツリー項目を展開します。

184 PowerBuilder

Page 197: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

2 w_customers を右クリ ックして、 ポップアップ メニューから [編集] を選択します。またはシステム ツリーで w_customers をダブルクリ ッ クします。

ウ ィ ンド ウ ペインタに w_customers ウ ィンド ウが表示されます。

3 レイアウト ビューで dw_master データウィンドウ コン ト ロールを右クリ ッ クします。ポップアップ メニューで [プロパテ ィ] をク リ ックします。プロパティ ビューで [データ オブジェク ト] ボックスの隣の参照 ([...])ボタンをクリ ッ クします。

オブジェク ト選択ダイアログボッ クスが表示されます。

4 [データウ ィ ン ドウ] リス トボッ クスで 「d_custlist」 を選択して [OK]をクリ ッ クします。

d_custlist データウ ィンド ウ オブジェク ト と dw_master データウ ィンド ウ コン ト ロールが関連付けられます。

レイアウ ト ビューで、 dw_master コン ト ロール内に d_custlist データウ ィ ン ド ウの見出しが表示されていますが、 データはまだ表示されていません。アプリ ケーシ ョ ンを実行するまでは、データウ ィンド ウは SELECT 文を実行しません。

PowerBuilder 入門 185

Page 198: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

マスター データウィ ンドウ コン ト ロールへのデータウィ ンドウ オブジェク トのアタ ッチ

ド ラ ッグ アンド ドロップを使用してのウィンドウへのデータウィ ンドウ オブジェク トの追加このチュート リ アルでは、 エラー処理が組み込まれたカスタム データウ ィンド ウ コン ト ロールを使用します。標準的なデータウ ィンド ウ コン ト ロールを使用したい場合は、 このレッスンで行ったよ うにウ ィ ンド ウにコン ト ロールを追加してからデータウ ィ ン ド ウ オブジェ ク トをアタ ッチする必要はあ り ません。 システム ツ リーでデータウ ィ ンドウ オブジェ ク ト を選択し、 レイアウ ト ビュー内のウ ィ ン ド ウ上にドラ ッグするだけで済みます。 する と、 データウ ィンド ウ コン ト ロールが自動的に作成されます。

186 PowerBuilder

Page 199: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

詳細データウィンドウ コン トロールへのデータウィンドウ オブジェク トのアタ ッチ

現在の学習個所マスター データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェクト のアタ ッ チ

> 詳細データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェ クトのアタ ッ チアプリ ケーショ ンの実行商品管理 ウィ ンド ウへのデータウィ ンド ウ オブジェ クト のアタ ッ チアプリ ケーショ ンの再実行

このステップでは、 詳細データウ ィンド ウ コン ト ロールへデータウ ィンド ウ オブジェク ト をアタ ッチします。 ウ ィンド ウ ペインタでは、 まだ w_customers ウ ィンド ウが開いているはずです。

1 レイアウト ビューで 「dw_detail」 コン トロールを選択します。プロパティ ビューで [データ オブジェク ト] ボックスの隣の参照 ([...])ボタンをクリ ッ クします。オブジェク ト選択 ダイアログボックスで「d_customer」を選択して[OK]をクリ ッ クします。

d_customer データウ ィンド ウ オブジェク ト と dw_detail データウ ィンド ウ コン ト ロールが関連付けられます。 ウ ィンド ウ ペインタのワークスペースでは、 dw_detail コン ト ロール内に d_customer データウ ィンド ウ オブジェク トが表示されます。

2 レイアウト ビューで、 データウィンドウ オブジェク トに追加したすべてのカラムを表示できるように dw_detail コン ト ロールを拡大します。

PowerBuilder 入門 187

Page 200: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

詳細データウィ ンドウ コン トロールへのデータウィ ンドウ オブジェク トのアタ ッチ

必要であれば、 ウ ィン ド ウ も拡大します。 dw_detail コン ト ロールを拡大する場合、 dw_master コン ト ロールも同じ幅にします。

188 PowerBuilder

Page 201: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

アプリケーシ ョ ンの実行

現在の学習個所マスター データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェクト のアタ ッ チ詳細データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェ クトのアタ ッ チ

> アプリ ケーショ ンの実行商品管理 ウィ ンド ウへのデータウィ ンド ウ オブジェ クト のアタ ッ チアプリ ケーショ ンの再実行

このステップでは、 アプ リ ケーシ ョ ンをも う一度実行して、 2 つめのデータウ ィ ンド ウの挿入、 更新、 および削除機能をテス ト します。

1 パワーバーの [実行] ボタンをクリ ッ クします。

変更内容を保存するかど うかを問い合わせる メ ッセージ ボッ クスが表示されます。

2 [はい] をクリ ックします。

アプ リ ケーシ ョ ンが実行され、 ログイン ウ ィ ンド ウが表示されます。

3 [ユーザ ID] ボッ クスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力して、 [OK] ボタンをク リ ッ クします。

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開きます。

4 メニュー バーから [ファイル|レポート|顧客情報] を選択します。

PowerBuilder 入門 189

Page 202: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

顧客情報 ウ ィンド ウが表示されます。

上部のデータウ ィンド ウ コン ト ロール (dw_master) には Customerテーブルから検索されたすべての行が表示され、 ハンド ポインタはどの行が選択されているかを示します。

下部のデータウ ィ ンド ウ コン ト ロール (dw_detail) には、 選択した顧客についての詳細情報が表示されています。

5 ツールバーの [挿入] ボタンをクリ ックします。またはメニュー バーの [編集|挿入] を選択します。

これで dw_detail データウ ィンド ウがク リ ア ( リ セッ ト ) され、 新しい行がデータウ ィ ンド ウに追加されます。 カーソルが dw_detailコン ト ロールの [顧客 ID] ボッ クスに置かれます。

6 詳細データウィンドウのボックスに情報を入力して、新しい顧客行を追加します。

190 PowerBuilder

Page 203: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

新しい顧客の情報の入力[顧客 ID] の番号は一意でなければなり ません。値が重複しないようにするために、 新しいデータベース エン ト リに 4 桁の値を使用するか、 マスター データウ ィンド ウの顧客のリ ス ト をスク ロールして リ ス トに表示されていない ID 番号を選択します。

電話番号と郵便番号では、 入力する情報を表示するのにエディ ット マスクを使用します。 これらのデータ フ ィールドには数値だけを入力する必要があ り ます。 顧客の都道府県を指定するには、都道府県のカラムの隣の矢印をク リ ッ ク して ド ロ ップダウン リ ス トボッ クスからエン ト リ を選択する必要があ り ます。

データベースで NULL 値を使用できるのは 「会社名」 フ ィールドだけです。そのほかのすべてのフ ィールドでは、新しい顧客の [更新] ボタンをク リ ッ クする前に、 値を入力しなければなり ません。

7 ツールバーの [更新] ボタンをクリ ッ クします。またはメニュー バーの [編集|更新] を選択します。

これで ue_update イベン ト のス ク リ プ ト でコーディ ングされたとおりに、 新しい顧客のデータがデータベースに送られ、 確認メ ッセージが表示されます。

新しい顧客はまだマスター データ ウ ィ ン ド ウに表示されません(この機能が含まれるよ うにコードを追加するこ と もできます) 。ただし、 w_customers シートのほかのインスタンスを開く と、 新しい顧客のデータは、 マスターおよび詳細データウ ィンド ウ コン トロールの両方で表示されます。

8 メ ッセージ ボックスで [OK] をクリ ッ クします。マスター データウィンドウで顧客をクリ ックします。

その顧客のデータが下のデータウ ィンド ウに表示されます。

9 詳細データウィンドウで顧客の住所を変更します。

10 ツールバーの [更新] ボタンをクリ ッ クします。またはメニュー バーの [編集|更新] を選択します。

これで、 変更した顧客データがデータベースに送られ、 別の確認メ ッセージが表示されます。

PowerBuilder 入門 191

Page 204: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

11 メ ッセージ ボックスで [OK] をクリ ックします。マスター データウィンドウでほかの顧客を選択します。

詳細データウ ィ ンド ウにその顧客のデータが表示されます。

12 ツールバーの [削除] ボタンをクリ ックします。またはメニュー バーの [編集|削除] を選択します。

データウ ィンド ウからはその顧客がただちに削除されますが、 [編集] メニューの [更新] オプシ ョ ンを選択しない限り、データベースからは削除されません。 その場合、 EAS Demo DB データベースのほかのテーブルの行が削除しよ う と している行を参照していると、 更新処理が失敗するこ とがあ り ます。

自分でデータベースに追加した行はすべて削除できます。

13 メニュー バーから [ファイル|終了] を選択します。

アプ リ ケーシ ョ ンが終了し、 ウ ィンド ウ ペインタに戻り ます。

14 ウィンドウ ペインタを閉じます。

192 PowerBuilder

Page 205: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

商品管理 ウィンドウへのデータウィ ンドウ オブジェク トのアタ ッチ

現在の学習個所マスター データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェクト のアタ ッ チ詳細データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェ クトのアタ ッ チアプリ ケーショ ンの実行

> 商品管理 ウィ ンド ウへのデータウィ ンド ウ オブジェ クト のアタ ッ チアプリ ケーショ ンの再実行

このステップでは、 w_products ウ ィ ンド ウに 2 つのデータウ ィンド ウオブジェク ト を追加します。 これらのデータウ ィンド ウ オブジェク トは、 tutor_pb.pbl ラ イブラ リに用意されています。

1 システム ツリーの w_products を右クリッ クして、ポッ プアップ メ ニューから [編集] を選択します。またはシステム ツリーで w_products をダブルクリ ックします。

ウ ィ ンド ウ ペインタに w_products ウ ィンド ウが表示されます。

2 コン ト ロール リス ト ビューで dw_master データウィンドウ コン ト ロールを選択します。プロパティ ビューで [データ オブジェク ト] ボックスの隣の参照 ([...])ボタンをクリ ッ クします。

オブジェク ト選択ダイアログボッ クスが表示されます。

3 [アプリケーシ ョ ン ライブラリ]ボックスで「tutor_pb.pbl」を選択します。[データウ ィ ン ドウ] ボッ クスで 「d_prodlist」 を選択して [OK] をクリ ッ クします。

ウ ィ ン ド ウ ペインタのプロパテ ィ ビューの [データ オブジェ クト ] ボッ クスに、 d_prodlist が表示されます。

PowerBuilder 入門 193

Page 206: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

商品管理 ウィンドウへのデータウィ ンドウ オブジェク トのアタ ッチ

d_prodlist データウ ィ ンド ウ オブジェク ト と、 w_products ウ ィ ンドウ内の dw_master データウ ィ ンド ウ コン ト ロールとが関連付けられます。 レイアウ ト ビューで、 データウ ィンド ウ オブジェク トの見出しが表示されます。 コン ト ロールまたはウ ィ ン ド ウのサイズ変更が必要な場合もあ り ます。

4 コン ト ロール リスト ビューで dw_detail データウィンドウ コン ト ロールをクリ ックします。プロパティ ビューで [データ オブジェク ト] ボックスの隣の参照 ([...])ボタンをクリ ックします。

オブジェク ト選択ダイアログボッ クスが表示されます。

5 [アプリケーシ ョ ン ライブラリ]ボックスで「tutor_pb.pbl」を選択します。[データウィ ン ドウ] リス トボッ クスで 「d_product」 を選択して [OK]をクリ ックします。

ウ ィンド ウ ペインタに戻り ます。

d_product データウ ィ ンド ウ オブジェク ト と dw_detail データウ ィン ド ウ コン ト ロールが関連付けられます。 レイアウ ト ビューでは、 dw_detail コン ト ロール内に d_product データウ ィン ド ウ オブジェク トが表示されます。 d_product データウ ィ ンド ウ オブジェクトには、 「商品 ID」、 「商品名」、 「商品内容」、 「サイズ」、 「色」、 「在庫数」、 および 「単価」 とい う ラベルの付いた 7 つのカラムがあ ります。

必要であれば、 レイアウ ト ビューでデータウ ィ ンド ウ オブジェクト内のすべてのカラムを表示できるよ うに dw_detail コン ト ロールを拡大します。 また、 ウ ィンド ウを拡大するこ と もできます。

194 PowerBuilder

Page 207: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

アプリケーシ ョ ンの再実行

現在の学習個所マスター データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェクト のアタ ッ チ詳細データウィ ンド ウ コント ロールへのデータウィ ンド ウ オブジェ クトのアタ ッ チアプリ ケーショ ンの実行商品管理 ウィ ンド ウへのデータウィ ンド ウ オブジェ クト のアタ ッ チ

> アプリ ケーショ ンの再実行

このステップでは、 も う一度アプ リ ケーシ ョ ンを実行して、 商品管理ウ ィ ンド ウをテス ト します。

この時点で、商品管理 ウ ィ ンド ウには顧客情報 ウ ィンド ウのすべての機能が備わっています。 顧客情報ウ ィンド ウ と同様に、 商品管理 ウ ィンド ウは、 データベースに対する検索、 挿入、 更新、 および削除操作のサポート を提供するマスター / 詳細ウ ィンド ウ と して機能します。

1 パワーバーの [実行] ボタンをクリ ッ クします。

変更内容を保存するかど うかを問い合わせる メ ッセージ ボッ クスが表示されます。

2 [はい] をクリ ックします。

アプ リ ケーシ ョ ンが実行され、 ログイン ウ ィ ンド ウが表示されます。

3 [ユーザ ID] テキス トボックスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力して、 [OK] ボタンをク リ ッ クします。

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開きます。

4 メニュー バーから [ファイル|レポート|商品管理] を選択します。

商品管理ウ ィンド ウが表示されます。 上部のデータウ ィンド ウ コン ト ロールには Product テーブルから検索されたすべての行が表示されています。

PowerBuilder 入門 195

Page 208: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの再実行

下部のデータウ ィンド ウ コン ト ロールには、 上部のデータウ ィンド ウ コン ト ロールで選択された商品についての情報が表示されています。

5 メニュー バーの [編集|挿入] を選択します。

これで dw_detail データウ ィンド ウがク リ アされ、 新しい行がデータウ ィ ンド ウに追加できるよ うにな り ます。 カーソルが dw_detailコン ト ロールの [商品 ID] ボッ クスに置かれます。

6 下部のデータウィンドウのボックスに情報を入力して、新しい製品行を追加します。

ボッ クス間の移動には 〔Tab〕 を使用します。

7 メニュー バーの [編集|更新] を選択します。

これで ue_update イベン ト のス ク リ プ ト でコーディ ングされたとおりに、 新しい商品のデータがデータベースに送られ、 確認メ ッセージが表示されます。

新しい商品はまだ上部のデータウ ィ ン ド ウに表示されませんが、別の商品シート を開く と、 新しい情報が表示されます。 必要であれば、 更新ボタンの Clicked イベン ト にコード を追加して、 マスター データウ ィ ン ド ウ コン ト ロールでデータが自動的に更新されるよ うにできます。

196 PowerBuilder

Page 209: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

8 メ ッセージ ボックスで [OK] をクリ ッ クします。マスター データウィンドウで製品をクリ ックします。

その商品のデータが詳細データウ ィンド ウに表示されます。

9 商品の単価を変更します。メニュー バーの [編集|更新] を選択します。

これで変更した商品データがデータベースに送られ、 別の確認メ ッセージが表示されます。

10 メ ッセージ ボックスで [OK] をクリ ッ クします。マスター データウィンドウで別の商品を選択します。

その商品のデータが詳細データウ ィンド ウに表示されます。

11 メニュー バーの [編集|削除] を選択します。

データウ ィ ンド ウからはその商品がただちに削除されますが、 [編集] メニューの [更新] オプシ ョ ンを選択するまでデータベースからは削除されません。

12 メニュー バーから [ファイル|終了] を選択します。

アプリ ケーシ ョ ンが終了し、 ウ ィンド ウ ペインタに戻り ます。

13 ウィンドウ ペインタを閉じます。

PowerBuilder 入門 197

Page 210: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの再実行

198 PowerBuilder

Page 211: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 9 デバッガの実行

開発中のアプ リ ケーシ ョ ンが思ったとおりに動作しないこ とがあり ます。 適切な値が変数に割り当てられていない、 スク リプ トが間違っているなどの原因が考えられます。このよ うな場合、デバッグ モードで実行するこ とによって、 アプリ ケーシ ョ ンを調べることができます。

デバッグ モードでは、 ブレークポイン ト (ス ト ップ) をスク リプトおよび関数に挿入したり、コードをステップごとに実行したり、変数の内容を表示した り して、 実行中にエラーとなる論理エラーやエラー箇所を確認するこ とができます。 デバッグ モードでアプリ ケーシ ョ ンを実行する と、 ブレークポイン ト を設定したス ク リプ トの手前で実行が停止します。 この時点で、 変数の値を参照して変更できます。

このレッスンでは、 以下の項目について学習します。

• アプリ ケーショ ンのスク リ プト へのブレーク ポイント の追加

• デバッ グ モード でのアプリ ケーショ ンの実行

• ウォッ チと 条件ブレーク ポイント の設定

所要時間約 15 分

PowerBuilder 入門 199

Page 212: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加

アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加

現在の学習個所> アプリ ケーショ ンのスクリ プト へのブレークポイント の追加

デバッ グ モード でのアプリ ケーショ ンの実行ウォッ チと条件ブレークポイント の設定

このステップでは、 デバッガを開き、 ブレークポイン ト を追加して、ログイン ウ ィ ン ド ウおよび顧客情報ウ ィ ン ド ウの動作をテス ト します。 デバッグ モードでアプ リ ケーシ ョ ンを実行する と、 アプ リ ケーシ ョ ンはブレークポイン トが設定されている行を実行する直前で停止します。

スク リプ トにブレークポイン ト を挿入する と きは、 実行可能な文を含む行を選択する必要があ り ます。変数を宣言している行、 コ メ ン ト行、または空白行にブレークポイン ト を設定しよ う とする と、 ブレークポイン トは自動的に次の実行可能な行に設定されます。

1 パワーバーの [デバッグ] ボタンをクリ ックします。

デバッガが開きます。 デフォルトのビュー レイアウ トでは、 タブペインのスタ ッ クが 3 つあ り ます。 デバッグ ウ ィンド ウの左上にあるペインに、 ソース ビューが表示されています。

200 PowerBuilder

Page 213: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 9 デバッガの実行

デバッグ ウィンドウの表示が異なる場合以前にデバッグ ウ ィ ンド ウを開いて、 ビューを開いた り、 移動した り、 閉じた り した場合は、 この画面とは表示が異なる こ とがあり ます。デフォルトのビュー レイアウ ト構成に戻すには、メニューバーの [ビュー|レイアウ ト| ( デフォルト )] を選択します。

アプリ ケーシ ョ ンの Open イベン トのソース コードが、左上のソース ビューに表示されます。 表示されない場合は、 ソース ブラウザビ ューのツ リ ー ビ ューのアプ リ ケーシ ョ ン ノー ド を展開し、pbtutor アプ リ ケーシ ョ ンの下の Open イベン ト をダブルク リ ッ クします。

2 ソース ビューで、 次の代入文を含む行をダブルクリ ックします。

this.ToolBarSheetTitle = "MDI アプリケーシ ョ ン ツールバー "

PowerBuilder 入門 201

Page 214: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加

行の先頭に赤い記号が表示され、 その文にブレークポイン ト が設定されているこ とを示します。

3 ソース ブラウザ ビューで次のノードを展開します。ウィンドウ >w_welcome>cb_ok

ソース ブラウザ ビューには、 コーディングされたイベン トだけが一覧表示されます。 ログイン ウ ィンド ウの [OK] ボタンのイベントは Clicked イベン トだけです。

4 ソース ブラウザ ビューで cb_ok ボタンの Clicked イベン ト をダブルクリ ックします。

ソース ビューに Clicked イベン トのコードが表示されます。

5 次の行をダブルクリ ックします。

gnv_connect = CREATE & n_pbtutor_connectservice

行の先頭にブレークポイン ト を示す記号が表示されます。

202 PowerBuilder

Page 215: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 9 デバッガの実行

6 ソース ブラウザ ビューで w_master_detail_ancestor をダブルクリ ックします。dw_master、 続いて rowfocuschanged をダブルクリ ックします。

ソース ビューに、 dw_master データ ウ ィ ン ド ウ コン ト ロールのRowFocusChanged イベン トのスク リプ トが表示されます。

7 次の行をダブルクリ ッ クします。

IF dw_detail.Retrieve(ll_itemnum) = -1 THEN

行の先頭にブレークポイン ト を示す記号が表示されます。

8 右下のスタ ックの [ブレークポイン ト] タブを選択します。

ブレークポイン ト ビューに、 設定したブレークポイン トが表示されます。 このレ ッスンの作業を進めるには、 これらのブレークポイン トが正し く設定されている必要があ り ます。

余分なブレークポイン トがある場合余分なブレークポイン ト は、 ブレークポイン ト ビューのポップアップ メニューを使用して取り消すこ とができます。

PowerBuilder 入門 203

Page 216: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

デバッグ モードでのアプリケーシ ョ ンの実行

デバッグ モードでのアプリケーシ ョ ンの実行

現在の学習個所アプリ ケーショ ンのスクリ プト へのブレークポイント の追加

> デバッ グ モード でのアプリ ケーショ ンの実行ウォッ チと条件ブレークポイント の設定

このステップでは、 アプ リ ケーシ ョ ンをデバッグ モードで実行します。 コードを 1 行ずつ実行します。

ステップ実行ボタンについてアプ リ ケーシ ョ ンを 1 文ずつ実行するには、 [ステップ イン] または[ステップ オーバー] のいずれかを使用します。 次の文に関数の呼び出しが記述されていない場合は、 どちら も同じ結果になり ます。

[ステップ オーバー] は、 関数を単独の文と して実行する場合に使用します。

[ステップ イン] は、 関数の中に入って、 関数内の各文の結果を確認したい場合に使用します。関数内に [ステップ イン] した場合は、 [ステップアウ ト ] するこ とによって、 その関数の残りの部分を 1 ステップずつ実行できます。 [ステップ アウ ト ] する と、 その関数を呼び出したスク リプ トの次の文に制御が移り ます。

1 ペインタバー 1 の [開始] ボタンをクリ ックします。またはメニュー バーの [デバッグ|開始] を選択します。

アプ リ ケーシ ョ ンが起動して、 ブレークポイン トのある行まで実行されます。 こ こでは、 シート ウ ィンド ウのツールバー タイ トルの代入文の呼び出しまでです。

ブレークポイン ト のある行まで達する と、 アプ リ ケーシ ョ ンは停止してデバッグ ウ ィ ン ド ウに戻り ます。 黄色い矢印カーソルは、次に実行される文を指しています。

2 左下のスタ ックの [グローバル] タブをクリ ックします。

グローバル変数のビューが表示されます。

3 「transaction sqlca」 をダブルクリ ッ クします。dbms のプロパティ を表示します。

204 PowerBuilder

Page 217: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 9 デバッガの実行

dbms プロパティのデータ型は String 型です。ProfileString 関数が実行される前に中断されたので、 dbms プロパティには何も値があ りません。

4 次の文を実行するために、 ペインタバー 1 の [ステップ イン] ボタンをクリ ッ クします。またはメニュー バーの [デバッグ|ステップイン] を選択します。

アプリ ケーシ ョ ンが MDI フレーム ウ ィ ンド ウの Open イベン トの実行を開始します。

5 このフレーム ウィンドウの Open イベン トのスクリプ トで次の文に到達するまで [ステップ イン] または [ステップ オーバー] を使用してコードを実行します。

open(w_welcome)

このステート メン ト を実行し終える と、 ログイン ウ ィ ンド ウが表示され、 デバッグ ウ ィンド ウが 小化されます。

また、 このフレーム ウ ィ ン ド ウの Open イベン ト には、 ポス ト された ue_postopen 関数の呼び出しもあ り ます (確認せずに実行したもの)。 これがシート マネージャの関数を呼び出します。 これらの関数は Open イベン ト のス ク リプ トの 後で (ログイン ウ ィ ン ドウの表示後に) 処理されます。

6 ログイン ウィンドウが表示され、 デバッガが 小化されるまで、 [ステップ オーバー] をク リ ックします。ログイン ウィンドウの [ユーザ ID] ボックスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力して、 [OK] をクリ ックします。

PowerBuilder 入門 205

Page 218: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

デバッグ モードでのアプリケーシ ョ ンの実行

デバッグ ウ ィ ン ド ウに戻り ます。 ソース ビューの黄色い矢印は、次の実行可能な文である接続サービス オブジェク トの CREATE 文を指します。これが cb_ok コマンド ボタンの Clicked イベン トのスク リプ トで 初の実行可能な行です。

7 右下のスタ ックの [コール スタ ッ ク] タブを選択します。

コール スタ ッ ク ビューの黄色い矢印は、コール スタ ッ ク内での現在の位置を表します。 コール スタ ッ ク内の別の行をダブルク リ ックする と、 ソース ビューと変数ビューがその行のコンテキス ト を表示するよ うに変更され、 ソース ビューでは緑色の矢印がその行を示します。 次に、 コール スタ ッ ク内の別の行を 1 回ク リ ッ クする と、 コール スタ ッ ク ビューに緑色の矢印が表示され、 コンテキス ト が表示されている行を指します。 コードの実行を続ける と、ソース ビューと変数ビューが現在のコンテキス トに戻り ます。

8 [ステップ イン] ボタンをク リ ックします。

接続サービス オブジェク トの Constructor イベン トのスク リプ トに移動します。

9 [ステップ アウト] ボタンをク リ ックします。左下のスタ ックの [グローバル] タブをクリ ックします。も う一度、 Transaction オブジェク トのプロパティを確認します。

ステップ アウ ト を実行するこ とで、 Constructor イベン トから 1 ステップで抜けて、 [OK] ボタンの Clicked イベン トのスク リプ トに戻り ます。 DBMS プロパテ ィには値が入っていますが、 UserID、DBPass、 および DBParm プロパティには入っていません。

206 PowerBuilder

Page 219: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 9 デバッガの実行

これらの値は、接続サービス オブジェク トの Constructor イベン トの実行時に、 of_GetConnectionInfo 関数が INI ファ イルからの情報を返した後で代入されますが、 このチュート リ アルでは、 UserID、DBPass、および DBParm プロパティの行をコ メン ト アウ ト したので、 これらの値は取得されません。

10 左下のスタ ックで [ローカル] タブをクリ ッ クします。

Clicked スク リプ トのローカル変数にはまだ値が代入されていません。

11 [ステップ イン] ボタンを使用してローカル変数の 3 つの代入文を実行します。

それぞれの文を実行する と、 これらのローカル変数に代入された値が予想したものであるこ とを確認するこ とができます。

PowerBuilder 入門 207

Page 220: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

デバッグ モードでのアプリケーシ ョ ンの実行

12 左下のスタ ックの[グローバル] タブをも う一度クリ ックし、Transactionオブジェク ト を展開します。[ステップ イン]ボタンを使用して、Transaction オブジェク ト (SQLCA)をユーザが入力した値を用いてインスタンス化する 3 つの行を実行します。

それぞれの文を実行する と、 ログイン ウ ィンド ウで入力した値がTransaction オブジェ ク ト に代入されているかど うかを確認できます。 データベースへの接続は、 接続サービ ス オブジェ ク ト のof_Connect 関数を実行するまでは行われません。

13 ペインタバー 1 の [実行の継続] ボタンをクリ ックします。

[実行の継続] ボタンは、 実行を再開し、 次のブレークポイン ト まで処理を進めます。 データベースに接続し、 ログイン ウ ィ ンド ウが閉じ、 アプ リ ケーシ ョ ンの MDI フレームが表示されます。 アプリ ケーシ ョ ンはユーザからの入力を待機しています。

14 メニュー バーから [ファイル|レポート|顧客情報] を選択します。

アプ リ ケーシ ョ ンは、 RowFocusChanged イベン ト内の次のブレークポイン トが設定されている行まで実行されます。

データウ ィンド ウの RowFocusChanged イベン トは、 データウ ィンド ウが表示される前に発生します。 このため、 アプ リ ケーシ ョ ンの実行は顧客情報 ウ ィ ンド ウが開かれる前に停止します。

208 PowerBuilder

Page 221: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 9 デバッガの実行

ウォッチと条件ブレークポイン トの設定

現在の学習個所アプリ ケーショ ンのスクリ プト へのブレークポイント の追加デバッ グ モード でのアプリ ケーショ ンの実行

> ウォッ チと条件ブレークポイント の設定

このステップでは、 ユーザが顧客情報 ウ ィンド ウで行を選択する と値が変化する変数に、 ウォ ッチを設定します。 次に、 設定した単純なブレークポイン ト を、 変数が特定の値を持つ場合にのみ発生する条件ブレークポイン トに変更します。

1 右下のスタ ックで [ウォ ッチ] タブをクリ ッ クします。左下のスタ ックで [ローカル] タブをクリ ッ クします。ローカル ビューで ll_itemnum 変数を選択し、 ウォッチ ビューにドラッグします。

ll_itemnum 変数に、 検索された 初の顧客 ID の値である 101 がセッ ト されます。 ウォ ッチ ビューで ll_itemnum 変数を表示させると、その値の変化を簡単に調べるこ とができます。ウォ ッチ ビューには、 グローバル変数、 インスタンス変数、 および Parent 変数をド ラ ッグできるため、 種類の異なる変数の値を簡単に追跡することができます。

2 [実行の継続] ボタンをクリ ックします。

再びアプ リ ケーシ ョ ンが実行されます。 顧客情報ウ ィ ンド ウが表示されて、データベースから検索した顧客リ ス トが表示されます。詳細データウ ィンド ウには顧客 ID が 101 の顧客情報が表示されます。

3 顧客情報 ウィ ンド ウのマスター データウィ ンド ウで別の行を選択します。

デバッグ ウ ィンド ウに戻り ます。 ローカル変数ビューと ウォッチビューの両方で ll_itemnum の値が更新されます。

4 右下のスタ ックで [ブレークポイン ト] タブをクリ ッ クします。rowfocuschanged ブレークポイン ト をダブルクリ ックします。

ブレーク ポ イ ン ト の編集 ダ イ ア ロ グボ ッ ク スが表示されて、RowFocusChanged イベン ト 内のブレークポイン ト が選択されます。

PowerBuilder 入門 209

Page 222: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ウォッチと条件ブレークポイン トの設定

5 [条件] テキス トボックスに次の行を入力して [OK] ボタンをクリ ックします。

ll_itemnum = 107

RowFocusChanged イベン ト スク リプ ト内のブレークポイン トが条件ブレークポイン トに設定されます。 アプ リ ケーシ ョ ンの実行中にこのステート メ ン トに達し、かつ、 ll_itemnum の値が 107 である場合にのみ、 そのアプリ ケーシ ョ ンが停止します。

6 [OK] をクリ ッ クして、 ダイアログボックスを閉じます。[実行の継続] ボタンをクリ ッ クします。

再びアプ リ ケーシ ョ ンが実行されます。 顧客情報ウ ィ ン ド ウで別の行を選択する と、 顧客 ID が 107 の顧客を選んだ場合に限り、 ブレークポイン トに達した時点でデバッグ ウ ィンド ウが開きます。

顧客 ID が 107 の顧客情報を選択した場合は、 も う一度 [実行の継続] ボタンをク リ ッ ク して元のアプリ ケーシ ョ ンに戻り ます。

7 アプリケーシ ョ ンのメニュー バーから [ファイル|終了] を選択します。

アプ リ ケーシ ョ ンを終了して、 デバッグ ウ ィンド ウに戻り ます。

8 メニュー バーから [ファイル|閉じる] を選択します。

PowerBuilder の開発環境に戻り ます。

210 PowerBuilder

Page 223: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 1 0 例外処理

例外処理では、プログラムの実行中に発生したエラーを捕捉し、それらのエラーに関する情報をアプリ ケーシ ョ ン ユーザに提供します。 このレッスンでは、 ユーザ定義の例外オブジェ ク ト を作成する方法、 メ ソ ッ ド内で TRY-CATCH 文によって送出した例外を捕捉する方法について解説します。

このレッスンでは、 以下の項目について学習します。

• 既存のアプ リ ケーシ ョ ンへの新規のシート ウ ィンド ウの追加

• ユーザ定義の例外オブジェク トの作成

• 新規のユーザ関数とユーザ イベン トの作成

• メ ソ ッ ドの呼び出し と例外の捕捉

• アプ リ ケーシ ョ ンの実行

所要時間約 45 分

PowerBuilder 入門 211

Page 224: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

現在の学習個所> 既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

ユーザ定義の例外オブジェク トの作成新規のユーザ関数とユーザ イベン トの作成メソッ ドの呼び出しと例外の捕捉アプリケーシ ョ ンの実行

このレッスンでは、 メ インのチュート リ アル アプ リ ケーシ ョ ンに 3 つ目のシート ウ ィ ンド ウを追加します。そして、埋め込み SQL コマンドから返される値、およびアプリ ケーシ ョ ン ユーザがド ロ ップダウン リス ト ボッ クス コン ト ロールで選択した値に対して (パーセンテージを計算する といった) 決ま り きった操作を実行する関数を作成して呼び出します。

作成する関数のプロ ト タイプでユーザ定義の例外を発生させます。 コマン ド ボ タ ン コ ン ト ロールの Clicked イベン ト に記述されたTRY-CATCH ブロ ッ ク内でこの関数を呼び出します。 そして、 アプ リケーシ ョ ン コール スタ ッ クの上位に送出されたシステム例外と同じよ うに、 新規の関数によって送出されたユーザ定義の例外を捕捉するCATCH 句を Clicked イベン トに記述します。

さ らに、 新規のウ ィ ンド ウ シート を使用して、 選択した都道府県に住んでいる顧客のパーセンテージを計算します。 新規のシート ウ ィ ンドウに追加するコン ト ロールは以下のとおりです。

• 読み取り専用の結果を表示するためにプログラムで変更する 2 つのスタティ ッ ク テキス トボッ クス

• パーセンテージを計算する関数を呼び出すコマンドボタン

• 顧客の在住の都道府県を リ ス トする ド ロ ップダウン リ ス ト ボッ クス

• ユーザがド ロ ップダウン リ ス ト ボッ クスから選択した都道府県に住んでいる顧客のパーセンテージが表示されるテキス トボッ クス

既存のアプ リ ケーシ ョ ンに新規のシート ウ ィ ン ド ウを追加するには、以下の操作を行う必要があ り ます。

• シート ウ ィンド ウの作成

• メ イン アプリ ケーシ ョ ン フレームからシート ウ ィンド ウにアクセスできるよ うにする

212 PowerBuilder

Page 225: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

シート ウィンドウの作成

シート ウ ィンド ウは、w_pbtutor_basesheet ウ ィンド ウから継承します。このウ ィンド ウはシート ウ ィンド ウの基本ク ラスで、テンプレート アプリ ケーシ ョ ン ウ ィザードによって生成されたものです。 拡張レイヤウ ィ ン ド ウ w_master_detail_ancestor は、 変更を加えたために新規のシート ウ ィンド ウでは再利用できないので、 使用しません。

1 PowerBuilder メニューから [ファイル|継承] を選択します。PBTutor.PBL ライブラリ内の使用可能なウィンドウから w_pbtutor_basesheet を選択して、 [OK] をクリ ックします。

2 ウィンドウペインタにレイアウト ビューが表示されていることを確認して ください。[挿入|コン ト ロール|スタテ ィ ッ クテキス ト] を選択し、 レイアウ トビューの左上隅をクリ ッ クします。

3 プロパティ ビューで、 [テキスト] テキストボックスに入力されているデフォルトのテキスト を選択して、 次のように入力します。

1. ドロップダウン リストボックスで都道府県コードを選択または入力して ください。

4 テキス ト全体が収まるように、 またウィ ン ドウの右上にドロップダウンリス トボックス コン ト ロールを配置できるように、 コン ト ロールの幅とシート ウィンドウの幅を広げます。

シート ウ ィンド ウの幅は 2250 あれば十分です。

5 レイアウト ビュー内のスタテ ィ ック テキスト コン ト ロールを右クリ ックして、 ポップアップ メニューから [複製] を選択します。プロパティ ビューで、新規のスタティ ッ ク テキスト コン ト ロールの [テキスト]テキストボックスに入力されているデフォルトのテキスト を選択して、 次のように入力します。

2. [パーセンテージ] ボタンをクリ ックして く ださい。

PowerBuilder 入門 213

Page 226: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

6 [挿入|コン ト ロール|ドロップダウン リストボックス] を選択し、 レイアウト ビューの右上隅にあるスタテ ィ ッ ク テキス ト ボッ クスの右側をクリ ックします。

7 ドロップダウン リストボックスのプロパティ ビューで、 コン ト ロールの名前に 「ddlb_state」 と入力します。[編集可能] と [垂直スクロールバー ] の 2 つのチェ ッ クボックスをオンにします。

8 ペインタバーのコマンドボタンをクリ ックし、2 つのスタテ ィ ック テキスト ボックスの下をクリ ッ クします。プロパティ ビューで、 ボタン名に 「cb_percent」、 ボタンのテキストに「パーセンテージ」 と入力します。

9 [挿入|コン ト ロール|シングルラインエディ ッ ト] を選択して、 レイアウト ビューのコマンドボタンの下クリ ッ クします。プロパティ ビューで、 コン ト ロールの名前に 「sle_result」 と入力し、コン ト ロールのテキストに以下の説明文を入力します。

選択した都道府県に住んでいる顧客のパーセンテージを表示するテキストボックス

10 テキスト全体が収まるようにコン ト ロールの幅を広げます。

214 PowerBuilder

Page 227: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

11 どのコン ト ロールも選択されていないこと、 プロパティ ビューにシートウィンドウ プロパティが表示されていることを確認します。[タグ] プロパテ ィに 「都道府県に住んでいる顧客のパーセンテージ」 と入力します。

こ こで入力したテキス トは、 実行時にシート ウ ィ ンド ウのタイ トルと して表示されます。基本シートの ue_postopen イベン トのコードで、 タグのテキス トがシート ウ ィ ンド ウのタイ トルに割り当てられます。

12 PowerBuilder メニューから [ファイル|上書き保存] を選択します。アプリケーシ ョ ン ライブラリ と して PBTUTOR.PBL を選択し、新規ウィンドウ名に 「w_cust_pct」 と入力して、 [OK] をクリ ックします。

新規のシート ウ ィンド ウ とそのすべてのコン ト ロールを、 メ インのチュート リ アル ラ イブラ リに保存します。

メ イン アプリケーシ ョ ン フレームからシート ウィンドウにアクセスできるようにする

新規のシートはシート マネージャに登録します。

1 システム ツリーで w_pbtutor_frame をダブルクリ ッ クします。

2 ue_postopen イベン トがスクリプ ト ビューに表示されていない場合は、[イベン ト リス ト] タブを選択して、ue_postopen をダブルクリ ックします。

ue_postopen イベン ト スク リプ トが、スク リプ ト ビューに表示されます。

3 登録済みシート ウィンドウのリストに以下の行を入力します。

ls_sheets[3] = "w_cust_pct"

4 登録済みシート ウィンドウのリストの下に以下の行を入力します。

ls_display[3] = "都道府県に住んでいる顧客のパーセンテージ "

PowerBuilder 入門 215

Page 228: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

より良いコーディングの習慣シート ウ ィンド ウ と表示名を定義する 6 行のコードは、 次の 2 行のコードに短縮できます。

// シート ウィ ンドウと表示名を定義するstring ls_sheets[]={"w_customers", "w_products",&

"w_cust_pct"}

string ls_display[]={"顧客情報 ", &"商品管理 ", &

"都道府県に住んでいる顧客のパーセンテージ " }

5 [フ ァイル|上書き保存] を選択して、 w_pbtutor_frame ウィンドウを閉じます。

次回 pbtutor アプリ ケーシ ョ ンを実行する と、メ イン フレーム ウ ィンド ウの [ファ イル] メニューから新規のシート ウ ィ ンド ウを開く こ とができるはずです。 開発環境では新規のシート ウ ィンド ウを即実行できますが、 コンパイル済みアプ リ ケーシ ョ ンでも実行できるよ うにする必要があ り ます。

そのために、 シー ト マネージャの of_registersheet ス ク リ プ ト で、新規のシー ト ウ ィ ン ド ウをウ ィ ン ド ウ オブジェ ク ト と して参照します。 こ う して参照する こ とで、 コンパイ ラは、 このウ ィ ン ドウ オブジェク トがアプ リ ケーシ ョ ンで使用されているこ とを認識でき、 実行可能ファイルに含めるこ とができます。

コンパイル済みアプリ ケーシ ョ ンは、レッスン 11「アプ リ ケーシ ョン配布の準備」 で作成します。

6 システム ツリーで n_pbtutor_sheetmanager をダブルクリ ックします。

216 PowerBuilder

Page 229: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

7 [関数リス ト] タブを選択し、of_registersheet をダブルクリ ックします。

ス ク リプ ト ビューに、 of_registersheet 関数のスク リプ トが表示されます。

8 w_customers と w_products の各シート ウィンドウ変数を宣言している行の後に以下のように入力します。

w_cust_pct lw_sheet3

9 [上書き保存] を選択して、 ユーザ オブジェク トn_pbtutor_sheetmanager を閉じます。

PowerBuilder 入門 217

Page 230: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ユーザ定義の例外オブジェク トの作成

ユーザ定義の例外オブジェク トの作成

現在の学習個所既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

> ユーザ定義の例外オブジェク トの作成新規のユーザ関数とユーザ イベン トの作成メソッ ドの呼び出しと例外の捕捉アプリケーシ ョ ンの実行

こ こでは、 ユーザが w_cust_pct ウ ィ ン ド ウ上のコマン ドボタンを クリ ッ ク したと きに起動される関数から送出される 2 つのユーザ定義の例外オブジェ ク ト を作成します。 また、 w_cust_pct ウ ィ ン ド ウに追加したド ロ ップダウン リ ス ト ボッ クス コン ト ロールのユーザ イベン トから送出されるユーザ定義の例外オブジェク ト も作成します。

1 PowerBuilder メニューから [ファイル|新規作成] を選択し、 新規作成ダイアログボックスの [PB オブジェク ト] タブをクリ ックします。

2 [標準クラス] アイコンを選択して [OK] をクリ ックします。[データ型] リストボッ クスから 「throwable」 を選択して、 [OK] をクリ ックします。

新規例外オブジェ ク ト がユーザ オブジェ ク ト ペインタに表示されます。

3 プロパティ ビューの [テキスト] ボッ クスに以下のように入力します。

データベースに該当する行がありません。 ドロップダウン リス トボックスで都道府県コードを入力または選択した場合で、 データベースとの接続が切断されていなければ、 入力した都道府県に顧客が住んでいないか、 入力した都道府県コードが間違っています。

例外オブジェク トには、 テキス ト プロパティの取得および設定用メ ソ ッ ドが定義されていますが、 こ こではユーザ インタフェースに直接テキス ト プロパティ を設定します。

4 [フ ァイル|上書き保存] を選択して、 PBTUTOR.PBL アプリケーシ ョ ンライブラリを選択し、 新規のユーザ オブジェク ト名に 「exc_no_rows」と入力します。

5 [フ ァイル|閉じる] を選択します。

218 PowerBuilder

Page 231: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

6 以下のテキスト プロパティ値と例外オブジェク ト名を用いて手順 1 ~ 5を繰り返します。

7 以下のテキスト プロパティ値と例外オブジェク ト名を用いて手順 1 ~ 5を繰り返します。

プロパティ 値

テキス ト パーセンテージが低すぎます。この都道府県には

顧客が 1 人しかいません。 担当販売マネージャ

に連絡して ください。

例外オブジェク ト名 exc_low_number

プロパティ 値

テキス ト 都道府県名は 2 文字の都道府県コードで指定し

て く ださい。

例外オブジェク ト名 exc_bad_entry

PowerBuilder 入門 219

Page 232: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

新規のユーザ関数とユーザ イベン トの作成

新規のユーザ関数とユーザ イベン トの作成

現在の学習個所既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加ユーザ定義の例外オブジェク トの作成

> 新規のユーザ関数とユーザ イベン トの作成メソッ ドの呼び出しと例外の捕捉アプリケーシ ョ ンの実行

こ こでは、[パーセンテージ]コマンドボタンの Clicked イベン トによって起動される関数と、 w_cust_pct ウ ィンド ウのド ロ ップダウン リ ス トボッ クスからフォーカスが移動したと きに起動するイベン ト を追加します。 こ こで作成する関数は、 特定の都道府県に住む顧客のパーセンテージを計算します。 イベン トは、 ド ロ ップダウン リ ス ト ボッ クス コン ト ロールの現在値 (都道府県コード) を処理し、 長さが 2 文字かどうかを確認します。

1 ウィンドウペインタ内で w_cust_pct が開いていない場合はそれを開きます。ウィンドウペインタのメニューで [挿入|関数] を選択します。

プロ ト タイプ ウ ィンド ウにスク リプ ト ビューが表示されます。 スク リ プ ト ビ ューの 初のド ロ ップダウン リ ス ト ボ ッ ク スには「(Functions)」 が、 2 番目のリ ス トボッ クスには 「( 新規関数 )」 が表示されます。

2 戻り値の型と して 「decimal」 を選択し、 関数名に 「uf_percentage」と入力します。

3 第 1 引数の型として 「integer」 を選択し、 第 1 引数名に「ai_custbystate」 と入力します。

4 プロ ト タイプ ウィンドウ内のどこかで右クリ ックして、 ポップアップ メニューの [パラメータの追加] を選択します。

5 第 2 引数の型として 「integer」 を選択して、 第 2 引数名に「ai_totalcust」 と入力します。

6 [Throws] ボッ クスで 「exc_no_rows,exc_low_number」 と入力します。

220 PowerBuilder

Page 233: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

7 以下のスクリプト を新規関数に入力します。

Decimal my_resultexc_no_rows le_nrexc_low_number le_ex

/* パラ メータと して渡された 2 つの整数を処理する。 初の整数が 0 または 1 の場合は、 例外をインスタンス化して送出する。 それ以外の場合は、 パーセンテージを小数点以下第一位まで計算して返す。 2 番目の整数が 0 の場合は、計算中に、実行時のゼロによる除算例外を捕捉して再送出する。 */CHOOSE CASE ai_custbystateCASE 0

le_nr = create exc_no_rowsthrow le_nr

CASE 1le_ex = create exc_low_numberthrow le_ex

CASE ELSETRY

my_result= (ai_custbystate/ai_totalcust) *100

CATCH (dividebyzeroerror le_zero)throw le_zero

End TRYEND CHOOSEreturn truncate (my_result,1)

後述するコマンドボタンの Clicked イベン ト スク リプ トでは、2 つの整数を引数と して uf_percentage 関数を呼び出し、 戻り値を処理します。

次に、 ユーザが入力した都道府県コードがちょ う ど 2 文字でない場合に exc_bad_entry 例外オブジェク ト を送出する、 ド ロ ップダウン リ ス ト ボッ クスのユーザ イベン ト を追加します。

8 スクリプ ト ビューの 初のドロップダウン リストボックスで「ddlb_state」 を、 2 番目のドロップダウン リス トボックスで 「( 新規イベン ト )」 を選択します。

9 戻り値の型と して 「integer」 を選択し、 イベン ト名に 「ue_modified」と入力します。引数の型として 「string」 を選択し、 引数名に 「as_statecode」 と入力します。「exc_bad_entry」 を [Throws] ボッ クスに入力するか、 システム ツリーから [Throws] ボックスにドラ ッグします。

PowerBuilder 入門 221

Page 234: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

新規のユーザ関数とユーザ イベン トの作成

イベン ト ID は、 「None」 であるこ とに注意して ください。 イベント ID は、Throws 句にユーザ定義の例外オブジェク ト を含まないプロ ト タイプを定義します。

10 新規の ue_modified のスクリプ ト を以下のように入力します。

exc_bad_entry le_ex

// ドロップダウン リストボッ クスに入力されている// テキストの長さが 2 文字であることを確認し、//2 文字でなければ exc_bad_entry 例外オブジェク ト// をインスタンス化して送出するIF len (this.text)<>2 Then

le_ex = create exc_bad_entrythrow le_ex

END IFReturn 1

次に、 ue_modified イベン ト と uf_percentage 関数を呼び出して、 これらのメ ソ ッ ドによって送出された例外を捕捉します。

222 PowerBuilder

Page 235: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

メ ソ ッ ドの呼び出しと例外の捕捉

現在の学習個所既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加ユーザ定義の例外オブジェク トの作成新規のユーザ関数とユーザ イベン トの作成

> メ ソ ッ ドの呼び出しと例外の捕捉アプリケーシ ョ ンの実行

こ こでは、 都道府県コードを EAS Demo DB データベースの customer表から取得して、ド ロ ップダウン リ ス ト ボッ クス コン ト ロールに設定するコードを記述します。 このコン ト ロールは編集可能にしてあるため、 都道府県コードの値をアプリ ケーシ ョ ン ユーザが入力するこ と もできます。 ユーザが入力した値を処理する前に、 入力値が ue_modifiedイベン トに設定した条件を満たしているかど うか、 すなわち長さが 2文字であるかど うかを確認します。

また、 コマンドボタン コン ト ロールの Clicked イベン トに、 ド ロ ップダウン リ ス ト ボッ ク ス コン ト ロールに入力されている都道府県コードを処理するコードを追加します。Clicked イベン トでは、uf_percentage関数を呼び出して、 選択されている都道府県に住んでいる顧客のパーセンテージを計算し、 同関数によって送出されるすべての例外を捕捉します。

1 ウィ ンド ウペインタ内に w_cust_pct が開いていること、スクリプト ビューの 初のドロップダウン リス トボックスに ddlb_state が表示されていることを確認します。

2 2 番目のドロップダウン リス トボッ クスから「losefocus ( ) returnslong [pbm_cbnkillfocus]」 を選択します。

3 losefocus イベン ト スクリプ トでは、ue_modified イベン ト を呼び出し、そのイベン トによって送出される例外オブジェク ト を捕捉します。コードは以下のようになります。

Try this.EVENT ue_modified (this.text)

Catch (exc_bad_entry le_be)

messagebox ("exc_bad_entry から ", & le_be.getmessage ())

End Try

return 1

PowerBuilder 入門 223

Page 236: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

メ ソ ッ ドの呼び出しと例外の捕捉

4 ddlb_state コン ト ロールのスクリプト ビュー プロ ト タイプ ウィンドウの 2 番目のド ロ ップダウン リス トボッ クスから 「constructor ( )returns long [pbm_constructor]」 を選択します。

5 Constructor イベント に以下のコード を入力して、 ド ロッ プダウン リストボックス コン ト ロールに設定します。

int li_nrows, nstring ls_state

//customer テーブルに存在する//すべての都道府県の数を取得するSELECT count (distinct state) INTO :li_nrows FROM customer;

//customer テーブル内のすべての都道府県を選択する//SQL カーソルを宣言する。 ただし、//同じ都道府県を含む 2 つ以上の行を重複して選択しないDECLARE custstatecursor CURSOR FOR SELECT state FROM customerGROUP BY state HAVING count (state) =1UNION SELECT state FROM customerGROUP BY stateHAVING count (state) >1;OPEN custstatecursor ;

//customer テーブル内の各都道府県につき 1 つのエン ト リを// コン ト ロールに設定するFOR n=1 TO li_nrows

FETCH NEXT custstatecursor INTO :ls_state;this.additem (ls_state)

NEXTCLOSE custstatecursor ;

6 スクリプ ト ビューの 初のドロップダウン リス トから 「cb_percent」 を選択します。2 番目のド ロップダウン リス トボッ クスに 「clicked ( ) returnslong [pbm_bnclicked]」 が表示されていることを確認します。

7 Clicked イベン ト スクリプ トに以下のコードを入力します。

Decimal my_resultDouble entry_1, entry_2Int li_int, li_rtnString sel_state

sel_state=ddlb_state.text

//選択した都道府県に住む顧客の行数を取得し、

224 PowerBuilder

Page 237: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

//entry_1 変数に格納する。// この数字を、 初の// スタテ ィ ック コン ト ロールに表示するSELECT count (*) INTO :entry_1 FROM customer

WHERE customer.state=:sel_state;

st_1.text="選択した都道府県に住む顧客数 : " + string (entry_1)

//entry_2 変数に格納されている//総顧客数を取得する。// この数字を 2 番目のスタテ ィ ック コン ト ロールに表示するSELECT count(*) INTO :entry_2 FROM customer;

st_2.text="総顧客数 : " &+ string(entry_2)

//uf_percentage 関数を呼び出し、 例外を捕捉するTRY

my_result = uf_percentage (entry_1, entry_2)CATCH (exc_no_rows e_nr )

MessageBox("exc_no_rows から ", &e_nr.getmessage())

CATCH (exc_low_number e_ln )li_int=1

MessageBox("exc_low_number から ", & e_ln.getmessage())

CATCH (dividebyzeroerror e_zero)

li_rtn = MessageBox("顧客なし ", &" アプリケーシ ョ ンを終了しますか ?", Stopsign!,

YesNo!)IF li_rtn=1 THEN

HALTEND IF

END TRY

// テキストボックス内のメ ッセージを表示する。//選択した都道府県に住んでいる顧客が 1 人しかいないのか、//2 人以上いるのかによって、// メ ッセージの内容を変えるIF li_int=1 THEN

sle_result.text = sel_state + &

" に住んでいる顧客は 1 人です。 " + & " 別の都道府県を選択して ください。 "

ELSEsle_result.text = String (my_result) + &

" % の顧客が " + sel_state + & " に住んでいます。 "

END IF

PowerBuilder 入門 225

Page 238: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

アプリケーシ ョ ンの実行

現在の学習個所既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加ユーザ定義の例外オブジェク トの作成新規のユーザ関数とユーザ イベン トの作成メソッ ドの呼び出しと例外の捕捉

> アプリケーシ ョ ンの実行

こ こまでで、 アプ リ ケーシ ョ ンを実行して、 選択した都道府県に住んでいる顧客のパーセンテージを計算する準備ができました。

こ こでは記述したスク リプ トの例外条件をテス ト しますが、「ゼロによる除算」 エラー条件をテス トするには、 データベース内の顧客数を故意にゼロに設定する必要があ り ます。 そのために、 シート ウ ィンド ウにチェ ッ クボッ クスを追加し、 そのチェッ クボッ クスがオンの場合は顧客数をゼロに設定するよ うにします。

こ こでは次の作業を行います。

• 新規のシート ウ ィンド ウのテス ト

• ゼロによる除算エラーのテス トの追加

新規のシート ウィンドウのテスト

1 パワーバーの [実行] ボタンをクリ ックします。

変更内容を保存するかど うかを問い合わせる メ ッセージ ボッ クスが表示されたら、 [はい] をク リ ッ ク します。

2 [ユーザ ID] ボックスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力して、 [OK] ボタンをク リ ッ クします。

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開きます。

3 メニュー バーから [ファイル|レポート|都道府県に住んでいる顧客のパーセンテージ] を選択します。

226 PowerBuilder

Page 239: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

都道府県に住んでいる顧客のパーセンテージ ウ ィ ンド ウが表示されます。

4 都道府県に住んでいる顧客のパーセンテージ シート ウィンドウのドロップダウン リストボックスで 「AM」 を選択または入力して、 [パーセンテージ] ボタンをクリ ッ クします。

青森県に顧客が 1 人 し か い な い た め、 ユ ーザ定義の例外exc_low_number が発生します。この例外が発行したメ ッセージが、[パーセンテージ]ボタンの Clicked イベン ト スク リプ トの CATCH句に定義されたメ ッセージ ボッ クスに表示されます。

5 [OK] をク リ ックして、 メ ッセージ ボックスを閉じます。

スタテ ィ ッ ク テキス トボッ クス内のテキス トに、 青森県在住の顧客の数とデータベースに登録されている顧客の総数が表示されます。 編集可能なテキス ト ボッ ク スに、 パーセンテージが計算されなかったため、 別の都道府県を選択するよ うに促すテキス トが表示されます。

PowerBuilder 入門 227

Page 240: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

6 都道府県に住んでいる顧客のパーセンテージ シート ウィンドウのドロップダウン リス トボッ クスで 「KG」 を選択または入力して、 [パーセンテージ] ボタンをクリ ックします。

検索結果から、 神奈川県在住の顧客は 15 人存在し、 データベースに登録されている全顧客の 11.8% を占める こ とがわか り ます。データベースを変更する とパーセンテージが変わり ます。

7 ドロップダウン リストボッ クスに 「Ohio」 と入力して、 [パーセンテージ] ボタンをクリ ックします。

[パーセンテージ] ボタンをク リ ッ ク してド ロ ップダウン リ ス トボッ クスからフォーカスを移動する と、LoseFocus イベン トが発生し ます。 このイベン ト によ り ue_modified イベン ト が起動され、ユーザ定義の例外 exc_bad_entry が発生します。ド ロ ップダウン リス ト ボッ クスで 2 文字の都道府県コードを選択するよ うに指示する例外メ ッセージが表示されます。

8 [OK] をクリ ッ クしてメ ッ セージ ボッ クスを閉じ、ド ロッ プダウン リストボックスに「US」 と入力して、[パーセンテージ]ボタンをクリ ックします。

US とい う都道府県コード を持つ行はデータベース内に見つからないため、 exc_no_rows 例外が発生します。該当する行が返されなかったこ と と、 その理由を示すメ ッセージが表示されます。 よ り堅牢なアプ リ ケーシ ョ ンにしたい場合は、 入力されたテキス ト を都道府県コードの リ ス ト と照合して US が都道府県コードではないこ と を知らせる exc_bad_entry 例外を発生させる と よいでし ょう。

9 [OK] をクリ ッ クして、 メ ッセージ ボックスを閉じます。

228 PowerBuilder

Page 241: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

10 ウィンドウ システム ト レイにある EAS Demo DB を表すデータベースアイコンを右クリ ッ クし、 ポップアップ メニューの [終了] を選択します。 警告メ ッセージ ボックスが表示されたら [はい] をクリ ックします。

データベース アイ コンは、 赤と黄色の SQL シンボルです。 EASDemo DB データベース との接続が切断されます。

11 ドロップダウン リストボックスで再度「AM」を選択または入力して、[パーセンテージ] ボタンをクリ ッ クします。

データベース との接続が切断されているため、exc_no_rows 例外オブジェク トのメ ッセージが表示されます。結果を取得し直すには、アプ リ ケーシ ョ ンを終了して再起動する必要があ り ます。 アプ リケーシ ョ ンを再起動する と、 実行時環境でデータベース との接続が再確立されます。

12 [OK] をク リ ックしてメ ッセージボックスを閉じ、 アプリケーシ ョ ン メニューから [ファイル|終了] を選択して開発環境に戻ります。

開発環境ではデータベース接続がオープンされたままの状態になっているこ とがあ り ます。 その場合は、 データベース ペインタを使用してデータベース との接続を切断し、 デザイン時環境で再接続します。

ゼロによる除算エラーのテストの追加

こ こでは、w_cust_pct ウ ィンド ウにチェッ クボッ クスを追加します。そして、 このチェ ッ クボッ クスがオンのと き、 ゼロによる除算エラーを強制的に発生させるコードを記述します。 このテス トにはインスタンス化されたチェ ッ クボッ クス オブジェク トが必要なので、 新しいコードを、 Null オブジェク トのエラーをチェッ クする TRY-CATCH 文で囲みます。

1 レイアウト ビューで w_pct_cust ウィンドウが開いていることを確認します。ウィンドウペインタのメニューで[挿入|コン ト ロール|チェ ックボックス] を選択します。

2 [パーセンテージ] コマンドボタンの右側をクリ ックします。

3 プロパティ ビューの [名前] ボックスに、 「cbx_zero」 と入力します。[テキス ト] ボックスに、 「ゼロによる除算のテスト」 と入力します。

PowerBuilder 入門 229

Page 242: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

4 [関数リスト] タブをク リ ッ クします。uf_percentage 関数をダブルクリ ッ クします。

5 CHOOSE CASE 文の上に以下のコードを入力します

//分母にゼロを設定してエラー条件をテストする。//分子は何でもよいが、 ユーザ定義の例外が発生しないようにするTRYIF cbx_zero.checked=TRUE THEN

ai_totalcust=0ai_custbystate=2

END IFCATCH (nullobjecterror e_no)

MessageBox ("Null オブジェク ト ", "不正なテストです。")END TRY

Null オブジェク ト エラーのテストこのレッスンを終えたら、DESTROY cbx_zero という 1 行を TRY 文の上に追加して、 Null オブジェク ト エラーのテス トができます。

6 パワーバーの [実行] ボタンをクリ ックします。

変更内容を保存するかど うかを問い合わせる メ ッセージ ボッ クスが表示されたら、 [はい] をク リ ッ ク します。

7 [ユーザ ID] ボックスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力して、 [OK] ボタンをク リ ッ クします。

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開きます。

8 メニュー バーから [ファイル|レポート|都道府県に住んでいる顧客のパーセンテージ] を選択します。ドロップダウン リス トボッ クスから都道府県コードを選択します。

230 PowerBuilder

Page 243: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 10 例外処理

9 [ゼロによる除算のテスト] チェ ックボックスをオンにします。

10 [パーセンテージ] ボタンをクリ ックします。

パーセンテージの計算中にゼロによる除算エラーが発生し、 [パーセンテージ] ボタンの Clicked イベン ト によって捕捉されます。CATCH 句に記述したこのエラーのメ ッセージボッ ク スが表示されます。

11 [いいえ] をクリ ックしてアプリケーシ ョ ンの実行を継続します。別の都道府県コードを選択しチェ ッ クボッ クスをオフにしてアプリケーシ ョ ンのテスト を続行します。

チェ ッ クボッ ク スがオンのまま [パーセンテージ] ボタンを再度ク リ ッ ク し、エラー メ ッセージボッ クスで [はい] を選択する と、アプ リ ケーシ ョ ンが閉じ、 開発環境に戻り ます。

12 テスト を終了したらアプリケーシ ョ ンを閉じます。

PowerBuilder 入門 231

Page 244: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

アプリケーシ ョ ンの実行

232 PowerBuilder

Page 245: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 1 1 アプリケーシ ョ ン配布の準備

このレッスンでは、 アプ リ ケーシ ョ ンの実行ファ イル (EXE ファイル) を作成します。 作成した実行ファ イルは、 エンドユーザがWindows のほかのアプリ ケーシ ョ ン (たとえば、Microsoft Excel やWord for Windows など) と同じよ うに実行できます。

このレッスンでは、 以下の項目について学習します。

• プロジェク ト オブジェク ト の作成

• 実行ファ イルの作成

• ショ ート カッ ト の作成

• 実行ファ イルのテスト

所要時間約 10 分

PowerBuilder 入門 233

Page 246: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

プロジェク ト オブジェク トの作成

プロジェク ト オブジェク トの作成

現在の学習個所> プロジェ クト オブジェ クト の作成

実行ファ イルの作成ショ ート カッ ト の作成実行ファ イルのテスト

このステップでは、 PBTUTOR プロジェク ト オブジェク ト を作成します。 プロジェク ト オブジェク トは、 アプリ ケーシ ョ ンの実行ファイルを作成するのに使用できます。

マシン コードについて PowerBuilder Enterprise 版を実行している場合は、 プロジェ ク ト実行ファ イルのコンパイル方式と して Pcode (疑似コード) とマシン コードのいずれかを選択できます。 ただし、 チュート リ アル アプ リ ケーシ ョ ンには Try-Catch 文が含まれているため、 コンパイル方式と してマシン コードを選択するこ とはできません。

アプ リ ケーシ ョ ンをユーザに配布する と きは、 ループ、 浮動小数点または整数演算、 関数呼び出しなどの計算で実行速度を上げるためにマシン コードを使用してもよいでし ょ う。 しかし、 アプ リ ケーシ ョ ンの開発の際は、 通常は Pcode を使用した方が高速にコードを生成できます。

動的ライブラリについて また、 アプ リ ケーシ ョ ンに動的ラ イブラ リ を作成するこ と もできます。 動的ライブラ リはアプ リ ケーシ ョ ンで使用するオブジェク ト を格納するのに使用できます。 動的ライブラ リ を使用するこ とによ り、 アプ リ ケーシ ョ ンを管理しやすいよ うに小さなユニッ トに分割して、 実行ファ イルのサイズを小さ くするこ とができます。

このチュート リ アルで作成しているアプ リ ケーシ ョ ンのよ う な小さいアプ リ ケーシ ョ ンの場合は、 動的ライブラ リ を使用する必要はあ り ません。

1 パワーバーの [新規作成] ボタンをクリ ックします。新規作成 ダイアログボックスの [プロジェク ト] タブをク リ ックします。

2 [アプリケーシ ョ ン ウィザード] アイコンを選択して [OK] をクリ ックします。

234 PowerBuilder

Page 247: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 11 アプリケーシ ョン配布の準備

プロジェク ト ペインタの使い方[プロジェク ト ] ページで、 [アプ リ ケーシ ョ ン ウ ィザード] アイコンではな く [アプ リ ケーシ ョ ン] アイコンをク リ ッ ク した場合は、 プロジェク ト ペインタが開きます。 プロジェク ト ペインタでもウ ィザードの場合と同様に値を選択できますが、 ウ ィザードの場合は、 ウ ィザードからの指示に従って必要な情報を入力することができます。

3 [次へ] をクリ ックします。

[格納先ライブラ リの指定] ページが表示されます。

4 まだ選択していない場合は、 [アプリケーシ ョ ン ライブラリ] リス トボックスで 「pbtutor.pbl」 を選択します。[構築オプシ ョ ンの指定] ページが表示されるまで [次へ] をク リ ッ クします。

以下のデフォルト値が選択されたプロジェク トが生成されます。

5 [構築オプシ ョ ンの指定] で [インクリ メンタル構築] を選択します。[バージ ョ ン情報の指定] ページが表示されるまで [次へ] を ク リ ックします。

以下のデフォルト値が選択されたプロジェク トが生成されます。

6 必要であれば、独自のバージ ョ ン情報を [バージ ョ ン情報の設定] ページに入力します。

このページの情報を変更しない場合、 実行ファ イルのプロパテ ィを Windows エクスプローラで参照したと きにデフォルト値が表示されます。

ウィザードのプロパティ デフォルト値

プロジェク ト名 p_pbtutor_exe

実行可能ファイル名 pbtutor.exeリ ソース ファ イル (オプシ ョ ン) なし

ウィザードのプロパティ デフォルト値

マシンコードの生成 いいえ、 マシン コードで生成しません

動的ライブラ リの作成 チェッ クなし

PowerBuilder 入門 235

Page 248: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

プロジェク ト オブジェク トの作成

7 [次へ] をク リ ックします。[アプリケーシ ョ ンの作成準備完了] ページの情報を確認します。[完了] ボタンをクリ ックします。

アプ リ ケーシ ョ ンのプロジェク ト オブジェク トが作成され、 プロジェク ト ペインタのワークスペースに表示されます。

プロジェ ク ト を定義し終えたら、 アプ リ ケーシ ョ ンの実行ファ イルは簡単に作成できます。 プロジェ ク ト を使用する と、 頻繁に再構築する動的ライブラ リ を含むアプ リ ケーシ ョ ンの場合に作業時間を短縮できます。 インク リ メ ンタル構築を選択する と、 いくつか変更を加えた場合に、 変更されたファ イルのみ、 または変更されたファ イルに依存するファ イルのみを再構築するこ とで、 すばやくプロジェク ト を再構築できます。

236 PowerBuilder

Page 249: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 11 アプリケーシ ョン配布の準備

実行ファイルの作成

現在の学習個所プロジェ クト オブジェ クト の作成

> 実行ファイルの作成ショ ート カッ ト の作成実行ファイルのテスト

このステップでは、 アプ リ ケーシ ョ ンの実行ファ イルを作成します。作成する実行ファ イルには、 アプ リ ケーシ ョ ンのすべてのオブジェクト の定義が格納されます。 このチュー ト リ アル アプ リ ケーシ ョ ンでは、 プロジェ ク ト に独立した リ ソース ファ イルを含めなかったので、ログイン ウ ィンド ウで使用するビッ トマップ ファ イルが含まれます。

プロジェク ト ペインタでも実行ファ イルを作成できますが、 通常は、一度プロジェク トの定義を終えたら、 プロジェク ト ペインタを再度開く必要はあ り ません。

システム ツ リーのワークスペースおよびターゲッ トでは、 ポップアップ メニュー項目に [インク リ メンタル構築]、 [フル構築]、および [配布] があ り、 これらを使用する と、 ターゲッ ト内またはワークスペース全体の中のプロジェ ク トの一部または全部を構築および配布できます。 [インク リ メンタル構築] および [フル構築] を選択する と、 コードがコンパイルされます。 [配布] を選択する と、 コードがコンパイルされ、 このチュート リ アルで構築したよ う なアプ リ ケーシ ョ ンの場合は、 実行ファ イルとオプシ ョ ンの動的ライブラ リが作成されます。 そのほかのプロジェク ト (サーバ コンポーネン ト プロジェク ト など) の場合は、 [配布] を選択する と、 サーバへのコンポーネン トおよびサポート ファ イルの配布も行われます。

このレ ッ スンでは、 プロパテ ィ シー ト について説明します。 プロパテ ィ シー ト では、 構築と配布のオプシ ョ ンを指定し、 そしてパワーバーから実行ファイルを作成します。

1 プロジェク ト ペインタを閉じます。変更内容を保存するかどうかを確認するメ ッセージが表示されたら、 [はい] をクリ ッ クします。

2 システム ツリーで pbtutor ターゲッ ト を右クリ ックします。[プロパテ ィ] を選択し、 [配布] タブを選択します。

PowerBuilder 入門 237

Page 250: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

実行ファイルの作成

このページには、 このターゲッ ト内のすべてのプロジェ ク ト (現在は 1 つだけ) が表示されます。 ターゲッ ト内に複数のプロジェク ト がある場合は、 実行される順序の変更、 および構築するプロジェク トの選択ができます。

3 p_pbtutor_exe をチェ ッ クしたままで [キャンセル] ボタンをクリ ックします。システム ツリーで MyWorkspace を右クリ ッ クします。[プロパテ ィ] を選択し、 [配布プレビュー] タブを選択します。

[配布プレビュー] タブページには、 ワークスペース内のすべてのターゲッ ト、 および配布対象と して選択された各ターゲッ ト内のプロジェ ク トが、 配布される順序で表示されます。 このページでは何も変更できません。 ワークスペースの配布オプシ ョ ンを希望どおりに設定したこ と を確認するためのページです。 このページに表示されるすべてのプロジェ ク トは、 パワーバーの [配布] ボタンをク リ ッ クする と配布されます。

このワークスペースにはターゲッ ト とプロジェ ク ト がそれぞれ 1つあるだけなので、 [配布] ボタンを使用して実行ファイルを作成できます。

4 [キャンセル] ボタンをクリ ッ クして、 プロパテ ィ シートを閉じます。パワーバーの [配布] ボタンをクリ ックします。

実行ファ イルの作成には多少時間がかかり ます。 実行ファ イルを作成している間は、 画面下部の出力ウ ィ ン ド ウで処理の状況を確認するこ とができます。

配布のプロセスを中止したい場合は、 パワーバーの [中止] ボタンをク リ ッ ク します。 配布が完了する と、 出力ウ ィ ン ド ウに 「終了 ワークスペースの配布 MyWorkspace」 と表示されます。

238 PowerBuilder

Page 251: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 11 アプリケーシ ョン配布の準備

シ ョート カッ トの作成

現在の学習個所プロジェ クト オブジェ クト の作成実行ファイルの作成

> ショ ート カッ ト の作成実行ファイルのテスト

このステップでは、 実行ファ イルのシ ョート カッ ト を作成します。 アイコンは、 実行ファ イルを開くためのシ ョート カッ ト と して動作します。 シ ョート カッ トは、 直接デスク ト ップへ、 または選択したプログラム グループに追加できます。

1 [ 小化] ボタンをクリ ックして、 PowerBuilder を 小化します。

PowerBuilder が 小化され、 タスクバーにアイコン表示されます。

2 デスク ト ップの空白領域でマウスの右ボタンをクリ ッ クします。ポップアップ メニューから [新規作成|ショート カッ ト] を選択します。

シ ョート カッ トの作成 ダイアログボッ クスが表示されます。

3 [コマンド ライン] テキストボックスに、 EXE ファイルへのパスをドライブ名から入力します。

たとえば、PowerBuilder のインス トール先がデフォルトのフォルダの場合は、 次のよ うに入力します。

C:¥Program Files¥Sybase¥PowerBuilder 9.0¥Tutorial¥pbtutor.exe

また、 [参照] ボタンをク リ ッ ク して pbtutor.exe を探すこ と もできます。

4 [次へ] をクリ ックします。

5 [シ ョート カ ッ トの名前を指定して く ださい] テキストボックスに「PowerCap 営業支援システム」 と入力します。

6 [完了] ボタンをクリ ックします。

デスク ト ップ上に、 シ ョー ト カッ ト のアイコン とその名前が表示されます。

PowerBuilder 入門 239

Page 252: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ショート カッ トの作成

アプ リ ケーシ ョ ンを実行できるよ うに、 そのシ ョー ト カッ ト のプロパティ を修正します。 また、 アイコンを変更するこ と もできます。

7 デスク ト ップ上の [PowerCap 営業支援システム] アイコンを右クリ ックします。ポップアップ メニューで [プロパテ ィ] を選択します。

デスク ト ップ シ ョー ト カッ ト のプロパテ ィ シー ト が表示されます。

8 [シ ョート カッ ト] タブを選択します。[作業フォルダ] ボッ クスに Powersoft の共有モジュール フォルダへのパスを入力します。[OK] をクリ ッ クします。

共有モジュールの格納場所についてPowerBuilder をインス トールする と、 各 DLL ファ イルが共有ディレク ト リ にインス トールされます。 デフォルト のインス トール先は 「C:¥Program Files¥Sybase¥Shared¥PowerBuilder」 です。

ユーザが実行ファ イルをダブルク リ ッ ク してアプ リ ケーシ ョ ンを実行できるよ うにするには、 システム環境パスに共有ディ レク トリの場所を含める必要があ り ます。

240 PowerBuilder

Page 253: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 11 アプリケーシ ョン配布の準備

実行ファイルのテスト

現在の学習個所プロジェ クト オブジェ クト の作成実行ファイルの作成ショ ート カッ ト の作成

> 実行ファイルのテスト

このステップでは、 新し く作成した実行ファイルをテス ト します。

1 pbtutor.ini ファイルが実行ファイル pbtutor.exe と同じディ レク ト リに格納されていることを確認します。

2 チュート リアル アプリケーシ ョ ンのアイコンをダブルクリ ックします。

アプリ ケーシ ョ ンの実行が開始されます。

3 アプリケーシ ョ ンをテスト します。顧客情報に加えた変更に注意して ください。

4 アプリケーシ ョ ンのテスト を終えたら、[フ ァイル|終了] を選択します。

次のステップについてお疲れさまでした。 これでチュート リ アルの第 1 部と第 2 部が終了しました。 このチュート リ アルでは PowerBuilder でのアプリ ケーシ ョ ン構築の基本的な方法を学習しました。 PowerBuilder Enterprise 版を使用する開発者の場合は、 Web ターゲッ トのレッスンに進むこ とができます。

このマニュアルの冒頭の 「本書について」 には、 PowerBuilder の各マニュアルについての説明が記載されています。 さ らに高度な開発技術を学習するには、 以下のマニュアルに進んでください。

『ユーザーズ ガイ ド』『アプ リ ケーシ ョ ン テクニッ ク』『データウ ィンド ウ プログラマーズ ガイ ド』

PowerBuilder 入門 241

Page 254: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

次のステップについて

242 PowerBuilder

Page 255: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 3 部 Web アプリケーシ ョ ンの構築

第 3 部は、 PowerDynamo Web ターゲッ トの使用方法を示したチュート リアルです。簡単な Web アプリケーシ ョンの作成方法を手順を追って説明します。

Page 256: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加
Page 257: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 1 2 Web ページの作成

PowerBuilder の Web ターゲッ ト を使用する と、 Web ページ、 スクリプ ト 、 マルチメディア、 画像、 およびさまざまなソースのデータへのリ ンクを格納するワークスペース内で Web サイ ト を開発できます。

このレッスンでは、 以下の項目について学習します。

• PowerDynamo Web サイ ト の作成

• 基本 Web ページの作成と 修正

• ページ ナビゲーショ ンの追加

• 検証と リ ダイレク ト を行う ログイン ページの作成

• スタート ページの指定

• Web サイ ト の配布と 実行

所要時間約 40 分

このチュート リアルを開始する前にインストールが必要なもの Web ターゲッ ト チュート リ アルでは、ローカル マシンに以下のソ

フ ト ウェアがインス トールされている必要があ り ます。

• EAServer 4.2 以降

• PowerDynamo 3.6 以降

• Internet Explorer 6.0 以降

Jaguar Manager でサーバの設定を変更すれば、 PowerDynamo サーバを EAServer に組み込んで実行する こ と もでき ますが、 このチュート リ アルでは、 PowerDynamo Personal Web Server を独立したプロセス と して実行します。

PowerBuilder 入門 245

Page 258: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

このチュート リアルを開始する前に

このチュート リアルに必要なファイルの入手

Web ターゲッ ト チュート リ アルでは、 第 2 部で作成したいくつかのファ イルを使用する必要があ り ます。

第 2 部を 近学習した場合 必要なファ イルはすでに用意できているはずです。 開始す る 前に、 myworkspace.pbw、 pbtutor.pbt、 pbtutor.pbl、tshirtw.jpg、 tutor_pb.pbl、 および Tutorial.ico ファ イルが Tutorial ディレク ト リにあるこ とを確認して ください。

第 3 部だけを学習する場合 必要なファイルは Solutions ディ レク ト リに入っています。 開始する前に、 myworkspace.pbw、 pbtutor.pbt、 およびpbtutor.pbl をご自分の Tutorial ディレク ト リにコピーして ください。

246 PowerBuilder

Page 259: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

PowerDynamo Web サイ トの作成

現在の学習個所> PowerDynamo Web サイト の作成

基本 Web ページの作成と修正ページ ナビゲーショ ンの追加検証とリ ダイレクト を行う ログイン ページの作成スタート ページの指定Web サイト の配布と実行

PowerDynamo Web サイ トは、 HTML ドキュ メン トやデータを作成、格納、 管理、 およびアクセスできるファ イルまたはデータベース リ ポジト リです。PowerDynamo を使用する と、Web ページにサーバ サイ ドの命令を埋め込むこ とができます。 Web ク ラ イアン トが、 そのページを表示した りそのページと対話したりする と、この命令が処理されます。

PowerDynamo は、動的な Web コンテンツを生成するアプリ ケーシ ョ ンサーバです。 データベースから情報を検索した り、 検索結果を見やすい形式に整えて Web サーバに返したり します。 また、 開発時に使用する Personal Web サーバも提供します。

PowerDynamo に配布する と、配布構成によって HTML ページが処理され、 アプ リ ケーシ ョ ン サーバが使用する書式との互換性がと られます。 HTML 要素のリ ンクが更新され、 実際の配布ファ イル構造が反映されます。 この処理には、 以下のものが含まれます。

• サーバ スク リプ ト内で使用される Web ターゲッ ト オブジェク トと、アプ リ ケーシ ョ ン サーバ上のオブジェク トおよびメ ソ ッ ド (オブジェク ト モデル) とのマッピング

• HTML エディ タ内のサーバ スク リプ ト用の区切り記号 (<% と %>) を PowerDynamo スク リプ ト用の区切り記号 (<!--SCRIPT と -->) と置換

1 PowerBuilder で [ファイル|ワークスペースを開く ] を選択し、Tutorialフォルダに移動します。 MyWorkspace.pbw を選択し、 [開 く ] をクリ ッ クします。

初のチュート リ アルを 近学習した場合は、 このワークスペースがすでに開いている可能性があ り ます。 初のチュート リ アルを 近学習していないため、 MyWorkspace.pbw が見つからない場合は、27 ページの 「チュート リ アルのセッ ト アップ」の手順に従ってください。

PowerBuilder 入門 247

Page 260: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

PowerDynamo Web サイ トの作成

2 パワーバーの [新規作成] ボタンをクリ ックします。新規作成 ダイアログボックスの [ターゲッ ト] タブをクリ ックし、[PowerDynamo Web サイ ト] を選択します。[OK] をクリ ッ クします。

PowerDynamo Web サイ ト ウ ィザードの紹介ページが表示されます。

3 [次へ] をク リ ックします。

[ターゲッ トの場所とフォルダの選択ウ ィザード] ページが表示されます。 Web ターゲッ トのデフォルト名は Target1 です。

4 Target1.pbt のかわりに 「Customer.pbt」 と入力します。

5 [HTTP サーバ情報の指定] ページが表示されるまで [次へ] をクリ ックします。

以下の項目についてデフォルトの設定をそのまま使用します。

6 [HTTP サーバ情報の指定] ページの [HTTP サーバ名] に 「localhost」と入力します。 デフォルト ポート番号の 80 を使用します。

localhost という指定は、 作成する Web サイ ト をローカル マシン上に置く こ とを意味します。

統合サーバの使用EAServer に統合されている PowerDynamo Web サーバを使用する場合は、HTTP リ スナ用に HTTP サーバ名とポート番号を選択する必要があ り ます。デフォルトでは、ご使用のマシン名が HTTP サーバ名になり、 ポート番号は 8080 にな り ます。

ウィザード オプシ ョ ン デフォルト

[URL 接頭辞マッピング] /Customer

[ODBC データ ソース名] Customer[新しいローカル データベース ファ イル名]

Customer.db

[ユーザ ID] および [パスワード] dba と ***[Web サイ トへ PowerDynamo ヘルプ ファ イルとサンプルをロードする]

チェ ッ クなし

[配布構成の名前] および [説明] CustomerDeployConfiguration1配布構成

248 PowerBuilder

Page 261: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

7 [PowerDynamo Web サイ ト の作成準備完了] ページが表示されるまで[次へ] をクリ ックします。

以下の項目についてデフォルトの設定をそのまま使用します。

デフォルトの Web ターゲッ ト オブジェク ト モデルを使用する と、1 つのソースから複数のサーバ プラ ッ ト フォームに配布でき るサーバ サイ ド ロジッ クを記述できます。 配布エンジンによって、これらのターゲッ ト プラ ッ ト フォームに適した構文にソースが変換されます。

8 [PowerDynamo Web サイ ト の作成準備完了] ページの選択内容を確認します。 [完了] をクリ ックして選択内容を受け入れます。

Customer ターゲ ッ ト、 フ ァ イルを格納するディ レ ク ト リ 構造、Adaptive Server Anywhere データベースを使用する PowerDynamoWeb サイ ト、 および配布構成が作成されます。 システム ツ リーでMyWorkspace を展開すると 、新規の Web ターゲッ ト である Customerがその下に置かれているこ とがわかり ます。

ウィザード オプシ ョ ン デフォルト

[オブジェク トモデル]

[デフォルトのオブジェク ト モデルを使用する]

[デバッグを有効にする]

チェ ッ クなし

[配布対象] [すべて配布または、 配布しない]

[再構築] [Incremental][コピー フォルダ] Program Files¥Sybase¥PowerBuilder 9.0¥Tutorial

¥Customer¥CustomerDeployConfiguration1

PowerBuilder 入門 249

Page 262: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

基本 Web ページの作成と修正

基本 Web ページの作成と修正

現在の学習個所 PowerDynamo Web サイト の作成> 基本 Web ページの作成と修正

ページ ナビゲーショ ンの追加検証とリ ダイレクト を行う ログイン ページの作成スタート ページの指定Web サイト の配布と実行

このレッスンでは、 ウェルカム ページを作成し、 そのページのルッ クアンド フ ィールを修正します。 すべての機能がこの時点で追加されるわけではあ り ません。実際に使用できる Web サイ ト を非常に簡単に作成できるこ とを示すこ とが目的です。

• 4GL を用いた Web ページの作成

• フォント の変更

• グラフィ ッ ク の追加

• グラフィ ッ ク への絶対位置の追加

4GL を用いた Web ページの作成

このレッ スンでは、 Welcome.htm ページを作成します。 このページから、 このチュート リ アルで作成するその他のページにアクセスできます。 4GL Web/JSP ページ ウ ィザードを使用して、 このウェルカム ページを作成します。 4GL 機能を使用する と、 ユーザ主導の動的なコンテンツを持つページを簡単に開発できます。

4GL Web ページは、 拡張 Web ターゲッ ト オブジェク ト モデルが組み込まれた高度な Web ページです。この拡張モデルによって、(Web ページを変更せずに Web ページのコンテンツの一部を変更する) 動的 Webページのテンプレート (ソース) ファ イルを作成できます。 4GL Webページは、オブジェク ト モデルに基づいて、データ転送、HTML 生成、およびサーバ スク リプ トの JavaScript 生成を処理します。

250 PowerBuilder

Page 263: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

1 Customer ターゲッ ト アイコンを右クリ ッ クし、 [新規作成] を選択します。 新規作成 ダイアログボックスで [Web] タブをクリ ックします。

Web ページを作成する ウ ィ ザー ド は、 Quick Web/JSP ページ、Web/JSP ページ、 4GL Web/JSP ページ、 Web/JSP データウ ィンド ウページ、 およびフレームセッ ト ページの 5 つから選択できます。このチュート リ アルでは、 Web/JSP ページ、 4GL Web/JSP ページ、および Web/JSP データウ ィ ン ド ウ ページ ウ ィザードを使用します。

ターゲッ ト名の確認ターゲッ ト ウ ィザードによって作成されたターゲッ トは、 新規作成 ダイアログボッ クス下部の [ターゲッ ト ] リ ス ト ボッ クスに追加されます。 作成した Customer ターゲッ トが表示されます。

2 [4GL Web/JSP ページ] アイコンをダブルクリ ッ クします。

3 [次へ] をクリ ックします。[タイ トル] テキストボックスにタイ トルの 「Welcome」 を入力し、〔Tab〕を押します。

[フ ァ イル名] テキス ト ボッ ク スのファ イル名は、 デフォル ト でWelcome.htm にな り ます。

4 [背景属性の指定] ページが表示されるまで [次へ] をクリ ックします。[背景の色] に 「Yellow」 を指定します。

5 [ページ パラメータの定義] ページが表示されるまで [次へ] をク リ ックし、 ウィザードのデフォルト を受け入れていきます。[パラ メータ名]に「ID」と入力し、[デフォルト値]を空白のままにします。 [次へ] をクリ ックします。

PowerBuilder 入門 251

Page 264: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

基本 Web ページの作成と修正

6 [EAServer コンポーネン トのスキップ] チェ ッ クボックスをオンにします。

EAServer 情報は、 次のレッスンで追加します。

7 [次へ] をク リ ックします。 [完了] ボタンをクリ ックします。

新規の Web ページが作成され、ページ編集ビューに表示されます。ファ イル名は Welcome.htm です。

8 ページ編集ビューで、 デフォルト テキストの 「ここにデータを置きます」を選択します。 「PowerCAP 営業支援システム」 と入力します。

このチュー ト リ アルでは、 Web ページに対するすべての変更をページ編集ビューで行います。同じ変更を HTML ソース ビューで行うには HTML の知識が必要です。

9 メニュー バーから[ファイル|保存]を選択して、変更内容を保存します。

252 PowerBuilder

Page 265: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

フォン トの変更

HTML エディ タで Web ページの見た目を変更するのは簡単です。

1 テキストの末尾にカーソルを置き、 〔Enter〕 を押します。テキスト 「PowerCap 営業支援システム」 の中にカーソルを置きます。ポップアップメニューから「段落プロパティ 」を右クリッ クして選択します。

2 [インライン スタイル] タブをクリ ックします。 [インライン] を選択し、 [編集] ボタンをクリ ックしてから、 [フォン ト]タブをクリ ッ クします。

3 [使用できるフォン ト] リス ト をスクロールして、 「MS ゴシック」 フォント を選択します。矢印ボタンをクリ ッ クして 「MS ゴシック」 を [選択されたフォン ト] リス トボッ クスに移動します。

4 [フォン ト サイズ] で [単位を指定] ラジオボタンをクリ ックします。「20」 と入力し、[単位を指定] ラジオボタンの横のボックスから 「pt (ポイン ト サイズ)」 を選択します。 [色] ドロップダウン リス トボックスから 「Red」 を選択します。

5 [背景] タブをクリ ックしてから、[相対] ラジオボタンをクリ ックします。[横方向の位置] と [縦方向の位置] の下のドロップダウン リストボックスから 「center」 を選択します。[背景色] の横のドロップダウン リス トボックスから 「Blue」 を選択します。

6 [OK] を 2 回クリ ッ クします。

フォン トの変更内容がテキス トに適用されます。

ページ編集ビュー ポップアップ メニューの 「非表示タグを表示」がチェ ッ ク されている場合だけ、 段落タグが表示されます。 ページ編集ビ ュー内のページを右ク リ ッ ク して、 ポ ップア ッ プ メニューを表示します。

7 メニュー バーから [ファイル|保存] を選択します。

PowerBuilder 入門 253

Page 266: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

基本 Web ページの作成と修正

グラフ ィ ッ クの追加

このステップでは、 ウェルカム ページに画像ファイルを追加します。

1 システム ツリーで Customer ターゲッ ト を右クリ ックします。 ポップアップ メニューで [新規フォルダ] をクリ ックします。

2 フォルダ名に 「Graphics」 と入力し、 〔Enter〕 を押します。

3 Graphics フォルダを右クリ ックし、[フ ァイルのインポート] を選択します。 [フ ァイルの種類] ドロップダウン リストボッ クスから 「すべてのファイル」 を選択します。

4 Tutorial フォルダに移動し、 ファイルの種類として 「画像ファイル」 を選択します。tshirtw.jpg を選択し、 [開く ] をクリ ックします。

この画像ファイルが Graphics フォルダにコピーされます。

5 Welcome.htm ページの中をクリ ックします。PowerCap タイ トルの下の段落にカーソルを置きます。〔Enter〕 を押して、 タイ トルの下にスペースを追加します。

6 PowerCap タイ トルの下の段落に再びカーソルを置きます。メニュー バーの [挿入|画像] を選択します。

7 [画像ファイル] テキストボックスの横の参照 ([...]) ボタンをクリ ックします。

8 URL の選択 ダイアログボックスの[ターゲッ ト]ページの Graphics フォルダを展開します。

254 PowerBuilder

Page 267: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

9 このフォルダからファイル名 「tshirtw.jpg」 を選択します。

10 URL の選択 ダイアログボックスで [OK] をクリ ッ クし、画像プロパティダイアログボックスでも [OK] をクリ ックします。

白い T シャツ (tshirtw.jpg) の画像がウェルカム ページに表示されます。

グラフ ィ ックへの絶対位置の追加

このステップでは、 ページ上の特定の位置に画像を固定します。 絶対位置を使用する と、 画面サイズに関係なく、 ページ上にグラフ ィ ッ クを表示する位置を固定できます。

1 T シャツのグラフ ィ ックを右クリ ックします。ポップアップ メニューで [位置|絶対位置を使用] を選択します。

2 見出しの下にあるグラフ ィ ッ クをド ラ ッグして、青いバーの下の中央に揃えます。

PowerBuilder 入門 255

Page 268: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

基本 Web ページの作成と修正

3 [プレビュー] タブをク リ ックし、配布時のページの見た目を確認します。

4 メニュー バーから [ファイル|保存] を選択します。

256 PowerBuilder

Page 269: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

ページ ナビゲーシ ョ ンの追加

現在の学習個所 PowerDynamo Web サイト の作成 基本 Web ページの作成と修正

> ページ ナビゲーショ ンの追加 検証と リ ダイレクト を行う ログイン ページの作成 スタート ページの指定 Web サイト の配布と実行

このレッスンでは、商品情報を表示する新規の Web ページを追加します。 さ らに、 この新規ページにアクセスするハイパーリ ンクをウェルカム ページに追加します。 後に、 新規の商品情報を追加できる Webページまで 終的に移動するボタンを新規ページに追加します。 そのほかの機能をこの Web ページへ追加する作業は、後のレッスンで行います。

• 商品情報の Web ページの作成

• ハイパーリ ンク の追加

• ボタンの追加

商品情報の Web ページの作成

このステップでは、商品情報を表示および追加する Web ページを作成します。 この新規の Web ページには、ウェルカム ページからアクセスします。 この新規のページは 4GL ウ ィザードを使用しな くても作成できますが、4GL Web ページを使用する と、サーバ サイ ド スク リプ ト機能が埋め込まれ、 データベース情報に容易にアクセスできるよ うになり ます。

1 システム ツリーで Customer ターゲッ ト を右クリ ッ クします。ポップアップ メニューから [新規作成] を選択します。

2 [4GL Web/JSP ページ]アイコンをクリ ックし、[OK]をクリ ックします。

4GL Web ページ ウ ィザードについてページが表示されます。

3 [次へ] をクリ ックします。[タイ トル] テキストボックスにタイ トルの 「Product」 を入力し、〔Tab〕を押します。

PowerBuilder 入門 257

Page 270: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ページ ナビゲーシ ョ ンの追加

[フ ァ イル名] テキス ト ボッ ク スのフ ァ イル名は、 デフォル ト でProduct.htm にな り ます。

4 [ページ パラ メータの定義] ページが表示されるまで [次へ] をクリ ックします (ウィザードのデフォルトを受け入れていきます)。[パラ メータ名]に「ID」と入力し、[デフォルト値]を空白のままにします。 [次へ] をク リ ックします。

[EAServer プロファ イルの選択] ページが表示されます。

5 [EAServer コンポーネン トのスキップ] チェ ッ クボックスをオンにします。

6 [次へ] をク リ ックします。ページ プロパティのまとめを確認し、 [完了] をク リ ックします。

Product.htm ページがページ編集ビューに表示されます。

7 デフォルト テキストの 「ここにデータを置きます」 をハイライ ト表示します。 「商品情報」 と入力します。〔Enter〕 を押します。

8 [フ ァイル|保存] を選択して、 これまでの変更内容を保存します。

ハイパーリンクの追加

このステップでは、商品 Web ページにアクセスするハイパーリ ンクをウェルカム ページに追加します。

1 ウェルカム ページ (Welcome.htm) を表示します。「PowerCap 営業支援システム」 の 2 つ下の段落の中にカーソルを置き、〔Enter〕 を 2 回押します。

258 PowerBuilder

Page 271: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

2 メニュー バーから [書式|ハイパーリンク] を選択します。

ハイパーリ ンク プロパティ ダイアログボッ クスが表示されます。

3 [リンク文字列] テキストボックスに 「商品情報を表示 」 と入力します。 [行先] テキス トボックスの横の参照 ([...]) ボタンをクリ ッ クします。

URL の選択 ダイアログボッ クスが開き、Customer ターゲッ ト内ですでに作成された Web ページが表示されます。

4 「Product.htm」 を選択し、 [OK] をクリ ックします。

5 [OK] を再度クリ ックして Web ページにハイパーリンクを追加します。

下線付きのハイパーリ ンク 「商品情報を表示」 がウェルカム ページに表示されます。

6 メニュー バーから [ファイル|保存] を選択します。ウェルカム ページを閉じます。

ボタンの追加

このステップでは、 商品ページにボタンを追加します。 ボタンは Webページ上での一般的なナビゲーシ ョ ン ツールです。 このチュート リ アルの後の方では、 ナビゲーシ ョ ン ロジッ クをこのボタンに追加します。

PowerBuilder 入門 259

Page 272: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

ページ ナビゲーシ ョ ンの追加

1 商品ページ (Product.htm) を表示します。 「商品情報」 の見出しの下の段落にカーソルを置きます。

2 メニュー バーから [挿入|フォーム フ ィールド|コマンドボタン] を選択します。

Button プロパティ ダイアログボッ クスが表示されます。

3 [ボタンの種類] ドロップダウン リストから 「Button」 を選択します。[名前] テキストボックスに 「cb_addproduct」 と入力します。[ラベル] テキストボックスに 「商品の追加」 と入力します。

4 [OK] をクリ ッ クします。

Product.htm ページにボタンが表示されます。

次のレッスンではこのボタンを Web ページに接続します。

5 メニュー バーから [ファイル|保存] を選択します。

6 商品ページを閉じます。

260 PowerBuilder

Page 273: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

検証と リダイレク ト を行うログイン ページの作成

現在の学習個所PowerDynamo Web サイト の作成基本 Web ページの作成と修正ページ ナビゲーショ ンの追加

> 検証とリ ダイレクト を行う ログイン ページの作成スタート ページの指定Web サイト の配布と実行

このステップでは、 4GL 機能を持つ ログイン Web ページ (Login.htm)を追加します。 このログイン ページは単純な設計です。 このチュートリ アルでは、 サーバ サイ ドの検証スク リプ トによってユーザ名とパスワードが同じかど うか判別されます。 これは検証ロジッ クによって判別されます。 本番アプ リ ケーシ ョ ンでは、 よ り高度な検証ロジッ クを使用します。

ログイン情報が入力条件則を満たしたら、 サーバ リ ダイレク ト を追加してウェルカム ページに移動します。

ユーザ名とパスワードはセッシ ョ ン変数と して保存されます。 このセッシ ョ ン変数は、 Web セッシ ョ ン全体にわたって有効とな り ます。

この練習では以下の操作を行います。

• 基本ログイン ページの作成

• セッ ショ ン変数の追加

• シングル ラ イン テキスト コント ロールの追加

• パスワード の検証の追加

• サーバ リ ダイレク ト の追加

PowerBuilder 入門 261

Page 274: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

検証と リダイレク ト を行うログイン ページの作成

基本ログイン ページの作成

まず、 4GL ウ ィザードを使用してログイン ページを作成します。

1 Customer ターゲッ ト を選択した状態で、 メ ニュー バーから [ファイル|新規作成] を選択します。[Web] タブをクリ ックします。

2 [4GL Web/JSP ページ] アイコンをクリ ックします。[OK] をクリ ッ クします。

[4GL Web ページ ウ ィザードについて] ページが表示されます。

3 [次へ] をク リ ックします。[タイ トル] テキス トボッ クスにタイ トルの 「Login」 を入力し、 〔Tab〕を押します。

[フ ァ イル名] テキス ト ボッ ク スのフ ァ イル名は、 デフォル ト でLogin.htm になり ます。

4 [ページ パラ メータの定義] ページが表示されるまで [次へ] をクリ ックします (ウィザードのデフォルトを受け入れていきます)。

5 [パラ メータ名]に「ID」と入力し、[デフォルト値]を空白のままにします。 [次へ] をク リ ックします。

[EAServer プロファ イルの選択] ページが表示されます。

6 [EAServer コンポーネン トのスキップ] チェ ッ クボックスをオンにします。

7 [次へ] をク リ ックします。ページ プロパティのまとめを確認し、 [完了] をク リ ックします。

Login.htm ページがページ編集ビューに表示されます。

8 メニュー バーから [ファイル|保存] を選択します。

262 PowerBuilder

Page 275: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

セッシ ョ ン変数の追加

セッシ ョ ン変数では、ユーザ ログイン情報や、ユーザのブラウザ セッシ ョ ン中に Web アプ リ ケーシ ョ ン内すべてのページで利用したいそのほかのデータを追跡できます。

1 ページ編集ビューで、 デフォルト テキストの 「ここにデータを置きます」をハイライ ト表示します。 このハイライ ト表示したテキスト を、 次のテキストで置き換えます。

ログインして ください

2 〔Enter〕 を押します。新しい行に、以下のテキストを入力し、各行の末尾で〔Enter〕 を押します。

名前

パスワード

3 Login.htm ページを右クリ ックして、 ポップアップ メニューから [ページ プロパティ] を選択します。[変数] タブをクリ ックします。

4 [変数名]の下でクリ ックし、も う一度クリ ッ クし、新規の変数名を「user」と入力します。

5 〔Tab〕 を押して [ライフタイム] カラムに移動し、 ドロップダウン リストボッ クスから 「session」 を選択します。 〔Tab〕 を押して [クライアン トアクセス] カラムに移動し、 ドロップダウン リストボックスから 「Read/Write」 を選択します。

6 [変数名] カラム内の user の下でクリ ックし、 も う一度クリ ックし、 新規の変数名を 「pswd」 と入力します。

PowerBuilder 入門 263

Page 276: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

検証と リダイレク ト を行うログイン ページの作成

7 〔Tab〕 を押して [ライフタイム] カラムに移動し、 ドロップダウン リストボックスから 「session」 を選択します。 〔Tab〕 を押して [クライアン トアクセス] カラムに移動し、 ドロップダウン リス トボッ クスから 「Read/Write」 を選択します。

8 [OK] をクリ ッ クします。

これでユーザ ログイン情報のための 2 つのセッシ ョ ン変数が定義されました。

シングル ライン テキスト コン ト ロールの追加

テキス ト コン ト ロールは、サーバ スク リプ トによって操作できる特殊なテキス ト フ ィールドです。 ク ライアン トはこのテキス トの値を変更できません。 これは 4GL Web ページでのみ使用可能です。

1 Login.htm ページで、名前という文字の後にカーソルを置き、スペースを2 つ入力します。メニュー バーから [挿入|フォーム フ ィールド|シングルラインテキスト] を選択します。

テキス ト コン ト ロール プロパテ ィ ダイアログボッ クスが表示されます。

2 [名前] テキストボックスに 「sle_user」 と入力し、 [サーバに処理を記述する] チェ ックボックスがオンになっていることを確認します。

264 PowerBuilder

Page 277: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

3 [バインド] タブをクリ ックします。 [コ ンポーネン ト 名] ド ロ ッ プダウン リ ス ト ボ ッ クスから 「SessionVariable」 を選択します。 [プロパテ ィ名] ドロップダウン リス トボッ クスから 「user」 を選択して、 [OK] をク リ ックします。

名前という テキス トの後にテキス ト ボッ クスが挿入されます。

4 ページ編集ビューで、 パスワード という文字の後にカーソルを置き、 スペースを 2 つ入力します。 [挿入|フォーム フ ィールド|シングルラインテキスト] を選択します。

5 [名前] テキス トボックスに 「sle_pswd」 と入力します。[パスワード] チェ ックボックスをオンにします。[サーバに処理を記述する] チェ ックボックスがオンになっていることを確認します。

[パスワード] チェ ッ クボッ クスをオンにする と、 ユーザが入力したパスワードがアスタ リ ス クで表示されます。 テキス ト ボッ クスを Web ページに追加した後でこの機能を追加するこ とはできません。

6 [バインド] タブをクリ ックします。 [コ ンポーネン ト名] ド ロ ッ プダウン リス ト ボッ クスから 「<SessionVariable>」 を選択します。[プロパテ ィ名] ドロップダウン リス トボッ クスから 「pswd」 を選択して、 [OK] をク リ ックします。

パスワード とい う テキス トの後にテキス ト ボッ ク スが挿入されます。

7 メニュー バーから [ファイル|保存] を選択します。

PowerBuilder 入門 265

Page 278: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

検証と リダイレク ト を行うログイン ページの作成

パスワードの検証の追加

検証にはク ラ イアン ト サイ ド またはサーバ サイ ドのス ク リプ ト を使用できます。 この練習では、 サーバ サイ ド ス ク リ プ ト を使用して、ユーザが入力したユーザ名が、 ユーザが入力したパスワード と同じかど う かを判別します。 この検証用コードはあ く まで例です。 通常は、ユーザ名とパスワードをデータベース と照合して検証します。

次のレッスンでは、 ログインが完了した後にウェルカム ページを表示するコードを追加します。ユーザ名とパスワードが一致しない場合は、再試行するよ うユーザに依頼するエラー メ ッセージを表示します。

1 ログイン ページ上で [パスワード] テキス トボックスの下の段落にカーソルを置き、 〔Enter〕 を押します。 メニュー バーから [挿入|フォーム フ ィールド|コマンドボタン] を選択します。

Button プロパティ ダイアログボッ クスが表示されます。

2 [ボタンの種類]ドロップダウン リス トボッ クスで「Button」を選択します。 [名前] テキストボックスに 「cb_login」 と入力します。[ラベル] テキストボックスに 「ログイン」 と入力します。

4GL Web ページでは、 送信 (Submit) ボタンの種類と標準ボタンの種類 (ボタン) は同じ よ うに機能し、 どちらにも ク ラ イアン トサイ ドの onclick イベン ト とサーバ サイ ドの Server Action イベントがあ り ます。

3 [OK] をクリ ッ クします。

[パスワード] テキス トボッ クスの下に新しい [ログイン] ボタンが表示されます。

266 PowerBuilder

Page 279: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

4 ページ編集ビュー下部のスクリプト エディ タの 初のドロップダウン リストボッ クスで、 「cb_login」 を選択します。

5 中央のドロップダウン リストボックスをスクロールして、「ServerAction()」 を選択します。

サーバ サイ ド イベン トは青い文字で表示されます。

6 スクリプ ト エディ タに以下のように入力します。

if (sle_user.value == sle_pswd.value){user = sle_user.value;pswd = sle_pswd.value;

このスク リプ トは、 ユーザ名とパスワードが同じかど うかを判別し、 同じであれば、 ク ラ イアン トが入力したユーザ名とパスワードを、 セッシ ョ ン変数に代入します。

7 〔Enter〕 を押します。今入力したスクリプ トの下に、 次のコ メン ト行を入力します。

// リダイレク ト をここに追加する

リ ダイレク ト呼び出しの追加は、 このチュー ト リ アルの次のレッスンで行います。

8 〔Enter〕 を 2 回押します。次の else 文を入力してエラー メ ッセージを追加します。

} else {

psPage.Alert ("ユーザ名とパスワードは無効です。 再入力してください ") ;

}

9 ペインタバーの [保存] ボタンをクリ ッ クします。

PowerBuilder 入門 267

Page 280: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

検証と リダイレク ト を行うログイン ページの作成

サーバ リダイレク トの追加

大部分の 4GL Web ページは、サーバ リ ダイレク トによってほかのページに移動します。 サーバ リ ダイレク トは、 ページ間を移動する方法としてはもっと も柔軟性の高いものです。

サーバ リ ダイレク トが使用されるのは、 ほかのページに渡されるパラメータ値がユーザ入力に依存する場合、 またはユーザ入力を検証したい場合です。 このステップでは、 ターゲッ ト ページ (ウェルカム ページ) の指定およびログイン ページのユーザ入力値の検証を行うサーバスク リプ ト を含めるよ うに、 4GL ログイン ページを変更します。

1 Login.htm ページ下部のスクリプト エディ タで、 コメ ント 行 「// リダイレク ト をここに追加する」 の 2 行下にカーソルを置きます。右クリ ッ ク し、 ポップアップ メニューから [リダイレク トの挿入] を選択します。

リ ダイレク ト プロパティ ダイアログボッ クスが表示されます。

2 [ロケーシ ョ ン] テキストボックスの横の参照 ([...]) ボタンをクリ ックします。 コンテンツ Customer ツリービューから Welcome.htm を選択します。

3 [OK] を 2 回クリ ックします。

スク リプ ト エディ タでコードのブロ ッ クが挿入されます。 ポップアップ メニューの [ リ ダイレク トの編集] または [ リ ダイレク トの削除] コマンドを使用して、 このコードのブロ ッ クを修正または削除できます。

4 メニュー バーから [ファイル|保存] を選択します。

268 PowerBuilder

Page 281: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

スタート ページの指定

現在の学習個所PowerDynamo Web サイト の作成基本 Web ページの作成と修正ページ ナビゲーショ ンの追加検証とリ ダイレクト を行う ログイン ページの作成

> スタート ページの指定Web サイト の配布と実行

このステップでは、Web サイ ト を PowerBuilder から 直接テス トおよび実行できるスタート ページを選択します。

1 システム ツリーで、 Customer を右クリ ッ クします。ポップアップ メニューで [プロパテ ィ] を選択します。

ターゲッ ト Customer のプロパテ ィ ダイアログボッ ク スが表示されます。

2 [実行 / デバッグ] タブをク リ ックし、[スタート ページ] テキストボックスの横の参照 ([...]) ボタンをクリ ックします。

3 URL の選択 ダイアログボックスの [ターゲッ ト] ページで、 Login.htmを選択し、 [OK] をク リ ックします。

4 ターゲッ ト Customer のプロパティ ダイアログボックスの [データベース] タブをクリ ッ クします。

5 [プロファイル名] リスト内の [EAS Demo DB V9 ] チェ ックボックスをオンにします。 [OK] をク リ ックします。

PowerDynamo Web Site ウ ィザードで作成した Customer データベースには、 Web のメ タデータが含まれます。 EAS Demo データベースをアプリ ケーシ ョ ン データベースと して使用します。

データベース プロファイルの設定EAS Demo DB V9 は、PowerBuilder をインス トールする と きに使用可能なデータベース プロファ イルです。 詳細については、 レッスン 3、 EAS Demo DB データベースの参照を参照して ください。

これで Customer ターゲッ ト を配布する準備ができました。

6 メニュー バーから [ファイル|保存] を選択します。

PowerBuilder 入門 269

Page 282: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Web サイ トの配布と実行

Web サイ トの配布と実行

現在の学習個所PowerDynamo Web サイト の作成基本 Web ページの作成と修正ページ ナビゲーショ ンの追加検証とリ ダイレクト を行う ログイン ページの作成スタート ページの指定

> Web サイト の配布と実行

このステップでは、 Web サイ ト を配布します。

1 システム ツリーで、 Customer ターゲッ ト を右クリ ックします。ポップアップ メニューで [配布] を選択します。

配布が終了する と、出力ビューに「終了 ターゲッ トの配布 Customer」と表示されます。

2 Windows の [スタート] メニューをクリ ックしてから、 [プログラム|Sybase | PowerDynamo 3.6 | Personal Web Server] を選択します。

PowerDynamo Personal Web Server が起動し ます。 [Personal WebServer] アイコンが Windows のタスクバーに表示されます。

3 メニュー バーから [実行|選択して実行] を選択します。ターゲッ トの選択 ダイアログボックスで [Customer] を選択します。 [OK] をクリ ッ クします。

270 PowerBuilder

Page 283: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 12 Web ページの作成

デフォルトのブラウザが開きます。 URL アド レス ボッ クスには、作成した Login.htm Web ページのファイル パスが入っています。ログイン ページが表示されます。

4 [名前] テキストボックスに 「Hello」 と入力し、 [パスワード] テキストボックスに 「Good-bye」 と入力します。 [ログイン] ボタンをクリ ックします。

ユーザ名とパスワードが一致しないため、 エラー メ ッセージが表示されます。

5 [OK] をク リ ックします。[名前] テキス トボッ クスと [パスワード] テキス トボッ クスの両方に「Hello」 と入力します。 [ログイン] ボタンをクリ ックします。

PowerBuilder 入門 271

Page 284: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Web サイ トの配布と実行

今度はウェルカム ページが表示されます。

6 [商品情報を表示] ハイパーリンクをクリ ッ クします。

商品情報 Web ページ (Product.htm) が表示されます。

次のレッスンでは、 商品情報ページに Web データウ ィ ンド ウを追加します。

7 ブラウザを閉じます。

272 PowerBuilder

Page 285: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 1 3 Web データウィ ンドウの使い方

Web データウ ィ ンド ウでは、データ ソース と ク ラ イアン ト ブラウザとのインタフェースが提供され、 データ ソースからの結果セットが Web ページ上に表示されます。

このレッスンでは、 以下の項目について学習します。

• EAServer 接続プロファ イルのセッ ト アッ プ

• Web データウィ ンド ウ コンテナの構築

• Web データウィ ンド ウ コンテナを使用しての Web ページの作成

• データウィ ンド ウ Web ページへのほかのコント ロールの追加

• 既存の Web ページへのデータウィ ンド ウの追加

• 商品情報の検索機能の追加

• Web アプリ ケーショ ンのテスト と 実行

所要時間約 40 分

このレッスンを開始する前に

Web データ ウ ィ ン ド ウのレ ッ スン中に問題が起きないよ う に、Sybase¥EAServer¥Html¥Classes フォルダが、 ご使用のシステムのCLASSPATH 環境変数に リ ス ト されている こ とを確認して ください。

以下の点も確認する必要があ り ます。

• Sybase¥Shared¥Sun¥Jdknnn¥JRE¥Bin¥Client デ ィ レ ク ト リ がPATH 環境変数に リ ス ト されている (nnn は使用する JDK のバージ ョ ンを表す) こ と。 JDK 1.4 を使用する場合は、 かわりに、Sybase¥Shared¥PowerBuilder¥JDK14¥JRE¥Bin¥Client ディレク ト リ を PATH 環境変数のリ ス トに追加する。

• PowerDynamo で正しいバージ ョ ンの Java VM が使用されている

PowerBuilder 入門 273

Page 286: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

チェ ッ クするには、 まず Sybase Central を開き、 PowerDynamo 3.6の下のユーティ リ ティ フォルダと設定フォルダを展開します。 左ペインのデフォルトの JAVA 設定および右ペインの Java VM をダブルク リ ッ ク し、 ド ロ ップダウン リ ス ト ボッ ク スから 「Sun JavaVM 1.2」 を選択します。

274 PowerBuilder

Page 287: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

EAServer 接続プロファイルのセッ トアップ

現在の学習個所> EAServer 接続プロファ イルのセッ ト アッ プ

Web データウィ ンド ウ コンテナの構築Web データウィ ンド ウ コンテナを使用しての Web ページの作成データウィ ンド ウ Web ページへのほかのコント ロールの追加既存の Web ページへのデータウィ ンド ウの追加商品情報の検索機能の追加Web アプリ ケーショ ンのテスト と実行

このステップでは、 EAServer の接続プロファ イルをセッ ト アップします。 このチュート リ アルでは、 読者がローカル マシンで EAServer を使用しているこ とを前提と しています。

1 Windows の [スタート] メニューから、 [プログラム| Sybase |EAServer 4.2 | Jaguar Server] を選択して EAServer を起動します。

DOS ウ ィンド ウが表示され、 サーバが起動されます。 「AcceptingConnections」 とい う メ ッセージが表示されたら、DOS ウ ィンド ウを 小化します。

2 PowerBuilder のメニュー バーから、[ツール| EAServer プロファイル]を選択します。

次の画面が表示されます。

3 [追加] をクリ ックします。

PowerBuilder 入門 275

Page 288: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

EAServer 接続プロファイルのセッ トアップ

EAServer プロファ イルの編集ダイアログボッ クスが開きます。

4 以下の情報を入力します。

5 入力を終えたら [テス ト] をクリ ックします。

「Connection Successful」 とい う メ ッセージが表示されます。

6 [OK] を 2 回クリ ックし、 [終了] をクリ ッ クします。

プロファイルのプロパティ 入力する値

プロファイル名 local

サーバ名 マシン名 (ローカルマシンの名前を入力する。 デフォル ト では、 このサーバ名への リ スナがインストールされる)

ポート番号 9000ログイン jagadmin

パスワード なし (空白のままにする)

276 PowerBuilder

Page 289: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

Web データウィンドウ コンテナの構築

現在の学習個所EAServer 接続プロファ イルのセッ ト アッ プ

> Web データウィ ンド ウ コンテナの構築Web データウィ ンド ウ コンテナを使用しての Web ページの作成データウィ ンド ウ Web ページへのほかのコント ロールの追加既存の Web ページへのデータウィ ンド ウの追加商品情報の検索機能の追加Web アプリ ケーショ ンのテスト と実行

Web データウ ィンド ウ コンテナでは、ページに必要なすべてのサポート ファ イルとプロパティが、 サーバ上にインス トールされた 1 つの領域に集められます。

Web データウ ィンド ウ コンテナ ウ ィザードでは、HTMLGenerator90 インタフェースを実装してすべてのデータ ウ ィ ン ド ウ オブジェ ク ト をデータベース接続情報と一緒にパッケージするカスタム EAServer コンポーネン トが作成されます。

このレッスンでは、Web データウ ィンド ウ コンテナ ウ ィザードを使用して Web データウ ィ ンド ウ コンテナを構築し、サーバにコンポーネント を直接配布して Web アプリ ケーシ ョ ンが使用できるよ うにします。

1 メニュー バーから [ファイル|新規作成] を選択し、 新規作成 ダイアログボックスの [プロジェク ト] タブをクリ ッ クします。

2 [Web DW コンテナ ウィザード] アイコンを選択して [OK] をク リ ックします。ウィザードの 初のページで [次へ] をクリ ッ クします。

3 [アプリケーシ ョ ン ライブラリ] リス トで 「pbtutor.pbl」 フ ァイルが選択されていることを確認して、 [次へ] をクリ ックします。

[プロジェク トの指定] ページが表示されます。

4 [次へ] をクリ ックします。

デフォルトのプロジェク ト名 「p_pbtutor_webdw」 を使用します。

5 まだ選択されていない場合は、 [データベース プロファイル] リストから「EAS Demo DB V9」 を選択します。

PowerBuilder 入門 277

Page 290: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Web データウィンドウ コンテナの構築

6 後のウィザード ページが表示されるまで [次へ] をクリ ッ クし、 以下のデフォルトを受け入れていきます。

7 [完了] ボタンをクリ ックします。

p_pbtutor_webdw プロジェ ク ト がプロジェ ク ト ペインタに表示されます。

8 メニュー バーの [デザイン|プロジェク トの配布] を選択します。

これによ り、ローカル マシンで稼働している EAServer のパッケージおよびコンポーネン ト と して、 プロジェ ク ト を構築して配布します。 このコンポーネン ト は、 DataWindow::HTMLGenerator90 インタフェースを使用したカスタムの Web データウ ィ ン ド ウ コンテナです。

9 メニュー バーから [ファイル|閉じる] を選択して、 プロジェク ト を閉じます。プロジェク ト ファイルを保存するように要求されたら、 [はい] を選択します。

ウィザード オプシ ョ ン デフォルト値

EAServer プロファイルの選択

local (今追加したプロファ イル)

EAServer コンテナとパッケージ名の指定

pbtutor_component pbtutor_package

インスタンス プーリ ング オプシ ョ ンの指定

サポートする

その他のコンポーネン ト オプシ ョ ンの指定

指定なし

動的ライブラ リ オプシ ョンの指定

統合動的ライブラ リ (PBD) の構築 (選択)

統合 PBD に参照されないオブジェ ク ト を含める (選択)

pbtutor.pbd (統合化 PBD ファ イル名)

278 PowerBuilder

Page 291: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

Web データウィンドウ コンテナを使用しての Web ページの作成

現在の学習個所EAServer 接続プロファ イルのセッ ト アッ プWeb データウィ ンド ウ コンテナの構築

> Web データウィ ンド ウ コンテナを使用しての Web ページの作成データウィ ンド ウ Web ページへのほかのコント ロールの追加既存の Web ページへのデータウィ ンド ウの追加商品情報の検索機能の追加Web アプリ ケーショ ンのテスト と実行

このレッスンでは、先ほど作成した Web データウ ィンド ウ コンテナを使用して、 新規の Web ページ Addproduct.htm を作成します。

1 システム ツリーの Customer ターゲッ ト を右クリ ックして、 ポップアップ メニューから [新規作成] を選択します。

2 新規作成 ダイアログボックスで [Web] タブをクリ ックします。[Web/JSP データウィンドウ ページ]アイコンをダブルクリ ックし、ウィザードの先頭ページで [次へ] をクリ ッ クします。

[新規 HTML ファ イルの指定] ページが表示されます。

3 [タイ トル] テキスト ボックスに 「Addproduct」 と入力して、 [次へ] を2 回クリ ックします。

ファ イル名は、 ページ タイ トルに入力したテキス トに自動的に変わり ます。これで Web ページ ファ イルの名前が Addproduct.htm にな り ました。 このレ ッ スンでは、 新規のページに対してスタイルシートは指定しません。

4 「ローカル の EAServer プロファイル」 をまだ選択していなければ選択してから、 [次へ] をクリ ックします。

[Web DW コンポーネン ト形式の選択] ページが表示されます。

5 [Web DW コンテナ] ラジオボタンを選択し、 [次へ] をクリ ックします。

[EAServer データウ ィ ン ド ウ コンポーネン トの選択] ページが表示されます。

PowerBuilder 入門 279

Page 292: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Web データウィンドウ コンテナを使用しての Web ページの作成

6 ローカル サーバの下の項目を展開します。 pbtutor_package の下で、 pbtutor_component を選択します。

7 [次へ] をク リ ックします。

[データウ ィ ンド ウ オプジェク トの選択] ページが表示されます。

8 d_product を選択します。

280 PowerBuilder

Page 293: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

9 [次へ] をクリ ックします。[完了] をクリ ックして選択内容を受け入れます。

Addproduct.htm Web ページがページ編集ビューに表示されます。

PowerBuilder 入門 281

Page 294: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

データウィ ンドウ Web ページへのほかのコン ト ロールの追加

データウィンドウ Web ページへのほかのコン ト ロールの追加

現在の学習個所EAServer 接続プロファイルのセッ ト アッ プWeb データウィ ンド ウ コンテナの構築Web データウィ ンド ウ コンテナを使用しての Web ページの作成

> データウィ ンド ウ Web ページへのほかのコント ロールの追加既存の Web ページへのデータウィ ンド ウの追加商品情報の検索機能の追加Web アプリ ケーショ ンのテスト と実行

こ こでは、 商品情報テーブルに行を挿入してデータベースを更新するためのボタン コン ト ロールを追加して、 Addproduct.htm ページを完成せさます。 また、 Product.htm ページにハイパーリ ンクを追加します。

ページを完成させるには、 次の作業を行います。

• 新規の商品情報ボタンの有効化

• データベースを更新するボタンの追加

• [ 商品情報] ページへのハイパーリ ンク の追加

新規の商品情報ボタンの有効化

こ こまでの作業によって、 Addproduct.htm ページには Web データウ ィンド ウが含まれています。このステップでは、テキス ト と リ ンクをデータベースへ追加して、 データベースへの商品情報の追加と、 追加した情報をユーザが参照できる Product.htm ページへの リ ンクを作成します。

1 Addproduct.htm ページを右クリ ッ クして、 ポップアップ メニューから[ページ プロパティ] を選択します。[4GL Web サーバ サイドイベン トモデルを使用する] チェ ックボックスをオンにして、 [OK] をクリ ックします。

これでこのページは 4GL を使用でき る よ う にな り ま した。 したがって、サーバ サイ ド イベン トのコーディング、および Web ページ上のコン ト ロールへの変数と コンポーネン トのバインドができます。

282 PowerBuilder

Page 295: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

2 データウィンドウの左下隅にカーソルを置き、 〔Enter〕 を押します。Web データウィンドウの上の段落に、 次のテキストを挿入します。

ここをクリ ッ クして商品情報を追加します

次に、 データウ ィ ン ド ウに空白行を表示する新しいボタンを、 このテキス トの下に追加します。

3 このテキストの後ろで 〔Enter〕 を押します。メニュー バーから [挿入|フォーム フ ィールド|コマンドボタン] を選択します。

[Button プロパティ] ページが表示されます。

4 [ボタンの種類] ドロップダウン リス トボッ クスから 「Button」 を選択します。 [ボタンの名前] テキストボックスに 「cb_addproduct」 と入力します。[ラベル] テキス トボックスに 「商品情報の追加」 と入力します。

5 [OK]をクリ ッ クして、Button プロパティ ダイアログボックスを閉じます。スクリプ ト エディ タの 初のドロップダウン リスト ボックスから「cb_addproduct」 を選択します。

ページ編集ビュー内の [商品情報の追加] ボタンをク リ ッ クすると、 スク リプ ト エディ タの 初のド ロ ップダウン リ ス ト ボッ クスに 「cb_addproduct」 が表示されます。

6 中央のドロップダウン リストボックスから 「ServerAction()」 を選択します。 次のスクリプト を入力します。

webDW.InsertRow(0);

エン ド ユーザが Web ページ上の [商品情報の追加] ボタンをクリ ッ クする と、 ユーザが入力できる空のテキス ト ボッ ク スを持つWeb データウ ィンド ウが表示されます。

7 ページ編集ビューで 「商品情報の追加」 ボタンの右にカーソルを置いて、〔Enter〕 を押します。次のテキスト を入力します。

商品を追加して ください。 すべてのテキストボックスに情報を入力してから、 [データベースの更新] をクリ ックして く ださい。

PowerBuilder 入門 283

Page 296: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

データウィ ンドウ Web ページへのほかのコン ト ロールの追加

8 Web データウィンドウを右クリ ッ クします。 ドロップダウン リス トボックスから「Sybase Web DataWindow DTC 9.0プロパティ」 を選択します。

9 [コン ト ロール] タブをクリ ックし、 [重み] パネルの横の [上書き] ボックスをチェ ックします。 [重み] パネルの項目をすべて選択します。

生成される HTML ページには、選択したク ライアン ト サイ ド機能をすべてサポートする JavaScript コードが含まれます。

生成されるページのサイズ選択した各機能に対応する JavaScript コードが生成されます。必要な機能だけを選択すれば、Web ページのサイズを小さ くできます。

10 [ページあたりの行数] フ ィールドの [上書き] チェ ッ クボックスをオンにします。[ぺージあたりの行数] ボックスに 「1」 と入力します。

これによって、 表示される商品情報の量が 1 レコードに制限されます。

11 [検索] タブをク リ ッ ク します。 [自動検索] オプシ ョ ンをオフにして、[OK] をクリ ッ クします。

12 ペインタバーの [保存] ボタンをクリ ックします。

284 PowerBuilder

Page 297: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

データベースを更新するボタンの追加

商品情報を追加したらデータベースを更新しなければならないので、このステップではデータベースを更新するボタンを追加します。

1 Web データウィンドウの右下の段落にカーソルを置き、 〔Enter〕 を押します。メ ニュー バーから [挿入|フォーム フィ ールド |コマンド ボタン] を選択します。

Button プロパティ ページが表示されます。

2 [ボタンの種類] ドロップダウン リス トボッ クスから 「Button」 を選択します。[名前] テキス トボックスに 「cb_update」 と入力します。[ラベル] テキス トボックスに 「データベースの更新」 と入力します。

3 [OK] をクリ ッ クして、Button プロパティ ダイアログボックスを閉じます。

4 スクリプ ト エディ タの 初のドロップダウン リスト ボックスで「cb_update」 を選択します。 中央のドロップダウン リス ト ボックスから 「ServerAction()」 を選択します。

5 スクリプ ト エディ タ ウィンドウに次のように入力します。

webDW.Update();

Web ページから [データベースの更新] ボタンを押すと、 エンドユーザが入力した情報がデータベースに追加されます。

[商品情報] ページへのハイパーリンクの追加

こ こでは、 商品情報が更新されたこ と をユーザが確認できるよ うに、Product.htm ページにリ ンクを追加します。

1 ページ編集ビューで [データベースの更新] ボタンの右にカーソルを置いて、 〔Enter〕 を押します。[書式|ハイパーリンク] を選択します。

PowerBuilder 入門 285

Page 298: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

データウィ ンドウ Web ページへのほかのコン ト ロールの追加

2 [リンク文字列] テキストボックスに 「商品情報」 と入力します。 [行先] テキストボックスの横の参照 ([...]) ボタンをクリ ックします。

すでに作成された Web ページのターゲッ ト リ ス ト を表示するウ ィンド ウが開きます。

3 商品情報ページ (Product.htm) を選択します。

4 [OK] を 2 回クリ ックして Web ページにハイパーリンクを追加します。

「商品情報」 が、 下線付きのハイパーリ ンク と して Addproduct.htmページに表示されます。

5 メニュー バーから [ファイル|保存] を選択します。

286 PowerBuilder

Page 299: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

既存の Web ページへのデータウィ ンドウの追加

現在の学習個所EAServer 接続プロファ イルのセッ ト アッ プWeb データウィ ンド ウ コンテナの構築Web データウィ ンド ウ コンテナを使用しての Web ページの作成データウィ ンド ウ Web ページへのほかのコント ロールの追加

> 既存の Web ページへのデータウィ ンド ウの追加商品情報の検索機能の追加Web アプリ ケーショ ンのテスト と実行

このステップでは、既存の Web ページにデータウ ィンド ウを追加します。 このデータウ ィ ンド ウの [自動検索] チェ ッ クボッ クスをオフにします。 これによって、 Web データウ ィ ンド ウにアクセスするスク リプ トがページに自動挿入されな くな り ます。 次に、 特定のデータウ ィンド ウ検索引数を Web ページ上のパラ メータにリ ンク し、そのデータウ ィ ンド ウをプログラムによって検索します。

1 Product.htm ファイルを開きます。

2 商品情報段落の末尾にカーソルを置き、 〔Enter〕 を押します。メニュー バーから [挿入|フォーム フ ィールド|データウィンドウ] を選択します。

Sybase Web データウ ィ ン ド ウ DTC プロパティ ダイアログボッ クスが表示されます。

3 データウィンドウ ページ上の [PowerBuilder ライブラリ] ラジオボタンを選択します。[データウィンドウ ライブラリ] テキス トボックスの横の参照 ([...]) ボタンをクリ ッ クします。

4 「tutor_pb.pbl」 を選択し、 [開 く ] をク リ ックします。

tutor_pb.pbl ラ イブラ リへのパスが、 Sybase Web データウ ィンド ウDTC プロパテ ィ ダイアログボッ ク スの [ラ イブラ リ ] テキス トボッ クスに表示されます。

5 [スクリプ ト内に絶対パスを生成] チェ ックボックスをオンにします。 [データウィンドウ] ドロップダウン リス トボックスで 「d_product」 を選択します。

PowerBuilder 入門 287

Page 300: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

既存の Web ページへのデータウィ ンドウの追加

こ こではチュート リ アルのため、絶対パスの生成を使用します。本番環境では、 相対パスを使用する必要があ り ます。

6 [接続] タブをク リ ックします。 ドロップダウン リス トボッ クスから 「EAS Demo DB V9」 を選択します。

7 [検索] タブをク リ ックします。 [自動検索] オプシ ョ ンをオフにして、 [OK] をク リ ックします。

ボタンの Clicked イベン ト が発生したと きに製品データを検索するスク リプ トは、 後で作成します。

8 スクリプ ト エディ タの 初のドロップダウン リス ト ボックスから「cb_addproduct」 を選択します。 2 番目のドロップダウン リストボックスで 「ServerAction()」 を選択します。

9 スクリプ ト エディ タの中を右クリ ッ クします。ドロップダウン リス トボッ クスから 「リダイレク トの挿入」 を選択します。

10 [ロケーシ ョ ン] テキストボックスの横の参照 ([...]) ボタンをクリ ックします。 [コンテンツ Customer] リス トボッ クスから 「Addproduct.htm」 を選択します。

このページから新しい商品ページへのリ ンクが追加されます。

288 PowerBuilder

Page 301: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

11 [OK] を 2 回クリ ッ クします。

12 メニュー バーから [ファイル|保存] を選択します。

PowerBuilder 入門 289

Page 302: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

商品情報の検索機能の追加

商品情報の検索機能の追加

現在の学習個所EAServer 接続プロファイルのセッ ト アッ プWeb データウィ ンド ウ コンテナの構築Web データウィ ンド ウ コンテナを使用しての Web ページの作成データウィ ンド ウ Web ページへのほかのコント ロールの追加既存の Web ページへのデータウィ ンド ウの追加

> 商品情報の検索機能の追加Web アプリ ケーショ ンのテスト と実行

このステップでは、 Product.htm ページに検索関数を追加します。 これによって、データベース内の製品の商品 ID を要求すればページ上に商品情報を表示できるよ うにな り ます。

1 ページ編集ビュー内で Product.htm が開いていない場合は開きます。 Web データウィンドウの上の段落の末尾にカーソルを置き、 〔Enter〕 を押します。

2 メニュー バーから [テーブル|テーブル ウィザード] を選択します。[テーブル当たりの行数] に 「1」 と入力して、[次へ] をクリ ッ クします。 [テーブル当たりの列数] に 「2」 と入力します。 [完了] をク リ ックし、 [OK] をク リ ックします。

Web ページ上にテーブルが表示されます。

3 1 番目のカラムの 「Cell」 という単語をハイライ ト表示し、 「商品 ID で商品情報を表示」 と入力します。

4 2 番目のカラムの 「Cell」 という単語をハイライ ト表示します。 [挿入|フォーム フ ィールド|シングルラインテキスト] を選択し、[OK]をクリ ックします。

290 PowerBuilder

Page 303: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

5 テーブルの後にカーソルを置きます。 〔Enter〕 を 1 回押して次の行に移動します。メニュー バーから [挿入|フォーム フ ィールド|コマンドボタン] を選択します。

Button プロパティ ページが表示されます。

6 [ボタンの種類] から 「Button」 を選択します。[名前] テキス トボックスに 「cb_get」 と入力します。[ラベル] テキストボックスに 「商品 ID」 と入力して、 [OK] をク リ ックします。

7 スクリプ ト エディ タの 初のドロップダウン リストボックスで「cb_get」 を選択します。 中央のドロップダウン リス トボッ クスから 「ServerAction()」 を選択します。

8 以下のコードをスクリプ ト ウィンドウに追加します。

dw_1.Reset();dw_1.Retrieve(sle_1.value);

9 メニュー バーから [ファイル|保存] を選択します。

PowerBuilder 入門 291

Page 304: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Web アプリケーシ ョ ンのテスト と実行

Web アプリケーシ ョ ンのテス ト と実行

現在の学習個所EAServer 接続プロファイルのセッ ト アッ プWeb データウィ ンド ウ コンテナの構築Web データウィ ンド ウ コンテナを使用しての Web ページの作成データウィ ンド ウ Web ページへのほかのコント ロールの追加既存の Web ページへのデータウィ ンド ウの追加商品情報の検索機能の追加

> Web アプリ ケーショ ンのテスト と実行

このレッスンでは、 新しい Web ページをテス ト し、 データベースに商品を追加できるこ とを確認します。商品を正し く追加できたら、[ログイン] ページから、 Web アプリ ケーシ ョ ン全体を実行します。

この練習では、 以下の操作を行います。

• Addproduct.htm Web ページのテスト

• データベースへの新しい商品の追加

• Web アプリ ケーショ ンの実行

Addproduct.htm Web ページのテスト

作成した Web アプリ ケーシ ョ ンをテス トする前に、 まず Addproduct.htm Web ページをテス ト して、 商品を追加できるかど うかを確認します。 それには、 Customer ターゲッ トのスタート ページを一時的に変更してから、 Customer ターゲッ ト を配布および実行します。

1 システム ツリーで、 Customer を右クリ ックします。ポップアップ メニューで [プロパテ ィ] を選択します。

ターゲッ ト Customer のプロパテ ィ ダイアログボッ ク スが表示されます。

2 [実行 / デバッグ]タブをク リ ックし、参照([...])ボタンをク リ ックします。URL の選択 ダイアログボックスの [ターゲッ ト] タブが表示されていることを確認します。

3 [コンテンツ Customer] リス トボックスから 「Addproduct.htm」 を選択し、 [OK] を 2 回クリ ックします。

292 PowerBuilder

Page 305: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

4 Personal Web Server およびローカルの EAServer が稼働していることを確認します。

5 システム ツリーで、 Customer を右クリ ッ クします。 ポップアップ メニューで [配布] を選択します。Addproduct ページを保存するかどうかを問い合わせるメ ッセージ ボックスが表示されたら、 [はい] をクリ ックします。

出力ウ ィ ン ド ウが開き、 ターゲッ ト の構築および配布の進行状況を知らせる情報メ ッセージが表示されます。

6 メニュー バーから [実行|実行 Customer] を選択します。

デフォルトのブラウザが開きます。 URL アド レス ボッ クスには、Addproduct.htm Web ページのファイル パスが入っています。

次のステップでは、 この Web ページを使用して新しい商品情報を追加します。

PowerBuilder 入門 293

Page 306: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Web アプリケーシ ョ ンのテスト と実行

データベースへの新しい商品の追加

こ こでは、 新しい商品情報を追加し、 この新しい情報でデータベースを更新します。

1 Addproduct.htm ページ上の[商品情報の追加]ボタンをクリ ッ クします。

Web ページが再読み込みされ、 空の Web データウ ィンド ウ行が表示されます。

2 以下の情報を Web データウィンドウに入力します。

3 [データベースの更新] ボタンをクリ ッ クします。

これでこの情報がデータベースに入力されました。 次に、 この情報を確認します。

テキストボックス 値

商品 ID 9999

商品名 シャツ

商品内容 デニム シャツ

サイズ L サイズ

色 Blue (ド ロ ップダウン リ ス トから選択)

在庫数 6単価 3000

294 PowerBuilder

Page 307: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

4 [商品情報] ハイパーリンクをクリ ックします。

Product.htm ページが表示されます。

5 [商品 ID で商品情報を表示] テキストボックスに 「9999」 と入力します。 [商品 ID] ボタンをクリ ッ クします。

Product.htm Web ページが再読み込みされ、 前の練習で入力した商品情報が表示されます。

Web アプリケーシ ョ ンの実行

これで Web アプリ ケーシ ョ ンの開発が完了しました。 このステップでは、スタート ページを Login.htm ページに戻してから、Web アプリ ケーシ ョ ンを再配布、 実行、 およびテス ト します。

1 システム ツリーで、 Customer を右クリ ッ クします。ポップアップ メニューで [プロパテ ィ] を選択します。

ターゲッ ト Customer のプロパテ ィ ダイアログボッ ク スが表示されます。

2 [実行 / デバッグ]タブをクリ ックし、参照([...])ボタンをクリ ックします。URL の選択 ダイアログボックスの [ターゲッ ト] タブをクリ ックします。

3 [コンテンツ Customer] リス トボックスから 「Login.htm」 を選択し、[OK] を 2 回クリ ッ クします。

PowerBuilder 入門 295

Page 308: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Web アプリケーシ ョ ンのテスト と実行

4 Personal Web Server およびローカルの EAServer が稼働していることを確認します。

5 システム ツリーで、 Customer を右クリ ックします。 ポップアップ メニューで [配布] を選択します。

出力ウ ィ ン ド ウに配布の完了を知らせる メ ッセージが表示されたら、 アプリ ケーシ ョ ンを実行します。

6 パワーバーの [実行] ボタンをクリ ックします。

デフォルトのブラウザに Login.htm ページが表示されます。

7 [名前] テキス トボックスと [パスワード] テキス トボックスの両方に自分の名前を入力します。 [ログイン] ボタンをク リ ッ クします。

ウェルカム ページが表示されます。

296 PowerBuilder

Page 309: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

8 [商品情報を表示] ハイパーリンクをクリ ックします。

商品情報 Web ページ (Product.htm) が表示されます。

9 [商品の追加] ボタンをクリ ックします。

Addproduct.htm ページが表示されます。

PowerBuilder 入門 297

Page 310: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

Web アプリケーシ ョ ンのテスト と実行

10 [商品情報の追加] ボタンをクリ ッ クします。

空白行のある Web データウ ィンド ウが表示されます。

11 以下の情報を Web データウィンドウに入力します。

12 [データベースの更新] ボタンをクリ ッ クします。

13 [商品情報] ハイパーリンクをクリ ッ クします。

Product.htm ページが表示されます。

14 [商品 ID で商品情報を表示] テキストボックスに 「4321」 と入力します。 [商品 ID] ボタンをクリ ックします。

テキストボックス 値

商品 ID 4321商品名 T シャツ

商品内容 コッ ト ン T シャツ

サイズ S サイズ

色 White (ド ロ ップダウン リ ス トから選択)

在庫数 100

単価 1600

298 PowerBuilder

Page 311: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 13 Web データウィ ンドウの使い方

Product.htm Web ページが再読み込みされ、 先ほど入力した製品情報が表示されます。

15 ブラウザを閉じます。

PowerBuilder 入門 299

Page 312: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

次のステップについて

次のステップについてお疲れさまでした。 これでチュー ト リ アルの第 3 部が終了しました。PowerBuilder での PowerDynamo Web ターゲッ トの基本的な使い方を理解できたこ と と思います。チュート リ アルの第 4 部では、JSP Web ターゲッ トの作成および使用方法について学習します。

次に使用する Web ターゲッ トのマニュアル

このマニュアルの冒頭の「このマニュアルについて」には、PowerBuilderの各マニュアルについての説明が記載されています。 Web ターゲッ トと Web データウ ィ ン ド ウについてさ らに高度な開発技術を学習するには、 以下のマニュアルに進んでください。

『Web ターゲッ ト と JSP ターゲッ トでの作業』『Web および JSP ターゲッ ト リ ファレンス』『データウ ィ ンド ウ プログラマーズ ガイ ド』『データウ ィ ンド ウ リ ファレンス』

PowerBuilder のすべてのマニュアルは、 ソフ ト ウェア付属のテクニカル ラ イブラ リ CD、 およびテクニカル ラ イブラ リ製品マニュアルのSybase Web サイ ト http://www.sybase.com/support/manuals/ (英語) を参照して ください。

Web ターゲッ トのサンプルの参照

PowerBuilder のコード例 (Web ターゲッ トのサンプルを含む) については、 Windows のス ター ト メ ニ ューで [プロ グ ラ ム| Sybase |PowerBuilder 9.0 | PB 9 コード サンプル] を選択して参照して ください。

300 PowerBuilder

Page 313: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

第 4 部 JSP Web サービス アプリケーシ ョ ンの作成

第 4 部は、JSP Web ターゲッ トの使用方法を示したチュート リアルです。 JSP クライアン トから Web サービスを使用する方法を手順を追って説明します。

Page 314: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加
Page 315: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レ ッ ス ン 1 4 JSP Web サービス アプリケーションの作成

JSP ターゲッ トは、 カスタマイズされたコマン ド ラ イン構成を用いて、任意の JSP 1.2 サーバに配布できます。ただし、 EAServer やTomcat に配布する場合は、 サーバへの接続情報を入力するだけです。このチュート リ アルでは、4GL JSP ページを含む JSP Web サービス アプリ ケーシ ョ ンを作成し、 EAServer に配布します。

このレッスンでは、 以下の項目について学習します。

• JSP ターゲッ ト の作成

• 簡単な JSP アプリ ケーショ ンでの Web サービスの利用

• 4GL JSP アプリ ケーショ ンでの Web サービスの利用

所要時間約 45 分

このチュート リアルを開始する前に

JSP Web サービス チュート リ アルでは、 ローカル マシンに以下のソフ ト ウェアがインス トールされている必要があ り ます。

• EAServer 4.2 以降

• Internet Explorer 6.0 以降

また、 PowerBuilder 内で EAServer 接続プロファ イルをセッ ト アップする必要もあ り ます。 EAServer プロファ イルのセッ ト アップについては、 PowerDynamo Web ターゲッ トのチュート リ アルで設定しました。 PowerDynamo Web ターゲッ トのチュート リ アルを読み飛ばした人は、 275 ページの「 EAServer 接続プロファ イルのセット アッ プ」 の手順を実行して ください。

JSP Web サービス アプリ ケーシ ョ ンを実行する と きは、 インターネッ ト に接続している必要があ り ます。 デザイン時には、 このチュート リ アルで使用する Web サービス定義言語 (WSDL) フ ァイルをご使用のローカル マシンにコピーしておけば、 インターネッ トに接続している必要はあ り ません。 WSDL ファ イルについては、 このレッスンで解説します。

PowerBuilder 入門 303

Page 316: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

JSP ターゲッ トの作成

JSP ターゲッ トの作成

現在の学習個所> JSP ターゲッ ト の作成

簡単な JSP アプリ ケーショ ンでの Web サービスの利用4GL JSP アプリ ケーショ ンでの Web サービスの利用

PowerBuilder で JSP ターゲッ ト を作成するには、 JSP ターゲッ ト ウ ィザードを実行します。

1 PowerBuilder で [ファイル|ワークスペースを開く ] を選択し、Tutorialフォルダに移動します。 MyWorkspace.pbw を選択し、 [開く ] をクリ ックします。

ク ラ イアン ト / サーバまたは Web ターゲッ トのチュート リ アルを近学習した場合は、 このワークスペースがすでに開いている可

能性があ り ます。 初のチュート リ アルを 近学習していないため、MyWorkspace.pbw が見つからない場合は、27 ページの「 チュート リ アルのセッ ト アッ プ」 の手順に従ってください。

2 パワーバーの [新規作成] ボタンをクリ ックします。新規作成 ダイアログボックスの [ターゲッ ト] タブをクリ ッ クし、 [JSPターゲッ ト] を選択します。[OK] をクリ ッ クします。

JSP Web ターゲッ ト ウ ィザードの紹介ページが表示されます。

3 [次へ] をク リ ックします。

[新規 JSP ターゲッ トの指定ウ ィザード] ページが表示されます。Web ターゲッ トのデフォルト名は Target1 です。

4 Target1.pbt のかわりに 「jspTutorial.pbt」 と入力します。

[次へ] をク リ ッ クする と、 ソース フォルダ名と構築フォルダ名が上記のターゲッ ト名を反映して自動的に変更されます。

304 PowerBuilder

Page 317: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

5 [EAServer プロファイルの選択] ページが表示されるまで [次へ] をクリ ッ クします。

以下の項目についてデフォルトの設定をそのまま使用します。

6 目的の EAServer プロファイルが選択されていることを確認します。

PowerDynamo Web ターゲッ トのチュート リ アルを終えている場合は、 「local」 とい う名前のプロファ イルを選択して ください。 このプロファ イルは、 ローカル マシンの名前をサーバ名と して使用します。 EAServer プロファ イル がない場合は、 [キャンセル] をクリ ッ ク してウ ィザードを終了し、 275 ページの「 EAServer 接続プロファ イルのセッ ト アッ プ」 の手順を実行した後、 このレッスンを 初からやり直して ください。

ウ ィザードの [EAServer プロファ イルの選択] ページの [HTTPPort] フ ィールドには、 デフォルト値と して 8080 が入力されています。 このポート番号は変更しないでください。 変更する場合は、Jaguar Manager で EAServer の HTTP リ スナ ポート も変更しなければなり ません。

7 [JSP ターゲッ ト の作成準備完了] ページが表示されるまで、 [次へ] をクリ ッ クします。

以下の項目についてデフォルトの設定を使用します。

ウィザード オプシ ョ ン 標準設定

[配布構成の名前] jspTutorialDeployConfiguration1[説明] [配布構成]

[オブジェク ト モデル] デフォルトのオブジェク ト モデルを使用する

[JSP サーバ 一覧] EAServer

ウィザード オプシ ョ ン デフォルト

[配布対象] [すべて配布または、 配布しない]

[再構築] [Incremental][ローカル コピー フォルダ]

Program Files¥Sybase¥PowerBuilder 9.0¥Tutorial¥jspTutorial¥jspTutorialDeployConfiguration1

[WAR ファ イル名] jspTutorial.war

PowerBuilder 入門 305

Page 318: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

JSP ターゲッ トの作成

8 [JSP ターゲッ ト の作成準備完了] ページの選択内容を確認します。 [完了] をク リ ックして選択内容を受け入れます。

jsp チュート リ アル ターゲッ ト、ファ イルを格納するディ レク ト リ構造、 配布構成が作成されます。 システム ツ リーには、 ソースフォルダと構築フォルダは表示されませんが、 ウ ィザードが作成した WEB-INF ディ レク ト リ とその 2 つのサブディレク ト リ 、およびターゲッ トの web.xml ファ イルが表示されます。

306 PowerBuilder

Page 319: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

簡単な JSP アプリケーシ ョ ンでの Web サービスの利用

現在の学習個所JSP ターゲッ ト の作成

> 簡単な JSP アプリ ケーショ ンでの Web サービスの利用4GL JSP アプリ ケーショ ンでの Web サービスの利用

このレッスンでは、 簡単な JSP アプ リ ケーシ ョ ンを作成します。 この非 4GL アプ リ ケーシ ョ ンはスタート ページと ターゲッ ト ページから成り ます。 スタート ページでは、ページ パラ メータ と して渡す項目をド ロ ップダウン リ ス トから選択し、 ターゲッ ト ページでは Web サービ ス を呼び出し ます。 このレ ッ ス ンでは、 XMethods Web サイ ト

www.xmethods.net (英語) で提供されている為替レート計算 Web サービスを利用します。

• JSP アプリ ケーショ ンの非 4GL ページの作成

• アプリ ケーショ ンのスタート ページを完成さ せる

• JSP Web サービス プロキシ ウィ ザード を使用する

• Web サービスへの呼び出しの追加

• アプリ ケーショ ンの構築、 配布、 実行

JSP アプリケーシ ョ ンの非 4GL ページの作成

このチュート リ アルの非 4GL 部分では、2 つのページ、すなわちスタート ページと メ イン ページを作成します。そして、アプリ ケーシ ョ ンのメ イン ページにページ パラ メータを追加します。 このパラ メータで、スタート ページから送信された値を受け取り ます。

1 メニュー バーから [ファイル|新規作成] を選択し、 [Web] タブをクリ ッ クします。新規作成 ダイアログボックス下部の [ターゲッ ト] ドロップダウン リストボッ クスで、 「jspTutorial」 が選択されていることを確認します。

ワークスペース内にほかの Web ターゲッ トがなければ、 [Web] タブをク リ ッ ク したと きに 「jspTutorial」 が自動的に選択されます。

2 [Web/JSP ページ] アイコンを選択して、 [OK] をクリ ックし、 さらに[次へ] をクリ ックします。

[新規 HTML ファ イルの指定] ページが表示されます。

PowerBuilder 入門 307

Page 320: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

簡単な JSP アプリケーシ ョ ンでの Web サービスの利用

3 [タ イ トル] テキス トボッ クスに 「simplestart」 と入力して、 [次へ]を 4 回クリ ックします。

[ファ イル名] フ ィールドのファ イル名が、 simplestart.jsp に変わります。

残りのウ ィザード ページでは、 デフォルトの設定をそのまま受け入れます。

4 [完了] ボタンをクリ ックします。

jspTutorial ターゲッ ト内に simplestart.jsp ページが作成され、HTML エディ タ内に開きます。 このページは、 システム ツ リーの jspTutorial ターゲッ トの下に表示されます。

5 手順 3 で入力するファイル名を simplestart から 「simple」 に変更して、手順 1 ~ 4 を繰り返します。

simple.jsp ページが作成されます。 ページ編集ビューに、 デフォルト テキス ト と して 「こ こにデータを置きます」 が表示されます。

6 simple.jsp ページのデフォルトのテキストをハイライ ト表示します。〔Enter〕 を押し、 新しいテキスト と して 「通貨変換」 と入力します。

7 入力したテキスト内にカーソルを置いて、 メニュー バーから [書式|段落] を選択します。

Paragraph ダイアログボッ クスが表示されます。

8 [段落スタイル] ドロップダウン リストから 「見出し 1」 を選択します。[テキス ト配置] フ ィールドから 「中央」 を選択して、 [OK] をク リ ッ クします。

入力したテキス トが、見出し 1 フォン ト スタイルで表示されます。

9 テキストの末尾にカーソルを置き、 〔Enter〕 を押します。「(Simple Version)」 と入力します。

308 PowerBuilder

Page 321: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

次のレッスンで、 このページの 4GL バージ ョ ンを作成します。

ページ編集ビューにパラグラフ記号が表示されない場合は、 そのページを右ク リ ッ ク して、 ポップアップ メニューから 「非表示タグを表示」 を選択して ください。

10 ページ編集ビューでこのページを右クリッ クして、 ポッ プアップ メ ニューから [ページ プロパティ] を選択します。[パラ メータ] タブをクリ ックします。

11 [パラ メータ名] カラムの下の 初の行をクリ ックし、 「column_2」 と入力して、 [OK] をク リ ックします。

非 4GL ページのページ パラ メータにデフォル ト値を入力する ことはでき ません。 このチュー ト リ アル アプ リ ケーシ ョ ンでは、column_2 パラ メータを simplestart.jsp ページから simple.jsp ページに渡します。

12 HTML エディ タ ツールバーの [保存] ボタンをクリ ックします。

PowerBuilder 入門 309

Page 322: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

簡単な JSP アプリケーシ ョ ンでの Web サービスの利用

アプリケーシ ョ ンのスタート ページを完成させる

こ こでは、 ド ロ ップダウン リ ス ト と [送信] ボタンを追加して、simplestart.jsp ページを完成させます。

1 PowerBuilder の [ウィンドウ] メニューから simplestart.jsp ページを選択します。

simplestart.jsp ページが、HTML エディ タ内でフォーカスされます。simplestart.jsp ページを閉じてしまっている場合は、 システム ツリー内で simplestart.jsp をダブルク リ ッ ク して再度開いて ください。

2 デフォルトのテキストをハイライ ト表示して、 〔Enter〕 を押します。ページ編集ビューまたはソース ビュー内に以下の行を直接入力します。

出張予定の国を選択して く ださい。

3 テキストを入力したら 〔Enter〕 を押します。メニュー バーから [挿入|フォーム フ ィールド|リス トボックス] を選択します。

4 [サーバに送る名前] テキストボックスに 「country_2」 と入力します。

5 [オプシ ョ ン] タブをク リ ッ ク し、 以下の表示テキス ト と値を入力して、[OK] をクリ ッ クします。

リ ス ト ボ ッ ク スがページに追加され、 開き FORM タ グ と閉じFORM タグで囲まれます。

6 このリス トボックスの後、 閉じ FORM タグの前にカーソルを置きます。〔Enter〕 を押します。

この操作は、 ページ編集ビューまたはソース ビューで行う こ とができます。 ページに追加する [送信] ボタンは、 このド ロ ップダウン リ ス ト と同じ FORM タグ内に存在しなければなり ません。

テキスト 値

中国 china

フランス euroド イツ euro

イギ リ ス united kingdomシンガポール singapore

310 PowerBuilder

Page 323: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

7 以下のテキスト を入力して 〔Enter〕 を押します。

[クエリ送信] ボタンを押すと、 選択した国の基本通貨の米国ドルに対する為替レートが検索されます。

8 メニュー バーから [挿入|フォーム フ ィールド|コマンドボタン] を選択し、 [OK] をク リ ックします。

[送信] ボタンには、 デフォルトのラベル 「クエ リ送信」 が付けられます。 simple.jsp ページにボタン名を渡す必要はないので、 ボタンに名前を付ける必要はあ り ません。 ただし、 ド ロ ップダウン リス トの値は渡す必要があ り ます。

9 このボタンまたはド ロッ プダウン リスト を右クリ ッ クして、ポッ プアッ プメニューから [フォーム プロパティ] を選択します。

Form Properties ダイアログボッ クスが表示されます。

10 [フォーム情報の送り先 URL] テキストボックスに、 「simple.jsp」 と入力します。

入力するかわ り に、 同テキス ト ボッ ク スの横の参照ボタンを クリ ッ ク して、 URL の選択 ダイアログボッ クスを開き、 [ターゲット ] タブで 「simple.jsp」 を選択して [OK] をク リ ッ クするこ と もできます。

11 [送信メ ソ ッ ド] ドロップダウン リス トボックスで 「GET」 を選択して[OK] をク リ ックします。

送信メ ソ ッ ドを POST のままにする と、 [クエ リ送信] ボタンをクリ ッ ク したと き simple.jsp ページにアクセスするための URL にパラ メータが含まれません。

PowerBuilder 入門 311

Page 324: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

簡単な JSP アプリケーシ ョ ンでの Web サービスの利用

ポップアップ メニューから 「非表示タグを表示」 を選択しなかった場合、 simplestart.jsp ページはページ編集ビュー内で次のよ うに表示されます。

[クエ リ送信]ボタンが FORM タグの内側にあるこ とを確認して ください。

HTML エディ タの [プレビュー] タブをク リ ッ クする と、simplestart.jsp がク ライアン トのブラウザ内でどのよ うに表示されるかを確認できます。 プレビューでは、 ページ編集ビューに表示されていた FORM タグは表示されません。

12 変更内容を simplestart.jsp ページに保存します。[ファイル|閉じる] を選択して、 simplestart.jsp ページを閉じます。

simple.jsp ページは、 HTML エディ タ内で開いたままです。

JSP Web サービス プロキシ ウィザードを使用する

こ こでは、 JSP ターゲッ トに Web サービスを追加します。

1 システム ツリーの jspTutorial ターゲッ ト を右クリ ッ クして、ポップアップ メニューから [新規作成] を選択します。まだ表示されていない場合は、 [Web] タブをクリ ックします。

2 [JSP Web サービス プロキシ ウィザード] をダブルクリ ックして、 [次へ] をクリ ックします。

ウ ィザードの [WSDL ファ イルの選択] ページが表示されます。

312 PowerBuilder

Page 325: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

3 以下の URL を [WSDL ファイル名] テキストボックスに入力して、 [次へ] をクリ ッ クします。

http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl

ウ ィザードの [Select Services] ページに、 入力した WSDL ファ イルに記述されている Web サービスが表示されます。

4 ウィザードの [プロキシ の作成準備完了] ページに達するまで [次へ] をクリ ッ クします。

以下のデフォルト情報を受け入れます。

5 [完了] ボタンをクリ ックします。

ターゲッ ト の WEB-INF ディ レ ク ト リ のサブディ レ ク ト リ に以下のファ イルが作成されます。

CurrencyExchangeService.tld ファ イルがカスタムのタグ ラ イブラ リ検索パスに追加されます。 また、 システム ツ リーの [コンポーネン ト ] タブにも追加されます。

ウィザード オプシ ョ ン デフォルト設定

[サービス] CurrencyExchangeService (WSDL フ ァ イルに記述されている唯一のサービス)

[操作名] getRate[パラ メータ名] CurrencyExchangeService_getRate_returnValue

[ポート名] CurrencyExchangePort[パッケージ名] CurrencyExchangeService

[TLD ファ イル名] CurrencyExchangeService.tld[TLD ファ イルをカスタム タグ 検索パスに追加]

選択されている

[JAR ファ イル名] CurrencyExchangeService.jar[JAR ファ イルを PB Java ク ラスパスに追加]

Selected

サブディレク ト リ 作成されるファイル

Classes CurrencyExchangeService.wsdl、 esdweblogger.props、syuproxy.props、 user.encoding.props

Lib CurrencyExchangeService.jar、 log4j-1.2.3.jar、swsclient.jar

Tlds CurrencyExchangeService.tld

PowerBuilder 入門 313

Page 326: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

簡単な JSP アプリケーシ ョ ンでの Web サービスの利用

Web サービスへの呼び出しの追加

こ こでは、 TLD を simple.jsp で使用するためのページ ディ レクティブを追加します。まず、Web サービスの getRate ク ラスの引数を定義するカスタム タグを追加し、次に、その Web サービスによって計算された変換レート を返すサーバ スク リプ ト を追加します。

1 プロパティ ツリーの [コンポーネン ト] タブをクリ ックします。

2 カスタム タグ ライブラリのリス ト を展開して、CurrencyExchangeService.tld を表示します。

3 CurrencyExchangeService.tld ファイルを、 HTML エディ タ内のsimple.jsp ページにドラッグします。

TLD ファ イルの省略名と して使用する接頭辞を入力するよ うに求めるダイアログボッ クスが表示されます。

4 接頭辞として 「cur」 と入力し、 [OK] をクリ ッ クします。

ページに taglib ディレクティブが追加されます。

5 システム ツリーの [コンポーネン ト] タブで、CurrencyExchangeService.tld ファイルを展開します。

6 getRate クラスを、 ページ編集ビューの simple.jsp ページの下部にド ラッグします。

cur:getRate プロパティ ダイアログボッ クスが表示されます。

7 リス ト された各属性の値カラムに以下の値を入力して、[OK] をクリ ックします。

314 PowerBuilder

Page 327: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

ページ編集ビューの simple.jsp ページに、カスタムの JSP アクシ ョンが追加されたこ と を示す <ctl:/> 記号が表示されます。 ソースビューには、 以下に示すカスタムのアクシ ョ ン タグのコードが表示されます。

<cur:getRate country1="usa" country2='<%= request.getParameter ("country_2") %>' />

8 ソース ビューに表示されたページの末尾に以下のコードを入力します。

<P>米国 1 ドルに対する&nbsp;<%= request.getParameter ("country_2") %>

&nbsp;通貨の変換レート :&nbsp;</P>

この行には、サーバ スク リプ ト と HTML スク リプ トの両方が含まれています。 HTML スク リプ トに現れる "&nbsp;" は、 その位置に改行なしのスペースを挿入します。

9 ページ編集ビューに切り替えて、 入力した行の <%=> 記号をクリ ックします。

スク リプ ト ビューの 初のド ロ ップダウン リ ス トに「ServerScript[0]」 が表示されます。 このサーバ スク リプ トは、ソース ビューに入力したスク リプ トです。

10 ページ編集ビューで、 入力した行の末尾にカーソルを置きます。

ソース ビューで、 コ ロンの後に改行なしのスペースを挿入しなかった場合は、 こ こで 〔Space〕 を押して挿入します。

11 スクリプ ト ビューを右クリ ックして、 ポップアップ メニューから [新規スクリプ ト|サーバ| JSP | "<%= ... %>"] を選択します。

スク リプ ト ビューの 初のド ロ ップダウン リ ス ト ボッ クスに、今度は ServerScript[1] が表示されます。 ページ編集ビューには、 2 つめの <%=> 記号が表示されます。

この 2 つめの <%=> 記号がテキス ト行の末尾に表示されない場合は、 それを選択して行の末尾にド ラ ッグします。 このと き、 コロンと <%=> 記号がスペース 1 文字で区切られているこ とを確認します。

属性名 値

country1 usacountry2 <%= request.getParameter ("country_2") %>

PowerBuilder 入門 315

Page 328: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

簡単な JSP アプリケーシ ョ ンでの Web サービスの利用

12 システム ツリーの [コンポーネン ト] タブで、CurrencyExchangeService.tld の下にある getRate クラスを展開します。

13 CurrencyExchangeService_getRate_returnValue 変数を、 スクリプ トビューの ServerScript[1] にドラッグします。

14 HTML エディ タ ツールバーの [保存] ボタンをクリ ッ クします。(オプシ ョ ン) simple.jsp ページと HTML エディ タを閉じます。

316 PowerBuilder

Page 329: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

アプリケーシ ョ ンの構築、 配布、 実行

このステップでは、 JSP アプリ ケーシ ョ ンを配布および実行します。

1 ターゲッ ト プロファイルで選択した EAServer が起動されていることを確認して ください。

2 システム ツリーの [ワークスペース] タブで、 [jspTutorial] を右ク リ ックします。ポップアップ メニューで [配布] を選択します。

配布が終了する と、 出力ウ ィンド ウに 「終了 ターゲッ トの配布

jspTutorial」 と表示されます。

3 jspTutorial ターゲッ トの中を再度右クリ ッ クします。ポップアップ メニューで [プロパテ ィ] を選択します。

4 ターゲッ ト プロパティ ダイアログボックスで [実行] タブをク リ ックします。[スタート ページ] テキストボックスの横にある参照ボタンをクリ ックします。

URL の選択 ダイアログボッ クスが表示されます。

5 jspTutorial ターゲッ トの中身を示すリス トボックスで 「simplestart.jsp」を選択し、 [OK] をク リ ックします。

ターゲッ ト プロパティ ダイアログボッ クスに、 ターゲッ トのスタート ページと して /simplestart.jsp が表示されます。

6 [実行用の配布構成]ドロップダウン リストで「jspTutorialDeployConfiguration1」を選択し、[OK]をクリ ッ クします。

7 メニュー バーから [実行|選択して実行] を選択します。ターゲッ トの選択 ダイアログボックスで 「jspTutorial」 を選択します。 [OK] をク リ ックします。

デフォルトのブラウザに、 simplestart.jsp Web ページが表示されます。

8 ドロップダウン リストで国を選択して [クエリ送信] をクリ ックします。

選択した国の通貨の為替レートが計算され、結果が simple.jsp ページに表示されます。

PowerBuilder 入門 317

Page 330: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

4GL JSP アプリケーシ ョ ンでの Web サービスの利用

4GL JSP アプリケーシ ョ ンでの Web サービスの利用

現在の学習個所JSP ターゲッ ト の作成簡単な JSP アプリ ケーショ ンでの Web サービスの利用

> 4GL JSP アプリ ケーショ ンでの Web サービスの利用

このレッスンでは、 4GL JSP を作成し、 それに Web サービスを追加します。 simple.jsp ページで使用したのと同じ Web サービスを利用します。

• 4GL JSP ページの作成

• 4GL ページへの Web サービスと ページ変数の追加

• 4GL JSP ページへのテーブルの追加

• Web サービスへの呼び出しの完了

• 4GL JSP ページの構築、 配布、 実行

4GL JSP ページの作成

1 メニュー バーから [フ ァ イル|新規作成] を選択し、 [Web] タブをクリ ックします。

2 [ターゲッ ト] ドロップダウン リス トで 「jspTutorial」 が選択されていることを確認します。[4GL Web/JSP ページ] アイコンを選択して、 [OK] をク リ ッ クし、 さらに [次へ] をクリ ックします。

4GL Web Page ウ ィザードが開き、 [新規 HTML ファ イルの指定]ページが表示されます。

3 [タイ トル] テキス トボックスに 「fourgl」 と入力し、 [次へ] を何度かクリ ックして [EAServer プロファイルの選択] ページを表示します。

初に [次へ] をク リ ッ ク したと きに [フ ァ イル名] フ ィールドのファ イル名が、 fourgl.jsp に変わり ます。 以降、 [次へ] をク リ ック して表示される各ページでは、 デフォルト値を受け入れます。

318 PowerBuilder

Page 331: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

4 ウィザードの [EAServer プロファイルの選択] ページにある [EAServerコンポーネン トのスキップ] チェ ッ クボックスをオンにして、 [次へ] をクリ ッ クします。

5 [完了] ボタンをクリ ックします。

jspTutorial ターゲッ ト内に fourgl.jsp ページが作成されます。 作成されたページが HTML エディ タ内に開きます。 また、 ターゲッ ト用に作成したほかのページと一緒にシステム ツ リーにも リ ス ト表示されます。

6 fourgl.jsp ページのデフォルトのテキストの 「ここにデータを置きます」をハイライ ト表示します。新しいテキスト と して 「通貨変換」 と入力します。

7 入力したテキスト 内にカーソルを置いて、メ ニュー バーから[ 書式|段落]を選択します。

段落 ダイアログボッ クスが表示されます。

8 [段落スタイル] ドロップダウン リス トから 「見出し 1」 を選択し、 [テキスト配置] フ ィールドから 「中央」 を選択して、[OK] をクリ ックします。

入力したテキス トが、見出し 1 フォン ト スタイルで表示されます。

9 テキストの末尾にカーソルを置き、 〔Enter〕 を押します。「(4GL Version)」 と入力して 〔Enter〕 を押します。

10 HTML エディ タ ツールバーの [保存] ボタンをクリ ックします。

4GL ページへの Web サービスとページ変数の追加

1 プロパティ ツリーの [コンポーネン ト] タブをク リ ックします。

2 カスタム タグ ライブラリのリスト を展開して、CurrencyExchangeService.tld ファイルを表示します。

JSP Web サービス プロキシ ウ ィザードによって、 Currency Exchange Service ラ イブラ リがカスタム タグ ライブラ リの リ ス トに追加されます。 このライブラ リは、 simple.jsp ページの taglib ディ レクティブで追加したライブラ リ と同じものです。

PowerBuilder 入門 319

Page 332: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

4GL JSP アプリケーシ ョ ンでの Web サービスの利用

3 CurrencyExchangeService.tld ファイルを、 HTML エディ タ内のfourgl.jsp ページにドラッグします。

TLD ファ イルの省略名と して使用する接頭辞を入力するよ うに求めるダイアログボッ クスが表示されます。

4 接頭辞として 「cur」 と入力し、 [OK] をクリ ッ クします。

ページに taglib ディレクティブが追加されます。

5 ページ編集ビューで fourgl.jsp ページを右クリ ックします。ポップアップ メニューで [ページ プロパティ] を選択し、 [変数] タブをクリ ックします。

6 変数に以下のプロパティを追加して、 [OK] をクリ ックします。

7 HTML エディ タ ツールバーの [保存] ボタンをクリ ッ クします。

4GL JSP ページへのテーブルの追加

1 ページ編集ビューの fourgl.jsp ページで、入力したテキストを含む行の下にカーソルを置きます。

2 メニュー バーから [テーブル|テーブル ウィザード] を選択します。

3 テーブル内の行数に 「2」 と入力して、 [次へ] をク リ ックします。テーブル内の行数に 「3」 と入力して、 [完了]、 [OK] をク リ ックします。

fourgl.jsp ページにテーブルが追加されます。 テーブル内の各セルには、 「Cell」 とい う単語がデフォルトで設定されます。

4 テーブルの左上隅のセルでデフォルトのテキス ト をハイライ ト表示します。セル内に、 「通貨 From:」 と入力します。

カラム 入力または選択する値

変数名 v_unitsData Type double

イニシャル値 100.ラ イフタイム page

ク ラ イアン ト アクセス NONE

320 PowerBuilder

Page 333: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

5 テーブルの左下隅のセルでデフォルトのテキス ト をハイライ ト表示します。セル内に、 「通貨 To: 」 と入力します。

6 テーブルの上中央のセルでデフォルトのテキス ト をハイライ ト表示します。メニュー バーから [挿入|フォーム フ ィールド|リストボックス] を選択します。

リ ス ト ボッ クスプロパティ ダイアログボッ クスが表示されます。

7 [サーバに送る名前] テキストボックスに 「country_from」 と入力します。リス トボックスプロパテ ィ ダイアログボックスで [オプシ ョ ン] タブをクリ ッ クします。[オプシ ョ ン] リス トに以下の表示テキスト と値を入力します。

8 アメ リカのエン ト リの横にある [選択済み] カラムのチェ ックボックスをオンにして、 [OK] をク リ ックします。

テーブルの上中央のセルにリ ス ト ボッ ク スが表示されます。 ページ編集ビューには、アメ リ カの値だけが表示されます。プレビュービューでは、 ド ロ ップダウン リ ス ト で入力したすべての国が表示されます。 ただし、 プレビュー ビューで編集はできません。 編集を続けるには、 ページ編集ビューに戻る必要があ り ます。

9 テーブルの下中央のセルでデフォルトのテキス ト をハイライ ト表示します。メニュー バーから [挿入|フォーム フ ィールド|リストボックス] を選択します。

10 [サーバに送る名前] テキストボックスに 「country_to」 と入力します。リス トボックスプロパテ ィ ダイアログボックスで [オプシ ョ ン] タブをクリ ッ クします。手順 7 で入力したのと同じ表示テキスト と値を入力します。

テキスト 値

中国 chinaフランス euro

イギ リ ス united kingdomシンガポール singapore

アメ リ カ usa

PowerBuilder 入門 321

Page 334: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

4GL JSP アプリケーシ ョ ンでの Web サービスの利用

11 フランスのエン ト リの横の [選択済み] カラムのチェ ッ クボックスをオンにして、 [OK] をクリ ッ クします。

テーブルの下中央のセルに リ ス ト ボッ クスが表示されます。 ページ編集ビューには、 フランスの値だけが表示されます。

12 テーブルの右上隅のセルでデフォルトのテキス ト をハイライ ト表示します。メニュー バーから [挿入|フォーム フ ィールド|シングルラインテキスト] を選択します。

13 テキスト コン ト ロール プロパティ ダイアログボックスの [名前] テキストボックスに 「units」 と入力します。

14 テキスト コン ト ロール プロパティ ダイアログボックスの [バインド] タブをクリ ックします。コンポーネン ト名に 「<Page Variable>」、 プロパテ ィ名に 「v_units」 を選択して、 [OK] をクリ ックします。

fourgl.jsp ページが次のよ うに表示されるはずです。

15 テーブルの右下のセルでデフォルトのテキス ト をハイライ ト表示して、〔Delete〕 を押します。

デフォル ト のテキス ト が削除されます。 この後の手順で、 このセルに getRate Web サービスへの呼び出しを入力し、返された計算結果をこのセルに設定します。

322 PowerBuilder

Page 335: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

Web サービスへの呼び出しの完了

1 システム ツリーの [コンポーネン ト] タブで、CurrencyExchangeService.tld ファイルを展開します。getRate クラスを、 fourgl.jsp ページのテーブルの右下のセルにドラッグします。

cur:getRate プロパティ ダイアログボッ クスが表示されます。

2 リスト された各属性の値カラムに以下の値を入力して、[OK] をク リ ックします。

ページ編集ビューのテーブルの右下のセルに、 カスタムの JSP アクシ ョ ンが追加されたこ と を示す <ctl:/> 記号が表示されます。ソース ビューには、 後のセル内のコードが次のよ うに表示されます。

<cur:getRate country1="<%= country_from.value %>" country2="<%= country_to.value %>" />

3 スクリプ ト ビューの内部を右クリ ックして、 ポップアップ メニューから[新規スクリプ ト|サーバ| JSP | "<%= ... %>"] を選択します。

ス ク リ プ ト ビューの 初のド ロ ップダウン リ ス ト ボッ ク スに、ServerScript[0] が表示されます。

4 [コンポーネン ト] タブで、 CurrencyExchangeService.tld の下の getRate クラスを展開します。CurrencyExchangeService_getRate_returnValue 変数を、 スク リプ トビューの ServerScript[0] にドラッグします。

スク リプ ト ビューに、“CurrencyExchangeService_getRate_returnValue” とい う テキス トが表示されます。

5 スクリプ ト ビューにドラッグしたテキストの直後に 「.floatValue()*v_units」 と入力します。

属性名 値

country1 <%= country_from.value %>country2 <%= country_to.value %>

PowerBuilder 入門 323

Page 336: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

4GL JSP アプリケーシ ョ ンでの Web サービスの利用

サーバ スク リプ トは、ド ッ ト表記を使用して floatValue メ ソ ッ ドを呼び出し、 戻り値をキャス ト してから、 それに v_units ページ変数の値を掛けて 終結果を得ます。 ス ク リ プ ト全体は次のよ うになり ます。

CurrencyExchangeService_getRate_returnValue.floatValue()* v_units

6 サーバ スクリプ ト記号 “<%=>” が、 テーブル右下のセル内の “<ctl:/>”記号の後ろに表示されていることを確認します。

ページ編集ビューで、 サーバ スク リプ ト記号 <%=> を移動したい場所にド ラ ッグアンド ド ロ ップします。 この記号は、 ページ編集ビューの <ctl:/> 記号によって表されるカスタム タグ ライブラ リへの呼び出しの後に置く必要があ り ます。

7 テーブルの右にカーソルを置き、 〔Enter〕 を押します。新しい行にカーソルを置いた状態で、[挿入|フォーム フ ィールド|コマンドボタン] を選択します。

Button プロパティ ダイアログボッ クスが表示されます。

8 [ラベル] テキス トボッ クスに 「変換レートの取得」 と入力して、 [OK]をクリ ックします。

9 (オプシ ョ ン) ソース ビューの[Submit]ボタンのコードの後、閉じ Bodyタグの前に、 次のテキストを入力します。

<HR id="HR1">

<P>通貨変換 Web サービス : <A href="http://www.xmethods.net">www.xmethods.net</A> </P> <P>wsdl: <A id="WSDLURL" href= "http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl">http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl</A></P>

Web サービスを利用するにあたって、 Web サービスの所有者を明示しておきます。

10 fourgl.jsp ページに対する変更を保存します。

324 PowerBuilder

Page 337: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

レッスン 14 JSP Web サービス アプリケーシ ョ ンの作成

4GL JSP ページの構築、 配布、 実行

このステップでは、 JSP アプリ ケーシ ョ ンを配布および実行します。

1 EAServer が起動されていることを確認します。

2 システム ツリーの [ワークスペース] タブで、 jspTutorial ターゲッ ト を右クリ ッ クして、 ポップアップ メニューから [配布] を選択します。

配布が終了する と、 出力ウ ィンド ウに 「終了 ターゲッ トの配布

jspTutorial」 と表示されます。

3 jspTutorial ターゲッ ト を再度右クリ ッ クします。ポップアップ メニューで [プロパテ ィ] を選択します。

4 ターゲッ ト プロパティ ダイアログボックスで [実行] タブをク リ ックします。[スタート ページ] テキストボックスの横にある参照ボタンをクリ ックします。

URL の選択 ダイアログボッ クスが表示されます。

5 jspTutorial ターゲッ トの中身を示すリス トボックスで 「fourgl.jsp」 を選択し、 [OK] をク リ ックします。

ターゲッ ト プロパテ ィ ダイアログボッ ク スに、 ターゲッ ト のスタート ページと して /fourgl.jsp が表示されます。

6 システム ツリーで jspTutorial ターゲッ ト を右クリ ックします。ポップアップ メニューで [実行] を選択します。

デフォルトのブラウザが開きます。 URL アド レス ボッ クスには、作成した fourgl.jsp Web ページのファイル パスが入っています。選択した以下のデフォルト値で変換レートが計算され、 表示されます。

7 ブラウザで、 [通貨 From] または [通貨 To] ドロップダウン リストで別の国を選択します。[Get Conversion Result] ボタンをク リ ックします。

パラメータまたは変数 デフォルト値

country1 United Statescountry2 Francev_units 100

PowerBuilder 入門 325

Page 338: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

次のステップについて

fourgl.jsp Web ページのテーブルの右下セルに新しい計算結果が表示されます。

8 fourgl.jsp Web ページのテーブルの右上セルに別の単位を入力して、 [変更レートの取得] ボタンをクリ ックします。

入力した単位を使って計算が実行されます。

次のステップについてお疲れさまでした。 これでチュー ト リ アルの第 4 部が終了しました。PowerBuilder での JSP ターゲッ ト と JSP Web サービスの基本的な使い方が理解できたこ と と思います。

さ らに練習を積むために、 このチュート リ アルで説明した JSP アプリケーシ ョ ンを Tomcat サーバや、 別の JSP 1.2 互換のサーバに配布してください。 また、 ユーザ定義のデータ型を使用した別の Web サービスを利用して ください。 ユーザ定義のデータ型については、 『Web ターゲッ ト と JSP ターゲッ トでの作業』 マニュアルの 「JSP ターゲッ ト 」 の章を参照して ください。

このマニュアルの冒頭の 「本書について」 に、PowerBuilder の各マニュアルについての説明が記載されています。

PowerBuilder のコード例 (Web ターゲッ トのサンプルを含む) については、 Windows のスタート メニューで [プログラム| Sybase |PowerBuilder 9.0 | PB 9 コード サンプル] を選択して参照して ください。

326 PowerBuilder

Page 339: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

索引

CCHOOSE CASE 文 220Clicked イベン ト

CommandButton コン ト ロール 116, 118メニュー項目 156

Close イベン ト、 アプリ ケーシ ョ ン オブジェク ト 119

COMMIT 文 137Constructor イベン ト、 ユーザ オブジェク ト 105

DDBError イベン ト 133, 136DBParm パラ メータ 110DeleteRow 関数 137

EEAS Demo DB データベース

接続 91セッ ト アップ 27

EAServer 275

GGetActiveSheet 関数 156

HHALT 文 118

PowerBuilder 入門

IInsertRow 関数 137

JJSP Web サービス

ウ ィザード 312カスタム タグ ラ イブラ リの呼び出し 314, 323

JSP ターゲッ ト ウ ィザード 304, 307, 318

MMDI アプリケーシ ョ ン 21, 23

OOpen イベン ト

シート ウ ィンド ウ 139フレーム ウ ィンド ウ 87

PParent (PowerScript 代名詞) 111PBL (PowerBuilder Library (PBL) を参照)Pcode (疑似コード) 234PowerBuilder Library (PBL) 19PowerDynamo Web サイ ト 247PowerScript 4PowerTips 9Profile String 関数 106

327

Page 340: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

索引

QQuick Select

ソート条件 164使い方 163

RRetrieve 関数

概要 136引数の指定 140

ROLLBACK 文 137RowFocusChanged イベン ト 138

SSELECT 文 171Select ペインタ

概要 170タブ領域 171

SetFocus 関数 136, 137SetRowFocusIndicator 関数 136SetTransObject 関数 139SQL Select データ ソース 169SQLCA (SQL 通信領域) 104, 139SQL 構文、 Select ペインタ 171SQL 文

COMMIT 137ROLLBACK 137SELECT 171

SQL ペインタ 169

Tthis (PowerScript 代名詞) 139To-Do リ ス ト 101TRY-CATCH 文 220, 223

UUpdate 関数 137

328

WWeb ターゲッ ト

JSP 303PowerDynamo 245概要 6

Web データウ ィンド ウ 287Web データウ ィンド ウ コンテナ 277Web ページ

概要 245グラフ ィ ッ ク 254データウ ィンド ウの使用 279配布 292

Web ページの作成 245WHERE 句 172

アアイコン、 アプリ ケーシ ョ ン 40アプリ ケーシ ョ ン

MDI 21, 23インターネッ ト 5構築 233実行 46, 275定義 12デバッグ 199分散 5

アプリ ケーシ ョ ン オブジェク トOpen イベン ト 52アイコン 40, 43定義 12

アンパサンド、 メニュー項目のアクセラレータ キー 145

イイベン ト

Clicked 114, 156Close 119Constructor 105DBError 133LoseFocus 223RowFocusChanged 138

PowerBuilder

Page 341: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

索引

概要 4Constructor 223追加 220メニュー スク リプ トからの発生 156

ウウ ィザード

4GL 262JSP Web サービス 312JSP Web ページ 307JSP ターゲッ ト 304Web ページ 251, 279接続オブジェク ト 101データウ ィンド ウ 162テーブル 320プロジェク ト 235

ウ ィンド ウ応答 66概要 13コマンドボタン コン ト ロール 78コン ト ロールの削除 72作成 66スク リプ ト を開く 86スタティ ッ ク テキス ト コン ト ロール 74先祖 123タブ順序 80データウ ィンド ウ コン ト ロール 126ピクチャ コン ト ロール 72プレビュー 83保存 66

ウ ィンド ウ ペインタ、 コン ト ロールの削除 72

オオート スク リプ ト

設定のシ ョート カッ ト 115使い方 116, 135

オブジェク ト指向 5オブジェク ト レベル

関数 17

PowerBuilder 入門

構造体 18

カ拡張属性 100, 181関数

DeleteRow 137GetActiveSheet 156InsertRow 137ProfileString 106Reset 137Retrieve 136SetFocus 136, 137SetRowFocusIndicator 136SetTransObject 139Update 137オブジェク ト レベル 17概要 4グローバル 17追加 220

ククエ リ 17ク ラス ユーザ オブジェク ト 19グラフ ィ ッ ク 254ク リ ップ ウ ィンド ウ 7グローバル

関数 17構造体 18変数 107

グローバル変数の宣言 107

ケ継承

ウ ィンド ウ 123オブジェク ト指向プログラ ミ ング 5メニュー 149ユーザ オブジェク ト 126

検索、 データベースのデータ 290検索引数

329

Page 342: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

索引

WHERE 句 172作成 171

検証 266

コ構造体 18コ メン ト

ウ ィ ンド ウ 68スク リプ ト ビュー 88データウ ィンド ウ 166, 177メニュー 150

コンテキス ト ヘルプ、 追加 82コン ト ロール

コマンド ボタン 78削除 72スタティ ッ ク テキス ト 74ピクチャ 72複製 74プロパティの指定 74, 77, 79

コン ト ロールの削除 72

ササイズ、 メ イン ウ ィンド ウ 43

シシート ウ ィンド ウ、 メニュー 150システム ツ リー 7実行ファイル

アプリ ケーシ ョ ン アイコン 40, 43オブジェク トの再生成 237マシン コードの生成 234

出力ウ ィンド ウ 7初期化ファイル

odbc.ini 92pb.ini 96pbtutor.ini 106

330

ス垂直スクロールバー 130スク リプ ト

エラー ウ ィンド ウ 90オート スク リプ トの設定シ ョート カッ ト 115オート スク リプ トの使い方 116, 135概要 4コンパイル 90先祖スク リプ トの表示 132ユーザ イベン ト 134

スク リプ ト ビューエラー ウ ィンド ウ 90形式を指定して貼り付けコマンド 114コ メン トの使用 88説明 82プロ ト タイプ領域 136

スク ロールバー、 垂直 130スタイルバー 9

セ接続サービス マネージャ 101先祖

ウ ィンド ウ 123スク リプ ト 132

タターゲッ ト 6代名詞、 PowerScript

this 139親 111, 112

タブ順序 80タブラ提示様式 163

チチュート リ アル

初期化ファイル 106セッ ト アップ 27ファ イル 27

PowerBuilder

Page 343: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

索引

チュート リ アルのセッ ト アップ 27

ツツールバー

実行時のアプリ ケーシ ョ ン 154テキス トの表示 61

テ提示様式

タブラ 163データウ ィンド ウ オブジェク ト 163, 169フ リーフォーム 169

データウ ィンド ウ オブジェク トQuick Select でのカラムの選択 163WHERE 句 172概要 14, 161拡張 178カラムの再配置 178カラムの整列 180検索引数 171作成 163, 169提示様式 163, 169データウ ィンド ウ コン ト ロールへのアタッチ

184, 187, 193データ ソース 163, 169表示順序 163保存 166, 176

データウ ィンド ウ オブジェク トでのカラムの整列 180

データウ ィンド ウ オブジェク トのカラム再配置 178整列 180

データウ ィンド ウ オブジェク トのサマ リ区域 162

データウ ィンド ウ オブジェク トの詳細区域 162データウ ィンド ウ オブジェク トのフッ タ区域

162データウ ィンド ウ オブジェク トのヘッダ区域

162, 164データウ ィンド ウ コン ト ロール 126

PowerBuilder 入門

データウ ィンド ウ データ式 140データウ ィンド ウ ペインタ

WHERE 句 172区域 162検索引数 171

データ ソースQuick Select 163SQL Select 169

データベース拡張属性 100更新 294, 295実行時のデータベースへの接続 104接続 6データの検索、 表示および操作 14表定義 96

データベース接続概要 6, 92ト ランザクシ ョ ン オブジェク ト 104

データベース プロファイル 92データベース ペインタ、 使い方 96テーブル ウ ィザード 320デバッグ

ウォッチの設定 209概要 199コードのステップ実行 204デバッグ モードでの実行 204ブレークポイン トの追加 200

トト ランザクシ ョ ン オブジェク ト 104, 139ド ロ ップダウン データウ ィンド ウ編集様式 181ド ロ ップダウン メニュー

項目の追加 144説明 17

ハ背景色、 3D がデフォルト オプシ ョ ン 71背景色、 ウ ィンド ウ 67パワーバー 8

331

Page 344: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

索引

ヒビジュアル ユーザ オブジェク ト 18ビュー

スタ ッ ク 57操作 54タイ トルバーの固定 56ド ッキング 56浮動 56レイアウ ト スキーマの保存 58

ビュー、 タイプHTML プレビュー (データウ ィンド ウ ペインタ)

165Syntax (Select ペインタ) 171オブジェク ト (データベース ペインタ) 97オブジェク トの詳細 (データベース ペインタ)

99オブジェク ト レイアウ ト (データベース ペイン

タ) 98スク リプ ト 82テーブル レイアウ ト (Select ペインタ) 170デザイン (データウ ィンド ウ ペインタ) 162プレビュー (データウ ィンド ウ ペインタ) 165プレビュー (メニュー ペインタ) 144プロパティ 67レイアウ ト 67

ビューのド ッキング 56

フ浮動

ツールバー 61ビュー 56

フ リーフォーム提示様式カラム 178データウ ィンド ウ定義 169

ブレークポイン ト 200フレーム ウ ィンド ウ 87プロジェク ト ウ ィザード 235

332

ヘペインタ 7ペインタバー

コン ト ロールの追加 70使い方 9ポップアップ メニュー 61

ヘルプコンテキス ト メ ッセージ 82マイク ロヘルプ 152

編集様式、 ド ロ ップダウン データウ ィンド ウ 181

変数gnv_connect 107インスタンス 107グローバル 107検証 266命名規約 108

ホボタン、 追加 285ポップアップ メニュー

概要 61ペインタバー 61

ママイク ロヘルプ 152マウスの右ボタン、 ポップアップ メニュー 61マシン コード 234マネージャ、 接続サービス 101

メメ イン ウ ィンド ウ、 サイズ 43メニュー

概要 16継承 149作成 149スク リプ トの追加 156ツールバー 146, 154

PowerBuilder

Page 345: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

索引

保存 150メニュー項目 144

メニュー項目スク リプ トの追加 156説明 16定義 144

メニュー バー、 説明 16メニュー ペインタ、 使い方 144

ユユーザ イベン ト

スク リプ トの追加 134定義 134メニュー スク リプ トからの発生 156

ユーザ オブジェク ト概要 18使い方 126

ララ イブラ リ

JSP カスタム タグ 314アプリ ケーシ ョ ンの探索パス 124オブジェク トの再構築 142概要 19動的 234

レ例外

送出 220捕捉 223ユーザ定義 218

ワワークスペース 6

PowerBuilder 入門

333
Page 346: PowerBuilder 入門 · PDF file目次 PowerBuilder 入門 v アプリケーションの Close イベントに対するコードの 追加

334 PowerBuilder