|目次|前ページ|次ページ| ───────────────────────────────────── ◆◆ヘルプ窓表示選択関数使用手引書◆◆ copyright エスアイエム ───────────────────────────────────── ■<<<サブルーチン一覧>>> [1]ポップアップリスト窓型サブルーチン(^ZVSSELW) *** ポップアップウインドウ形式で表示されます。 *** 終了すれば地画面が自動的に復元されます。($$^ZVSW3()によって) *** 最初は1ページ分の表示データのみ読み込むタイプ *** 汎用性の高いサブルーチンに設計されています *** 初期選択されている選択肢のページが表示されるとは限らない *** 多量の選択肢を持つデータファイルの表示選択にも使用可能 *** ページを捲るのは1頁毎しか出来ない [2]少量のリスト選択窓サブルーチン(全件読込型)(^ZVSSELA) *** ポップアップウインドウ形式で表示されます。 *** 終了すれば地画面が自動的に復元されます。($$^ZVSW3()によって) *** 最初に全ページ分の表示データのみ読み込むタイプ *** 汎用性の高いサブルーチンに設計されています *** 必ず初期選択されている選択肢のページが表示される *** 少量の選択肢を持つコードテーブルの表示選択に使用 *** ページを捲るのは1頁毎しか出来ない [3]退避GLOBALへ書き込むモードの窓無リスト選択サブルーチン(^ZVSSELBS) *** 選択時さらにこの上にポップアップリスト窓を表示可能です。 *** 窓ではなくリスト形式で表示されます。 *** 終了しても地画面は復元されません。リスト表示が残ります。 *** 最初は1ページ分の表示データのみ読み込むタイプ *** 汎用性の高いサブルーチンに設計されています *** 初期選択されている選択肢のページが表示されるとは限らない *** 多量の選択肢を持つデータファイルの表示選択にも使用可能 *** ページを捲るのは1頁毎しか出来ない *** リスト表示文字属性はウインドウシステムにより制限されます。 [4]退避GLOBALへ書き込まないモードの窓無リスト選択サブルーチン(^ZVSLISTB) *** 選択時さらにこの上にポップアップリスト窓を表示した場合は自分で復元が必要です。 *** 窓ではなくリスト形式で表示されます。 *** 終了すれば地画面が自動的に復元されます。($$^ZVSW3()によって) *** 最初は1ページ分の表示データのみ読み込むタイプ *** 汎用性の高いサブルーチンに設計されています *** 初期選択されている選択肢のページが表示されるとは限らない *** 多量の選択肢を持つデータファイルの表示選択にも使用可能 *** ページを捲るのは1頁毎しか出来ない *** リスト表示文字属性はウインドウシステムにより制限を受けません。 ■<<<呼び出しパラメタとリターン値の説明>>> [1]※※※ テーブルに関する情報変数 ※※※ CODE => 初期選択されたコード(表示するテーブルの添字の値) 初期値がなければ必ず null に設定すること ^SUBNEXT のでは、現コードを設定しておくこと TTYPE => 定型テーブル名と添字の深さ等を決定する為のタイプ名 TNAMEとLEVEL,STRLEN,CODELEN,SUBSCR(i) は (場合によってはPOSも)自動的に決定されます ※※他の入力変数は指定した値がそのまま有効です null/<undef>の時はTNAME,LEVELで指定します TNAME => 汎用テーブル名(グローバル名) K TTYPE として必須のパラメタを全て設定してコールします TUCI => テーブルuci(nullの場合は^GNAMESPから取得されます) TVOL => テーブルvol 今回のシステムでは使用しません! LEVEL => テーブルグローバルの添字の深さ(次元)1,2,3... どの次元に存在するノードをリスト表示の対象とするか SUBSCR(i)=> グローバルの添字の文字列(固定定数) ex. LEVEL=3 ならば SUBSCR(1)とSUBSCR(2)を設定する LastNode => リスト表示データのノードを取得するために SUBSCR(i)とLEVELで指定された次元のノードの末尾に 付加して参照式を作成する為の添字群 例えば LEVEL=3 の時 "DATA" を指定したら S data=$G(^[TUCI]TNAME(SUBSCR(1),SUBSCR(2),CODE,"DATA")) の様な参照式でデータを取得します。 POS => テーブル名称文字列の位置($P)デリミタ(^)の何番目か リスト表示データの名称部分の取り出し位置を指定する name=$P(data,"^",POS) となります 未定義の場合は 1 となります ---------------------------------------------- [2] ※※※ ウィンドウ表示に関する情報変数 ※※※ TOP => ウィンドウの上端の行位置(枠の内側) LEFT => ウィンドウの左端の桁位置(枠の内側) WIDTH => ウィンドウの幅(桁/枠の内側) ※偶数 HEIGHT=> ウィンドウの高さ(行/枠の内側) *** ウィンドウ全体が 24x80 に収まる必要があります TITLE => [ZVSSELW]/[ZVSSELA]ではタイトルに表示する文字列 [ZVSLISTB]/[ZVSSELBS]では無視します STRLEN=> 表示選択肢名称の表示幅(桁数) CODELEN=> コード部分の長さ(表示するテーブルの添字の値) SPACING=> コード部分と名称の間のスペースの個数 LMGN => コード部分の左の余白桁数 ------------------------------------ [3]※※※ コールバックルーチン※※※ RtnListSel => リスト選択時コールバックルーチン ex. "DISPLAY^MYROUTINE" 1つのコードが選択された時、さらに詳細な画面表示や 次の処理画面が必要な場合は、このコールバックルーチン で行います。 このコールバックルーチンでは、CODE,STRING,wpage,curinx 等を参照できますが、代入が必要な変数は、引数付のNEW コマンドで 前の値を終了時に復元するようにしてください。 %PID=このサブルーチンを起動した時の%PIDの値が %ZI=このサブルーチンを起動した時の%ZIの値が設定されます *** ここでは、さらに、ZVSSELWサブルーチンを起動することが可能ですが 呼び出すパラメタを設定する前に前関係する全てのパラメタ変数を NEW コマンドで保存する必要があります。 *** このコールバックルーチンを終了する直前に $$^ZVSW3()を実行する 必要があるかを決定してください。 *** リスト表示部分については コールバックルーチンを終了後に再描画する 様になっていますので自分で復元する必要はありませんが、 このコールバックルーチンで リスト表示部分以外の画面表示を壊した場合は ZVSSELBS では$$^ZVSW3()を実行すれば復元されますが、ZVSLISTB では 自分で ロジックを記述して再描画しなければなりません。 RtnWorkBuild => リスト表示用ワーク作成コールバックルーチン 標準のリスト表示以外の加工やデータベース参照が必要な場合に このコールバックルーチンを使用します このコールバックルーチンでは、wcnt,wline(wcnt),wsuf(LEVEL) 等を参照できますが、代入が必要な変数は、引数付のNEW コマンドで 前の値を終了時に復元するようにしてください。 *** ここでは wline(wcnt)の情報を変更することのみを行ってください wcnt=現在の表示位置 wnall=選択肢表示名称 wline(wcnt)=表示データ(再構成してください) ex. "WKBUILD^MYROUTINE" [4]表題・ソート順・その他の指定 CodeName => 選択肢コードに付けるヘッダ文字列 HeaderName => 選択肢名称に付けるヘッダ文字列 DscOrder => "DSC":降順 "":昇順 [05-sep-2001] *** リスト表示のキーコードのソート順を指定します [5]ZVSLISTBとZVSSELBSのみ以下のパラメタを設定出来ます Separator => "1":上下の横線を表示する (PageX,PageY) => ページ番号を表示する位置 PageX,又はPageYが"NO"の場合は表示しない ATRB1 => 奇数行表示属性(0,31,...,41,...47) ZVSLISTB では 属性を意味する数字のみ指定可 ZVSSELBS では エスケープシーケンスの部分を指定します(例"32") *** 未定義の場合は,緑("32") ATRB2 => 偶数行表示属性(0,31,...,41,...47) ZVSLISTB では 属性を意味する数字のみ指定可 ZVSSELBS では エスケープシーケンスの部分を指定します(例"44") *** 未定義の場合は,反転青("41") [6]リターン値 CODE => 選択されたコード(表示するテーブルの添字の値) 選択されなかった場合(Endキー等)はnullが設定されます STRING => 選択された名称(テーブルコードの名称をグローバルから再度取出す) ※※※ 入力変数は終了時KILLされます ※※※ [7]キー操作 [↓] ==> 1行下のリスト選択肢をカレント選択位置に変更する [↑] ==> 1行上のリスト選択肢をカレント選択位置に変更する [End] ==> 選択をキャンセルしてサブルーチンを終了する [.] ==> 選択をキャンセルしてサブルーチンを終了する [PgUp] ==> 前頁の表示をする [PgDw] ==> 次頁の表示をする [-] ==> 前頁の表示をする [+] ==> 次頁の表示をする [コード] ==> 指定コードにカレント選択位置を変更する <Return> ==> カレント選択位置の選択肢を選択終了する カレント選択肢が無ければキャンセル終了する ------------------------------------------------------------------------------------------ ■文字列1行入力サブルーチン一覧 [1]文字列1行入力(半角固定) ---- [ZVSREADH] <入力> DATA デフォルト初期文字列(幅1-79) L 入力可能最大文字幅 T タイムアウト秒数(0:タイムアウトしない) O 0:挿入モード 1:置換モード ATRB 文字表示属性 [B]old/[R]evers/[U]nderline/[A] <通常> 又は2桁の色を示す数字 30:黒,31:赤,32:緑,33:黄色,34:青,35:紫,36:水色,37:白 40:リバース黒,41:リバース赤,42:リバース緑,43:リバース黄色 44:リバース青,45:リバース紫,46:リバース水色,47:リバース白 %X(1) 入力域の左端桁位置(1-79) %Y 入力域の行位置 (1-24) TERM 入力ターミネータ(複数個) F01,F02,... "ALL"を指定すると全てを指定した事になります。 UP^DOWN^RIGHT^LEFT^HOME^INSERT^DELETE^END^PAGEUP^PAGEDOWN F01^F02^F03^F04^F05^F06^F07^F08^F09^F10 F11^F12^F13^F14^^F15^F16^^F17^F18^F19 F20^F21^F22^F23^F24^F25 <出力> DATA (入力された文字列) ZB 入力終了ファンクションキーコード ZBX 入力終了ファンクションキーコード名 [2]文字列1行入力(全角固定) ---- [ZVSREADZ] <入力> DATA デフォルト初期文字列(幅1-78) L 入力可能最大文字幅(1->79) T タイムアウト秒数(0:タイムアウトしない) O 0:挿入モード 1:置換モード ATRB 文字表示属性 [B]old/[R]evers/[U]nderline/[A] <通常> 又は2桁の色を示す数字 30:黒,31:赤,32:緑,33:黄色,34:青,35:紫,36:水色,37:白 40:リバース黒,41:リバース赤,42:リバース緑,43:リバース黄色 44:リバース青,45:リバース紫,46:リバース水色,47:リバース白 %X(1) 入力域の左端桁位置(1-79) %Y 入力域の行位置(1-24) TERM 入力ターミネータ(複数個) F01,F02,... "ALL"を指定すると全てを指定した事になります。 <出力> DATA (入力された文字列) ZB 入力終了ファンクションキーコード ZBX 入力終了ファンクションキーコード名 [3]文字列1行入力(全半角混在) ---- [ZVSREAD] <入力> DATA デフォルト初期文字列(幅1-79) L 入力可能最大文字幅(1-79) T タイムアウト秒数(0:タイムアウトしない) O 0:挿入モード 1:置換モード ATRB 文字表示属性 [B]old/[R]evers/[U]nderline/[A] <通常> 又は2桁の色を示す数字 30:黒,31:赤,32:緑,33:黄色,34:青,35:紫,36:水色,37:白 40:リバース黒,41:リバース赤,42:リバース緑,43:リバース黄色 44:リバース青,45:リバース紫,46:リバース水色,47:リバース白 %X(1) 入力域の左端桁位置(1-78) %Y 入力域の行位置 (1-24) TERM 入力ターミネータ(複数個) F01,F02,... "ALL"を指定すると全てを指定した事になります。 <出力> DATA (入力された文字列) ZB 入力終了ファンクションキーコード ZBX 入力終了ファンクションキーコード名 -------------------------------------------------------------- ※ファンクションキーの発生文字列を以下の様に設定しておきます。 -------------------------------------------------------------- KEY名称 TERM設定値 ZBの値 発生コード 備考 -------------------------------------------------------------- <UP> UP 17 <esc>[A 矢印キー <DOWN> DOWN 18 <esc>[B 矢印キー <LEFT> LEFT 20 <esc>[D 矢印キー <RIGHT> RIGHT 19 <esc>[C 矢印キー -------------------------------------------------------------- <Find> HOME 21 <esc>[1~ [Home] <Insert> INSERT 22 <esc>[2~ [Insert] <Remove> DELETE 23 <esc>[3~ [Delete] <Select> END 24 <esc>[4~ [End] <Prev> PAGEDOWN 25 <esc>[5~ [PageDown] <Next> PAGEUP 26 <esc>[6~ [PageUp] -------------------------------------------------------------- <F1> F01 32 <esc>OP [PF1] <F2> F02 33 <esc>OQ [PF2] <F3> F03 34 <esc>OR [PF3] <F4> F04 35 <esc>OS [PF4] <F5> F05 36 <esc>[16~ [F5] <F6> F06 37 <esc>[17~ [F6] <F7> F07 38 <esc>[18~ [F7] <F8> F08 39 <esc>[19~ [F8] <F9> F09 40 <esc>[20~ [F9] <F10> F10 41 <esc>[21~ [F10] <F11> F11 43 <esc>[23~ [PF11]/[ShiftF1] <F12> F12 44 <esc>[24~ [PF12]/[ShiftF2] ---------<シフトなのでなるべく使用しない>--------------------- <F13> F13 45 <esc>[25~ [ShiftF3] <F14> F14 46 <esc>[26~ [ShiftF4] <F15> F15 48 <esc>[28~ [ShiftF5] <Do> <F16> F16 49 <esc>[29~ [ShiftF6] <Help> <F17> F17 51 <esc>[31~ [ShiftF7] <F18> F18 52 <esc>[32~ [ShiftF8] <F19> F19 53 <esc>[33~ [ShiftF9] <F20> F20 54 <esc>[34~ [ShiftF10] -------------------------------------------------------------- <F21> F21 55 <esc>[35~ [ShiftF11] <F22> F22 56 <esc>[36~ [ShiftF12] -------------------------------------------------------------- -------------------------------------------------------------- ───────────────────────────────────── 4-1 |目次|前ページ|次ページ|