【Magic xpa 連載最新号のご案内】 2024年2月8日
Magic xpa 開発者ユーザの皆様へ
【1】 Magic xpa 連載のご案内
------------------------------------------------
Magic xpa の連載、「Magic xpa で作るイベントドリブン型プログラム」の第191回目「レコード書込イベントの使い方」を連載コーナーにアップいたしました。
画面1は、よくあるパターンの伝票入力プログラムの実行画面です。ここで、新規の伝票入力あるいは伝票の修正入力を行って、入力を終えたタイミングで、即座にその下にある「印刷」ボタンを押したいとします。
画面1 よくある伝票入力画面
このとき、大抵は入力を終えた時点でサブタスクをコールして印刷用のタスクを起動するわけなのですが、実はこれが普通にプログラムを作成しただけではうまく実行されません。
どういう症状が起きるのかというと、登録したばかりのデータもしくは修正したばかりのデータがコール先のタスクにおいて見つからない(反映されていない)という現象になるのです。
これは、なぜそうなるのでしょうか?
理由は次の通りです。
入力もしくは修正したばかりのレコードは、サブタスクをコールする段階ではまだ「レコード後処理」を通過していないため、そのタイミングで別タスクを起動してそのレコードを参照しようとしても、データベースには編集内容が反映されていないからなのです。
そこで困ったということで、多くの場合「次行」イベントや「前行」イベントを使って一旦、そのレコードを抜けて(強制的にレコード後処理を通過して)、また元に戻るといったような処理を追加したり、あるいは入力データを変数に代入してその値で印刷を行うといったようなロジックにすることがあるのですが、実はそれらの方法はあまりスマートな方法であるとは言えません。
では、どうしたらもっと簡潔なプログラムにすることができるのでしょうか?それが今回のテーマとなります。
では、実際にどうすればいいのかという解説を見ていくことにしましょう(後略)。
目次
1. 修正したレコードが反映されない!
2. 単純な2階層プログラムで検証
3. 新規レコードの登録
4. 登録レコードが出てこない!
5. 修正プログラムでも試してみる
6. 修正内容が反映されていない!
7. レコード書込イベントを使う
8. レコード書込を実際に記述する
9. 残念ながら表示されない!
10. ヘルプをよく読んでみる
11. ヘルプ通りにプログラムを修正
12. 再度、実行する
13. 見事に表示された!
14. 修正プログラムのほうも修正
15. こちらも正常に表示された!
次回は、「強制終了のレコード更新後について」をお送りします。
購読期間中は現在掲載中の過去記事をすべて読むことができます。
皆様のお越しをお待ちいたしております。
サインインしてコメントを残してください。
コメント
0件のコメント