入力完了時の項目の状態を参照します。ディスプレイ機能でだけ有効な機能です。
PSCHAR PSFUNCTION ps_get_item_status(
PSPUCHAR field);
field | : | 項目状態を参照する項目を指定します。 |
入力項目"R001"の値をオペレータにより変更したかどうかを確認します。
PSFILE psfile; SAMPLE samp; PSUSHORT Error; PSCHAR Status; psfile = ps_open("DSPFILE",PS_OPEN_DSP,&Error,0); ps_set_formatsize(psfile,"SAMPLE",s_SAMPLE); ~ レコードデータ領域 samp へのデータ設定 ~ ps_write(psfile,PS_WRITE_NORMAL,"SCREEN",&samp,0); ps_read(psfile,PS_READ_NOERASE|PS_READ_CHANGED,"SCREEN",&samp,0); if((Status = ps_get_item_status(samp.R001)) == PS_STATUS_UNCHANGED){ ~ 入力項目R001の値をオペレータにより変更しなかったときの処理 ~ }
入力完了時の項目の状態が返されます。値とその意味は以下のとおりです。
PS_STATUS_DEFAULT | : | 入力データにエラーはなく、入力を省略しませんでした。選択した項目ではありません。データを変更しました。 |
PS_STATUS_ERROR | : | 入力データにエラーがありました。 |
PS_STATUS_OMIT | : | 省略可能項目で、入力を省略しました。 |
PS_STATUS_ANK | : | 日本語項目を英数字項目として入力しました。 |
PS_STATUS_SELECTED | : | 選択した項目です。 |
PS_STATUS_UNCHANGED | : | データを変更しませんでした。 |
PS_STATUS_JPN | : | 検査なし指定の日本語項目で日本語を入力しました。(ウィンドウ情報ファイルにASPJPNSETN(検査指定なしの日本語項目での日本語入力時『N』通知)を指定した場合だけ) |
入力後の項目ごとの特殊レジスタEDIT-STATUSを調査する。
なし
入力項目"R001"の入力にエラーがないかどうか確認します。
MOVE "SAMP" TO DSP-FORMAT. MOVE " " TO DSP-MODE. MOVE "@ALLF" TO DSP-GROUP. READ ディスプレイファイル. IF EDIT-STATUS OF R001 = "E" THEN ~ 入力項目R001にエラーがあったときの処理 ~ END-IF.
対象項目ごとの特殊レジスタEDIT-STATUSが以下の状態を示します。
" " (半角の空白) | : | 入力データにエラーはなく、入力を省略しませんでした。選択した項目ではありません。データを変更しました。 |
"E" | : | 入力データにエラーがありました。 |
"Z" | : | 省略可能項目で、入力を省略しました。 |
"A" | : | 日本語項目を英数字項目として入力しました。 |
"S" | : | 選択した項目です。 |
"U" | : | データを変更しませんでした。 |
"N" | : | 検査なし指定の日本語項目で日本語を入力しました。(ウィンドウ情報ファイルにASPJPNSETN(検査指定なしの日本語項目での日本語入力時『N』通知)を指定した場合だけ) |
本機能を使用する場合、定義体作成時に項目制御部を定義する必要があります。
1つの利用者プログラムでは項目制御部の長さの異なる定義体を混在して使用することはできません。
COBOLの場合、入力処理を行う前に、特殊レジスタEDIT-STATUSを初期化してください。初期化しない場合、前回の設定内容が残り、期待した結果にならない場合があります。