【Magic xpa 連載最新号のご案内】 2025年2月5日
Magic xpa 開発者ユーザの皆様へ
【1】 Magic xpa 連載のご案内
------------------------------------------------
本日、Magic xpa の連載、「Magic xpa で作るイベントドリブン型プログラム」の第203回目「マルチマーキングの使い方(2)」を連載コーナーにアップいたしました。
前回は、マルチマーキングの機能を利用して、リアルタイムで複数レコードの小計を求めるというプログラムを作成しました。今回は、その第2弾として、マルチマーキングされた複数レコードを別テーブルにコピーするというプログラムを作成してみます。
選択したレコードをコピーするだけですので、わざわざマルチマーキングの機能を使わなくても、従来通りチェックボックス等を利用しての処理も可能なのですが、マルチマーキングを使用することによって、ロジックの記述が大幅に簡素化されることを体感していただければと思います。
では早速、そのプログラムを作成してみることにしましょう。
まずは、前号の画面13で確認したヘルプを思い起こしていただきます。次のように記載されていました(画面1)。
画面1 マルチマーキングのヘルプ
このヘルプにおいて、重要なくだりは次の部分です。
※Magicヘルプから引用
[テーブル]コントロールにおいて複数レコードを選択している状態でイベントがトリガされた場合、イベントに対応するロジックユニットが選択中の各レコードに対して実行されます。選択されているレコードは一つずつ順に自動的に処理されます。
ここで本文中には、「選択中の各レコードに対して実行されます」と書かれていますが、これをもっと分かりやすく表現すると、「選択中の各レコードに対して、イベントが繰り返し実行されます」となります。
では、そのことを踏まえた上でプログラムの作成に取り掛かりましょう。
プログラム完成後の実行画面は、すでに前号でご紹介した通りですが、ここでもう一度、その実行画面を確認しておきたいと思います。次のような画面になります(画面2、画面3)。
画面2 マルチマーキングしてボタンを押す
画面3 マークしたものだけがコピーされた
ではまず最初に、上の実行画面左側のテーブルを表示するプログラムを作成します(以降、本編に続く)。
目次
1. Magic ヘルプの解説を確認
2. それを踏まえてプログラムを作成
3. コピー元の親タスクの作成
4. レコード複写ユーザイベントの作成
5. レコード複写ハンドラの作成
6. レコード複写サブタスクの作成
7. テーブル表示サブタスクの作成
8. ここまででとりあえず実行
9. レコードが1件しか表示されない
10. いきなり2件目が表示された!
11. このタイミングで3件目も!
12. Magic のヘルプを再度参照
13. テストデータの初期化
14. 修正プログラムを再実行
15. ここでひとつ問題が発生!
16. インデックス重複のエラーが頻発
17. インデックス重複のエラーハンドラ
18. やはりデータが重複表示に
19. プログラムの最終調整
20. プログラムの正常動作を確認
次回は、「物理トランザクションのダーティーリード」をお送りします。
購読期間中は現在掲載中の過去記事をすべて読むことができます。
皆様のお越しをお待ちいたしております。
サインインしてコメントを残してください。
コメント
0件のコメント