過去の桐井戸端BBS (桐ver.9)
24630 コマンドボタンで呼び出したフォーム上のコマンドボタンを表示したり非表示にしたりしたい 手塚 修 2004/02/06-21:05
メインフォーム上に配置したコマンドボタン(入力 訂正)をクリックし、別なフォーム(あ)を呼び出す。
「入力」がクリックされた時には(あ)上にコマンドボタン(新規入力)を表示する。
コマンドボタン(訂正編集)は表示しない。
「訂正」がクリックされた時には(あ)上にコマンドボタン(訂正編集)を表示し、
コマンドボタン(新規入力)は表示しない。

初めてイベントを使ってみました。
別なフォーム(あ)を呼び出すまではできたのですが、その先ができません。

教えてください。よろしくお願いいたします。
24631 Re:コマンドボタンで呼び出したフォーム上のコマンドボタンを表示したり非表示にしたり 悲しげ 2004/02/06-21:44
記事番号24630へのコメント
どもっ、手塚さん

>初めてイベントを使ってみました。
>別なフォーム(あ)を呼び出すまではできたのですが、その先ができません。

「イベント」と云うことから、kevファイルを使って処理しているものと察します。
ではお尋ねしますが、「別なフォーム(あ)を呼び出す」のは
次のどのような方法で呼び出しましたか?

1.「フォーム呼び出し」コマンド
2.コマンドではなくコマンドボタンの「モーダルフォーム」
3.同じくコマンドボタンの「開く」
4.「ウィンドウ作成」コマンド

それによって、続く記述は若干異なります。

が、それはそれとして、方法のひとつとしては、固有または共通変更としてフラグ用変数仮称「&旗」を用意して
  新規入力なら  &旗="新規"
  既存の訂正なら &旗="訂正"
のように代入しておいて、呼び出した"あ.wfm"の「フォーム開始」イベントで
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
 if(&旗="新規")
  オブジェクト操作 @b新規入力.画面表示="1",@b訂正編集.画面表示="0"
 else if(&旗="訂正")
  オブジェクト操作 @b新規入力.画面表示="0",@b訂正編集.画面表示="1"
 end
手続き定義終了
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
のようにするか、
あるいはフォームを開いた後にやることが、新規入力か既存の訂正だけなのであれば、
フォーム開始の時点で即「行追加」か「訂正」のモードにしてしまう方法もありそうです。
その場合なら
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
 if(&旗="新規")
  メソッド呼び出し @b新規入力.実行()
 else if(&旗="訂正")
  検索 ・・・・・ /*先ず訂正するレコードを指定する?*/
  メソッド呼び出し @b訂正編集.実行()
 end
手続き定義終了
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

24632 Re:コマンドボタンで呼び出したフォーム上のコマンドボタンを表示したり非表示にしたり 手塚 修 2004/02/07-09:30
記事番号24631へのコメント
悲しげさん ありがとうございます。
>
>ではお尋ねしますが、「別なフォーム(あ)を呼び出す」のは
>次のどのような方法で呼び出しましたか?
>
1.「フォーム呼び出し」コマンド になるのでしょうか?
具体的には、以下のようにしました。
メインフォーム(カード)上に作ったコマンドボタン(入力)に機能名 手続き実行 パラメータリスト
入力画面 としkevに手続き定義開始 入力画面()
           フォーム呼び出し 入力
          手続き定義終了       です。

>  新規入力なら  &旗="新規"
>  既存の訂正なら &旗="訂正"
>のように代入しておいて、呼び出した"あ.wfm"の「フォーム開始」イベ
>ントで
上記のようにしたいのですが、どこで変数宣言をするのか?
&旗="新規" &旗="訂正" はどこに記すのか? がわかりませんでした。
面倒をおかけしますが、教えてください。

よろしくお願いいたします。

24635 イベントの中での変数の定義 佐田 守弘 2004/02/07-12:49
記事番号24632へのコメント
手塚 修さん
●変数の定義
 >上記のようにしたいのですが、どこで変数宣言をするのか?
これはメインフォームのイベントファイルの先頭のメイン部分で定義して下さい。
メイン部分とは、作られたイベントファイルの3行目に「*」がありますが、それ以前の場所に行挿入して記述します。
正しくいえば、「*」には意味はなく、最初の手続き定義コマンドより前がメイン部分です。

●変数への代入
>&旗="新規" &旗="訂正" はどこに記すのか? がわかりませんでした。
これはそれぞれの手続きの中で記述します。
「新規」のコマンドボタンで実行させる一般手続きが、「新規」だとしたら、この中です。
つまり、次の様になります。訂正についても同じです。
============================
手続き定義開始 新規()
 代入 &旗="訂正"
 フォーム呼び出し あ
手続き定義終了
============================

佐田守弘(KS-00119)
24639 Re:イベントの中での変数の定義 悲しげ 2004/02/07-17:16
記事番号24635へのコメント
どもっ、佐田さん、フォローありがとうございます。
でも、「新規」と「訂正」が逆になっているので(^^;)
念のため書き直しておきます。(*^^*)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
名札 メイン
 変数宣言 共通,文字列{&旗}



手続き定義開始 新規入力()
 代入 &旗="新規"
 フォーム呼び出し "あ.wfm"
手続き定義終了

手続き定義開始 訂正編集()
 代入 &旗="訂正"
 フォーム呼び出し "あ.wfm"
手続き定義終了
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

ps.
ボタンや手続きの名称として「入力」ってのは、新規入力なのか
訂正入力なのか判らないので、勝手に「新規云々」と「訂正云々」に変えてあります。

ps2.
変数の種別は「固有」でもよいのですが、初心者なら「共通」の方が判りやすいような気がしたので、
この場合は「共通」としています。
なぜ判りやすいかと云うと、フォームやkevをいじっている最中に
F5キーとかで参照しやすいから。

24666 Re:イベントの中での変数の定義 手塚 修 2004/02/09-08:59
記事番号24635へのコメント
佐田 守弘さん 悲しげさん ありがとうございました。

できました。みごとにできました。

次に進めるようになります。
次は、訂正編集をするです。
スクロールキーで訂正編集するデータを選択するのではなく、
年月で絞込み、車両名で絞り込み等を行ってから訂正編集をしたい。

上記のイベントです。参考になるイベントを教えていだだければ
幸いです。

ありがとうございました。



戻る