仕様メモ_EZWprcFieldList1to2Link 2020.05.01 by ONnoji これは、INF_Framework Rev.241 で追加された &EZWmFieldList1 と &EZWmFieldList2 のリンク(連動)機能に関するメモである。  ** Rev.241 2020.04.30 オプション変数:EZWmStackLinkUse 追加(復活)  ** Rev.241 2020.04.30 EZWprcFieldsStackLink 復活  ** Rev.241 2020.04.30 EZWprcFieldsStackControl if ( &targetFieldListName = &EZWmVariableField + "1" ) をコメントアウト  ** Rev.241 2020.04.30 EZWprcFieldList1to2Link を追加 明細部のFLD機能の  &EZWmCaptionList1 cmdCaption_1 〜 cmdCaption_11  &EZWmFieldList1  txtField_1  〜 txtField_11 ↑これに対応して、↓のようにフッタ部にリンク(連動)するグループ項目を作る目論見です。  &EZWmCaptionList2 cmdCaption_51 〜 cmdCaption_61  &EZWmFieldList2  grpField_1  〜 grpField_11 なお、 &EZWmFieldList2 は、  grpField_1 〜 grpField_11 ※デフォルト   と  txtField_51 〜 txtField_11 をオプションボタン+コマンドボタンで切り替えられるようにしてあります。 グループ項目オブジェクトは、すべて #合計( [項目名] ) になっています。 なお、[項目名] が文字列型の場合には、合計文字数が表示されます。※項目集計の&合計と同じです。 オブジェクトの概要は以下の通りです。 ■クラシックINF_Rev_241.wfm フォーム ├ ファミリ ├ ワークスペース ├ フォーム操作バー ├ グループ操作バー ├ フォームヘッダ部   ※ cmdCaption_1 〜 cmdCaption_11 &EZWmCaptionList1 つまり FLD 機能 ├ フォーム明細部 │ ├ 行セレクタ │ ├ txtField_1 ※ txtField_1 〜 txtField_11 は &EZWmFieldList1   つまり FLD 機能 │ ├ txtField_2 │ ├ txtField_3 │ ├ txtField_4 │ ├ txtField_5 │ ├ txtField_6 │ ├ txtField_7 │ ├ txtField_8 │ ├ txtField_9 │ ├ txtField_10 │ ├ txtField_11 │ └ M_2 └ フォームフッタ部 ├ cmdAlt_I_ズームイン ├ cmdAlt_O_ズームアウト ├ EZWcmdLinesPerBodyDown ├ EZWcmdLinesPerBodyUp ├ cmdCaption_51   ※ cmdCaption_51 〜 cmdCaption_61 &EZWmCaptionList2 ├ cmdCaption_52 ├ cmdCaption_53 ├ cmdCaption_54 ├ cmdCaption_55 ├ cmdCaption_56 ├ cmdCaption_57 ├ cmdCaption_58 ├ cmdCaption_59 ├ cmdCaption_60 ├ cmdCaption_61 ├ grpField_1  ※ grpField_1 〜 grpField_11 は デフォルトの &EZWmFieldList2 ├ grpField_2 ├ grpField_3 ├ grpField_4 ├ grpField_5 ├ grpField_6 ├ grpField_7 ├ grpField_8 ├ grpField_9 ├ grpField_10 ├ grpField_11 ├ txtField_51  ※ txtField_51 〜 txtField_61 は デフォルトから切り替えた時の &EZWmFieldList2 ├ txtField_52 ├ txtField_53 ├ txtField_54 ├ txtField_55 ├ txtField_56 ├ txtField_57 ├ txtField_58 ├ txtField_59 ├ txtField_60 ├ txtField_61 ├ ラベル_141 ├ optテキストボックス │ └ lblテキストボックス ├ optグループボックス │ └ lblグループボックス ├ cmdTest ├ S_3 └ M_3 ■手続きは4つあります。  名札 メイン  xEZWprcFieldList1to2Link  INFprcStartup  cmdTestClick ―[名札 メイン] いつもの IPS+INF と同じです。 ただし、次の変数宣言コマンドは必須です。  変数宣言 局所,整数 { &EZWmStackLinkUse } /* オプション変数 必須です */ この変数は、オプションなので IPS+INF には含まれていません。 ―xEZWprcFieldList1to2Link ※ライブラリ側の EZWprcFieldList1to2Link を動作させるために、先頭に x を付けてあります。 EZWprcFieldList1to2Link は、Rev.241 で追加したモジュールです。  ** メモ:2020.04.30  ** 当モジュールは、EZWmFieldList1 と EZWmFieldList2 をリンクさせる  ** オプション変数:&EZWmStackLinkUse が使えるか否かはテストするが、EZWmFieldList2 のコンマ区切りリストが EZWmFieldList1 に対応するか否かのチェックは行わない  ** 復活した EZWprcFieldsStackLink( ) が必要  ** EZWprcFieldsStackLink( ) に対応した EZWprcFieldsStackControl が必要 Rev.241 では、↑のような改修を行っています。 もちろん、ブラックボックスで使うものなので、内容を知る必要はありません。 ―INFprcStartup いつものクラシックINF_Framework と同じです。 ここでは、明細部のFLD機能 &EZWmCaptionList1 cmdCaption_1 〜 cmdCaption_11 &EZWmFieldList1  txtField_1  〜 txtField_11 だけしか設定していません。 ―cmdTestClick 内容は以下の通り。 オプションボタンの値で、&EZWmFieldList2 の内容を変更しています。 そして、ライブラリの EZWprcFieldList1to2Link( ) をコールしています。 なお、[開始時実行]コマンドボタン:cmdStartup でも、cmdTestClick をコールしています。 そのために、フォームが開いた時に、デフォルトの grpField_1 〜 grpField_11 でリンクします。 なお、&EZWmCaptionList2 の cmdCaption_51 〜 cmdCaption_61 は、ワークスペースに配置してもOKです。 cmdCaption_51 〜 cmdCaption_61 のキャプション(標題)は、txtField_51 〜 txtField_61 でリンクすると、 自動的にテクストボックスのソースの値になります。 なお、グループ項目のオブジェクトには[ソース]という属性がありませんので、キャプション(標題)はそのままです。 ※グループ項目のオブジェクトには[グループソース]という属性があります。 手続き定義開始 cmdTestClick( )  変数宣言 自動,文字列{ &icon, &title = "cmdTestClick( )", &msg }  &EZWmCaptionList2 = "cmdCaption_51,cmdCaption_52,cmdCaption_53,cmdCaption_54,cmdCaption_55,cmdCaption_56,cmdCaption_57,cmdCaption_58,cmdCaption_59,cmdCaption_60,cmdCaption_61" ┌if ( &mTextboxUse ) │ &EZWmFieldList2 = "txtField_51,txtField_52,txtField_53,txtField_54,txtField_55,txtField_56,txtField_57,txtField_58,txtField_59,txtField_60,txtField_61" ├else │ &EZWmFieldList2 = "grpField_1,grpField_2,grpField_3,grpField_4,grpField_5,grpField_6,grpField_7,grpField_8,grpField_9,grpField_10,grpField_11" └end  &msg = "&EZWmFieldStatusList = " + &EZWmFieldStatusList  &msg = &msg + "\n\n&EZWmFieldStatusList = " + #str( #文字位置( &EZWmFieldStatusList, "S" ) <> 0 )  &msg = &msg + "\n\n&EZWmFieldStackList = " + &EZWmFieldStackList  &msg = &msg + "\n\n&EZWmFieldStackList = " + #str( #num( &EZWmFieldStackList ) > 0 )  &msg = &msg + "\n\n&EZWmFieldWidthList = " + &EZWmFieldWidthList  &icon = "i"  *手続き実行 INFprcMsgPause( &icon, &title, &msg )  手続き実行 EZWprcFieldList1to2Link( ) 手続き定義終了 <追伸> ひょっとしたら、現行の &EZWmFieldList1 と &EZWmFieldList2 のリンクに &EZWmFieldList3 を加えて合計3リストのリンクが出来るかもしれませんが、 こういう欲張りは止めておきましょう。 そもそも、2リストのリンクでさえも使用頻度が低いのに、さらに3リストのリンクは労力の無駄でしょう。(^^ゞ