|目次前ページ次ページ|
───────────────────────────────────
◆新プログラミング解説[M言語]※※[new]※※ 
───────────────────────────────────
● サンプルプログラム ZVCMFR4/ZVCMFR4A の解説  
───────────────────────────────────
ZVCMFR4の画面イメージ
  --- ZVCMFR4 --- 
───────────────────────────────────
 VCMFRAME  ;;;VCM骨組みルーチン 
   S VMexit=0 ;;;Loop抜け出しSW;;; 
   D INITSB^ZVCMFR4A ;;;初期化とフォームコントロールの作成部;;; 
   F  D RDMESG Q:VMexit!(RESP="")  D MSGDISPAT Q:VMexit!(RESP="")  D:$G(MSGCNT) MSGPOP ;;; 
   ---> イベント応答読み込み時イベント振り分け処理します 
   ---> フォームが閉じられた場合などに終了します 
   D TERMSB^ZVCMFR4A ;;;終了処理;;; 
   ---> 終了処理します(廃棄) 
   Q 
───────────────────────────────────
 RDMESG  ;;;イベント応答読み込み;;; 
   ;;;U 0:(WIDTH=0:NOECHO:PASTHRU:TERM=$C(13)) 
   ;;;R RESP ;;;イベント応答読み込み;;; 
   ;;;U 0:NOPASTHRU 
   ;;;;;;;;;;[同期モード版];;;;;;;;;;;;;;;;;; 
   ;;;D DEFAULT^ZVCMSYN ;;; 
   ;;;D REQUEST^ZVCMSYN ;;; 
   S Rtail=$C(13),ANSWER=1,TIMER=0 
   S TERMC=13,HEADC=0 ;;; 
   U 0:(WIDTH=0:NOECHO) W $C(27)_"%1010;1;;"_TIMER_";;;; M" 
   ---> イベント要求を送信 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S RESP=$$ReadMsg^ZVCMSUB(Rtail) ;;;メッセージの読み込み;;; 
   ---> イベントを受信 
   ;;;W !,RESP 
   D VCMRESP^ZVCMSUB ;;;リスポンスメッセージの分解;;; 
   ---> 応答イベントをローカル変数に分解します 
   I $G(DEBUG),RESP'="" D DSPRESP^ZVCMDBG ;;;DEBUG-MODE;;; 
   Q 
───────────────────────────────────
 INITVAR  ;;;変数設定;;; 
   ;;;S A=$$GetMsgHead^ZVCMSUB(1) ;;;応答の先頭文字;;; 
   ;;;S A=$$GetMsgTail^ZVCMSUB(1) ;;;応答の末尾文字;;; 
   ;;;S A=$$GetMsgDelim^ZVCMSUB(1) ;;;応答のデリミタ文字;;; 
   D ReadMsgFormat^ZVCMSUB ;;;;;;応答フォーマットを取得する 
   ---> 現在の応答フォーマットを取得する 
   S FORMno=55,FORMcid=111 ;;;フォーム番号;;; 
   S SBARcid=525 ;;;ステータスバー;;; 
   D INITIN1 ;;;入力変数設定;;; 
   D INITIN2 ;;;入力変数設定;;; 
   Q 
───────────────────────────────────
 INITIN1  ;;;入力変数設定;;; 
   S inID="" ;;;ID番号;;; 
   S inNEW="" ;;;新規登録;;; 
   Q 
───────────────────────────────────
 INITIN2  ;;;入力変数設定;;; 
   S inNAME="" ;;;氏名;;; 
   S inSEX="2" ;;;性別(初期値=女性);;; 
   S inBDY="" ;;;生年月日;;; 
   S inOCU="" ;;;職業;;; 
   S inTEL="" ;;;電話番号;;; 
   S inKEN="" ;;;県;;; 
   S inPOST="" ;;;郵便番号;;; 
   S inEML="" ;;;Email;;; 
   S inCMNT="" ;;;コメント;;; 
   Q 
───────────────────────────────────
※※イベントの種類毎に振り分け処理します 
 MSGDISPAT  ;;;イベント振り分け処理;;; 
   ;;; Revent2 --> イベントコード番号(新) 
   I Rmain="FORMCLOSE",Rform=FORMno S VMexit=1 ;;;Loop抜け出しSW;;; 
   ---> フォームがクローズ操作されたイベント 
   I Rerr D NOTEVENT Q  ;;;VCMイベント以外の入力;;; 
   ---> イベント応答のフォーマットに誤り 
   I Revent2=1 D EVCLICK Q  ;;;左マウス(click);;; 
   ---> コントロールがクリックイベント 
   I Revent2=2 D EVPOPUP Q  ;;;右マウス(popup);;; 
   ---> コントロールがポップアップイベント 
   I Revent2=3 D EVKEYBD Q  ;;;キーイベント;;; 
   ---> コントロールがキーボードイベント(指定されたキーコードのみ発生) 
   I Revent2=5 D EVCLOSE Q  ;;;クローズイベント;;; 
   ---> フォームがクローズ操作されたイベント 
   I Revent2=11 D EVKILFC Q  ;;;フォーカスを失った;;; 
   ---> コントロールがフォーカスを失ったイベント 
   ---> 通常このイベント発生時に値を取得します 
   I Revent2=12 D EVSETFC Q  ;;;フォーカスを得た;;; 
   ---> コントロールがフォーカスを得たイベント 
   ---> 通常このイベント発生時に日本語変換の制御をします 
   ---> 日本語変換の制御が必要なければこのイベントはマスクします 
   I +Revent2=0 D EVSTATUS Q  ;;;状態取得;;; 
   ---> イベント発生ではなく状態取得の答え 
   D EVOTHER ;;;その他のイベント;;; 
   ---> その他のイベント発生 
   Q 
