CLOSE
PowerBuilder Tips

方法

計算フィールドは PDF などイメージとして出力する場合を除き、SaveAs 関数では出力できません。 このため、データソースにダミーのカラム (計算カラム) を追加し、計算フィールドの結果をそのカラムへ格納して出力します。

下記の SELECT 文でデータウィンドウを作成します。

SELECT Name, Salary, Bonus FROM Employee

作成されたデータウィンドウは下記ようなレイアウトになります。 Name、Salary、Bonus にそれぞれ「氏名」、「基本給料」、「ボーナス」とラベルを付けています。

氏名基本給料ボーナス
佐藤300,00050,000
加藤450,00060,000
伊藤480,00065,000

このデータウィンドウに計算フィールド (cf_total_salary) を追加し、「給料合計」として Salary と Bonus の合計を表示します。

氏名基本給料ボーナス給料合計(計算フィールド)
佐藤300,00050,000350,000
加藤450,00060,000510,000
伊藤480,00065,000545,000

このまま SaveAs 関数を呼び出した場合は計算フィールドの内容は出力されず、データウィンドウSELECT文で抽出されたカラムのみが出力されます。

SaveAs で計算フィールドの値を出力するには、データソースの SELECT 句にダミーの計算カラムを追加します。 数値型の計算カラムをデータウィンドウに追加する場合は、数値を追加します。

SELECT Name, Salary, Bonus, 0 FROM Employee

上記のSELECT文でデータウィンドウを再作成することにより数値型のカラム (compute_0001) が追加され、このカラムに計算フィールドの計算結果を格納します。 データウィンドウ上に表示したくない場合は、データウィンドウからカラムコントロールを削除します。

計算カラムへの値の設定はスクリプトで行います。 計算フィールドからは GetItemNumber 関数 (数値の場合) で値を取得し、SetItem 関数で計算カラムに設定します。 下記の例は RetrieveEnd イベントに、追加したカラムへ計算フィールドの結果を設定する処理を記述し、検索直後に計算値が設定される動作を実装したものです。

【例】

[データウィンドウ RetrieveEnd イベント]

long ll_count, ll_computed_field_value

FOR ll_count = 1 TO rowcount
    // 計算フィールド "cf_total_salary" の値を取得
    ll_computed_field_value = this.GetItemNumber(ll_count, "cf_total_salary")

    // 取得した値を、計算カラム "computed_0001" に設定
    this.SetItem(ll_count, "compute_0001", ll_computed_field_value)
NEXT

 

Tips情報

プロダクト :PowerBuilder

バージョン :2017R3

x instagram facebook youtube