過去の桐井戸端BBS (桐ver.9) |
27219 | フォームで、ある項目の入力が終わったら自動的にある項目へフォーカスの移動をしたい | くもん | 2004/07/29-10:21 |
またよろしくお願いします。 Ver9 2004 Xpを使用しています。 Aフォームのイベント proc t費目::入力前(参照 文字列 &編集文字列) &既費=[費目] 代入 &費番="",&摘番="",&指示="未 定" フォーム呼び出し "B費目",ボタン=&B費目Button if(&B費目Button) &編集=#cond(&STR<>#u,&STR,1,&既費) &入力B=&STR 代入 &指示=#cond([費目]<>貸借,"任 意",[費目]=貸借,"未 定") &STR="",&既費="" &B費目Button="" end end (不要なものまで書きました、実態です) 以上の様にAフォームのt費目へ入力の際、B費目フォームを表示参照して入力しています。 t費目の入力が終われば次も同様Aフォームのt摘要入力をB摘要フォームを表示参照入力となります。 そこでt費目の入力が終わり次第自動的にt摘要へフォーカスが移動するように出来ればと思っています。 自分なりメソッド呼びだし等で試しましたがうまくゆきません。 (サブフォームではありません、表引き風です) よろしくお願いします。 | |||
27220 | Re:フォーカスの移動 | 悲しげ | 2004/07/29-14:35 |
記事番号27219へのコメント ところどころ記述がおかしい箇所がありますが、それはさておき(^^;) 「入力前(後)」イベントでは、更新モードの変更やフォーカスの移動はできませんね。 ですから、(入力途中での取得値の訂正よりも)フォーカスの移動の方を優先させたければ、 例えば「入力前」で扱った「t費目」よりもひとつ前の項目(某オブジェクト)の「ソース値更新」イベントを 利用するやり方なんかも考えられます。 某オブジェクトで[Enter]する。 ・・(中省略)・・ "B費目.wfm"やらをフォーム呼び出しして必要な値を取得。 元フォームに戻って 表示モードなら「行訂正」、そうでなければ「項目値代入」で入力。 フォーカスを"t摘要"に移動させる(「フォーカス」設定メソッド)。 必要なら更新モードも変更する。 以上、あくまで一例。 ps. 変数への値の代入に、「代入」コマンドを使ったり使わなかったりしていますが、統一した方がよいです。 「フォーム呼び出し」後で「if(&B費目Button)」と記述されていますが、 そしてこれは「&B費目Buttonの値が未定義でなければ」の意図だと思いますが、この部分はやはり if(&B費目Button="なんとか") とか if(&B費目Button<>"かんとか") のように明記する癖を付けた方が何かと無難だと思います。 未定義となるのは、右上[×]釦、[/]+[Q]、[Alt]+[F4]などを使うことの想定なのでしょうけど、 呼び出したフォームに複数のボタンを付けた時とか、困ることもありえそうですから。 例えばよくあるパターンは[OK]と[キャンセル]のふたつのボタンですよね。 ついでに云えば、このproc内で「 &B費目Button=""」とする必要も普通はありません。 proc内で自動変数を宣言して使う方が、他部分に影響を与えないので、ベターです。 | |||
27230 | Re:フォーカスの移動 | くもん | 2004/07/31-16:40 |
記事番号27220へのコメント 悲しげさん 有難うございました。 なんとかやってみます、又よろしく。 |