───────────────────────────────────
 NOTEVENT  ;;;VCMイベント以外の入力;;; 
   Q  ;;;今回は無視します;;; 
───────────────────────────────────
※※コントロールのcid毎に振り分け処理します 
 EVCLICK  ;;;左マウス(click);;; 
   S cid=FORMcid,sw=0 D ENABLE^ZVCMFRM ;;;フォーム操作不可;;; 
   ---> 処理に時間がかかると問題を起こすのでイベント発生を禁止 
   I Rcid=202 D READCKB ;;;新規チェック;;; 
   ---> 新規チェックボックスがチェック/解除されたのイベント発生 
   I Rcid=221 D OKBTN ;;;OKボタン;;; 
   ---> <OKボタン>が押されたイベント発生 
   I Rcid=222 D CANBTN ;;Cancelボタン;;; 
   ---> <Cancelボタン>が押されたイベント発生 
   I Rcid=223 S cid=FORMcid D PRINTFORM^ZVCMFRM S editstr="画面印刷 " D DSPSTB ;;画面印刷;;; 
   ---> <画面印刷ボタン>が押されたイベント発生 
   ---> 画面印刷処理を呼び出し 
   I Rcid=224 S cid=FORMcid D CLIPBORD^ZVCMFRM S editstr="クリップボード" D DSPSTB ;;クリップボード;;; 
   ---> <クリップボードボタン>が押されたイベント発生 
   ---> クリップボード出力処理を呼び出し 
   S cid=FORMcid,sw=1 D ENABLE^ZVCMFRM ;;;フォーム操作可;;; 
   ---> イベント発生を再開 
   Q 
───────────────────────────────────
 EVPOPUP  ;;;右マウス(popup)メニュー;;; 
   Q  ;;;今回は無視します;;; 
───────────────────────────────────
※※コントロールのcid毎に振り分け処理します 
 EVKEYBD  ;;;キーイベント;;; 
   ;;;W !,"KEYIVENT=",Rcid," ",Rkeycode 
   I Rcid=201 D  Q  ;;;ID番号;;; 
   .I Rkeycode=13 S cid=203 D FOCUS^ZVCMCTR ;;;氏名にフォーカス;;; 
   ---> ID番号 入力で <CR> 
   Q 
───────────────────────────────────
 EVCLOSE  ;;;クローズイベント;;; 
    ;;;S cid=FORMcid,sw=0 D ENABLE^ZVCMFRM ;;;フォーム操作不可;;; 
   S VMexit=1 ;;;終了 
   Q  ;;;今回はそのまま終了させます;;; 
───────────────────────────────────
※※コントロールのcid毎に振り分け処理します 
 EVKILFC  ;;;フォーカスを失った;;; 
   ;;;;W !,"KILLFOCUS=",Rmain ;;;DEBUG;;; 
   I Rcid=201 S inID=Rmain D:+inNEW=0 READDB D:inNEW CLEARIN Q  ;;;ID番号->データベース読込;;; 
   I Rcid=202 D READCKB Q  ;;;新規チェック;;; 
   I Rcid=502 D READRAD Q  ;;;男性ラジオボタン;;; 
   I Rcid=503 D READRAD Q  ;;;女性ラジオボタン;;; 
   I Rcid=203 S inNAME=Rmain D SETANK^ZVCMFR4 Q  ;;;;;; 
   ---> 氏名入力で入力が完了されたと判断して値を取得 
   ---> 日本語変換をankに設定 
   I Rcid=204 S inBDY=Rmain Q  ;;;;;; 
   I Rcid=205 S inOCU=Rmain Q  ;;;;;; 
   I Rcid=207 S inTEL=Rmain Q  ;;;;;; 
   I Rcid=208 S inKEN=Rmain Q  ;;;;;; 
   I Rcid=209 S inPOST=Rmain Q  ;;;;;; 
   I Rcid=210 S inEML=Rmain Q  ;;;;;; 
   I Rcid=211 S inCMNT=Rmain D SETANK^ZVCMFR4 Q  ;;;;;; 
   Q 
───────────────────────────────────
※※日本語変換制御が不要なら処理はいらない 
※※コントロールのcid毎に振り分け処理します 
 EVSETFC  ;;;フォーカスを得た;;; 
   ;;;I Rcid=203!(Rcid=211) D SETHIRA^ZVCMFR2 Q  ;;;全角ひらがな;;; 
   ---> 日本語変換を全角ひらがなに設定 
   ;;;D SETANK^ZVCMFR2 ;;;無変換;;; 
   ;;;ラジオボタンのチェック状態を変更する(アクセラレータの問題点);;;; 
   I Rcid=502 S status=1,cid=Rcid D ALTER^ZVCMRAD Q  ;;;男性ラジオボタン;;; 
   I Rcid=503 S status=1,cid=Rcid D ALTER^ZVCMRAD Q  ;;;女性ラジオボタン;;; 
   Q 
───────────────────────────────────
 EVSTATUS  ;;;状態取得;;;;;; 
   ;;;(コマンドコードRcommandやローカル変数のスイッチで判定) 
   Q  ;;;今回状態取得はしませんでした;;; 
───────────────────────────────────
 EVOTHER  ;;;その他のイベント;;; 
   Q  ;;;今回は無視します;;; 
