V10のイベント実行
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
medras-igara
居住地: 台東区入谷
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
いつもお世話になっております。
V10のオンラインタスクでのイベントの処理で質問させてください。
以前のバージョンで使用していたプログラムをV10で作りましたが同じ動作がしません。
V9Plusではユーザーイベントで処理を実行して、その処理の最後に「イベント実行:取消(C)」を発行すると、
そのユーザーイベント終了時に画面の先頭項目にカーソルが戻りましたが、
V10で同様に「イベント実行:キャンセル(C)」を発行すると
画面の先頭項目に戻る前に、C=コントロール、V=検証での条件式でエラーを表示させる所が実行されてしまいます。
コレを回避する方法はありますか?
1.オンラインタスクで画面上にいくつかの入力変数項目を置きます。
2.そのうちの、ある入力項目は別テーブルのインデックスになっており、照会リンクの位置付けにしました。
3.照会リンクの特性の「戻り値」に論理型の変数を式で設定して照会リンクが正常か判断します。
4.ロジックの所でC=コントロール、V=検証、コントロール名でその入力変数を設定して、
先ほどの論理型の値を見てはエラーを表示させます。
5.画面上にボタンを置いて実行イベントをユーザーイベントの「登録・更新」とします。
6.ロジックの所でE=イベント、ユーザーイベントの「登録・更新」として、
バッチタスクで画面の入力変数の値をデータとして書き込む子タスクをコールします。
その後、子タスクから戻ったら、画面の入力変数を全てクリアして、
「イベント実行:キャンセル(C)」を実行して、このE=イベントの処理を終えます。
★このプログラムを実行して入力項目を全て入力後に登録・更新ボタンを押すと、
データの更新は無事行われ画面がクリアされますが、
最後に4.のエラーが表示されてしまいます。
★V9Plusで同じように作ったプログラムでは登録・更新の処理の後は、画面がクリアされ取消(C)が行われ画面の先頭の項目にカーソルが戻りました。
ただしV9Plusではエラー処理はC=コントロール、V=検証ではなくてレコードメインに直接置いて
「フローモード=両用モード、フロー方向=前方」で処理していました。。
入力中だけエラー処理を行い、登録・更新のイベントではデータ更新後は、
画面の変数をクリアして画面の先頭の項目にカーソルを戻したいのですが
V10では上記のやり方ではいけないのでしょうか?
細々と書いてしまいましたがアドバイスを頂けたらと思います。
よろしくお願いします。
V10のオンラインタスクでのイベントの処理で質問させてください。
以前のバージョンで使用していたプログラムをV10で作りましたが同じ動作がしません。
V9Plusではユーザーイベントで処理を実行して、その処理の最後に「イベント実行:取消(C)」を発行すると、
そのユーザーイベント終了時に画面の先頭項目にカーソルが戻りましたが、
V10で同様に「イベント実行:キャンセル(C)」を発行すると
画面の先頭項目に戻る前に、C=コントロール、V=検証での条件式でエラーを表示させる所が実行されてしまいます。
コレを回避する方法はありますか?
1.オンラインタスクで画面上にいくつかの入力変数項目を置きます。
2.そのうちの、ある入力項目は別テーブルのインデックスになっており、照会リンクの位置付けにしました。
3.照会リンクの特性の「戻り値」に論理型の変数を式で設定して照会リンクが正常か判断します。
4.ロジックの所でC=コントロール、V=検証、コントロール名でその入力変数を設定して、
先ほどの論理型の値を見てはエラーを表示させます。
5.画面上にボタンを置いて実行イベントをユーザーイベントの「登録・更新」とします。
6.ロジックの所でE=イベント、ユーザーイベントの「登録・更新」として、
バッチタスクで画面の入力変数の値をデータとして書き込む子タスクをコールします。
その後、子タスクから戻ったら、画面の入力変数を全てクリアして、
「イベント実行:キャンセル(C)」を実行して、このE=イベントの処理を終えます。
★このプログラムを実行して入力項目を全て入力後に登録・更新ボタンを押すと、
データの更新は無事行われ画面がクリアされますが、
最後に4.のエラーが表示されてしまいます。
★V9Plusで同じように作ったプログラムでは登録・更新の処理の後は、画面がクリアされ取消(C)が行われ画面の先頭の項目にカーソルが戻りました。
ただしV9Plusではエラー処理はC=コントロール、V=検証ではなくてレコードメインに直接置いて
「フローモード=両用モード、フロー方向=前方」で処理していました。。
入力中だけエラー処理を行い、登録・更新のイベントではデータ更新後は、
画面の変数をクリアして画面の先頭の項目にカーソルを戻したいのですが
V10では上記のやり方ではいけないのでしょうか?
細々と書いてしまいましたがアドバイスを頂けたらと思います。
よろしくお願いします。
投票数:1
平均点:10.00
hiro
居住地: 三重
投稿数: 188
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは medras-igaraさん
イベントの強制終了はどうなっていますか?。
この設定によって後に実行されるロジックが変わるようです。
ヘルプを参照してみては?
でわ
イベントの強制終了はどうなっていますか?。
この設定によって後に実行されるロジックが変わるようです。
ヘルプを参照してみては?
でわ
投票数:0
平均点:0.00
medras-igara
居住地: 台東区入谷
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
hiroさん
こんにちは
イベントの強制終了の件ですが、
R= レコード更新前になっておりました。
ヘルプを参照したら
R= レコード更新前……イベントを実行する前に現在のレコードレベルを終了します。
となっております。
つまり「イベントを実行する前に」、これらの処理をすると思われます。
ちなみにこのタスクはメインファイルは設定しておらず変数のみのタスクです。
ここでいうレコード更新とは?メインファイルのことでしょうか・
ちなみに
実際のデータ更新はこれから実行するイベント処理でコールされる子タスクで変数の内容をWでデータリンクして更新しているのです。。
−−−−−−−−−−−−−−
なお、変な動作をする原因ですが、
私の方で見つけましたのでご報告いたします。
このイベント実行にコールされる子タスクのタスク前処理で、何故か別のイベント実行を発生している箇所がありました。(これはバグです。)
この行を削除したら此方が希望する動作をするようになりました。
V9+の時はイベント発生時のタイミング(?)でたまたま動作していたのだと思われます。
−−−−−−−−−−−−−−−
hiroさん、書き込みいただいて本当に有り難う御座いました。
これからもよろしくお願いします。
それでは失礼します。m(_ _)m
こんにちは
イベントの強制終了の件ですが、
R= レコード更新前になっておりました。
ヘルプを参照したら
R= レコード更新前……イベントを実行する前に現在のレコードレベルを終了します。
となっております。
つまり「イベントを実行する前に」、これらの処理をすると思われます。
ちなみにこのタスクはメインファイルは設定しておらず変数のみのタスクです。
ここでいうレコード更新とは?メインファイルのことでしょうか・
ちなみに
実際のデータ更新はこれから実行するイベント処理でコールされる子タスクで変数の内容をWでデータリンクして更新しているのです。。
−−−−−−−−−−−−−−
なお、変な動作をする原因ですが、
私の方で見つけましたのでご報告いたします。
このイベント実行にコールされる子タスクのタスク前処理で、何故か別のイベント実行を発生している箇所がありました。(これはバグです。)
この行を削除したら此方が希望する動作をするようになりました。
V9+の時はイベント発生時のタイミング(?)でたまたま動作していたのだと思われます。
−−−−−−−−−−−−−−−
hiroさん、書き込みいただいて本当に有り難う御座いました。
これからもよろしくお願いします。
それでは失礼します。m(_ _)m
投票数:0
平均点:0.00