過去の桐井戸端BBS (桐ver.7)
1025 フォームでの行訂正でフォーカスの固定について MAC 1999/1/11-15:06
ver7.1を使用しています。一括処理で教えてください。
ある表を対応する項目のテキストオブジェクトを配置したフォーム上で行訂正したいと思っています。
しかも、キーボードのPage up、Page downでデータ行を進めたり、戻ったりしたいと思っています。
また、すべての行訂正をフォームに複数個配置しているテキストオブジェクトの指定のところから
開始したいのです。
(10個のテキストオブジェクトがあれば、いつも5番目から開始したいということです)
フォーム形式編集の会話処理をすれば簡単なのでしょうが、この場合ですと、データ行を前後してもフォーカスが前の処理行のフォーカスのところのままです。

仕方なしに、下記のように終了キーを使って、処理をしていますが、もう少しスマートな方法はないでしょうか。
&終了キー=26は"Page up"で良いのですが、&終了キー=27が"Esc"キーというのも、少し情けないのです。

----------------------------------------------------------
名札 入力A
行訂正 フォーム,*,[フォーカス項目],終了キー=&終了キー
  ケース開始
  ケース (&終了キー=26)
    ジャンプ 行番号=次行
    分岐 入力A
  ケース (&終了キー=27)
    ジャンプ 行番号=前行
    分岐 入力A
  ケース終了
----------------------------------------------------------

もう少しスマートな良いアイデアをお持ちの方がおられましたら、是非
教えてください。
1028 Re: ikjun 1999/1/11-17:45
記事番号1025へのコメント
>しかも、キーボードのPage up、
>Page downでデータ行を進めたり、戻ったりしたいと思っています。

 これは終了キーが対応してない以上、困難だろうと思います。

 いっそのこと、ESCキーで処理行指定コマンドを呼び出してみたらどうでしょう。
ちょっと違いますが、目的の行にすばやくいければいいのなら、こっちのほうがいいかもしれません。

 スマートな方法とは言えないかも知れませんが?
1035 Re: MAC 1999/1/12-10:02
記事番号1028へのコメント
> これは終了キーが対応してない以上、困難だろうと思います。
ikjunさん、いつもお世話になっております。有難うございました。
やはり駄目なのですね。
一括処理の中で私のような使い方をしている方も多いと思いますので、管理工学さんには考えていただきたいですね。
少なくとも"Page down"に対応する終了キーを用意していただきたいものです。

>いっそのこと、ESCキーで処理行指定コマンドを呼び出してみたらどうでしょう。
>ちょっと違いますが、目的の行にすばやくいければいいのなら、こっちのほうがいい
>かもしれません。
私の場合には一つずつ行を訂正していく処理ですので、この方法は使いませんが、目的の行へ素早く行くには良い方法ですね。
有難うございました。
1042 Re: 幅田 1999/1/12-15:29
記事番号1025へのコメント
>----------------------------------------------------------
>名札 入力A
>行訂正 フォーム,*,[フォーカス項目],終了キー=&終了キー
>  ケース開始
>  ケース (&終了キー=26)
>    ジャンプ 行番号=次行
>    分岐 入力A
>  ケース (&終了キー=27)
>    ジャンプ 行番号=前行
>    分岐 入力A
>  ケース終了
>----------------------------------------------------------
>
質問の答えではないので恐縮ですが、
ケースの範囲の内側から、分岐コマンドで制御を移すのはやめましょう。
その場合は、ケース中止コマンドを使います。
また、ケース範囲の外側から、分岐コマンドや手続き実行コマンドで
ケース範囲の中へ制御を移すのもいけません。
1043 Re: MAC 1999/1/12-17:15
記事番号1042へのコメント
幅田さん、有難うございました。一括処理として動いていたから良いものと思っていました。
やはり基本どおりケースコマンドを使わないといけないのですね。
上記の場合ですと、下記のような条件コマンドでもスッキリして良いように思いましたので、早速手直しします。

----------------------------------------------------------
名札 入力A
行訂正 フォーム,*,[フォーカス項目],終了キー=&終了キー
  条件 (&終了キー=26) ジャンプ 行番号=次行
  条件 (&終了キー=27) ジャンプ 行番号=前行
  分岐 入力A
----------------------------------------------------------

今後とも宜しくお願い致します。
1047 Re: MAC 1999/1/12-21:25
記事番号1043へのコメント
>----------------------------------------------------------
>名札 入力A
>行訂正 フォーム,*,[フォーカス項目],終了キー=&終了キー
>  条件 (&終了キー=26) ジャンプ 行番号=次行
>  条件 (&終了キー=27) ジャンプ 行番号=前行
>  分岐 入力A
>----------------------------------------------------------
>

自己レスです。
これでは、このループから抜け出すことが出来ませんでした。
行訂正で終端行にきた段階で、次の処理(名札)へ抜け出すこと(分岐)が必要でした。
紛らわしい記載で申し訳ございませんでした。

戻る