───────────────────────────────────
※※OKボタン押された時のデータベース登録処理 
 OKBTN  ;;;OKボタン押された;;; 
   S ERRF=0 
   D  ;;;エラーチェック;;; 
   .I inID'?1N.N S ERRF=201 Q 
   .I inNAME="" S ERRF=203 Q  ;;; 
   .I inBDY="" S ERRF=204 Q  ;;; 
   .I '(inSEX="1"!(inSEX="2")) S ERRF=502 Q  ;;;性別(初期値=女性);;; 
   .I '(inBDY?4N1"."1.2N1"."1.2N) S ERRF=205 Q  ;;;生年月日;;; 
   .I inOCU="" S ERRF=206 Q  ;;;職業;;; 
   .I '(inTEL?1N.N1"-"1N.N1"-"4N) S ERRF=207 Q  ;;;電話番号;;; 
   .I inKEN="" S ERRF=208 Q  ;;;県;;; 
   .I inPOST'?7N S ERRF=209 Q  ;;;郵便番号;;; 
   .I inEML="" S ERRF=210 Q  ;;;Email;;; 
   ;;;;エラ表示;;; 
   I ERRF S editstr="入力データにエラーがあります "_ERRF D DSPSTB D ERRFOCUS Q  ;;;ステータスバーに表示する;;; 
   ;;;コメント;;; 
   S ^WKAIIN(inID,"NAME")=inNAME ;;; 
   S ^WKAIIN(inID,"BDY")=inBDY ;;; 
   S ^WKAIIN(inID,"SEX")=inSEX ;;; 
   S ^WKAIIN(inID,"OCU")=inOCU ;;; 
   S ^WKAIIN(inID,"TEL")=inTEL ;;; 
   S ^WKAIIN(inID,"KEN")=inKEN ;;; 
   S ^WKAIIN(inID,"POST")=inPOST ;;; 
   S ^WKAIIN(inID,"EMAIL")=inEML ;;; 
   S ^WKAIIN(inID,"CMNT")=inCMNT ;;; 
   S editstr="データベース格納完了" D DSPSTB ;;;ステータスバーに表示する;;; 
   S cid=201 D FOCUS^ZVCMCTR ;;;フォーカス自動設定;;; 
   Q 
───────────────────────────────────
 ERRFOCUS  ;;;エラー項目にフォーカスする;;; 
   S cid=ERRF D FOCUS^ZVCMCTR ;;;自動設定;;; 
   Q 
───────────────────────────────────
※※キャンセルボタン押された時のキャンセル処理 
 CANBTN  ;;Cancelボタン;;; 
   D INITIN1 ;;;入力変数設定;;; 
   D INITIN2 ;;;入力変数設定;;; 
   D VALSET1 ;;;コントロル値表示;;; 
   D VALSET2 ;;;コントロル値表示;;; 
   S cid=201 D FOCUS^ZVCMCTR ;;;フォーカス自動設定;;; 
   S editstr="キャンセル" D DSPSTB ;;;ステータスバーに表示する;;; 
   Q 
───────────────────────────────────
 READCKB  ;;;新規チェック;;; 
   D  ;;; 
   .I +Rmain=0 S inNEW=0 Q  ;;;主情報=チェック状態;;; 
   .S inNEW=1 ;;;新規チェック状態;;; 
   D  ;;; 
   .I inNEW S editstr="新規" D DSPSTB Q  ;;;ステータスバーに表示する;;; 
   . S editstr="既入力データ" D DSPSTB Q  ;;;ステータスバーに表示する;;; 
   ;;;W !,"新規=",inNEW,! 
   Q 
───────────────────────────────────
 READRAD  ;;;ラジオボタン;;; 
   D  ;;; 
   .I Rcid=502 D  Q 
   ..I Rmain S inSEX=1 Q  ;;;主情報=チェック状態;;; 
   .I Rcid=503 D  Q 
   ..I Rmain S inSEX=2 Q  ;;;主情報=チェック状態;;; 
   ;;;W !,"性別=",inSEX,! 
   Q 
───────────────────────────────────
※※データベース読込処理 
 READDB  ;;;ID番号->データベース読込;;; 
   I inID="" S editstr="ID番号がNULL" D DSPSTB S cid=201 D FOCUS^ZVCMCTR Q  ;;; 
   I $D(^WKAIIN(inID))=0 S editstr="登録データがありません" D DSPSTB Q  ;;; 
   S inNAME=$G(^WKAIIN(inID,"NAME")) ;;; 
   S inBDY=$G(^WKAIIN(inID,"BDY")) ;;; 
   S inSEX=$G(^WKAIIN(inID,"SEX")) ;;; 
   S inOCU=$G(^WKAIIN(inID,"OCU")) ;;; 
   S inTEL=$G(^WKAIIN(inID,"TEL")) ;;; 
   S inKEN=$G(^WKAIIN(inID,"KEN")) ;;; 
   S inPOST=$G(^WKAIIN(inID,"POST")) ;;; 
   S inEML=$G(^WKAIIN(inID,"EMAIL")) ;;; 
   S inCMNT=$G(^WKAIIN(inID,"CMNT")) ;;; 
   D VALSET2 ;;;コントロル値表示;;; 
   S editstr="データベース読込" D DSPSTB ;;;ステータスバーに表示する;;; 
   ;;;;S cid=203 D FOCUS^ZVCMCTR ;;;フォーカス自動設定;;; 
   Q 
───────────────────────────────────
 CLEARIN  ;;;入力領域クリア;;; 
   D INITIN2 ;;;入力変数設定;;; 
   D VALSET2 ;;;コントロル値表示;;; 
   ;;;S cid=203 D FOCUS^ZVCMCTR ;;;フォーカス自動設定;;; 
   S editstr="" D DSPSTB ;;;ステータスバーに表示する;;; 
   Q 
