DPLの機能

DPL で記述できるプログラムの構造と機能について説明します。


目次
プログラムの構造と構成要素
ステートメント
ラベル
注釈
実行制御
条件による処理の振り分け
実行の繰返し
手続きの呼出し
処理の流れの変更
他のプログラムの実行
プログラムの一時停止と終了
利用者インタフェースの作り方
ダイアログステートメントによるメッセージの表示と利用者入力
画面表示用カードの利用
DBPro の対話編集機能の利用
メニューコマンドに用意されているダイアログの利用
画面表示の変更と機能制限
データベース操作機能
カーソルについて
編集の開始と終了
レコードの編集
探索関連の操作
表ファイル全体に対する一括操作
各種登録情報などの利用
エラー処理
その他の機能
ファイル操作
状態取得/設定
旧バージョンとの相違

プログラムの構造と構成要素

DPLプログラムは,処理を指定する「ステートメント」,プログラム中の場所を指定する「ラベル」,およびプログラムの説明を記述するための「注釈」で構成されます。

ステートメント

「ステートメント」は,DPLプログラムを構成する基本単位です。ステートメントは一つまたはひとまとまりの処理を指定し,DPLプログラムはそのようなステートメントの並びとして書いていきます。プログラム中に書かれたステートメントは上から下に順に実行され,全体として目的とする処理を達成します。

ステートメントとブロック

オープンステートメントレコード挿入ステートメントのように単一の機能だけを実行するステートメントと,PROCEDUREステートメントWHILEステートメントのように複数のステートメントをまとめてひとまとまりの処理を指定するステートメントがあります。PROCEDUREステートメントや WHILEステートメントに含まれるひとまとまりのステートメントを「ブロック」と呼びます。→DPL の構文

ステートメントの分類

ステートメントは,それぞれの機能によって次のように分類できます。→DPL ステートメント一覧

分類説明
宣言ステートメントプログラム中で使う変数や手続きを指定します。宣言ステートメント自体は実行されません。LOCAL/GLOBAL
PROCEDURE
構造ステートメントステートメントの集まりであるブロックを繰り返し実行したり,条件に応じて実行するブロックを選んだりします。IF
SWITCH
WHILE
制御ステートメントステートメントが実行される順序を変更したり,手続きを呼び出したりします。GOTO
CALL
実行関連ステートメント利用者とのやりとりのために一時的に対話編集モードにしたり,他のアプリケーションを実行したりします。対話編集
実行
代入ステートメント変数や項目に値を格納します。代入
式ステートメントそのものを単独で書き,その式を評価させます。組込み関数評価時の効果を利用できます。(任意の式)
ファイル操作関連ステートメントファイルを開いたり,読込み,書出し,印刷などの [ファイル] メニューに相当する機能を実行します。また,ファイルの作成や変換など,ファイル単位の処理を実行します。オープン
印刷
ファイル変換
レコード操作関連ステートメント表ファイルのレコードを挿入したり,値を訂正したりします。カーソル移動
レコード挿入
探索関連ステートメント表ファイル中のレコードを検索したり選択したりします。レコード数を指定しての移動もあります。検索
選択
フォーカス移動
表操作関連ステートメント表ファイルに対する整列,集計,併合などの一括した処理を実行します。索引登録
クロス集計
併合
表示関連ステートメント表示形式やオブジェクト属性などの表示/印刷に関わる設定を変更したり,ウィンドウの表示/非表示を制御したりします。表示形式
ウィンドウ表示
表カード切替え
その他のステートメントメッセージを表示したり,各種の情報を取得/設定したり,デバッグのための情報を表示したりします。ダイアログ
かな漢制御
デバッグ

ラベル

ラベルは,DPLプログラム中の特定の場所に名前を付けます。この名前は,GOTO ステートメントによって実行の順序を変更するときに指定して,分岐先の位置を示します。

注釈

プログラム中に説明や覚書きのために「注釈」と呼ぶ任意の文字列を挿入しておくことができます。


実行制御

ある条件によって実行されるステートメントを変更したり,同じステートメントを繰り返し実行したり,あるいは他の DPL やアプリケーションを実行させるための機能が用意されています。

