みなさん、こんにちは!
このブログは、「PowerBuilder ってなに?」、「PowerBuilder って何ができるの?」という疑問に、IT 用語の解説もしつつ、簡単に分かりやすくお答えすることをモットーにしています。
気になる方はぜひ続きを見てみてくださいね。
ねこぴ
PowerBuilder レクチャーのキャラクター。
(猫に見えるが)PowerBuilder の先生。
ゆる~く楽しく!がモットー。
ちまき
PowerBuilder をこれから学びたい開発初心者。
ITの知識はちょっとあるようなないようなレベル。
YouTube では、この PowerBuilder 入門シリーズの動画版を公開しています!
動画版では、実際の PowerBuilder の画面操作をしているところを確認しながら進められるので、より理解力が深まります。
あわせてぜひご視聴ください!
♪らららら~
♪あなたとお~ここから始まる Wednesday~
なんですかその歌!
なんで水曜日?
アニソンだにゃ。奥が深いにゃ。
水曜日というのは月曜日からは何日か経ったけど、土日までも微妙に遠い何とも言い難い曜日だにゃ。
まあそう考えると奥が深いですよね・・・
前回は データウィンドウ内のデータ更新とその確認 Part 6 でしたよね!
君も今日からアニソンガールになるといいにゃ。
今回は前回からガラッと変わり、ユーザーオブジェクトについて学んでいくにゃ。
私はアニソンのみならず歌謡曲、ロック、K-POP だって聞きますよ。
なんならロックライブで頭降ってますよ。
えええええええ!rrrrrrrrrrrrrrrrrock!!!(?)
前回のブログでは「記入漏れがある更新時のエラー表示」について解説していきました。
今回はテーマがガラッと変わってユーザーオブジェクトについて解説していきたいと思います。
PowerBuilder って何なの?と思ったあなた!
PowerBuilder 入門シリーズの第 1 弾ブログをぜひご覧ください(^◇^)
ユーザーオブジェクトとは簡単に言うと 1 か所だけでなく、いろんなところに応用したい動作を 1 つのオブジェクトとして保存しちゃえ!というコンセプトです。
これはまさに「オブジェクト指向」に基づいたコンセプトだと言えますね(・ω・)ノ
「オブジェクト指向」は、オブジェクトごとに管理することで、修正や変更が簡単にできるということでした。
なので、動作もオブジェクトにまとめて管理してしまおうという感じですね。
これでいつでもどこからでも、必要な時にわざわざコードを書かなくても、オブジェクトを呼び出して使えるというわけです。
いつでもどこからでも呼び出して使える・・・まるでロボットや AI のようですね。
そんなオブジェクトを、ユーザー自身で作成するので、「ユーザーオブジェクト」という総称になっています。
実はユーザーオブジェクトには、クラスユーザーオブジェクトとビジュアルユーザーオブジェクトの 2 つの主な種類があります。
クラスユーザーオブジェクトは、非ビジュアルオブジェクトとも呼ばれます。
まずはクラスユーザーオブジェクトから解説していきます。
クラスユーザーオブジェクトはプロパティと関数で構成されるオブジェクトです。
どういうことかといいますと、「画面での表示機能は持たないオブジェクト」というと想像しやすいでしょうか。
そんなクラスユーザーオブジェクトはさらに以下の 2 種類に分けられます。
標準クラス
Transaction や Error など非ビジュアルの PowerBuilder オブジェクトを継承し、機能を独自定義します。
カスタムクラス
特定のオブジェクトを継承せずに、機能を独自定義します。
この 2 つのユーザーオブジェクトは、IDE 上のメニューバーの「ファイル」-「新規作成」-「PB オブジェクト」、もしくはパワーバーから「新規作成」- 「PB オブジェクト」を開いていただくと確認できます。
次にビジュアルユーザーオブジェクトについて解説していきます。
これはそのままですが、ビジュアル = 形を持つオブジェクトということになります。
ビジュアルユーザーオブジェクトはさらに以下の 3 種類に分けられます。
標準ビジュアル
標準的なコントロール(コマンドボタンやシングルラインエディットなど)を継承し、機能を独自定義します。単一コントロールとして作成します。
カスタムビジュアル
標準的なコントロール(コマンドボタンやシングルラインエディットなど)を複数使用して、1つの機能を独自定義します。
外部ビジュアル
PowerBuilder 以外のシステムで作成された機能を DLL 経由で定義します。
この 3 つのユーザーオブジェクトは、以下「PB オブジェクト」タブの右側にあります。
まずはクラスユーザーオブジェクトの作成から解説していきます。
新規作成からカスタムクラスを作成してみましょう!
それでは「新規作成」-「PB オブジェクト」タブ – 「カスタム クラス」を選択します。
こちらの画像を確認すると、画面作成時にいつも見かける「レイアウト」タブがありません。
カスタムクラスは形を持たず、機能だけを有するオブジェクトでしたね( ˘ω˘ )
どんなイベントや機能を有しているかについてのタブはあります。
ただ「イベントリスト」や「関数リスト」を見ると、基本的な機能しか備わっていないので、ユーザーが自分で定義できるという訳ですな(^O^)
でもなぜこういった “見えない” オブジェクトが必要なのか?
ユーザーに見せないように裏でコソコソ処理したい場合には、オブジェクトに見た目は必要ないですよね。
ウィンドウなどの見た目を削ると処理も高速化できるので、そのような時に見えないオブジェクトは便利なんです!
続いて標準クラスを作成してみましょうか!
「PB オブジェクト」タブから「標準クラス」をクリックしてみましょう(`・ω・´)ゞ
そして継承元のデータ型を選びますが、今回は「datastore」を選択してみます。
「datastore」(データストア)は、見た目が無いデータウィンドウです。見た目が無いのでユーザーによる手入力などは行えませんが、検索や更新、スクリプトによる値の入力など、データウィンドウと同じメソッドやプロパティが用意されているので、データウィンドウの特長を生かしたいけどユーザーには見せたくないといった処理の実行時に利用すると便利なのです。
イベントリストや関数リストを参照すると、データストアに備わっている機能を確認することができます。
続いてビジュアルユーザーオブジェクトについてです。
代表して標準ビジュアルとカスタムビジュアルを作成していきます。
「新規作成」-「PB オブジェクト」タブ – 「標準ビジュアル」を選択します。
[OK] をクリックすると、下記のようにデータ型の選択画面が表示されます。
今回は「エディットマスク」を選んでみます。そうすると・・・?
「エディットマスク」が確認できますね!
先ほどの datastore とは違い、ビジュアルユーザーオブジェクトなので見た目のカスタマイズができます。
イベントリストや関数リストを参照すると、エディットマスクに備わっている機能を確認することができますね。
たとえば、このエディットマスクに、独自の機能を設定してウィンドウやユーザーオブジェクトに配置すれば、あらゆる場所で同じ機能を持つエディットマスクが利用できるようになる、ということになります!便利でしょ?
続いてカスタムビジュアルを作成しましょう(^o^)
「新規作成」-「PB オブジェクト」タブ – 「カスタム ビジュアル」を選択します。
カスタムユーザーオブジェクトは基になるデータ型を選択する場面はありません。
なぜなら、カスタムユーザーオブジェクトは、コントロールが集まった一つのブロックとして、エディットマスクなどの複数のコントロールを自由に配置して作成するものだからです。
こちらのようによく使う項目 (コントロール) のセットを作成することで、様々な場面でこのセットを使用できるようになります。
なるほど・・・!
つまり、ユーザーオブジェクトは自分で機能を設定し、どこにでも応用的に使えるオブジェクト、ということですね!
そゆことだにゃ。
まさにオブジェクト指向に沿っているにゃ。
・ユーザーオブジェクトは、クラスユーザーオブジェクトとビジュアルユーザーオブジェクトの 2 種類
・クラスユーザーオブジェクトは機能のみ、ビジュアルユーザーオブジェクトはビジュアルと機能
・どちらも作成しておくことで、アプリ開発時にタイムリーに使用でき、アプリの処理高速化も図れる
こちらのブログシリーズ次回の記事はこちら↓↓