───────────────────────────────────
 VALSET1  ;;;コントロール値表示;;; 
   S cid=201,editstr=inID D TEXT^ZVCMEDT 
   S cid=202,status=inNEW D ALTER^ZVCMCKB ;;;チェックボックスのチェック状態を変更する 
   Q 
───────────────────────────────────
※※コントロール値に値を表示する処理 
 VALSET2  ;;;コントロール値表示;;; 
   S cid=203,editstr=inNAME D TEXT^ZVCMEDT ;;;氏名;;; 
   S cid=204,editstr=inBDY D TEXT^ZVCMEDT ;;;生年月日;;; 
   S cid=502,status=$S(inSEX="1":1,1:0) D ALTER^ZVCMRAD ;;;性別(初期値=男性);;; 
   S cid=503,status=$S(inSEX="2":1,1:0) D ALTER^ZVCMRAD ;;;性別(初期値=女性);;; 
   S cid=205,pos=+inOCU D SELECT^ZVCMLST ;;;職業;;; 
   S cid=207,editstr=inTEL D TEXT^ZVCMEDT ;;;電話番号;;; 
   S cid=208 I inKEN<1!(inKEN>47) S inKEN="" ;;;県;;; 
   S pos=+inKEN D SELECT^ZVCMCMB ;;;選択表示の変更 
   S cid=209,editstr=inPOST D TEXT^ZVCMEDT ;;;郵便番号;;; 
   S cid=210,editstr=inEML D TEXT^ZVCMEDT ;;;Email;;; 
   S cid=211,editstr=inCMNT D TEXT^ZVCMEDT ;;;コメント;;; 
   Q 
───────────────────────────────────
 DSPSTB  ;;;ステータスバーに表示する;;; 
   S cid=SBARcid,action=0 D TEXT^ZVCMSTB ;;; ステータスバーに表示する文字列を変更する 
   Q 
───────────────────────────────────
※※この処理は同期モードの時必要有りません 
 MSGPOP  ;;;スタックされた応答メッセージ処理;;; 
   S MSGCNTP=$G(MSGCNT) 
   F jjjj=1:1:MSGCNTP S RESP=$G(MSGSTACK(jjjj))  
   .D VCMRESP^ZVCMSUB ;;;リスポンスメッセージの分解;;; 
   .D MSGDISPAT ;;; 
   K MSGSTACK 
   Q 
───────────────────────────────────
 SETANK  ;;;日本語変換しないモード設定;;; 
   N dmy 
   S dmy=$$ImeANK^ZVCMIME() ;;;日本語を直接入力モード設定(変換窓モードを解消);;; 
   Q 
───────────────────────────────────
 SETEISU  ;;;日本語変換全角英数モード設定;;; 
   N dmy 
   S dmy=$$ImeZenkaku^ZVCMIME() ;;;全角入力モードに;;; 
   S dmy=$$ImeSetCnv^ZVCMIME(0,0,0) ;;; 
   Q 
───────────────────────────────────
 SETHIRA  ;;;日本語変換ひらがなモード設定;;; 
   N dmy 
   S dmy=$$ImeZenkaku^ZVCMIME() ;;;全角入力モードに;;; 
   S dmy=$$ImeSetCnv^ZVCMIME(0,3,0) ;;; 
   Q 
───────────────────────────────────
 SETKATA  ;;;日本語変換カタカナモード設定;;; 
   N dmy 
   S dmy=$$ImeZenkaku^ZVCMIME() ;;;全角入力モードに;;; 
   S dmy=$$ImeSetCnv^ZVCMIME(0,1,0) ;;; 
   Q 
───────────────────────────────────
 SETKANA  ;;;半角カタカナモード設定;;; 
   N dmy 
   S dmy=$$ImeZenkaku^ZVCMIME() ;;;全角入力モードに;;; 
   S dmy=$$ImeSetCnv^ZVCMIME(0,1,1) ;;; 
   Q 
───────────────────────────────────
 ROMAON  ;;; 
   S dmy=$$ImeSetM2B^ZVCMIME(1,1,1,1) ;;;2バイト文字セットの状況を設定 
   Q 
───────────────────────────────────
 ROMAOFF  ;;; 
   S dmy=$$ImeSetM2B^ZVCMIME(1,1,0,1) ;;;2バイト文字セットの状況を設定 
   Q 
───────────────────────────────────
───────────────────────────────────
  --- ZVCMFR4A --- 
