Top Banner
PowerBuilder 入門 PowerBuilder® Classic 12.5
324

PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Sep 20, 2018

Download

Documents

dangkhue
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門

PowerBuilder® Classic12.5

Page 2: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

DOCUMENT ID: DC37772-01-1250-01

LAST REVISED: July 2011

Copyright © 2011 by Sybase, Inc. All rights reserved.

本書は Sybase ソフ ト ウェアの付属マニュアルであ り、 新しいマニュアルまたはテクニカル ノート で特に示されないかぎり、 後続のリ リースにも付属します。 このマニュアルの内容は、 予告なく変更される こ とがあ り ますが、 Sybase,Inc. およびその関連会社では内容の変更に関して一切の責任を負いません。 このマニュアルに記載されているソフ ト ウェアはライセンス契約に基づいて提供されるものであ り、 無断で使用するこ とはできません。

予定したソフ ト ウェアのリ リース日にのみアップグレードを提供します。 本書に記載されている内容は、 Sybase, Inc. およびその関連会社の書面による事前許可を得ずに、 電子的、 機械的、 手作業、 光学的、 またはその他のいかなる手段によっても複製、 転載、 翻訳するこ とを禁じます。

Sybase の商標は Sybase の商標ページの http://www.sybase.com/detail?id=1011207 に記載されています。記載の Sybase およびマークは Sybase, Inc の商標です。 ® はアメ リ カ合衆国における登録商標を示します。

SAP および本書で記載されている SAP の他の製品とサービス、 さ らにそれらに対応するロゴは、 ド イツおよび世界各国における SAP AG の商標または登録商標です。

Java およびすべての Java ベースのマークは、 米国および他国における Sun Microsystems, Inc. の商標または登録商標です。

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

本書で記載されている上記以外の社名および製品名は、 関連各社の商標または登録商標の場合があ り ます。

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

Page 3: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

目次

PowerBuilder 入門 iii

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

第 1 部 POWERBUILDER の紹介

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

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

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

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

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

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

レ ッ スン 2 PowerBuilder の環境のカスタマイズ ............................................ 53システム ツリー ウィンドウの操作 ............................................... 54オブジェク ト を開く ....................................................................... 56ビューの操作.................................................................................. 58

Page 4: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

目次

iv PowerBuilder Classic

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

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

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

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

指定 .................................................................................. 82コマンドボタン コン ト ロールの追加...................................... 83コマンドボタン コン ト ロールのプロパティの指定 ................ 84

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

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

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

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

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

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

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

コードの追加 .................................................................. 126

Page 5: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

目次

PowerBuilder 入門 v

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

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

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

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

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

コン トロール (dw_detail) の追加 ................................. 139ユーザ オブジェク トから継承されたスクリプ トの参照 ....... 141

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

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

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

ファイル メニューの修正 ...................................................... 154ヘルプ メニュー項目の有効化............................................... 157

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

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

レ ッ スン 7 データウィ ンドウ オブジェク トの作成 ........................................ 171データウィ ンドウ オブジェク トの新規作成とプレビュー .......... 172データウィ ンドウ オブジェク トの保存 ....................................... 1781 つめのデータウィ ンドウ オブジェク トの表示の変更 .............. 1792 つめのデータウィ ンドウ オブジェク トの作成 ......................... 181

データ ソースおよびスタイルの選択 .................................... 181テーブルとカラムの選択 ....................................................... 182検索引数の定義 ..................................................................... 183WHERE 句の指定.................................................................. 184データウィ ンドウ ペインタでのデータウィ ンドウの

表示 ................................................................................ 186データウィ ンドウ オブジェク トの保存 ................................ 188

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

Page 6: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

目次

vi PowerBuilder Classic

ラベルとカラムの整列 .......................................................... 191ドロップダウン データウィ ンドウ編集スタイルの

矢印の表示...................................................................... 193

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

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

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

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

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

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

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

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

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

レ ッ スン 11 アプリケーシ ョ ン配布の準備 ....................................................... 251プロジェク ト オブジェク トの作成 .............................................. 252実行ファイルの作成 ..................................................................... 256シ ョート カッ トの作成 ................................................................. 259実行ファイルのテス ト ................................................................. 261

Page 7: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

目次

PowerBuilder 入門 vii

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

レッ スン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換 .................................................... 265PowerBuilder でのチュート リアルの実行.................................... 266.NET Web フォーム アプリケーショ ンへの変更 ......................... 268.NET Web フォーム ターゲッ トおよびプロジェク トの作成 ....... 271.NET Web フォーム プロジェク トの配布 .................................... 275Web ブラウザからのアプリケーシ ョ ンの実行 ............................ 278

第 4 部 WINDOWS フォーム アプリケーシ ョ ンの構築

レッ スン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換 .................................................... 285PowerBuilder でのチュート リアルの実行.................................... 286Solutions ディレク ト リへのリソース ファイルのコピー ............ 288.NET Windows フォーム ターゲッ トおよびプロジェク トの

作成 ................................................................................ 289Windows フォーム ターゲッ トの配布と実行............................... 292Web ブラウザへのアプリケーシ ョ ンの発行................................ 294Web ブラウザからのアプリケーシ ョ ンのインストールと実行 ... 296ほかのコンピュータへのアプリケーシ ョ ンのインストール........ 300アプリケーシ ョ ンの更新.............................................................. 302

索引.............................................................................................................................................. 305

Page 8: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

目次

viii PowerBuilder Classic

Page 9: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 ix

本書について

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

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

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

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

• 第 3 部 .NET Web フォーム ターゲッ ト を作成して実行するためのチュート リ アルです。

• 第 4 部 .NET Windows フォーム ターゲッ ト を作成して実行するためのチュート リ アルです。

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

項目 マニュアル 説明

インス トール イ ンス ト ール ガイド

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

PowerBuilderの機能の概要と使用方法

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

プロ グ ラマ向けの情報

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

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

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

Page 10: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

x PowerBuilder Classic

項目 マニュアル 説明

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

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

.NET ターゲット情報

アプリ ケーシ ョ ンと コンポーネン トの .NET への配布

.NET Web フ ォ ーム およ びWindows フォームのターゲッ トを構築、 配布、 デバッグ、 実行する方法と、 PowerBuilder の非ビジュ アル オブジェ ク ト から.NET アセンブ リ コンポーネント および Web サービスを作成する方法を解説しています。

リ フ ァ レ ン ス情報

PowerScript® リ ファレンス

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

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

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

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

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

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

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

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

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

Page 11: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

本書について

PowerBuilder 入門 xi

そのほかの情報 製品に関するそのほかの詳細情報については、 PowerBuilder DVD、 日本コンピュータシステム Web サイ ト、および Sybase® 製品マニュアルWeb サイ ト (英語) を参照して ください。

• PowerBuilder DVD には、 製品マニュアルが収められています。 製品マニュアルは、 PDF 形式で提供しています。 PDF ファ イルを読んだり、 印刷した りするには、 Adobe Acrobat Reader が必要です。Adobe Acrobat Reader は、 Adobe Web サイ トから無料でダウンロードするこ とができます。

• 日本コンピュータシステム Web サイ トには、標準の Web ブラウザでアクセスする こ とができるオンラ イン版のマニュアルがあ り ます。 この Web サイ トでは、 PDF 形式でマニュアルを見るこ とができます。

オン ラ イン版のマニュアルには、 日本コンピュータシステムのPowerBuilder のサイ ト http://www.powerbuilder.jp/ にある 「技術情報」 からアクセスできます。

• Sybase 製品マニュアル Web サイ ト (英語) は、標準の Web ブラウザからアクセスでき、 Sybase の製品マニュアルのほか、 EBF/ メンテナンス、 技術文書などへのリ ンク も含まれています。

Sybase 製品マニュアル Web サイ ト には、 Product Manuals のサイ ト

http://www.sybase.com/support/manuals/ からアクセスできます。

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

データベース関連

データベース と の接続

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

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

項目 マニュアル 説明

Page 12: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

xii PowerBuilder Classic

Page 13: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 部 PowerBuilder の紹介

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

Page 14: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの
Page 15: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 3

第 1 章 PowerBuilder の概要

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

内容

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

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

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

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

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

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

項目 ページ

PowerBuilder とは 3

PowerBuilder の環境 6PowerBuilder オブジェク ト 12

Page 16: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder とは

4 PowerBuilder Classic

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

多層アプ リ ケーシ ョ ンでは、 サーバに配布するアプ リ ケーシ ョ ン処理ロジッ クを含むモジュールをコンポーネン ト と呼びます。 カスタム クラス ユーザ オブジェク ト をアプ リ ケーシ ョ ンサーバ コンポーネン トと して設計、 構築、 および配布できます。

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

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

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

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

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

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

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

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

Page 17: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 章 PowerBuilder の概要

PowerBuilder 入門 5

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

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

.NET アプリケーショ ン PowerBuilder の Enterprise エディシ ョ ンを使用している場合は、 .NET環境向けのアプ リ ケーシ ョ ンおよびコンポーネン ト を開発できます。ASP.NET を使用して IIS サーバに配布する Web フォーム アプ リ ケーシ ョ ンや、 スマー ト ク ラ イアン ト機能を使用して配布する Windowsフォーム アプリ ケーシ ョ ンを開発できます。 また、非ビジュアル カスタム ク ラス オブジェク ト を .NET アセンブリに直接変換したり、 非ビジュアル カスタム ク ラス オブジェク ト を .NET Web サービス と して配布したりするこ と もできます。

.NET ターゲッ トについての詳細は、 『アプ リ ケーシ ョ ン と コンポーネン トの .NET への配布』 マニュアルを参照して ください。

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

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

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

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

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

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

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

Page 18: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder の環境

6 PowerBuilder Classic

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

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

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

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

PowerBuilder のターゲッ トは、 以下のいずれかに当てはま り ます。

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

• .NET ターゲッ ト .NET ターゲッ ト は、 アプ リ ケーシ ョ ンを .NETWindows フォームまたは ASP.NET アプ リ ケーシ ョ ンと して配布したり、 非ビジュアル カスタム ク ラス コンポーネン ト を .NET アセンブ リ または Web サービス と して配布したりするために使用します。

• EAServer またはアプリケーシ ョ ンサーバ コンポーネン ト ターゲッ ト

EAServer または J2EE 準拠の別のサーバに配布するコンポーネントです。

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

Page 19: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 章 PowerBuilder の概要

PowerBuilder 入門 7

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

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

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

出力ウィンドウ メ イン ウ ィンド ウの下部にある出力ウ ィンド ウには、 各種の操作 (移行、 構築、 配布、 プロジェ ク ト実行、 オブジェ ク トの保存、 および検索) の出力が表示されます。 出力情報が生成される と出力ウ ィ ンド ウが自動的に開きますが、 出力ウ ィ ンド ウは、 出力ウ ィン ド ウのツールバー ボタンをク リ ッ ク して、 いつでも開く こ とができます。

ペインタ ワークスペース と PowerScript ターゲッ ト を作成したら、ペインタを使用してターゲッ トのコンポーネン ト を構築します。ペインタには、ターゲッ ト内のオブジェク ト を拡張および微調整するための各種ツールが用意されています。

Page 20: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder の環境

8 PowerBuilder Classic

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

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

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

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

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

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

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

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

Page 21: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 章 PowerBuilder の概要

PowerBuilder 入門 9

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

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

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

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

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

Page 22: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder の環境

10 PowerBuilder Classic

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

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

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

ボタン 説明

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

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

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

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

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

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

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

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

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

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

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

Page 23: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 章 PowerBuilder の概要

PowerBuilder 入門 11

PowerBuilder オブジェク トのライブラ リの作成や管理を行う

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

アプリ ケーシ ョ ンサーバへの接続の方法を指定する

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

ファ イルを編集する

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

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

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

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

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

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

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

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

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

PowerBuilder を終了する

ボタン 説明

Page 24: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder オブジェク ト

12 PowerBuilder Classic

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

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

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

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

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

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

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

オブジェク ト 説明

アプ リ ケーシ ョン

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

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

データ ウ ィ ン ドウ

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

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

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

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

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

ユーザ オブジェク ト

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

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

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

Page 25: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 章 PowerBuilder の概要

PowerBuilder 入門 13

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

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

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

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

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

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

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

Page 26: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder オブジェク ト

14 PowerBuilder Classic

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

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

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

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

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

Page 27: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 章 PowerBuilder の概要

PowerBuilder 入門 15

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

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

以下に例を示します。

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

Page 28: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder オブジェク ト

16 PowerBuilder Classic

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

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

Web データウィンドウ データウ ィ ン ド ウ オブジェ ク トは、 XML Webデータウ ィ ン ド ウを使用して (後続の XSLT を XHTML に変換して)XML で生成するか、 XHTML Web データ ウ ィ ン ド ウ を使用し てXHTML で直接生成するか、 または HTML Web データウ ィ ンド ウを使用して HTML で生成してブラ ウザで表示する こ とができます。 Webデータウ ィンド ウを作成するには、EAServer または COM+ で実行している PowerBuilder コンポーネン ト を使用します。

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

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

Page 29: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 章 PowerBuilder の概要

PowerBuilder 入門 17

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

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

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

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

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

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

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

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

Page 30: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder オブジェク ト

18 PowerBuilder Classic

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

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

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

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

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

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

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

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

Page 31: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 1 章 PowerBuilder の概要

PowerBuilder 入門 19

• 非ビジュアル ユーザ オブジェク ト ビジュアル コンポーネン ト を持たない、 再利用可能な処理モジュールです。 標準クラス ユーザ オブジェク トは、 組み込みのシステム オブジェク トからイベン トおよびプロパティ を継承します。非ビジュアル オブジェク トは通常、ビジネス ルールを定義したり、 一連の処理を 1 つの単位と して定義したりするのに使用します。

たとえば、手数料の計算や統計の分析を行う場合に使用できます。こ う した処理を実行するためには、 カスタム ク ラス ユーザ オブジェク ト を定義します。カスタム ク ラス ユーザ オブジェク ト を使用するには、 スク リプ トでオブジェク トのインスタンスを作成し、そのオブジェク ト関数を呼び出します。

関数や変数を定義するカスタム ク ラ ス ユーザ オブジェ ク ト は、PowerBuilder の多層アプ リ ケーシ ョ ンの基礎になり ます。サーバ上で実行するアプ リ ケーシ ョ ンに対しては、 非ビジュアル コンポーネン ト を使用するのが一般的なためです。

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

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

Page 32: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder オブジェク ト

20 PowerBuilder Classic

Page 33: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 21

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

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

内容

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

項目 ページ

ク ラ イアン ト / サーバ アプリ ケーシ ョ ンの構築方法の学習 21.NET Web フォーム アプリ ケーシ ョ ンの構築方法の学習 23

.NET Windows フォーム アプリ ケーシ ョ ンの構築方法の学習 23チュート リ アルの進め方 24

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

Page 34: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

22 PowerBuilder Classic

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

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

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

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

Page 35: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 23

.NET Web フォーム アプリケーシ ョ ンの構築方法の学習このチュート リ アルの第 2 部では、 初の練習で構築したク ライアント サーバ アプリ ケーシ ョ ンを変換します。ただし、ク ラ イアン ト サーバ チュート リ アルを完了していなくても、 .NET Web フォーム チュート リ アルを実行できます。 PowerBuilder の Tutorial\Solutions ディ レクト リ内にアプ リケーシ ョ ンが用意されています。 Web フォーム チュート リ アルから始める場合は、ク ライアン ト サーバ チュート リ アルで構築するアプリ ケーシ ョ ンのかわりにこのアプ リ ケーシ ョ ンを使用してください。

.NET Web フォーム チュート リ アルで構築するアプリ ケーシ ョ ンは、クラ イアン ト サーバ チュート リ アルで構築したアプ リ ケーシ ョ ン と よく似ていますが、 .NET Web フォーム アプリ ケーシ ョ ンは Web ブラウザで実行します。 そのほかに、 Web フォーム アプリ ケーシ ョ ンで選択するページ ナビゲーシ ョ ン ツールバーなども少し異なり ます。チュート リ アルでは、 PowerBuillder で構築できる .NET Web フォーム アプリケーシ ョ ンのすべての機能については説明されていません。 Webフォームの印刷機能、 テーマ設定、 ユーザ管理など、 そのほかの内容については、 『アプ リ ケーシ ョ ン と コンポーネン トの .NET への配布』マニュアルで説明されています。

.NET Windows フォーム アプリケーシ ョ ンの構築方法の学習

このチュート リ アルの第 3 部では、 初の練習で構築したク ライアント サーバ アプリ ケーシ ョ ンを変換します。ただし、ク ラ イアン ト サーバ チュー ト リ アルを完了していな く ても、 .NET Windows フォームチュート リ アルを実行できます。PowerBuilder の Tutorial\Solutions ディレク ト リ内にアプ リ ケーシ ョ ンが用意されています。 Windows フォーム チュート リ アルから始める場合は、 ク ラ イアン ト サーバ チュートリ アルで構築するアプリ ケーシ ョ ンのかわりにこのアプ リ ケーシ ョ ンを使用して ください。

Page 36: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

チュート リアルの進め方

24 PowerBuilder Classic

.NET Windows フォーム チュート リ アルで構築するアプ リ ケーシ ョ ンは、ク ラ イアン ト サーバ チュート リ アルで構築したアプ リ ケーシ ョ ンと よ く似ていますが、 .NET Windows アプ リ ケーシ ョ ンはシン ク ラ イアン ト アプリ ケーシ ョ ン ソ リ ューシ ョ ンと して配布します。チュートリ アルでは、 PowerBuillder で構築できる .NET Windows フォーム アプリ ケーシ ョ ンのすべての機能については説明されていません。 インテリ ジェン ト更新およびブート ス ト ラ ップの使用など、 そのほかの内容については、 『アプ リ ケーシ ョ ン と コンポーネン ト の .NET への配布』マニュアルで説明されています。

チュート リアルの進め方表 2-1 に、 チュート リ アルの各レッスンで行う内容を示します。

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

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

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

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

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

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

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

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

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

Page 37: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 25

所要時間

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

一時中断する場合それまでの作業内容を保存して、 いつでも PowerBuilder を終了できます。 作業を再開する と きは、 チュート リ アルのワークスペースを開いて中断した場所から再開できます。

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

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

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

12 PowerBuilder ク ラ イアン ト サーバ チュー ト リ アルのアプ リケーシ ョ ンを .NET Web フォーム アプリ ケーシ ョ ンに変換する

13 PowerBuilder ク ラ イアン ト サーバ チュー ト リ アルのアプ リケーシ ョ ンを .NET Windows フォーム アプリ ケーシ ョ ンに変換する

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

Page 38: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

チュート リアルの進め方

26 PowerBuilder Classic

学習する内容

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

クライアン ト / サーバ アプリケーシ ョ ン

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

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

機能 目的

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

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

ウ ィンド ウ ペインタ

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

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

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

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

レイアウ ト ビュー

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

スク リプ ト ビュー

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

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

プロジェク ト ペインタ

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

Page 39: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 27

.NET アプリケーショ ン この .NET ターゲッ ト チュート リ アルでは、 表 2-3 に示す基本動作について学習します。

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

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

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

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

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

チ ュー ト リ アルを実行す る ために必要なすべてのフ ァ イ ルは、PowerBuilder のインス トール ディ レク ト リ配下にある Tutorial フォルダに格納されています。 このフォルダのコピーは、 インス トール実行時にユーザ プロファ イル ディレク ト リ配下にも作成されます。チュート リ アルでは、オ リジナルのフォルダではなく、 Tutorial フォルダのコピー を使用します。 Tutorial フォルダのパスは、Windows のバージ ョ ンによって異なり ます。

機能 目的

.NET Web フォーム ウ ィザード

ク ラ イアン ト サーバ ターゲッ ト を Web フォーム ターゲッ ト に変換し、 Web フォーム プロジェク ト と して配布する

グローバル変数 Web フォーム アプリ ケーシ ョ ンのページ ナビゲーシ ョン ツールバーの種類を修正する

.NET Windows フォーム ウ ィザード

ク ラ イアン ト サーバ ターゲッ ト を Windows フォームターゲッ ト に変換し、 Windows フォーム プロジェク トと して配布する

インテリ ジェント更新技術

Windows フォーム アプリケーシ ョ ンを Web ブラウザに発行し、ブラウザからアプリ ケーシ ョ ンをインス トールする

Page 40: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

28 PowerBuilder Classic

• Windows XP、 Windows 2003 の場合

drive:\Documents and Settings\user\My Documents\Sybase\PowerBuilder12.5\Tutorial

• Vista、 Windows 2008 の場合

drive:\Users\user\Documents\Sybase\PowerBuilder 12.5\Tutorial

この文書では、全体を通じて前者 (XP) のパスを使用します。 Vista または Windows 2008 のユーザは、ご自身の環境のパスに読み替えてください。

Tutorial フォルダには、 次のファイルが含まれています。

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

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

Tutorial\Solutions ディレク ト リ

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

ファイル 内容

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

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

tutsport.bmp ビッ トマップ

tshirtw.jpg グラフ ィ ッ ク

tutorial.ico アイコン

Page 41: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

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

Page 42: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの
Page 43: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 31

レ ッ ス ン 1 PowerBuilder の起動

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

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

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

• ターゲッ トの作成

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

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

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

所要時間

約 20 分

Page 44: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

32 PowerBuilder Classic

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

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

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

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

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

チュート リアルをはじめる前に

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

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

Page 45: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 33

PowerBuilder へよ う こそ ダイアログボッ クスが表示されます。

PowerBuilder へよ う こそ ダイアログボッ クスでは、 新しいワークスペースを作成し、 新しいターゲッ ト または既存のターゲッ ト をそのワークスペースに追加できます。

ダイアログボックスが再び表示されないようにするには

[開始時にワーク スペースがない場合、 このダイアログを開 く]チェ ッ クボッ クスをオフにする と、PowerBuilder を起動するたびにPowerBuilder へよ う こそ ダイア ロ グボ ッ ク ス を表示し ません。PowerBuilder セッシ ョ ンを開始するたびに 近使用したワークスペースをロードするには、 [開始時に前回使用したワークスペースを再読込する] チェッ クボッ クスをオンにします。 次に、 [このダイアログボッ クスを閉じる] をク リ ッ ク します。

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

Page 46: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

34 PowerBuilder Classic

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

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

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

Page 47: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 35

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

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

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

4 tutorial フォルダを選択します。

すでにワークスペースを作成している場合は、 ダイアログボッ クスは直前に使用されたワークスペースの場所で開きます。 こ こでは新規にワークスペースを作成するため、 作成場所を次の段落に記載するパスに変更します。

初めてワークスペースを作成する場合は、 新しいワークスペースダ イ ア ロ グボ ッ ク スが drive:\Documents and Settings\user\MyDocuments(Windows XP、Windows 2003)、または drive:\Users\user\Documents (Vista、 Windows 2008) で開き ます。 こ の場所から、Sybase\PowerBuilder 12.5\Tutorial に移動します。チュート リ アルのソ リ ューシ ョ ンは Solutions サブフォルダ内にあ り ますが、 チュート リ アルでは独自のソ リ ューシ ョ ンを自分で作成します。

Page 48: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

36 PowerBuilder Classic

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

6 [保存] をク リ ッ ク します。

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

Page 49: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 37

ターゲッ トの作成

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

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

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

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

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

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

Page 50: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ターゲッ トの作成

38 PowerBuilder Classic

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

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

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

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

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

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

MDI とは

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

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

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

[次へ] をク リ ックしすぎた場合

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

Page 51: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 39

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

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

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

Page 52: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ターゲッ トの作成

40 PowerBuilder Classic

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

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

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

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

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

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

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

Page 53: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 41

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

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

アプ リ ケーシ ョ ン ウ ィ ザー ド は pbtutor.pbt ターゲ ッ ト およびpbtutor.pbl ラ イブラ リ を作成し、 新しい pbtutor アプ リ ケーシ ョ ンをデフォルト アプリ ケーシ ョ ンと して設定します。

システム ツ リーを展開する と、 テンプレー ト アプ リ ケーシ ョ ンウ ィザードで作成されたオブジェ ク ト をすべて表示できます。 システム ツ リーには pbtutor ターゲッ ト のファ イル拡張子は表示されませんが、 ターゲッ ト ファ イルの保存先ディレク ト リは表示されます。

Page 54: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ターゲッ トの作成

42 PowerBuilder Classic

pbtutor.pbl ラ イブラ リはシステム ツ リーの pbtutor ターゲッ トの下に表示されます。 ラ イブラ リには、 ターゲッ ト アプ リ ケーシ ョ ンオブジェク トが入っています。 これは、 ターゲッ ト オブジェク トと同じ名前ですが、ライブラ リ ファ イルの下に表示されます。ウ ィザードによって生成されたほかのオブジェク ト も ラ イブラ リ ファイルの下に表示されます。

Page 55: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 43

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

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

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

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

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

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

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

Page 56: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

44 PowerBuilder Classic

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

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

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

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

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

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

拡張子 ico が見つからない場合

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

Page 57: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 45

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

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

Page 58: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

46 PowerBuilder Classic

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

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

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

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

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

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

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

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

Page 59: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 47

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

プロパティ ビューの外観が異なっている場合

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

4 プロパティ ビューの [その他] タブをク リ ッ ク します。

5 [幅] テキス ト ボッ クスに 「3000」 、 [高さ] テキス ト ボッ クスに「2400」 と入力します。

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

Page 60: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

48 PowerBuilder Classic

6 〔Tab〕 を押します。

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

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

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

Page 61: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 49

アプリケーシ ョ ンの実行

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

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

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

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

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

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

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

Page 62: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

50 PowerBuilder Classic

ウィンドウのタイ トル バーの数字について

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

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

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

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

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

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

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

Page 63: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 1 PowerBuilder の起動

PowerBuilder 入門 51

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

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

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

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

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

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

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

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

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

Page 64: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

52 PowerBuilder Classic

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

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

Page 65: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 53

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

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

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

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

• オブジェク ト を開く

• ビューの操作

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

所要時間

約 25 分

Page 66: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

54 PowerBuilder Classic

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

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

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

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

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

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

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

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

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

ペインタのワークスペースは灰色の (空白の) 領域で、 初はシステム ツ リーの右側にあ り ます。 オブジェク ト を開く と、 こ こに表示されます。

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

Page 67: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 55

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

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

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

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

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

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

デザイン時のプロパティのデフォルト設定に戻します。

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

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

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

Page 68: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

オブジェク ト を開く

56 PowerBuilder Classic

オブジェク ト を開く

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

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

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

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

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

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

Page 69: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 57

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

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

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

アプ リ ケーシ ョ ン オブジェ ク トの Open イベン トは、 ウ ィザードが生成する PowerScript コードで、PowerScript 関数を呼び出してアプリ ケーシ ョ ンのメ イン ウ ィンド ウを開きます。 このチュート リアルの後半でこのコードを修正します。

Page 70: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ビューの操作

58 PowerBuilder Classic

ビューの操作

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

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

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

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

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

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

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

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

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

• タブ付きビューの操作

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

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

Page 71: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 59

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

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

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

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

新規ス ク リプ ト ビューが表示されます。 このス ク リ プ ト ビューは、 タブ付きペインのスタ ッ クには追加されません。 左のド ロ ップダウン リ ス ト ボッ クスに、 アプリ ケーシ ョ ン オブジェク トが一覧表示されます。 ほかの 2 つのド ロ ップダウン リ ス トは空で、 右のド ロ ップダウン リ ス トはグレー表示です。

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

Page 72: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ビューの操作

60 PowerBuilder Classic

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

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

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

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

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

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

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

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

Page 73: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 61

ビューの浮動化と固定化

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

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

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

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

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

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

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

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

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

タブ付きビューの操作

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

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

Page 74: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ビューの操作

62 PowerBuilder Classic

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

ビューをスタ ックから浮動させる別の方法

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

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

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

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

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

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

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

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

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

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

Page 75: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 63

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

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

ツールバーおよびシステム ツリーのレイアウトの保存

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

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

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

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

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

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

Page 76: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

64 PowerBuilder Classic

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

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

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

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

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

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

• ツールバーの浮動化

• ツールバーの再配置

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

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

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

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

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

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

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

Page 77: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 65

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

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

ツールバーの浮動化

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

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

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

ポップアップ メニューについて

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

Page 78: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

66 PowerBuilder Classic

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

パワーバーが浮動型ツールバーに変わり ます。 浮動型ツールバーの形状は調整できます。

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

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

Page 79: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 67

ツールバーの再配置

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

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

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

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

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

ラジオボタンのグレー表示 (指定したツールバーが表示されていない場合)

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

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

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

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

Page 80: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

68 PowerBuilder Classic

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

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

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

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

チュート リアルを中断する場合

PowerBuilder またはチュー ト リ アルのワークスペースは、 必要に応じて閉じるこ とができます。 チュート リ アルを中断した場合に次のレッスンを再開するには、 初にチュート リ アルのワークスペースを開く必要があ り ます。

Page 81: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 69

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

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

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

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

• ウ ィンド ウの新規作成

• コン ト ロールの追加

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

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

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

所要時間

約 25 分

Page 82: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ウィンドウの新規作成

70 PowerBuilder Classic

ウィンドウの新規作成

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

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

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

レスポンス ウィンドウについて

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

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

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

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

ウ ィンド ウ ペインタが開きます。 スタイルバー (文字スタイルとテキス ト配置ボタンを含む)、 およびペインタバー 3 (色および枠のボタンとグレー表示のコン ト ロール配置ボタンを含む) という、2 つのツールバーがあるこ とに注意して ください。

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

Page 83: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 71

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

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

デフォルトのペインタ レイアウトにするには

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

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

ウィンドウにグリ ッ ドを表示していない場合

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

Page 84: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ウィンドウの新規作成

72 PowerBuilder Classic

4 プロパティ ビューの [全般] ページの [タイ トル] テキス トボックスに 「Welcome」 と入力します。

5 [ウィ ンド ウの種類]ド ロップダウン リ スト ボッ クスで「response!」を選択します。[タ イ トルバー] と [コン ト ロール メニュー] チェッ クボッ クスがオンになっているこ とを確認します。[文脈ヘルプ] チェッ クボッ クスをオンにします。

文脈ヘルプ プロパティによって、 ログイン ウ ィ ンド ウのタイ トルバー内の (コン ト ロール メニューの) [閉じる] ボタンの横に [?]ボタンが追加されます。 アプリ ケーシ ョ ンのユーザは [?] ボタンをク リ ッ ク して、ウ ィンド ウ コン ト ロールの Help イベン ト を発生させるこ とができます。 [?] ボタンはレスポンス ウ ィ ンド ウに追加できますが、 メ イン ウ ィンド ウにはできません。

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

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

位置プロパティを入力する別の方法

値は、 手動入力するかわりにスピン コン ト ロールを使用して入力できます。

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

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

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

Page 85: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 73

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

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

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

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

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

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

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

Page 86: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

コン トロールの追加

74 PowerBuilder Classic

コン ト ロールの追加

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

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

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

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

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

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

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

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

ピクチャ ハイパーリ ンク

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

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

スタティ ッ ク テキス ト

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

Page 87: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 75

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

コン ト ロールを 3D 表示にする

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

こ こでは、 コン ト ロールを追加し、 プロパティの一部を変更して、 作成したログイン ウ ィ ド ウを修正します。 このレッスンでは、 以下の項目について学習します。

• ピクチャ コン ト ロールの追加

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

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

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

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

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

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

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

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

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

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

マルチライン エディ ッ ト

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

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

Page 88: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

コン トロールの追加

76 PowerBuilder Classic

ピクチャ コン トロールの追加

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

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

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

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

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

コン ト ロールを削除するには

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

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

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

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

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

Page 89: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 77

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

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

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

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

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

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

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

Page 90: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

コン トロールの追加

78 PowerBuilder Classic

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

このステップでは、 スタテ ィ ッ ク テキス ト コン ト ロールをログインウ ィ ンド ウに追加します。 これらのコン ト ロールを使用して、 説明ラベルをログイン ウ ィンド ウに追加します。

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

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

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

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

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

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

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

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

5 3 つのコン ト ロールの位置を変更し、少なく と もグ リ ッ ド線 2 つ分の間隔をあけるよ うにします。

Page 91: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 79

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

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

1 初に追加したスタティ ッ ク テキス ト コン ト ロールをク リ ッ クして選択します。

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

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

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

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

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

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

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

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

Page 92: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

コン トロールの追加

80 PowerBuilder Classic

スタイルバーの使い方

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

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

サイズを調整するには、 レイアウ ト ビューでコン ト ロールの右上隅のハンドルをウ ィ ン ド ウの右上隅の方へド ラ ッグします。 サイズを変更する方法と してはそれ以外にも、 このコン ト ロールのプロパティ ビューの [その他] ページで適切な値を入力する方法があ り ます。

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

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

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

Page 93: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 81

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

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

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

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

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

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

3 シングルライン エディ ッ ト コン ト ロールの幅を広げます。

4 シングルライン エディ ッ ト コン ト ロールを右ク リ ッ ク して、ポップアップ メニューから [複製] を選択します。

Page 94: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

コン トロールの追加

82 PowerBuilder Classic

複製したシングルライン エディ ッ ト コン ト ロールを、 スタティ ック テキス ト コン ト ロール st_password の右隣に移動します。

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

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

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

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

プロパティ ビューの [全般] ページにシングルライン エディ ッ トコン ト ロールのプロパティが表示されます。 プロパティ ビューが表示されない場合は、 メニュー バーから [ビュー|プロパテ ィ]を選択します。

2 [名前] テキス ト ボッ クス内の 「sle_1」 を選択します。[名前] テキス ト ボッ クスに 「sle_userid」 と入力します。[テキス ト ] テキス ト ボッ クスのデフォルト テキス ト 「未設定」 をク リ アします。

「sle_」 はシングルライン エディ ッ ト コン ト ロールの標準的な接頭辞です。

3 2 番目のシングルライン エディ ッ ト コン ト ロールを選択します。[名前] テキス ト ボッ クスに 「sle_password」 と入力します。[テキス ト ] テキス ト ボッ クスのデフォルト テキス ト 「未設定」 をク リ アします。

Page 95: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 83

[パスワード] チェ ッ クボッ クスをオンにします。

[パスワード] チェ ッ クボッ クスをチェッ ク している と、 実行時にユーザが入力するパスワードがアスタ リ スクで表示されます。

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

このステップでは、 コマンドボタン コン ト ロールを追加します。 これらのボタンをク リ ッ ク したと きに実行するスク リプ トは、 後で定義します。

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

2 シングルライン エディ ッ ト コン ト ロール sle_userid の右側のワークスペースをク リ ッ ク します。

選択した場所にコマンドボタン コン ト ロールが表示されます。

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

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

4 必要に応じてコマンドボタン コン ト ロールの位置を変更し、 2 つのコマンドボタン コン ト ロールの間に適当な間隔を置く よ うにします。

Page 96: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

コン トロールの追加

84 PowerBuilder Classic

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

このステップでは、 コマンドボタン コン ト ロールのプロパティ を定義します。

1 1 番目のコマンドボタン コン ト ロールを選択します。

プロパテ ィ ビューの [全般] ページに、 コマン ドボタン コン トロールのプロパティが表示されます。

2 プロパティ ビューで、 [全般] ページの [名前] テキス トボッ クスに 「cb_ok」 と入力します。[テキス ト ] テキス ト ボッ クスに 「OK」 と入力します。[デフォル ト ] チェ ッ クボッ クスをオンにします。

こ こでは、コン ト ロールの内容を説明するためにデフォルト名「未設定」 を変更して、 ボタンにテキス ト ラベル (OK) を付けています。 [デフォル ト ] チェ ッ クボッ ク スをオンにしたので、 アプ リケーシ ョ ン ユーザが 〔Enter〕 を押すと、 このボタンの Clicked イベン トが発生します (ユーザはボタンをク リ ッ ク してイベン ト を発生させる必要はあ り ません)。

3 2 番目のコマンドボタン コン ト ロールを選択します。[名前] テキス ト ボッ クスに 「cb_cancel」 と入力します。[テキス ト ] テキス ト ボッ クスに 「キャンセル」 と入力します。[キャンセル] チェッ クボッ クスをオンにします。

[キャンセル] チェ ッ クボッ ク スをオンにしたので、 アプ リ ケーシ ョ ン ユーザが 〔Esc〕 を押すと、 このボタンの Clicked イベン トが発生します。

Page 97: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 85

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

現在の学習個所ウィンドウの新規作成コン ト ロールの追加

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

ウ ィ ンド ウ上にコン ト ロールを配置する と、 デフォルトのタブ順序が割り当てられます。 タブ順序は、 〔Tab〕 を押した際に、 複数のコン トロールをフォーカスが移動する順序を決めるものです。

このステップでは、 作成したウ ィンド ウのタブ順序を変更します。

1 メニュー バーから [書式|タブ順序を表示] を選択します。

デフォルト のタブ順序が表示されます。 タブ順序はコン ト ロールの相対位置に基づいて設定され、 コン ト ロールの右上に赤い数字で表示されます。 タブ順序が 0 のコン ト ロールは、 タブを押したと きにフォーカスされないコン ト ロールです。

2 sle_userid コン ト ロールの [タブ順序番号] をク リ ッ ク します。 コン ト ロールのタブ順序が 「10」 になっていない場合は、 「10」 を入力します。

新しいタブ順序の番号を入力できるのは、 古い番号が赤い背景の青字に変わった場合のみです。

3 必要に応じて変更を加えて、 ほかのコン ト ロールの値が以下のようになるよ うにします。

設定対象のコン ト ロール コン ト ロール名 適用される値

パスワード を入力するためのシングルライン エディ ッ ト コン ト ロール

sle_password 20

[OK]ボタンのコマンドボタン コント ロール

cb_ok 30

[キャンセル] ボタンのコマン ドボタン コン ト ロール

cb_cancel 40

Page 98: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

86 PowerBuilder Classic

4 メニュー バーから [書式|タブ順序を表示] を選択します。

これはト グル スイ ッチになっています。 このメニュー項目を選択する と、 変更内容が保存され、 タブ順序の番号がログイン ウ ィ ンド ウから消去されます。 ペインタバー上の [タブ順序] ボタンを使用しても同じ処理ができます。

