関数−タスク関連: 処理レベルを確認する:Level,MainLevel
タスクの処理レベルを取得する関数です。
式で処理レベルまで指定するときは「'」(シングルクォーテーション)で囲んで使います。
似たような役割で、LevelとMainLevelという関数があります。
V8以前はLevel関数しか無かったので、古いバージョン時代に作られたものの多くはLevel関数だけかと思います。
しかし、V9PlusやV10でイベントドリブンのオンラインタスクを作成すると併用せざるを得ないでしょう。
なぜならば、イベントハンドラでのコマンドを処理中の場合、Level関数はレコードメイン(RM)という戻り値にはならないからです。
例えば、親タスクから子タスクへの移動方法として、ボタンを押してイベントハンドラで子タスクをコールする場合と、レコードメインのフローに従って子タスクをコールする場合とでは、子タスクでのLevel関数を使ったときの戻り値は異なります。
どちらの場合でもレコードメイン(RM)という戻り値を取得したのであれば、MainLevel関数を使わなければなりません。
違いを確認するためのサンプルも用意していますので、活用して理解を深めてください。
<使い方>
Level(タスク階層)・・・戻り値:次のようなものです。
TP | タスク前処理 |
---|---|
TS | タスク後処理 |
RP | レコード前処理 |
RM | レコードメイン |
RS | レコード後処理 |
GP_項目名 | グループ前処理 |
GS_項目名 | グループ後処理 |
CP_コントロール名 | コントロール前処理 |
CS_コントロール名 | コントロール後処理 |
HS_システムイベント名 | システムイベントハンドラ |
HI_内部イベント名 | 内部イベントハンドラ |
HU_ユーザイベント名 | ユーザイベントハンドラ |
MainLevel(タスク階層)・・・戻り値:次のようなものです。
TP | タスク前処理 |
---|---|
TS | タスク後処理 |
RP | レコード前処理 |
RM | レコードメイン |
RS | レコード後処理 |
<例>
Level(1)='RP':親タスクがレコード前処理ならば「True」となります。
MainLevel(0)='RM':現在のタスクがレコードメインならば「True」となります。