Tips
データウィンドウの行をドラッグ&ドロップで移動する
方法 Clicked イベント、DragWithin イベント、DragDrop イベントを利用することで、単一データウィンドウ内においてドラッグ&ドロップにより行を移動させることが可能です。 【例】クリッ […]
アプリケーションの二重起動を抑制する
方法 PowerBuilder で作成されたアプリケーションの二重起動を抑制する方法として、アプリケーションがすでに起動されている場合は新たに起動せずに、そのアプリケーションをアクティブにする方法があります。 Power […]
データウィンドウで SQL 文の IN 句に複数の条件を指定する
方法 データウィンドウによる検索で SELECT 文に IN 句を使用して複数の条件を指定するには、検索引数の型を配列 (String array、Number array 等) に設定して IN 句の条件に指定し、スク […]
実行ファイルをマシンコードで作成する利点
方法 実行ファイルをマシンコード (EXE + DLL) で作成した場合、P コード (EXE + PBD) で作成した場合と比べて、以下の点でパフォーマンス上のメリットがあります。 変数のアクセス 演算操作 (代入文、 […]
ツリービューコントロールのピクチャを変更する
方法 ツリービューコントロールのピクチャを変更するには、PictureIndex 関数や SelectedPictureIndex 関数、OverlayPictureIndex 関数、StatePictureIndex […]
データウィンドウ内のカラムのフォーカス移動を Enter キーで行う
方法 データウィンドウ内で Tab キーではなく Enter キーでカラムのフォーカスを移動させる場合、データウィンドウ内の [pbm_dwnprocessenter] をイベント ID にもつユーザーイベントを定義し、 […]
データウィンドウで Shift キーや Ctrl キーを使って複数行を選択する
方法 データウィンドウで Shift キーを押しながら連続した行を選択したり、Ctrl キーで任意の複数行を選択したりする場合は RowFocusChanging イベント内で KeyDown 関数を呼び出してキーの押下 […]
小数点以下を指定桁で切り上げる
方法 PowerBuilder には四捨五入の Round 関数がありますが、切り上げの関数はありません。 小数点以下を指定した桁で切り上げるには、Ceiling 関数を利用する方法があります。 Ceiling 関数は、 […]
カラム ID から DWObject を取得する
方法 ドット表記を使用する場合、カラム ID から動的に DWObject を取得することはできません。 そのため下記のように CHOOSE CASE 文などで ID を判定して取得します。 【例】 カラム値設定処理 l […]
メニューオブジェクトのツールバーにテキストを表示する
方法 メニューオブジェクトのツールバーに文字を表示するには、Application オブジェクトの「ツールバーのテキスト」プロパティを有効にします。 ツールバーのテキストは、メニュー項目の「項目テキスト」プロパティ (t […]
複数のアプリケーションから同じ PBD を利用する
方法 複数のアプリケーションから同一の PBD を参照することが可能です。 ただし注意点として、いずれかのアプリケーションでグローバル外部関数を使用している場合、すべてのアプリケーションでグローバル外部関数の宣言を同じよ […]
ディスプレイの解像度を取得する
方法 ディスプレイの解像度は GetEnvironment 関数で取得することができます。 GetEnvironment 関数で取得した Environment オブジェクトの ScreenWidth プロパティ、Scr […]
アイコンや画像を実行ファイルに含める
方法 PBR ファイル(リソースファイル)を利用することでアイコンファイルや画像ファイルを実行ファイルに含めることができ、配布が不要になります。 PBR ファイルの作成方法は、IDE のメニュー [ファイル – […]
PBL 内のオブジェクトの更新日時をスクリプトで取得する
方法 オブジェクトの更新日時は PowerBuilder の組み込み関数 LibraryDirectory または LibraryDirectoryEx を使用して取得できます。取得できる情報はオブジェクト名、更新日付及 […]
計算フィールドの値を SaveAs で出力する
方法 計算フィールドは PDF などイメージとして出力する場合を除き、SaveAs 関数では出力できません。 このため、データソースにダミーのカラム (計算カラム) を追加し、計算フィールドの結果をそのカラムへ格納して出 […]
メニューオブジェクトのツールバーに境界線を挿入する
方法 メニューオブジェクトのツールバー上で表示されるメニュー項目間に境界線を挿入するには、メニューペインタでメニュー項目を選択後、プロパティの [ツールバー] タブにある「項目の間隔」を 1 以上に設定します。 境界線は […]
ループ処理で順番にデータウィンドウのカラム値を取得する
方法 データウィンドウに取り込まれたデータは Object.Data プロパティに 2 次元配列のように格納され、このプロパティから行と列を指定して取得することができます。 dw_1.object.data[行, 列] […]
ストアドプロシージャから出力パラメーターを取得する
方法 PowerBuilder のスクリプト上でストアドプロシージャを呼び出し、出力パラメーターを取得するには、EXECUTE 文でストアドプロシージャを実行し FETCH 文を利用します。 出力パラメータの値は FET […]
配列を使用後に初期化する
方法 配列の変数を初期化するには、同じデータ型のダミーの配列を宣言してそれを初期化したい配列に代入します。 【例】 integer li_index long ll_value[], ll_dummy[] FOR li_ […]
色を数値で指定する
方法 PowerBuilder では色は 16 進表現で「FFFFFF」を long 型の数値で表しています。 先頭から 1 byte ごとに青、緑、赤です。 この値は下記のように計算できます。 ■ 青の要素 (0~25 […]
データウィンドウに配置したコントロールやカラムを破棄する
方法 データウィンドウ上のヘッダーオブジェクトやカラムオブジェクトをスクリプトで削除するには Modify 関数でオブジェクトに対し destroy を指定します。 【例】 // データウィンドウコントロール dw_1 […]
複数のウィンドウを表示している場合に他のウィンドウを非アクティブにする
方法 1つのアプリケーションで複数のウィンドウを表示している状態で、いずれかのウィンドウからメッセージボックスを表示しているとき、MessageBox を呼び出したウィンドウはアクティブにできませんが、他に表示されている […]
アプリケーションから複数のDBに接続する
方法 アプリケーションから同時に複数のデータベースに対して接続し処理を行うにはデータベースの接続ごとにトランザクションオブジェクトを 1 つずつ用意して処理を行います。グローバルオブジェクトの SQLCA とは別に独自に […]
F4 キーによるドロップダウンリストの展開を抑制する
方法 ドロップダウンリストコントロールにフォーカスがある場合、F4 キーを押下することでリストが表示されます。このリストの展開は ShowList プロパティで制御できます。Key イベントで押下されたキーを判定し、F4 […]
SnapDevelop ヘルプドキュメント表示
SnapDevelopのヘルプはオンラインで提供されています。 ここでは、SnapDevelopのヘルプドキュメントを参照する方法を解説します。 参照方法 SnapDevelopのヘルプドキュメ […]
データウィンドウ上のどのボタンが押下されたかを判断する
方法 複数のボタンコントロールが配置されたデータウィンドウで、ボタンを押下時にどのボタンが押下されたかを判断するには、ButtonClicked イベントの引数を調べます。 データウィンドウ上に配置されたボタンコントロー […]
グリッド提示様式で作成されたデータウィンドウのカラム順を入れ替える
方法 グリッド提示様式で作成されたデータウィンドウ内の表示されているカラムの表示順は、以下の方法で変更が可能です。 変更するカラムの数が少ない場合は、以下のいずれかの方法でカラムの表示順を変更できます。 データウィンドウ […]
動的に作成したデータウィンドウを PBL に保存する
方法 動的データウィンドウを PBL に保存するには、LibraryImport 関数を使用します。 【例】 // 変数宣言 Integer li_cd_rtn String ls_dwsyntax String ls_ […]
データウィンドウを印刷する際に特定のページ数だけを印刷する
方法 データウィンドウのデータを印刷する際に複数ページのうち、特定のページ数だけを印刷したい場合、データウィンドウコントロールの PrintPage イベントで引数 PageNumber (これから印刷されるページ番号) […]
コントロールのイベントを別のコントロールのイベントから実行する
方法 たとえば、データウィンドウ内に配置したボタンコントロールのクリックをウィンドウ上のボタンから起動するなど、特定のコントロールのイベントを別のコントロールのイベントから起動するには、TriggerEvent 関数や […]