グループを定義したデータウィンドウを動的に作成する

PowerBuilder Tips

方法

データウィンドウを動的にグループ化するには構造が変わるため、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

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?