Tips
エディットマスクコントロールの和暦データを西暦で取得する
方法 エディットマスクコントロールに和暦で表示された日付を日付型のデータとして取得するにはデータウィンドウの GetData 関数を利用します。 エディットマスクの「マスク」プロパティに “ggnn/mm/d […]
拡張子が msi のインストーラーを実行する
方法 msi ファイルは、Run 関数を使用して直接実行することはできません。Run 関数を使用して msi インストーラーを実行する場合は、Windows のインストーラー msiexec.exe を実行し、パラメータ […]
シングルラインエディットで Enter キー入力時に次のコントロールにフォーカスを移動する
方法 シングルラインエディットで [Enter] キーが押されたときに次のコントロールにフォーカスを移動するには、ウィンドウの Key イベントで [TAB] キーを送信します。 シングルラインエディットへの [Ente […]
データウィンドウ上でクリックされたオブジェクトの種類を取得する
方法 クリックされたデータウィンドウ上のオブジェクトの種類を取得するには、データウィンドウの Clicked イベントで dwo 引数の Type プロパティを判定します。 Type プロパティは DWObject の種 […]
フォルダー内のファイルの一覧を取得しリストボックスに格納する
方法 特定のディレクトリ内にあるファイルの一覧を取得し、リストボックスに格納するには DirList 関数を利用します。 構文 listboxname.DirList ( filespec, filetype {, st […]
エディットコントロールに文字が入力される度にイベントを発生させる
方法 データウィンドウの EditChanged イベントのように、シングルラインエディットやマルチラインエディットに文字が入力/削除されるたびにイベントを発生させるには、イベント ID : pbm_enupdate の […]
データウィンドウを段組みで印刷する
方法 データウィンドウの段組み印刷はデータウィンドウオブジェクトのプロパティで [印刷の仕様] タブの [段組みカラム] プロパティで設定します。 たとえば、[段組みカラム] プロパティを 2 に設定すると、1 段目がペ […]
レジストリにバイナリ値をセットする
方法 レジストリに値をセットするには、RegistrySet 関数を使用します。 構文 RegistrySet ( key, valuename, valuetype, value ) 引数 説明 key レジストリの絶 […]
コピー&ペーストによる入力を制限する
方法 メールアドレスやパスワードなどの項目に対してコピー&ペーストによる入力を制限するにはコントロールの種類によってそれぞれの方法があります。 シングルラインエディットまたはマルチラインエディット シングルラインエディッ […]
複数のデータウィンドウを 1 つの印刷ジョブとして出力する
方法 複数のデータウィンドウを 1 つのジョブで印刷を行うには、PrintOpen 関数で印刷ジョブを開き、PrintDataWindow 関数でそれぞれのデータウィンドウを印刷します。 ただし、デフォルトではプリンター […]
計算フィールドで Truncate 関数を使用して正しい計算結果を取得する
方法 データウィンドウ上で定義した計算フィールドで Truncate 関数を使用した際に、取得された結果が想定した値と異なる場合は、引数に定数を付加 (例 : truncate(x+0.0000001,n)) します。 […]
計算フィールドの表示値と取得値の誤差を防ぐ
方法 数値型の計算フィールドは内部的に Double 型 (浮動小数点型) のデータとして保持しています。 そのため GetItemDecimal 関数で値を取得すると、浮動小数点数の影響から Decimal 型の変数の […]
入力文字がカラムの最大値に達したときに自動でフォーカスを移動させる
方法 エディットマスク編集様式ではカラムのプロパティの [編集] タブで [自動スキップ] を有効にすることで、入力可能な最大文字数 (「最大値」プロパティ) に達した場合に次の項目にフォーカスが移動します。 エディット […]
MDI で作成されたウィンドウ内のシートを最大表示で使用する
方法 マルチ ドキュメント インターフェイス (MDI) で作成されたアプリケーションのシートを最大表示で開くには、OpenSheet 関数の arrangeopen 引数に [Layered!] を指定します。 MDI […]
データウィンドウの「グループごとに改ページ」を切り替える
方法 データウィンドウに作成したグループのプロパティ「グループごとに改ページ (NewPage)」はスクリプトで変更することができません。 このため、「グループごとに改ページ」が有効のものと無効のデータウィンドウオブジェ […]
データウィンドウで選択した文字列および文字数を取得する
方法 データウィンドウで現在選択されている文字列を取得するには、データウィンドウコントロールの SelectedText 関数を使用します。 また、選択された文字列の文字数を取得するには Len 関数を使用します。 【例 […]
Sum 関数で条件に適合した行の値のみを合計する
方法 データウィンドウの計算フィールドで Sum 関数で条件に適合した行のみを合計するには、If 文で条件を指定し、条件が一致する場合に指定したカラムの値を返し、条件が一致しない場合は 0 を返した結果を Sum 関数で […]
動的に作成したデータウィンドウのプロパティを指定する
方法 動的に作成したデータウィンドウのプロパティを指定するには、以下の方法があります。 1. SyntaxFromSQL で指定する SyntaxFromSQL の第 2 引数で、さまざまなプロパティを指定してデータウィ […]
SaveAs で出力するデータのカラム名を変更する
方法 SaveAs 関数で出力するデータのカラム名を指定するには、プロパティの dbName を変更します。 SaveAs 関数で第 3 引数の colheading に TRUE を指定することで、出力されるファイルに […]
複数 DB に接続した状態で SQLSA を使用した動的 SQL を実行する
方法 SQLSA を使用した動的 SQL を複数のデータベースに実行するには、使用するトランザクションオブジェクトを PREPARE 文で指定します。 アプリケーションから複数のデータベースに接続するには下記の Tips […]
入力項目にフォーカスが当たった際にカーソルの位置を指定する
方法 シングルラインエディットやエディットマスク、カラムなどの文字入力が可能な項目にフォーカスが移動した際に、カーソル (入力ポイント) の位置を指定するには、SelectText 関数を使用します。 たとえば、日付項目 […]
PSR ファイルをデータウィンドウに取り込む
方法 Powersoft レポート (PSR) ファイルを取り込むにはデータウィンドウの DataObject プロパティに PSR ファイルのパスを指定します。 Powersoft レポート (PSR) ファイルは S […]
ドロップダウンデータウィンドウのデータオブジェクトを動的に変更する
方法 ドロップダウンデータウィンドウのデータオブジェクトを動的に変更するには、ドロップダウンデータウィンドウカラムの dddw プロパティを操作します。 dddw プロパティの Name プロパティでデータオブジェクトを […]
データウィンドウの削除バッファのデータを取得する
方法 データウィンドウの削除バッファのデータは Data.Delete プロパティから取得できます。角カッコ([])を指定することで、削除バッファ内の行番号やカラム番号を指定することができます。またデータ型は取り込み元の […]
Enter キーによる Tab 移動を実装したデータウィンドウでカラムに改行を入力する
方法 データウィンドウで Enter キーによるタブ移動は [pbm_dwnprocessenter] をイベント ID にもつユーザーイベントを定義して実装することができます。 データウィンドウ内のカラムのフォーカス移 […]
グループを定義したデータウィンドウを動的に作成する
方法 データウィンドウを動的にグループ化するには構造が変わるため、SyntaxFromSQL 関数、 Create 関数を使用してデータウィンドウを再作成します。 Create 関数は引数にソースコードを指定してデータウ […]
コンパイルした日付や時刻をアプリケーションで利用する
方法 コンパイルした日付や時刻を利用するには date 型で宣言し、初期値として today() や now() で初期化することで宣言された変数に代入されます。 プログラムがいつコンパイルされたのか画面上に表示させたい […]
アプリケーションが IDE と EXE のどちらから起動されたかを判別する
方法 PowerBuilder IDE からアプリケーションを実行した場合、アプリケーション ハンドルを持ちません。この特性を利用して、アプリケーションのハンドルを Handle 関数で取得し、戻り値が 0 の場合は P […]
行のデータが変更されたことを確認する
方法 行のデータの変更を確認するには、GetItemStatus 関数を使用します。最初の引数に確認する行番号、2 番目の引数にカラム番号、そして 3 番目の引数にバッファを指定します。 なお、カラム番号に 0 を指定す […]
グループの最終行をデータウィンドウ式で判定する
方法 データウィンドウ内のグループごとの最終行であるかどうかは、データウィンドウ式により Max 関数で “for group” キーワードを使用してグループごとの行番号 (GetRow 関数) […]