過去の桐井戸端BBS (桐ver.7)
5396 フォーム上の項目の値が更新できない場合でも、カーソルは移動するようにしたい。 中野隆雄 2000/04/03-17:33
桐7.1を使っています。一覧表形式のフォームを画面に表示した時に、項目によって
画面から(キーボードから)データの更新ができる、またはできないようにする場合、
更新ができない項目でも、その項目上をカーソルが移動する(反転表示される)ようにしたいのですが、
できるのでしょうか。フォームの「オブジェクトの属性」の「表示」タブの中に、「フォーカス設定可能」
という窓があり、ここを「自動」にするとその項目は更新もできるし、カーソルも移動します。
「禁止」にすると、更新は出来ないしカーソルも移動しません。
「キー操作禁止」にすると、更新もできるしカーソルも移動します(すると、「自動」と何が違うのでしょうか)。
「フォーカス設定可能」ではなく、別の場所で設定できるのでしょうか。よろしくご教示下さい。
5405 Re: 佐田 守弘 2000/04/03-23:54
記事番号5396へのコメント
中野隆雄さん

●フォーカス設定について
・「自動」
オブジェクトが項目ないし変数の場合、つまり値の編集が可能な場合に限って、フォーカスを自動許可する設定です。
この場合マウス操作の他、タブキー、方向キーでのフォーカスの設定が可能になります。

・「キー操作禁止」
タブキー、方向キーではフォーカスしなくなる設定です。マウスでポイントすれば、
フォーカスが可能です。つまり、通常は値を編集しないが、編集したい時には編集が
できるといった設定になります。ある意味ではこれが目的に一番近い設定です。

●編集を禁止する方法
オブジェクトのソースが計算項目ないしは計算式の場合には、値が編集できません。
値が編集できないオブジェクトには、自動的にフォーカスしなくなります。
具体的には、「([氏名])」の様に、項目名ないしは変数名を括弧で括ると計算式の扱いになり、
値は表示されるけれど編集できなくなります。
そして、編集できないオブジェクトは値を表示されるだけで、フォーカスを設定する事ができません。
言い換えれば、フォーカスを設定するとは、編集させる事と同じです。
ですから質問の「フォーム上の項目の値が更新できない場合でも、カーソル
は移動するようにしたい。」は、不可能です。

●フォーカスした様に見せる方法
試してないアイデアだけですが、そのオブジェクトをポイントしたら、表示を反転させて、
あたかもフォーカスした様に見せるといった方法は可能かも知れません。
本当にはフォーカスしてないので、どうやってフォーカスした様に見せるか、ちょっと工夫が必要かも知れません。

あるいは、編集できないオブジェクトにフォーカスさせたい目的をもう少し教えて貰えれば、
それ以外にも代替え案が出て来るかも知れません。

佐田守弘(KS-00119)

5418 Re: 中野隆雄 2000/04/05-13:45
記事番号5405へのコメント
編集できないオブジェクトにフォーカスさせたい目的をもう少し教えて貰えれば、それ以外に
も代替え案が出て来るかも知れません。
>
>佐田守弘さん

ありがとうございます。これは一括処理中で、ひとつの一覧表形式のフォームを
次のふたとおりに使いたいからです。

1.画面にフォームを表示して、キー項目のひとつを反転表示させてそのフォームを閉じると、
反転させたキーと関連したデータが別の表から呼び出されて、その更新ができるようにする。

2.画面にフォームを表示して、キー項目を見ながら同じ行(レコード)の他の項目のデータが
更新できるようにする。

フォームは現在、1.の作業だけに使っています。キー項目を反転表示させるため、フォームの
「オブジェクトの属性」の「フォーカス設定可能」は「自動」にしています。
しかし、ここではどの項目も更新してほしくないので、「フォーム呼び出し」コマンドの「許可作業」で
更新できないようにしています。同じフォームを2.の作業に使いたいのですが、ここでもキー項目だけは
更新できないようにしたいのです。その場合、キー項目の「フォーカス設定可能」を「禁止」にすると、
1.の作業でキー項目の反転表示ができなくなってしまいます。もし、更新できない項目は反転表示できないのなら、
フォームの各行の左端にある灰色の箱を反転表示するように利用者に周知すればよいのかとも考えています。
良い方法がありましたら、ご教示をお願いします。

戻る