条件による処理の振り分け

条件によって実行される処理を切り替える方法としては,IFステートメントと SWITCHステートメントがあります。

実行の繰返し

回数や条件を指定して,ステートメントの並び(ブロック)を繰り返し実行させることができます。

手続きの呼出し

DPL 中の複数の場所で使われる処理は,「手続き」として宣言しておき,繰り返し利用することができます。

処理の流れの変更

上から下へというステートメントの実行順序を変更し,プログラム中の別の場所のステートメントを実行させます。

他のプログラムの実行

実行ステートメントを使うと,他の DPL,スクリプト,あるいは他の Windowsアプリケーションを起動することができます。

プログラムの一時停止と終了


利用者インターフェースの作り方

DPLプログラムの実行中に,利用者に対してメッセージや情報を提示したり,利用者からの入力を得る方法としては次のものがあります。

ダイアログステートメントによるメッセージの表示と利用者入力

画面表示用カードの利用

ダイアログステートメントで表示できる情報は限られたものです。さらに多くの情報を表示したり,好みに合った美しい表示を行なおうとする場合は画面表示用のカードを作成します。

DBPro の対話編集機能の利用

DPLプログラムの大きな特徴の一つは,DBPro が持っている対話編集機能をプログラム中からそのまま利用できることです。

メニューコマンドに用意されているダイアログの利用

対話操作のメニューコマンドに対応しているステートメントでは,対話操作のときに表示されるダイアログを使って利用者にパラメータを指定させることができます。

画面表示の変更と機能制限

利用者に対する DBPro ウィンドウの見え方を変更したり,表やカードの表示を一時的に変更したりすることができます。また,利用者が不正な操作をしてしまわないように,DPL実行中は指定したメニューコマンドを無効にしたり,カードのボタンを一時的に無効にしたりできます。

ウィンドウ表示ステートメント編集ウィンドウの表示/非表示を切り替えたり,位置や大きさを変更したりします。
表カード切替えステートメント表からカードへ,カードから表へ,カードからカードへ,同じレコードを別のウィンドウに表示します。
表示形式ステートメント表編集ウィンドウの表示形式を切り替えます。
表示形式登録ステートメント画面表示や表印刷のために新たな表示形式を登録します。
項目表示順序ステートメント表編集ウィンドウの項目表示順序を変更します。
項目固定ステートメント指定した項目を表編集ウィンドウの左側に固定します。
項目表示属性ステートメント表編集ウィンドウの項目の表示属性を指定します。
表示幅自動調整ステートメント表編集ウィンドウの項目表示幅をデータの長さに合わせます。
フォント設定ステートメントフォント番号に対するフォントの割当てを変更します。
オブジェクト属性ステートメントカード中の一部のオブジェクトについて表示属性を変更したり,ボタンの機能を変更したりします。
シート移動ステートメントカード編集ウィンドウで表示しているシートを切り替えます。
フォーカス移動ステートメントカード編集ウィンドウでフォーカスを当てるオブジェクトを指定します。
カーソル移動方向ステートメント表編集ウィンドウおよびカードの表オブジェクトでセルカーソルを横に進めるか縦に進めるかを指定します。
最新状態表示ステートメントウィンドウのデータを最新状態にして再表示します。
再描画ステートメント実行中のウィンドウ再描画を抑制し,画面のちらつきを抑えます。
メニューバーステートメントメニューバーの表示/非表示を指定します。
ツールバーステートメントツールバーの大きさを変えたり,非表示にしたりします。
ステータスバーステートメントステータスバーの表示/非表示を指定します。
ファイル名表示ステートメントファイル名にドライブ名やパス名を付加するか否か指定します。
図形項目描画ステートメントカードの図形項目の描画を止めます。
中止ダイアログステートメント中止ダイアログの表示/非表示を指定します。
機能制限ステートメント指定したメニューコマンドを無効にします。

データベース操作機能

DPL で表ファイルのレコードを操作するときは,「カーソル」を使って対象ファイルやレコードを指定します。レコードの挿入や訂正の他に,対話編集のメニューに用意されているほぼすべてのコマンドを利用することができます。

カーソルについて