───────────────────────────────────
───────────────────────────────────
[1] INITSB ;;;初期化とフォームコントロールの作成部;;; 
    D KILL^ZVCMSUB ;;;変数の初期化;;; 
   ---> cid,control以外のrectパラメタとCREATEパラメタのローカル変数削除 
    ;;;D DEBUG^ZVCMSUB ;;;DEBUG-MODE;;; 
   ---> 受信したイベントをVcom画面にデバグ情報表示します 
    ;;;;;;;;;;[同期モード版];;;;;;;;;;;;;;;;;; 
   ---> 以下同期イベントモードの為の設定 
    D DEFAULT^ZVCMSYN ;;;<CR> 
   ---> 同期イベントモードの標準的な設定用にパラメタ設定 
    D SYNCMSG^ZVCMSYN ;;;終端文字<CR>で同期モードに設定;;; 
   ---> 応答メッセージ終端文字<CR>で同期イベントモードに設定 
    D CLEARMSG^ZVCMSYN ;;;応答メッセージ送信キューをクリアする;; 
   ---> 応答同期イベントメッセードはキューイングされますがそのキューを空にします 
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
    D V2MODE^ZVCM999 ;;;新イベントモード(デフォルト);;; 
   ---> イベントマスクによるイベント発生制御モードに設定 
    S sw=0 D VISIBLE^ZVCM999 ;;;コントロールを非表示で作成;;; 
   ---> これにより作成の処理速度を良くします 
    S sw=0 D SCALE^ZVCM999 ;;;コントロールのサイズの行桁単位指定;;; 
   ---> rectの(x,y)(w,h)で指定する単位をテキストの行桁に設定 
    D INITVAR^ZVCMFR4 ;;;変数設定;;; 
   ---> 現在の応答メッセージフォーマットを取得 
   ---> 各編集ボックス等に対応したローカル変数を初期化(null等) 
    D VCMFORM ;;;フォーム作成;;; 
   ---> このアプリ画面の一番外側のフォームを作成する 
    D STATUSBAR ;;;ステータスバー作成;;; 
   ---> エラーメッセージやガイドメッセージや処理/該当件数等を表示するメッセージボード作成 
   ---> 旧来のエミュレータアプリでは、23/24行目に表示していたメッセージ表示 
   ---> ステータスバーは複数個に分割も可能です 
    D VCMCTRS1 ;;;コントロールの作成;;; 
   ---> 編集ボックス/リストボックス等を作成し選択肢を設定 
    D VCMCTRS2 ;;;コントロールの作成;;; 
   ---> スタテックテキストを作成(ラベルでも同じ) 
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定も行う 
    ;;;;;;;;;;;;;;;;;;;;;;;;;; 
    S param=2 D VCOMWINDOW^ZVCMWND ;;;Vcom窓をアイコン化します;;; 
   ---> Vcom窓をアイコン化します(隠します) 
    S sw=1,group=0,form=FORMno D SHOW^ZVCM999 ;コントロールを非表示で作成 
   ---> 非表示で作成したフォームが同じコントロールを全て一斉に表示にします 
    S cid=201 D FOCUS^ZVCMCTR ;;;フォーカスする(9);;; 
   ---> フォームのどのコントロールにフォーカスするか指定します 
    Q 
───────────────────────────────────
 VCMFORM  ;;;フォーム作成;;; 
   D KILL^ZVCMSUB ;;;変数の初期化;;; 
   ---> cid,control以外のrectパラメタとCREATEパラメタのローカル変数削除 
   D V2EVENT^ZVCMFRM ;;;フォームイベントマスク;; ;
   ---> イベントマスクを設定(どのイベントを許可するか) 
   S form=FORMno,group=99,cid=FORMcid,w=60,h=24 ;;;フォーム作成RECTパラメタ 
   ---> (60,24)は行桁サイズでフォームの大きさを指定(クライアントのサイズ) 
   D SETRECT^ZVCMFRM  
   ---> RECTパラメタから rectstr を返します 
   S editstr="会員登録" 
   ---> キャプションに表示する文字列 
   S form=FORMno D CREATE^ZVCMFRM ;;;form;;; 
   ---> rectstr editstr cid ...パラメタからフォームを作成します 
   Q 
───────────────────────────────────
 STATUSBAR  ;;;ステータスバー作成;;; 
   D KILL^ZVCMSUB ;;;変数の初期化;;; 
   ---> cid,control以外のrectパラメタとCREATEパラメタのローカル変数削除 
   S cid=SBARcid,x=1,y=1,w=80,h=1,parent=FORMcid,keycode=5,color=0 
   ---> (80,1)は行桁サイズでステータスバーの大きさを指定(位置は無視される) 
   ---> parentは親フォームのcidを指定します 
   S editstr="" 
   D SETRECT^ZVCMSTB ;;;位置サイズ情報作成;;; 
   D V2EVENT^ZVCMSTB ;;;イベントマスク設定;;; 
   S form=FORMno D CREATE^ZVCMSTB ;;;ステータスバー作成;;; 
   S font=496 D FONT^ZVCMCTR ;;;コントロールのフォントを設定する;;; 
   ---> ステータスバーに表示するフォントを既定します 
   ---> 496のフォントは,MSゴシックでVcom画面フォント高さサイズ-8です 
   ---> 通常Vcom画面フォント高さサイズ-4(498)が適切のようです 
   Q 
