[Powerbuilder] Tips: CHOOSE CASEでNullを判定したい

C系列ならSwitch、VBならSelect Case文に相当するもの。PowerBuilderではCHOOSE CASE文を使う。

HELPには下記のような例文があるが、

CHOOSE CASE Weight
CASE IS<16
 Postage=Weight*0.30
 Method="USPS"
CASE 16 to 48
 Postage=4.50
 Method="UPS"
END CHOOSE

ここに

 CASE IS NULL
とか
CASE NULL

と書いてもコンパイルエラーになる。どうやらこの書き方ではNull判定できない様子。

[PowerBuilder] Datawindow式でよく見るチルダと引用符について

PowerBuilderの引用符について

の記事でも少し触れたが、Modifyメソッドに渡すパラメータ文字列を作成する際、チルダを用いた引用符の扱いが非常に面倒くさい。

ls_modify = "r_" + String(ll_i) + ".visible='1~tIF(結果" + String(ll_i) +" = ~~'~~', 1, 0)'"
dw_4.Modify(ls_modify)

↑こういうやたら~が多いやつ

 

理解するにはなかなか難しいのだが、一つ例を出してこの引用符について説明したい。

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

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

 

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

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

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

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

[PowerBuilder] データウィンドウのプロパティ値を設定する方法

PowerBuilderでデータウィンドウのプロパティ値を取得/更新する場合、

  • 専用のメソッド(DescribeとModify)を用いて取得/更新する方法
  • プロパティ式を使ってDWのプロパティ値を直接参照/更新する方法

の2つがある。

DescribeとModifyを使う方法は前回の記事で説明したため、今回はそれと対比しながら直接DWオブジェクトに設定する方法を紹介する。

 

DescribeとModifyを使う方法

前回説明したが、DWのプロパティを取得するDescribeメソッドと、プロパティを更新するModifyメソッドがある。

 例)
//dw_1が持つempnameというオブジェクトのBorderプロパティ値を取得
dw_1.Describe("empname.Border")

//dw_1が持つempnameというオブジェクトのBorderプロパティ値に1をセット
dw_1.Modify("empname.Border=1")

詳細については前回の説明を見てほしい。

[PowerBuilder] DescribeとModifyでデータウィンドウのプロパティ値を設定する

長らく死蔵していたPowerBuilderネタの下書きを発見したのでUPしておく。今更役に立つかは分からないけど。

 

DescribeとModify

DescribeとModifyは、データウィンドウが持つ各種プロパティを取得・変更するメソッドである。

例えば、下記でdw_2というDWのSQL SELECT文を取得できる。

ls_sql_text = dw_2.Describe("Datawindow.Table.Select")

また、下記でdw_2に新たなSQL文をセットすることができる。

dw_2.Modify("DataWindow.Table.Select=~"" + ls_sql_text + "~"" )

[PowerBuilder] タイマー処理

タイマー処理を使用すると、指定した秒数ごとに処理を繰り返し実行することができる。
例としては、1分ごとに自動でデータを再取得して画面のグラフを再表示したり、タイムアウト処理に使ったり。

 

タイマーには2種類ある

このタイマー処理には2種類あり、ひとつはウィンドウが持つtimerイベント、もう一つがtimingユーザーオブジェクト。

前者はウィンドウが持つイベントのため実装が楽だが1ウィンドウにつき1つのみという制約がある。
後者は制約はないが、別途ユーザーオブジェクトを作成しないといけないのがやや手間だ。

[PowerBuilder] ドロップダウンデータウィンドウ

ドロップダウンデータウィンドウ(DDDW)は、データウィンドウの項目(カラム)の編集様式の一つ。
DBからデータ取得したDWはコード(内部値)しか持たないが、画面にはそのコードに対応した名称(外部値)を別のマスタから取ってきて表示したい場合に便利な機能。

 

実例

  • 社員マスタDW (画面に表示するためのDW)
社員ID 社員名 部署ID 住所
0001 1太郎 A0001 ~~~~
0002 2次郎 A0001 ~~~~
0003 3三郎 B0001 ~~~~

 

  • 部署マスタDW部署IDに対応する名称を保持するマスタ)
部署コード 名称
A0001 東京本社
B0001 名古屋支社
C0001 大阪支社

 

上記2DWを例とすると、

社員マスタDWをそのまま画面に表示すると、部署IDは「A0001」とか「B0001」とかコードのまま表示されてしまう。