過去の桐井戸端BBS (桐ver.7)
367 キー入力と同じことをフォーム・ウィンドウでしたい macoto 1998/8/22-10:46
一括処理で教えてください。
ver5で「キー入力」コマンドを使って画面上から指定の変数へデータを代入していたのですが、ver7ではフォームのウィンドウというものがありますので、この機能を使って同様のことをしたいと思っています。
この「キー入力」によって代入される変数は、ある表(.tbl)のデータを絞り込むためのものです。
ver7でフォームをあらかじめ作り、変数のデータを書き込むところにテキスト・オブジェクト枠を作成して該当の変数を配置しました。
一括処理コマンドはウィンドウ作成、ウィンドウ会話として、一括処理を起動させてみたのですが、「キー入力」コマンドのように最初からの訂正モードに出来ず、このフォーム・ウィンドウに来た時点で、「f.2/訂正」を押さないと入力できないのです。
フォーム・ウィンドウで画面はきれいになったのですが、この問題を是非解決したいと思っています。
頭にコマンド・ボタンを作って「機能」を「訂正」とすると解決するのですが、この方法ですとボタンを押すという動作が1つ増えますので、ちょっと気に入りません。このへんの詳しい方、何か良い知恵はありませんでしょうか。
368 Re: MOTO 1998/8/23-23:41
記事番号367へのコメント
こんにちは! MOTOと言います。
え〜例えば、フォーム上で「年・月・日」を入力して、その入力データで伝票データを絞り込む、と言う様な事ですよね? こんなのはどうでしょうか。

1:年・月・日だけのフィールドのテーブルを作る(作業用のテーブル。仮にTEST.TBL とする)
2:年・月・日だけのテキストオブジェクトを埋め込んだフォームを作る(1のテーブル用。仮に TEST.WFM とする)
3:一括処理(大雑把ですが、あくまで例ですから ^^;)
 ・変数宣言 数値{&仮年,&仮月,&仮日}
 ・表 "TEST.TBL"
 ・使用フォーム "TEST.WFM"
 ・行挿入 フォーム
 ・代入 &仮年=[年],&仮月=[月],&仮日=[日]

これですと、入力後は f・4 で確定が必要ですが、フォームにはいきなり入力モードで入れます。
「代入」が実行された時点で作業用テーブルで入力した数値が変数に格納されますから後はそれを使って処理を続けます。 
尚、この例では変数やテーブルの初期化等のルーチンは省いてあります。
もっとスマートなやり方があれば僕も知りたいので是非教えて下さい(^^;)>詳しい方
見当外れでしたらごめんなさい。
では! (^^)/
369 Re: macoto 1998/8/24-09:08
記事番号368へのコメント
MOTOさん、今日は。質問をお願いしましたmacotoです。
ご丁寧な解説を有難うございました。
作業テーブルを使って、一時的にテーブルの中に格納し、それを該当する変数に代入する方法を私も考えておりました。
ただこの方法ですと、このような処理をする数だけ作業テーブルが必要ですし、私の感性として少しスマートでないように思っていたのです。
どうしても無理であれば、この方法かコマンド・ボタンを頭に配置して制御する方法しかないと考えていますが、私ももう少し頭をひねってみます。
379 Re: macoto 1998/8/27-16:57
記事番号369へのコメント
自己レスです。良い方法を教えていただきましたので、皆さんへもご紹介致します。

ただ文章をそのまま載せると問題がありますので、サイトをおしらせいたします。
http://www2.k3-unet.ocn.ne.jp/board/kiri/board.pl

管理工学の掲示板ですので、興味のある方はご覧になってください。
管理人より
↑のサイトに書かれていることの要約は以下のとおり。

「テキストオブジェクト」に入力する変数を設定する。

ボタンオブジェクトを作成し、「コマンドボタン」タブで
 機能名1 「フォーカス移動」 パラメータ 上記のテキストオブジェクト名
 機能名2 「訂正」        パラメータ 上記のテキストオブジェクト名
このコマンドオブジェクトは非表示にする
フォームオブジェクトの「オプション」タブで
「実行コマンド」の「開始時:」に上記のボタンオブジェクト名を設定

これで、フォームを開いたときテキストオブジェクトが訂正状態になる。
コマンドボタンを非表示にして、フォームの開始時にコマンドボタンを実行コマンドにするところがポイント。

あと、一括処理でウィンドウ作成、ウィンドウ会話と組み合わせるとうまくいかないという質問があり、
それは「フォーム呼び出し」コマンドでうまくいったと回答がありました。
ただし、ボタンオブジェクトの「一括起動時有効」のチェックボックスをチェックしておかないとグレイアウトして
使えないボタンがあるとの返事もありました。

戻る