PowerBuilder - 技術資料と基礎知識

■公式資料
国内代理店が日本語化されたリファレンスをこちらのページで公開している。
PBはバージョンによって結構挙動が違うので、使用しているバージョンにあわせたリファレンスを参照すること。

まずは入門者向けとして下記ドキュメントを参照することを推奨。

  • PowerBuilder 入門

    これで基本的な操作方法等は学べるはず。
    ただあまりとっつきやすい感じではないので、会社に独自の資料等があるのであればそちらを先に読んでからでも遅くはないと思われる。

     

    PBを扱う上で必要な知識については、下記3ドキュメントで網羅していると思われる。

  • ユーザーズ ガイド
  • データウィンドウ プログラマーズ ガイド
  • アプリケーション テクニック

    というか今「アプリケーション テクニック」を読んでみたら、改めて先に読んでおけばよかったと思う記述がたくさんあって軽く後悔してたりする。

  •  

    残りはリファレンス類で、関数等で分からないことがあった時にヘルプと併用して検索するとよさそう。
    関数の説明がひたすら書いてあるだけなので単体で読んでも面白くない。

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

    その他にもドキュメントのPDFが公開されているので、必要に応じて確認すること。

     

    ■その他、技術的に役に立ちそうなサイト(日本語)

  • 日本コンピュータシステム株式会社 技術情報
    PBの国内総販売代理店が公開しているQ&A情報。情報量はかなり多いのでお世話になることがとても多い。

  • Power Space | PowerBuilderサポート | パワーフューチャー株式会社
    つい最近見つけたんだけど、PBに関する掲示板的なサイト。要会員登録。

  • 全ては時の中に... : PowerBuilder
    PBの技術ネタがいくつか投稿されているブログ。ググっていると割とヒットする。

  • PowerBuilderの基本 - 元「なんでもエンジニ屋」のダメ日記
  • PowerBuilderに関する疑問点
    あとはちらほら見つかるメモ的な資料。

     

    このへんを調べても見つからなかったら、後はGoogle先生を信じるしかない。英語で検索すれば結構情報はあるから安心して。

     
    ■関数、メソッド、式
    基本的には冒頭で紹介した4ドキュメントで全て事足りるんだけど、分かりにくい所が結構あるので簡単に紹介しておく。

    冒頭で紹介した公式リファレンスやPBのヘルプに出てくる関数類には、
    ・各イベント発生時に実行される「PowerScript function(関数)
    と、
    ・データウィンドウに対して実行する「DataWindow method(メソッド)
    と、
    ・データウィンドウ内で使用できる「DataWindow expression function(Datawindow式)
    の3つに分かれる。

    同じ名称でも、PowerScriptの関数とデータウィンドウに使用するメソッド、データウィンドウの各プロパティに対して使用できるDatawindow式で使い方が異なる場合があるため、リファレンスやヘルプを参照する際は注意すること。

     

    ■PowerScript function(関数)とDataWindow method(メソッド)

    PowerScript function(関数)」は、前述のとおり、各イベント発生時に実行される処理を書く際に使用する。
    たとえば、「cb_getdata」というボタンを画面に配置し、そのボタンのClickedイベントに下記PowerScriptを記述すると、
    ボタン押下時にデータベースからデータを取得してデータウィンドウに格納し、そのデータを画面表示することができる。
    このうち、データウィンドウに対してアクションを行うメソッドは「DataWindow method(メソッド)」と呼ばれる。

    //////////////////////////////////////////////////////
    //
    // 処理 : cb_getdata.Clicked
    // 説明 : DBよりdw_1にデータを取得し、画面に表示する
    //
    ///////////////////////////////////////////////////////
    // 変数定義
    Integer li_ret
    //================================================================================
    // 初期処理
    //================================================================================

    //SQLCAを通してデータベースに接続する
    CONNECT USING SQLCA;

    //データウィンドウのトランザクションオブジェクトをSQLCAに設定する
    dw_1.SetTransObject(SQLCA)

    //dw_1に記述されたSQLを発行し、DBのデータをデータウィンドウに取得する
    //Retrieveするだけで画面表示までやってくれる
    li_ret = dw_1.Retrieve()

    //取得データが0件ならメッセージを出す
    IF li_ret = 0 THEN
    Messagebox("お知らせ","データが取得できませんでした。")
    END IF

    この例で言うと、dw_1というデータウィンドウに対して実行している dw_1.SetTransObjectdw_1.Retrieve が「DataWindow method」

    メッセージを出しているMessagebox が「PowerScript function」である。

     

    ■DataWindow expression function(Datawindow式)

    「DataWindow expression function(Datawindow式)」は、データウィンドウの各プロパティに対して記述する表現で、
    データウィンドウに取得したデータの内容に応じて画面に表示する方法を変更したり、色を変えたりすることが可能。

    設定方法は、データウィンドウ ペインタのプロパティウィンドウ内にある「」ボタン(右の赤い小さい奴)をクリックし、そこに条件式を入力する。

    赤色の≠は未入力、緑の=は式が入力されていることを示す

    たとえば、データウィンドウに取得したデータのうち、「社員名」という項目(カラム)の一行目のデータだけ文字色を赤色にしたい場合、
    データウィンドウの編集ペインタを開き、「社員名」カラムを選択した状態でプロパティビューの「フォント」タブを表示し、
    「文字の色」プロパティの右下にある「≠」ボタンをクリックする。


    ↑新しいバージョンでは水色になっている。

    すると 社員名.Color というプロパティに対する式を入力するダイアログウィンドウが表示されるので、そこに


    IF(GetRow() = 1,RGB(255,0,0),RGB(255,255,255))

    と入力する。

    DUfWW.jpg
    ↑こんなダイアログウィンドウ。個人的に開発環境を持っているわけではないので、拾い画像で勘弁してください。

    GetRow()は「DataWindow expression function」で、DWの現在の行番号を返す。
    つまり、1行目のデータのみ「GetRow() = 1」という条件式が成立し、真の場合は文字色にRGB(255,0,0)つまり赤がセットされ、偽の場合は文字色にRGB(0,0,0)つまり黒がセットされる。

    このように、「DataWindow式」を用いれば、データウィンドウに取得したデータの内容に応じて表現方法を変えたり、表示/非表示を切り替えたり、x座標/y座標を変更して表示位置を変えたり、色々な表現が可能になる。
    PowerBuilderで少し凝った画面を作る際はこのDW式がキモなので、どのプロパティにどんなDW式が使えるかを覚えていくとよい。

  • コメントする