過去の桐井戸端BBS (桐ver.9)
25080 フォームにて行の入力開始時に変数がソースのオブジェクトから入力したい 大野達郎 2004/02/25-13:05
フォーム上で行追加などで新規レコードを入力開始する時、
変数で指定したオブジェクトから入力したいので
最初にそこにフォーカスが行くようにしたいです。
ですが、タブオーダーで最上位に置いているにもかかわらず、
その次の「表がソースのテキストオブジェクト」にフォーカスが置かれています。
どのようにすればよいのでしょうか?

25094 「行追加」はやはり行の追加なので 悲しげ 2004/02/25-17:48
記事番号25080へのコメント
どもっ、大野達郎さん
「行追加」とはあくまでレコードの追加ですから、レコードデータとは本来無縁であるところの、
変数をソースとするオブジェクトに初期フォーカスを持っていくのは、そもそも無理な話ではないでしょうか?
むしろ、順番を変えて、
  その変数的オブジェクトへの入力 → 行追加
のような流れにすることなんかはできませんか?

って、試してないので、間違っていたらすいません。(^^;)

25105 Re:フォームにて行の入力開始時に変数がソースのオブジェクトから入力したい 佐田 守弘 2004/02/25-21:51
記事番号25080へのコメント
大野達郎さん
理由は悲しげさんが書いている通りだと思います。
ご希望の動作をさせる方法ですが、試してはおりませんので外れているかも知れませんが、
アイデアとして提示させて頂きます。

●行挿入開始イベントを使う
行挿入(行追加でも同じ)が行われた直後に、行挿入イベントが発生しますので、
これを使って、「メソッド呼び出し フォーカス設定」で目的のオブジェクトに
フォーカスを移動してみてはどうでしょうか。

もしこれでうまく行かない場合ですが、やはり行挿入開始イベントを使い、
直ちに表示モードに戻します。表示モードに戻すには、機能名で編集の表示を設定した
コマンドボタンをどこかに作っておき、これをメソッド呼び出しで実行します。
表示モードに戻し行追加を行った行を確定させてから、上記のようにフォーカスを移動し、
次いで「メソッド呼び出し 更新モード設定」コマンドで、その行の更新モードに移行させて見て下さい。

佐田守弘(KS-00119)
25117 別の方法として 佐田 守弘 2004/02/26-01:20
記事番号25105へのコメント
別の方法と言うより、悲しげさんが書いている
>順番を変えて、その変数的オブジェクトへの入力 → 行追加
を実際に行う方法ですが、次の様な方法も試してみて下さい。

まず、行追加はコマンドボタンで行っている事を前提にします。
表示は「行追加」でも「新規データの入力」でも構わないのですが、
おそらくは現在設定されていると思う「行追加」の機能を外して、
代りに次の様な一般手続きを実行させます。

手続き定義開始 新規データ()
 メソッド呼び出し @テキスト.フォーカス設定()
 メソッド呼び出し @フォーム.更新モード設定(2)
手続き定義終了

上記の手続きを実行させると、「テキスト」のオブジェクトに
フォーカスし、入力のモードになります。
そして、このテキストオブジェクトのソース値更新イベントを使って、行追加を行います。

そして先に入力した変数をソース値とするテキストオブジェクトで
入力させた値は、どこかの項目値に初期値などでセットするのではないかと思います。
その場合には、行挿入開始イベントを使って、初期値のセットを行ってみて下さい。

佐田守弘(KS-00119)
25131 Re:フォームにて行の入力開始時に変数がソースのオブジェクトから入力したい 大野達郎 2004/02/26-16:17
記事番号25080へのコメント
佐田 守弘さん、悲しげさん、レスどうもありがとうございます。
やはり悲しげさんのおっしゃるように、行追加時に変数オブジェクトに
フォーカスを持ってくるのは構造上よろしくないみたいですね。

> 行挿入開始イベント
このイベントにてフォーカス設定を行うパターンを実験しようとしましたが、
どうやら、フォーカス設定メソッドは行挿入開始イベントでは使用不可なようです。
一括のonlineヘルプによると、ここでの使用は不可となってました。
同じ使用不可のイベントに編集文字列変更があるのですが、
なぜかこれだとフォーカス設定メソッドが使えてしまってます・・・
何か条件があるんでしょうか?

やりたいこととしては佐田 守弘さんのご指摘のとおり、
初期値の代入パターンを先に入力したい、ということでした。
会社名を入力する時に"株式会社"とかをパターンに応じて設定したかったので。

解決法としては、やはり変数オブジェクトを最初にしないという、
根本的な解決を実行しようと思います。

25135 別件となりますが 悲しげ 2004/02/26-17:52
記事番号25131へのコメント
大野達郎さん wrote

>同じ使用不可のイベントに編集文字列変更があるのですが、
>なぜかこれだとフォーカス設定メソッドが使えてしまってます・・・
>何か条件があるんでしょうか?

この点については、たゆーさんのところで一寸話題になったことがあります。
全く根拠はありませんが、「編集文字列変更」イベントで「フォーカス」を移動できると云うのは、
恐らく桐の「穴」じゃないかと私は想像しています。
つーことは、その内、この穴は塞がれてしまうかもしれないし、
実害も無ければそのまま放置となるかもしれないし・・・・。(^^;)
将来的に塞がれる可能性があるとすれば、念のため使わない方が無難ではないでしょうか?

ついでに本題関連。

>初期値の代入パターンを先に入力したい、ということでした。
>会社名を入力する時に"株式会社"とかをパターンに応じて設定したかったので。

初期値の判断を、変数ではなく、項目値に負うようにはできませんか(項目増設して)。

25211 Re:別件となりますが 大野達郎 2004/03/02-16:39
記事番号25135へのコメント
会社最近休んでた為、レスが遅れました。すみません。

> 初期値の判断を、変数ではなく、項目値に負うようにはできませんか(項目
> 増設して)。

悲しげさんの指摘の通り、根本的解決を目指す為、項目を設けることにしました。
もちろん、上手く動作しています。
毎回、色々細かいアドバイス、技術考察、非常に為になります。
今後も又何かありましたら、宜しくお願いします。
では、どうもありがとうございました。

戻る