グループを定義したデータウィンドウを動的に作成する
2021/10/14
方法
データウィンドウを動的にグループ化するには構造が変わるため、SyntaxFromSQL 関数、 Create 関数を使用してデータウィンドウを再作成します。
Create 関数は引数にソースコードを指定してデータウィンドウオブジェクトを作成しますが、データウィンドウオブジェクトのソースコードは複雑であるため、SyntaxFromSQL 関数でデータウィンドウオブジェクトのソースコードを SELECT 文から作成して使用します。 グループを定義するには、Group キーワードの by オプションでグループ化するカラム名(またはカラム番号)を、level オプションでグループ化のレベルを指定します。
以下はデータベースから emp_id を昇順として emp_id、emp_lname、dept_id の 3 項目を取得し、部署 ID でグループ化するデータウィンドウをスクリプトで作成するサンプルです。
【例】
string ls_err_syntaxfromSQL string ls_err_create string ls_sql string ls_syntax // データを取得する SQL を定義 ls_sql = 'SELECT employee.emp_id, employee.emp_lname, employee.dept_id from employee ORDER BY employee.emp_id' // SQL からデータウィンドウ構文を作成 ls_syntax = SQLCA.SyntaxFromSQL(ls_sql, 'Style(Type=Free)', ls_err_syntaxfromSQL) // 構文にグループの定義を追加 ls_syntax += 'group(level=1 header.height=75 trailer.height=75 by=("dept_id") header.color="536870912" trailer.color="536870912" )' // 新しいデータウィンドウを生成 dw_group.Create(ls_syntax, ls_err_create) // トランザクションオブジェクトを設定 dw_group.SetTransObject(SQLCA) // データウィンドウを検索 dw_group.Retrieve()
なお、作成済みのデータウィンドウに対して Modify 関数等でグループを作成することはできません。
Tips情報
プロダクト :PowerBuilder
バージョン :2019R3