───────────────────────────────────
 VCMCTRS1   ;;;コントロールの作成;;; 
   D KILL^ZVCMSUB ;;;変数の初期化;;; 
   D V2EVENT^ZVCMEDT ;;;イベントマスク設定;;; 
   ---> 編集ボックスの許可イベントを指定 
   ---> クリック / キーボード/ フォーカスを得る / フォーカスを失う / イベントを指定 
   ---> フォーカスを得るイベントは通常必要ないがここでは日本語変換モードの 
   ---> 制御を行うので含めていますが、応答速度に影響します 
   S cid=201,x=11,y=2,w=8,h=1,length=8,parent=FORMcid,keycode=0,color=0 
   ---> 行桁(11,2)に幅高さ(8,2)入力最大文字数=8 
   ---> キーボードイベントの発生キーコードは以下を指定 
       0:<RETURN><ESCAPE><UP><DOWN><PGDW><PGUP><END><HELP> 
         <F1><F2><F3><F4><F5><F6><F7><F8><F9><F10> 
         <F11><F12> 
   ---> 色=0は、デフォルト値で,Colorプロパティは設定されない 
   S TabOrder=1,TabStop=2,font=498 D SETRECT^ZVCMEDT  
   ---> タブ順設定を可にしてタブ順を (1)番目に設定 
   ---> 498のフォントは,MS明朝でVcom画面フォント高さサイズ-4です 
   ---> rectstrを作成 
   S editstr="",edit=21,group=10 ;;; 
   S form=FORMno,pm1=2 D CREATE^ZVCMEDT ;;;Edit(ID番号);;; 
   ---> pm1=2は意味が無い 編集ボックスを作成 
   S edit=9,editstr="会員番号を数字で入力" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ---> ヒント文字列を設定 
   ;;;;;;;;チェックボックス;;;;;;;;;;;;;; 
   S cid=202,x=26,y=1.8,w=16,h=1.5,length=w,parent=FORMcid,keycode=0 
   ---> 行桁(26,1)に幅高さ(16,1.8)小数点指定が可能です 
   S editstr="新規登録(&z)$0" 
   ---> キーボードアクセラレータ用の設定も行う(ALT/Z) 
   S TabOrder=2,TabStop=2,font=498 D SETRECT^ZVCMCKB 
   ---> rectstrを作成 
   D V2EVENT^ZVCMCKB ;;;イベントマスク;;; 
   S form=FORMno,group=10 D CREATE^ZVCMCKB ;;;checkbox;;; 
   ---> チェックボックスを作成 
   S edit=9,editstr="会員番号を新規に登録する時チェック" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ---> ヒント文字列を設定 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   D V2EVENT^ZVCMEDT ;;;イベントマスク設定;;; 
   S cid=203,x=11,y=4,w=30,h=1,length=w,parent=FORMcid,keycode=0,color=0 
   S TabOrder=5,TabStop=2,font=498 D SETRECT^ZVCMEDT  
   S editstr="",edit=21,group=20 ;;; 
   S form=FORMno,pm1=2 D CREATE^ZVCMEDT ;;;Edit(氏名);;; 
   S edit=9,editstr="氏名を全角で入力" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ---> ヒント文字列を設定 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   D V2EVENT^ZVCMEDT ;;;イベントマスク設定;;; 
   S cid=204,x=11,y=5,w=15,h=1,length=w,parent=FORMcid,keycode=0,color=0 
   S TabOrder=7,TabStop=2,font=498 D SETRECT^ZVCMEDT  
   S editstr="",edit=21,group=20 ;;; 
   S form=FORMno,pm1=2 D CREATE^ZVCMEDT ;;;Edit(生年月日);;; 
   S edit=9,editstr="西暦(9999.99.99)で入力" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ---> ヒント文字列を設定 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=501,x=5,y=6.1,w=20,h=2.8,length=w,parent=FORMcid,keycode=0,color=9 
   ---> 色=9は LtGray(明るい灰色)を指定 
   S editstr="性別" 
   S TabOrder=9,TabStop=2,font=498 D SETRECT^ZVCMGPB ;;; 
   D V2EVENT^ZVCMGPB ;;;イベントマスク;;; 
   S form=FORMno,group=20 D CREATE^ZVCMGPB ;;;GROUPBOX;;; 
   ---> グループボックスを作成 
   S cid=502,x=6,y=7,w=10,h=1,length=w,parent=FORMcid,keycode=0 
   S editstr="男性(&m)$1",color=9 
   ---> オン状態 
   D V2EVENT^ZVCMRAD ;;;イベントマスク;;; 
   S TabOrder=11,TabStop=2,font=498 D SETRECT^ZVCMRAD ;;; 
   S form=FORMno,group=20 D CREATE^ZVCMRAD ;;;Edit;;; 
   S cid=503,x=14,y=7,w=8,h=1,length=w,parent=FORMcid,keycode=0  
   S editstr="女性(&w)$0",color=9 
   ---> オフ状態 
   S TabOrder=13,TabStop=2,font=498 D SETRECT^ZVCMRAD ;;; 
   D V2EVENT^ZVCMRAD ;;;イベントマスク;;; 
   S form=FORMno,group=20 D CREATE^ZVCMRAD ;;;Edit;;; 
   --->ラジオボタンを作成 
   ;;;;;;;;ListBox;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=205,x=31,y=6,w=14,h=5,length=w,parent=FORMcid,keycode=0 
   S color=9 S TabOrder=14,TabStop=2 D SETRECT^ZVCMLST 
   D V2EVENT^ZVCMLST ;;;イベントマスク;;; 
   S form=FORMno,group=20 D CREATE^ZVCMLST ;;;ListBox;;; 
   ---> リストボックスを作成 
   S edit=9,editstr="職業を選択してください" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ---> ヒント文字列を設定 
   S color=14 D FONTCOLOR^ZVCMCTR ;;コントロールのフォントの色を設定する;;; 
   ---> 文字列のフォントの色を設定(color=14:赤) 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=205 D ADD^ZVCMLST ;;;選択肢の挿入;;; 
   ---> リストボックスに選択肢を挿入 
   W "1:会社員$"_$C(13)_$C(10) 
   W "2:学生$"_$C(13)_$C(10) 
   W "3:主婦$"_$C(13)_$C(10) 
   W "4:自営業$"_$C(13)_$C(10) 
   W "5:無職"_$C(13)_$C(10) 
   W "6:その他"_$C(13)_$C(10)_$C(26) 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   D V2EVENT^ZVCMEDT ;;;イベントマスク設定;;; 
   S cid=207,x=11,y=9,w=15,h=1,length=w,parent=FORMcid,keycode=0,color=0 
   S TabOrder=15,TabStop=2,font=498 D SETRECT^ZVCMEDT  
   S editstr="",edit=21,group=20 ;;; 
   S form=FORMno,pm1=2 D CREATE^ZVCMEDT ;;;Edit(電話番号);;; 
   S edit=9,editstr="電話番号を0999-9999-9999の形式で入力" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ---> ヒント文字列を設定 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=208,x=11,y=10,w=10,h=2,length=w,parent=FORMcid,keycode=0 ;;; 
   S TabOrder=17,TabStop=2 D SETRECT^ZVCMCMB 
   D V2EVENT^ZVCMCMB ;;;イベントマスク;;; 
   S opt=2 ;;;ドロップダウンリスト;;; 
   ---> コンボボックスのスタイルはドロップダウンリスト 
   S form=FORMno,group=20 D CREATE^ZVCMCMB ;;;ComboBox;;; 
   ---> コンボボックスを作成 
   S edit=9,editstr="住所の県名を選択してください" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ---> ヒント文字列を設定 
   S cid=208,CRLF=$C(13)_$C(10) D ADD^ZVCMCMB ;;; 
   ---> コンボボックスに選択肢を挿入 
   W "1:北海道$"_CRLF_"2:青森県"_CRLF_"3:岩手県"_CRLF_"4:宮城県"_CRLF_"5:秋田県"_CRLF_"6:山形県"_CRLF_"7:福島県"_CRLF 
   W "8:茨城県"_CRLF_"9:栃木県"_CRLF_"10:群馬県"_CRLF_"11:埼玉県"_CRLF_"12:千葉県"_CRLF_"13:東京都"_CRLF_"14:神奈川県"_CRLF 
   W "15:山梨県"_CRLF_"16:長野県"_CRLF_"17:新潟県"_CRLF_"18:富山県"_CRLF_"19:石川県"_CRLF_"20:福井県"_CRLF 
   W "21:岐阜県"_CRLF_"22:静岡県"_CRLF_"23:愛知県"_CRLF_"24:三重県"_CRLF_"25:滋賀県"_CRLF_"26:京都府"_CRLF 
   W "27:大阪府"_CRLF_"28:兵庫県"_CRLF_"29:奈良県"_CRLF_"30:和歌山県"_CRLF_"31:鳥取県"_CRLF_"32:島根県"_CRLF 
   W "33:岡山県"_CRLF_"34:広島県"_CRLF_"35:山口県"_CRLF_"36:徳島県"_CRLF_"37:香川県"_CRLF_"38:愛媛県"_CRLF 
   W "39:高知県"_CRLF_"40:福岡県"_CRLF_"41:佐賀県"_CRLF_"42:長崎県"_CRLF_"43:熊本県"_CRLF_"44:大分県"_CRLF 
   W "45:宮崎県"_CRLF_"46:鹿児島県"_CRLF_"47:沖縄県"_CRLF_$C(26) 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   D V2EVENT^ZVCMEDT ;;;イベントマスク設定;;; 
   S cid=209,x=11,y=12,w=15,h=1,length=w,parent=FORMcid,keycode=0,color=0 
   S TabOrder=19,TabStop=2,font=498 D SETRECT^ZVCMEDT  
   S editstr="",edit=21,group=20 ;;; 
   S form=FORMno,pm1=2 D CREATE^ZVCMEDT ;;;Edit(郵便番号);;; 
   S edit=9,editstr="郵便番号を7桁の数字してください" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   D V2EVENT^ZVCMEDT ;;;イベントマスク設定;;; 
   S cid=210,x=11,y=13,w=30,h=1,length=w,parent=FORMcid,keycode=0,color=0 
   S TabOrder=21,TabStop=2,font=498 D SETRECT^ZVCMEDT  
   S editstr="",edit=21,group=20 ;;; 
   S form=FORMno,pm1=2 D CREATE^ZVCMEDT ;;;Edit(Email);;; 
   S edit=9,editstr="Eメールを文字列で入力してください" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   D V2EVENT^ZVCMEDT ;;;イベントマスク設定;;; 
   S cid=211,x=11,y=14,w=40,h=1,length=w,parent=FORMcid,keycode=0,color=0 
   S TabOrder=23,TabStop=2,font=497 D SETRECT^ZVCMEDT  
   S editstr="",edit=21,group=20 ;;; 
   S form=FORMno,pm1=2 D CREATE^ZVCMEDT ;;;Edit(コメント);;; 
   S edit=9,editstr="コメントを文字列で入力してください" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ;;;;;;;PushButton;;;;;;;;;; 
   S cid=221,x=11,y=18,w=13,h=1.5,length=w,parent=FORMcid,keycode=4  
   S TabOrder=31,TabStop=2,font=497 D SETRECT^ZVCMPBT 
   S editstr="登録OK(&k)",group=20 
   D V2EVENT^ZVCMPBT ;;;イベントマスク;;; 
   S form=FORMno D CREATE^ZVCMPBT ;;;Button;;; 
   ---> プッシュボタンを作成 
   S edit=9,editstr="データベースに登録します" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   S cid=222,x=26,y=18,w=13,h=1.5,length=w,parent=FORMcid,keycode=4 
   S TabOrder=32,TabStop=2,font=497 D SETRECT^ZVCMPBT 
   S editstr="キャンセル(&n)",group=20 
   D V2EVENT^ZVCMPBT ;;;イベントマスク;;; 
   S form=FORMno,font=497 D CREATE^ZVCMPBT ;;;Button;;; 
   S edit=9,editstr="処理をキャンセルします" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=223,x=41,y=18,w=13,h=1.5,length=w,parent=FORMcid,keycode=4 
   S TabOrder=33,TabStop=2,font=497 D SETRECT^ZVCMPBT 
   S editstr="画面印刷(&x)",group=20 
   D V2EVENT^ZVCMPBT ;;;イベントマスク;;; 
   S form=FORMno D CREATE^ZVCMPBT ;;;Button;;; 
   ---> プッシュボタンを作成 
   S edit=9,editstr="フォーム画面をプリンタに印刷します" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=224,x=56,y=18,w=14,h=1.5,length=w,parent=FORMcid,keycode=4 
   S TabOrder=34,TabStop=2,font=496 D SETRECT^ZVCMPBT 
   S editstr="クリップボード(&y)",group=20 
   D V2EVENT^ZVCMPBT ;;;イベントマスク;;; 
   S form=FORMno D CREATE^ZVCMPBT ;;;Button;;; 
   ---> プッシュボタンを作成 
   S edit=9,editstr="フォーム画面をクリッフホ-ト出力します" D HINT^ZVCMCTR K edit,editstr ;;;ヒント;;; 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S sw=1,group=0,form=FORMno D SHOW^ZVCM999 ;;;コントロールを非表示で作成;;; 
   ---> 非表示で作成されているので表示にする(ただしここは不要) 
   Q 