Page 99: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 87

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

現在の学習個所ウィンドウの新規作成コン ト ロールの追加ウィンドウのタブ順序の変更

> Help イベン トのコーディングとウィンドウのプレビューログイン ウィンドウを開く スクリプ トの記述

このステップでは、 スク リプ ト ビューを使用して、 ログイン ウ ィンドウに配置されているシングルラ イン エディ ッ ト コン ト ロールに状況依存ヘルプ (文脈ヘルプ) メ ッセージを追加し、 そのウ ィ ンド ウをプレビュー表示します。

スクリプ ト ビューの使い方 スク リプ ト ビューには、 3 つのド ロ ップダウン リ ス ト ボッ クスがあ り ます。 初のド ロ ップダウン リ ス ト ボッ クスには、 現在のオブジェク トで利

用可能なコン ト ロールのリ ス トおよび特殊エン ト リである 「Functions」と 「Declare」が表示されています。2 番目のド ロ ップダウン リ ス ト ボックスの内容は、 初のド ロ ップダウン リ ス ト ボッ クスで何を選択したかによって変わり ます。3 番目のド ロ ップダウン リ ス ト ボッ クスには、現在のオブジェ ク トの先祖オブジェク トが存在する場合は、 そのオブジェク トすべてが含まれています。

スク リプ ト ビューがウ ィンド ウ ペインタに表示されていないと きは、レイアウ ト ビューでオブジェク ト をダブルク リ ッ ク して開きます。

最初の ド ロ ッ プダウン リ ス ト ボッ クスでの選択

2 番目のドロップダウンリス トボックスの内容

3 番目のド ロ ッ プダウンリス トボックスの内容

オブジ ェ ク ト ま たはコン ト ロール名

選択したオブジェク ト またはコン ト ロールのイベン トの リ ス ト

現在のオブジェ ク ト に先祖オブジェ ク ト がある場合は、 そのすべて

Functions 編集可能な関数の リ スト。 編集可能な関数が存在しない場合は、「新しい関数」 が表示される

選択した関数と同じシグネチャの関数を持つ、すべての先祖オブジェク ト

Declare グローバル、 共有、 およびインスタンス変数の宣言型のリ ス ト と ローカル外部関数

なし

Page 100: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

88 PowerBuilder Classic

1 レイアウ ト ビューで、一番上のシングルライン エディ ッ ト コン トロールをダブルク リ ッ ク します。

スク リプ ト ビューの 1 番目のド ロ ップダウン リ ス ト ボッ クスにオブジェク ト名 sle_userid が表示されます。

2 スク リプ ト ビューの 2 番目のド ロ ップダウン リ ス ト ボッ クスでHelp イベン ト を選択します。

Help イベン ト のプロ ト タ イプは次のとおりです。 help (integerxpos, integer ypos) returns long [pbm_help]

3 スク リプ ト領域に、 次の PowerScript コード行を入力します。

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)

Page 101: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 89

6 メニュー バーから [ファ イル|実行 / プレビュー] を選択します。またはパワーバーの [オブジェク トの実行 / プレビュー] をク リ ッ ク します。

実行 ダイアログボッ クスが表示されます。 [オブジェク トの種類]リ ス ト ボ ッ ク ス に 「ウ ィ ン ド ウ」 が表示 さ れてい る こ と と、w_welcome オブジェク トが選択されているこ とを確認します。

ウィンドウのプレビュー

ス ク リ プ ト を実行せずにウ ィ ン ド ウをプレビューするには、 メニュー バーの [デザイン|プレビュー] を選択するか、 ペインタバー 1 (パワーバーの [オブジェク トの実行 / プレビュー] と同じアイコン) の [プレビュー] ボタンをク リ ッ ク します。 ただし、今入力した Help イベン トのスク リプ トの結果を表示するには、 スクリプ ト を実行する必要があ り ます。

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

変更内容を保存するかど うかを問い合わせる メ ッセージボッ クスが表示されます。

8 [はい] をク リ ッ ク します。

ログイン ウ ィ ン ド ウの実行時の外観がプレビュー表示されます。ウ ィ ンド ウ レイアウ ト を変更したい場合は、 ウ ィ ンド ウ ペインタのワークスペースに戻って、 ウ ィ ン ド ウ コン ト ロールのサイズ、配置、 フォン ト を変更できます。

Page 102: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

90 PowerBuilder Classic

9 ログイン ウ ィ ンド ウのタイ トル バーで [?] ボタンをク リ ッ ク します。シングルライン エディ ッ ト テキス ト ボッ クス sle_userid の内側をク リ ッ ク します。

「ここにユーザ ID を入力します。」 とい う メ ッセージが表示されます。このメ ッセージは、 pbtutor.hlp ファ イルのコンテキス ト ID 100 に対応しています。このコンテキス ト ID は、Help イベン ト sle_useridの ShowPopupHelp 関数の引数と して指定したものです。

10 ウ ィ ン ド ウ内の任意の場所をク リ ッ クする と、 メ ッセージが閉じます。シングルライン エディ ッ ト テキス ト ボッ クス sle_password の内側をク リ ッ ク します。〔F1〕 を押します。

「ここにパスワードを入力します。」 とい う メ ッセージが表示されます。このメ ッセージは、 pbtutor.hlp ファ イルのコンテキス ト ID 200 に対応しています。

11 ウ ィ ン ド ウ内の任意の場所をク リ ッ クする と、 メ ッセージが閉じます。ログイン ウ ィンド ウのタイ トル バーで [閉じる] ボタンをク リ ック します。

ウ ィンド ウ ペインタのワークスペースに戻り ます。

後で、 アプ リ ケーシ ョ ンを閉じる [キャンセル] ボタンの Clickedイベン トに、 スク リプ ト を追加します。

12 ペインタバー 1 の [閉じる] ボタンをク リ ッ ク して、 ウ ィンド ウペインタを閉じます。

この [閉じる] ボタンには 「x」 のラベルが付いています。

Page 103: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 91

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

現在の学習個所ウィンドウの新規作成コン ト ロールの追加ウィンドウのタブ順序の変更Help イベン トのコーディングとウィンドウのプレビュー

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

このステップでは、 アプリ ケーシ ョ ン起動開始の直後にログイン ウ ィンド ウを開くための、 スク リプ ト を追加します。 アプリ ケーシ ョ ン オブジェク トの Open イベン ト内のスク リプ ト を変更してログイン ウ ィン ド ウを開く こ とができますが、 このチュー ト リ アルでは、 MDI フレーム ウ ィンド ウの Open イベン トからログイン ウ ィンド ウを開く呼び出しを作成します。 このウ ィ ン ド ウ (w_pbtutor_frame) は、 テンプレート アプリ ケーシ ョ ン ウ ィザードで作成されたものです。

ウ ィザードで生成されたスク リプ トでは、 フレーム ウ ィンド ウはアプリ ケーシ ョ ン オブジェ ク ト の Open イベン ト から呼び出されます。MDI フレーム ウ ィンド ウの Open イベン トからログイン ウ ィンド ウを開く ための呼び出しを追加しても、 ログイン ウ ィ ン ド ウはフレームウ ィ ンド ウよ り も先に表示されたままにな り ます。 ログイン ウ ィンドウはレスポンス ウ ィ ンド ウであるため、 フレーム ウ ィンド ウの Openイベン トのスク リプ トは、(ユーザが応答するまで一時的に) 処理がブロ ッ ク されます。

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

• フレーム ウ ィンド ウの Open イベン トの修正

• スク リプ トのコンパイル

Page 104: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

92 PowerBuilder Classic

フレーム ウィンドウの Open イベン トの修正

こ こで、 フレーム ウ ィン ド ウ Open イベン トのスク リプ ト を、 ログイン ウ ィンド ウを開く よ うに修正します。

ウィザードで生成されたスクリプ ト

フレーム ウ ィンド ウの Open イベン トには、 テンプレート アプ リ ケーシ ョ ン ウ ィザードによって生成されたス ク リプ ト がすでに関連付けられています。 このスク リプ トは、 シート (ウ ィ ンド ウ) マネージャと して機能するウ ィザードが生成したユーザ オブジェ ク ト のインスタンスを作成します。 その後で、 Open スク リプ トが ue_postopen イベン ト を呼び出します。

ue_postopen イベン トは、 シート ウ ィン ド ウをシー ト マネージャに登録します。ue_postopen イベン トはウ ィ ンド ウのメ ッセージ キューの後にポス ト され、 (このレッスンで追加された) Open スク リプ トの残りが実行された後で処理されます。

1 メニュー バーから [ファ イル|開く] を選択します。開く ダイアログボッ クスで、 以下の項目を選択するか、 または選択されている項目を確認します。

w_pbtutor_frame オブジェク トは、 テンプレート アプ リ ケーシ ョ ンウ ィザードで作成されたアプリ ケーシ ョ ンのメ イン ウ ィンド ウです。

開 く ダイアログボッ クスの項目 選択 (確認) 項目

ターゲッ ト pbtutor — 現在の唯一のターゲッ ト

ラ イブラ リ pbtutor.pbl — 現在の唯一のラ イブラ リ。 ラ イブラ リ名が完全に表示されない場合は、 ダイアログボッ クスの端をド ラ ッグしてボッ ク スを拡大できます。

オブジェク ト名 w_pbtutor_frameオブジェク トの種類 ウ ィ ン ド ウ — このデータ型の名前付きオブ

ジェク ト を選択するには、 これが選択されているこ とを確認しておく必要があ り ます。

使用 ペインタ

Page 105: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 93

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

ウ ィンド ウ ペインタが開き、 ペインタのワークスペースにアプリケーシ ョ ンのメ イン ウ ィンド ウのビューが表示されます。

ス ク リ プ ト ビ ューが開いていない場合、 ワーク スペースの メニュー バーで [ビュー|スク リプ ト ] を選択するか、 またはレイアウ ト ビューの内側をダブルク リ ッ ク して開きます。

3 スク リプ ト ビューの上部にカーソルを移動します。

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

4 スク リプ ト ビューのタイ トル バーの [プッシュピン] ボタンをクリ ッ ク します。

ス ク リ プ ト ビューのタ イ ト ル バーに、 次の文字列が表示されます。

スクリプ ト - w_pbtutor_frame の open の戻り値のデータ型は long です

5 スク リプ ト ビューで Open イベン トが表示されているこ とを確認します。

ス ク リ プ ト ビューのス ク リ プ ト コードの前にコ メ ン ト が記述されています。

Page 106: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

94 PowerBuilder Classic

コ メン トの使い方

