過去の桐井戸端BBS (桐ver.9) |
28081 | メイン&サブフォームでどの項目がクリックされたかにより入力する項目を変えたい | 手塚 修 | 2004/11/01-19:47 |
メイン&サブフォームで、メインフォーム上のテキスト項目「運転手」「助手」に サブフォーム(社員名)上の社員名をクリックして入力反映させようとしています。 テーブルは別です。 メインフォーム上で「運転手」をクリックした時には、サブフォーム(社員名)を表示し、 社員名をクリックすると[運転手」に入力される。 「助手」をクリックした時には、サブフォーム(社員名)を表示し、社員名をクリックすると[助手」に入力される。 メインフォームのどの項目がクリックされたか?によりサブフォーム上の社員名を 取得し入力したいのですが、どのように考えればよいのか?どのイベントを使えばよいのか? どのように書くのかを教えてください。 メインフォームのKEVでは、 手続き定義開始 t運転手名::入力前(参照 文字列 &編集文字列) &編集文字列=&STR &STR="" 手続き定義終了 サブフォームのKEVでは、 手続き定義開始 t姓名::マウス左クリック(長整数....&処理中止) &STR=[姓名] メソッド呼び出し ハンドル=&hwindow,@t運転手名.フォーカス設定() メソッド呼び出し ハンドル=&hwindow,@フォーム.更新モード設定(2) 手続き定義終了 と書いています。 「運転手」が未定義値であれば「運転手」に、「助手」が未定義値であれば「助手」に入力する。 これは使いたくないのですが?どうすればよいのでしょうか? よろしくお願いいたします。 | |||
28082 | Re:どの項目がクリックされたかにより入力する項目を変えたいが? | ONnoji | 2004/11/01-21:07 |
記事番号28081へのコメント 手塚さん、こんにちは。 フォームの[イベントハンドラ]や[一般手続き]でも、 #項目番号()関数の引数に未定義値(#u)を指定すると、現在の項目番号を取得できます。 ※ところで[式入力]ダイアログには書いてある情報が、[関数]ヘルプには漏れています。 トホホ。 (例) 変数宣言 自動,文字列{ &fieldName, &dataType, &fieldKind } 変数宣言 自動,整数 { &fieldNum } &fieldNum = #項目番号( #u ) &fieldName = #項目属性( &fieldNum, 1 ) /* 項目名を取得 */ &dataType = #項目属性( &fieldNum, 2 ) /* データ型を取得 */ &fieldKind = #項目属性( &fieldNum, 6 ) /* 項目種別を取得{基本、計算、ふりが な} */ これは、解決策ではありませんけれど。 ご参考までに。m(__)m | |||
28087 | Re:どの項目がクリックされたかにより入力する項目を変えたいが? | 悲しげ | 2004/11/01-23:59 |
記事番号28081へのコメント 書かれていませんが、多分、メインはカード、サブは一覧表フォームだろうと仮定してコメントします。 で、普段は社員名サブフォームを表示させておきたくないようなので、 メインフォーム上のサブフォームオブジェクトの画面表示はオフにしておきます。 で、メインフォームのテキスト項目「運転手」「助手」のどちらかを 左クリックしたら(と云うよりフォーカス取得の方が使いやすそう)、 社員名サブを画面表示させる。 メインフォームでどのテキストをクリック(フォーカス)したかについては、 例によってファミリを使って&thisで取得してみる(「運転手」と「助手」のふたつだけなので、 個々のテキスト毎で判断してもよいかもしれないが) 次、社員名サブの方では、あるレコードを左クリックしたら当該の 項目値を変数に取得した後、編集表を変更して先に把握済のどちらかの 項目値に代入する。 マウス左クリックで訂正モードになるとかならないとかを含めて若干面倒なので、 上記は全て表示モードでやることにしてみた。 以上を挙げてみます。 | |||
28095 | Re:どの項目がクリックされたかにより入力する項目を変えたいが? | 手塚 修 | 2004/11/02-18:48 |
記事番号28087へのコメント いやぁ〜すごいですね。思っていた通りに作ってくれました。完璧です。 ありがとうございました。 返事遅くなりました。当方のkevに当てはめるのに時間がかかりました。 半日もかかりました。でも、今は、うまく動くようになりました。 お二方が教えてくれた事、まだまだ理解するレベルには至っておりませんが、 これからも頑張ります。 ONnojiさん 悲しげさんお世話になりました。 ありがとうございました。 |