───────────────────────────────────
 VCMCTRS2   ;;;コントロールの作成;;; 
   D KILL^ZVCMSUB ;;;変数の初期化;;; 
   S cid=601,x=1,y=2,w=10,h=1,length=w,parent=FORMcid,keycode=5,color=0 
   S editstr="ID番号(&a)",font=498,FocusControl=201 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Aで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=10 S form=FORMno,pm1=2 D CREATE^ZVCMSTX  ;;;Label;;; 
   ---> スタテックテキストを作成 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=602,x=1,y=4,w=10,h=1,length=w,parent=FORMcid,keycode=5,color=0 
   S editstr="氏名(&b)",font=498,FocusControl=203 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Bで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=20 S form=FORMno,pm1=2 D CREATE^ZVCMSTX  ;;;Label;;; 
   ---> スタテックテキストを作成 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=603,x=1,y=5,w=10,h=1,length=w,parent=FORMcid,keycode=5,color=0 
   S editstr="生年月日(&c)",font=498,FocusControl=204 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Cで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=20 S form=FORMno,pm1=2 D CREATE^ZVCMSTX  ;;;Label;;; 
   ;;;;;;;;職業;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=604,x=31,y=5,w=14,h=1,length=w,parent=FORMcid,keycode=0 
   S editstr="職業(&o)",font=498,FocusControl=205 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Oで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=20 S form=FORMno,pm1=1 D CREATE^ZVCMSTX  ;;;Label;;; 
   ---> スタテックテキストを作成 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=605,x=1,y=9,w=10,h=1,length=w,parent=FORMcid,keycode=5,color=0 
   S editstr="電話番号(&e)",font=498,FocusControl=207 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Eで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=20 S form=FORMno,pm1=2 D CREATE^ZVCMSTX  ;;;Label;;; 
   ---> スタテックテキストを作成 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=606,x=1,y=10,w=10,h=1,length=w,parent=FORMcid,keycode=5,color=0 
   S editstr="都道府県(&t)",font=498,FocusControl=208 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Tで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=20 S form=FORMno,pm1=2 D CREATE^ZVCMSTX  ;;;Label;;; 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=607,x=1,y=12,w=10,h=1,length=7,parent=FORMcid,keycode=5,color=0 
   S editstr="郵便番号(&h)",font=498,FocusControl=209 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Hで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=20 S form=FORMno,pm1=2 D CREATE^ZVCMSTX  ;;;Label;;; 
   ---> スタテックテキストを作成 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=608,x=1,y=13,w=10,h=1,length=7,parent=FORMcid,keycode=5,color=0 
   S editstr="Email(&i)",font=498,FocusControl=210 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Iで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=20 S form=FORMno,pm1=2 D CREATE^ZVCMSTX  ;;;Label;;; 
   ---> スタテックテキストを作成 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S cid=609,x=1,y=14,w=10,h=1,length=7,parent=FORMcid,keycode=5,color=0 
   S editstr="コメント(&j)",font=498,FocusControl=211 ;;;フォーカスコントロール;;;  
   ---> キーボードアクセラレータ用のフォーカスコントロールの設定(ALT/Jで編集ボックスにフォーカス) 
   D SETRECT^ZVCMSTX S RECT=rectstr ;;;save;;; 
   D V2EVENT^ZVCMSTX ;;;イベントマスク;;; 
   S form=FORMno,group=20 S form=FORMno,pm1=2 D CREATE^ZVCMSTX  ;;;Label;;; 
   ---> スタテックテキストを作成 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   Q 
