|目次|前ページ|次ページ| ─────────────────────────────────── ◆新プログラミング解説[M言語]※※[new]※※ ─────────────────────────────────── ● サンプルプログラム ZVCMFR4/ZVCMFR4A の解説 ───────────────────────────────────--- 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 |目次|前ページ|次ページ|