過去の桐井戸端BBS (桐ver.9)
21391 メイン&サブフォームでメインフォームで入力されたらサブフォームが表示されるようにしたい としちゃん 2003/07/12-23:04
としちゃんといいます。
何時も参考にさせていただいてます。

質問です。

一覧表フォームでメイン&サブフォームを作っています。
メインフォームの明細行のテキスト項目に入力されたデータを入力後、
変数に代入してある項目に移動すると、サブフォームを表示し
変数に代入したデータを絞り込んで、表示させるイベントを作りましたがうまく動作しません。
よろしくお願いします。
------------------------------------------------------------------
変数宣言 固有,文字列{&s入荷,&指図番号,&品番,&色番}

手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
  表  &s入荷2,表番号=2
  並べ替え {[品C]辞書順}
手続き定義終了

手続き定義開始 指図番号::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
  &指図番号=[指図番号]
手続き定義終了

手続き定義開始 品番::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
  &品番=[品番]
手続き定義終了

手続き定義開始 色番::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
  &色番=[色番]
手続き定義終了

手続き定義開始 ランク::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
  編集表 2
  絞り込み [指図番号]{=&指図番号}
  絞り込み [品番]{=&品番}
  絞り込み [色番]{=&色番}
  オブジェクト操作 @サブフォーム_62.画面表示 = "1"
手続き定義終了

手続き定義開始 反M::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
  編集表 2
  絞り込み解除
  オブジェクト操作 @サブフォーム_62.画面表示 = "0"
手続き定義終了

以上のイベントです。
お願いいたします。
21393 Re:メイン&サブフォーム 悲しげ 2003/07/13-12:55
記事番号21391へのコメント
どもっ、としちゃんさん
文意が取れない点が幾つかあります。

>一覧表フォームでメイン&サブフォームを作っています。

一覧表フォームはメインフォームなのかサブフォームなのか、あるいはメインもサブも一覧表フォームなのか?

>入力後、変数に代入してある項目に移動すると、

「変数に代入してある項目」とは、「項目名を変数で取得しているところの項目」と云うことなのか、
あるいは「テキスト項目に入力されたデータを変数に代入し、その上で別なある項目」と云うことなのか?

メインフォームとサブフォームのそれぞれの編集対象表は何なのか?

併せて、挙げられたkevの記述は、メインフォームのものなのか、サブのものなのか?(原則としては別kevのはず?)

>手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
>  表  &s入荷2,表番号=2
>  並べ替え {[品C]辞書順}

この表と両フォームの関係は?
それと、イベントでは一般的には表を開く際に表番号を記述しません。
なぜなら、別途オープン済の表の番号が2である可能性もあるからです。
その代わり例えば下記のように記述します。

手続き定義開始 ランク::入力後(参照 文字列 &編集文・・・・
  編集表 &s入荷2
  *余談ながら次のような書き方でも通るはず?(未確認)
  絞り込み [指図番号]{[指図番号]=&指図番号,[品番]=&品番,[色番]=&色番}

あと、気がかりなのは、このように表を別途オープンしてしまった場合、
これをいずれは閉じなければなりません。(サブ?)フォームの編集対象表であれば、
表の開閉はフォームの開閉に委ねられますから、その方が簡単確実です。
※書かれてはいませんが、もしサブフォームの編集対象表を動的に変更したいと云うことであれば、過去ログに何本かあります。

それと、本件に関係あるのか無いのか判りませんが、
私はこのような処理(つまり別フォームを扱う)を「入力後」イベント(つまり入力途中の最後の画面)でやることはありません。
私なら、やるとしたら入力が全て完了した後である「ソース値更新」イベントあたりを使うと思います。
それと私なら、普段はサブフォームたるそのフォームを隠しておくくらいなら、
サブフォームにはしないで別途「フォーム呼び出し」コマンド(またはボタンからなら「モーダルフォーム」)を使うでしょうね。(^^;)

戻る