パワービルダー(PowerBuilder)という製品というか言語について。
仕事で2年近く触ったけど、日本語の情報がかなり見つけにくくて苦労したので記憶に残っているうちにまとめておく。
一応PBなんて全く知らないのに開発をする羽目になってしまった人向けに書くつもりだけど、自分も2年弱しか触っていないので簡単にしか書けないかも。
PowerBuilder概要
ざっくりとした説明はこちらの記事にまとめられているので参照。
参考リンクにも有用な解説があるので概要の把握にはよさそう。こちらも。
マイナーだけどそれなりに歴史があるため、ネット上の文献はゼロではない。
自分は触ってみないと分からない人間なのであまりイメージ出来なかったけどww
独断と偏見でのイメージをいくつか挙げると、
- コテコテのクラサバアプリケーション開発向けの言語・IDE(新バージョンでは.NET連携やWebも一応可能らしい)
- 一言で例えるのはとても難しいけど、一覧/明細画面や帳票出力に特化したVB6.0、Access VBAっぽい雰囲気。
- 日本コンピュータシステム株式会社が国内総販売代理店。
- 公式Webサイトには技術情報がそこそこ公開されているが、それ以外の日本語の情報は少ない。
- 歴史は長いので、英語が読めるならググればStackOverFlowやGoogle Group等に結構色々と情報はある。
- 中国語の情報もちょいちょいあるけど流石に読めない。
もう少し言語としての特徴を書くと
- イベント駆動型で、各イベントに処理を書いていく。
例)ボタン押下イベントに別ウィンドウを開く処理を書く、文字入力イベントに入力内容をチェックするロジックを書くetc
- オブジェクトの継承ができるので、先祖ウィンドウにある程度ベースの共通機能を作って、他のウィンドウを作るときにベースのウィンドウを継承すれば工数削減できる。
部品の方をユーザーオブジェクト(モジュール)化して、複数の画面で使いまわすことも可能。
- データウィンドウ(DW)を駆使する
PBのもっとも特徴的な機能。データ取得&格納オブジェクト兼、画面表示部品。データ取得から画面表示までDWにお任せあれ。このDWがウィンドウのほとんどを占める。
DBからSQL等で取得したデータを一時的に格納し、そのままリストや明細形式で画面に表示したり、グラフ表示したり。画面に出したまんまのものを帳票として出力することも可能。
画面に入力した内容でそのままDBへ追加/更新/削除もできるので、一覧画面、明細画面、ベタメンテ画面とかならかなり簡単に作れる。
↑データウィンドウの例(オンラインヘルプより)
上のグリッド形式のDWがひとつと、下にグラフ形式のDWが3つ。
1つのDWで取得したデータを4つのDWで共有し、画面表示している。
↑もうひとつ(オンラインヘルプより)
上にリスト形式のDWがあり、ここで選択したアイテムの明細が下の明細形式のDWに表示される。
後は更新ボタンを追加してやれば、簡単なマスタメンテ画面になる。
更にもう少し具体的に書くと
使用例)
①DWにSQL文を書いて
②そのSQLでDBから今月分の受注データをDWに取得し
③DW内で支店ごとにグループ化して明細・小計を表示して
④DWのフッターに総合計と各種分析値を表示して、
⑤DWのヘッダーにはタイトルと年月日を表示した状態で画面に表示し、
⑥それらの内容をワンクリックで帳票にも印刷できる
みたいな処理を1つのデータウィンドウで可能。
または
①DBから取得した各項目(カラム)をそのままテキストボックスとして画面に配置し
②そこに入力されたデータでDBをUpdateする、
みたいなことも可能。
項目(カラム)ごとに表示形式(日付フォーマット、数値フォーマット等)を変更したり、とある項目だけリストボックス形式やラジオボタンとして表示したり、幅広い表現が可能。
さすがに画面の雰囲気とかグラフの感じとか、古臭さは否めないけど。
Enterprise版だと.NETと連携したりWeb Formにできたりするらしい。
ベタベタのネイティブPBしか触ったことはないので詳細は不明。
昔からずっとPBで開発してきたシステムがリプレースされずに残っている場合とかはまだありそう。
結構クセがあるので慣れるまでは色々苦労するけど、慣れたらそこそこ使いやすい。
でも思わぬ所に落とし穴が多くあってやっぱり使いづらい。穴が開くぐらいヘルプを見ないと死ぬ。見ても死ぬ。ヘルプ読みづらいし。
WindowsのAPIを呼び出したりDLL呼んで機能拡張したり、デフォルトの機能は不安だけど力業で割と何でもできてしまうので便利なのか不便なのかよく分からない言語。
一応公式の紹介文を
日本の代理店が公開していたっぽい文章とオンラインヘルプの内容を統合して、それっぽい紹介文をでっちあげてみた。
初っ端からちょっと長くなってしまったので、次からはもう少し技術的なことを書いていきたいな...。
- PowerBuilderは、GUI(グラフィカルユーザインターフェイス)で操作するアプリケーションソフトの開発環境を提供するソフトウェアです。
クライアント・サーバアプリケーションをはじめ、分散アプリケーション、WWWサーバを活用したインターネット・アプリケーションなど、データベースを操作するソフトウェアの開発に大きな力を発揮します。
- PowerSoft製品、現在Sybaseがメーカー
1994年11月14日: SybaseがPowerSoftを買収
1996年7月: 収益減少の責任を取って Mark Hoffman がCEOを退任、 PowerSoftのCEOだった Mitchell Kertzman を後任に任命
- PowerBuilderのGUI(グラフィカルユーザインターフェイス)
PowerBuilderのGUIは、ウィンドウ上に各種コントロールを配置して構成します。
各UIにロジック(処理)をコーディングできるほか、カスタムクラスユーザオブジェクトにモジュールとしてコードを記述し、複数のウィンドウで使いまわすことも可能。
- イベント駆動型プログラミング
PowerBuilderアプリケーションでは、ユーザが操作した内容に応じてイベントが発生します。
たとえば、ボタンにはClickedイベントがあったり、テキストボックスにはModifiedイベントがあったりする。
基本的には既定のイベントだけで事足りるが、ユーザー自身でイベントを定義することも可能である。
※オブジェクトが作成されたら発生するConstructorイベントや、フォーカスが当たったら発生するGetFocusイベントなど、そこそこ種類がある。
ユーザ定義イベントを作成すれば、キー押下時のイベントを拾って特定のキーを無効化したり色々できる。
- PowerScript言語
PowerBuilderは、PowerScript言語で処理を記述します。 PowerScript言語はPowerBuilder独自の言語です。
VBA(VisualBasic for Application)と類似点が多く、またC++の一部の機能を取り込んだ雰囲気を持っています。
詳細については、マニュアルまたはPowerBuilderオンラインブック、もしくは PowerScriptガイド を参照して下さい。
- データベースとの接続
PowerBuilderは、Oracle,Sybase,MS SQLServer等、著名なデータベースとの接続をサポートしています。
データベースとの接続には、ネィティブデータベースインターフェイスによる接続とODBCドライバ経由での接続の二種類があります。
PowerBuilderの製品によって、サポートする接続が異なりますので注意して下さい。
- オブジェクト指向プログラミング
PowerBuilderは、オブジェクト指向プログラミングをサポートしています。
PowerBuilderのウィンドウ,メニュー,その他のコントロールは、独立したオブジェクトになっており、
それぞれのプロパティ・メソッド・イベントを持っています。
オブジェクト指向プログラミングの機能を活用することで、再利用性・生産性の高いアプリケーション開発が可能になります。
以上。やっぱり実際に触ってみないとイメージし辛いよね。
コメントする