PowerScript では、 2 つの方法でコ メン ト をあらわします。 1 行のコメン トには、 その行の先頭にスラ ッシュを 2 個 (//) を付けます。1 行または複数行のコ メン トには、先頭にスラ ッシュ とアスタ リ スク (/*) を、 末尾にアスタ リ ス ク と スラ ッシュ (*/) を付けます。コ メ ン トは、 コンパイラの解析の対象にはなり ません。

こ こで、 ログイン ウ ィ ン ド ウを表示するための Open イベン トのスク リプ ト を修正します。

6 次に示す行の中にあるカッ コの後ろにカーソルを合わせてク リ ック します。

this.Post Event ue_postopen ( )

ue_postopen イベン トは引数をと り ません。

7 〔Enter〕 を 2 回押します。

ス ク リ プ ト ビューの中に空白行を挿入して、 読みやすく します。カーソルが空白行の次の行に移動します。

8 スク リプ ト ビューで、 新しい行に 「ログイン ウィンドウを開く 」 と入力します。ペインタバー 2 の [コ メ ン ト ] ボタンをク リ ッ ク します。

入力した行の前に 2 個のスラ ッシュが表示され、 その行のスラ ッシュ以降の領域がコ メン トに変わり ます。

9 コ メ ン トの 後にカーソルを移動します。〔Enter〕 を押して改行します。新規の行に 「open (w_welcome)」 と入力します。

Page 107: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

PowerBuilder 入門 95

この文は、Open 関数を呼び出し、作成したログイン ウ ィンド ウを表示します。

状況依存ヘルプへのアクセス

状況依存ヘルプ (文脈ヘルプ) にアクセスするには、 ス ク リプ トビューで関数や予約語 (たとえば Open) を選択して 〔Shift〕 + 〔F1〕を押します。〔F1〕 を押すと、状況に関係なく常にメ イン ヘルプ画面が開きます。

Page 108: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

96 PowerBuilder Classic

スクリプ トのコンパイル

こ こでは、 入力したスク リプ ト をコンパイルします。 ポップアップ メニュー項目を使ってスク リプ ト をコンパイルします。 PowerBuilder では、 スク リプ ト ビューを閉じたと きや、 スク リプ ト ビューで別のオブジェク ト 、 イベン ト、 または関数を選択したと きにも、 自動的にスクリプ トがコンパイルされます。

スクリプ トのエラー処理

スク リプ トにエラーがある場合は、 スク リプ ト ビューの下部にエラーウ ィンド ウが開き、 エラー番号とエラーメ ッセージが表示されます。

エラーを見つけるには エラーメ ッセージをク リ ッ クする と、 エラーのある行にカーソルが移動します。 エラーを修正したら、 スク リプ トのコンパイルを再試行します。

エラーのコ メン ト アウト PowerBuilder では、 エラーのあるス ク リプ トは保存されません。 エラーのあるスク リプ ト を保存するには、 そのスク リプ ト全体を選択し、[コ メン ト ] ボタンをク リ ッ ク してコードをコメン ト アウ ト します。 こ う して保存しておいたスク リプ トは、 後で開いて、 コ メ ン ト を外してから、 エラー箇所を修正します。

1 スク リプ ト ビューのスク リプ ト領域内の任意の場所を右ク リ ッ クします。ポップアップ メニューで [コンパイル] を選択します。

スク リプ トがコンパイルされます。このと きに、スク リプ ト ビューまたはウ ィ ンド ウ ペインタのワークスペースを閉じたり、 ほかのビューに移動したり しないでください。

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

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

Page 109: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 97

レ ッ ス ン 4 データベースへの接続

このレ ッ スンでは、 実行時にアプ リ ケーシ ョ ンを EAS Demo DB(Enterprise Application Sample demonstration database) に接続するためのスク リプ ト を記述します。 また、 データベース ペインタを使用してテーブル定義を参照したり、EAS Demo DB データベースのデータベース プロファ イルを参照したり します。

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

• EAS Demo DB データベースの参照

• 接続オブジェク ト ウ ィザードの実行

• グローバル変数の宣言

• 接続情報の変更

• ログインおよびログアウ ト スク リプ トの完了

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

所要時間

約 30 分

Page 110: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

EAS Demo DB データベースの参照

98 PowerBuilder Classic

EAS Demo DB データベースの参照

現在の学習個所> EAS Demo DB データベースの参照

接続オブジェク ト ウィザードの実行グローバル変数の宣言接続情報の変更ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

多くの企業には、 データベース専門の管理者がいます。 組織内にデータベース管理者がいれば、 データベース内にテーブルを作成して管理する必要はないかもしれません。 しかし、 こ こでは PowerBuilder の機能をフルに活用するために、データベースでの作業方法を説明します。

データ ソースの定義 ODBC Administrator などのデータベース接続ユーテ ィ リ テ ィ を使用して、 データベースをアプ リ ケーシ ョ ンのデータソース と して定義できます。 ODBC Administrator には DB プロファ イル ダイアログボッ クスからアクセスできます。 ODBC データソースの定義は、 odbc.ini レジス ト リ キーに記述されています。

データベース プロファイルを使用した接続 いったんデータ ソースを定義したら、そのデータ ソース用のデータベース プロファ イルを作成できます。データベース プロファ イルとは、ある特定のデータ ソースまたはデータベース との接続を行う際に指定するパラ メータ セッ ト のこ とです。 データベース プロファ イルを使用すれば、 使用頻度の高いデータベース接続の管理を容易に行 う こ とができます。 アプ リ ケーシ ョ ンの開発中にデータベース プロファ イルを変更してほかのデータ ソースに接続できます。

データベース接続を行う時期 デザイン時または実行時の環境のいずれかでデータベースへの接続を確立できます。 PowerBuilder は、 ペインタを開く と きや、埋め込み SQL 文を含むスク リプ ト をコンパイルまたは保存する と き、 あるいはデータベースにアクセスするアプ リ ケーシ ョ ンを実行する と きにデータベースへの接続を行います。

PowerBuilder でデータベース定義を管理するには、 ほとんどの場合データベース ペインタを使用します。データベース ペインタでは以下の操作が行えます。

• テーブルの作成、 変更、 削除

• 主キーと外部キーの作成、 変更、 削除

• インデッ クス キーの作成、 削除

Page 111: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 99

• カラムの拡張属性の定義、 修正

• ビューの削除

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

• EAS Demo DB データベース プロファ イルの参照

• EAS Demo DB データベースのテーブル定義の参照

EAS Demo DB データベース プロファイルの参照

標準オプシ ョ ンで PowerBuilder をインス ト ールした場合は、 すでにEAS Demo DB データベース用に定義されたデータ ソース とデータベース プロファ イルがあ り ます。このチュート リ アルでは、EAS DemoDB データベースを使用します。

EAS Demo DB は、 ODBC を介してアクセスする SQL Anywhere データベースです。 このレッスンでは、 EAS Demo DB データベースのデータベース プロファ イルを調べます。 データベース プロファ イルのパラメータは、 レジス ト リ内に保持されます。

1 パワーバーの [DB プロファ イル] ボタンをク リ ッ ク します。またはメニュー バーの [ツール| DB プロファ イル] を選択します。

DB プロファ イル ダイアログボッ ク スが表示されます。 DB プロファ イル ダイアログボッ クスには、 インス トールしたデータベース インタフェース と各インタフェースで定義したデータベースプロファ イルがツ リー形式で表示されています。 ツ リー ビューで項目の横にある + 記号を ク リ ッ クするか、 アイ コンをダブルクリ ッ ク して、ツ リー ビューのノードを開いた り閉じたりできます。

2 + 記号をク リ ッ ク して ODB ODBC を展開し、 EAS Demo DB V125を選択します。

Page 112: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

EAS Demo DB データベースの参照

100 PowerBuilder Classic

このプロファ イルは、 インス トール時に作成されます。

EAS Demo DB V125 データベース プロファイルが表示されない場合

EAS Demo DB V125 データベースのプロフ ァ イルがない場合は、データベースをインス トールしていない可能性があ り ます。 インス トールは、 製品 DVD-ROM から行う こ とができます。

データベースを イ ンス ト ールし、 ODBC Administrator でデータソース と して定義している場合は、データベース プロファ イル ペインタのツ リー ビューから 「ODBC」 を選択して、 [新規作成] をク リ ッ ク します。 DB プロファ イル設定 ダイアログボッ ク スで、[データ ソース] ド ロ ップダウン リ ス ト からデータ ソースを選択し、 [プロファイル名] テキス トボッ クスに 「EAS Demo DB V125」と入力します。 ユーザ ID に 「dba」、 パスワードに 「sql」 と入力し、 [OK] をク リ ッ ク してペインタに戻り ます。

3 [編集] をク リ ッ ク します。

DB プロファ イル設定 ダイアログボッ ク スの [接続] ページが表示されます。

Page 113: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 101

4 [プレビュー] タブをク リ ッ ク します。

選択したプロファ イルの接続構文が [プレビュー] タブに表示されます。プロファ イルの接続オプシ ョ ンを変更する と、それに従って構文も変更されます。

5 [接続のテス ト ] ボタンをク リ ッ ク します。

接続に成功したこ とを通知する メ ッセージ ボッ クスが表示されます。

接続に失敗したという メ ッセージ ボックスが表示された場合

メ ッセージ ボッ クスを閉じて、 DB プロファ イル設定 ダイアログボッ ク スの [接続] ページの内容が正しいこ と を確認してから、ODBC Administrator のデータ ソースの設定内容をチェ ッ ク して ください。 ODBC Administrator を実行するには、 データベース プロファ イル ペインタの ODB ODBC ノードの下にある Utilities フォルダを展開して、 「ODBC Administrator」 項目をダブルク リ ッ ク します。

6 [OK] をク リ ッ ク して、 メ ッセージ ボッ クスを閉じます。[キャンセル] をク リ ッ ク して、 DB プロファ イル設定 ダイアログボッ クスを閉じます。[閉じる] をク リ ッ ク して、 DB プロファ イル ダイアログボッ クスを閉じます。

Page 114: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

EAS Demo DB データベースの参照

102 PowerBuilder Classic

EAS Demo DB データベースのテーブル定義の参照

このステップでは、EAS Demo DB データベースの顧客情報 (customer)テーブルと商品管理 (product) テーブルの定義を参照します。 これによ り、 データベース ペインタ とチュート リ アルで使用するテーブルについてよ く理解できます。

接続時の処理内容 テーブル定義を参照するには、 データベースに接続する必要があ り ます。 開発環境でデータベース環境に接続する と、 接続パラ メータが Windows レジス ト リに書き込まれます。

異なるデータベースに接続するたびに、 レジス ト リ内の既存の接続パラ メータが新しいデータベースの接続パラ メータに置き換えられます。 データベースにアクセスする PowerBuilder ペインタを開く と、後に使用したデータベースに自動的に接続されます。 PowerBuilder は、レジス ト リの読み出しによ り、 後に使用したデータベースを特定します。

1 パワーバーの [DB ペインタ] ボタンをク リ ッ ク します

PowerBuilder がデータベースに接続し、 データベース ペインタが開きます。データベース ペインタのタイ トル バーにアクティブなデータベース接続が表示されます。

データベース ペインタのオブジェク ト ビューで、「使用できる DBインタフェース」 というヘッダの下に、 既存の全データベース プロファ イルがツ リー形式で表示されています。EAS Demo DB V125データベースは、 ツ リー ビューの ODB ODBC ノードの下に表示されます。

オブジェク ト ビューが開いていない場合

オブジェク ト ビューは、デフォルトのビュー レイアウ トの一部です。 このビュー レイアウ ト構成を リセッ トするには、[ビュー|レイアウ ト| (デフォル ト )] を選択します。 また、 メニュー バーから [ビュー|オブジェク ト ] を選択して、 オブジェク ト ビューを開く こ と もできます。

2 オブジェク ト ビューで、 EAS Demo DB V125 データベース ノードを展開します。

Page 115: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 103

EAS Demo DB V125 データベース ノードの下にあるフォルダを確認します。

3 テーブル フォルダを開きます。

データベースにあるテーブルがリ ス ト表示されます。

テーブル名には接頭辞を付けることができます。

テーブルの選択 ダイアログボッ クスのテーブル名に付けられる接頭辞と しては、 dba や dbo などがあ り ます。テーブル名に付けられる接頭辞は、使用しているログイン ID によって異なり ます。接頭辞は無視してもかまいません。

4 「customer」 テーブルを右ク リ ッ ク して、 ポップアップ メニューの[レイアウ トに追加] を選択します。または オブジェク ト ビューから 「customer」 テーブルをド ラ ッグして、オブジェク ト レイアウ ト ビューにド ロ ップします。

Page 116: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

EAS Demo DB データベースの参照

104 PowerBuilder Classic

現在のビューからほかのビューにオブジェク ト をド ラ ッグする方法

オブジェ ク ト ビューからほかのビューへのド ラ ッグを始める と、ポインタの形状が斜線入りの円に変わり ます。 オブジェ ク ト を ドロ ップできるほかのビューまでそのままカーソルを移動する と、斜線入りの円がポインタの形に戻り、 小さなボッ クスの中に新しい矢印が表示されます。 この矢印が表示されたら、 オブジェ ク トをド ロ ップするこ とができます。

5 手順 4 を繰り返して、 product テーブルについても同じ作業を行います。

オブジェク ト レイアウト ビューの拡大

オブジェク ト レイアウ ト ビューは、分割バーをペインタ フレームの方へド ラ ッグして幅を広げるこ とができます。 オブジェク ト レイアウ ト ビューがスタ ッ クの一部の場合、 サイズを変更する前にスタ ッ クから切り離したほうが簡単な場合もあ り ます。

オブジェク ト レイアウ ト ビューに、 2 つのテーブルが表示されます。

Page 117: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 105

テーブルのデータ型、 コ メン ト、 キー、 およびインデックスの表示

オブジェ ク ト レイアウ ト ビューには、 各カラムについての説明と、 キーおよびインデッ クスのアイコンが表示されます。 このアイコンが表示されない場合は、 ビュー内の空白の領域を右ク リ ック し、 ポップアップ メニューから [コ メ ン トの表示] と [参照整合性の表示] を選択してから、 [インデッ クスの表示] を選択します。 [データタイプの表示] を選択しないと、 選択されているテーブル内にある各カラムのデータ型は表示されません。

6 オブジェク ト レイアウ ト ビューで customer テーブルのタイ トルバーを右ク リ ッ ク して、 ポップアップ メニューの [テーブルの変更] を選択します。またはオブジェク トのツ リー ビューで customer テーブルを右ク リ ッ ク して、 ポップアップ メニューの [テーブルの変更] を選択します。

カラム ビューに、 テーブルのカラム定義が表示されます。

7 オブジェク ト レイアウ ト ビューで、 customer テーブルのカラムを右ク リ ッ ク します。 ポップアップ メニューから [プロパティ] を選択します。

データベース ペインタのプロパティ ビューは、オブジェク トの詳細ビューと も呼ばれます。

オブジェク トの詳細ビューのタイ トル バーと タブ ヘッダは、 どのオブジェ ク ト を選択しているかによってまった く異な り ます。 タイ トル バーには、 オブジェク トの種類、 データベース接続、 およびオブジェク トの識別子が表示されます。

Page 118: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

EAS Demo DB データベースの参照

106 PowerBuilder Classic

カラムのオブジェ ク ト の詳細ビューには 5 つのタブがあ り ます。通常のデータベースのプロパテ ィ全般に関する ものが 1 つあ り、カラムのヘッダ情報に関するもの、 そのほかのタブはカラムの拡張属性に関するものです。

拡張属性について

PowerBuilder では、データベースのシステム テーブルの集ま り (リポジ ト リ ) に拡張属性情報を格納します。 拡張属性とは、 カラムのヘッダと ラベル、 カラムの初期値、 入力条件則、 表示書式のことをいいます。

データベース ペインタの拡張属性ビューで、 項目のポップアップメニューから、 新しい拡張属性を定義した り、 既存の拡張属性の定義を変更したりできます。

8 データベース ペインタを閉じます。

Page 119: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 107

接続オブジェク ト ウィザードの実行

現在の学習個所EAS Demo DB データベースの参照

> 接続オブジェク ト ウィザードの実行グローバル変数の宣言接続情報の変更ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

このステップでは、 接続オブジェク ト ウ ィザードを実行して、 実行時のデータベース接続の確立に使用する接続サービス マネージャを作成します。

接続サービス マネージャは、 非ビジュアル ユーザ オブジェク トです。「非ビジュアル」 とは実行時にグラフ ィ ッ クで表示されないこ と を示し、 「ユーザ オブジェ ク ト 」 とはユーザによってカスタマイズされているこ とを示します。 接続サービス マネージャは、 PowerBuilder アプリ ケーシ ョ ンでのデータベース接続処理を実行するために使用します。

2 番目のウィザードを実行する理由

テンプレート アプ リ ケーシ ョ ン ウ ィザードで接続情報を指定していた場合は、 アプ リ ケーシ ョ ンの生成時に接続サービス マネージャを作成します。 アプ リ ケーシ ョ ンの構築には複数のウ ィザードを使用できます。

Page 120: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

接続オブジェク ト ウィザードの実行

108 PowerBuilder Classic

1 パワーバーの [To-Do リ ス ト ] ボタンをク リ ッ ク します。

する と、 To-Do リ ス ト がテンプレート アプリ ケーシ ョ ン ウ ィザードによって生成されます。

2 リ ス ト内の接続オブジェク ト ウ ィザードを実行し、 追加の接続オブジェク ト を作成する項目をダブルク リ ッ ク します。または接続オブジェク ト ウ ィザードを実行し、 追加の接続オブジェク トを作成する項目を右ク リ ッ ク します。ポップアップ メニューの [ リ ンク先へ] を選択します。

これは、 リ ス ト内の 後から 2 番目の項目です。 To-Do リ ス ト に、アプ リ ケーシ ョ ンを完成させるための必要事項が一覧表示されます。 この リ ス ト を使用して、 自分自身やほかのアプ リ ケーシ ョ ン開発者へのコ メン ト を付けるこ と もできます。

新規作成 ダイアログボッ クスの [PB オブジェク ト ] ページから接続オブジェク ト ウ ィザードを実行するこ と もできます。 新規作成ダイアログボ ッ ク スからテンプレー ト アプ リ ケーシ ョ ン ウ ィザードを実行する方法については、 レッスン 1 「PowerBuilder の起動」 で説明されています。

ウ ィザードの 初のページには、 実行可能な作業に関する説明があ り ます。

Page 121: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 109

3 データベース プロファ イルの選択ページが表示されるまで[次へ]をク リ ッ ク します。

格納先ライブラ リ (pbtutor.pbl) とデータベース コネクティビティオプシ ョ ン (SQL) は、 ウ ィザードによ りデフォル ト で選択された値をそのまま使用して ください。 データベース プロファ イルの選択ページに、 レジス ト リ 内に保存されているすべてのデータベース プロファ イルが一覧表示されます。

4 まだ選択されていない場合は、[データベース プロファ イル] リ スト ボッ クスから 「EAS Demo DB V125」 を選択します。

5 接続オブジェ ク ト の作成準備完了ページが表示されるまで、 [次へ] をク リ ッ ク します。

以下の項目についてデフォルトの設定を確認します。

ウ ィザードは、 データベース接続の管理用にユーザ オブジェク トn_pbtutor_connectservice を作成します。 このオブジェク トのインスタンス変数を変更する と、 接続情報のソースをレジス ト リ またはスク リプ ト ファ イルに変更できます。それ以外の場合は、ウ ィザードで作成した pbtutor.ini ファ イルがアプ リ ケーシ ョ ンの接続情報と して使用されます。

ウィザード ページ オプシ ョ ン デフォルト設定

接続ソース情報の指定

接続情報の取得元 アプリ ケーシ ョ ン INI ファ イル

接続サービス オブジェク ト

n_pbtutor_connectservice

アプ リ ケーシ ョ ンの INI フ ァ イルの指定

アプ リ ケーシ ョ ン INIファ イル

pbtutor.ini

Page 122: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

接続オブジェク ト ウィザードの実行

110 PowerBuilder Classic

後のウ ィザード ページに、 ウ ィザードで選択した内容 (デフォルトのものも含む) のま とめが表示されます。

6 [完了] ボタンをク リ ッ ク します。

接続サービス オブジェ ク ト が、 ウ ィ ザード によ って作成さ れ、ユーザ オブジェ ク ト ペインタで開き ます。 システム ツ リ ーにn_pbtutor_connectservice が表示されます。 ウ ィザードでは、 アプリケーシ ョ ンの INI ファ イルも作成されます。To-Do リ ス トは開いたままです。

7 To-Do リ ス ト を閉じます。

Page 123: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 111

グローバル変数の宣言

現在の学習個所EAS Demo DB データベースの参照接続オブジェク ト ウィザードの実行

> グローバル変数の宣言接続情報の変更ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

次のステップでは、 新しい接続サービス マネージャを検証して、 参照するグローバル変数を作成します。グローバル変数は、アプ リ ケーシ ョンのすべてのオブジェク トに対して有効です。

複雑なアプ リ ケーシ ョ ンでは、 ローカル変数で接続サービス マネージャを参照したほ うがよい場合もあ り ます。 そ うすれば、 ローカル変数がスコープから出たと きに、 よ り多くのメモ リが解放されます。 しかし このチュー ト リ アルでは、 データベース接続が開いている限り、接続サービス マネージャのインスタンスを利用できるよ うにします。

接続の確立 アプ リ ケーシ ョ ンが実行時にデータベースに接続できるよ うにするために、 接続サービス マネージャは、 ウ ィザードで生成した関数を呼び出して、 アプリ ケーシ ョ ンとデータベースの間の通信領域と して機能する ト ランザクシ ョ ン オブジェ ク ト のプロパテ ィ を設定します。

SQLCA ト ランザクシ ョ ン オブジェク ト 接続サービス マネージャは、組み込みの非ビジ ュ アル システム オブジェ ク ト 、 SQL 通信領域(SQLCA) オブジェク ト を、 デフォル トの ト ランザクシ ョ ン オブジェク ト と して使用します。SQLCA オブジェク トには、いくつかのプロパティ (データベース名、 ログイン ID、 およびパスワードを含む) が接続サービス マネージャによってデフォルトで設定されています。

アプ リ ケーシ ョ ンが複数のデータベースと通信する場合は、 必要であれば、 データベース接続ごとに 1 つの ト ランザクシ ョ ン オブジェク トを作成できます。

Page 124: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

グローバル変数の宣言

112 PowerBuilder Classic

必要なものと省略可能なもの

データベースへの接続には ト ランザクシ ョ ン オブジェ ク ト が必要です。 接続サービス マネージャは接続自体に必要なものではあ り ませんが、 ト ランザクシ ョ ン オブジェク トのプロパティ を自動的に生成するため、 このチュート リ アルでは使用します。 接続サービス マネージャがない場合、 アプリ ケーシ ョ ンのスク リプ トでプロパティ を直接入力しなければな り ません。

1 ユーザ オブジェク ト ペインタの 「n_pbtutor_connectservice」 が開いているこ とを確認します。

接続サービス マネージャを開く

ユーザ オブジェクト ペインタの n_pbtutor_connectservice オブジェク トが開いていない場合は、システム ツリ ーの 「n_pbtutor_connectservice」をダブルク リ ッ ク して ください。

ユーザ オブジェク ト ペインタの場合、デフォルトのビュー レイアウ ト構成に、 タブ付きペインのスタ ッ クの一部と してのスク リプト ビューと インスタンス変数の宣言ビューが含まれています。

2 スク リ プト ビューの 初のド ロ ッ プダウン リ ス ト ボッ ク ス内で「n_pbtutor_connectservice」 が選択されているこ とを確認します。2 番目のド ロ ップダウン リ ス ト ボッ クスで Constructor イベン トが選択されているこ とを確認します。

Page 125: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 113

ス ク リ プ ト ビューに、 接続オブジェ ク ト ウ ィザードで作成したConstructor イベン トのスク リプ トが表示されます。

スク リプ トは、 of_GetConnectionInfo 関数を呼び出して、 接続情報を取得します。 次に、 この関数のスク リプ ト を参照します。

3 ス ク リ プト ビュ ーの 初のド ロ ッ プダウン リ ス ト ボッ ク スで「Functions」 を選択します。2 番目のド ロ ップダウン リ ス ト ボッ クスで 「of_GetConnectionInfo」を選択します。

この関数のスク リプ トは、データベース接続情報を接続サービス マネージャの Constructor イベン トに渡します。 渡される情報は、 インスタンス変数によって異なり ます。 こ こでは、 is_connectionfrom 変数の値は 1 です。 これを確認します。 インスタンス変数は、 すべての関数および n_pbtutor_connectservice オブジェ ク ト のすべてのイベン トに対して有効です。

Page 126: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

グローバル変数の宣言

114 PowerBuilder Classic

is_connectfrom 変数が 1 であるため、 接続サービス マネージャは、INI ファ イルの [Database] セクシ ョ ンを参照し、ProfileString 関数呼び出しでデータベース接続情報を取得します。 こ こでは、 指定した INI ファ イルは pbtutor.ini です。 この pbtutor.ini ファ イルは、 前のステップで接続オブジェク ト ウ ィザードを使用して作成したものです。

この後のステップで、pbtutor.ini ファ イルと of_GetConnectionInfo 関数を変更し、 ユーザ ID とパスワード情報を INI ファ イルではなくログイン ウ ィンド ウから取得するよ うにします。

4 2 番目のド ロ ップダウン リ ス ト ボッ クスで 「of_ConnectDB」 を選択します。

これは、SQLCA ト ランザクシ ョ ン オブジェク ト を使用して実際にデータベースに接続する接続サービス マネージャの関数です。 この関数は、 レッ スン 3 「ログイン ウ ィ ンド ウの作成」 で作成したログイン ウ ィンド ウから呼び出すこ とができます。

ウ ィザードで生成されたこの関数のスク リプ トには、 データベース接続が失敗した場合にメ ッセージ ボッ クスを表示するこ と も記述されています。

5 2 番目のド ロ ップダウン リ ス ト ボッ クスで 「of_DisconnectDB」 を選択します。

これは、データベース接続を解除するための、接続サービス マネージャの関数です。 この関数は、アプ リ ケーシ ョ ンの Close イベン トから呼び出すこ とができます。

6 [インスタンス変数の宣言] タブをク リ ッ ク します。2 番目のド ロ ップダウン リ ス ト ボッ クスで 「Instance Variables」 が選択されているこ とを確認します。

スクリプ ト ビューでの 「Declare」 の選択

インスタンス変数の宣言 ビューは、 スク リプ ト ビューの特殊なインスタンスです。 スク リプ ト ビューの 初のド ロ ップダウン リ スト ボッ クスで 「Declare」 を選択する と表示されます。 2 番目のスクリ プ ト ビューにすでにインスタンス変数が表示されている場合は、 「Declare」 を選択できません。

Page 127: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 115

こ こで、 is_connectionfrom 変数の値が 1 であるこ とがわかり ます。

7 2 番目のド ロ ップダウン リ ス ト ボッ クスで 「Global Variables」 を選択します。システム ツ リーの 「n_pbtutor_connectservice」 をス ク リプ ト ビューにド ラ ッグします。

システム ツ リーのオブジェ ク ト名と関数名をス ク リ プ ト ビューにド ラ ッグする と、 時間の節約と誤入力の回避に役立ちます。

8 オブジェク ト名のあとに変数名を入力して行を完成させます。

n_pbtutor_connectservice gnv_connect

このオブジェク トは、n_pbtutor_connectservice ユーザ オブジェク トのスク リプ ト ビューで宣言しますが、 アプ リ ケーシ ョ ンのどこからでも利用できます。

変数の命名規約

スク リプ ト をよ り読みやすくするには、 一般的な命名ルールに従うのが 適な方法と言えます。一般的なルールでは、2 文字か 3 文字の接頭辞の後にアンダースコア (_) が付きます。 接頭辞の先頭の英字は変数のアクセス レベルの範囲 (g は global、 l は local) を表し、 後ろの文字は変数のデータ型 (s は String 型、 l は Long 型、nv は非ビジュアル オブジェク ト ) を表します。

9 ペインタバーの [保存] ボタンをク リ ッ ク します。またはメニュー バーから [ファ イル|上書き保存] を選択します。

Page 128: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

グローバル変数の宣言

116 PowerBuilder Classic

ス ク リプ トがコンパイルされて保存されます。 グローバル変数のデータ型を (システム ツ リーから ド ラ ッグせずに) 入力した場合、入力ミ スがある と、 エラー メ ッセージが表示されます。 その場合は、 エラーを修正してから も う一度 [上書き保存] を選択して ください。

Page 129: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 117

接続情報の変更

現在の学習個所EAS Demo DB データベースの参照接続オブジェク ト ウィザードの実行グローバル変数の宣言

> 接続情報の変更ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

これで、 接続サービス マネージャを呼び出してデータベース接続を確立できます。ただし、データベース接続を確立するのは、ログイン ウ ィン ド ウで有効なユーザ ID とパスワードが入力された場合のみにする必要があ り ます。 そこで、 pbtutor.ini ファ イルの情報をユーザが入力した情報に置き換えて、 ログイン ウ ィ ンド ウの [OK] ボタンの Clickedイベン トに接続サービス呼び出しを追加します。

ただし、 [OK] ボタンにこの呼び出しを追加する前に、 ProfileString 呼び出しが記述されている行を削除するかコ メ ン ト アウ ト し ます。ProfileString 呼び出しは、INI ファ イルからユーザ ID とパスワード情報を取得するために接続サービス マネージャが作成するものです。 さ らに、ユーザ ID とパスワードの値は、pb.ini ファ イルから取得されてハード コードになっているため、pbtutor.ini ファ イルで DBParm パラ メータのそれぞれの値を変更します。

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

• of_GetConnectionInfo 関数の変更

• 接続サービス マネージャの呼び出し

of_GetConnectionInfo 関数の変更

前のステップで、 of_GetConnectionInfo 関数について触れました。 こ こでは、ユーザ ID とパスワード情報用にこの関数が返す情報をコ メン トアウ トする方法について説明します。

ユーザ オブジェ ク ト ペインタを閉じている場合は、 も う一度開いてn_pbtutor_connectservice ユーザ オブジェ ク ト を表示し て く だ さい。[ファ イル| 近使用したオブジェク ト ] メニューを選択すれば、再表示できます。

Page 130: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

接続情報の変更

118 PowerBuilder Classic

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 の [コ メ ン ト ] ボタンをク リ ッ ク します。

pbtutor.ini ファ イルの DBParm パラ メータには、 ハード コーディングされたユーザ ID、 パスワード、 およびデータベース名が含まれていますが、 これらの値は使用しません。 そのかわりに、 ユーザが入力した情報 (ユーザ ID とパスワード) の値を DBParm パラメータに代入します。

SQLCA DBParm パラメータについて

DBParm の ConnectString でユーザ ID とパスワードは不要ですが、その 2 つを ConnectString に代入する と、SQL Anywhere データベースのデータ ソース定義にある SQLCA ユーザ ID とパスワードは上書きされます。 この DBMS では、 DBParm パラ メータは、 SQLCAの UserID パラ メータ と DBPass パラ メータよ り優先します。

6 ペインタバー 1 の [保存] ボタンをク リ ッ ク します。ペインタバー 1 の [閉じる] ボタンをク リ ッ ク します。

Page 131: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 119

接続サービス マネージャの呼び出し

次のステップでは、 接続サービス マネージャを呼び出して、 データベースに接続します。 ログイン ウ ィンド ウからユーザ入力情報を追加する必要があるため、 接続サービス マネージャを呼び出すスク リプ トを、 このウ ィンド ウの [OK] ボタンの Clicked イベン トに追加します。

オブジェク トは、そこに追加されたコン ト ロールの親と見なされます。したがって、 ログイン ウ ィ ン ド ウは [OK] ボタンの親とい う こ とにな り ます。

ス ク リ プ ト で親オブジェ ク ト を参照する場合は通常、 明示的にオブジェ ク ト名で指定するよ り も限定子 parent を使用する方が適切です。parent を使用する と、 ほかのオブジェ ク ト上に配置されているコン トロールに対して、 そのコードを再利用しやすくな り ます。 Clicked イベン トのスク リプ トでは、 ログイン ウ ィンド ウを親と して参照します。

単一のウィザードでアプリケーシ ョ ンと接続サービス オブジェク ト を作成した場合

テンプレート アプ リ ケーシ ョ ン ウ ィザードで接続サービスのユーザオブジェク トがすでに作成してあれば、 このステップで入力する接続サービス マネージャを呼び出すためのコードは自動的に生成されています。 ただし、 そのコードは、 ログイン ウ ィン ド ウの Clicked イベン ト ではな く、 アプ リ ケーシ ョ ンの Open イベン ト に追加されています。 なお、 このコードには、 グローバル変数ではなく ローカル変数が使用されます。

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

ウ ィ ンド ウ ペインタが開きます。

2 スク リ プト ビューの 初のド ロップダウン リ スト ボッ クスで「cb_ok」を選択します。またはレイアウ ト ビューの [OK] ボタンをダブルク リ ッ ク します。

2 番目のド ロ ップダウン リ ス ト ボッ クスでは Clicked イベン トが選択されていなければな り ません。 Clicked イベン トが選択されていない場合は選択します。 Clicked イベン トのスク リプ トには何も記述されていません。

Page 132: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

接続情報の変更

120 PowerBuilder Classic

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 エラー文が表示されます。

Page 133: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 121

of_ConnectDB が 0 (接続の成功を表す SQL コード) を返した場合は、IF-THEN 文の次の行から解析が続けられます。この場合、cb_okコン ト ロールの親ウ ィンド ウ (w_welcome) が閉じられます。

6 ペインタバー 2 の [コンパイル] ボタンをク リ ッ ク します。またはス ク リ プ ト ビ ューの内部を右ク リ ッ ク して、 ポ ップア ップ メニューから [コンパイル] をク リ ッ ク します。

このス ク リプ ト では、 コンパイル エラーは発生しないはずです。エラー メ ッセージが表示された場合は、 オブジェク ト名と関数名を正し く入力しているこ と、および gnv_connect をグローバル変数と して保存したこ とを確認して ください。

スクリプ ト ビューのエラー ウィンドウの表示 / 非表示

スク リプ ト ビューで、 タイ トル バーの下の右端にあるアイコンをク リ ッ クする と、 エラー ウ ィ ンド ウの表示 / 非表示を切り替えられます。

この後で、 Clicked イベン トのスク リプ ト を記述し、 ユーザが入力した接続情報を持つト ランザクシ ョ ン オブジェク ト をインスタンス化する必要があ り ます。

Page 134: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ログインおよびログアウト スクリプ トの完了

122 PowerBuilder Classic

ログインおよびログアウト スクリプ トの完了

現在の学習個所EAS Demo DB データベースの参照接続オブジェク ト ウィザードの実行グローバル変数の宣言接続情報の変更

> ログインおよびログアウト スクリプ トの完了アプリケーシ ョ ンの実行

このレ ッ スンの初めの方で、 ログイン ウ ィ ン ド ウの [OK] ボタンのClicked イベン ト から接続サービス マネージャを呼び出す手順を説明しました。 次のステップでは、 ユーザが入力した情報を使用して、 トランザクシ ョ ン オブジェ ク ト をインスタンス化するためのス ク リプト を、 同じ Clicked イベン トに追加します。

ログイン ウ ィ ンド ウの [キャンセル] ボタンの Clicked イベン トおよびアプリ ケーシ ョ ン Closed イベン トに、 コードを追加するこ と もできます。

スクリプ ト ビューの入力ミスを減らすには

スク リプ トの作成領域内を右ク リ ッ クする と、[形式を指定して貼り付け] コマンドを含むポップアップ メニューが開きます。 これらのコマンドを使用して、 ステート メ ン ト 、 オブジェ ク ト 、 関数、 またはテキス ト ファ イルの内容をイベン ト ス ク リプ ト に貼り付ける こ とができます。 この操作によって手動入力によるエラーの可能性を減らすこ とができます。 オート スク リプ ト を使用してコードにデータを入力するこ と も可能です。 この入力方法については、 このレッスンで説明します。

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

• オート スク リプ ト用のシ ョート カッ トの設定

• [OK] ボタンの Clicked イベン トに対するコードの追加

• [キャンセル] ボタンの Clicked イベン トに対するコードの追加

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

Page 135: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 123

オートスクリプ ト用のシ ョート カ ッ トの設定

オート スク リプ トは、 スク リプ ト を記述する と きに役立ちます。 たとえば、 入力中の文を自動的に完成させた り、 カーソル位置に挿入すべき言語要素のリ ス ト を表示したりする機能があ り ます。

1 メニュー バーから [デザイン|オプシ ョ ン] を選択し、 [オート スク リプ ト ] タブをク リ ッ ク します。

2 初の 3 つのグループボッ クス内のすべてのチェッ クボッ クスがオンになっているこ とを確認します。

3 4 番目のグループ ボッ クスの [ド ッ トの直後のみ起動] チェ ッ クボッ ク スおよび [自動的にポップアップ] チェ ッ クボッ クスがオフになっているこ とを確認して、 [OK] をク リ ッ ク します。

このよ うに設定しておく と、オート スク リプ トは、挿入すべきコードを判定するための十分な情報がある と ころで、 ヘルプを表示します。 ただし、 カーソルを置いただけでは自動的にはポップアップしません。[ステート メン ト テンプレート ] チェ ッ クボッ クスをオンにする と (デフォルトではオフ)、 オート スク リプ ト を使用して、 複数行にまたがる PowerScript 構文を入力できます。

4 メニュー バーから [ツール|シ ョート カッ ト ] を選択します。ツ リーの [編集] ノードを展開します。

5 下にスク ロールして、[オート スク リプ トの有効化] を選択します。[シ ョート カッ ト キー] ボッ クスにカーソルを合わせて、 〔Ctrl〕 +〔Space〕 を押します。

6 [現在のメニュー] リ ス ト で [編集|ジャンプ] ノード を展開し、[次のマーク] を選択します。[シ ョート カッ ト キー] ボッ クスにカーソルを合わせて、 〔Ctrl〕 +〔M〕 を押します。

これで、 コードの入力中にヘルプが必要な場合はいつでも、 〔Ctrl〕+ 〔Space〕 を押して、 入力データ候補の リ ス ト を表示させる こ とができます。 文や関数をコ メ ン ト に貼り付ける と きは、 〔Ctrl〕 +〔M〕 を押して次のコ メン トに移動できます。

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

Page 136: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ログインおよびログアウト スクリプ トの完了

124 PowerBuilder Classic

[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 V125;"

上記の行では、 ローカル変数を宣言して、 値を代入しています。ConnectString テキス ト内では、= 記号の前後にスペースを入れないでください。 単独の単引用符は、 このままで構いません。 次の手順で別の単引用符を追加して、 接続スク リプ ト を完成させます。

オートスクリプ ト を使用して代入文を簡単にコーディングする方法

オート スク リ プ ト で代入文を入力する と きに、 変数名の中のアンダースコア (_) よ り も前に英字を入力して 〔Ctrl〕 + 〔Space〕 を押すと、 入力データ候補の リ ス ト をポップアップさせる こ とができます。 矢印キーを使用して適切な入力データ候補に移動し、 これを 〔Tab〕 でスク リプ ト内に貼り付けます。 まずアンダースコア(_) を入力し、 その後ろに先頭の英字を入力して 〔Ctrl〕 + 〔Space〕を押すと、 一意の入力データ候補がある場合は、 これが直接スクリプ ト内に貼り付けられます。

Page 137: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 125

Trim 関数は、 ログイン ウ ィ ン ド ウのシングルラ インエディ ッ トボッ ク スから引数と して渡されたユーザ ID およびパスワードの値の前後のスペースを削除します。

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 の [コンパイル] ボタンをク リ ッ ク します。

Page 138: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ログインおよびログアウト スクリプ トの完了

126 PowerBuilder Classic

またはス ク リ プ ト ビューの内部を右ク リ ッ ク して、 ポ ップア ップ メニューから [コンパイル] をク リ ッ ク します。

このス ク リプ ト では、 コンパイル エラーは発生しないはずです。エラー メ ッセージが表示された場合は、 オブジェク ト と関数名を正し く入力しているか確認します。

[キャンセル] ボタンの Clicked イベン トに対するコードの追加

このステップでは、 コードを [キャンセル] ボタンに追加して、 ボタンをク リ ッ ク したと きにアプ リ ケーシ ョ ンの実行が中止されるよ うにします。

1 レイアウ ト ビューで [キャンセル] ボタンをダブルク リ ッ ク します。またはス ク リ プ ト ビ ューの 初のド ロ ップダウン リ ス ト ボ ッ ク スで「cb_cancel」 を選択します。

[キャンセル] ボタンのスク リプ ト領域は空白になっています。

2 Clicked イベン トのスク リプ ト を 1 行入力します。

HALT

このスク リプ トは、 ログイン ウ ィ ンド ウで [キャンセル] ボタンをク リ ッ クする と、 すぐにアプ リ ケーシ ョ ンを強制終了します。

3 ペインタバーの [保存] ボタンをク リ ッ ク します。またはメニュー バーから [ファ イル|上書き保存] を選択します。

スク リプ トがコンパイルされます。

4 ペインタバーの [閉じる] ボタンをク リ ッ ク します。またはメニュー バーから [ファ イル|閉じる] を選択します。

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

Page 139: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 127

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

接続サービス マネージャは、 グローバル変数によって呼び出されているため、 このままアプ リ ケーシ ョ ンで利用できます。(ローカル変数を使用した場合とは異な り) インスタンス化し直す必要はあ り ません。

このステップでは、 接続サービス マネージャで接続を解除する関数を呼び出して、 データベース接続を終了します。

1 システム ツ リーの pbtutor アプリ ケーシ ョ ン アイコンをダブルクリ ッ ク します。

アプリ ケーシ ョ ン ペインタに、チュート リ アル アプリ ケーシ ョ ンオブジェ ク ト のさ まざまなビューが表示されます。 ス ク リ プ トビューがデフォル ト レイアウ ト内のスタ ッ クの一部である場合は、 スタ ッ クから切り離すか、 2 番目のスク リプ ト ビューを開くほ うが簡単な場合もあ り ます。

2 スク リプ ト ビューの 2 番目のド ロ ップダウン リ ス ト ボッ クスで「close ( ) returns (none)」 を選択します。

アプリ ケーシ ョ ンの Close イベン トには、まだ何もコードが記述されていません。

3 Close イベン トのコ メン ト と して以下の行を入力します。

// アプリケーシ ョ ンを閉じるためのスクリプト// データベースとの接続解除

4 追加した行の一部または全部を選択します。 [コ メン ト ] ボタンをク リ ッ ク します。

5 入力したコ メン ト の下の行に、 次の行を入力します (オー ト スクリプ ト を使用する と簡単に変数名と関数名を入力できます)。

gnv_connect.of_DisconnectDB ( )

Page 140: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ログインおよびログアウト スクリプ トの完了

128 PowerBuilder Classic

グローバル変数を null に設定してメモリを解放する場合

アプ リ ケーシ ョ ンの Close イベン トがな く、接続グローバル変数のインスタンスを必要と しない場合は、 SetNull 関数を呼び出して、割り当てられていたメモ リ を解放できます。

PowerBuilder には、オブジェク ト インスタンスを破棄する DESTROY文も用意されています。 非ビジュアル オブジェク トのローカル変数またはグローバル変数には DESTROY 文を使用しないでください。 PowerBuilder ガベージ コレクシ ョ ンは、 スコープの外に出たローカル変数を削除します。

6 スク リプ ト ビューのスク リプ ト領域内の任意の場所を右ク リ ッ クします。ポップアップ メニューで [コンパイル] をク リ ッ ク します。

Close スク リプ トがコンパイルされます。エラー メ ッセージが表示された場合は、入力済みの行をチェッ ク して、変数またはオブジェク ト名に入力ミ スがないかど うかを確認して ください。

7 ペインタバー 1 の [閉じる] ボタンをク リ ッ ク します。

メ ッセージ ボッ ク スが表示され、 アプ リ ケーシ ョ ン ラ イブラ リファ イルのアプリ ケーシ ョ ン オブジェク トの変更内容を保存するかど うかをたずねられます。

8 [はい] をク リ ッ ク します。

変更内容が保存され、 アプリ ケーシ ョ ン ペインタが閉じます。

Page 141: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 4 データベースへの接続

PowerBuilder 入門 129

アプリケーシ ョ ンの実行

現在の学習個所EAS Demo DB データベースの参照接続オブジェク ト ウィザードの実行グローバル変数の宣言接続情報の変更ログインおよびログアウト スクリプ トの完了

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

このステップでは、 アプリ ケーシ ョ ンを実行します。

1 パワーバーの [実行] ボタンをク リ ッ ク します。メ ッセージ ボッ クスが表示され、 変更を保存するよ う要求されたら、 [はい] をク リ ッ ク して保存します。

ワークスペースが閉じ、 アプリ ケーシ ョ ンが実行されます。

2 [ユーザ ID] テキス ト ボッ クスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力します。

パスワードはアスタ リ ス クで表示されます。 このウ ィ ンド ウのタブ順序はすでに設定してあるため、 〔Tab〕 を押して [ユーザ ID]ボッ クスから [パスワード] ボッ クス、 さ らに [OK] にフォーカスを移動できます。

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

データベースに接続して、 MDI フレームが開きます。

無効なユーザ ID とパスワードを入力した場合

ユーザ ID とパスワードに入力ミ スがあった場合、 SQL Anywhereの接続 ダイアログボッ クスが表示されます。 このダイアログボックスの [ログイン] ページで正しいユーザ ID とパスワードを入力し直して ください。 パスワード とユーザ ID を変更せずに、 このダイアログボッ クスの [ODBC] ページで [テス ト接続] ボタンをクリ ッ クする と、ユーザ ID とパスワードの無効を通知する メ ッセージ ボッ クスが表示されます。

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

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

Page 142: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

130 PowerBuilder Classic

Page 143: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 131

レ ッ ス ン 5 先祖ウィ ンド ウの変更

このレッスンでは、テンプレート アプリ ケーシ ョ ン ウ ィザードを使用して生成したベースシー ト ウ ィ ン ド ウを継承するウ ィ ン ド ウを作成します。 まず、 データウ ィ ンド ウ コン ト ロールを含む定義済みのユーザオブジェク ト を、 継承されるウ ィ ン ド ウに追加します。 次に、 オ リジナルのベースシートではなく、 拡張レイヤ ウ ィンド ウを継承する新規ウ ィンド ウ w_customers と w_products を作成します。 後に、 これらのシート ウ ィンド ウが、 デザイン時に設定したサイズで実行時に開く よ うにします。

その前にまず、 データウ ィ ンド ウ コン ト ロールを含む定義済みのユーザ オブジェク トが登録されたライブラ リ リ ス トに、ラ イブラ リ を追加します。 このレッスンでは、 以下の項目について学習します。

• 探索パスへのライブラ リの追加

• 先祖シート ウ ィンド ウの新規作成

• ユーザ イベン トおよびイベン ト スク リプ トの追加

• データウ ィ ンド ウ コン ト ロールのデータの検索を行う スク リプ トの追加

• シート ウ ィンド ウのサイズに合わせた実行時の設定の調整

所要時間

約 30 分

Page 144: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

探索パスへのライブラリの追加

132 PowerBuilder Classic

探索パスへのライブラリの追加

現在の学習個所> 探索パスへのライブラリの追加

先祖シート ウィンドウの新規作成ユーザ イベン トおよびイベン ト スクリプ トの追加データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加シート ウィンドウのサイズに合わせた実行時の設定の調整

このステップでは、 チュート リ アル アプリ ケーシ ョ ンの探索パスにライブラ リ を追加します。 アプ リ ケーシ ョ ンで使用するすべてのラ イブラ リ を追加する必要があ り ます。

現在のアプ リ ケーシ ョ ンに追加する ラ イブラ リ には、 ベースシー トウ ィンド ウに後で追加するユーザ オブジェク ト (u_dwstandard) など、いくつかのコーディング済みのオブジェク トが含まれます。

1 システム ツ リーの pbtutor ターゲッ ト (pbtutor アプ リ ケーシ ョ ンオブジェク トではない) を右ク リ ッ ク します。

pbtutor ターゲッ トには、 pbtutor.pbl と pbtutor アプリ ケーシ ョ ンが入っています。

2 ポップアップ メニューで [プロパティ] をク リ ッ ク します。

pbtutor ターゲッ ト プロパテ ィ ダイアログボッ ク スが表示されます。

3 [ラ イブラ リ リ ス ト ] ページが表示されているこ とを確認します。[参照] ボタンをク リ ッ ク します。

ラ イブラ リの選択 ダイアログボッ クスが表示されます。

Page 145: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 133

4 Tutorial フォルダに移動します。「tutor_pb.pbl」 を選択し、 [開く ] をク リ ッ ク します。

[ラ イブラ リ リ ス ト ] ページに戻り ます。 チュー ト リ アル アプ リケーシ ョ ンの探索パスに tutor_pb.pbl ファ イルが含まれています。

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

Page 146: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

先祖シート ウィンドウの新規作成

134 PowerBuilder Classic

先祖シート ウィンドウの新規作成

現在の学習個所探索パスへのライブラリの追加

> 先祖シート ウィンドウの新規作成ユーザ イベン トおよびイベン ト スクリプ トの追加データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加シート ウィンドウのサイズに合わせた実行時の設定の調整

テンプレート アプ リ ケーシ ョ ン ウ ィザードを使用して生成したベースシート ウ ィンド ウを継承するウ ィ ンド ウを作成し、 データウ ィ ンドウ コン ト ロールを追加します。 ソース エディ タで、 生成したシートウ ィンド ウ (w_customers と w_products) が、 上記の新規ウ ィンド ウを継承するよ うに変更します。

新規の先祖ウ ィ ン ド ウに追加するデータウ ィ ン ド ウ コン ト ロールは、チュー ト リ アル アプ リ ケーシ ョ ン用に作成したユーザ オブジェ ク トから定義を継承します。 このユーザ オブジェク トは、 先ほどターゲット ラ イブラ リ リ ス トに追加した PBL ファ イルに含まれています。ユーザ オブジェ ク ト とは、 カスタマイズされたデータウ ィ ン ド ウ コン トロールのこ とで、 標準のデータベース エラーのチェッ クを実行するスク リプ ト を含みます。

ユーザ オブジェク ト を使用する理由

PowerBuilder では、 アプ リ ケーシ ョ ンでよ く使用する処理を実行するためにユーザ オブジェク ト を構築します。定義したユーザ オブジェクトは、 追加作業なしで繰り返し利用できます。

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

• 新規シート ウ ィ ンド ウの継承階層の作成

• マスタ データウ ィンド ウ用のデータウ ィンド ウ コン ト ロール(dw_master) の追加

• 詳細データウ ィ ンド ウ用のデータウ ィンド ウ コン ト ロール(dw_detail) の追加

• ユーザ オブジェク トから継承されたスク リプ トの参照

Page 147: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 135

新規シート ウィンドウの継承階層の作成

このステップで新規に作成するウ ィンド ウは、 ベースシート ウ ィンドウ とアプ リ ケーシ ョ ン シー ト ウ ィ ン ド ウの間の拡張レイヤにな り ます。後で、 この拡張レイヤ ウ ィンド ウに変更を加えます。 この変更は、この拡張レイヤ ウ ィ ン ド ウを継承するすべての新規シート ウ ィ ン ドウに自動的に反映されます。

現在のチュート リ アル アプリ ケーシ ョ ンでは、 すでに w_customers および w_products ウ ィンド ウが w_pbtutor_basesheet ウ ィンド ウを継承しています。 ウ ィザードによって生成されたこれらのシート ウ ィンド ウには (名前と表示テキス ト を除き) 固有のプロパティ値や関数をまだ追加していないため、 これらのウ ィ ンド ウを上書きして新規のウ ィンド ウを作成する際にコードをコピーする必要は一切あ り ません。 このレッスンでは、 これらのウ ィ ンド ウを上書きして、 拡張レイヤ ウ ィンド ウを継承する新規ウ ィ ンド ウを作成します。

1 PowerBuilder メニューから [ファ イル|継承] を選択します。

オブジェク トから継承 ダイアログボッ クスが表示されます。

2 [ラ イブラ リ ] リ ス ト ボッ クスで pbtutor.pbl が選択されており、[オブジェク トの種類] ド ロ ップダウン リ ス ト で 「ウ ィ ンド ウ」 が選択されているこ とを確認します。

ラ イブラ リ リ ス トが完全に表示されない場合は、 ダイアログボックスの一辺をク リ ッ ク してマウスのボタンを押したまま画面の端の方にド ラ ッグして、 ダイアログ ボッ クスのサイズを拡大できます。 [ライブラ リ ] リ ス ト ボッ クスには 2 つのライブラ リが表示され、 pbtutor.pbl は 1 番目に表示されます。

3 メ インの リ ス ト ボッ クスで、 オブジェク ト カラムの w_pbtutor_basesheet を選択して [OK] をク リ ッ ク します。

4 [フ ァ イル|名前を付けて保存] を選択してから、 ウ ィンド ウの保存 ダイアログボ ッ ク スで、 新規ウ ィ ン ド ウ名の [ウ ィ ン ド ウ]フ ィールドに 「w_master_detail_ancestor」 を入力します。

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

w_customers および w_products シート ウィンドウに使用する新規先祖ベースシート

Page 148: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

先祖シート ウィンドウの新規作成

136 PowerBuilder Classic

6 [アプ リ ケーシ ョ ン ライブラ リ ] リ ス ト ボッ クスで 「pbtutor.pbl」 が選択されているこ とを確認して、 [OK] をク リ ッ ク します。 [ファ イル|閉じる]を選択して、新規先祖ベースシート を閉じます。

先祖ウ ィ ン ド ウをウ ィ ン ド ウ ペインタ内で開いている と、 子孫ウ ィンド ウを作成できません。

7 PowerBuilder メニューから [ファ イル|継承] を選択します。

8 [ラ イブラ リ ] リ ス ト ボッ クスで pbtutor.pbl が選択されており、[オブジェク トの種類] ド ロ ップダウン リ ス ト ボッ クスで 「ウ ィ ンドウ」 が選択されているこ とを確認します。「w_master_detail_ancestor」 を選択して、 [OK] をク リ ッ ク します。

9 プロパティ ビューの [全般] ページの [タグ] テキス トボッ クスに 「Maintain Customers」 と入力します。 PowerBuilder メニューから [ファ イル|名前を付けて保存] を選択し、[ウ ィ ンド ウ] リ ス ト ボッ クスで「w_customers」を選択します。

10 コ メ ン トのテキス ト を次のよ うに変更します。

w_master_detail_ancestor から継承する Customer シート ウィンドウ

11 [OK] をク リ ッ ク して、既存の w_customers ウ ィ ンド ウを置き換えるかど うかを尋ねるウ ィ ンド ウの保存 ダイアログボッ クスが表示されたら [はい] をク リ ッ ク します。

w_pbtutor_basesheet ではな く w_master_detail_ancestor を継承するシート ウ ィンド ウが新規に作成されます。

12 以下の 3 つの手順を変更して、 手順 7 ~ 11 を繰り返します。

手順 変更指示

9 プロパティ ビューの [全般] ページの [タグ] テキス ト ボックスに 「Maintain Products」 と入力します。 PowerBuilderメ ニューから [フ ァ イル|名前を付けて保存] を選択し、[ウ ィ ン ド ウ] リ ス ト ボッ ク スで 「w_products」 を選択します。

10 コ メン トのテキス ト を次のよ うに変更します。w_master_detail_ancestor から継承する Product シート ウィ ンドウ

Page 149: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 137

13 新規に作成した w_customers および w_products ウ ィンド ウを閉じます。

いずれかの子孫がウ ィンド ウ ペインタに表示されている場合、 その先祖ウ ィ ンド ウをオープンするこ とはできません。

14 PowerBuilder メニューから [実行|ワークスペースのフル構築] を選択します。

ワークスペースの再構築は、継承階層を変更した後、新規先祖ウ ィン ド ウを修正する前に行う必要があ り ます。 構築の進行状況は、PowerBuilder メ イン ウ ィンド ウ下部のシステム ツ リーの下に表示される出力ウ ィンド ウで見るこ とができます。構築が終了する と、出力ウ ィ ン ド ウに終了したこ と を示すメ ッセージが表示されます。

15 出力ウ ィンド ウを閉じます。

マスタ データウィンドウ用のデータウィンドウ コン ト ロール(dw_master) の追加

このステップでは、データウ ィ ンド ウ コン ト ロール (ユーザ オブジェク ト u_dwstandard と して保存) を w_master_detail_ancestor ウ ィンド ウに追加します。 このコン ト ロールは、 先祖ウ ィ ンド ウおよびその子孫ウ ィ ンド ウのマスタ データウ ィンド ウ と して使用されます。

u_dwstandard のようなユーザ オブジェク トの作成方法

データウ ィ ン ド ウ コン ト ロールを基にしたユーザ オブジェ ク ト を作成するには、 [新規作成] ボタンをク リ ッ ク し、 新規作成 ダイアログボッ クスの [PB オブジェク ト ] ページから [標準ビジュアル] を選択します。これで標準ビジュアル オブジェク トのデータ型の選択 ダイアログボッ クスが表示されます。 [データ型] テキス ト ボッ クスで 「datawindow」 を選択し、必要に応じてユーザ イベン ト を追加します。 ユーザ イベン ト を追加する方法については、 このチュート リ アルの後半で説明します。

11 既存の w_products ウ ィ ン ド ウの置き換えを要求する メ ッセージ ボッ クスが表示されます。

手順 変更指示

Page 150: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

先祖シート ウィンドウの新規作成

138 PowerBuilder Classic

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

ウ ィンド ウ ペインタに w_master_detail_ancestor ウ ィンド ウが開きます。このウ ィンド ウは テンプレート アプ リ ケーシ ョ ン ウ ィザードによって作成されたウ ィンド ウです。同ウ ィザードによって、メニューが作成され、 このウ ィ ンド ウ m_pbtutor_sheet にアタ ッチされています。 このメニューは、 ウ ィ ンド ウのプロパティ ビューに表示されます。 このプロパティは後で変更します。

2 ウ ィンド ウ ペインタにレイアウ ト ビューが見えているこ とを確認して ください。

3 システム ツ リーで、tutor_pb.pbl をダブルク リ ッ ク して展開します。システム ツ リーからレイアウ ト ビューの w_master_detail_ancestorウ ィンド ウに u_dwstandard をド ラ ッグします。

4 ウ ィ ン ド ウを広げて、 コン ト ロール全体がウ ィ ン ド ウ内に表示されるよ うにします。

ユーザ オブジェ ク ト の定義を継承するデータウ ィ ン ド ウ コン トロールが作成されます。

5 レイアウ ト ビューで新しいコン ト ロールが選択されているこ とを確認します。

隅に小さな黒い正方形が表示されていれば、 そのコン ト ロールは選択されています。 プロパティ ビューには選択されているコン トロールのプロパティが表示されます。

Page 151: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 139

6 プロパティ ビューの [名前] テキス トボッ クスで 「dw_1」 を選択します。[名前] テキス ト ボッ クスに 「dw_master」 と入力します。[垂直スク ロールバー] チェッ クボッ クスをオンにします。

データ ウ ィ ン ド ウ コン ト ロールに垂直ス ク ロールバーが追加され、 コン ト ロール名が dw_master に変更されます。 「dw_」 はデータウ ィンド ウ コン ト ロールの標準的な接頭辞です。

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

このステップでは、 アプ リ ケーシ ョ ンの詳細データウ ィン ド ウである2 番目のデータウ ィンド ウ コン ト ロールを追加します。

1 2 番目のデータウ ィ ンド ウ コン ト ロールを 1 番目のコン ト ロールの下に追加するスペースを確保するために、 ウ ィ ン ド ウのサイズを変更します。 システム ツ リーからレイアウ ト ビューの dw_master コン ト ロールの下に u_dwstandard をド ラ ッグします。

ユーザ オブジェ ク ト u_dwstandard の定義を継承する別のデータウ ィ ンド ウ コン ト ロールが作成されます。

Page 152: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

先祖シート ウィンドウの新規作成

140 PowerBuilder Classic

2 全体がウ ィンド ウ内に表示されるよ うにデータウ ィンド ウ コン トロールを移動します。

必要に応じて、 レイアウ ト ビューを 大化し、 その中のウ ィンドウ オブジェク ト を拡大して、データウ ィ ンド ウ コン ト ロールを表示するスペースを大き く します。

3 レイアウ ト ビューで新しいコン ト ロールが選択されているこ とを確認します。

プロパティ ビューには選択されているコン ト ロールのプロパティが表示されます。

4 プロパティ ビューの [名前] テキス トボッ クスで、 「dw_1」 を「dw_detail」 に置き換えます。

コン ト ロール名が dw_detail に変更されます。

Page 153: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 141

ユーザ オブジェク トから継承されたスクリプ トの参照

このステップでは、データウ ィンド ウ コン ト ロールが u_dwstandard から継承したスク リプ ト を参照します。

1 レイアウ ト ビューで dw_detail データウ ィンド ウをダブルク リ ック します。またはまだ選択していない場合は、 スク リプ ト ビューの 初のド ロ ップダウン リ ス トから 「dw_detail」 を選択します。

スク リプ ト ビューで、 dw_detail コン ト ロールの ItemChanged イベン トに対する空のスク リプ トが開きます。

スク リプ ト が記述されていないイベン トは、 ス ク リ プ トが記述されたイベン ト とは別にアルファベッ ト順に並べられます。 ス ク リプ トが記述されたイベン トが、 ド ロ ップダウン リ ス ト ボッ クスの先頭に一覧表示されます。 先祖スク リプ トが記述された dberror イベン トはこ こに表示されます。 表示されない場合は、 イベン ト のド ロ ップダウン リ ス ト ボッ ク スを上方にス ク ロールして ください。

2 スク リプ ト ビューの 2 番目のド ロ ップダウン リ ス ト ボッ クスで「dberror」 を選択します。

このスク リプ ト も何も記述されていませんが、 イベン ト名の横に紫色のスク リプ ト アイコンが表示されています。 これは、 先祖コン ト ロール (u_dwstandard) に、 関連付けられたスク リプ トがあるこ とを意味します。

3 メニューバーの [編集|ジャンプ|先祖スク リプ ト ] を選択します。または3 番目のド ロ ップダウン リ ス ト ボッ クスで 「u_dwstandard」 を選択します。

Page 154: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

先祖シート ウィンドウの新規作成

142 PowerBuilder Classic

スク リプ ト ビューに、 DBError イベン トに対するス ク リプ トが表示されます。 先祖ス ク リ プ ト は、 子孫ウ ィ ン ド ウのス ク リ プ トビューからアクセスする と きは読み取り専用になり ます。

4 適宜ウ ィ ンド ウをスク ロールして、DBError イベン トに定義されたデータベースのエラー処理を見ます。

このスク リプ トでは、DBError イベン トが通常表示するデフォルトのエラー メ ッセージを抑制して、 発生する可能性のあるデータベース エラーご とに適切なメ ッセージを表示しています。 また、ユーザ オブジェ ク ト に宣言されたユーザ イベン ト を呼び出しています。

dw_master と dw_standard は、 と もに u_dwstandard を継承したコント ロールなので、 このロジッ クは両方のコン ト ロールで自動的に再利用されます。

5 メニューバーの [編集|ジャンプ|子孫スク リプ ト ] を選択します。またはスク リプ ト ビューのスク リプ ト領域を右ク リ ッ ク します。ポップアップ メニューの [ジャンプ|子孫スク リプ ト ] を選択します。

3 番目のド ロ ップダウン リ ス ト ボッ クスに、 現在のコン ト ロールを含むオブジェク トの識別子である 「w_master_detail_ancestor」 が再度表示されます。 このコン ト ロール (dw_detail) の DBError イベン トのスク リプ トはまだ記述されていません。

Page 155: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 143

ユーザ イベン トおよびイベン ト スクリプ トの追加

現在の学習個所探索パスへのライブラリの追加先祖シート ウィンドウの新規作成

> ユーザ イベン トおよびイベン ト スクリプ トの追加データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加シート ウィンドウのサイズに合わせた実行時の設定の調整

ウ ィ ンド ウ、 ユーザ オブジェク ト 、 およびコン ト ロールは、 定義済みのイベン ト を持ちます。 必要とするイベン トはほとんど定義済みイベン トで提供されていますが、 必要に応じて独自のイベン ト を宣言するこ とができます。 このよ うなイベン ト をユーザ イベン ト と呼びます。

ユーザ イベン トの使い方 ユーザ イベン ト を定義する目的の 1 つは、 あるアプ リ ケーシ ョ ンで特定のタスクをいくつかの異なる場所に記述している場合に、 それらを 1 箇所にま とめてコードを減らすこ とです。たとえば、 データベースを更新する とい う タスクは、 ボタンをク リ ック した り、 メニュー項目を選択した り、 ウ ィ ンド ウを閉じた りする と実行されます。 こ う した場合に、 ボタンやメニュー項目やウ ィ ンド ウといった各場所にデータベースを更新するスク リプ ト を記述しな くても、 ユーザ イベン ト を 1 つ定義しておき、 データベースを更新する各場所でそのイベン ト を起動すればよいのです。

このステップでは、チュート リ アル データベースに対して検索、挿入、更新、 削除の処理を行うユーザ イベン ト を定義します。 これらの変更はウ ィンド ウ ペインタのスク リプ ト ビューで行います。このチュートリ アルの後半で、 これらのイベン ト を発生させるコードを メニュー ペインタで追加します。

1 スク リプ ト ビューの 初のド ロ ップダウン リ ス ト ボッ クスで「w_master_detail_ancestor」 を選択します。

2 メニュー バーの [挿入|イベン ト ] を選択します。またはスク リプ ト ビューの 2 番目のド ロ ップダウン リ ス ト ボッ ク スで「(新規イベン ト )」 を選択します。

スク リプ ト ビューに、 新しいイベン ト を定義するためのプロ ト タイプ ウ ィンド ウが表示されます。

Page 156: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ユーザ イベン トおよびイベン ト スクリプ トの追加

144 PowerBuilder Classic

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〕 を押して次のコ メン トに移動します。別の関数呼び出しを入力するか、オート スク リプ ト を使用して入力します。

Page 157: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 145

スク リプ ト領域をク リ ッ クする と、 ス ク リプ ト ビューの 2 番目のド ロ ップダウン リ ス ト ボッ クスのテキス トが 「 (新規イベン ト ) 」から 「ue_retrieve」 に変わり ます。 この関数に引数はなく、 値は返しません。 また、 ユーザ定義の例外もスローしません。 ユーザ定義の例外のスローについての詳細は、 レッスン 10 「例外処理」 を参照して ください。

入力したスク リプ ト行は Retrieve 関数を実行し、検索した行をデータウ ィンド ウ コン ト ロール dw_master に配置します。 検索に成功した場合は、 データウ ィ ンド ウ コン ト ロールの 1 行目にフォーカスがセッ ト され、現在の行を示すハンド ポインタが表示されます。

検索に失敗した場合

検索に成功しなかった場合は、 DBError イベン ト が発生します。DBError イベン トはユーザ オブジェク ト u_dwstandard で処理されます。 このスク リプ トについては以前の練習で説明しました。

4 メニュー バーから [ファ イル|上書き保存] を選択します。プロ ト タ イプ ウ ィ ン ド ウ を右ク リ ッ ク して、 ポ ップア ップ メニューの 「新規イベン ト 」 を選択します。

ue_retrieve イベン ト に対して入力したス ク リプ ト がコンパイルされます。 スク リプ ト ビューに、 別の新しいユーザ イベン トのプロト タイプ ウ ィンド ウが表示されます。

Page 158: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ユーザ イベン トおよびイベン ト スクリプ トの追加

146 PowerBuilder Classic

エラー メ ッセージが表示された場合

スク リプ トで入力ミ スがあった場合はコンパイル エラーにな り ます。 コンパイル エラーを無視するかど うかを尋ねるダイアログで[いいえ] を選択する と、 スク リプ ト ビューの一番下にコンパイルエラー領域が表示され、 エラーが特定されます。 この場合は、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 コン ト ロールの現在の行が削除されるこ とを指定しています。

イベン ト名 スクリプ ト

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)

Page 159: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 147

6 作業内容が保存されているこ とを確認します。

追加した新規イベン トおよびスク リプ ト ご とに手順 4 を繰り返し実行した場合は、 作業内容はすでに保存されています。

Page 160: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

データウィ ンドウ コン ト ロールのデータの検索を行うスクリプ トの追加

148 PowerBuilder Classic

データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加

現在の学習個所探索パスへのライブラリの追加先祖シート ウィンドウの新規作成ユーザ イベン トおよびイベン ト スクリプ トの追加

> データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加シート ウィンドウのサイズに合わせた実行時の設定の調整

先ほど 入力し たス ク リ プト は、 データ ウ ィ ン ド ウ コ ン ト ロ ール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ウ ィンド ウおよびその子孫で以下の処理を行います。

• 初めてシート ウ ィンド ウを開いたと きに、 上のデータウ ィンド ウコン ト ロールに リ ス ト (すべての顧客または商品の リ ス ト ) が表示されます。 リ ス ト の 初の項目の詳細情報は、 下のデータウ ィンド ウ コン ト ロールに表示されます。

• ユーザが上矢印または下矢印キーを使用して、 または行をク リ ック して、 上のデータウ ィンド ウ コン ト ロールのリ ス ト内を移動する と、 下のデータウ ィンド ウ コン ト ロールに現在の行の詳細が表示されます。

Page 161: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 149

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」 を選択します。

イベン ト名に注意

RowFocusChanging イベン トではなく、 RowFocusChanged イベン トを選択するよ う注意して ください。

こ こでデータウ ィ ンド ウ コン ト ロール dw_master の RowFocusChanged イベン トのスク リプ ト を追加します。 このスクリプ トは検索要求と選択した行の ID 番号をデータウ ィンド ウ コン ト ロール dw_detail に送り ます。

4 RowFocusChanged イベン トのスク リプ ト領域に次の行を入力します。

long ll_itemnum

この行は、 long 型のローカル変数 ll_itemnum (l は文字であ り、 数字ではない) を宣言します。

Page 162: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

データウィ ンドウ コン ト ロールのデータの検索を行うスクリプ トの追加

150 PowerBuilder Classic

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("検索 ","詳細データの検索に失敗しました。 ")END IF

これらの行は、 検索要求を、 データ ウ ィ ン ド ウが期待する引数(ll_itemnum 変数に格納されている ID 番号) と と もにデータウ ィンド ウ dw_detail に送り ます。 Retrieve 関数を囲む IF 文は正常に処理されたかど うかをチェ ッ ク します。 検索に失敗した場合は、 エラー メ ッセージ ボッ クスが表示されます。

Page 163: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 5 先祖ウィンドウの変更

PowerBuilder 入門 151

7 ペインタバー 1 の [保存] ボタンをク リ ッ ク します。ペインタバー 1 の [閉じる] ボタンをク リ ッ ク します。

スク リプ トがコンパイルされて保存されます。

8 パワーバーの [ワークスペースのフル構築] ボタンをク リ ッ ク します。

先祖オブジェ ク ト を変更したら、 すべてのオブジェ ク ト を再構築するよ うにして ください。

9 出力ウ ィンド ウを閉じます。

Page 164: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

シート ウィンドウのサイズに合わせた実行時の設定の調整

152 PowerBuilder Classic

シート ウィ ンド ウのサイズに合わせた実行時の設定の調整

現在の学習個所探索パスへのライブラリの追加先祖シート ウィンドウの新規作成ユーザ イベン トおよびイベン ト スクリプ トの追加データウィンドウ コン ト ロールのデータの検索を行うスクリプ トの追加

> シート ウィンドウのサイズに合わせた実行時の設定の調整

テンプレート アプリ ケーショ ン ウィ ザード によって作成されるシートマネージャは、シート ウィ ンド ウを開く 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 の [閉じる] ボタンをク リ ッ ク します。

次回チュート リ アル アプリ ケーシ ョ ンを実行する と、 デザイン時に設定したサイズでシート ウ ィンド ウが開きます。 ただし、 開いているほかのシート と重ねて表示される点は同じです。

Page 165: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 153

レ ッ ス ン 6 メ ニューの設定

このレッスンでは、 チュート リ アル アプリ ケーシ ョ ンで使用するメニューの設定を行います。 このレッスンでは、 以下の項目について学習します。

• フレーム メニューの修正

• シート メニューの新規作成

• ユーザ イベン ト を発生させる メニュー スク リプ トの追加

• 新規メニューのアタ ッチとアプリ ケーシ ョ ンの実行

メニューは独立したオブジェク トで、 メニュー ペインタを使用して作成します。 作成したメニューは複数のウ ィ ンド ウで使用できます。 アプ リ ケーシ ョ ン開発プロセスのどの時点でも メニューを作成できます。

所要時間

約 30 分

Page 166: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

フレーム メニューの修正

154 PowerBuilder Classic

フレーム メニューの修正

現在の学習個所> フレーム メニューの修正

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

現在のフレーム メニューはテンプレート アプ リ ケーシ ョ ン ウ ィザード によ って自動的に作成された メ ニューです。 m_pbtutor_frame メニューは、 このチュート リ アルで作業するほかのすべてのメニューの先祖オブジェク ト なので、 このメニューを変更する と自動的に子孫メニューも変更されます。

メニュー ペインタのプレビュー ビューでは、アプ リ ケーシ ョ ンを実行したと きに表示される とおりにメニューが表示されます。 このチュート リ アルでは、 プレビュー ビューを使用してアプ リ ケーシ ョ ン メニューに変更を加えますが、ツ リー メニュー ビューで同様の変更を加えるこ と もできます。 ツールバー ボタンを変更する と きはプロパティビューを使用します。

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

• ファ イル メニューの修正

• ヘルプ メニュー項目の有効化

ファイル メニューの修正

このステップでは、m_pbtutor_frame メニューのファイル カスケード メニューを変更します。

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

メニュー ペインタに、 アプ リ ケーシ ョ ンの MDI フレーム ウ ィ ンド ウ に 関 連 付 け ら れ て い る メ ニ ュ ー が 表 示 さ れ ま す。m_pbtutor_sheet は m_pbtutor_frame を継承しているので、 フレームメニューに変更を加える と、 シート メニューも変更されます。

プレビュー ビューでは、 メニュー項目はビューの上部に表示されます。 プレビュー ビューが開いていない場合は、 メニュー ペインタのメニュー バーの [ビュー] メニューから選択できます。

Page 167: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 6 メニューの設定

PowerBuilder 入門 155

2 m_pbtutor_frame のプレビュー ビューで 「ファ イル」 メニューをクリ ッ ク します。

プレビ ュー ビ ューで メ ニュー項目を ク リ ッ クする と、 その メニュー項目が実行時と同じよ うに表示されます。

ファイル メニューのメニュー項目が表示されない場合

プレビュー ビューを表示する と きは 「ファ イル」 メニューが選択されています。 そのほかのメニュー (編集、 ウ ィ ン ド ウ、 またはヘルプ) の 1 つをク リ ッ ク してから再び 「ファ イル」 メニューをク リ ッ クする と、 メニュー項目が表示されるこ とがあ り ます。

3 「フ ァ イル」 メニューの 「新規作成」 を右ク リ ッ ク します。ポップアップ メニューの [メニュー項目テキス トの編集] を選択します。[新規作成] フ ィールドをク リ ッ ク し、「新規作成 (&N)」 を 「レポー

ト (&R)」 で置換します。 〔Enter〕 を押します。

「新規作成」 メニュー項目の表示名を 「レポー ト 」 に変更します。メニュー名は m_new のまま変更されず、 その目的 (新しいシートを開きます) も変更されません。

アンパサンド文字を使用したアクセラレータ キーの定義

アンパサンド (&) の次の文字がアクセラレータ キー (ニーモニック) と して使用され、 プレビュー表示では下線付きで表示されます。 アプ リ ケーシ ョ ンの実行時には、 〔Alt〕 + 〔F〕 + 〔R〕 を押すと、 [ファ イル|レポート ] メニューにアクセスできます。

4 プロパティ ビューの [テキス ト ] テキス ト ボッ クスに 「レポート(&R)」 と表示されているこ とを確認します。プロパティ ビューの [ツールバー] タブをク リ ッ ク します。

ツールバー項目のテキス トは、 「新規作成 , 新規シート 」 です。 [ピクチャ名] ボッ ク スでは何も選択されていないので、 実行時にレポー ト メニュー項目に対するツールバー ボタンは表示されません。 レポート メニュー項目は、 新しいシート を開く コマンド と してではなく、 カスケード メニュー項目にアクセスするために使用するので、 こ こにツールバー ボタンは追加しません。

5 プレビュー ビューで 「ファ イル」 メニューの 「開く」 メニュー項目をク リ ッ ク します。

Page 168: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

フレーム メニューの修正

156 PowerBuilder Classic

プロパティ ビューで [全般] タブをク リ ッ ク します。プロパティ ビューの [全般] ページで、 [表示可能] および [使用可能] チェッ クボッ クスのチェッ クをはずします。

すべての実行時メニューで開く メニュー項目を非表示にします。[表示可能] プロパティのチェ ッ クをはずすと、プレビュー ビューで、 このメニュー項目が淡色表示されます。 実行時には表示されません。 [使用可能] チェッ クボッ クスのチェッ クをはずすと、 プレビュー ビューで、 このメニュー項目が淡色で反転浮彫り表示されます。このメニュー項目は実行時に表示される場合でも、グレー表示のままです。

6 プロパティ ビューの [ツールバー] タブをク リ ッ ク します。[表示可能] チェ ッ クボッ クスのチェ ッ クをはずします。

これで、 この メ ニュー項目のツールバー ボタ ンがフレーム メニューのツールバーに表示されな くな り ます (対応する メニュー項目が表示または有効化されない場合でも、 ボタンをツールバーに表示できます)。

7 プレビュー ビューで、 「ファ イル」 メニューの 「終了」 をク リ ッ クします。

プロパティ ビューの [ツールバー] ページが開いたままになっていれば、 [項目テキス ト ] および [ピ クチャ名] の値が m_exit メニュー項目の値に変わり ます。

Page 169: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 6 メニューの設定

PowerBuilder 入門 157

ヘルプ メニュー項目の有効化

「ヘルプ」 メニューには 3 つの項目があ り ますが、有効になっている項目は 「バージ ョ ン情報」 の 1 つだけです。 このステップでは、 テンプレート アプ リケーシ ョ ン ウ ィザードおよび Tutorial ディレク ト リ内のpbtutor.hlp ファ イルが提供したコ メン ト化コードを使用して、そのほかのメニュー項目を有効にします。

ShowHelp 関数を使用してアプ リ ケーシ ョ ンのヘルプ ト ピッ クを呼び出し、 ヘルプの目次またはインデッ クスを表示するか、 特定の ト ピック またはキーワードを表示するかを識別するカタログ値を渡します。ShowHelp は、 Windows のヘルプまたはコンパイルされた HTML ヘルプ (CHM) フ ァ イルを開く こ とができます。

1 プレビュー ビューで 「ヘルプ」 メニューをク リ ッ ク して、 「目次」メニュー項目をダブルク リ ッ ク します。

目次メニュー項目は使用可能になっていな くてもダブルク リ ッ クできます。 ス ク リ プ ト ビューに目次メ ニュー項目が完全な名前(m_help.m_helpindex) で表示されます。 完全な名前には、 ヘルプメニューであるこ とを示す m_help 接頭辞も含まれます。

2 まだ選択されていない場合は 2 番目のド ロ ップダウン リ ス ト ボックスで 「Clicked」 を選択します。

3 ShowHelp 関数を含む行にカーソルを置き、 パワーバーの [コ メント解除] ボタンをク リ ッ ク します。次のよ うに myapp.hlp を pbtutor.hlp に変更します。

ShowHelp ("pbtutor.hlp", Index!)

する と、 ヘルプ ファ イルにデフォルト ト ピッ クが表示されます。

4 プロパティ ビューの [全般] ページで、 m_helpindex メニュー項目の [使用可能] チェッ クボッ クスをオンにします。

5 以下の ShowHelp 関数を使って、 [ ト ピッ クの検索] メニュー項目についても同様の手順を繰り返します。

ShowHelp ("pbtutor.hlp", Keyword!, "")

Page 170: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

フレーム メニューの修正

158 PowerBuilder Classic

ヘルプ ファ イルのキーワードである文字列が 3 番目の引数に含まれている場合は、 関連付けられた ト ピッ クが表示されます。 こ こではこの引数が空の文字列なので、 ト ピ ッ クの検索ウ ィ ン ド ウが表示されます。

6 PowerBuilder のメ イン メニュー バーの [ファ イル|上書き保存]を選択します。PowerBuilder のメ イン メニュー バーの [ファ イル|閉じる] を選択します。

Page 171: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 6 メニューの設定

PowerBuilder 入門 159

シート メニューの新規作成

現在の学習個所フレーム メニューの修正

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

このステップでは、 ユーザが顧客または商品情報を見るために MDIシート を開いたと きに表示される メニューを新規作成します。 作成する メニューは、テンプレート アプリ ケーシ ョ ン ウ ィザードによって生成された m_pbtutor_sheet メニューの子孫オブジェク トです。

m_pbtutor_sheet メニューは m_pbtutor_frame を継承していますが、いくつかのメニュー項目が追加されています。 作成する メニューには、 先祖メニューにないメニュー項目を追加します。

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

• 継承される新規メニューの作成および保存

• 新規メニューへのメニュー項目の追加

• 新規メニュー項目のツールバーの追加

継承される新規メニューの作成および保存

アプリ ケーシ ョ ンのシート メニューから継承すれば、 先祖メニューを変更せずにそのシー ト メ ニューの特性を保持でき ます。 新しい メニューをただちに保存し、 修正した後で再び保存するこ とをお勧めします。

1 パワーバーの [オブジェク トの継承] ボタンをク リ ッ ク します。

オブジェク トから継承 ダイアログボッ クスが表示されます。

2 [オブジェク ト の種類]ド ロップダウン リ スト ボッ クスで「メ ニュー」が選択されているこ とを確認します。[オブジェ ク ト ] リ ス ト ボッ クスで 「m_pbtutor_sheet」 を選択して[OK] をク リ ッ ク します。

m_pbtutor_sheet のすべての性質を備えた タ イ ト ル未設定の メニューが表示されます。

Page 172: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

シート メニューの新規作成

160 PowerBuilder Classic

継承されたシート メニューでは 「ウ ィ ンド ウ」 メニュー項目が有効になってお り、 m_pbtutor_sheet メ ニューの場合と同じ よ う にウ ィ ン ド ウを並べて表示した り、 重ねて表示した りする こ とができます。 これらのメニュー項目は m_pbtutor_frame メニューでは無効化されていました。

MDI フレーム メニューに対する変更

プレビュー ビューで 「フ ァ イル」 メ ニューをク リ ッ クする と、 1番目のメニュー項目が 「レポート 」 になっています。 [開く] 項目は、 淡色で非表示である こ とを示し、 グレーで無効化されているこ とを示します。 これらの性質は m_pbtutor_frame から継承によ り伝えられたものです。

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

メニューの保存 ダイアログボッ クスが表示されます。

4 [メ ニュー] ボッ ク スにメニュー名と して 「m_my_sheet」 と入力します。[コ メ ン ト ] ボッ クスに次のよ うに入力します。

w_master_detail_ancestor および子孫オブジェク トの新しいシート メニュー

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

これでメニューに名前が付けられます。m_ はメニューの標準的な接頭辞です。

新規メニューに付けた名前がメニュー ペインタのワークスペースのタイ トル バーに表示され、 m_my_sheet メニューがシステム ツリーに表示されます。

Page 173: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 6 メニューの設定

PowerBuilder 入門 161

新規メニューへのメニュー項目の追加

こ こでは、 m_pbtutor_sheet から継承したメニューの編集メニューに項目を追加します。 プレビューおよびプロパティ ビューを使用します。

1 新規メニューのプレビュー ビューで 「編集」 メニューをク リ ッ クします。

アプ リ ケーシ ョ ン実行時と同じよ うに編集メニューのメニュー項目の リ ス ト が表示されます。 編集メニューのメニュー項目はすべて表示されますが、 無効です (プレビュー ビューではグレーですが淡色表示にはなっていません)。

2 プレビュー ビューで 「編集」 メニューのメニュー項目を右ク リ ック します。ポップアップ メニューの [メニュー項目の 後に挿入] を選択します。

「編集」 メニューのリ ス トの 後に表示される空のボッ クスにカーソルが移動します。

3 メニューの下にあるボッ クスをク リ ッ ク してハイフン (-) を入力します。 〔Enter〕 を押します。

ハイフンが区分線に変わり ます。プロパティ ビューでは、メニュー項目の名前が m_0 に変わり ます。 メニュー項目間の区分線も、 名前は一意でなければな り ません。 メニュー内のほかの区分線には、接頭辞 m_- の後に一意のインデッ クス番号が付けられます。

4 プロパティ ビューで新しい区分線の [使用可能] チェ ッ クボッ クスのチェ ッ クをはずします。

5 プレビュー ビューで新しい区分線を右ク リ ッ ク します。ポップアップ メニューの [メニュー項目の 後に挿入] を選択します。新しい区分線の下に表示されるボッ クスに 「挿入 (&I)」 と入力し、〔Enter〕 を押します。

メニュー項目名の [名前] が自動的に m_ 挿入 i に設定されます。デフォル トの名前が正し くないとい う メ ッセージが表示された場合は、 かわりの名前が示されます。 その場合、 示された名前を使用するには [OK] をク リ ッ ク します。

Page 174: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

シート メニューの新規作成

162 PowerBuilder Classic

メニュー項目名を挿入する別の方法

プレビュー ビューではなく、プロパティ ビューの[テキス ト ]ボックスに 「挿入 (&I)」 と入力します。 この場合、 後で 〔Enter〕 を押す必要はあ り ません。 ただし、 [名前] ボッ ク スがグレー表示になっている場合は、 まず [項目名固定] チェ ッ クボッ ク スをオフにする必要があ り ます。そ う しないと メニュー名は m_ 挿入 i にリセッ ト されません。

6 プロパティ ビューの [マイ ク ロヘルプ] ボッ クスに 「行の挿入」 と入力します。

デフォルトでは、新規メニュー項目は表示され、有効になり ます。

ユーザがこのメニュー項目を選択する と、 アプ リ ケーシ ョ ン ウ ィンド ウの一番下の [マイ ク ロヘルプ] 行に 「行の挿入」 とい う テキス トが表示されます。

7 以下のメニュー項目について、 手順 5 と 6 を繰り返します。

メニュー項目 マイクロヘルプ テキスト

更新 (&A) データベースを更新

削除 (&D) 現在の行を削除

Page 175: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 6 メニューの設定

PowerBuilder 入門 163

編集メニューに、 データベースのレコードの更新および削除のためのメニュー項目を追加します。 有効化されてはいませんが、 文字 U はすでにメニュー項目 「元に戻す」 のアクセラレータ キーとして使用されているので、 メニュー項目 「更新」 に同じアクセラレータ キーを使用しないでください。 かわりに文字 A を使用します。

新規メニュー項目のツールバーの追加

こ こでは、 さきほど定義したメニュー項目に対するツールバー ボタンを追加し 2 番目のツールバーに配置します。

1 プレビュー ビューの 「編集」 メニューの新しい 「挿入」 メニュー項目をク リ ッ ク します。

2 プロパティ ビューの [ツールバー] タブをク リ ッ ク します。[項目テキス ト ] ボッ クスに 「挿入」 と入力します。[ピクチャ名] ド ロ ップダウン リ ス ト で 「Insert!」 と入力または選択します。

Page 176: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

シート メニューの新規作成

164 PowerBuilder Classic

これで Insert! とい う組み込みピクチャを使用する挿入メニュー項目のツールバー ボタンが定義されます。 実行時のアプリ ケーシ ョンでツールバーに対して [テキス ト の表示] オプシ ョ ンが有効になっている と、 「挿入」 とい うテキス トがボタンの上に表示されます。

3 [項目の間隔] スピン コン ト ロールに 「1」 と入力するか、 「1」 をク リ ッ ク します。[項目の順序] スピン コン ト ロールに 「1」 と入力するか、 「1」 をク リ ッ ク します。[項目インデッ ク ス] スピン コン ト ロールに 「2」 と入力するか、「2」 をク リ ッ ク します。

追加されたメニュー項目用の新しいツールバーを作成する と、 [挿入] ボタンがこのツールバーの 初の項目にな り ます。

4 プレビュー ビューの 「編集」 メニューの 「更新」 メニュー項目をク リ ッ ク します。プロパテ ィ ビューのタ イ ト ル バーに表示されている こ と を確認します。

5 まだ [ツールバー] ページを開いていない場合は [ツールバー] タブをク リ ッ ク します。[項目テキス ト ] ボッ クスに 「更新」 と入力します。[ピクチャ名] ド ロ ップダウン リ ス ト ボッ クスで 「Update!」 を入力または選択します。

これで、 Update! とい う組み込みピクチャを使用する更新メニュー項目のツールバー ボタンが定義されます。ボタンのテキス トは「更新」 です。

6 [項目の順序] スピン コン ト ロールに 「2」 と入力するか、 「2」 をク リ ッ ク します。[項目インデッ ク ス] スピン コン ト ロールに 「2」 と入力するか、「2」 をク リ ッ ク します。

新規ツールバーの [挿入] ボタンの後に [更新] ボタンが追加されます。

Page 177: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 6 メニューの設定

PowerBuilder 入門 165

7 プレビュー ビューで 「編集」 メニューの新しい 「削除」 メニュー項目をク リ ッ ク します。プロパテ ィ ビューのタ イ トル バーにも表示されている こ と を確認します。

8 まだ [ツールバー] ページを開いていない場合は [ツールバー] タブをク リ ッ ク します。[項目テキス ト ] ボッ クスで 「削除」 と入力します。[ピ クチャ名] ド ロ ップダウン リ ス ト ボッ ク スで 「DeleteRow!」を入力または選択します。

これで、DeleteRow! とい う組み込みピクチャを使用する [削除] メニュー項目のツールバー ボタンが定義されます。 ボタンのテキストは 「削除」 です。

9 [項目の順序] スピン コン ト ロールに 「3」 と入力するか、 「3」 をク リ ッ ク します。[項目インデッ ク ス] スピン コン ト ロールに 「2」 と入力するか、「2」 をク リ ッ ク します。

新規ツールバーの更新ボタンの後に削除ボタンを追加します。

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

Page 178: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ユーザ イベン ト を発生させるメニュー スクリプ トの追加

166 PowerBuilder Classic

ユーザ イベン ト を発生させるメニュー スクリプ トの追加

現在の学習個所フレーム メニューの修正シート メニューの新規作成

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

このステップでは、 シート ウ ィ ン ド ウのメニュー バーからユーザ イベン ト を発生させるスク リプ ト を追加します。 これらのユーザ イベント はレ ッ スン 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 が発生します。

Page 179: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 6 メニューの設定

PowerBuilder 入門 167

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()

Page 180: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

新規メニューのアタ ッチとアプリケーシ ョ ンの実行

168 PowerBuilder Classic

新規メニューのアタ ッチとアプリケーシ ョ ンの実行

現在の学習個所フレーム メニューの修正シート メニューの新規作成ユーザ イベン ト を発生させるメニュー スクリプ トの追加

> 新規メニューのアタ ッチとアプリケーシ ョ ンの実行

このステップでは、 新規シート メニューをアタ ッチして、 も う一度アプリ ケーシ ョ ンを実行します。

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

プロパティ ビューが表示されていない場合

メニュー バーの [ビュー|プロパティ] を選択します。

ウ ィンド ウ ペインタのプロパティ ビューの [メニュー名] ボッ クスに リ ス ト されている メニューはまだ m_pbtutor_sheet です。

2 プロパティ ビューの [メニュー名] ボッ クスの隣の参照 ([...]) ボタンをク リ ッ ク します。

オブジェク ト選択 ダイアログボッ クスが表示されます。

3 [メニュー] リ ス ト ボッ クスで 「m_my_sheet」 を選択して [OK] をク リ ッ ク します。

これは m_pbtutor_sheet から継承した後で変更したシート メニューです。 これでプロパティ ビューでメニュー名と して リ ス ト されます。

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

アプ リ ケーシ ョ ン ログイン ウ ィ ンド ウが表示されます。

5 [ユーザ ID] ボッ クスに 「dba」 と入力します。[パスワード] ボッ ク スに 「sql」 と入力して、 [OK] ボタンをクリ ッ ク します。

Page 181: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 6 メニューの設定

PowerBuilder 入門 169

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開き ます。 [フ ァ イル] メ ニューには、 [新規作成] メニュー項目のかわりに [レポート ] カスケード メニューが表示されます。 [開く ] メニュー項目は表示されなくなっています。

6 メニュー バーの [ファ イル|レポート|顧客情報] を選択します。

2 番目のツールバーが表示され、 編集およびウ ィ ンド ウ カスケード メニューに使用可能なメニュー項目が表示されている こ とに注意して ください。

7 [編集] メニューを選択します。

[編集] メニューには、 追加した挿入、 更新、 削除オプシ ョ ンがあり ます。 顧客情報ウ ィ ンド ウのデータウ ィンド ウ コン ト ロールにはデータウ ィ ン ド ウ オブジェ ク ト が関連付けられていないので、これらのオプシ ョ ンはまだ機能しません。

8 [ウ ィ ン ド ウ] メニューを選択します。

開いたシー ト に対応する新しい メ ニュー項目が追加されています。

9 メニュー バーの [ファ イル|レポート|商品管理] を選択します。

2 番目の MDI シートが開きます。 このシートは 1 番目のシートに重なるよ うにして表示されます。メニュー バーは変更されません。これは m_my_sheet が w_customers と w_products の両方のメニューであるためです。

10 [編集] メニューを選択します。

w_products ウ ィンド ウは m_my_sheet メニューを使用するので、商品管理ウ ィ ン ド ウが開いている と きに挿入、 更新、 削除オプシ ョンも利用できます。

11 [ウ ィ ン ド ウ] メニューを選択します。

開いた 2 番目のシートに対応する メニュー項目が追加されています。このメニュー項目の隣にチェ ッ クマークが表示され、アクティブなシートであるこ とが示されます。

Page 182: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

新規メニューのアタ ッチとアプリケーシ ョ ンの実行

170 PowerBuilder Classic

12 メニュー バーの [ファ イル|終了] を選択します。

アプ リ ケーシ ョ ンが終了し、 ウ ィンド ウ ペインタのワークスペースに戻り ます。

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

Page 183: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 171

レ ッ ス ン 7 データウィ ンド ウ オブジェ クト の作成

データウ ィ ンド ウ オブジェク トは、 PowerBuilder のもっと も強力で有用な機能の 1 つです。データウ ィ ンド ウ オブジェク トは、データベース と接続してデータを読み込み、 さ まざまな提示様式でデータを表示します。 また、 データベースを更新するこ と もできます。

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

• データウ ィンド ウ オブジェク トの新規作成とプレビュー

• データウ ィンド ウ オブジェク トの保存

• 1 つめのデータウ ィ ンド ウ オブジェク トの表示の変更

• 2 つめのデータウ ィ ンド ウ オブジェク トの作成

• 2 つめのデータウ ィ ンド ウ オブジェク トの表示の変更

所要時間

約 20 分

Page 184: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

データウィ ンドウ オブジェク トの新規作成とプレビュー

172 PowerBuilder Classic

データウィンドウ オブジェク トの新規作成とプレビュー

現在の学習個所> データウィンドウ オブジェク トの新規作成とプレビュー

データウィンドウ オブジェク トの保存1 つめのデータウィンドウ オブジェク トの表示の変更2 つめのデータウィンドウ オブジェク トの作成2 つめのデータウィンドウ オブジェク トの表示の変更

このステップでは、 データウ ィ ン ド ウ オブジェ ク ト を新規作成して、データウ ィ ン ド ウ ペインタに表示します。 ほかのペインタ と同様に、データウ ィンド ウ ペインタには、 同時に開く こ とができるさまざまなビューがあ り ます。

データウィンドウ ペインタのデザイン ビューについて

データウ ィンド ウ ペインタのデザイン ビューは、ほかのペインタのレイアウ ト ビューと似ています。 一度に表示できるデザイン ビューは 1つだけです。

デザイン ビューは、 ヘッダ、 詳細、 サマリー、 およびフッ タの 4 つの「区域」 と呼ばれる領域に分かれています。 これらの区域の内容は変更するこ とができます。 たとえば、 サイズの変更や、 オブジェク ト (コン ト ロール、 テキス ト、 線、 ボッ クス、 楕円) の追加、 色やフォン トの変更を行う こ とができます。

データウ ィンド ウ ペインタのプレビュー ビューでは、実行時におけるアプ リ ケーシ ョ ンでのオブジェ ク ト の表示をテーブル データが挿入された状態で見るこ とができます。

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

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

2 [データウ ィ ンド ウ] タブをク リ ッ ク します。

Page 185: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 173

3 提示様式のリ ス トで 「タブラ」 を選択します。

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

データウ ィ ンド ウ ウ ィザードの [タブラ データウ ィンド ウのためのデータソースの選択] ページが表示されます。

Page 186: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

データウィ ンドウ オブジェク トの新規作成とプレビュー

174 PowerBuilder Classic

5 データ ソース と して [Quick Select] を選択し、 [プレビューの度に検索] チェ ッ クボッ クスがオフの場合はオンにします。[次へ] をク リ ッ ク します。

EAS Demo DB データベースに接続し、Quick Select ダイアログボックスが表示されます。

6 [テーブル] リ ス ト ボッ クスで 「customer」 (顧客情報テーブル) をク リ ッ ク します。

テーブルが開き、 カラムが一覧表示されます。 このデータウ ィ ンド ウでは 4 つのカラムを選択します。

7 [カラム] リ ス ト ボッ クスで 「id」、 「lname」、 「fname」 を、 並んでいる順にク リ ッ ク します。リ ス ト をスク ロールして 「company_name」 をク リ ッ ク します。

Quick Select ダイアログボッ クスの下のグ リ ッ ドに、 選択したカラムが表示されます。

Page 187: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 175

選択する順序で表示される順序が決まります

各カラムは、 選択した順に、 データウ ィンド ウ オブジェク ト内で左から右へ表示されます。誤ってカラムをク リ ッ ク した場合は、もう一度ク リ ッ クする と選択を取り消すこ とができます。

ダイアログボッ ク スの下のグ リ ッ ド領域を使用して、 ソー ト条件(SQL ORDER BY 句の場合) や選択条件 (SQL WHERE 句の場合)を指定できます。 こ こではソート条件だけを指定します。 id カラムを昇順にソート します。

8 Quick Select ダイアログボッ クスのグ リ ッ ド領域で、 [ソート ] の横、 「Id」 の下のセルをク リ ッ ク します。

ド ロ ップダウン リ ス ト ボッ クスが表示されます。

9 2 番目のド ロ ップダウン リ ス ト ボッ クスで 「昇順」 を選択します。

これで id カラムを昇順でソートするよ うに指定されます。

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

Page 188: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

データウィ ンドウ オブジェク トの新規作成とプレビュー

176 PowerBuilder Classic

データウ ィンド ウ ウ ィザードから、データウ ィ ンド ウ オブジェクトの色と枠線を選択するよ うに求められます。デフォルトでは、テキス ト またはカラムの枠線はあ り ません。

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

境界と色のデフォル ト 設定値を使用し ます。 データ ウ ィ ン ド ウウ ィザードによ り、 選択した値が集約されます。

12 [完了] ボタンをク リ ッ ク します。

新規データウ ィ ンド ウ オブジェク トが作成され、 データウ ィンドウ ペインタが開きます。

デザイン ビューに、 デフォル ト のヘッダが付いたヘッダ区域と、選択したカラムのある詳細区域がそれぞれ表示されます。

プレビュー ビューでは、 実行時に表示される ものと同じデータウ ィ ン ド ウが表示されます。 すべての顧客のデータが表示されます。データは、指定したとおり、顧客 ID で昇順にソート されます。

Page 189: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 177

プレビュー ビューの表示

プレビュー ビューが表示されていない場合は、 メニュー バーから[ビュー|プレビュー] を選択します。 [プレビュー] がグレー表示の場合は、 すでに表示されているので選択できません。 一度に表示できるプレビュー ビューは 1 つだけです。

Page 190: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

178 PowerBuilder Classic

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

現在の学習個所データウィンドウ オブジェク トの新規作成とプレビュー

> データウィンドウ オブジェク トの保存1 つめのデータウィンドウ オブジェク トの表示の変更2 つめのデータウィンドウ オブジェク トの作成2 つめのデータウィンドウ オブジェク トの表示の変更

このステップでは、 データウ ィ ン ド ウ オブジェ ク トに名前を付けて、pbtutor.pbl ライブラ リに保存します。

別のライブラリへの保存

オブジェ ク ト は別のアプ リ ケーシ ョ ン ラ イブラ リ に保存する こ とができますが、 複雑にならないよ うにするために、 新しいチュート リ アル オブジェク トはすべて同一のライブラ リに保存します。 また、 ライブラ リ ペインタを使用する と、 ライブラ リ間でオブジェク ト をコピーしたり、 移動したりするこ と もできます。

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

データウ ィンド ウの保存 ダイアログボッ クスが表示され、[データウ ィンド ウ] ボッ クスに挿入ポイン トが示されます。

2 [アプ リ ケーシ ョ ン ライブラ リ ] ボッ クスで 「pbtutor.pbl」 が選択されているこ とを確認します。[データウ ィ ンド ウ] ボッ クスに 「d_custlist」 と入力します。

これで、 データウ ィ ン ド ウ オブジェ ク ト に名前が付けられます。「d_」 はデータウ ィ ンド ウ オブジェク トの標準の接頭辞です。

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

このデータウィンドウ オブジェク トは顧客名とその会社名を検索します。

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

データウ ィ ンド ウ オブジェク トが保存され、 データウ ィンド ウの保存 ダイアログボッ クスが閉じます。

Page 191: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 179

1 つめのデータウィンドウ オブジェク トの表示の変更

現在の学習個所データウィンドウ オブジェク トの新規作成とプレビューデータウィンドウ オブジェク トの保存

> 1 つめのデータウィンドウ オブジェク トの表示の変更2 つめのデータウィンドウ オブジェク トの作成2 つめのデータウィンドウ オブジェク トの表示の変更

こ こでは、 データウ ィン ド ウの表示を変更します。 カラム とカラム見出しを移動して、 現在選択されている行の左にハンド ポインタを表示するスペースを作り ます。 また、 一部のカラムを移動して見出し と揃う よ うにします。

これらの変更作業はデザイン ビューで行います。 同時にプレビュービューを開いておけば、 変更した結果、 実行時にデータウ ィ ンド ウがどのよ うに表示されるかを確認できます。

1 メニュー バーの [編集|選択|すべて選択] を選択します。または〔Ctrl〕 + 〔A〕 を押します。

データウ ィンド ウ オブジェク ト内のすべてのコン ト ロールがデザイン ビューで選択されます。

2 選択したオブジェク トの 1 つにマウス ポインタを移動します。右に 4 cm ほど、 オブジェク ト をド ラ ッグします。

選択されているすべてのオブジェク トがいっし ょに移動します。

3 デザイン ビューで、 空白の領域をク リ ッ ク します。

オブジェク トの選択が解除されます。

4 ヘッダ区域の上の顧客 ID の見出しをク リ ッ ク します。〔Ctrl〕 を押したまま、詳細区域の上の id カラムをク リ ッ ク します。〔Ctrl〕 を放し、 id カラムを左に 2.5 cm ほどド ラ ッグします。

カラムとその見出しがいっし ょに移動します。

5 スタイルバーの [中央揃え] ボタンをク リ ッ ク します。デザイン ビューで、 空白の領域をク リ ッ ク します。

Page 192: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

1 つめのデータウィ ンドウ オブジェク トの表示の変更

180 PowerBuilder Classic

顧客 ID カラムの見出しテキス ト とカラム データが中央に配置されます。

6 姓の見出しをク リ ッ ク します。〔Ctrl〕 を押したまま名および会社名の見出しをク リ ッ ク します。スタイルバーの [左揃え] ボタンをク リ ッ ク します。

操作を完了する と、 デザイン ビューは次の図のよ うになるはずです。

7 メニュー バーから [ファ イル|閉じる] を選択します。

変更内容を保存するかど うかを確認する メ ッセージ ボッ クスが表示されます。

8 [はい] をク リ ッ ク します。

データウ ィンド ウ オブジェク トが保存され、データウ ィンド ウ ペインタが閉じます。

Page 193: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 181

2 つめのデータウィンドウ オブジェク トの作成

現在の学習個所データウィンドウ オブジェク トの新規作成とプレビューデータウィンドウ オブジェク トの保存1 つめのデータウィンドウ オブジェク トの表示の変更

> 2 つめのデータウィンドウ オブジェク トの作成2 つめのデータウィンドウ オブジェク トの表示の変更

1 つめのデータウ ィ ンド ウ オブジェク ト を作成したと きには、 QuickSelect を使用してテーブルと カラムを指定しました。Quick Select を使用すると 、 Select ペインタを使用しないですべての顧客を検索できます。

2 つめのデータウ ィ ン ド ウ オブジェ ク トの作成では、 Select ペインタを使用します。 実行時に引数をデータウ ィンド ウ オブジェク トに渡すために、 検索引数と WHERE 条件を定義する必要があ り ます。 こ こでは、 顧客 ID を渡します。

この節では、 以下の操作を行います。

• データ ソースおよびスタイルの選択

• テーブルとカラムの選択

• 検索引数の定義

• WHERE 句の指定

• データウ ィ ンド ウ ペインタでのデータウ ィンド ウの表示

• データウ ィ ンド ウ オブジェク トの保存

データ ソースおよびスタイルの選択

こ こでは、データ ソースを選択して、データの表示方法を指定します。

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

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

2 まだ選択していない場合は、 [データウ ィンド ウ] タブをク リ ッ クします。提示様式の リ ス ト で 「フ リ ーフォーム」 を選択して [OK] を クリ ッ ク します。

Page 194: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

2 つめのデータウィ ンドウ オブジェク トの作成

182 PowerBuilder Classic

3 データ ソース と して 「SQL Select」 を選択し、 [プレビューの度に検索] チェッ クボッ クスがオフの場合はオンにします。

データ ソースが SQL Select なので、 Select ペインタに移動します。複数テーブルの選択 ダイアログボッ クスが表示されます。

[プレビューの度に検索] チェッ クボッ クスをオンにする と、 開発環境でクエ リによって返されたデータを表示できますが、 指定するすべての検索引数に初期値を与える必要があ り ます。

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

テーブルとカラムの選択

こ こでは、 データウ ィンド ウ オブジェク トで使用するテーブルとカラムを選択します。

1 [複数テーブルの選択] リ ス ト で 「customer」 を選択して [開く]をク リ ッ ク します。

Select ペインタに、customer テーブルとそのテーブルのカラムが表示されます。

別の方法

customer テーブルを選択して [開く] を ク リ ッ クするかわ り に、customer テーブルをダブルク リ ッ ク した場合は、 テーブルの選択ダイアログボッ ク スは開いたままにな り ます。 この場合、 次の操作に進むには [キャンセル] をク リ ッ クする必要があ り ます。

2 テーブル レイアウ ト ビューで、 ヘッダ領域を右ク リ ッ ク します。ポップアップ メニューで [すべて選択] をク リ ッ ク します。

ラベルの上の選択リ ス ト領域にカラム名が表示されます。

カラムは、 選択した順序で表示されます。 こ こでは一度にすべてのカラムを選択したため、 データベース内でのカラムの元の順序が使用されます。 カラムの表示順序は後で変更します。

Page 195: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 183

Syntax ビューでは、選択順序も確認できます。生成された Select 文を表示するには、 タブ ウ ィンド ウの一番下にある [Syntax] タブをク リ ッ ク します。

検索引数の定義

こ こでは、 検索引数を定義します。

1 メニュー バーの [デザイン|検索引数] を選択します。

検索引数の指定 ダイアログボッ クスが表示されます。

Page 196: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

2 つめのデータウィ ンドウ オブジェク トの作成

184 PowerBuilder Classic

2 [名前] ボッ クスに 「cust_id」 と入力します。

デフォルトのデータ型は 「Number」 で、 これを使用します。

検索引数名について

使用する検索引数にはどのよ う な名前を付けてもかまいません。これは、 実行時に渡す値のプレースホルダにすぎません。 ただし、意味のある名前を使用するよ うにしたほうがよいでし ょ う。

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

検索引数が定義されます。

WHERE 句の指定

こ こでは、 特定の顧客を検索するために検索引数を使用して WHERE句を指定します。

1 [Where] タブをク リ ッ ク します。

Where ビューが表示されます。

2 Where ビューで、 [カラム名] の下のボッ クスをク リ ッ ク します。

下矢印が表示され、 ボッ クスがド ロ ップダウン リ ス ト ボッ クスにな り ます。

Page 197: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 185

3 「"customer"."id"」 を選択します。

カラム見出しのすぐ下に 「"customer"."id"」 が表示されます。[演算子] ボッ クスに等号 (=) が表示されます。 この演算子は正しいので、 変更の必要はあ り ません。

4 Where ビューで、[値] のカラム ヘッダの下のボッ クスを右ク リ ック します。ポップアップ メニューから [引数] を選択し、 「:cust_id」 を選択して、 [貼り付け] をク リ ッ ク します。

5 [Syntax] タブをク リ ッ ク します。

Syntax ビューに、 修正した SELECT 文が表示されます。

6 スク ロールして、 生成された WHERE 句を表示します。

これで、 完全な SQL SELECT 文が作成されました。 この文は、 実行時に指定される引数に等しい id カラムがある顧客情報テーブルの複数のカラムからデータを検索します。

Page 198: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

2 つめのデータウィ ンドウ オブジェク トの作成

186 PowerBuilder Classic

データウィ ンドウ ペインタでのデータウィンドウの表示

こ こでは、デザイン ビューとプレビュー ビューを使用してデータウ ィンド ウ ペインタでデータウ ィ ンド ウを表示します。

1 ペインタバーの [ペインタに戻る] ボタンをク リ ッ ク します。またはメニュー バーの [ファ イル|データウ ィ ンド ウ ペインタに戻り ます] を選択します。

データウ ィンド ウ ウ ィザードによ り、新規データウ ィンド ウ オブジェク トの枠線と色を選択するよ うに求められます。

2 カラムの [枠線] ド ロ ップダウン リ ス ト ボッ クスで 「3D 凸表示」を選択します。[次へ] をク リ ッ ク します。

データウ ィ ンド ウ カラムには盛り上がった枠線がつきますが、 ラベルにはつきません。 データウ ィ ンド ウ ウ ィザードによ り、 選択した値が集約されます。

3 [完了] ボタンをク リ ッ ク します。

[プレビューの度に検索] チェ ッ クボッ ク スをオンにしてお り、データ ウ ィ ン ド ウ ペイ ン タのデフ ォル ト のレ イアウ ト にプレビューが含まれているため、 検索引数の指定 ダイアログボッ クスが表示されます。

このダイアログボッ クスでは、 引数値の入力が求められます。 このデータウ ィ ン ド ウ オブジェ ク ト をチュー ト リ アル アプ リ ケーシ ョ ンに入れる と、 必要な引数をデータウ ィンド ウ オブジェク トに渡すスク リプ トが自動的に記述されます。

Page 199: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 187

4 [値] フ ィールドに顧客 ID (101、 102、 103 など) を入力します。[OK] をク リ ッ ク します。

データウ ィ ンド ウ ペインタが開きます。デザイン ビューに新しいデータウ ィ ンド ウ オブジェク トが表示されます。

フォン ト サイズの変更

ラベルの文字がすべて見えない場合は、〔Ctrl〕 + 〔A〕 を押してデータウ ィ ン ド ウ内のすべての項目を選択してから、 スタ イルバーで小さいフォン ト サイズを選択します。

Page 200: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

2 つめのデータウィ ンドウ オブジェク トの作成

188 PowerBuilder Classic

要求された顧客データがデータウ ィ ン ド ウ プレビュー ビューで検索されます。

ほかのレコードの検索

ほかの顧客のレコードをプレビューする場合は、 データウ ィ ン ドウ プレビュー ビューを右ク リ ッ ク して、ポップアップ メニューの[データ検索] を選択し、検索引数の指定 ダイアログボッ クスで別の顧客 ID を指定します。

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

こ こではデータウ ィ ン ド ウ オブジェ ク トに名前を付けて保存します。ペインタを終了するまで保存しないでおく こ と もできますが、 頻繁に作業内容を保存するよ うにするのが適切です。

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

データウ ィンド ウの保存 ダイアログボッ クスが表示されます。

2 [アプ リ ケーシ ョ ン ライブラ リ ] ボッ クスで 「pbtutor.pbl」 が選択されているこ とを確認します。[データウ ィ ンド ウ] ボッ クスに 「d_customer」 と入力します。

以前は、データウ ィンド ウ オブジェク ト を d_custlist という名前で保存しました。

Page 201: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 189

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

このデータウィンドウは、 顧客情報テーブルのすべてのカラムを検索します。 詳細データウィンドウとして使う と便利です。

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

データウ ィ ンド ウ ペインタに戻り ます。

Page 202: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

2 つめのデータウィ ンドウ オブジェク トの表示の変更

190 PowerBuilder Classic

2 つめのデータウィ ンドウ オブジェク トの表示の変更

現在の学習個所データウィンドウ オブジェク トの新規作成とプレビューデータウィンドウ オブジェク トの保存1 つめのデータウィンドウ オブジェク トの表示の変更2 つめのデータウィンドウ オブジェク トの作成

> 2 つめのデータウィンドウ オブジェク トの表示の変更

こ こでは、 データウ ィンド ウ オブジェク ト を修正します。 このレッスンでは、 以下の項目について学習します。

• カラムと ラベルの再配置

• ラベルとカラムの整列

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

フリーフォーム データウィンドウのカラム

フ リーフォーム データウ ィ ン ド ウ オブジェ ク トのデータ フ ィールドは、 テーブル形式ではあ り ませんが、 カラムと呼ばれます。

カラムとラベルの再配置

こ こでは、 新しいデータウ ィンド ウ オブジェク トのカラムと ラベルを再配置します。 デザイン ビューを 大化する と、 カラムと ラベルを非常に操作しやすくな り ます。

1 デザイン ビューで 「郵便番号」 ラベルをク リ ッ ク します。〔Ctrl〕 を押したまま、 zip カラムをク リ ッ ク します。

2 つの項目が選択されます。

2 〔Ctrl〕 を押したまま、以下のカラム ラベルとカラム コン ト ロールをク リ ッ ク します。

ラベル カラム

郵便番号 : zip

都道府県 : state市区 : city

Page 203: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 191

必要であれば、 スク ロールしてデータウ ィ ン ド ウ内にすべてのカラムが表示されるよ うにします。

3 〔Ctrl〕 を放します。選択されているオブジェ ク ト の 1 つにカーソルを置き、 データウ ィ ンド ウ オブジェク トの右上隅にド ラ ッグします。

すべてのオブジェク トがいっし ょに移動します。

4 この 〔Ctrl〕 を押したままク リ ッ クする方法を使用して、 以下のラベルおよびカラム コン ト ロールを示された位置に移動します。

5 詳細区域を 後のカラム ラベルの下へド ラ ッグします。

これによ り、 詳細区域の下に余分なスペースがあれば削除されます。

フ ィールドど う しが正し く整列していない場合があ り ます。 その場合の修正は、 次の練習で行います。

ラベルとカラムの整列

こ こでは、 新しいデータウ ィンド ウでラベルとカラムを整列します。

1 デザイン ビューで 「町村番地」 ラベルを選択します。「町村番地」 ラベルの左端を、 lname_yomi カラムの右端の近くに移動します。

2 「町村番地」 ラベルが選択されている状態で、 〔Ctrl〕 + ク リ ッ クを使用して 「郵便番号」、 「都道府県」、 および 「市区」 ラベルを選択します。

3 メニュー バーの [書式|配置] を選択します。

町村番地 : address

ラベル カラム コン ト ロール 移動先

「会社名」 company_name 「Fname Yomi:」 の下

「電話番号」 phone 「会社名」 の下

ラベル カラム

Page 204: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

2 つめのデータウィ ンドウ オブジェク トの表示の変更

192 PowerBuilder Classic

整列オプシ ョ ンのカスケード メニューが表示されます。

4 1 つ目のオプシ ョ ン ([左揃え]) を選択します。

選択したオブジェク トの左端が、 選択した 1 つめの項目 (「町村番地」 ラベル) の左端に揃えられます。

ペインタバーからの整列ツールの選択

ペインタバー 2 の [配置] ボタンをク リ ッ クする と、 整列ツールのド ロ ップダウン リ ス トにアクセスできます。

5 address のカラムを 「町村番地」 ラベルのすぐ横に移動します。カラム ラベルのと き と同じよ うにして、 zip、 state、 city カラムをaddress カラムに揃えます。

デザイン ビューでは、 データウ ィンド ウが次のよ うに表示されるはずです。

データウ ィンド ウ プレビュー ビューは、 次のよ うにな り ます。

Page 205: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 7 データウィンドウ オブジェク トの作成

PowerBuilder 入門 193

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

顧客の State カラムにはデータウ ィンド ウ編集スタイルがあ り ます。これは EAS Demo DB データベースの State カラムに関連付けられている拡張属性です。 State カラムが関連付けられている (ド ロ ップダウン)データウ ィ ンド ウには、 State と 2 文字のコードのリ ス トがあ り ます。

State の選択リ ス ト がアプ リ ケーシ ョ ンで常に表示されるよ う にしたり、 選択リ ス トが利用可能である こ とを示す矢印を常に表示されるようにした りするこ とができます。 こ こでは、 State カラムのプロパティを変更して、 矢印が常に表示されるよ うにします。

1 デザイン ビューで State カラムをク リ ッ ク します。プロパティ ビューが表示されるこ とを確認します。

このプロパティ ビューにはカラムのプロパティが表示されます。

2 プロパティ ビューで [編集] タブをク リ ッ ク します。

[編集] タブが見えない場合は、プロパティ ビューの一番上近くにある矢印キーをク リ ッ ク して ください。 [様式の種類] で 「ド ロ ップダウン データウ ィンド ウ」が選択されているこ とを確認します。

3 [矢印を常時表示] チェッ クボッ クスをオンにします。デザイン ビューの State カラムが、矢印と 2 文字を表示できる幅であるこ とを確認します。

デザイン ビューおよびプレビュー ビューで、State カラムの横に矢印が表示されます。 カラムがデザイン ビューで選択されている間にカラムの幅を広げるこ とができます。 それには、 カラムの右端にカーソルを置き、 カーソルが双方向の矢印に変わったら、 カラムの端をビューの一番右のフレームの方向にド ラ ッグします。

Page 206: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

2 つめのデータウィ ンドウ オブジェク トの表示の変更

194 PowerBuilder Classic

4 ペインタバー 1 の [保存] ボタンをク リ ッ ク します。ペインタバー 1 の [閉じる] ボタンをク リ ッ ク します。

Page 207: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 195

レ ッ ス ン 8 データウィ ンド ウ オブジェ クト のアタ ッ チ

データ ウ ィ ン ド ウ オブジェ ク ト を作成して保存する と、 データウ ィンド ウ オブジェク ト をウ ィンド ウで使用できるよ うにな り ます。すでに d_custlist および d_customer というデータウ ィンド ウ オブジェ ク ト を作成しました。 こ こでは、 これらのデータウ ィ ンドウ オブジェ ク ト を、 w_customers ウ ィ ン ド ウ内のデータウ ィ ン ドウ コン ト ロールに関連付けます。

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

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

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

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

• 商品管理ウ ィ ンド ウへのデータウ ィンド ウ オブジェク トのアタ ッチ

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

所要時間

約 15 分

Page 208: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

196 PowerBuilder Classic

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

現在の学習個所> マスタ データウィンドウ コン ト ロールへのデータウィンドウ オブジェク

トのアタ ッチ詳細データウィンドウ コン ト ロールへのデータウィンドウ オブジェク トのアタ ッチアプリケーシ ョ ンの実行商品管理ウィンドウへのデータウィンドウ オブジェク トのアタ ッチアプリケーシ ョ ンの再実行

このステ ップでは、 データ ウ ィ ン ド ウ オブジェ ク ト を w_customersウ ィンド ウ上のデータウ ィンド ウ コン ト ロールにアタ ッチします。

1 システム ツ リーで pbtutor.pbl ツ リー項目を展開します。

2 w_customers を右ク リ ッ ク して、 ポップアップ メニューから [編集] を選択します。またはシステム ツ リーで w_customers をダブルク リ ッ ク します。

ウ ィンド ウ ペインタに w_customers ウ ィンド ウが表示されます。

Page 209: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

PowerBuilder 入門 197

3 レイアウ ト ビューで、上部にあるデータウ ィンド ウ コン ト ロール(dw_master) を右ク リ ッ ク します。プロパティ ビューが表示されない場合は、ポップアップ メニューの [プロパティ] を選択します。プロパティ ビューで [データ オブジェク ト ] ボッ クスの隣の参照([...]) ボタンをク リ ッ ク します。

オブジェク ト選択 ダイアログボッ クスが表示されます。

4 [データ ウ ィ ン ド ウ] リ ス ト ボ ッ ク スで 「d_custlist」 を選択して[OK] をク リ ッ ク します。

d_custlist データウ ィンド ウ オブジェク ト と dw_master データウ ィンド ウ コン ト ロールが関連付けられます。

レイアウ ト ビューで、 dw_master コン ト ロール内に d_custlist データウ ィ ン ド ウの見出しが表示されていますが、 データはまだ表示されていません。アプリ ケーシ ョ ンを実行するまでは、データウ ィンド ウは SELECT 文を実行しません。

Page 210: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

198 PowerBuilder Classic

ド ラ ッグ アンド ドロップを使用してのウィンドウへのデータウィ ンドウ オブジェク トの追加

このチュート リ アルでは、 エラー処理が組み込まれたカスタム データウ ィンド ウ コン ト ロールを使用します。標準的なデータウ ィンド ウ コン ト ロールを使用したい場合は、 このレッスンで行ったよ うにウ ィ ンド ウにコン ト ロールを追加してからデータウ ィ ン ド ウ オブジェ ク トをアタ ッチする必要はあ り ません。 システム ツ リーでデータウ ィ ンドウ オブジェ ク ト を選択し、 レイアウ ト ビュー内のウ ィ ン ド ウ上にドラ ッグするだけで済みます。 する と、 データウ ィンド ウ コン ト ロールが自動的に作成されます。

Page 211: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

PowerBuilder 入門 199

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

現在の学習個所マスタ データウィンドウ コン ト ロールへのデータウィンドウ オブジェクトのアタ ッチ

> 詳細データウィンドウ コン ト ロールへのデータウィンドウ オブジェク トのアタ ッチアプリケーシ ョ ンの実行商品管理ウィンドウへのデータウィンドウ オブジェク トのアタ ッチアプリケーシ ョ ンの再実行

このステップでは、 詳細データウ ィンド ウ コン ト ロールへデータウ ィンド ウ オブジェク ト をアタ ッチします。 ウ ィンド ウ ペインタでは、 まだ w_customers ウ ィンド ウが開いているはずです。

1 レイアウ ト ビューで、 下部にあるデータウ ィンド ウ コン ト ロール (dw_detail) を選択します。プロパティ ビューで [データ オブジェク ト ] ボッ クスの隣の参照([...]) ボタンをク リ ッ ク します。オブジェ ク ト選択 ダイアログボッ ク スで 「d_customer」 を選択して [OK] をク リ ッ ク します。

d_customer データウ ィンド ウ オブジェク ト と dw_detail データウ ィンド ウ コン ト ロールが関連付けられます。 ウ ィンド ウ ペインタのワークスペースでは、 dw_detail コン ト ロール内に d_customer データウ ィンド ウ オブジェク トが表示されます。

2 レイアウ ト ビューで、データウ ィンド ウ オブジェク トに追加したすべてのカラムを表示できるよ うに dw_detail コン ト ロールを拡大します。

Page 212: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

200 PowerBuilder Classic

必要であれば、 ウ ィン ド ウ も拡大します。 dw_detail コン ト ロールを拡大する場合、 dw_master コン ト ロールも同じ幅にします。

Page 213: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

PowerBuilder 入門 201

アプリケーシ ョ ンの実行

現在の学習個所マスタ データウィンドウ コン ト ロールへのデータウィンドウ オブジェクトのアタ ッチ詳細データウィンドウ コン ト ロールへのデータウィンドウ オブジェク トのアタ ッチ

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

このステップでは、 アプ リ ケーシ ョ ンをも う一度実行して、 2 つめのデータウ ィ ンド ウの挿入、 更新、 および削除機能をテス ト します。

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

変更内容を保存するかど うかを問い合わせる メ ッセージ ボッ クスが表示されます。

2 [はい] をク リ ッ ク します。

アプ リ ケーシ ョ ンが実行され、 ログイン ウ ィ ンド ウが表示されます。

3 [ユーザ ID] ボッ クスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力して、 [OK] ボタンをクリ ッ ク します。

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開きます。

Page 214: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

202 PowerBuilder Classic

4 メニュー バーから [ファ イル|レポート|顧客情報] を選択します。

顧客情報ウ ィンド ウが表示されます。

上部のデータウ ィンド ウ コン ト ロール (dw_master) には Customerテーブルから検索されたすべての行が表示され、 ハンド ポインタはどの行が選択されているかを示します。

下部のデータウ ィ ンド ウ コン ト ロール (dw_detail) には、 選択した顧客についての詳細情報が表示されています。

5 実行中のアプ リ ケーシ ョ ンで、 ツールバーの [挿入] ボタンをクリ ッ ク します。またはフレーム ウ ィンド ウのメニュー バーの [編集|挿入] を選択します。

これで dw_detail データウ ィンド ウがク リ ア( リ セッ ト ) され、データ ソースに挿入する新しい行の情報を追加できる よ う にな り ます。 カーソルが dw_detail コン ト ロールの顧客 ID ボッ クスに置かれます。

6 詳細データウ ィ ン ド ウのボッ クスに情報を入力して、 新しい顧客行を追加します。

Page 215: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

PowerBuilder 入門 203

新しい顧客の情報の入力

顧客 ID の番号は一意でなければなり ません。値が重複しないよ うにするために、 新しいデータベース エン ト リに 4 桁の値を使用するか、 マスタ データウ ィ ンド ウの 3 桁の顧客番号のリ ス ト をスクロールして リ ス トに表示されていない ID 番号を選択します。

残りのフ ィールドに値を入力します。

電話番号と郵便番号では、 入力する情報を表示するのにエディ ット マスクを使用します。 これらのデータ フ ィールドには数値だけを入力する必要があ り ます。 顧客の都道府県を指定するには、 都道府県のカラムの隣の矢印をク リ ッ ク してド ロ ップダウン リ ス トボッ クスからエン ト リ を選択する必要があ り ます。

7 ツールバーの [更新] ボタンをク リ ッ ク します。またはメニュー バーの [編集|更新] を選択します。

これで ue_update イベン ト のス ク リ プ ト でコーディ ングされたとおりに、 新しい顧客のデータがデータベースに送られ、 確認メ ッセージが表示されます。

新しい顧客は、まだマスタ データウ ィンド ウに表示されません(この機能が含まれるよ うにコードを追加するこ と もできます)。 ただし、 w_customers シートのほかのインスタンスを開く と、 新しい顧客のデータは、 マスタおよび詳細データウ ィ ンド ウ コン ト ロールの両方で表示されます。

8 メ ッセージ ボッ クスで [OK] をク リ ッ ク します。マスタ データウ ィンド ウで顧客をク リ ッ ク します。

その顧客のデータが下のデータウ ィンド ウに表示されます。

9 詳細データウ ィンド ウで顧客の住所を変更します。

10 ツールバーの [更新] ボタンをク リ ッ ク します。またはメニュー バーの [編集|更新] を選択します。

これで、 変更した顧客データがデータベースに送られ、 別の確認メ ッセージが表示されます。

Page 216: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

204 PowerBuilder Classic

11 メ ッセージ ボッ クスで [OK] をク リ ッ ク します。マスタ データウ ィンド ウでほかの顧客を選択します。

詳細データウ ィ ンド ウにその顧客のデータが表示されます。

12 ツールバーの [削除] ボタンをク リ ッ ク します。またはメニュー バーの [編集|削除] を選択します。

データウ ィンド ウからはその顧客がただちに削除されますが、 [編集] メニューの [更新] オプシ ョ ンを選択しない限り、データベースからは削除されません。 その場合、 EAS Demo DB データベースのほかのテーブルの行が削除しよ う と している行を参照していると、 更新処理が失敗するこ とがあ り ます。

自分でデータベースに追加した行はすべて削除できます。

13 メニュー バーの [ファ イル|終了] を選択します。

アプ リ ケーシ ョ ンが終了し、 ウ ィンド ウ ペインタに戻り ます。

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

Page 217: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

PowerBuilder 入門 205

商品管理ウィンドウへのデータウィ ンドウ オブジェク トのアタ ッチ

現在の学習個所マスタ データウィンドウ コン ト ロールへのデータウィンドウ オブジェクトのアタ ッチ詳細データウィンドウ コン ト ロールへのデータウィンドウ オブジェク トのアタ ッチアプリケーシ ョ ンの実行

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

このステップでは、 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 が表示されます。

Page 218: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

商品管理ウィンドウへのデータウィンドウ オブジェク トのアタ ッチ

206 PowerBuilder Classic

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 つのカラムがあ ります。

Page 219: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

PowerBuilder 入門 207

必要であれば、 レイアウ ト ビューでデータウ ィンド ウ オブジェクト内のすべてのカラムを表示できるよ うに dw_detail コン ト ロールを拡大します。 また、 ウ ィンド ウを拡大するこ と もできます。

Page 220: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

208 PowerBuilder Classic

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

現在の学習個所マスタ データウィンドウ コン ト ロールへのデータウィンドウ オブジェクトのアタ ッチ詳細データウィンドウ コン ト ロールへのデータウィンドウ オブジェク トのアタ ッチアプリケーシ ョ ンの実行商品管理ウィンドウへのデータウィンドウ オブジェク トのアタ ッチ

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

このステップでは、 も う一度アプ リ ケーシ ョ ンを実行して、 商品管理ウ ィンド ウをテス ト します。

この時点で、 商品管理ウ ィ ンド ウには顧客情報ウ ィ ンド ウのすべての機能が備わっています。 顧客情報ウ ィ ンド ウ と同様に、 商品管理ウ ィン ド ウは、 データベースに対する検索、 挿入、 更新、 および削除操作のサポート を提供するマスタ / 詳細ウ ィンド ウ と して機能します。

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

変更内容を保存するかど うかを問い合わせる メ ッセージ ボッ クスが表示されます。

2 [はい] をク リ ッ ク します。

アプ リ ケーシ ョ ンが実行され、 ログイン ウ ィンド ウが表示されます。

3 [ユーザ ID] ボッ クスに 「dba」 と入力します。[パスワード] ボッ ク スに 「sql」 と入力して、 [OK] ボタンをクリ ッ ク します。

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開きます。

4 メニュー バーから [ファ イル|レポート|商品管理] を選択します。

商品管理ウ ィンド ウが表示されます。 上部のデータウ ィンド ウ コン ト ロールには Product テーブルから検索されたすべての行が表示されています。

Page 221: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 8 データウィ ンドウ オブジェク トのアタ ッチ

PowerBuilder 入門 209

下部のデータウ ィンド ウ コン ト ロールには、 上部のデータウ ィンド ウ コン ト ロールで選択された商品についての情報が表示されています。

5 メニュー バーの [編集|挿入] を選択します。

これで dw_detail データウ ィンド ウがク リ アされ、 新しい行がデータウ ィンド ウに追加できるよ うにな り ます。 カーソルが dw_detailコン ト ロールの [商品 ID] ボッ クスに置かれます。

6 下部のデータウ ィ ン ド ウのボッ クスに情報を入力して、 新しい製品行を追加します。

ボッ クス間の移動には 〔Tab〕 を使用します。

7 メニュー バーの [編集|更新] を選択します。

これで ue_update イベン ト のス ク リ プ ト でコーディ ングされたとおりに、 新しい商品のデータがデータベースに送られ、 確認メ ッセージが表示されます。

Page 222: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

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

210 PowerBuilder Classic

新しい商品はまだ上部のデータウ ィ ン ド ウに表示されませんが、別の商品シート を開く と、 新しい情報が表示されます。 必要であれば、更新ボタンの Clicked イベン トにコードを追加して、 マスタデータウ ィ ンド ウ コン ト ロールでデータが自動的に更新されるようにできます。

8 メ ッセージ ボッ クスで [OK] をク リ ッ ク します。マスタ データウ ィンド ウで製品をク リ ッ ク します。

その商品のデータが詳細データウ ィンド ウに表示されます。

9 商品の単価を変更します。メニュー バーの [編集|更新] を選択します。

これで変更した商品データがデータベースに送られ、 別の確認メ ッセージが表示されます。

10 メ ッセージ ボッ クスで [OK] をク リ ッ ク します。マスタ データウ ィンド ウで別の商品を選択します。

その商品のデータが詳細データウ ィンド ウに表示されます。

11 メニュー バーの [編集|削除] を選択します。

データウ ィンド ウからはその商品がただちに削除されますが、 [編集] メニューの [更新] オプシ ョ ンを選択するまでデータベースからは削除されません。

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

アプ リ ケーシ ョ ンが終了し、 ウ ィンド ウ ペインタに戻り ます。

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

Page 223: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 9 デバッガの実行

PowerBuilder 入門 211

レ ッ ス ン 9 デバッ ガの実行

開発中のアプ リ ケーシ ョ ンが思ったとおりに動作しないこ とがあ り ます。 適切な値が変数に割り当てられていない、 スク リプ トが間違っているなどの原因が考えられます。 このよ うな場合、 デバッグ モードで実行するこ とによって、 アプリ ケーシ ョ ンを調べるこ とができます。

デバッグ モードでは、 ブレークポイン ト (ス ト ップ) をスク リプ トおよび関数に挿入した り、 コードをステップごとに実行した り、 変数の内容を表示した り して、 実行中にエラーとなる論理エラーやエラー箇所を確認するこ とができます。 デバッグ モードでアプリ ケーシ ョ ンを実行する と、 ブレークポイン ト を設定したスク リプ トの手前で実行が停止します。 この時点で、 変数の値を参照して変更できます。

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

• アプリ ケーシ ョ ンのスク リプ トへのブレークポイン トの追加

• デバッグ モードでのアプリ ケーシ ョ ンの実行

• ウォッチと条件ブレークポイン トの設定

所要時間

約 20 分

Page 224: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加

212 PowerBuilder Classic

アプリケーショ ンのスクリプト へのブレークポイント の追加

現在の学習個所> アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加

デバッグ モードでのアプリケーシ ョ ンの実行ウォッチと条件ブレークポイン トの設定

このステップでは、 デバッガを開き、 ブレークポイン ト を追加して、ログイン ウ ィ ン ド ウおよび顧客情報ウ ィ ン ド ウの動作をテス ト します。 デバッグ モードでアプ リ ケーシ ョ ンを実行する と、 アプ リ ケーシ ョ ンはブレークポイン トが設定されている行を実行する直前で停止します。

スク リプ トにブレークポイン ト を挿入する と きは、 実行可能なステート メ ン ト を含む行を選択する必要があ り ます。変数を宣言している行、コ メ ン ト行、または空白行にブレークポイン ト を設定しよ う とする と、ブレークポイン トは自動的に次の実行可能な行に設定されます。

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

デバッガが開きます。 デフォルトのビュー レイアウ トでは、 タブペインのスタ ッ クが 3 つあ り ます。 デバッグ ウ ィンド ウの左上にあるペインに、 ソース ビューが表示されています。 右上にあるペインに、 ソース ブラウザ ビューが開いています。

Page 225: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 9 デバッガの実行

PowerBuilder 入門 213

デバッグ ウィンドウの表示が異なる場合

以前にデバッグ ウ ィ ンド ウを開いて、 ビューを開いた り、 移動した り、 閉じた り した場合は、 この画面とは表示が異なる こ とがあり ます。デフォルトのビュー レイアウ ト構成に戻すには、メニューバーの [ビュー|レイアウ ト| (デフォル ト )] を選択します。

アプリ ケーシ ョ ンの Open イベン トのソース コードが、左上のソース ビューに表示されます。 表示されない場合は、 ソース ブラウザビ ューのツ リ ー ビ ューのアプ リ ケーシ ョ ン ノー ド を展開し、pbtutor アプ リ ケーシ ョ ンの下の Open イベン ト をダブルク リ ッ クします。

2 ソース ビューで、 次の代入文を含む行をダブルク リ ッ ク します。

this.ToolBarSheetTitle = "MDI アプリケーシ ョ ン ツールバー "

Page 226: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加

214 PowerBuilder Classic

行の先頭に黒いブレークポイン トの記号が表示され、 そのステート メ ン トにブレークポイン トが設定されているこ とを示します。

3 ソース ブラウザ ビューで、 ウ ィ ンド ウ >w_welcome>cb_ok の順にノードを展開します。

ソース ブラウザ ビューには、 コーディングされたイベン トだけが一覧表示されます。 ログイン ウ ィンド ウの [OK] ボタンのイベントは Clicked イベン トだけです。

4 ソース ブラウザ ビューで cb_ok ボタンの Clicked イベン ト をダブルク リ ッ ク します。

ソース ビューに Clicked イベン トのコードが表示されます。

5 次の行をダブルク リ ッ ク します。

gnv_connect = CREATE & n_pbtutor_connectservice

Page 227: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 9 デバッガの実行

PowerBuilder 入門 215

行の先頭にブレークポイン ト を示す記号が表示されます。

6 ソース ブラウザ ビューで w_master_detail_ancestor をダブルク リ ック します。dw_master、 続いて rowfocuschanged をダブルク リ ッ ク します。

ソース ビューに、 dw_master データ ウ ィ ン ド ウ コン ト ロールのRowFocusChanged イベン トのスク リプ トが表示されます。

7 次の行をダブルク リ ッ ク します。

IF dw_detail.Retrieve(ll_itemnum) = -1 THEN

行の先頭にブレークポイン ト を示す記号が表示されます。

Page 228: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加

216 PowerBuilder Classic

8 右下のスタ ッ クの [ブレークポイン ト ] タブを選択します。

ブレークポイン ト ビューに、 設定したブレークポイン トが表示されます。 このレッスンの作業を進めるには、 これらのブレークポイン トが正し く設定されている必要があ り ます。

余分なブレークポイン トがある場合

余分なブレークポイン ト は、 ブレークポイン ト ビューのポップアップ メニューを使用して取り消すこ とができます。

Page 229: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 9 デバッガの実行

PowerBuilder 入門 217

デバッグ モードでのアプリケーシ ョ ンの実行

現在の学習個所アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加

> デバッグ モードでのアプリケーシ ョ ンの実行ウォッチと条件ブレークポイン トの設定

このステップでは、 アプ リ ケーシ ョ ンをデバッグ モードで実行します。 コードを 1 行ずつ実行します。

ステップ実行ボタンについて

アプリ ケーシ ョ ンを 1 ステート メン トずつ実行するには、[ステップ イン] または [ステップ オーバー] のいずれかを使用します。 次のステート メ ン トに関数の呼び出しが記述されていない場合は、 どちら も同じ結果になり ます。

[ステップ オーバー] は、 関数を単独のステート メ ン ト と して実行する場合に使用します。 [ステップ イン] は、 関数の中に入って、 関数内の各ステート メ ン トの結果を確認したい場合に使用します。

関数内に [ステップ イン] した場合は、 [ステップアウ ト ] する こ とによって、その関数の残りの部分を 1 ステップずつ実行できます。[ステップ アウ ト ] する と、 その関数を呼び出したス ク リ プ ト の次のステート メン トに制御が移り ます。

1 ペインタバー 1 の [開始] ボタンをク リ ッ ク します。またはメニュー バーの [デバッグ| pbtutor の開始] を選択します。

アプ リ ケーシ ョ ンが起動して、 ブレークポイン ト のある行まで実行されます。 こ こでは、 シート ウ ィ ンド ウのツールバー タイ トルの代入文の呼び出しまでです。

ブレークポイン トのある行まで達する と、 アプ リ ケーシ ョ ンは停止してデバッグ ウ ィ ン ド ウに戻り ます。 黄色い矢印カーソルは、次に実行されるステート メ ン ト を指しています。

2 左下のスタ ッ クの [グローバル] タブをク リ ッ ク します。

グローバル変数のビューが表示されます。

Page 230: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

デバッグ モードでのアプリケーシ ョ ンの実行

218 PowerBuilder Classic

3 「transaction sqlca」 をダブルク リ ッ ク します。データ型が String 型の DBMS プロパティを検索します。

ProfileString 関数が実行される前に中断されたので、 dbms プロパティには何も値があ り ません。

4 次のステート メ ン ト を実行するために、ペインタバー 1 の[ステップ イン] ボタンをク リ ッ ク します。またはメニュー バーの [デバッグ|ステップイン] を選択します。

アプ リ ケーシ ョ ンが MDI フレーム ウ ィンド ウの Open イベン トの実行を開始します。

5 このフレーム ウ ィンド ウの Open イベン トのスク リプ トで次のステート メン トに到達するまで [ステップ イン] または [ステップオーバー] を使用してコードを実行します。

open(w_welcome)

このステート メ ン ト を実行し終える と、 ログイン ウ ィンド ウが表示され、 デバッグ ウ ィ ンド ウが 小化されます。

Page 231: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 9 デバッガの実行

PowerBuilder 入門 219

また、 このフレーム ウ ィ ン ド ウの Open イベン ト には、 ポス ト された ue_postopen 関数の呼び出しもあ り ます (確認せずに実行したもの)。 この関数に、シート マネージャの一連の関数の処理を開始するコードが含まれています。これらの関数は Open イベン トのスク リプ トの 後で、ログイン ウ ィンド ウの表示後に処理されます。

6 ロ グイ ン ウ ィ ンド ウが表示さ れ、デバッ ガが 小化さ れるまで、[ステップ オーバー] をク リ ッ ク します。ログイン ウ ィ ンド ウの [ユーザ ID] ボッ クスに 「dba」 と入力します。[パスワード] ボッ クスに 「sql」 と入力して、 [OK] ボタンをクリ ッ ク します。

デバッグ ウ ィ ンド ウに戻り ます。 ソース ビューの黄色い矢印は、次の実行可能なステート メ ン トである接続サービス オブジェク トの CREATE 文を指します。これが cb_ok コマンド ボタンの Clickedイベン トのスク リプ トで 初の実行可能な行です。

7 右下のスタ ッ クの [コール スタ ッ ク] タブを選択します。

コール スタ ッ ク ビューの黄色い矢印は、コール スタ ッ ク内での現在の位置を表します。 コール スタ ッ ク内の別の行をダブルク リ ックする と、 ソース ビューと変数ビューがその行のコンテキス ト を表示するよ うに変更され、 ソース ビューでは緑色の矢印がその行を示します。 次に、 コール スタ ッ ク内の別の行を 1 回ク リ ッ クする と、 コール スタ ッ ク ビューに緑色の矢印が表示され、 コンテキス ト が表示されている行を指します。 コードの実行を続ける と、ソース ビューと変数ビューが現在のコンテキス トに戻り ます。

8 [ステップ イン] ボタンをク リ ッ ク します。

接続サービス オブジェク トの Constructor イベン トのスク リプ トに移動します。

9 [ステップ アウ ト ] ボタンをク リ ッ ク します。左下のスタ ッ クの [グローバル] タブをク リ ッ ク します。も う一度、 Transaction オブジェク トのプロパティを確認します。

ステップ アウ ト を実行するこ とで、 Constructor イベン トから 1 ステップで抜けて、 [OK] ボタンの Clicked イベン トのスク リプ トに戻り ます。 sqlcode の値が変更され、 sqlerrortext および DBMS プロパティには値が入っていますが、UserID、DBPass、および DBParmプロパティにはあ り ません。

Page 232: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

デバッグ モードでのアプリケーシ ョ ンの実行

220 PowerBuilder Classic

これらの値は、接続サービス オブジェク トの Constructor イベン トの実行時に、 of_GetConnectionInfo 関数が INI ファ イルからの情報を返した後で代入されますが、 このチュート リ アルでは、 UserID、DBPass、 および DBParm プロパティの行をコ メン ト アウ ト したので、 これらの値は取得されません。

10 左下のスタ ッ クで [ローカル] タブをク リ ッ ク します。

Clicked スク リプ トのローカル変数にはまだ値が代入されていません。

11 [ステップ イン]ボタンを使用してローカル変数の 3 つの代入文を実行します。

Page 233: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 9 デバッガの実行

PowerBuilder 入門 221

それぞれのステート メ ン ト を実行する と、 これらのローカル変数に代入された値が予想したものである こ とを確認するこ とができます。

12 左下のス タ ッ クの [グ ローバル] タブを も う 一度ク リ ッ ク し、Transaction オブジェク ト を展開します。[ス テ ッ プ イ ン] ボ タ ンを使用し て、 UserID、 DBPass、 およびDBParm 用にユーザが入力した値を用いて Transaction オブジェクト (SQLCA) をインスタンス化する 3 つの行を実行します。

それぞれのステート メ ン ト を実行する と、 ログイン ウ ィンド ウで入力した値が Transaction オブジェク トに代入されているかど うかを確認できます。データベースへの接続は、接続サービス オブジェク トの of_Connect 関数を実行するまでは行われません。

Page 234: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

デバッグ モードでのアプリケーシ ョ ンの実行

222 PowerBuilder Classic

13 ペインタバー 1 の [継続] ボタンをク リ ッ ク します。

[継続] ボタンは、 実行を再開し、 次のブレークポイン ト まで処理を進めます。データベースに接続し、 ログイン ウ ィ ンド ウが閉じ、アプ リ ケーシ ョ ンの MDI フレームが表示されます。 アプ リ ケーシ ョ ンはユーザからの入力を待機しています。

14 メニュー バーから [ファ イル|レポート|顧客情報] を選択します。

アプ リ ケーシ ョ ンは、 RowFocusChanged イベン ト内の次のブレークポイン トが設定されている行まで実行されます。

データウ ィンド ウの RowFocusChanged イベン トは、 データウ ィンド ウが表示される前に発生します。 このため、 アプ リ ケーシ ョ ンの実行は顧客情報ウ ィ ンド ウが開かれる前に停止します。

Page 235: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 9 デバッガの実行

PowerBuilder 入門 223

ウォッチと条件ブレークポイン トの設定

現在の学習個所アプリケーシ ョ ンのスクリプ トへのブレークポイン トの追加デバッグ モードでのアプリケーシ ョ ンの実行

> ウォッチと条件ブレークポイン トの設定

このステップでは、 ユーザが顧客情報ウ ィ ンド ウで行を選択する と値が変化する変数に、 ウォ ッチを設定します。 次に、 設定した単純なブレークポイン ト を、 変数が特定の値を持つ場合にのみ発生する条件ブレークポイン トに変更します。

1 右下のスタ ッ クで [ウォ ッチ] タブをク リ ッ ク します。左下のスタ ッ クで [ローカル] タブをク リ ッ ク します。ローカル ビューで ll_itemnum 変数を選択し、ウォッチ ビューにドラ ッグします。

ll_itemnum 変数に、 検索された 初の顧客 ID の値である 101 がセッ ト されます。 ウォ ッチ ビューで ll_itemnum 変数を表示させると、その値の変化を簡単に調べるこ とができます。ウォ ッチ ビューには、 グローバル変数、 インスタンス変数、 および Parent 変数をド ラ ッグできるため、 種類の異なる変数の値を簡単に追跡することができます。

2 [継続] ボタンをク リ ッ ク します。

再びアプ リ ケーシ ョ ンが実行されます。 顧客情報ウ ィ ンド ウが表示されて、データベースから検索した顧客リ ス トが表示されます。詳細データウ ィンド ウには顧客 ID が 101 の顧客情報が表示されます。

3 顧客情報ウ ィンド ウのマスタ データウ ィンド ウで別の行を選択します。

デバッグ ウ ィンド ウに戻り ます。 ローカル変数ビューと ウォッチビューの両方で ll_itemnum の値が更新されます。

4 右下のスタ ッ クで [ブレークポイン ト ] タブをク リ ッ ク します。rowfocuschanged ブレークポイン ト をダブルク リ ッ ク します。

Page 236: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ウォッチと条件ブレークポイン トの設定

224 PowerBuilder Classic

ブレーク ポイ ン ト の編集 ダ イ ア ロ グボ ッ ク スが表示されて、RowFocusChanged イベン ト 内のブレークポイン ト が選択されます。

5 [条件] テキス ト ボッ クスに次の行を入力して [OK] ボタンをクリ ッ ク します。

ll_itemnum = 107

RowFocusChanged イベン ト スク リプ ト内のブレークポイン トが条件ブレークポイン トに設定されます。 アプ リ ケーシ ョ ンの実行中にこのステート メ ン トに達し、かつ、 ll_itemnum の値が 107 である場合にのみ、 そのアプリ ケーシ ョ ンが停止します。

6 [OK] をク リ ッ ク して、 ダイアログボッ クスを閉じます。[継続] ボタンをク リ ッ ク します。

再びアプ リ ケーシ ョ ンが実行されます。 顧客情報ウ ィ ン ド ウで別の行を選択する と、 顧客 ID が 107 の顧客を選んだ場合に限り、 ブレークポイン トに達した時点でデバッグ ウ ィンド ウが開きます。

顧客 ID が 107 の顧客情報を選択した場合は、 も う一度 [継続] ボタンをク リ ッ ク して元のアプリ ケーシ ョ ンに戻り ます。

Page 237: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 9 デバッガの実行

PowerBuilder 入門 225

7 アプリ ケーシ ョ ンのメニュー バーから [ファ イル|終了] を選択します。

アプリ ケーシ ョ ンを終了して、 デバッグ ウ ィンド ウに戻り ます。

8 メニュー バーから [ファ イル|閉じる] を選択します。

PowerBuilder の開発環境に戻り ます。

Page 238: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ウォッチと条件ブレークポイン トの設定

226 PowerBuilder Classic

Page 239: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 227

レ ッ ス ン 1 0 例外処理

例外処理では、プログラムの実行中に発生したエラーを捕捉し、それらのエラーに関する情報をアプリ ケーシ ョ ン ユーザに提供します。 このレッスンでは、 ユーザ定義の例外オブジェ ク ト を作成する方法、 メ ソ ッ ド内で TRY-CATCH 文によって送出した例外を捕捉する方法について解説します。

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

• 既存のアプ リ ケーシ ョ ンへの新規のシート ウ ィンド ウの追加

• ユーザ定義の例外オブジェク トの作成

• 新規のユーザ関数とユーザ イベン トの作成

• メ ソ ッ ドの呼び出し と例外の捕捉

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

所要時間

約 45 分

Page 240: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

228 PowerBuilder Classic

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

現在の学習個所> 既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

ユーザ定義の例外オブジェク トの作成新規のユーザ関数とユーザ イベン トの作成メソッ ドの呼び出しと例外の捕捉アプリケーシ ョ ンの実行

このレッスンでは、 メ インのチュート リ アル アプ リ ケーシ ョ ンに 3 つ目のシート ウ ィ ンド ウを追加します。そして、埋め込み SQL コマンドから返される値、およびアプリ ケーシ ョ ン ユーザがド ロ ップダウン リス ト ボッ クス コン ト ロールで選択した値に対して (パーセンテージを計算する といった) 決まった操作を実行する関数を作成して呼び出します。

作成する関数のプロ ト タイプでユーザ定義の例外を発生させます。コマンドボタン コン ト ロールの Clicked イベン トに記述された TRY-CATCHブロ ッ ク内でこの関数を呼び出します。 そして、 アプ リ ケーシ ョ ンコール スタ ッ クの上位に送出されたシステム例外と同じよ うに、 新規の関数によって送出されたユーザ定義の例外を捕捉する CATCH 句をClicked イベン トに記述します。

さ らに、 新規のウ ィ ンド ウ シート を使用して、 選択した都道府県に住んでいる顧客のパーセンテージを計算します。 新規のシート ウ ィ ンドウに追加するコン ト ロールは以下のとおりです。

• 読み取り専用の結果を表示するためにプログラムで変更する 2 つのスタティ ッ ク テキス トボッ クス

• パーセンテージを計算する関数を呼び出すコマンドボタン

• 顧客の在住の都道府県をリ スト するド ロップダウン リ スト ボッ クス

• ユーザがド ロ ップダウン リ ス ト ボッ クスから選択した都道府県に住んでいる顧客のパーセンテージが表示されるテキス トボッ クス

既存のアプ リ ケーシ ョ ンに新規のシート ウ ィ ン ド ウを追加するには、以下の操作を行う必要があ り ます。

• シート ウ ィンド ウの作成

• メ イン アプリ ケーシ ョ ン フレームからシート ウ ィンド ウにアクセスできるよ うにする

Page 241: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 229

シート ウィンドウの作成

シート ウ ィンド ウは、w_pbtutor_basesheet ウ ィンド ウから継承します。このウ ィンド ウはシート ウ ィンド ウの基本ク ラスで、テンプレート アプリ ケーシ ョ ン ウ ィザードによって生成されたものです。 拡張レイヤウ ィ ン ド ウ w_master_detail_ancestor は、 変更を加えたために新規のシート ウ ィンド ウでは再利用できないので、 使用しません。

1 PowerBuilder メニューから [ファ イル|継承] を選択します。[オブジェク トの種類] ボッ クスに 「ウ ィンド ウ」 が表示されているこ とを確認します。pbtutor.pbl ラ イブラ リ内の使用可能なウ ィンド ウから w_pbtutor_basesheet を選択して、 [OK] をク リ ッ ク します。

2 ウ ィ ンド ウペインタにレイアウ ト ビューが表示されているこ とを確認して ください。[挿入|コン ト ロール|スタティ ッ クテキス ト ] を選択し、 レイアウ ト ビューの左上隅をク リ ッ ク します。

3 プロパティ ビューで、[テキス ト ] テキス ト ボッ クスに入力されているデフォルトのテキス ト を選択して、 次のよ うに入力します。

1. ドロップダウン リストで都道府県コードを選択または入力してください。

4 テキス ト全体が収まるよ うに、 またウ ィ ン ド ウの右上にド ロ ップダウン リ ス ト コン ト ロールを配置できるよ うに、 コン ト ロールの幅とシート ウ ィンド ウの幅を広げます。

シート ウ ィ ンド ウの幅は 2250 あれば十分です。 シート ウ ィ ンドウの幅をウ ィンド ウのプロパティ ビューの [その他] タブで設定するか、 またはレイアウ ト ビューでウ ィ ンド ウの端をド ラ ッグして追加コン ト ロールを入れるスペースを作り ます。

5 レイアウ ト ビュー内のスタティ ッ ク テキス ト コン ト ロールを右ク リ ッ ク して、 ポップアップ メニューから [複製] を選択します。プロパティ ビューで、新規のスタティ ッ ク テキス ト コン ト ロールの [テキス ト ] テキス ト ボッ ク スに入力されているデフォル ト のテキス ト を選択して、 次のよ うに入力します。

2. [パーセンテージ] ボタンをクリ ックして く ださい。

Page 242: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

230 PowerBuilder Classic

6 [挿入|コン ト ロール|ド ロ ップダウン リ ス ト ボッ クス] を選択し、 レイアウ ト ビューの右上隅にあるスタティ ッ ク テキス トボックスの右側をク リ ッ ク します。

7 ド ロ ップダウン リ ス トボッ クスのプロパティ ビューで、コン ト ロールの名前に 「ddlb_state」 と入力します。[編集可能] と [垂直スクロールバー] の 2 つのチェ ッ クボッ クスをオンにします。

8 ペインタバーのコマンドボタン ボタンをク リ ッ ク し、 2 つのスタティ ッ ク テキス ト ボッ クスの下をク リ ッ ク します。プロパティ ビューで、 ボタン名に 「cb_percent」、 ボタンのテキス トに 「パーセンテージ」 と入力します。

9 [挿入|コン ト ロール|シングルラ インエディ ッ ト ] を選択して、レイアウ ト ビューのコマンドボタンの下ク リ ッ ク します。プロパティ ビューで、 コン ト ロールの名前に 「sle_result」 と入力し、 コン ト ロールのテキス トに以下の説明文を入力します。

選択した都道府県に住んでいる顧客のパーセンテージを表示するテキストボックス

Page 243: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 231

10 テキス ト全体が収まるよ うにコン ト ロールの幅を広げます。

11 どのコン ト ロールも選択されていないこ と と、 プロパティ ビューにシー ト ウ ィ ン ド ウ プロパテ ィが表示されている こ と を確認します。[タグ] プロパテ ィに 「都道府県に住んでいる顧客のパーセンテージ」と入力します。

こ こで入力したテキス トは、 実行時にシート ウ ィ ンド ウのタイ トルと して表示されます。基本シートの ue_postopen イベン トのコードで、 タグのテキス トがシート ウ ィ ンド ウのタイ トルに割り当てられます。

12 PowerBuilder メニューから[ファ イル|上書き保存]を選択します。アプ リ ケーシ ョ ン ラ イブラ リ と して pbtutor.pbl を選択し、 新規ウ ィンド ウ名に 「w_cust_pct」 と入力して、 [OK] をク リ ッ ク します。

これで、 新規のシート ウ ィ ンド ウ とそのすべてのコン ト ロールがメ インのチュート リ アル ライブラ リに保存されます。

メ イン アプリケーシ ョ ン フレームからシート ウィンドウにアクセスできるようにする

新規のシート をシート マネージャに登録する必要があ り ます。

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

Page 244: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

232 PowerBuilder Classic

2 ue_postopen イベン トがスク リプ ト ビューに表示されていない場合は、[イベン ト リ ス ト ] タブを選択して、 ue_postopen をダブルクリ ッ ク します。

ue_postopen イベン ト スク リプ トが、スク リプ ト ビューに表示されます。

3 シート用リ ス ト を編集して、 新しいウ ィ ン ド ウを追加します。 以下のエン ト リは一行 (改行なし) で表します。

string ls_sheets[] = { "w_customers", "w_products", "w_cust_pct" }

4 表示用リ ス ト を編集して、 新しいウ ィ ン ド ウにラベルを追加します。 以下のエン ト リは一行 (改行なし) で表します。

string ls_display[] = { "顧客情報 ", "商品管理 ", "都道府県に住んでいる顧客のパーセンテージ " }

5 [ファ イル|上書き保存] を選択して、w_pbtutor_frame ウ ィンド ウを閉じます。

次回 pbtutor アプリ ケーシ ョ ンを実行する と、メ イン フレーム ウ ィンド ウの [ファ イル] メニューから新規のシート ウ ィ ンド ウを開く こ とができるはずです。 開発環境では新規のシート ウ ィンド ウを即実行できますが、 コンパイル済みアプ リ ケーシ ョ ンでも実行できるよ うにする必要があ り ます。

Page 245: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 233

そのために、 シー ト マネージャの of_registersheet ス ク リ プ ト で、新規のシート ウ ィ ン ド ウをウ ィ ン ド ウ オブジェ ク ト と して参照します。 こ う して参照するこ とで、 コンパイ ラは、 このウ ィ ン ドウ オブジェク トがアプリ ケーシ ョ ンで使用されているこ とを認識でき、 実行可能ファ イルに含めるこ とができます。

コンパイル済みアプ リケーシ ョ ンは、レッスン 11「アプ リ ケーシ ョン配布の準備」 で作成します。

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

7 [関数リ ス ト ] タブを選択し、 of_registersheet をダブルク リ ッ ク します。

ス ク リ プ ト ビューに、 of_registersheet 関数のスク リプ トが表示されます。

Page 246: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

234 PowerBuilder Classic

8 w_customers と w_products の各シート ウ ィンド ウ変数を宣言している行の後に以下のよ うに入力します。

w_cust_pct lw_sheet3

9 [上書き保存] を選択して、 n_pbtutor_sheetmanager ユーザ オブジェク ト を閉じます。

Page 247: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 235

ユーザ定義の例外オブジェク トの作成

現在の学習個所既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加

> ユーザ定義の例外オブジェク トの作成新規のユーザ関数とユーザ イベン トの作成メソ ッ ドの呼び出しと例外の捕捉アプリケーシ ョ ンの実行

こ こでは、 ユーザが w_cust_pct ウ ィ ン ド ウ上のコマン ドボタンを クリ ッ ク したと きに起動される関数から送出される 2 つのユーザ定義の例外オブジェ ク ト を作成します。 また、 w_cust_pct ウ ィ ン ド ウに追加したド ロ ップダウン リ ス ト ボッ クス コン ト ロールのユーザ イベン トから送出されるユーザ定義の例外オブジェク ト も作成します。

1 PowerBuilder メニューから [ファ イル|新規作成] を選択し、新規作成 ダイアログボッ クスの [PB オブジェク ト ] タブをク リ ッ ク します。

2 [標準ク ラス] アイコンを選択して [OK] をク リ ッ ク します。[データ型] リ ス ト ボッ クスから 「throwable」 を選択して、 [OK]をク リ ッ ク します。

新規例外オブジェ ク ト がユーザ オブジェ ク ト ペインタに表示されます。

3 プロパティ ビューの [テキス ト ] ボッ クスに以下のよ うに入力します。

データベースに該当する行がありません。 ドロップダウン リストボッ クスで都道府県コードを入力または選択した場合で、 データベースとの接続が切断されていなければ、 入力した都道府県に顧客が住んでいないか、 入力した都道府県コードが間違っています。

例外オブジェク トには、 テキス ト プロパティの取得および設定用メ ソ ッ ドが定義されていますが、 こ こではユーザ インタフェースに直接テキス ト プロパティを設定します。

4 プロパティ ビューの外側をク リ ッ クする と、[保存] ボタンが有効になり ます。

Page 248: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ユーザ定義の例外オブジェク トの作成

236 PowerBuilder Classic

[フ ァ イル|上書き保存] を選択して、 pbtutor.pbl アプ リ ケーシ ョン ラ イブラ リ を選択します。 次に、 新規の例外オブジェク ト名として [ユーザ オブジェ ク ト ] ボッ クスに 「exc_no_rows」 と入力して [OK] をク リ ッ ク します。

5 [ファ イル|閉じる] を選択します。

6 以下のテキス ト プロパティ値と例外オブジェク ト名を用いて手順1 ~ 5 を繰り返します。

7 以下のテキス ト プロパティ値と例外オブジェク ト名を用いて手順1 ~ 5 を繰り返します。

プロパティ 値

テキス ト パーセンテージが低すぎます。この都道府県には

顧客が 1 人しかいません。 担当販売マネージャ

に連絡して く ださい。

例外オブジェク ト名 exc_low_number

プロパティ 値

テキス ト 都道府県名は 2 文字の都道府県コードで指定し

て く ださい。

例外オブジェク ト名 exc_bad_entry

Page 249: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 237

新規のユーザ関数とユーザ イベン トの作成

現在の学習個所既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加ユーザ定義の例外オブジェク トの作成

> 新規のユーザ関数とユーザ イベン トの作成メソ ッ ドの呼び出しと例外の捕捉アプリケーシ ョ ンの実行

こ こでは、[パーセンテージ]コマンドボタンの Clicked イベン トによって起動される関数と、 w_cust_pct ウ ィンド ウのド ロ ップダウン リ ス トボッ クスからフォーカスが移動したと きに起動するイベン ト を追加します。 この関数は、 特定の都道府県に住む顧客のパーセンテージを計算します。 イベン トは、 ド ロ ップダウン リ ス ト ボッ クス コン ト ロールの現在値 (都道府県コード) を処理し、 長さが 2 文字かど うかを確認します。

1 開いていない場合は、 ウ ィンド ウペインタ内で w_cust_pct を開きます。スク リプ ト ビューの 初のリ ス ト ボッ クスで 「(Functions)」 を選択します。

プロ ト タイプ ウ ィンド ウにスク リプ ト ビューが表示されます。 スク リ プ ト ビューの 初のド ロ ップダウン リ ス ト ボ ッ ク スには「(Functions)」 が、 2 番目のリ ス ト ボッ クスには 「( 新規関数 )」 が表示されます。

2 [戻 り 値のデータ型] と し て 「decimal」 を選択し、 [関数名] に「uf_percentage」 と入力します。

3 [引 数 デ ー タ 型] と し て 「integer」 を 選 択 し、 [引 数 名] に「ai_custbystate」 と入力します。

次の手順では、 第 2 引数を追加します。

4 プロ ト タイプ ウ ィンド ウ内のどこかで右ク リ ッ ク して、 ポップアップ メニューの [パラ メータの追加] を選択します。

5 2 番目の引数のデータ型と して 「integer」 を選択して、 引数名に「ai_totalcust」 と入力します。

Page 250: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

新規のユーザ関数とユーザ イベン トの作成

238 PowerBuilder Classic

6 [Throws] ボッ クスで 「exc_no_rows,exc_low_number」 と入力します。

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)*100CATCH (dividebyzeroerror le_zero)

