よくあるフォーム&ディテールの画面
エディットフィールドがいくつかあって、同じフォームに明細データがリストボックスで表示されているパターンです。
タブキーを押してフィールドを移動していき、リストボックスにフォーカスが移動したとき、このリストボックスは、
・配列型
・リストで編集可能
にしておきます。
そこで次のようにしたいです。
・配列要素がなければ1つだけ作る
・最初のフィールドに移動
これにはリストボックスのフォームメソッドに次のように記述します。
: (Form event=On Getting Focus)
If (Focus object=Self)
EDIT ITEM(vA05_lstJO_D_CODE;1) // 20170306 ok
End if
フォーカスが来たときに、EDIT ITEMを実行して、一つ目の編集可能な列に移動させています。if(focus object=self)が重要で、これがないと最初の列から次の列にフォーカスを移動できなくなってしまいます。次の列に移ろうとするときも、Getting Focusがリストボックスに対して発生してしまうからです。