| 2025/08/24(Sun) 15:41:30 編集(投稿者)
>>ちょっと思ったのが、もしかして、&mObjectNameList が 局所 定数 なのが原因ですかね?? > VK_Framework で実行するコマンドに半角コンマ(,)が含まれている場合には、全角コンマ(,)に変換されます。 > これは VK_Framework の仕様ですので虫ではありません。(^^ゞ > 理由については別途解説するつもりです。
VK_Framwork は、手続き:VKprcKeySet( ) のパラメータ(引数)を配列変数に代入しています。
・キーの名前は、&VKmKeyNameKeyDownDim[1]から[8]
・処理中止の値は、&VKmKeyCancelKeyDownDim[1]から[8]
・実行するコマンドは、&VKmKeyMacroKeyDownDim[1]から[8]
・代入される配列の要素番号は、適用更新モードに対応した要素番号になります。
{ &modeList = "0,2,4,6,8,33,34,36,表示,訂正,行挿入,行追加,項目訂正,グループ検索,グループ値訂正,グループ追加" } ↑ ↓ { &dimNumList = "1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8" }
配列変数の内容は、INF_VK_変数確認.wfx/.tbx で確認できます。 ※1つのコマンドを1行で表示
処理 更新 キーの名前 中止 モード コマンド Ctrl+Enter 1 2/訂正 手続き実行 prcAdvanceFocus(&VKmKeyString,&VKmRepeat,"txt作成日,lbl作成日,txt提出先・・・,lbl内容,txt備考,lbl備考","txt作成日",1) Ctrl+Enter 1 4/行挿入 手続き実行 prcAdvanceFocus(&VKmKeyString,&VKmRepeat,"txt作成日,lbl作成日,txt提出先・・・,lbl内容,txt備考,lbl備考","txt作成日",1) Ctrl+Enter 1 6/行追加 手続き実行 prcAdvanceFocus(&VKmKeyString,&VKmRepeat,"txt作成日,lbl作成日,txt提出先・・・,lbl内容,txt備考,lbl備考","txt作成日",1) Ctrl+Enter 1 8/項目訂正 手続き実行 prcAdvanceFocus(&VKmKeyString,&VKmRepeat,"txt作成日,lbl作成日,txt提出先・・・,lbl内容,txt備考,lbl備考","txt作成日",1)
↑この例では、コマンドは1つしかセットされていませんが、複数のコマンドをセット出来ます。(8000文字以内) ・・・・・・・・・・・・・・・
複数のコマンドをセットした場合には、コマンドは半角コンマ(,)で区切って代入されます。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
&VKmKeyNameKeyDownDim[1] … キーの名前,キーの名前,キーの名前,キーの名前 &VKmKeyCancelKeyDownDim[1] … 1,1,1,1 &VKmKeyMacroKeyDownDim[1] … コマンド,コマンド,コマンド,コマンド
そのために、コマンドに半角コンマ(, )が含まれている場合には、全角コンマ(,)に変換しているのでした。(^^ok ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
また、キーの名前にコンマ(, )を指定する場合には、comma と指定する理由でもありました。(^^ゞ
■キーにコマンドを割り当てる仕掛け
適用更新モード "0" / "表示" "2" / "訂正" "4" / "行挿入" "6" / "行追加" "8" / "項目訂正" "33"/ "グループ検索" "34"/ "グループ値訂正" "36"/ "グループ追加"
キーの名前 適用更新モード ↓ ↓ (例)手続き実行 VKprcKeySet( "F1", 1, "0", "手続き実行 prcファンクションキー評価( )" ) ↑ ↑ 処理中止の値 実行するコマンド
&VKmKeyNameKeyDownDim[1]から[8] ※半角コンマで区切ったリスト:キーの名前,キーの名前,キーの名前,キーの名前 ┌────────┐ │ キーの名前 │─┐ │ │ │─┐ └────────┘ │ │─┐ └────────┘ │ │ └────────┘ │ └────────┘
&VKmKeyCancelKeyDownDim[1]から[8] ※半角コンマで区切ったリスト:1,1,1,1 ┌────────┐ │ 処理中止の値 │─┐ │ │ │─┐ └────────┘ │ │─┐ └────────┘ │ │ └────────┘ │ └────────┘
&VKmKeyMacroKeyDownDim[1]から[8] ※半角コンマで区切ったリスト:コマンド,コマンド,コマンド,コマンド ┌────────┐ │実行するコマンド│─┐ │ │ │─┐ └────────┘ │ │─┐ └────────┘ │ │ └────────┘ │ └────────┘
■実行時の仕掛け
┌────────────┐ │ フォーム::キーダウン │ └──┬─────────┘ │ ┌──┴──────────────┐ │ VKprcEventKeyEval │ イン:&VKmKeyNum &VKmScanNum &VKmFlagNum │ │ ┌─────────────────┐ │ 手続き実行 VKPrcVariableDataSet →──→ VKprcVariableDataSet │ │ ←──← │ │ │ └─────────────────┘ │ if ( &VKmOnkey ) │ アウト:&VKmKeyString &VKmAltkey │ コマンド ¯oString │ │ end │ │ │ └─────────────────┘
|