throw le_zeroEnd TRY

END CHOOSEreturn truncate(my_result,1)

後述するコマンドボタンの Clicked イベン ト スク リプ トでは、2 つの整数を引数と して uf_percentage 関数を呼び出し、 戻り値を処理します。

次に、 ユーザが入力した都道府県コードがちょ う ど 2 文字でない場合に exc_bad_entry 例外オブジェク ト を送出する、 ド ロ ップダウン リ ス ト ボッ クスのユーザ イベン ト を追加します。

8 スク リ プト ビュ ーの 初のド ロ ッ プダウ ン リ ス ト ボッ ク スで「ddlb_state」 を、 2 番目のド ロ ップダウン リ ス ト ボッ クスで 「(新規イベン ト )」 を選択します。

9 [戻り値のデータ型] と して 「integer」 を選択し、 [イベン ト名] に「ue_modified」 と入力します。

Page 251: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 239

[引 数 デ ー タ 型] と し て 「string」 を 選 択 し、 [引 数 名] に「as_statecode」 と入力します。「exc_bad_entry」 を [Throws] ボッ クスに入力するか、 システムツ リーから [Throws] ボッ クスにド ラ ッグします。

イベン ト ID は、「None」であるこ とに注意してください。ue_modifiedイベン トのイベン ト ID は選択しません。 イベン ト 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 関数を呼び出して、 これらのメ ソ ッ ドによって送出された例外を捕捉します。

