過去の桐井戸端BBS (桐ver.8)
13149 一覧表フォームの明細部でのフォーカス移動がおかしい ケント 2001/09/22-15:23
一覧表フォームの明細部にソースが#表引き〜となっているテキストボックスがあります。
ソースが計算項目の場合と同様にフォーカスできません。
しかしながら"マウス左クリックイベント"は有効みたいなので

手続き定義開始 t請求先::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
メソッド呼び出し @フォーム.更新モード設定( 0 )
ジャンプ 行番号=&明細番号
メソッド呼び出し @t請求先ID.フォーカス設定()
手続き定義終了

とやって、別のテキストボックスにフォーカスを移すようにしています。
"一件落着〜!"と思っていたのですが、アレレッ!(*_*)
明細部(25行表示)のレコード数が25件以上になったときに(めったに無いのですが)おかしいぞ!!

つまり"&明細番号"は表示画面上の行番号なので
例えば、明細部を下方スクロールしてレコード5を最上行になるようにして、
レコード5の@t請求先をクリックするとレコード1にジャンプしてしまうのです。

&明細番号/長整数
処理対象行が、フォーム明細部の何番目にあるかが格納されます。

と言うことで、当然の結果ですよね。

そこで【行番号】コマンドで処理行の行番号を取得して

手続き定義開始 t請求先::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
メソッド呼び出し @フォーム.更新モード設定( 0 )
行番号 &処理行
ジャンプ 行番号=&処理行
メソッド呼び出し @t請求先ID.フォーカス設定()
手続き定義終了

とやったのですが、
今度はクリックする直前のフォーカスがある行番号が&処理行に入っていしまいます。
つまり@t請求先はフォーカス取得できないので、クリックしても処理行は移動しない!と言うことみたいです。

以上長くなりましたが、
キーボードで入力,編集してる分にはいいのですが、過去のデータ編集でマウスを使用しクリックしたときの動きに不満が残り、
何とかしたいと思っております。

一覧表フォームの明細部にソースが#表引き〜となっているテキストボックスをクリックしたときに
処理行をクリックした行に移動できないか、ということで何とかお力添え願えたらと思っております。

13152 Re:一覧表フォームの明細部でのフォーカス移動 ケント 2001/09/22-18:07
記事番号13149へのコメント
すみません。自己レスです。

コメントを書くことにより問題点が頭の中で整理でき、解決策をみつけました。

手続き定義開始 t請求先::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
メソッド呼び出し @フォーム.更新モード設定( 0 )
メソッド呼び出し @フォーム.明細番号取得( &フラグ )
代入 &処理行=&明細番号-&フラグ
ジャンプ 行番号=+&処理行
メソッド呼び出し @t請求先ID.フォーカス設定()
手続き定義終了

メソッド呼び出し @フォーム.明細番号取得( &フラグ )
は処理行の明細番号を返し、
&明細番号はクリックした行の明細番号を返す。
と言うことで、"一件落着〜!!"(かな?)(^_^;)
13164 Re:一覧表フォームの明細部でのフォーカス移動 尾形 2001/09/23-22:10
記事番号13152へのコメント
ケントさん、こんばんは

フォーカスを設定できない項目に、透明のボタンを重ねたらいいかもしれません
他の方のパクリですが (^^;


> 代入 &処理行=&明細番号-&フラグ
> ジャンプ 行番号=+&処理行
下の行から上の方に戻った場合に大丈夫ですか?


13167 ありがとうございます。 ケント 2001/09/25-08:30
記事番号13164へのコメント
尾形さん こんにちは そして コメントありがとうございます。

>フォーカスを設定できない項目に、透明のボタンを重ねたら
>いいかもしれません

「オーッ! その手があったのか」
早速透明なコマンドボタンを重ね置きし、
機能名;フォーカス移動
機能パラメータリスト;"t請求先ID"
の設定でばっちりでした。
実にあっけなく今まで悩んでいたことが実現しました。

せっかく考えたイベント方式と尾形さんのコマンドボタン方式のどちらにするか、
今後のメンテ面とかも勘案して決めたいと思います。
重ね重ねありがとうございました。

P.S
>> 代入 &処理行=&明細番号-&フラグ
>> ジャンプ 行番号=+&処理行
>下の行から上の方に戻った場合に大丈夫ですか?

大丈夫でした。
以下【ジャンプ 行番号=+<番号>】のhtmlヘルプです。
+<番号>
現在行から<番号> 行先のレコード。
ただし、変数で指定した値がマイナスであれば、現在行から<番号> 行前のレコード。

戻る