ドロップダウンデータウィンドウのデータオブジェクトを動的に変更する
2021/11/01
方法
ドロップダウンデータウィンドウのデータオブジェクトを動的に変更するには、ドロップダウンデータウィンドウカラムの 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