Cの場合、本関数によって、直前に行った入力処理の入力完了の要因となったアテンション情報を獲得します。COBOLの場合、入力後のSELECTED FUNCTION句に通知コードが格納されます。
PSINT PSFUNCTION ps_get_attention (
PSFILE psfile,
PSPSTR pAtten);
psfile | : | オープン処理で獲得した表示ファイル識別子を指定します。 |
pAtten | : | アテンション情報を格納する領域へのポインタを指定します。アテンション情報4バイトとNULLを通知するため、5バイト以上の領域が必要です。 |
画面を表示した後に入力処理を行い、入力完了の要因となったアテンション情報により処理を切り分けます。
PSFILE psfile; SAMPLE samp; PSSTR Atten[5]; PSUSHORT Error; 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, "SCREEN", &samp, 0); ps_get_attention(psfile, Atten); if(!strcmp(Atten, "E000")){ ~ 「実行」キーを押した場合の処理 ~ } else if(!strcmp(Atten, "F002")){ ~ 「PF2」キーを押した場合の処理 ~ } else ;
Cの場合、正常終了には0が返されます。psfileの指定に誤りがあるとエラーになり、2が返されます。
入力後のSELECTED FUNCTION句を調査する。
特にありません。
画面を表示した後に入力処理を行い、入力完了の要因となったアテンション情報により処理を切り分けます。
MOVE "SAMP" TO DSP-FORMAT. MOVE " " TO DSP-MODE. MOVE "@ALLF" TO DSP-GROUP. READ ディスプレイファイル. IF DSP-ATTN = "E000" THEN ~ 「実行」キーを押した場合の処理 ~ END-IF. IF DSP-ATTN = "F002" THEN ~ 「PF2」キーを押した場合の処理 ~ END-IF.