───────────────────────────────────
 TERMSB  ;;;終了処理;;; 
   ;;;フォーム破棄すれば中のコントロールは自動的に破棄されます(VCM6) 
   ;;S cid=FORMcid,sw=0 D VISIBLE^ZVCMCTR ;;;フォーム隠す 
   ;;;破棄する;;; 
   ;;;F cid=502,503 D DESTROY^ZVCMCTR ;;;ステータスバー破棄;;; 
   ;;;F cid=501 D DESTROY^ZVCMCTR ;;;破棄;;; 
   ;;;F cid=201:1:211 D DESTROY^ZVCMCTR ;;;破棄;;; 
   ;;;F cid=221,222,223,224 D DESTROY^ZVCMCTR ;;;破棄;;; 
   ;;;F cid=601:1:609 D DESTROY^ZVCMCTR ;;;破棄;;; 
   F cid=FORMcid D DESTROY^ZVCMFRM ;;;フォーム破棄(最後に);;; 
   ;;;;;;;;;;[同期モード版];;;;;;;;;;;;;;;;;; 
   D DEFAULT^ZVCMSYN ;;; 
   D ASYNCMSG^ZVCMSYN ;;; 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   S param=4 D VCOMWINDOW^ZVCMWND ;;;Vcom窓を復元します;;; 
   Q 
───────────────────────────────────
───────────────────────────────────
               610-1
     |目次前ページ次ページ