[PowerBuilder] タブラ様式のデータウィンドウコントロールにプロパティを設定する

データウィンドウの様式と、タブラ様式のデータウィンドウでよく使うプロパティ設定について。

 

データウィンドウ(DW)の様式について

DWにはいくつかの様式があり、DWが持つデータをどのように表現したいかによって好きな様式を選ぶことができる。

例えばグラフとか、一覧表示(タブラ)とか、フリーフォームとか...同じデータを持つDWでも、様式が変わると見え方が全く異なってくる。

個人的に一番よく使ったのが一覧表示に適しているタブラ様式。(他の様式については追って解説する予定)

 

 

タブラ様式

タブラ様式のデータウィンドウは、ヘッダーおよび複数のデータ行によって構成されており、データの一覧表示に適した様式。

複数件あるデータを画面に一覧表示させたり、一覧表として紙に印刷するのに適している。

 

タブラ様式のプロパティ設定

DWペインタ内に配置したボタンやカラムなどのコントロールをクリックするとプロパティウィンドウ(下記画像右側のタブがあるウィンドウ)が出現する。ここで各プロパティを設定する。

プロパティには表示するかどうか、無効化、枠線、背景色などなど多数の種類があり、チェックボックス(有効/無効)や、ドロップダウンから選択する。

また、そのプロパティ値を行ごとに動的に切り替えたい場合は、プロパティウィンドウの右にあるボタン(右下の小さい奴)をクリックする。

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

バージョンによって「」ボタンの見た目は違うが、ここにクリックすると条件式の入力ウィンドウが表示される。

DUfWW.jpg

ここに様々な条件式を入力することによって、そのコントロールのプロパティ値を行ごとに動的に切り替えることができる。

 

表示するかどうかを動的に切り替える:

「表示可能」プロパティの右にある「」をクリックして下記のように条件式を入力する。

//新規追加行の場合は表示する(「行削除」ボタンとか)
IF(IsRowNew(),1,0)

//変更が加えられた行にだけ表示する(「元に戻す」ボタンとか)
IF(isRowModified(),1,0)

 

プロテクト設定を動的に切り替える:

「プロテクト」の右にある「」をクリックして下記のように条件式を入力する。

//新規行なら編集可能、既存行は編集不可にする
IF(IsRowNew(),0,1)

 

枠線を動的に切り替える:

「枠」の右にある「」をクリックして下記のように条件式を入力する。

//新規行の枠は5(3D凹)、既存行は枠線なし
If(IsRowNew(),5,0)

 

computeカラムでも使用可

上記例で使った条件式はcomputeカラムでも使用可能。例えばcomputeカラムを作成し、

 IF(isRowModified(),1,0)

と入力すれば、その行が変更されていれば1、変更されてなければ0がcomputeカラムにセットされる。

PowerscriptのGetItemStringを使ってこのcomputeカラムの値を取得し、行の状態を判断して処理分岐させるのに便利。

//行のステータス確認用のcomputeカラム(新規追加:1、変更:2、以外:3)
IF(IsRowNew(),1,IF(isRowModified(),2,0))

//IFではなくcaseを使ってより複雑な条件設定を与えることも可能。
case(閾値設定区分 when '2' then "以上" when '1' then "より小さく" when '0' then "指定なし")

 

色の指定

色を切り替えることもできる。

//エラーがある行の背景を薄いグレーにする
IF(エラーFLG = 1,536870912,10789024)

//削除フラグが0なら背景を透明に、それ以外なら薄いグレーに
IF(削除フラグ='0',536870912,10789024)

※透明を表す色設定は「536870912」。データウィンドウのみ指定可能。

コメントする