子タスクのイベント実行
子タスクから親タスクのイベントを呼び出したい場合は、
同一イベントを定義して伝播=Yesにすると可能かと思いますが、逆はできますか?
親タスクから子タスクのイベント呼び出しがしたいです。
具体的には、親タスクに、テーブルを載せた子タスクをサブフォームとして配置し、
親タスクに「次画面」ボタンを配置しようとしています。
ユーザーイベントとして「次画面」イベントを作成し、両タスクで定義。親タスクのボタンに当イベントを紐づけ、子タスクで当イベント実行時に「次画面」内部イベントを実行する処理を試しましたが、処理は行われませんでした。
何かいい方法がありましたら、教えてください。
-
ISHIJIMA様
CTRLGOTOでサブフォームに移動する処理と
その下にイベントで次画面で行きませんか?
→試してみたら、一回目にボタン押下時は、次画面に移動しましたが、
そのまま2回目以降に押下時は処理が実行されませんでした。
-
ユーザーイベント「次画面」内に、下記のように定義してみました。
イメージはあってますでしょうか。
①サブフォームに移動 ※CtrlGoto('サブフォーム名',0,0)
②「次画面」内部イベント実行
③CtrlGotoで親タスクに移動 ※CtrlGoto('ボタン名',0,0)とCtrlGoto('ボタン名',0,1)両方試しましたが変わらず…
-
お尋ねしますが親タスクと子タスクは連携して表示を切り替えたいのでしょうか?
例えるなら親タスクは売上伝票の鑑で、子タスクはその明細とか。 -
親タスクから子タスクを動かしたいのだと理解しました。
親タスクに変数を用意し、親タスクでボタンを押したらその変数に1加算、あるいはTime()をセット。
その変数は子タスクのパラメータとし、
子タスク側ではV=項目 C=変更、項目はそのパラメータを指定し
そのイベントの中で次画面を実行するなんてのもいいのではないかと思います。
親タスクに配置したサブフォームの特性「自動再表示」もYesにした方がいいかもしれません。
こういった事は常に実験で成功体験を得るようにしております。
Spring様の求めているのと違ってましたら悪しからず。 -
Springさん、
親タスクのレコードと子タスクのレコードを連動させるだけなら、サブフォームのプロパティで「自動再表示:True」だけで行けるはずですよ。何かそれ以上のことをされようとしているのでしょうか?
-
親画面のボタンでサブフォームのページめくりを実現されたいのでしょうね。
サブフォーム側のテーブルコントロールのスクロールバーをマウス操作
あるいはテーブルをクリックしてPageUp/Downボタンを押せば済むと思いますが、
そうではなくて親タスクにいたまま親タスク上に配置したボタンで、ページめくり
(次画面)の動きを実現したい理由が何かお有りなのでしょうね。
もしかすると親画面はレコード移動しても、子画面は動かない方がいい場合もあるのかもしれませんし。 -
10/7 21:32の投稿の方式で
親タスクにフォーカス(パーク)したまま、
親タスクに配置したボタンで
子タスクを次画面にさせるのは実現できませんでした。
手動で子タスクにフォーカス(パーク)しなおして、
親タスクに配置したボタンで
子タスクを次画面にする動きは、当然実現しております。
(ボタンのスコープを「フォーカス上のタスク」にしてます。) -
私の場合、親画面にパーキングしたまま親画面に配置したボタンで、
子画面をPageUp/Downさせる事を実現出来た事がありませんでした。
素直に子画面に、次画面ボタンを置くか
あるいは親画面に次画面ボタンを配置して、スコープ=フォーカス上のタスクにして
子画面にフォーカスした時だけボタンを有効にするとかそんな作りとしてきました。 -
nkmt様
あるいは親画面に次画面ボタンを配置して、スコープ=フォーカス上のタスクにして
子画面にフォーカスした時だけボタンを有効にするとかそんな作りとしてきました。→こちらを試したいのですが、スコープというのはボタンコントロールのプロパティでしょうか。どのあたりにありますか?
-
ボタンの特性 → 実行元
C=コンテナタスク
T=フォーカス上のタスク
というのがあります。 -
nkmt様
ありがとうございました。
実行元をフォーカス上のタスクに設定したら画面移動ができるようになりました。
サインインしてコメントを残してください。
コメント
11件のコメント