動的に作成したデータウィンドウのプロパティを指定する

PowerBuilder Tips

方法

動的に作成したデータウィンドウのプロパティを指定するには、以下の方法があります。

1. SyntaxFromSQL で指定する

SyntaxFromSQL の第 2 引数で、さまざまなプロパティを指定してデータウィンドウ構文を作成することが可能です。

たとえば、カラムのプロパティを指定したい場合は、キーワードに Column を使用して各種プロパティを指定します。

string ls_sql, ls_syntax, ls_presentation, ls_err

// 作成するデータウィンドウのデータソース (SQL)
ls_sql = "SELECT id, last_name, first_name FROM contact"

// カラムのフォントを Arial、フォントサイズを 12 に指定
ls_presentation = "Style(Type=Grid) Column(font.face='Arial' font.height=-12)"

// データウィンドウ構文を生成
ls_syntax = SQLCA.SyntaxFromSql(ls_sql, ls_presentation, ls_err)

// 生成した構文から dw_1 を作成
dw_1.Create(ls_syntax, ls_err)

なお、SyntaxFromSQL の第 2 引数では提示様式 (グリッドやフリーフォームなど) も指定することができます。 上記の例ではグリッド提示様式 (Type=Grid) でデータウィンドウを作成しています。

2. DB ペインタでフォント・サイズを指定する

カラムやカラムに対応するヘッダー、ラベルのフォントの種類やサイズや色など、フォントに関連するプロパティであれば、カタログテーブルを利用してデフォルト値を設定することが可能です。

DB ペインタにてテーブルを選択後、プロパティ [データ フォント]、 [ヘッダ フォント]、 [ラベル フォント] のフォントやサイズを指定することで、そのテーブルを使用したデータウィンドウを作成した時のカラムやヘッダまたはラベルのフォントやサイズに反映されます。この反映は SyntaxFromSQL 構文で動的にデータウィンドウを作成した場合も同様です。

ただし、DB ペインタでの設定情報はカタログテーブルに保持されますので、本番環境のデータベース側にカタログテーブル作成、カタログテーブルのデータをコピーする必要があります。

カタログテーブルに関する詳細な情報と活用方法については、下記の記事も参考にしてください。

カタログテーブルのすべて(前編:カタログテーブルとは?)

カタログテーブルのすべて(後編:カタログテーブルの活用)

3. Modify 関数またはドット表記でプロパティを設定する

動的にデータウィンドウを作成した後で、通常のデータウィンドウと同様に Modify 関数でやドット表記でプロパティを変更します。 プロパティを変更するカラムは番号 (# + カラム番号) で指定することも可能です。

以下の例では Modify 関数を用い、3 列目のカラムのフォントサイズを 12 に変更しています。

dw_1.Modify("#3.font.Height = -12")

また、以下の例では Column.Count でデータウィンドウのカラム数を取得し、 全カラムのフォントサイズを変更しています。 なお、フォントサイズ以外のプロパティでも利用できます。

string ls_count
integer li_index

// データウィンドウのカラム数をカウントします
ls_count = dw_1.Object.DataWindow.Column.Count

FOR li_index = 1 TO long(ls_count)
  // カラムのフォントサイズを一律 16 に指定します
  dw_1.Modify("#" + String(li_index) + ".Font.height=-16")
NEXT

 

Tips情報

プロダクト :PowerBuilder

バージョン :2019R3

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