Page 252: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

メ ソ ッ ドの呼び出しと例外の捕捉

240 PowerBuilder Classic

メ ソ ッ ドの呼び出しと例外の捕捉

現在の学習個所既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加ユーザ定義の例外オブジェク トの作成新規のユーザ関数とユーザ イベン トの作成

> メ ソッ ドの呼び出しと例外の捕捉アプリケーシ ョ ンの実行

こ こでは、 都道府県コードを EAS Demo DB データベースの customerテーブルから取得して、ド ロ ップダウン リ ス ト ボッ クス コン ト ロールに設定するコードを記述します。 このコン ト ロールは編集可能にしてあるため、 都道府県コードの値をアプリ ケーシ ョ ン ユーザが入力するこ と も でき ます。 ユーザが入力した値を処理する前に、 入力値がue_modified イベン トに設定した条件を満たしているかど うか、すなわち長さが 2 文字であるかど うかを確認します。

また、 コマンドボタン コン ト ロールの Clicked イベン トに、 ド ロ ップダウン リ ス ト ボッ ク ス コン ト ロールに入力されている都道府県コードを処理するコードを追加します。Clicked イベン トでは、uf_percentage関数を呼び出して、 選択されている都道府県に住んでいる顧客のパーセンテージを計算し、 同関数によって送出されるすべての例外を捕捉します。

