Tips
ループ処理中にユーザーが画面を操作できるようにする
方法 ループ処理中にユーザーが画面を操作できるようにするには、ループ処理内で Yield 関数を呼び出します。 【例】ループ処理中にユーザーによる操作を可能にする integer i FOR i = 1 TO 10000 […]
行ごとに異なる画像をデータウィンドウに表示する
方法 文字列型のカラム、計算フィールド、またはテーブル BLOB を利用して、行ごとに異なる画像をデータウィンドウに表示することができます。 文字列型のカラムの設定で画像を表示する カラムのプロパティ [全般] タブの「 […]
メッセージボックスの表示位置を指定する
方法 MessageBox 関数は画面上に表示される位置を指定することができないため、レスポンスウィンドウを使用します。 新しいウィンドウ (w_message) を作成し、ウィンドウの種類に response! を指定 […]
データウィンドウ内のラジオボタンのコード表をスクリプトで設定する
方法 ラジオボタン編集様式カラムのコード表は Values プロパティで設定することができます。 プロパティの値は 表示値1<Tab>データ1/表示値2<Tab>データ2/表示値3<Tab& […]
プリンターのプロパティ画面を表示する
方法 印刷する前にプリンターのプロパティを表示させ、用紙サイズまたは印刷の方向などを指定するには PrintSetupPrinter 関数を利用します。 【例】 // プリンターのプロパティを表示 (キャンセルやエラーの […]
グラフのスケールを相対的に変動させないようにする
方法 グラフデータウィンドウの Y 軸はデフォルトでは現在のデータの値に応じて自動でスケールが設定されます。 Y 軸のスケールを固定するには、プロパティ「自動目盛」のチェックをオフにしたうえで最大値、最小値を設定します。 […]
データウィンドウへのファイルインポート時にユーザーにファイルを選択させる
方法 データウィンドウへインポートするファイルをユーザーに選択させるには、ImportFile 関数の引数であるファイルパスに空文字 (“”) を渡します。 選択できるファイルの種類としては、「タ […]
データウィンドウコントロールの内容全体をコピーする
方法 データウィンドウコントロールの内容全体をコピーするには GetFullState 関数を利用します。GetFullState 関数は Blob 型のデータとしてデータウィンドウのデータを含め、プロパティやレイアウト […]
部分一致でデータウィンドウのデータを絞り込む
方法 データウィンドウ内の文字列のデータを部分一致でフィルタリングする場合は、フィルター条件に Like 演算子を使用し、”%” を付加して指定します。 また、Like 演算子の条件内では任意の […]
データウィンドウで未入力の条件を無視して検索する
方法 データウィンドウでの検索において、複数ある条件の中からユーザーに任意の条件を指定させる場合など条件の個数が固定ではない場合に、未入力の条件を無視した検索を実装する方法がいくつかあります。 方法 1 : 動的に条件を […]
ドロップダウンデータウィンドウに対してフィルターをかける
方法 ドロップダウンデータウィンドウ (dddw) をフィルタリングするには、GetChild 関数で子データウィンドウを取得した上で、取得したデータウィンドウに対して SetFilter を用いて条件を指定します。 【 […]
データウィンドウに配置されたコントロールをスクリプトで別の区域に移動する
方法 データウィンドウ内のコントロールを別の区域に移動するには、SetPosition 関数を使用します。 SetPosition 関数の構文は下記のとおりです。 integer dwcontrol.SetPositio […]
ウィンドウのハードコピーを印刷する
方法 PowerBuilder で作成したアプリケーションのウィンドウのハードコピーを取得する場合、ウィンドウやグラフコントロールといったビジュアルオブジェクトを印刷ジョブに取り込むことが可能な Print 関数の構文 […]
フォルダー内に保存されているすべてのファイルを別フォルダーにコピーする
方法 フォルダーに保存されているすべてのファイルを別フォルダーにコピーするには、BAT ファイルや Windows API を利用して行う方法があります。 以下の例では一時的に BAT ファイルを作成後、その BAT フ […]
コンパイル時のデータベースに関する警告メッセージをオフにする
方法 IDE でコンパイルや実行の際のデータベースに関する警告メッセージをオフにするには、スクリプトのオプションで「DB 警告メッセージの表示」のチェックを外して PowerBuilder を再起動します。 スクリプトの […]
多次元配列を実装する
方法 PowerBuilder では多次元配列の添字を可変長にすることができませんが、別途構造体に可変長配列のメンバを定義しその構造体自体を可変長配列として定義することで代替できます。 【例】 [str_test 構造体 […]
コントロールに記述されているソースコードを取得する
方法 コントロールに記述されているソースコードを取得するには ClassDefinition オブジェクトと ScriptDefinition オブジェクトを利用します。 目的のコントロール (オブジェクト) について […]
ログイン認証されていないサーバー上のファイルやフォルダーにアクセスする
方法 ログイン認証されていないサーバー上のファイル / フォルダーに対して FileCopy 関数や FileMove 関数、CreateDirectory 関数、RemoveDirectory 関数などといったファイル […]
ドロップダウンリストボックスで削除した項目の空白をつめる
方法 ドロップダウンリストボックスに追加されている項目を IDE 上で削除するには、ドロップダウンリストボックスのプロパティシートの [項目] タブの先頭にある数値をクリックし、選択状態にしてから [Delete] キー […]
分割されたデータウィンドウの右側を左右矢印キーでスクロールする
方法 左右に分割されたデータウィンドウでは左右の矢印キーを入力しても左側のペインのみがスクロールします。右側のペインをスクロールさせるには対象のデータウィンドウに pbm_dwnkey を指定したユーザーイベントを作成し […]
データウィンドウの行を変更の有無にかかわらず更新・削除の対象外にする
方法 データウィンドウで検索された行に対して変更や削除を行うと、Update 関数を呼び出した際にデータベースに対してそのデータの更新や削除が行われます。 特定の行に対してデータウィンドウ上で変更したかどうかにかかわらず […]
データウィンドウの現ページと総ページ数をスタティックテキストに動的に表示する
方法 現在のページを動的にスタティックテキストに表示するには、データウィンドウの ScrollVertical イベントで、現在のページ数と総ページ数を取得します。 データウィンドウの現在のページ数と総ページ数は下記のデ […]
表示書式が設定されているカラムでゼロサプレスを行う
方法 表示書式で数値のマスクに # を指定したうえで単位などの文字を付加した場合、ゼロサプレスされないことがありますが、シングルクォーテーションで文字を囲むか、文字の前に “\” 記号をつけて文字 […]
スクリプトで新規フォルダーを作成する
方法 スクリプトで新しいフォルダーを作成するには CreateDirectory 関数を利用します。 【例】現在の作業フォルダーに新しいフォルダー temp1 を作成する string ls_path integer l […]
ファイルのパスからファイル名のみ取得する
方法 ファイルのパスが格納されているテキストから、拡張子を含むファイル名を取得する場合は、LastPos 関数を使用することで取得できます。 LastPos 関数を利用してファイルパスに含まれる最後の “\& […]
先祖オブジェクトのイベントの戻り値を子孫の同イベントで使用する
方法 先祖のオブジェクトに記述されたイベントや関数の戻り値を子孫のスクリプトで利用する場合は、AncestorReturnValue 変数を利用します。 先祖スクリプトを拡張したイベントや関数では、先祖スクリプトが実行さ […]
カラムのプロパティに設定した式を動的に取得する
方法 データウィンドウのカラムのプロパティに設定した式は Describe 関数やドット表記でプロパティの値を取得し、タブ文字 (~t) の後の文字列を切り出します。 カラムのプロパティに式を設定すると、設定されている値 […]
SQL UPDATE 文でデータ更新されたか否かを判断する
方法 埋め込み SQL で UPDATE 文を使用した際に Where 条件式で指定した対象の行が存在せず更新された行が無かった場合でも、sqlca.sqlcode には 0 が返ってきます。 データが実際に更新されたか […]
データウィンドウでデータベースから検索した時点の値を取得する
方法 データウィンドウで検索したデータに対して値を変更してしまった後で、検索された時点の値を取得したい場合は、GetItemNumber や GetItemString など GetItem 関数で第4引数 (origi […]
データウィンドウ式の結果を計算フィールドを使用せずに取得する
方法 スクリプトのみでデータウィンドウ式の結果を取得するには Describe 関数の引数内で Evaluate 関数を使用します。 Evaluate 関数を使用した Describe 関数の呼び出し方法の構文は下記のと […]