ドロップダウンデータウィンドウのデータオブジェクトを動的に変更する

PowerBuilder Tips

方法

ドロップダウンデータウィンドウのデータオブジェクトを動的に変更するには、ドロップダウンデータウィンドウカラムの dddw プロパティを操作します。

dddw プロパティの Name プロパティでデータオブジェクトを変更し、DisplayColumn (表示カラム)、DataColumn (データカラム) を指定した後で、トランザクションオブジェクトを紐づけてデータを取得することで、スクリプトによりデータオブジェクトを変更することができます。

【例】データウィンドウ (dw_1) で配置したドロップダウンデータウィンドウカラム (dept_name) のデータオブジェクトを “d_dept2” に変更する

DataWindowChild dddw_child
integer li_rtn

// ※ドット表記でプロパティを変更する場合
// 変更対象のドロップダウンデータウィンドウの DataObject を指定
dw_1.object.dept_name.dddw.name = "d_dept2"
// 表示カラムの変更
dw_1.object.dept_name.dddw.DisplayColumn = "dept_head_id"
// データカラムもあわせて変更する場合、DataColumn で指定
dw_1.object.dept_name.dddw.DataColumn = "dept_id"

// ※Modify 関数でプロパティを変更する場合
// dw_1.Modify("dept_name.dddw.name = 'd_dept2'")
// dw_1.Modify("dept_name.dddw.DisplayColumn = 'dept_head_id'")
// dw_1.Modify("dept_name.dddw.DataColumn = 'dept_id'")


// 設定したデータオブジェクトを ChildDatawindow として取得
li_rtn= dw_1.GetChild("dept_name", dddw_child)
IF li_rtn= -1 THEN MessageBox("エラー", "GetChild でエラーが発生しました。")

// ドロップダウンデータウィンドウのトランザクションオブジェクトを設定
dddw_child.SetTransObject(SQLCA)
// ドロップダウンデータウィンドウの検索を実行
dddw_child.Retrieve()

カラム等、データウィンドウ上のコントロールのプロパティはドット表記、または Modify 関数で変更することができます (サンプルソースのコメント部分参照)。

なお、GetChild 関数で取得した子データウィンドウの DataObject プロパティの変更によってデータオブジェクトを変更することはできません。

 

Tips情報

プロダクト :PowerBuilder

バージョン :2019R3

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilderとは? ~デキる大人へ変身できる?ローコード開発ツール~