Tips
複数のカラムを持つデータウィンドウで特定のカラムデータのみを出力する
方法 カラムが複数設定されたデータウィンドウのデータを SaveAs メソッドを使用してファイル出力する際、特定カラムのデータのみを出力するために GetItem、Setitem を使用して別のデータウィンドウへデータを […]
データウィンドウ上で現在フォーカスのあるカラム名やカラム番号を取得する
方法 データウィンドウ上にフォーカスのあるカラム名やカラム番号の情報を取得するには GetColumnName メソッド、GetColumn メソッドをそれぞれ利用します。 また、引数に DWObject を持つイベント […]
データウィンドウを使って作成した帳票で各ページの最終ラインのみ太字で印字する
方法 帳票をデータウィンドウで作成し印刷出力するアプリケーションなどで、各ページの最終ラインのみ線を太字で出力するには、LastRowOnPage プロパティと行番号を比較して一致する時に Pen.Width プロパティ […]
埋め込み SQL で複数のデータを取得する
方法 埋め込み SQL で複数のデータを取得するには、カーソルを使用します。 カーソルによるデータの取得は以下の手順で行います。 カーソルの宣言 カーソルのオープン 行のフェッチ (複数回) カーソルのクローズ 【例】 […]
ウィンドウを閉じるときに別のウィンドウに情報を渡す
方法 ウィンドウのクローズ時に別ウィンドウへ情報を渡すにはアプリケーションオブジェクトであらかじめ定義されているグローバルオブジェクトのメッセージオブジェクトを利用します。Close イベント内でメッセージオブジェクトへ […]
クリックでのみカラムにフォーカスを移動させる
方法 TAB キーの移動ではフォーカスさせず、クリックでのみカラムにフォーカスを移動させるには、クリック時にタブ順を操作することで可能となります。 データウィンドウの対象カラムのタブ順を 0 に設定しておき、Clicke […]
データウィンドウで DB エラー発生時にメッセージを出力せずにエラーコードのみを取得する
方法 データウィンドウで DB エラーが発生した場合に、システムのメッセージを出力せずにエラーコードのみを取得するには、dberror イベントで 1 を返します。データウィンドウコントロールの dberror イベント […]
PowerBuilder から外部関数を利用する
方法 PowerBuilder では他言語で作成された DLL 内の関数や Windows API などの関数を外部関数として利用することができます。 利用するには外部関数の宣言とスクリプトから呼び出す処理が必要となりま […]
ウィンドウのサイズが変更されたときにコントロールのサイズも連動させる
方法 ウィンドウサイズ可変の画面でユーザーによりウィンドウのサイズが変更されたときに、コントロールのサイズもウィンドウサイズと連動させて変更するには、Window の Resize イベントを利用します。 Resize […]
カラムのコード表の値を取得する
方法 ラジオボタンやドロップダウンリストなどのカラムに関連付けられたコード表の値を取得するには、データウィンドウ式関数の LookUpDisplay 関数を使用します。 スクリプトで取得する場合は Describe 関数 […]
カラムに入力された値を整形して設定しなおす
方法 たとえば、日付を扱う文字列のカラムに “yyyymmdd” という形式で入力された際に、”yyyy/mm/dd” という形式に整形するといったように、入力値を加工して […]
データウィンドウを PageUp キーや PageDown キーでスクロールさせない
方法 データウィンドウのカラムにフォーカスがある場合、PageUp / PageDown キーでスクロールできますが、これを抑制するにはデータウィンドウコントロールに pbm_dwnkey ユーザーイベントを追加します。 […]
データウィンドウへコントロールを動的に追加する
方法 データウィンドウにスクリプトでコントロールを動的に追加するには、データウィンドウの Modify 関数を利用します。 Modify 関数の “Create” キーワードを指定することでコント […]
スクリプトでカラムのフォントを太字に変更する
方法 スクリプトでカラムのフォントを太字にするには、カラムのプロパティ Font.Weight を 700 に設定します。また、標準の太さにするには 400 を設定します。 【例】 // 親ウィンドウの座標、幅および高さ […]
条件に合わない値が入力されたときにフォーカス移動させない
方法 カラムに値が入力された際、入力値が特定の条件に一致しない場合にフォーカスをそのカラムに留めるには、ItemChanged イベントで RETURN 1 により処理を終了させます。 ItemChanged イベント内 […]
外部のプログラムを実行する
方法 バッチファイルや実行ファイルなど、外部のプログラムを PowerBuilder アプリケーションから実行するには、Run 関数を使用します。 Run 関数は、オペレーティングシステムから実行する任意のプログラムを実 […]
データウィンドウのサマリー領域にある計算フィールドの値を取得する
方法 データウィンドウのサマリー領域に配置した計算フィールドの値は、通常のカラムと同じように、GetItemString や GetItemNumber といった関数を使用して取得できます。GetItemXXXX 関数の […]
SaveAs 関数で出力したファイルをデータウィンドウに取り込む
方法 SaveAs 関数によって出力されたファイルを再度データウィンドウに取り込むには、ImportFile 関数を使用します。 SaveAs 関数でファイルタイプとして Text! を指定することでタブ区切りとなります […]
バッチファイルで起動した PB アプリケーションの結果を受け取る
方法 PowerBuilder アプリケーションをバッチファイルから起動し、アプリケーション終了時に結果を返してバッチファイルで処理を分岐させる場合、アプリケーションの Close イベントで message.LongP […]
ウィンドウを閉じないように制御する
方法 処理の実行中や入力データの更新前などの場合に、ウィンドウの閉じるボタン (ウィンドウ右上の [×] ボタン) のクリックによりウィンドウを閉じないようにするには、CloseQuiry イベントを利用します。 ウィン […]
ボタンのテキストに “&” を表示する
方法 ボタンのテキストにアンパサンド “&” を含めてもそのままでは表示されません。文字として “&” を表示させるためには “& […]
ウィンドウを開いた際に常に親ウィンドウの中央位置に表示させる
方法 ウィンドウ (子ウィンドウ) をオープンした際に親ウィンドウの中央位置に表示させるには、子ウィンドウの Show イベントなどで下記の式により親ウィンドウの中央に表示させる座標をもとめ、Move 関数を呼び出すか、 […]
カラムのデータが重複する行の有無をチェックする
方法 DataWindow カラムのデータが重複する行が存在するかチェックするには Find 関数を使用します。 DataWindow の Find 関数で自身と同じ値の行を検索し、その結果を確認することで効率よくデータ […]
埋め込み SQL で DB のバイナリデータ型を取得、更新する
方法 埋め込み SQL を利用して Oracle の BLOB 型など、バイナリデータ型に対して SECLET、UPDATE を行うには、SELECTBLOB、UPDATEBLOB 構文を使用します。 バイナリデータ型の […]
データベースのストアドプロシージャやファンクションを呼び出す
方法 データベースに定義されたストアドプロシージャまたはファンクションは transaction オブジェクトに外部関数として宣言することでスクリプトから呼び出すことが可能です。 ユーザーオブジェクトとして transa […]
奇数ページだけ、または偶数ページだけを印刷する
方法 DataWindow の Print 関数で奇数ページだけ、または偶数ページだけを印刷するには Page.RangeInclude プロパティを設定します。 DataWindow の Page.RangeInclu […]
ツリービューで現在選択されているアイテムの階層を取得する
方法 ツリービューで現在選択されているアイテムの階層は、Level プロパティで取得することができます。 現在選択されているツリービューアイテムのハンドルからアイテム情報を取得し、Level プロパティで階層を取得します […]
データウィンドウで条件に一致する行をカウントする
方法 データウィンドウの計算フィールドで、特定の条件に一致する行数をカウントするには、If 関数と Count 関数を組み合わせて使用します。 If 関数の条件式を「true の場合は 1、false の場合は 0」とし […]
GetFileSaveName 関数でカレントディレクトリが移動しないようにする
方法 GetFileSaveName 関数を使用してファイルを選択した場合、カレントディレクトリがダイアログで選択したファイルのフォルダーに変更されてしまいます。 カレントディレクトリが変更されないようにするには、Get […]
Create したインスタンスの存在チェックをする
方法 Create したインスタンスの存在チェックを行なうには、IsValid 関数を使用します。 IsValid 関数はオブジェクトのインスタンスが作成されているかどうかを調べることができます。 【例 : […]