DPL中でレコードを挿入したり訂正したりするときは,「カーソル」と呼ぶ識別情報を使って対象となるウィンドウやレコードを指定します。

カレントカーソル

編集の開始と終了

データベースファイルの編集は,オープンステートメントで開始しクローズステートメントで終了します。

オープンステートメント表編集,カード編集,ビュー編集の各ウィンドウを開きます。
クローズステートメントウィンドウを閉じます。選択ウィンドウや集計ウィンドウの場合はウィンドウが閉じられるだけですが,実表のウィンドウを閉じると表ファイルの編集が終了します。
保存ステートメント編集途中の表ファイルをいったんディスクに保存し,そのまま編集を継続します。
別名保存ステートメントそこまでの編集結果を新しい表ファイルとして保存し,そのファイルの編集を継続します。

レコードの編集

カーソル位置にレコードを挿入したり,カーソル位置のレコードを更新したりします。

カーソル移動ステートメントカーソルを進めたり戻したりします。
ジャンプステートメントカーソル移動ステートメントと同じです。
整列ステートメントレコードを整列し,カーソルが進む順序を指定します。
レコード挿入ステートメント新しいレコードを挿入します。
レコード更新ステートメントカーソル位置のレコードの項目値を更新します。
レコード削除ステートメントレコードを削除します。
レコード複写ステートメントカーソル位置のレコードと同じレコードを挿入します。
レコードマークステートメントカーソル位置のレコードにレコードマークを付けます。

探索関連の操作

条件に合うレコードを探してカーソルを移動したり,条件に合うレコードだけを集めて選択ウィンドウを開いたりします。

項目検索ステートメント対話操作の項目検索ダイアログを使ってレコードを探します。
検索ステートメント条件を指定してレコードを探します。
項目選択ステートメント対話操作の項目選択ダイアログを使ってレコードを選びます。
選択ステートメント条件を指定してレコードを選びます。
重複レコード選択ステートメント項目値が重複するレコードを選びます。
単一化選択ステートメント項目値が重複するレコードは一つだけ残します。

表ファイル全体に対する一括操作

レコード単位での編集とは別に,対話操作で用意されている一括編集機能が DPLステートメントとしても用意されています。これらを使うと,DPL中でカーソルを移動させながら1レコードずつ処理するよりも効率良く編集することができます。

集計ステートメント縦集計を計算します。
クロス集計ステートメントクロス集計表を作成します。
項目集計ステートメント指定した項目の集計値をシステム変数に設定します。
一時項目挿入ステートメント
一時項目削除ステートメント
一時的な項目を新たに作成します。
置換ステートメントすべての項目の値を式の値で置き換えます。
再計算ステートメント計算項目,仮想項目の値を再計算します。
併合ステートメントトランザクションファイルの内容でマスターファイルの内容を更新します。

各種登録情報などの利用

DPL で作成するアプリケーションでは,プログラム中に多くの処理を記述するのではなく,あらかじめ表ファイルやカードファイル中にさまざまな登録情報やオブジェクトを用意しておくことが効率的で分かりやすいプログラムを作成するコツです。


エラー処理

ステートメントの実行中にエラーが発生した場合は,システム変数 $$CMDSTATE にエラーの内容を示す値が設定されます。


その他の機能

上記以外では,DPLステートメントで次のような処理が行なえます。ここまでに記述されていないステートメントについてはDPL ステートメント一覧を参照してください。

ファイル操作

状態取得/設定

さまざまな状態を取得したり,設定したりします。

表属性設定ステートメント
画面更新間隔ステートメント
カード計自動計算ステートメント
セル訂正開始時ステートメント
計算項目スキップステートメント
かな漢制御ステートメント

旧バージョンとの相違

DBPro V4 の DPL ステートメントは,DBPro V3.2 までのステートメントと極力互換性を保つように改訂されましたが,次の点に関して互換性が保たれていません。これらのステートメントが使われている DPL プログラムを V4 で実行する場合には,お手数ですが対応する別のステートメントを使って書き直していただけるようにお願いいたします。これら以外の追加や変更に関しては,V3 までの DPL と互換性を保ちつつ変更されていますので特に修正する必要はありません。

DBProヘルプ目次へ