1 ウ ィンド ウペインタ内に w_cust_pct が開いているこ と、 スク リプト ビューの 初のド ロ ップダウン リ ス ト ボッ クスに ddlb_state が表示されているこ とを確認します。

2 2 番目のド ロ ップダウン リ ス ト ボッ クスから 「losefocus ( )returns long [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

Page 253: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 241

return 1

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 ;// リストの最初の項目を選択された項目として設定するthis.selectitem (1)

6 スク リプト ビューの 初のドロップダウン リ ス トから 「cb_percent」を選択します。2 番目のド ロ ップダウン リ ス ト ボッ クスに「clicked ( ) returnslong [pbm_bnclicked]」 が表示されているこ とを確認します。

Page 254: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

メ ソ ッ ドの呼び出しと例外の捕捉

242 PowerBuilder Classic

7 Clicked イベン ト スク リプ トに以下のコードを入力します。

Decimal my_resultDouble entry_1, entry_2Int li_int, li_rtnString sel_state

sel_state=ddlb_state.text//選択した都道府県に住む顧客の行数を取得し、//entry_1 変数に格納する// この数字を、 最初の// スタティ ッ ク コン ト ロールに表示する

SELECT count(*) INTO :entry_1 FROM customerWHERE 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 人しかいないのか、

Page 255: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 243

//2 人以上いるのかによって、// メ ッセージの内容を変えるIF li_int=1 THEN

sle_result.text = sel_state + & + " に住んでいる顧客は 1 人です " + &" 別の都道府県を選択して ください。 "

ELSEsle_result.text = String (my_result) + &

" % の顧客が " + sel_state + & " に住んでいます。 "

END IF

Page 256: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

244 PowerBuilder Classic

アプリケーシ ョ ンの実行

現在の学習個所既存のアプリケーシ ョ ンへの新規のシート ウィンドウの追加ユーザ定義の例外オブジェク トの作成新規のユーザ関数とユーザ イベン トの作成メソッ ドの呼び出しと例外の捕捉

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

こ こまでで、 アプ リ ケーシ ョ ンを実行して、 選択した都道府県に住んでいる顧客のパーセンテージを計算する準備ができました。

こ こでは記述したスク リプ トの例外条件をテス ト しますが、「ゼロによる除算」 エラー条件をテス トするには、 データベース内の顧客数を故意にゼロに設定する必要があ り ます。 そのために、 シート ウ ィンド ウにチェ ッ クボッ クスを追加し、 そのチェッ クボッ クスがオンの場合は顧客数をゼロに設定するよ うにします。

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

• 新規のシート ウ ィンド ウのテス ト

• ゼロによる除算エラーのテス トの追加

新規のシート ウィンドウのテスト

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

変更内容を保存するかど うかを問い合わせる メ ッセージ ボッ クスが表示されたら、 [はい] をク リ ッ ク します。

2 [ユーザ ID] ボッ クスに 「dba」 と入力します。[パスワード] ボッ ク スに 「sql」 と入力して、 [OK] ボタンをクリ ッ ク します。

データベース との接続が確立され、 アプ リ ケーシ ョ ンの MDI フレームが開きます。

3 メニュー バーから [ファ イル|レポート|都道府県に住んでいる顧客のパーセンテージ] を選択します。

Page 257: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 245

都道府県に住んでいる顧客のパーセンテージ ウ ィ ンド ウが表示されます。 ド ロ ップダウン リ ス トの現在のエン ト リは、 青森県を表す AM です。

4 [パーセンテージ] ボタンをク リ ッ ク します。

青森県に顧客が 1 人し かいな いた め、 ユーザ定義の例外exc_low_number が発生します。この例外が発行したメ ッセージが、[パーセンテージ]ボタンの Clicked イベン ト スク リプ トの CATCH句に定義されたメ ッセージ ボッ クスに表示されます。

5 [OK] をク リ ッ ク して、 メ ッセージ ボッ クスを閉じます。

スタテ ィ ッ ク テキス トボッ クス内のテキス トに、 青森県在住の顧客の数とデータベースに登録されている顧客の総数が表示されます。 編集可能なテキス ト ボッ ク スに、 パーセンテージが計算されなかったため、 別の都道府県を選択するよ うに促すテキス トが表示されます。

Page 258: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

246 PowerBuilder Classic

6 都道府県に住んでいる顧客のパーセンテージ シート ウ ィンド ウのド ロ ップダウン リ ス ト ボッ クスで 「KG」 を選択または入力して、[パーセンテージ] ボタンをク リ ッ ク します。

検索結果から、 神奈川県在住の顧客は 15 人存在し、 データベースに登録されている全顧客の 11.9% を占める こ とがわか り ます。データベースを変更する とパーセンテージが変わり ます。

7 ド ロ ップダウン リ ス ト ボッ クスに 「Ohio」 と入力して、 [パーセンテージ] ボタンをク リ ッ ク します。

[パーセンテージ] ボタンをク リ ッ ク してド ロ ップダウン リ ス トボッ クスからフォーカスを移動する と、LoseFocus イベン トが発生し ます。 このイベン ト によ り ue_modified イベン ト が起動され、ユーザ定義の例外 exc_bad_entry が発生します。 2 文字の都道府県コードを使用するよ うに指示するこの例外メ ッセージが表示されます。

8 [OK] をク リ ッ ク してメ ッセージ ボッ クスを閉じ、 ド ロ ップダウン リ ス ト ボッ クスに 「US」 と入力して、 [パーセンテージ] ボタンをク リ ッ ク します。

US とい う都道府県コード を持つ行はデータベース内に見つからないため、 exc_no_rows 例外が発生します。該当する行が返されなかったこ と と、 その理由を示すメ ッセージが表示されます。 よ り堅牢なアプ リ ケーシ ョ ンにしたい場合は、 入力されたテキス ト を都道府県コードの リ ス ト と照合して US が都道府県コードではないこ と を知らせる exc_bad_entry 例外を発生させる と よいでし ょう。

9 [OK] をク リ ッ ク して、 メ ッセージ ボッ クスを閉じます。

Page 259: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 247

10 Windows システム ト レイに表示されている EAS Demo DB を表すデータベース アイコン (赤と黄色の SQL シンボル) を右ク リ ッ クします。 ポップアップ メニューの [シャッ トダウン] を選択し、 警告メ ッセージ ボッ クスが表示されたら [はい] をク リ ッ ク します。

EAS Demo DB データベース との接続が切断されます。

11 ド ロ ップダウン リ ス ト ボッ クスで再度 「AM」 を選択または入力して、 [パーセンテージ] ボタンをク リ ッ ク します。

データベース との接続が切断されているため、exc_no_rows 例外オブジェク トのメ ッセージが表示されます。結果を取得し直すには、アプ リ ケーシ ョ ンを終了して再起動する必要があ り ます。 アプ リケーシ ョ ンを再起動する と、 実行時環境でデータベース との接続が再確立されます。

12 [OK] をク リ ッ ク してメ ッセージボッ クスを閉じ、アプ リ ケーシ ョン メニューから [ファ イル|終了] を選択して開発環境に戻り ます。

データベース ペインタ とデータベース プロファ イル ペインタでは、 データベース接続がオープンされたままの状態になっているこ とがあ り ます。その場合は、どちらかのペインタを使用してデータベース との接続を切断し、 デザイン時環境で再接続します。

ゼロによる除算エラーのテストの追加

こ こでは、w_cust_pct ウ ィンド ウにチェッ クボッ クスを追加します。そして、 このチェ ッ クボッ クスがオンのと き、 ゼロによる除算エラーを強制的に発生させるコードを記述します。 このテス トにはインスタンス化されたチェ ッ クボッ クス オブジェク トが必要なので、 新しいコードを、 null オブジェ ク トのエラーをチェ ッ クする TRY-CATCH 文で囲みます。

1 レイアウ ト ビューで w_cust_pct ウ ィンド ウが開いているこ とを確認します。ウ ィ ン ド ウペインタのメニューで [挿入|コン ト ロール|チェ ックボッ クス] を選択します。

2 [パーセンテージ] コマンドボタンの右側をク リ ッ ク します。

Page 260: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

248 PowerBuilder Classic

3 プロパティ ビューの [名前] ボッ クスに、 「cbx_zero」 と入力します。[テキス ト ] ボッ クスに、 「ゼロによる除算のテスト 」 と入力します。

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 メニュー バーから [ファ イル|レポート|都道府県に住んでいる顧客のパーセンテージ] を選択します。ド ロ ップダウン リ ス ト ボッ ク スから都道府県コード を選択します。

Page 261: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 10 例外処理

PowerBuilder 入門 249

9 [ゼロによる除算のテス ト ] チェ ッ クボッ クスをオンにします。

10 [パーセンテージ] ボタンをク リ ッ ク します。

パーセンテージの計算中にゼロによる除算エラーが発生し、 [パーセンテージ] ボタンの Clicked イベン ト によって捕捉されます。CATCH 句に記述したこのエラーのメ ッセージボッ ク スが表示されます。

11 [いいえ] をク リ ッ ク してアプ リ ケーシ ョ ンの実行を継続します。別の都道府県コードを選択しチェ ッ クボッ クスをオフにしてアプリケーシ ョ ンのテス ト を続行します。

チェ ッ クボッ ク スがオンのまま [パーセンテージ] ボタンを再度ク リ ッ ク し、エラー メ ッセージボッ クスで [はい] を選択する と、アプ リ ケーシ ョ ンが閉じ、 開発環境に戻り ます。

12 テス ト を終了したらアプリ ケーシ ョ ンを閉じます。

Page 262: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの実行

250 PowerBuilder Classic

Page 263: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 251

レ ッ ス ン 1 1 アプリ ケーショ ン配布の準備

このレッスンでは、 アプ リ ケーシ ョ ンの実行ファ イル (EXE ファイル) を作成します。 作成した実行ファ イルは、 エンドユーザがほかのアプ リ ケーシ ョ ンと同じよ うに実行できます。

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

• プロジェク ト オブジェク トの作成

• 実行ファイルの作成

• シ ョート カッ トの作成

• 実行ファイルのテス ト

所要時間

約 10 分

Page 264: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

プロジェク ト オブジェク トの作成

252 PowerBuilder Classic

プロジェク ト オブジェク トの作成

現在の学習個所> プロジェク ト オブジェク トの作成

実行ファイルの作成ショート カッ トの作成実行ファイルのテスト

このステップでは、 PBTUTOR プロジェク ト オブジェク ト を作成します。 プロジェク ト オブジェク トは、 アプリ ケーシ ョ ンの実行ファイルを作成するのに使用できます。

マシン コードについて PowerBuilder Enterprise 版を実行している場合は、 プロジェ ク ト実行ファ イルのコンパイル方式と して Pcode (擬似コード) とマシン コードのいずれかを選択できます。 ただし、 チュート リ アル アプ リ ケーシ ョ ンには Try-Catch 文が含まれているため、 コンパイル方式と してマシン コードを選択するこ とはできません。

アプ リ ケーシ ョ ンをユーザに配布する と きは、 ループ、 浮動小数点または整数演算、 関数呼び出しなどの計算で実行速度を上げるためにマシン コードを使用してもよいでし ょ う。 しかし、 アプ リ ケーシ ョ ンの開発の際は、 通常は Pcode を使用した方が高速にコードを生成できます。

動的ライブラリについて また、 アプ リ ケーシ ョ ンに動的ラ イブラ リ を作成するこ と もできます。 動的ライブラ リはアプ リ ケーシ ョ ンで使用するオブジェク ト を格納するのに使用できます。 動的ライブラ リ を使用するこ とによ り、 アプ リ ケーシ ョ ンを管理しやすいよ うに小さなユニッ トに分割して、 実行ファ イルのサイズを小さ くするこ とができます。

このチュート リ アルで作成しているアプ リ ケーシ ョ ンのよ う な小さいアプ リ ケーシ ョ ンの場合は、 動的ライブラ リ を使用する必要はあ り ません。

Page 265: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 11 アプリケーシ ョ ン配布の準備

PowerBuilder 入門 253

1 パワーバーの [新規作成] ボタンをク リ ッ ク します。新規作成 ダイアログボッ クスの [プロジェク ト ] タブをク リ ッ クします。

2 [アプ リ ケーシ ョ ン ウ ィザード] アイコンを選択して [OK] をクリ ッ ク します。

プロジェク ト ペインタの使い方

[プロジェク ト ] ページで、 [アプ リ ケーシ ョ ン ウ ィザード] アイコンではな く [アプ リ ケーシ ョ ン] アイコンをク リ ッ ク した場合は、 プロジェク ト ペインタが開きます。 プロジェク ト ペインタでもウ ィザードの場合と同様に値を選択できますが、 ウ ィザードの場合は、 ウ ィザードからの指示に従って必要な情報を入力することができます。

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

[格納先ライブラ リの指定] ページが表示されます。

Page 266: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

プロジェク ト オブジェク トの作成

254 PowerBuilder Classic

4 まだ選択していない場合は、[アプ リ ケーシ ョ ン ラ イブラ リ ] リ スト ボッ クスで 「pbtutor.pbl」 を選択します。[構築オプシ ョ ンの指定] ページが表示されるまで [次へ] を クリ ッ ク します。

以下のデフォルト値が選択されたプロジェク トが生成されます。

5 [再構築オプシ ョ ン] で [インク リ メンタル構築] を選択します。[バージ ョ ン情報の設定] ページが表示されるまで [次へ] を クリ ッ ク します。

以下のデフォルト値が選択されたプロジェク トが生成されます。

6 必要であれば、 独自のバージ ョ ン情報を [バージ ョ ン情報の設定]ページに入力します。

このページの情報を変更しない場合、 実行ファ イルのプロパティを Windows エクスプローラで参照したと きにデフォルト値が表示されます。

ウィザードのプロパティ デフォルト値

プロジェク ト名 p_pbtutor_exe実行可能ファイル名 pbtutor.exe

リ ソース ファ イル (オプシ ョ ン) なし

ウィザードのプロパティ デフォルト値

マシンコードの生成 なし

動的ライブラ リの作成 なし

Page 267: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 11 アプリケーシ ョ ン配布の準備

PowerBuilder 入門 255

7 [次へ] をク リ ッ ク します。[アプ リ ケーシ ョ ンの作成準備完了] ページの情報を確認します。[完了] ボタンをク リ ッ ク します。

アプ リ ケーシ ョ ンのプロジェク ト オブジェク トが作成され、 プロジェク ト ペインタのワークスペースに表示されます。

プロジェ ク ト を定義し終えたら、 アプ リ ケーシ ョ ンの実行ファ イルは簡単に作成できます。 プロジェ ク ト を使用する と、 頻繁に再構築する動的ライブラ リ を含むアプ リ ケーシ ョ ンの場合に作業時間を短縮できます。 インク リ メ ンタル構築を選択する と、 いくつか変更を加えた場合に、 変更されたファ イルのみ、 または変更されたファ イルに依存するファ イルのみを再構築するこ とで、 すばやくプロジェク ト を再構築できます。

Page 268: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

実行ファイルの作成

256 PowerBuilder Classic

実行ファイルの作成

現在の学習個所プロジェク ト オブジェク トの作成

> 実行ファイルの作成ショート カッ トの作成実行ファイルのテスト

このステップでは、 アプ リ ケーシ ョ ンの実行ファ イルを作成します。作成する実行ファイルには、 アプ リ ケーシ ョ ンのすべてのオブジェ クト の定義が格納されます。 このチュー ト リ アル アプ リ ケーシ ョ ンでは、 プロジェ ク ト に独立した リ ソース ファ イルを含めなかったので、ログイン ウ ィンド ウで使用するビッ トマップ ファ イルを含みます。

プロジェ ク ト ペインタでも実行ファ イルを作成できますが、 通常は、一度プロジェク トの定義を終えたら、 プロジェク ト ペインタを再度開く必要はあ り ません。

システム ツ リーのワークスペースおよびターゲッ トでは、 ポップアップ メニュー項目に [インク リ メ ンタル構築]、 [フル構築]、および [配布] があ り、 これらを使用する と、 ターゲッ ト内またはワークスペース全体の中のプロジェク トの一部または全部を構築および配布できます。 [インク リ メ ンタル構築] および [フル構築] を選択する と、 コードがコンパイルされます。 [配布] を選択する と、 コードがコンパイルされ、 このチュート リ アルで構築したよ う なアプ リ ケーシ ョ ンの場合は、 実行ファ イルとオプシ ョ ンの動的ライブラ リが作成されます。 そのほかのプロジェク ト (サーバ コンポーネン ト プロジェク ト など) の場合は、 [配布] を選択する と、 サーバへのコンポーネン トおよびサポート ファ イルの配布も行われます。

このレ ッ スンでは、 プロパテ ィ シー ト について説明します。 プロパテ ィ シー ト では、 構築と配布のオプシ ョ ンを指定し、 そしてパワーバーから実行ファ イルを作成します。

1 プロジェク ト ペインタを閉じます。変更内容を保存するかど うかを確認する メ ッセージが表示されたら、 [はい] をク リ ッ ク します。

Page 269: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 11 アプリケーシ ョ ン配布の準備

PowerBuilder 入門 257

2 システム ツ リーで pbtutor ターゲッ ト を右ク リ ッ ク します。[プロパティ] を選択してから、 [配布] タブを選択します。

このページには、 このターゲッ ト内のすべてのプロジェ ク ト (現在は 1 つだけ) が表示されます。

ターゲッ ト内に複数のプロジェ ク トがある場合は、 実行される順序の変更、 および構築するプロジェク トの選択ができます。

Page 270: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

実行ファイルの作成

258 PowerBuilder Classic

3 p_pbtutor_exe をチェ ッ ク したままで[キャンセル]ボタンをク リ ック します。システム ツ リーで MyWorkspace を右ク リ ッ ク します。[プロパティ] を選択し、 [配布プレビュー] タブを選択します。

[配布プレビュー] タブページには、 ワークスペース内のすべてのターゲッ ト、 および配布対象と して選択された各ターゲッ ト内のプロジェ ク トが、 配布される順序で表示されます。 このページでは何も変更できません。 ワークスペースの配布オプシ ョ ンを希望どおりに設定したこ と を確認するためのページです。 このページに表示されるすべてのプロジェ ク トは、 パワーバーの [配布] ボタンをク リ ッ クする と配布されます。

このワークスペースにはターゲッ ト とプロジェ ク ト がそれぞれ 1つあるだけなので、 [配布] ボタンを使用して実行ファイルを作成できます。

4 [キャンセル] ボタンをク リ ッ ク して、プロパティ シート を閉じます。

5 パワーバーの [配布] ボタンをク リ ッ ク します。

実行ファ イルの作成には多少時間がかかり ます。 実行ファ イルを作成している間は、 画面下部の出力ウ ィ ン ド ウで処理の状況を確認するこ とができます。

配布のプロセスを中止したい場合は、 パワーバーの [中止] ボタンをク リ ッ ク します。 配布が完了する と、 出力ウ ィ ン ド ウに終了のメ ッセージが表示されます。

Page 271: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 11 アプリケーシ ョ ン配布の準備

PowerBuilder 入門 259

シ ョート カッ トの作成

現在の学習個所プロジェク ト オブジェク トの作成実行ファイルの作成

> シ ョート カ ッ トの作成実行ファイルのテスト

このステップでは、 実行ファ イルのシ ョート カッ ト を作成します。 アイコンは、 実行ファ イルを開くためのシ ョート カッ ト と して動作します。 シ ョート カッ トは、 直接デスク ト ップへ、 または選択したプログラム グループに追加できます。

1 [ 小化] ボタンをク リ ッ ク して、 PowerBuilder を 小化します。

PowerBuilder が 小化され、 タスクバーにアイコン表示されます。

2 デスク ト ップの空白領域でマウスの右ボタンをク リ ッ ク します。ポップアップ メニューから [新規作成|シ ョート カッ ト ] を選択します。

3 シ ョート カッ トの作成ダイアログ ボッ クスで、[参照] ボタンをクリ ッ ク して pbtutor.exe を探します。

PowerBuilder のインス トール先がデフォル ト の場合、 ファ イルはMy Documents\Sybase\Powerbuilder 12.5\Tutorial 内にあ り ます。

4 [OK] をク リ ッ ク し、 [次へ] をク リ ッ ク します。

5 シ ョート カッ ト名と して 「PowerCap 営業支援システム」 と入力します。

6 [完了] ボタンをク リ ッ ク して、 デスク ト ップ上にシ ョート カッ トを作成します。

アプ リ ケーシ ョ ンを実行できるよ うに、 そのシ ョート カッ トのプロパテ ィ を修正します。 また、 アイコンを変更するこ と もできます。

7 デスク ト ップ上の [PowerCap 営業支援システム] アイコンを右クリ ッ ク します。

Page 272: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ショート カッ トの作成

260 PowerBuilder Classic

ポップアップ メニューで [プロパティ] を選択します。

8 [シ ョート カッ ト ] タブを選択します。[作業フォルダ] ボッ クスに Powersoft の共有モジュール フォルダへのパスを入力します。[OK] をク リ ッ ク します。

共有モジュールの格納場所について

PowerBuilder をインス トールする と、 各 DLL ファ イルが共有ディレク ト リ にインス トールされます。 デフォルト のインス トール先は 「C:Program Files\Sybase\Shared\PowerBuilder」 です。

ユーザが実行ファ イルをダブルク リ ッ ク してアプ リ ケーシ ョ ンを実行できるよ うにするには、 システム環境パスに共有ディ レク トリの場所を含める必要があ り ます。

Page 273: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 11 アプリケーシ ョ ン配布の準備

PowerBuilder 入門 261

実行ファイルのテスト

現在の学習個所プロジェク ト オブジェク トの作成実行ファイルの作成ショート カ ッ トの作成

> 実行ファイルのテスト

このステップでは、 新し く作成した実行ファイルをテス ト します。

1 pbtutor.ini ファ イルが実行ファイル pbtutor.exe と同じディ レク ト リに格納されているこ とを確認します。

pbtutor.ini ファ イルおよび pbtutor.exe ファ イルのデフォルトのインス ト ール先は My Documents\Sybase\PowerBuilder 12.5\Tutorial です。

2 チュート リ アル アプ リ ケーシ ョ ンのアイコンをダブルク リ ッ ク します。

アプリ ケーシ ョ ンの実行が開始されます。

3 アプリ ケーシ ョ ンをテス ト します。顧客情報に加えた変更に注意してください。

4 アプリ ケーシ ョ ンのテス ト を終えたら、 [ファ イル|終了] を選択します。

次のステップについてお疲れさまでした。これでク ライアン ト サーバ チュート リ アルが終了しました。 このチュート リ アルでは PowerBuilder でのアプ リ ケーシ ョン構築の基本的な方法を学習しました。 これで、 .NET Web フォームとWindows フォームのレッスンに進むこ とができます。

このマニュアルの冒頭の「このマニュアルについて」には、PowerBuilderの各マニュアルについての説明が記載されています。 さ らに高度な開発技術を学習するには、 以下のマニュアルに進んでください。

Page 274: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

次のステップについて

262 PowerBuilder Classic

『ユーザーズ ガイ ド』『アプ リ ケーシ ョ ン テクニッ ク』『データウ ィ ンド ウ プログラマーズ ガイ ド』

PowerBuilder のすべてのマニュアルは、 オンライン ブッ クや日本コン

ピュータシステムのサイ ト http://www.powerbuilder.jp/ にある 「技術情報」で利用できます。 オンラ イン ブッ クのインス トール方法については、『インストール ガイ ド』 マニュアルを参照して ください。

Page 275: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 3 部 Web フォーム アプリケーシ ョ ンの構築

第 3 部は、 .NET Web フォーム ターゲッ トの使用方法を示したチュート リアルです。クライアン ト サーバ アプリケーシ ョ ンを Web フォーム アプリケーシ ョ ンに変換する方法を手順を追って説明します。

Page 276: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの
Page 277: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 265

レ ッ ス ン 1 2 PowerBuilder チュート リ アルの Web フォーム アプリ ケーショ ンへの変換

このチュー ト リ アルでは、 PowerBuilder チュー ト リ アル アプ リケーシ ョ ンを ASP.NET Web フォーム アプ リ ケーシ ョ ンに変換するのに必要な情報を提供します。 開発するコンピュータ上には、Microsoft .NET Framework および IIS サーバをインス トール済みである と想定しています。 ほかのコンピュータを使用して、 標準のWeb ブラウザから Web フォーム アプ リ ケーシ ョ ンを実行できます。

このチュート リ アルでは、 以下のこ とを行います。

• PowerBuilder でのチュート リ アルの実行

• .NET Web フォーム アプリ ケーシ ョ ンへの変更

• .NET Web フォーム ターゲッ トおよびプロジェク トの作成

• .NET Web フォーム プロジェク トの配布

• Web ブラウザからのアプ リケーシ ョ ンの実行

所要時間

約 40 分

Page 278: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder でのチュート リアルの実行

266 PowerBuilder Classic

PowerBuilder でのチュート リアルの実行

現在の学習個所> PowerBuilder でのチュート リアルの実行

.NET Web フォーム アプリケーシ ョ ンへの変更

.NET Web フォーム ターゲッ トおよびプロジェク トの作成

.NET Web フォーム プロジェク トの配布Web ブラウザからのアプリケーシ ョ ンの実行

チュート リアルの要件

チュー ト リ アル アプ リ ケーシ ョ ンを正常に動作させるには、 アプ リケーシ ョ ンを配布するシステム上で、 ASP.NET を .NET Web フォームプロジェ ク ト用に設定しておく必要があ り ます。 たとえば、 ASP.NETユーザと して SQL Anywhere を実行したり EAS Demo DB V125 データベースに接続した りするための適切な権限を設定する必要があ り ます。 ASP.NET の設定については、 『アプ リ ケーシ ョ ン と コンポーネントの .NET への配布』 マニュアルの第 1 章を参照してください。

PowerBuilder チュート リ アル アプ リ ケーシ ョ ンを ASP.NET Web アプリ ケーシ ョ ンと して配布する前に、 システム開発の PowerBuilder 環境からアプ リ ケーシ ョ ンを正常に実行できるかど うかを確認します。 完成したチュー ト リ アル アプ リ ケーシ ョ ンは、 PowerBuilder のインストール パスの Tutorial\Solutions ディ レク ト リにあ り ます。

Web フォーム ターゲッ ト を solutions ワークスペースに追加するので、まず 初にチュー ト リ アル アプ リ ケーシ ョ ンのワーク スペース とターゲッ ト を別のディ レ ク ト リ にコピーしておきます。 これを このチュート リ アルの 初に行います。

1 MyDocuments\Sybase\PowerBuilder 12.5\Tutorial ディ レク ト リの下にサブディ レ ク ト リ を作成し、 Web Forms とい う名前を付けます。

2 Tutorial\Solutions フォルダ内のファイルを、 新し く作成した Tutorial\Web Forms フォルダにすべてコピーします。

3 Windows の [スタート ] メニューから [プログラム| Sybase |PowerBuilder 12.5 | PowerBuilder 12.5] を選択します。

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

Page 279: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 267

4 [フ ァ イル] メニューから [ワークスペースを開く] を選択します。

ワークスペースを開く ダイアログボッ クスが表示されます。

5 手順 1 で作成した Tutorial\Web Forms フォルダに移動し、MyWorkspace.pbw を選択して [開く ] をク リ ッ ク します。

PowerBuilder IDE で、PowerScript ターゲッ ト ファ イルの pbtutor.pbtが含まれたワークスペースが開きます。 このターゲッ トには、2 つのライブラ リ ファ イル (pbtutor.pbl と tutor_pb.pbl) があ り、チュート リ アル アプリ ケーシ ョ ンのすべてのオブジェク トが含まれています。

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

チュー ト リ アル アプ リ ケーシ ョ ンのログイン ウ ィ ン ド ウが表示されます。

7 ユーザ ID の 「dba」 とパスワードの 「sql」 を入力します。

ログインが成功する と、 メニューとツールバーのある MDI フレーム ウ ィンド ウが表示されます。

8 メニュー オプシ ョ ンが動作するこ とを確認し、 アプリ ケーシ ョ ンを終了します。

Page 280: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

.NET Web フォーム アプリケーシ ョ ンへの変更

268 PowerBuilder Classic

.NET Web フォーム アプリケーシ ョ ンへの変更

現在の学習個所PowerBuilder でのチュート リアルの実行

> .NET Web フォーム アプリケーシ ョ ンへの変更.NET Web フォーム ターゲッ トおよびプロジェク トの作成.NET Web フォーム プロジェク トの配布Web ブラウザからのアプリケーシ ョ ンの実行

Web フォーム アプリ ケーシ ョ ンがデータベースに接続する前に、常に手動でチュー ト リ アルのデータベースを開始する予定がない限り、ASP.NET ユーザにデータベース と SQL Anywhere データベース エンジンを含むディ レク ト リに対してフル コン ト ロールの権限を付与し、 それらのディ レク ト リ内の全ファ イルにもその権限を与えておく必要があ り ます。

注意 『アプ リ ケーシ ョ ンと コンポーネン トの .NET への配布』 マニュアルの 「ASP.NET ユーザ アクセス許可の付与」 の節の手順によってすでに両方または片方のディ レク ト リに権限を与えている場合、 こ こで再度、 権限を与える必要はあ り ません。

1 Windows エクスプローラで、 PowerBuilder のチュート リ アル ディレク ト リ (27 ページの 「チュー ト リ アル ディ レク ト リ 」 で説明)を参照します。

このディ レク ト リには、チュート リ アル データベースがあ り ます。

2 このディ レク ト リ を右ク リ ッ ク し、ポップアップ メニューから[プロパティ ] を選択します。

3 プロパティ ダイアログボッ クスの [セキュ リ ティ] タブを選択し、[追加] ボタンをク リ ッ ク します。

ユーザ、コンピュータ または グループの選択 ダイアログボッ クスが表示されます。

Page 281: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 269

[セキュリテ ィ] タブが表示されない場合

[セキュ リ テ ィ] タブを表示するためには、 現行ディ レ ク ト リ のフォルダ オプシ ョ ン ダイアログボッ クスの [表示] タブの設定を変更する必要があ り ます。Windows Explorer から [ツール|フォルダ オプシ ョ ン] メニュー項目を選択して、フォルダ オプシ ョ ン ダイアログボッ クスを開きます。 [セキュ リ ティ] タブを表示するには、 [簡易ファイルの共有を使用する (推奨) ] のチェ ッ クボッ クスをオフにします。

4 [場所] をク リ ッ ク し、 場所 ダイアログボッ クスからサーバ コンピュータ名を選択して [OK] をク リ ッ ク します。

5 [選択するオブジェク ト名を入力して ください] リ ス ト ボッ クスにASPNET、 IIS_WPG、 または IIS_IUSRS と入力し、 [OK] をク リ ック します。

[OK] をク リ ックする前に

[名前の確認] ボタンをク リ ッ クする と、 入力したユーザ名がシステムによって認識されない場合にメ ッセージが表示されます。 名前が認識されない場合は、 Microsoft NET Framework を再インストールする必要があ り ます。

IIS 5 の場合は ASPNET、 IIS 6 の場合は IIS_WPG、 IIS 7 の場合はIIS_IUSRS と入力します。 入力した ASP.NET アカウン トは、 現行ディ レク ト リの [セキュ リ ティ] タブに追加されます。

Page 282: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

.NET Web フォーム アプリケーシ ョ ンへの変更

270 PowerBuilder Classic

6 [セキュ リ ティ] タブの一番上のリ ス ト ボッ クスから新しいユーザアカウン ト を選択し、 下の リ ス ト ボッ ク スの許可カラムの下にある [フル コン ト ロール] チェッ クボッ クスをオンにします。

7 [詳細設定] ボタンをク リ ッ ク します。

現行ディ レク ト リのセキュ リ ティの詳細設定 ダイアログボッ クスが表示されます。

8 [子オブジェク トすべてのアクセス許可エン ト リ を、 こ こに表示されているエン ト リ で子オブジェ ク ト に適用する もので置換する]チェッ クボッ クスをオンにし、 [OK] をク リ ッ ク します。

セキュ リ ティ ダイアログボッ クスに、 子オブジェク トの現行のアクセス許可を削除し、 継承された権限をこれらのオブジェ ク トに反映するこ と を知らせる警告が表示され、 応答するよ う要求されます。

9 セキュ リ ティ ダイアログボッ クスで [はい] をク リ ッ ク し、 [OK]をク リ ッ ク して、 現行ディ レク ト リのプロパティ ダイアログボックスを閉じます。

10 SQL Anywhere 11\Bin32 ディレク ト リに対する変更がまだの場合は、 このディ レク ト リに対して上記の手順 1 ~ 9 を繰り返します。

Page 283: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 271

.NET Web フォーム ターゲッ トおよびプロジェク トの作成

現在の学習個所PowerBuilder でのチュート リアルの実行.NET Web フォーム アプリケーシ ョ ンへの変更

> .NET Web フォーム ターゲッ トおよびプロジェク トの作成.NET Web フォーム プロジェク トの配布Web ブラウザからのアプリケーシ ョ ンの実行

PowerBuilder .NET Web フォーム ターゲッ ト ウ ィザードを使用して、既存の PowerBuilder アプリ ケーシ ョ ン ターゲッ トに基づいて .NET Webフ ォーム ターゲ ッ ト を作成でき ます。 このチュー ト リ アルでは、PowerBuilder チュート リ アル ターゲッ トに基づいて .NET Web フォーム ターゲッ ト を作成します。Web フォーム アプリ ケーシ ョ ンを配布するために使用する .NET Web フォーム プロジェク ト も作成します。

1 メニューから [ファ イル|新規作成] を選択し、 [ターゲッ ト ] タブをク リ ッ ク します。

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

2 [.NET Web フォーム アプリ ケーシ ョ ン] アイコンを選択して、[OK] をク リ ッ ク します。

ウ ィザードの 初のページには、 実行可能な作業に関する説明があ り ます。

3 [次へ] をク リ ッ ク してウ ィザードの 2 番目のページを表示し、[既存のターゲッ ト から ラ イブラ リ リ ス ト と アプ リ ケーシ ョ ン オブジェク ト を使用する] ラジオ ボタンを選択してから、 [次へ] をクリ ッ ク します。

[ターゲッ トの選択] ウ ィザード ページが表示されます。 このページには、 現行ワークスペースのターゲッ トの リ ス ト ボッ クスがあり ます。 この時点では、 チュート リ アル ワークスペース内のターゲッ トは PBTutor ターゲッ トのみです。

Page 284: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

.NET Web フォーム ターゲッ トおよびプロジェク トの作成

272 PowerBuilder Classic

4 PBTutor が選択されているこ とを確認し、 [次へ] をク リ ッ ク します。

[ターゲッ ト ファ イルの指定] ページが表示されます。選択した既存のターゲッ ト ファ イル名に基づいた、新しい Web フォーム ターゲッ トのデフォル ト名が表示されます。 デフォルト のターゲッ トファ イル名は pbtutor_webform.pbt です。

5 デフォルトのターゲッ ト名を使用する場合は、 [次へ] をク リ ッ クします。

[プロジェ ク ト情報の指定] ページが表示されます。 新しい Webフォーム プロジェク トのデフォルト名が リ ス ト されます。 デフォル トのプロジェク ト名は p_pbtutor_webform です。 このウ ィザードページでは、 新しいプロジェ ク ト オブジェ ク ト を保存する ターゲッ ト ラ イブラ リ も選択できます。 デフォルトでは、 プロジェクト オブジェク トは、 新しいターゲッ トのメ イン ラ イブラ リ (こ こでは pbtutor.pbl) に保存されます。

6 デフォル ト のプロジェ ク ト 名およびラ イブラ リ をそのまま使用し、 [次へ] をク リ ッ ク します。

[.NET Web フォーム アプ リ ケーシ ョ ンの設定] ページには、 以下のフ ィールドにデフォルトの値が表示されます。

7 デフォルト値をそのまま使用し、 [次へ] をク リ ッ ク します。

[ リ ソース ファ イル / ディレク ト リの指定]ウ ィザード ページが表示されます。

8 [ファ イルの追加] ボタンをク リ ッ ク します。

PowerBuilder Tutorial アプリ ケーシ ョ ンは、 イ メージ ファ イルを使用します。 これらのファ イルを、 Web フォーム アプ リ ケーシ ョ ンと と もに配布するために指定する必要があ り ます。

リ ソース ファ イルの選択 ダイアログボッ クスが表示されます。

.NET Web フォーム パラメータ デフォルト値

Web アプリ ケーシ ョ ン名 pbtutorアプ リ ケーシ ョ ン URL プレビュー

http://<ServerName>/pbtutor(<ServerName> は IIS サーバ名を示すプレースホルダ)

Page 285: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 273

9 [ファイルの種類] ド ロ ップダウン リ ス トから 「すべてのファイル」を選択し、 Tutorial ディ レク ト リに移動します。

Tutorial ディレク ト リは Web Forms ディレク ト リの関連ディ レク トリで、 Sybase\PowerBuilder 12.5 の配下にあ り ます。

10 〔Ctrl〕を押したまま、tshirtw.jpg、tutsport.bmp、tutorial.icoファ イルを選択し、 [開く ] をク リ ッ ク します。

選択された リ ソースは、 以下のよ うにページに追加されます。

11 選択した リ ソース ファ イルをチュート リ アル Web フォーム アプリケーシ ョ ンと と もに配布するために、[次へ]をク リ ッ ク します。

[Win32 ダイナ ミ ッ ク ラ イブラ リ フ ァ イルの指定] ウ ィザードページが表示されます。 チュート リ アル アプリ ケーシ ョ ンは、 外部 DLL を使用しません。

12 [配布オプシ ョ ンの設定]ウ ィザード ページを表示するために、[次へ] を 2 回ク リ ッ ク します。

チュート リ アル アプ リ ケーシ ョ ンでは JavaScript ファ イルは必要ないため、 [JavaScript ファ イルの指定] ウ ィザード ページで含める追加の JavaScript ファ イルはあ り ません。

Page 286: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

.NET Web フォーム ターゲッ トおよびプロジェク トの作成

274 PowerBuilder Classic

[配布オプシ ョ ンの設定] ページが表示されます。

13 IIS サーバのアドレスに表示される 「localhost」 をそのまま使用するか、 またはローカル IIS サーバの正式な名前に変更して、[次へ]をク リ ッ ク します。

このチュート リ アルでは、 Web フォーム プロジェク ト をローカルIIS サーバに直接配布します。[次へ] をク リ ッ クする と、ウ ィザードの概要ページが表示されます。

14 [完了] ボタンをク リ ッ ク します。

.NET Web フォーム アプリ ケーショ ン ウィ ザード は、 pbtutor.pbl ライブラ リ のラ イブラ リ リ ス ト を使用する、 PBTutor_WebForm と いう.NET Web フォーム ターゲッ ト を作成します。また、p_pbtutor_webformという名前の .NET Web フォーム プロジェク ト も作成します。

Page 287: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 275

.NET Web フォーム プロジェク トの配布

現在の学習個所PowerBuilder でのチュート リアルの実行.NET Web フォーム アプリケーシ ョ ンへの変更.NET Web フォーム ターゲッ トおよびプロジェク トの作成

> .NET Web フォーム プロジェク トの配布Web ブラウザからのアプリケーシ ョ ンの実行

Web フォーム プロジェ ク ト を作成したら、 Web フォーム アプ リ ケーシ ョ ンを実行した りデバッグした りする前に、 Web フォーム プロジェク ト を IIS サーバに配布する必要があ り ます。 ただし、 Web フォームアプ リ ケーシ ョ ンを配布する前に、 アプ リ ケーシ ョ ンの実行時のグローバル プロパティを修正できます。 このレッスンでは、 アプリ ケーシ ョ ンを配布する前に、 アプ リ ケーシ ョ ンのデータウ ィンド ウ コン トロールでのページ ナビゲーシ ョ ンのグローバル プロパテ ィ を変更します。

1 システム ツ リーで、 PBTutor_WebForm ターゲッ ト とその下の pbtutor.pbl を展開します。

pbtutor.pbl および tutor_pb.pbl ラ イブラ リは、PBTutor ターゲッ ト とPBTutor_WebForm ターゲッ トの両方の下に一覧される こ とに注意して ください。PBTutor_WebForm ターゲッ トで、pbtutor.pbl に表示される唯一のプロジェク トは、作成したばかりの .NET Web フォーム プロジェク トです。

このライブラ リは、現行ワークスペース内で リ ス ト される PBTutorタ ー ゲ ッ ト と 共 有 さ れ ま す が、 新 し い プ ロ ジ ェ ク ト(p_pbtutor_webform) はシステム ツ リーの PBTutor の下には表示されません。 PBTutor ターゲッ トには、標準の実行ファイルを作成するためのプロジェ ク ト と Web データウ ィ ン ド ウ コンテナのみが表示されます。

2 システム ツ リーの p_pbtutor_webform プロジェク ト を右ク リ ッ クして、 ポップアップ メニューから [編集] を選択します。

プロジェク ト ペインタで .NET Web フォーム プロジェク トが開かれます。

3 [設定] タブをク リ ッ ク し、 [システム定義の設定] ラジオ ボタンが選択されているこ とを確認します。

Page 288: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

.NET Web フォーム プロジェク トの配布

276 PowerBuilder Classic

4 [設定] タブの リ ス ト ビューの [キー] カラムでグローバル プロパティ PBDataWindowPageNavigatorType を選択し、[編集]をク リ ック します。

設定値 ダイアログボッ クスが表示されます。

5 設定値 ダイアログボッ クスで、 [値] ド ロ ップダウン リ ス ト を「Numeric」 に変更し、 [OK] をク リ ッ ク します。

ナビゲータ コン ト ロールのデータ型を 「NextPrev」 から 「Numeric」に変更します。

ページ ナビゲーシ ョ ンのデータ型については、『アプ リ ケーシ ョ ンと コンポーネン トの .NET への配布』マニュアルの「.NET プロジェク トのヒ ン ト集」 の章を参照して ください。

6 プロジェ ク トの [実行] タブをク リ ッ ク し、 [アプ リ ケーシ ョ ン]および [引数] フ ィールドのデフォルト値を確認します。

[アプ リ ケーシ ョ ン]のデフォルトは Internet Explorer ブラウザ、[引数] のデフォル ト は配布後の Web フォーム アプ リ ケーシ ョ ンのURL です。

Page 289: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 277

7 プロジェク トのそのほかのタブ ページ上の選択を確認します。

プロジェク トのほとんどのプロパティは、 ターゲッ ト ウ ィザードで設定されています。 プロジェク ト プロパティ シートには、 ウ ィザードで設定していないほかのプロパティのデフォルト選択もあり ます。 このチュー ト リ アルの場合、 これらのデフォル ト の設定を変更する必要はあ り ません。 これらの設定については、 『アプ リケーシ ョ ンと コンポーネン トの .NET への配布』 マニュアルの第 2章で説明されています。プロジェク ト ペインタのタブ ページ上で右ク リ ッ ク し、 ポップアップ メニューから [ヘルプ] を選択して、追加のプロパティの説明を参照するこ と もできます。

8 プロジェク ト ペインタのメニューから [デザイン|プロジェク トの配布] を選択するか、 またはペインタバーで [配布] アイ コンをク リ ッ ク します。

プロジェ ク ト を構築し、 ローカル IIS サーバに配布します。 出力ウ ィ ンド ウの [デフォルト ] タブに、成功したこ とを示すメ ッセージが表示されます。 [未サポート機能] タブに、 .NET Web フォーム環境でサポー ト されないプロパテ ィの リ ス ト が表示されます。このチュー ト リ アル アプ リ ケーシ ョ ンについて リ ス ト されるサポート されない機能は、 ほとんどがツールバーやメニューの様式に関係する機能であるため、 アプ リ ケーシ ョ ンのメ イン機能には影響しません。

9 開いているペインタをすべて閉じます。

Page 290: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Web ブラウザからのアプリケーシ ョ ンの実行

278 PowerBuilder Classic

Web ブラウザからのアプリケーシ ョ ンの実行

現在の学習個所PowerBuilder でのチュート リアルの実行.NET Web フォーム アプリケーシ ョ ンへの変更.NET Web フォーム ターゲッ トおよびプロジェク トの作成.NET Web フォーム プロジェク トの配布

> Web ブラウザからのアプリケーシ ョ ンの実行

Web フォーム アプ リ ケーシ ョ ン と してチュー ト リ アルを実行する準備ができました。このレッスンでは、1 つのアプ リ ケーシ ョ ン セッシ ョンは PowerBuilder から開始し、 も う 1 つのセッシ ョ ンは Web ブラウザのアドレス ボッ クスにアプリ ケーシ ョ ン URL を入力して開始します。

1 必要であれば、 手動で EAS Demo DB V120 データベースを開始します。

ASP.NET ユーザにデータベース とデータベース エンジンのディ レク ト リに対してフル コン ト ロールの権限を設定してある場合(112ページの 「ASP.NET ユーザに重要なディ レク ト リ と ファ イルへのフル コン ト ロールを付与する」 にて説明) は、 データベースを手動で開始する必要はあ り ません。

手動によるデータベースの開始

手動でデータベースを開始するには、 Windows の [スタート ] メニューから [プログラム| Sybase | PowerBuilder 12.5 |デモデータベース] を選択します。

2 PowerBuilder のシステム ツ リーで p_pbtutor_webform プロジェク トを右ク リ ッ ク し、ポップアップ メニューから[実行]を選択します。

プロジェ ク ト ペインタで p_pbtutor_webform プロジェ ク ト を開いたままにすると 、プロジェク ト ペインタ メ ニューから[ デザイン|プロジェク トの実行]を選択した り、システム ツ リーのポップアップ メニューを使用するかわりにペインタバーで [プロジェク トの実行] ボタンをク リ ッ ク した りできます。PowerBuilder ペインタで何かしらのプロジェク ト オブジェク ト を開いている間は、 システム ツ リーのポップアップ メ ニューからプロジェ ク ト を開く こ とはできません。

Page 291: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 279

チュート リ アル アプリ ケーシ ョ ンへのウェルカム ウ ィ ンド ウ (ログイン画面) が、Web ブラウザで開かれます。 PowerBuilder 設計環境からアプ リ ケーシ ョ ンを実行した場合、 ブラウザのメニューとツールバーが表示されません。

3 Windows の [スタート ] メニューまたはタスク バーから、 2 つ目の Internet Explorer (IE) ブラウザを開きます。

も う 1 台コンピュータを使用できる場合は、 別のコンピュータ上でブラウザを開いてもかまいません。 次に、 チュート リ アル アプリケーシ ョ ン用に 2 つ目のセッシ ョ ンを開始します。

4 IE のアドレス ボッ クスに 「http://serverName/pbtutor/default.aspx」 を入力します。 serverName は、 チュート リ アル アプ リ ケーシ ョ ンを配布した IIS サーバの名前です。

IIS サーバ マシン上で Web ブラウザを開いて、 「localhost」 にアプリ ケーシ ョ ンを配布した場合、 ブラ ウザのア ド レス ボッ ク スでサーバ名と して localhost を使用できます。 Web ブラウザからアプリ ケーシ ョ ンを開始して、 default.aspx 開始ページが含まれている場合は、Web フォーム アプリ ケーシ ョ ンがブラウザ ウ ィンド ウで表示されたと きに、 ブラウザのメニューと ツールバーは表示されたままになり ます。

5 ユーザ ID に 「dba」 、 パスワードに 「sql」 と入力し、 [OK] をクリ ッ ク します。

ログインの成功後、 チュート リ アル アプリ ケーシ ョ ンのフレームウ ィ ンド ウが、 Web ブラウザに表示されます。

6 フレーム ウ ィンド ウ メニューから [ファ イル|レポート|顧客情報] を選択します。

顧客情報シート ウ ィンド ウが表示されます。 このページのマスタデータウ ィ ン ド ウは、 Numeric スタ イルのページ ナビゲーシ ョ ンコン ト ロールを使用します。 ほかのページに移動するには、 番号をク リ ッ ク します。 IIS マネージャで PBDataWindowRowsPerPageプロパティ を変更していないため、 データウ ィ ン ド ウの 1 ページあた りに表示される行数は 20 です。

Page 292: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Web ブラウザからのアプリケーシ ョ ンの実行

280 PowerBuilder Classic

フレーム ウ ィンド ウ とシート ウ ィンド ウのツールバーは、別々に表示されます。

7 フレーム ウ ィンド ウ メニューから [ファ イル|レポート|商品管理] を選択します。

商品管理シート ウ ィ ン ド ウが表示されます。 シー ト ウ ィ ン ド ウは、独立したカスケード ウ ィンド ウではなく タブ ページ形式で表示されます。

データウ ィンド ウ コン ト ロールに 20 行 (グローバル PBDataWindowRowsPerPage プロパティで設定した値) 以上のデータがなく 、 1 ページで表示できるため、商品管理ページ上にページ ナビゲーシ ョ ン コン ト ロールは表示されません。

Page 293: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 12 PowerBuilder チュート リアルの Web フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 281

以下の図は、 ク ラシッ ク Web 表示形式を使用したタブ ページ形式です。

8 チュー ト リ アルのテス ト を継続するか、 アプ リ ケーシ ョ ンのフレーム ウ ィンド ウ メニューから [ファ イル|終了] を選択します。

PowerBuilder 本来のチュート リ アル アプ リ ケーシ ョ ンから行うのと同じよ うに、チュート リ アル Web フォーム アプリ ケーシ ョ ンからデータベース項目の挿入、 更新、 削除を行えます。

現在の Web フォーム セッシ ョ ンを終了した後、PBDataWindowPageNavigatorType のほかにもグローバル プロパティを変更したく なるかもしれません。 たと えば、 ファイル マネージャと メ ール プロファ イル マネージャを検証するには、 グローバル プロパティの PBFileManager と PBMailManager に true を設定します。

フ ァ イル マネージャやメール プロフ ァ イル マネージャを含むWeb フォーム ターゲッ トについての詳細は、『アプ リ ケーシ ョ ンとコンポーネン ト の .NET への配布』 マニュアルを参照して ください。

Page 294: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Web ブラウザからのアプリケーシ ョ ンの実行

282 PowerBuilder Classic

Page 295: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

第 4 部 Windows フォーム アプリケーシ ョ ンの構築

第 4 部は、 .NET Windows フォーム ターゲッ トの使用方法を示したチュート リアルです。クライアン ト サーバ アプリケーシ ョ ンを Windows フォーム アプリケーシ ョ ンに変換する方法を手順を追って説明します。

Page 296: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの
Page 297: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 285

レ ッ ス ン 1 3 PowerBuilder チュート リ アルの Windows フォーム アプリ ケーションへの変換

このチュート リ アルでは、 PowerBuilder チュート リ アル アプリ ケーショ ンを Windows フォーム アプリ ケーショ ンに変換する方法を説明し ます。 開発コ ンピュ ータ 上には、 Microsoft .NET Framework、.NET Framework SDK、 および IIS サーバをインス トール済みである と想定しています。 IIS サーバは、 インテ リジェン ト更新の中央サーバ と し て使用し ます。 ほかの コ ン ピ ュータ を使用し て、Windows フォーム アプ リ ケーシ ョ ンを実行できます。

このチュート リ アルでは、 以下のこ とを行います。

• PowerBuilder でのチュート リ アルの実行

• Solutions ディレク ト リへのリ ソース ファ イルのコピー

• .NET Windows フォーム ターゲッ トおよびプロジェク トの作成

• Windows フォーム ターゲッ トの配布と実行

• Web ブラウザへのアプリ ケーシ ョ ンの発行

• Web ブラウザからのアプ リケーシ ョ ンのインス トールと実行

• ほかのコンピュータへのアプ リケーシ ョ ンのインス トール

• アプ リ ケーシ ョ ンの更新

所要時間

約 40 分

Page 298: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder でのチュート リアルの実行

286 PowerBuilder Classic

PowerBuilder でのチュート リアルの実行

現在の学習個所> PowerBuilder でのチュート リアルの実行

Solutions ディ レク ト リへのリソース ファイルのコピー.NET Windows フォーム ターゲッ トおよびプロジェク トの作成Windows フォーム ターゲッ トの配布と実行Web ブラウザへのアプリケーシ ョ ンの発行Web ブラウザからのアプリケーシ ョ ンのインス トールと実行ほかのコンピュータへのアプリケーシ ョ ンのインス トールアプリケーシ ョ ンの更新

PowerBuilder チュー ト リ アル アプ リ ケーシ ョ ンを Windows フォームアプ リ ケーシ ョ ン と して配布する前に、 PowerBuilder 開発環境でアプリ ケーシ ョ ンを正常に実行でき るかど う かを確認します。 完成したチュート リ アル アプ リ ケーシ ョ ンは、 PowerBuilder インス トール フォルダにあ り ます。

正常にチュー ト リ アル アプ リ ケーシ ョ ンを実行させるには、 SQLAnywhere ソフ ト ウェアをインス トールし、EAS Demo DB V125 データベースに接続できるよ うにする必要があ り ます。

1 Windows の [スタート ] メニューから [プログラム| Sybase |PowerBuilder 12.5 | PowerBuilder 12.5] を選択します。

2 [ファ イル] メニューから [ワークスペースを開く] を選択します。

3 My Documents\Sybase\PowerBuilder 12.5\Tutorial\Solutions フォルダに移動し、 MyWorkspace.pbw を選択して [開く ] をク リ ッ ク します。

PowerBuilder で、 pbtutor.pbt アプ リ ケーシ ョ ン ターゲッ ト を含むワークスペースが開きます。 このターゲッ トには、 2 つのライブラリ ファ イル (pbtutor.pbl と tutor_pb.pbl) があ り、 チュート リ アルアプ リ ケーシ ョ ンで使用されるすべてのオブジェ ク ト が含まれています。

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

チュー ト リ アル アプ リ ケーシ ョ ンのログイン ウ ィ ン ド ウが表示されます。

Page 299: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 287

5 ユーザ ID の 「dba」 とパスワードの 「sql」 を入力します。

チュー ト リ アル用のメニューと ツールバー付きの MDI フレームウ ィ ンド ウが表示されます。

6 メニューとツールバー項目が動作するこ とを確認し、 アプ リ ケーシ ョ ンを終了します。

た とえば、 [フ ァ イル|レポー ト |顧客情報] を選択し、 ツールバー アイコンか [編集] メニュー項目を使用して新規顧客を挿入してデータベースを更新してから、 顧客情報レポート の新しいインスタンスを開いて、 追加した新しい行を確認します。

Page 300: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Solutions ディレク ト リへのリソース ファイルのコピー

288 PowerBuilder Classic

Solutions ディ レク ト リへのリソース ファイルのコピー

現在の学習個所PowerBuilder でのチュート リアルの実行

> Solutions ディ レク ト リへのリソース ファイルのコピー.NET Windows フォーム ターゲッ トおよびプロジェク トの作成Windows フォーム ターゲッ トの配布と実行Web ブラウザへのアプリケーシ ョ ンの発行Web ブラウザからのアプリケーシ ョ ンのインス トールと実行ほかのコンピュータへのアプリケーシ ョ ンのインス トールアプリケーシ ョ ンの更新

PowerBuilder .NET Windows フォーム アプ リ ケーシ ョ ン ターゲッ トウ ィザードでは、 既存のターゲッ トのライブラ リ リ ス トおよびアプリケーシ ョ ン オブジェク ト を現行ワークスペースで再利用して、新しいWindows フォーム ターゲッ ト を作成できます。

ウ ィザードでは、 アプ リ ケーシ ョ ン と と もに配布する必要がある リソース ファ イルをどれでも選択できますが、必要な リ ソース ファ イルは、 アプ リ ケーシ ョ ンを作成するディ レク ト リ内に配置する必要があり ます。3 つのイ メージ ファ イルを Tutorial ディ レク ト リから Solutionsディレク ト リにコピーし、 w_welcome ウ ィンド ウでビッ トマップのパスを変更します。

1 ファ イル エクスプローラで、Tutorial ディ レク ト リ内の tshirtw.jpg、tutorial.ico、 および tutsport.bmp を選択してコピーします。

2 ファ イルを Tutorial\Solutions ディレク ト リにコピーします。

3 PowerBuilder で、 w_welcome ウ ィンド ウを開いてピクチャ コン トロールを選択します。プロパティ ビューで、 [ピクチャ名] ボッ クスに 「tutsport.bmp」のみが表示されるよ うにパスを削除します。w_welcome ウ ィンド ウを閉じます。

Page 301: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 289

.NET Windows フォーム ターゲッ トおよびプロジェク トの作成

現在の学習個所PowerBuilder でのチュート リアルの実行Solutions ディレク ト リへのリソース ファイルのコピー

> .NET Windows フォーム ターゲッ トおよびプロジェク トの作成Windows フォーム ターゲッ トの配布と実行Web ブラウザへのアプリケーシ ョ ンの発行Web ブラウザからのアプリケーシ ョ ンのインス トールと実行ほかのコンピュータへのアプリケーシ ョ ンのインストールアプリケーシ ョ ンの更新

こ こでは、 .NET Windows フォーム アプリ ケーシ ョ ン ターゲッ ト ウ ィザードを使用して、 新しい Windows フォーム ターゲッ ト を作成します。

1 パワーバーの [新規作成] ボタンをク リ ッ ク し、 [ターゲッ ト ] タブを選択します。

2 [.NET Windows フォーム アプリ ケーシ ョ ン]アイコンを選択して、[OK] をク リ ッ ク します。

ウ ィザードの 初のページには、 ウ ィザードで実行する作業についての情報が表示されます。

3 [次へ] を ク リ ッ ク します。 [アプ リ ケーシ ョ ンの作成] ページで[既存のターゲッ ト から ラ イブラ リ リ ス ト とアプ リ ケーシ ョ ン オブジェク ト を使用する] を選択し、 [次へ] をク リ ッ ク します。

4 pbtutor ターゲッ ト を選択し、 [次へ] をク リ ッ ク します。

デフォル ト では、 新規ターゲッ ト の名前は 「pbtutor_winform.pbt」にな り ます。

5 デフォルトのターゲッ ト名を使用する場合は、 [次へ] をク リ ッ クします。

6 [プロジェク ト情報の指定] ページで、 デフォルトのプロジェク ト名と ラ イブラ リ をそのまま使用し、 [次へ] をク リ ッ ク します。

Page 302: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

.NET Windows フォーム ターゲッ トおよびプロジェク トの作成

290 PowerBuilder Classic

7 [アプ リ ケーシ ョ ンの概要情報を指定] ページで、 製品名と して「Acme Update」 を実行ファ イル名と して 「AcmeUpdate.exe」 を指定し、 [次へ] をク リ ッ ク します。

8 [リ ソース ファイル / ディ レク ト リ の指定] ページで、[ ファイルの追加]をク リ ッ ク して tutsport.bmp、thsirtw.jpg、tutorial.icoを選択し、[開く] をク リ ッ ク してから [次へ] をク リ ッ ク します。

9 [Win32 ダイナミ ッ ク ラ イブラ リ ファ イルの指定] ページで [次へ] をク リ ッ ク します。

チュー ト リ アル アプ リ ケーシ ョ ンは外部関数を呼び出さないため、 アプ リ ケーシ ョ ンと と もに配布する DLL 名を指定する必要はあ り ません。

10 [スマート ク ラ イ アント のサポート を指定] ページで、[スマート

クライアン ト アプリケーシ ョ ンと して発行] チェ ッ クボッ クスをオンにし、 [次へ] をク リ ッ ク します。

11 [アプ リ ケーシ ョ ンの実行モードの指定] ページで [次へ] を クリ ッ ク します。

ユーザがブラウザのほかに Windows の [スタート ] メニューからもアプ リ ケーシ ョ ンを実行でき る よ う にするデフォル ト のオプシ ョ ンを変更せずにそのまま使用します。

12 [アプリ ケーショ ンのインスト ールまたは実行方法を指定] ページで、localhost をコンピュータ名に変更し、pbtutor を acmeupdateに変更して、 [次へ] をク リ ッ ク します。

ほかのコンピュータから発行されたアプ リ ケーシ ョ ンにアクセスする予定がない場合は、 ホス ト名を localhost のままにするこ と もできます。 これについては、 300 ページの 「ほかのコンピュータへのアプリ ケーシ ョ ンのインス トール」 で説明しています。

13 [アプ リ ケーシ ョ ンの自動更新の指定] ページで [次へ] をク リ ック し、 後のページで [完了] をク リ ッ ク します。

.NET Windows フ ォーム アプ リ ケーシ ョ ン ウ ィ ザー ド は、pbtutor_winform ターゲッ ト と p_pbtutor_winform プロジェク ト を作成します。 MyWorkspace には、 pbtutor.pbl と tutor_pb.pbl の両方を使用した 2 つのターゲッ トがあ り ます。

Page 303: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 291

14 システム ツ リーの pbtutor ターゲッ ト と pbtutor_winform ターゲッ トの両方の pbtutor.pbl を展開し、 表示されたプロジェク トオブジェク ト を確認します。

既存ターゲッ ト のラ イブラ リ リ ス ト と アプ リ ケーシ ョ ン オブジェ ク ト を使用して Windows フォーム プロジェ ク ト を作成すると 、 ラ イ ブラ リ は両方のタ ーゲッ ト で共有さ れますが、 システム ツリ ーには適切な ターゲッ ト種類のプロ ジェ ク ト のみが表示されます。 pbtutor ターゲ ッ ト には、 p_pbtutor_exe があ り ます。pbtutor_winform ターゲッ トには、 p_pbtutor_winform があ り ます。

15 pbtutor ターゲッ ト を折りたたみ、 pbtutor_winform ターゲッ トは展開したままにします。

Page 304: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Windows フォーム ターゲッ トの配布と実行

292 PowerBuilder Classic

Windows フォーム ターゲッ トの配布と実行

現在の学習個所PowerBuilder でのチュート リアルの実行Solutions ディ レク ト リへのリソース ファイルのコピー.NET Windows フォーム ターゲッ トおよびプロジェク トの作成

> Windows フォーム ターゲッ トの配布と実行Web ブラウザへのアプリケーシ ョ ンの発行Web ブラウザからのアプリケーシ ョ ンのインス トールと実行ほかのコンピュータへのアプリケーシ ョ ンのインス トールアプリケーシ ョ ンの更新

アプ リ ケーシ ョ ンをスマート ク ラ イアン ト アプ リ ケーシ ョ ン と して発行する前に、 正常に作成されている こ とを確認するためにローカルディ レク ト リに配布し、 配布した実行ファイルからアプリ ケーシ ョ ンを実行して開発環境と同じよ うに動作するかど うかを確認します。

1 システム ツ リーの p_pbtutor_winform プロジェク ト をダブルクリ ッ ク して、 プロジェク ト ペインタを開きます。

各タブ ページを選択する と、 ペインタのみで設定できるオプシ ョン (ウ ィザードでは設定できなかった) があるこ とがわかり ます。こ こでは、 ウ ィザードで設定したデフォルト値を使用します。

2 プロジェク ト ペインタのメニューから [デザイン|プロジェク トの配布] を選択するか、 またはペインタバーで [配布] ボタンをク リ ッ ク します。

[配布] ボタンをク リ ッ クする と、 アプ リ ケーシ ョ ンが構築され、プロジェク ト ペインタの [全般] ページの [出力パス] フ ィールドで指定したローカル ディレク ト リに配布されます。

出力ウ ィンド ウの [デフォル ト ] タブ ページに成功したこ とを示すメ ッセージが表示され、 サポート されない機能が新しいタブに表示されます。ToolbarHighlightColor などの一部のメニュー プロパティは、 Windows フォームではサポート されません。

Page 305: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 293

ト ラブルシューティング

アプ リ ケーシ ョ ンの配布に失敗した場合、 コンピュータに .NETFramework SDK がインス トールされているこ と と、bin ディレク トリがシステム PATH 環境変数にあるかど うかを確認して ください。

構文エラー「予期しないトークン : '行 4:8' 予期しないトークン : -」が表示された場合は、 メ ニュー ペインタで m_my_sheet を開き、PowerBuilder のメニューから [デザイン|オプシ ョ ン] を選択し、オプシ ョ ン ダイアログボッ クスの [ス ク リプ ト ] タブ ページにある [識別子にハイフンを使用] チェッ クボッ クスをオンにします。

ト ラブルシューティングのヒン トについては、 『アプ リ ケーシ ョ ンと コンポーネン トの .NET への配布』 マニュアルの 「デバッグと トラブルシューティ ング」 の章を参照して ください。

3 プロジェク ト ペインタのメニューから [デザイン|プロジェク トの実行] を選択するか、 またはペインタバーで [プロジェ ク ト の実行] ボタンをク リ ッ ク します。

pbtutor_winform_WinFormOutput ディレク ト リ内の AcmeUpdate.exeファ イルが実行され、 ウェルカム ウ ィンド ウが表示されます。

4 ユーザ ID の 「dba」 とパスワードの 「sql」 を入力します。

Windows タス ク バーのアプ リ ケーシ ョ ンのアイ コンが Windowsフォーム アプ リ ケーシ ョ ンを示している こ とに注意して ください。

5 開発環境で行っていたよ うにアプ リ ケーシ ョ ンを実行し、 データベース操作をいくつかテス ト します。

テス ト が終了したらアプ リ ケーシ ョ ンを閉じます。 次は、 アプ リケーシ ョ ンを Web サーバに発行し、 発行ページからそのアプ リケーシ ョ ンをインス トールします。

Page 306: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Web ブラウザへのアプリケーシ ョ ンの発行

294 PowerBuilder Classic

Web ブラウザへのアプリケーシ ョ ンの発行

現在の学習個所PowerBuilder でのチュート リアルの実行Solutions ディ レク ト リへのリソース ファイルのコピー.NET Windows フォーム ターゲッ トおよびプロジェク トの作成Windows フォーム ターゲッ トの配布と実行

> Web ブラウザへのアプリケーシ ョ ンの発行Web ブラウザからのアプリケーシ ョ ンのインス トールと実行ほかのコンピュータへのアプリケーシ ョ ンのインス トールアプリケーシ ョ ンの更新

次に、 インテ リ ジェン ト更新テク ノ ロジを使用して、 アプ リ ケーシ ョンを発行します。

1 p_pbtutor_winform プロジェク ト をまだ開いていない場合は、 開きます。

2 [バージ ョ ン] ページで、会社名に 「Acme, Inc.」 を入力します。

製品名と会社名が発行ページと Windows の [スタート ] メニューに表示されます。

3 [発行] ページと [インス トール / 更新] ページのオプシ ョ ンを調べます。

アプ リ ケーシ ョ ンは、 コンピュータ上で Web サイ トに発行されます。 publish.htm とい う名前の発行ページが生成され、 アプ リ ケーシ ョ ンをコンピュータにインス ト ールでき る よ う にアプ リ ケーシ ョ ンが発行される と きにそのページが開かれます。 アプ リ ケーシ ョ ンに変更を加えて再発行する と、 自動的に リ ビジ ョ ン番号が増えます。

[インス トール / 更新]ページのデフォルト設定では、インターネットやイン ト ラネッ トに接続しているかど うかにかかわらず、 アプリ ケーシ ョ ンをコンピュータの [スター ト ] メニューから実行でき る よ う にアプ リ ケーシ ョ ンがインス ト ールされます。 アプ リケーシ ョ ンは、 起動前に発行 Web サイ ト上の更新をチェッ ク します。

Page 307: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 295

4 [通知] ページで、 [デフォルト 通知アイコンを使用] チェッ クボックスをオフにし、 Tutorial\Solutions ディレク ト リ を参照してtutorial.ico を選択します。

アプリ ケーシ ョ ンの実行中は、Windows タスク バーの通知領域に、チュート リ アル アイコンが表示されます。 更新のチェ ッ ク中に表示されるウ ィ ン ド ウの背景画像と してほかのイ メージを指定するこ と もできます。

5 [ 必須コンポーネント ]ページで、Microsoft .NET Framework と SybasePowerBuilder .NET ランタイムを選択します。

Microsoft .NET Framework がインス トールされていないコンピュータにアプ リ ケーシ ョ ンをインス トールする必要がある場合は、 そのパッケージが Microsoft .NET Framework をインス トールするように修正する必要があ り ます。 詳細については、 『アプ リ ケーシ ョン と コンポーネン ト の .NET への配布』 マニュアルの 「インテ リジェン ト配布と更新」 の章を参照して ください。

6 プロジェク ト を保存し、 [デザイン|アプリ ケーシ ョ ンの発行] を選択するか、 ペインタバーの [アプ リ ケーシ ョ ンの発行] ボタンをク リ ッ ク します。

PowerBuilder はプロジェ ク ト を再配布し、 ローカル コンピュータの Web サーバ (一般的には、C:\Inetpub\wwwroot\AcmeUpdate) にアプ リ ケーシ ョ ンを発行します。 さ らに、 ブラウザが開き、 アプリ ケーシ ョ ン とアプ リ ケーシ ョ ンの必須コンポーネン ト をインストールするこ とができる publish.htm ページが表示されます。

ト ラブルシューティング

発行に失敗した場合は、 『アプ リ ケーシ ョ ン と コンポーネン ト の.NET への配布』 マニュアルの 「デバッグと ト ラブルシューティング」 の章を参照して ください。

Page 308: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Web ブラウザからのアプリケーシ ョ ンのインストールと実行

296 PowerBuilder Classic

Web ブラウザからのアプリケーシ ョ ンのインストールと実行

現在の学習個所PowerBuilder でのチュート リアルの実行Solutions ディ レク ト リへのリソース ファイルのコピー.NET Windows フォーム ターゲッ トおよびプロジェク トの作成Windows フォーム ターゲッ トの配布と実行Web ブラウザへのアプリケーシ ョ ンの発行

> Web ブラウザからのアプリケーシ ョ ンのインス トールと実行ほかのコンピュータへのアプリケーシ ョ ンのインス トールアプリケーシ ョ ンの更新

次に、 Web ブラ ウザから コンピュータにアプ リ ケーシ ョ ンをインストールして実行します。

Page 309: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 297

1 publish.htm ページで、 必要なソフ ト ウェアをインス トールする リンク部分をク リ ッ ク します。

2 ファ イルのダウンロード ダイアログボッ クスやそのほかのダイアログボッ クスに表示される [実行] ボタンをク リ ッ ク します。

表示されるダイアログボッ クスは、 セキュ リ テ ィの設定に依存します。

Page 310: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

Web ブラウザからのアプリケーシ ョ ンのインストールと実行

298 PowerBuilder Classic

Acme Update をインス トール ダイアログボッ クスが表示されます。Microsoft .NET Framework は、 コンピュータにすでにインス トールされているため、 このダイアログボッ ク スには表示されません。[追加設定] ボタンをク リ ッ クする と、 コンポーネン ト一覧にアプリ ケーシ ョ ンが必要とするすべてのコンポーネン トが表示されます。

ランタイム ライブラリ パッケージがインス トール済みの場合

Sybase PowerBuilder .NET ラ ン タ イ ム パッ ケージがすでにコ ンピュータにインス トールされている場合は、 コンポーネン ト一覧でこのパッケージのチェッ クボッ クスをオフにしてから [OK] をク リ ッ ク します。

3 Acme Update のインス トール ダイアログボッ クスの [インス トール] ボタンをク リ ッ ク します。

Sybase PowerBuilder .NET ラ ンタ イム と Acme Update アプ リ ケーシ ョ ンがコンピュータにインス トールされます。 ダイアログボック スに表示される指示に従い、 インス トールが完了したら AcmeUpdate のインス トール ダイアログボッ クスが閉じられます。

ポップアップで 「アプ リ ケーシ ョ ンの起動」 ウ ィ ン ド ウが表示され、 Acme Update アプリ ケーシ ョ ンが開かれ、 AcmeUpdate というラベルが付いたアイ コンがタ ス ク バーの通知領域に表示されます。

4 ユーザ ID の 「dba」 とパスワードの 「sql」 を入力します。

Page 311: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 299

5 アプ リ ケーシ ョ ンが正常に動作するこ とを確認するためのテス トを行います。

開発コンピュータ上の IIS サーバにほかのコンピュータがアクセスできる場合、 そのコンピュータを使用してク ラ イアン ト コンピュータ上でインス トールのテス ト を行う こ とができます。 これについては、 次の練習で説明しています。 次の練習に取り組む場合、 開発コンピュータ上のアプ リ ケーシ ョ ンを閉じます。 開発コンピュータで更新プロパテ ィのテス ト を行 う 場合、 アプ リ ケーシ ョ ンを開いたまま、 302 ページの 「アプ リ ケーシ ョ ンの更新」 に進みます。

Page 312: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

ほかのコンピュータへのアプリケーシ ョ ンのインストール

300 PowerBuilder Classic

ほかのコンピュータへのアプリケーシ ョ ンのインストール

現在の学習個所PowerBuilder でのチュート リアルの実行Solutions ディ レク ト リへのリソース ファイルのコピー.NET Windows フォーム ターゲッ トおよびプロジェク トの作成Windows フォーム ターゲッ トの配布と実行Web ブラウザへのアプリケーシ ョ ンの発行Web ブラウザからのアプリケーシ ョ ンのインス トールと実行

> ほかのコンピュータへのアプリケーシ ョ ンのインス トールアプリケーシ ョ ンの更新

Web ページ http://hostname/acmeupdate/publish.htm (hostname は開発コンピュータ名) から ク ラ イアン ト コンピュータにアプリ ケーシ ョ ンをイ ンス ト ールでき ます。 ク ラ イアン ト コ ンピ ュータは、 開発コ ンピュータにアクセスできなければなり ません。

1 ク ラ イアン ト コンピュータで、サーバ上の easdemodb120.db に接続する EAS Demo DB V125 という名前の ODBC システム DSN を作成します。

2 Internet Explorer を開き、 アプリ ケーシ ョ ンの発行ページ http://hostname/acmeupdate/publish.htm (hostname は開発コンピュータ名) に移動します。

3 前の練習で行ったのと同様に、 インス ト ールの リ ン ク部分を クリ ッ ク し、 ウ ィ ンド ウの [実行] ボタンをク リ ッ ク します。

4 Acme Update のインス トール ダイアログボッ クスの [インス トール] ボタンをク リ ッ ク します。

Sybase PowerBuilder .NET ラ ンタ イム と Acme Update アプ リ ケーシ ョ ンがコンピュータにインス トールされます。 ダイアログボック スに表示される指示に従い、 インス ト ールが完了してアプ リケーシ ョ ンが開かれたら、 Acme Update インス トール ダイアログボッ クスが閉じられます。

5 ユーザ ID の 「dba」 とパスワードの 「sql」 を入力します。

6 アプ リ ケーシ ョ ンが正常に動作するこ とを確認するためのテス トを行います。

Page 313: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 301

7 Acme Update 通知アイコンを右ク リ ッ ク し、使用可能な各メニュー項目を試します。

[更新プログラムの確認] を選択した場合、 利用可能な更新がないこ とを示すポップアップ ウ ィ ンド ウが表示されます。 次は、 アプリ ケーシ ョ ンの細部を変更してインテ リ ジェン ト更新をテス ト します。

Page 314: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの更新

302 PowerBuilder Classic

アプリケーシ ョ ンの更新

現在の学習個所PowerBuilder でのチュート リアルの実行Solutions ディ レク ト リへのリソース ファイルのコピー.NET Windows フォーム ターゲッ トおよびプロジェク トの作成Windows フォーム ターゲッ トの配布と実行Web ブラウザへのアプリケーシ ョ ンの発行Web ブラウザからのアプリケーシ ョ ンのインス トールと実行ほかのコンピュータへのアプリケーシ ョ ンのインス トール

> アプリケーシ ョ ンの更新

こ こでは、 アプ リ ケーシ ョ ンの背景色を変更し、 サーバに再発行してから、 通知機能のテス ト を行います。

1 開発コンピュータで、 w_pbtutor_basesheet を開き、 背景色プロパテ ィ を 「白」 から使用したい色に変更し、 保存してウ ィ ン ド ウを閉じます。

2 [デザイン|プロジェク トの配布] を選択するか、 またはペインタバーの [配布] ボタンをク リ ッ ク します。

PowerBuilder がアプリ ケーシ ョ ンを構築して配布します。

3 [デザイン|アプリ ケーシ ョ ンの発行] を選択するか、 またはペインタバーの [アプ リ ケーシ ョ ンの発行] ボタンをク リ ッ ク します。

PowerBuilder が更新されたアプリ ケーシ ョ ンを発行します。Inetpub\wwwroot\acmeupdate フォルダを確認する と、 1.0.0.0 および 1.0.0.1 サブディレク ト リがあ り ます。

Windows の [スタート] メニューからアプリケーシ ョ ンを開始する

アプ リ ケーシ ョ ンを実行していない場合は、 [スタート ] メニューから [すべてのプログラム| Acme, Inc. | Acme Update] を選択します。利用可能更新プログラム ダイアログボッ クスに、新しいバージ ョ ンの Acme Update が利用可能である とい う知らせが表示されます。 新しいバージ ョ ンをダウンロード した り、 [スキップ] をクリ ッ ク して古いバージ ョ ンを実行した りする こ とができます。 ここでは[スキップ]をク リ ッ ク し、この練習の次の手順に進みます。

Page 315: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

レッスン 13 PowerBuilder チュート リアルの Windows フォーム アプリケーシ ョ ンへの変換

PowerBuilder 入門 303

4 開発コンピュータかク ライアン ト コンピュータで、 Acme Update通知アイコンを右ク リ ッ ク し、 [更新ファ イルを確認] を選択します。

ポップアップ ウ ィンド ウに、 新しいバージ ョ ンの Acme Update がサーバにある という知らせが表示されます。

5 Acme Update 通知アイコンを再度右ク リ ッ ク し、 [更新プログラムを取得] を選択します。

アプリ ケーシ ョ ンの更新版がダウンロード されます。

6 Acme Update 通知アイコンを再度右ク リ ッ ク し、 [新しいバージ ョンで再開始] を選択します。

ウェルカム ウ ィンド ウが開きます。

7 ログイン情報を入力して [OK] をク リ ッ ク し、 顧客または製品のレポート を開きます。

背景色が指定した色に変更されています。

Page 316: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

アプリケーシ ョ ンの更新

304 PowerBuilder Classic

Page 317: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

PowerBuilder 入門 305

数字3D がデフォルト ウ ィンド ウ オプシ ョ ン 75

AASP.NET、 ユーザ権限の設定 268

CCHOOSE CASE 文 237Clicked イベン ト

CommandButton コン ト ロール 124, 126メニュー項目 166

Close イベン ト、 アプリ ケーシ ョ ン オブジェク ト 127

COMMIT 文 146Constructor イベン ト、 ユーザ オブジェク ト 113

DDBError イベン ト 142, 145DBParm パラ メータ 118DeleteRow 関数 146

EEAS Demo DB データベース

接続 97セッ ト アップ 27

GGetActiveSheet 関数 166

HHALT 文 126

IInsertRow 関数 146

MMDI アプリケーシ ョ ン 21

N.NET Web フォーム チュート リ アル 268.NET Windows フォーム チュート リ アル 285.NET アプリ ケーシ ョ ン 5.NET アプリ ケーシ ョ ンの構築 5

OOpen イベン ト

シート ウ ィンド ウ 149フレーム ウ ィンド ウ 91

PParent (PowerScript 代名詞) 119PBL (PowerBuilder ライブラ リ (PBL) を参照)Pcode (擬似コード) 252PowerBuilder ラ イブラ リ (PBL) 19PowerScript 6, 4PowerTips 9ProfileString 関数 114

索引

Page 318: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

索引

306 PowerBuilder Classic

QQuick Select

使い方 174

RRetrieve 関数

概要 145引数の指定 150

ROLLBACK 文 146RowFocusChanged イベン ト 148

SSELECT 文 183Select ペインタ

概要 182タブ領域 183

SetFocus 関数 145, 146SetRowFocusIndicator 関数 145SetTransObject 関数 149SQLCA (SQL 通信領域) 111, 149SQL Select データ ソース 181SQL 構文、 Select ペインタ 183SQL 文

COMMIT 146ROLLBACK 146SELECT 183

SQL ペインタ 181

TThis (PowerScript 代名詞) 149To-Do リ ス ト 108TRY-CATCH 文 237, 240

UUpdate 関数 146

WWHERE 句 184

あアイコン、 アプリ ケーシ ョ ン 43アプリ ケーシ ョ ン

MDI 21インターネッ ト 5構築 251実行 49定義 12デバッグ 211分散 5

アプリ ケーシ ョ ン オブジェク トOpen イベン ト 56アイコン 43, 46定義 12

アンパサンド、 メニュー項目のアクセラレータ キー 155

いイベン ト

Clicked 122, 166Close 127Constructor 113, 240DBError 142LoseFocus 240RowFocusChanged 148概要 4追加 237メニュー スク リプ トからの発生 166

うウ ィザード

接続オブジェク ト 107データウ ィンド ウ 173プロジェク ト 253

Page 319: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

索引

PowerBuilder 入門 307

ウ ィンド ウ応答 70概要 13コマンドボタン コン ト ロール 83コン ト ロールの削除 76サイズ 46作成 70スタティ ッ ク テキス ト コン ト ロール 78先祖 131タブ順序 85データウ ィンド ウ コン ト ロール 134ピクチャ コン ト ロール 76プレビュー 89保存 70

ウ ィンド ウ ペインタ、 コン ト ロールの削除 76

おオート スク リプ ト

シ ョート カッ トの設定 123使い方 124, 144

オブジェク ト指向 5

か拡張属性 106, 193カスタム ク ラス ユーザ オブジェク ト 19関数

DeleteRow 146GetActiveSheet 166InsertRow 146ProfileString 114Reset 146Retrieve 145SetFocus 145, 146SetRowFocusIndicator 145SetTransObject 149Update 146オブジェク ト レベル 17概要 4グローバル 17追加 237

くクエ リ 17ク リ ップ ウ ィンド ウ 7グローバル

関数 17構造体 18変数 115

グローバル変数の宣言 115

け継承

ウ ィンド ウ 131オブジェク ト指向プログラ ミ ング 5メニュー 159ユーザ オブジェク ト 134

検索引数WHERE 句 184作成 183

こ構造体 17コ メン ト

ウ ィ ンド ウ 73スク リプ ト ビュー 94データウ ィンド ウ 178, 189メニュー 160

コン ト ロールコマンド ボタン 83削除 76スタティ ッ ク テキス ト 78ピクチャ 76複製 78プロパティの指定 79, 82, 84

コン ト ロールの削除 76

しシート ウ ィンド ウ、 メニュー 159システム ツ リー 7

Page 320: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

索引

308 PowerBuilder Classic

実行ファイルアプリ ケーシ ョ ン アイコン 43, 46オブジェク トの再生成 256マシン コードの生成 252

出力ウ ィンド ウ 7状況依存ヘルプの追加 87初期設定ファイル

odbc.ini 98pb.ini 102pbtutor.ini 114

す垂直スクロールバー 139スク リプ ト

エラー ウ ィンド ウ 96オート スク リプ トの使い方 124, 144オート スク リプ ト用のシ ョート カッ トの設定

123概要 4コンパイル 96ユーザ イベン ト 143

スク リプ ト ビューエラー ウ ィンド ウ 96形式を指定して貼り付けコマンド 122コ メン トの使用 94説明 87プロ ト タイプ 145

スク ロールバー、 垂直 139スタイルバー 9

せ接続サービス マネージャ 107先祖ウ ィンド ウ 131

たターゲッ ト 6代名詞、 PowerScript

Parent 119, 120

This 149タブ順序 85タブラ提示様式 174

ちチュート リ アル

初期設定ファイル 114セッ ト アップ 28ファ イル 28

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

つツールバー

実行時のアプリ ケーシ ョ ン 164テキス トの表示 65

て提示様式

タブラ 174データウ ィンド ウ オブジェク ト 174, 181フ リーフォーム 181

データウ ィンド ウ オブジェク トQuick Select でのカラムの選択 174WHERE 句 184概要 14, 171拡張 190カラムの再配置 190カラムの整列 191検索引数 183作成 174, 181提示様式 174, 181データウ ィンド ウ コン ト ロールへのアタ ッチ

196, 199, 205データ ソース 174, 181表示順序 175保存 178, 188

データウ ィンド ウ オブジェク トでのカラムの整列 191

Page 321: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

索引

PowerBuilder 入門 309

データウ ィンド ウ オブジェク トのカラム再配置 190整列 191

データウ ィンド ウ オブジェク トのサマ リー区域 172

データウ ィンド ウ オブジェク トの詳細区域 172データウ ィンド ウ オブジェク トのフッ タ区域

172データウ ィンド ウ オブジェク トのヘッダ区域

172, 176データウ ィンド ウ コン ト ロール 134データウ ィンド ウ データ式 150データウ ィンド ウ ペインタ

WHERE 句 184区域 172検索引数 183

データ ソースQuick Select 174SQL Select 181

データベース拡張属性 106実行時の接続 111接続 5データの検索、 表示および操作 14表定義 102

データベース接続概要 5, 98ト ランザクシ ョ ン オブジェク ト 111

データベース プロファイル 98データベース ペインタの使い方 102デバッグ

ウォッチの設定 223概要 211コードのステップ実行 217デバッグ モードでの実行 217ブレークポイン トの追加 212

とト ランザクシ ョ ン オブジェク ト 111, 149ド ロ ップダウン データウ ィンド ウ編集様式 193ド ロ ップダウン メニュー

項目の追加 154

説明 17

は背景色、 ウ ィンド ウ 71パワーバー 8

ひビジュアル ユーザ オブジェク ト 18非ビジュアル ユーザ オブジェク ト 19ビュー

固定 61スタ ッ ク 61操作 58タイ トル バーの固定 60浮動 61レイアウ トの保存 62

ビューの固定 61ビューの種類

HTML プレビュー (データウ ィンド ウ ペイン

タ) 177Syntax (Select ペインタ) 183オブジェク ト (データベース ペインタ) 102オブジェク トの詳細 (データベース ペインタ)

105オブジェク ト レイアウ ト (データベース ペイ

ンタ) 104スク リプ ト 87テーブル レイアウ ト (Select ペインタ) 182デザイン (データウ ィンド ウ ペインタ) 172プレビュー (データウ ィンド ウ ペインタ)

177プレビュー (メニュー ペインタ) 154プロパティ 71レイアウ ト 71

標準ク ラス ユーザ オブジェク ト 19

Page 322: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

索引

310 PowerBuilder Classic

ふ浮動

ツールバー 65ビュー 61

フ リーフォーム提示様式カラム 190データウ ィンド ウ定義 181

ブレークポイン ト 212フレーム ウ ィンド ウ 91プロジェク ト ウ ィザード 253

へペインタ 7ペインタバー

コン ト ロールの追加 74使い方 9ポップアップ メニュー 65

ヘルプ状況依存メ ッセージ 87マイク ロヘルプ 162

編集様式、 ド ロ ップダウン データウ ィンド ウ 193変数

gnv_connect 115インスタンス 115グローバル 115命名規約 115

ほポップアップ メニュー

概要 65ペインタバー 65

まマイク ロヘルプ 162マウスの右ボタン、 ポップアップ メニュー 65マシン コード 252マネージャ、 接続サービス 107

めメ イン ウ ィンド ウのサイズ 46メニュー

概要 16継承 159作成 159スク リプ トの追加 166ツールバー 156, 164バー 16保存 160メニュー項目 154

メニュー ペインタの使い方 154

ゆユーザ イベン ト

スク リプ トの追加 143定義 143メニュー スク リプ トからの発生 166

ユーザ オブジェク ト概要 18使い方 134

らラ イブラ リ

アプリ ケーシ ョ ンの探索パス 132オブジェク トの再構築 152概要 19動的 252

れ例外

送出 237捕捉 240ユーザ定義 235

Page 323: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

索引

PowerBuilder 入門 311

わワークスペース 6

Page 324: PowerBuilder 入門 · 目次 vi PowerBuilder Classic ラベルとカラムの整列..... 191 ドロップダウン データウィンドウ編集スタイルの

索引

312 PowerBuilder Classic