Tips
埋め込み SQL の DELETE 文で削除された行数を確認する
方法 トランザクションオブジェクトの SQLNRows プロパティをチェックすることで DELETE で実際に削除された行数が確認できます。 【例】 // テーブル t_test から id カラムの値が 10 のデータ […]
ライブラリ (PBL) 内のオブジェクトを一覧で取得する
方法 ライブラリ (PBL) 内のオブジェクトを一覧で取得するには LibraryDirectoryEx 関数を利用します。 オブジェクト名、最終更新日、オブジェクトに対するコメント、およびオブジェクトタイプが取得できま […]
スクリプトでカラムに改行を設定する
方法 データウィンドウ上のカラム内の文字列をスクリプトで改行させる場合は、改行コードである ~r~n (CR+LF) をセットすることで文字列を改行させることができます。 なお、~r (CR : Carriage Ret […]
データウィンドウ以外のコントロールをスクリプトでスクロールする
方法 リストボックスなど、データウィンドウ以外のコントロールでスクロールを行うためには、Send 関数で対象のコントロールにメッセージを送信します。 リストボックスやツリービューなどのコントロールはスクロールするための関 […]
タブコントロール内のコントロールのタブ順序を変更する
方法 通常、ウィンドウ内に配置されたコントロールのタブ順序を変更するには、パワーバーにある [ タブ順序 ] ボタンをクリックするか、メニュー [ 書式 | タブ順序を表示 ] を選択することでタブ順序の設定モードに切り […]
データウィンドウに配置したコントロールのタブ順序を取得する
方法 タブ順序は tabsequence プロパティから取得することができます。プロパティの値を取得する方法としては、Describe 関数を利用する方法とドット表記があります。 Describe 関数を使用する場合はパ […]
データウィンドウ内のタブ順序を動的に変更する
方法 DataWindow 内のカラムのタブ順序は、SetTabOrder 関数を使用してスクリプトでタブ値を動的に変更することができます。 SetTabOrder 関数には引数が 2 つあり、最初のパラメーターにはタブ […]
カタログテーブルを作成しないように制御する
方法 カタログテーブルを作成しないようにするにはデータベースペインタを開き、IDE のメニューから「デザイン – オプション」で表示される「DB 環境設定」の全般タブの「拡張属性の使用」のチェックを外します。 […]
外部ソースのデータウィンドウをスクリプトで作成する
方法 データソースに「外部ソース」を指定したデータウィンドウと同様のデータウィンドウは SyntaxFromSQL 関数でソースを生成することができません。 あらかじめ「外部ソース」のデータウィンドウオブジェクトを作成し […]
データウィンドウ上のグループヘッダに通し番号を表示する
方法 グループ化されたデータウィンドウ上のグループ区域 (グループ ヘッダ、グループ トレーラ) に計算フィールドを用意し CumulativeSum データウィンドウ関数を使用することでグループ毎の通し番号を表示できま […]
アプリケーションの起動時に付与されたパラメーターを取得する
方法 PowerBuilder で作成されたアプリケーションは、起動時にパラメーターを付与することができます。たとえばコマンドラインで実行する場合に “appname.exe parm” のように […]
データウィンドウに配置されたコントロールのフォントを変更する
方法 データウィンドウに配置されたコントロールで使用しているフォントの種類をスクリプトで変更するには、Font.Face プロパティを使用します。 【例】ドット表記でカラム “sample_column” のフォントを変 […]
データウィンドウを印刷する際に部数を設定する
方法 データウィンドウのデータを印刷する時に部数を設定する方法は二つあります。 一つ目は PrintSetup 関数で「プリンタの設定」ダイアログボックスを表示させて [設定] からシステムのプリンタ設定ダイアログボック […]
Menu オブジェクトのメニュー項目を動的に追加する
方法 Menu オブジェクトのメニュー項目を動的に追加することはできません。ただし、あらかじめ作成したメニュー項目を表示 / 非表示の切り替えを行うことで動的に変更することができます。 【例】メニュー (m_main) […]
行のデータによってドロップダウンデータウィンドウのフィルター条件を変更する
方法 ドロップダウンデータウィンドウ (DDDW) は GetChild 関数によって参照を取得でき、取得した DDDW に対して SetFilter、Filter 関数を呼び出すことで DDDW 内のデータにフィルター […]
データウィンドウで任意の行が 1 行目に表示されるようにスクロールする
方法 ScrollToRow 関数を使用して任意の行を 1 行目に表示する場合、指定した行がすでに現在のページに表示されているとスクロールはされず 1 行目に表示されません。 このような場合でも指定した行が 1 行目に表 […]
データウィンドウのフィルター式をスクリプトで取得する
方法 データウィンドウのフィルター式は DataWindow.Table.Filter プロパティで取得することができます。 【例】ドット表記でフィルター式を取得 string ls_filter ls_filter = […]
SaveAs 関数の「名前を付けて保存」ダイアログで指定したファイルタイプのみを表示する
方法 SaveAs 関数では「名前を付けて保存」ダイアログのファイルタイプをフィルターできません。 ファイルタイプをフィルターするには GetFileSaveName 関数で事前にファイルの種類をフィルターし、取得したフ […]
GetFileSaveName 関数で上書き確認を行う
方法 GetFileSaveName 関数を使用してダイアログボックスを表示した状態では上書き確認のメッセージを表示する方法はありません。 上書き確認を促す場合は、ダイアログボックスで保存ファイルを指定後に FileEx […]
スクリプトで文字列に Tab 文字を挿入する
方法 スクリプトにより文字列内にタブ文字や改行コードを挿入する場合には、特殊な ASCII 文字を使用します。特殊文字の前にはエスケープ文字としてチルダ (~) を付ける必要があり、~t は文字列内にタブ文字を挿入します […]
スクリプトでカラムに値をセットして ItemChanged を呼び出す
方法 スクリプトでデータウィンドウのカラムに値を設定後、ItemChanged イベントを呼び出すには SetText 関数と AcceptText 関数を利用します。 データウィンドウのカラムに SetItem 関数や […]
全角文字のみ入力させたい項目に半角文字が入力されたことを判定する
方法 文字列が全角か半角かを判定する関数は存在しませんが、入力された文字列に対して 1 文字ごとに Len 関数の値を確認することで判定することができます。 Len 関数は文字数を、LenA 関数はバイト数を戻します。ま […]
データウィンドウの水平スクロール分割位置を指定する
方法 水平スクロールの分割位置は DataWindow.HorizontalScrollSplit プロパティで指定することができます。 データウィンドウのプロパティ「水平スクロールバーの分割可能」 を ON (分割可) […]
データウィンドウから更新対象テーブル名を取得する
方法 データウィンドウをオープンして確認するのではなく、スクリプトを使用してデータウィンドウで更新対象となるテーブルを取得するには、Describe 関数を使用します。Describe 関数の引数に “dat […]
タブコントロール上に配置したコントロールの関数を実行する
方法 タブコントロール上に配置したコントロール、すなわちタブコントロール上のタブページに配置されたデータウィンドウなどコントロールの関数を実行する場合は以下の構文を利用します。 tabcontrol.tabpage.co […]
シングルラインエディットをスクリプトで入力不可にする
方法 シングルラインエディットの入力を不可にするには、シングルラインエディットの Enabled プロパティもしくは DisplayOnly プロパティを設定します。 Enabled プロパティを False に設定する […]
文字列としてダブルクォーテーションを使用する
方法 ダブルクォーテーション ("") で括られた文字列リテラル内でダブルクォーテーションを使用するには、エスケープ文字である「ティルダ “~”」を付与します。 【例】 ls_ […]
データウィンドウの現在の状態をファイルに保存する
方法 データウィンドウの現在の状態を保存するには SaveAs 関数で PSR ファイルへ出力します。 PSR ファイルはファイル拡張子 PSR を持つ特殊なファイルで Powersoft レポートファイル形式でデータを […]
印刷ページ数を取得する
方法 スクリプトで印刷ページ数を取得するには Describe 関数内で Evaluate 関数を使用して、データウィンドウ式関数である PageCount を呼び出します。 データウィンドウ式関数では PageCoun […]
複数行入力可能なエディットカラムで半角文字列を改行する
方法 複数行の入力が可能な高さのあるエディットカラムで、カラムの横幅を超える英数字が入力された場合に改行されない動作は「ワードラップ機能」によるものです。 この機能は無効にすることができないため、任意の文字数ごとに改行や […]