画面にテキスト入力コントロールを配置する時
- Windowコントロールのテキストボックスを配置するか
- DWを配置してその中にカラムを配置するか
...どっちの方がいいのかよく悩む。
コンピューター、プログラミング、モバイル、ガジェットなどエレクトロニクス分野を中心にネタを提供するウェブサイトです。最近は中国ネタにも注力中。かつてはHWD15向けのAndroidアプリ「HWD15 Status Notifier」を作ってたりしていました。
画面にテキスト入力コントロールを配置する時
...どっちの方がいいのかよく悩む。
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判定できない様子。
の記事でも少し触れたが、Modifyメソッドに渡すパラメータ文字列を作成する際、チルダを用いた引用符の扱いが非常に面倒くさい。
ls_modify = "r_" + String(ll_i) + ".visible='1~tIF(結果" + String(ll_i) +" = ~~'~~', 1, 0)'"
dw_4.Modify(ls_modify)
↑こういうやたら~が多いやつ
理解するにはなかなか難しいのだが、一つ例を出してこの引用符について説明したい。
データウィンドウの様式と、タブラ様式のデータウィンドウでよく使うプロパティ設定について。
DWにはいくつかの様式があり、DWが持つデータをどのように表現したいかによって好きな様式を選ぶことができる。
例えばグラフとか、一覧表示(タブラ)とか、フリーフォームとか...同じデータを持つDWでも、様式が変わると見え方が全く異なってくる。
個人的に一番よく使ったのが一覧表示に適しているタブラ様式。(他の様式については追って解説する予定)
PowerBuilderでデータウィンドウのプロパティ値を取得/更新する場合、
の2つがある。
DescribeとModifyを使う方法は前回の記事で説明したため、今回はそれと対比しながら直接DWオブジェクトに設定する方法を紹介する。
前回説明したが、DWのプロパティを取得するDescribeメソッドと、プロパティを更新するModifyメソッドがある。
例)
//dw_1が持つempnameというオブジェクトのBorderプロパティ値を取得
dw_1.Describe("empname.Border")
//dw_1が持つempnameというオブジェクトのBorderプロパティ値に1をセット
dw_1.Modify("empname.Border=1")
詳細については前回の説明を見てほしい。
長らく死蔵していたPowerBuilderネタの下書きを発見したのでUPしておく。今更役に立つかは分からないけど。
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 + "~"" )
タイマー処理を使用すると、指定した秒数ごとに処理を繰り返し実行することができる。
例としては、1分ごとに自動でデータを再取得して画面のグラフを再表示したり、タイムアウト処理に使ったり。
このタイマー処理には2種類あり、ひとつはウィンドウが持つtimerイベント、もう一つがtimingユーザーオブジェクト。
前者はウィンドウが持つイベントのため実装が楽だが1ウィンドウにつき1つのみという制約がある。
後者は制約はないが、別途ユーザーオブジェクトを作成しないといけないのがやや手間だ。
ドロップダウンデータウィンドウ(DDDW)は、データウィンドウの項目(カラム)の編集様式の一つ。
DBからデータ取得したDWはコード(内部値)しか持たないが、画面にはそのコードに対応した名称(外部値)を別のマスタから取ってきて表示したい場合に便利な機能。
社員ID | 社員名 | 部署ID | 住所 |
0001 | 1太郎 | A0001 | ~~~~ |
0002 | 2次郎 | A0001 | ~~~~ |
0003 | 3三郎 | B0001 | ~~~~ |
部署コード | 名称 |
A0001 | 東京本社 |
B0001 | 名古屋支社 |
C0001 | 大阪支社 |
上記2DWを例とすると、
社員マスタDWをそのまま画面に表示すると、部署IDは「A0001」とか「B0001」とかコードのまま表示されてしまう。
前回の記事に引き続き、パワービルダー(PowerBuilder)の特徴であるデータウィンドウ(DataWindow)について解説する。
今回はデータウィンドウの修正ステータスについて。
前回の記事に引き続き、パワービルダー(PowerBuilder)の特徴であるデータウィンドウ(DataWindow)について解説する。
今回はデータウィンドウのバッファについて。