親レコードといくつかの子レコードを含むページがあります。「最終ドラフト」フィールドであるチェックボックスであるフィールド (レベル 1) があります。これがチェックされると、それ以上変更を加えることができなくなります (修正モードであっても)。新しい行/effdt を挿入する必要があります。子レコードはすべてレベル 2 です。現在、私が持っているものは次のとおりです。
&RS7 = GetRowset(Scroll.AVZ_JD_DTL_TBL);
&final_draft = &RS7.GetRow(1).getrecord(Record.AVZ_JD_DTL_TBL).getfield (Field.FINAL_VALUE).Value;
If &final_draft = "Y" Then
Page.AVZ_JD_DTL_PG.DisplayOnly = True;
Else
Page.AVZ_JD_DTL_PG.DisplayOnly = False;
End-If;
たとえば、私が修正モードにあり、3 つの行があるとしましょう - effdts 2012 年 1 月 1 日、2012 年 5 月 1 日、および 2012 年 6 月 1 日。発効日を「ページング」/「スクロール」しているので、2012 年 1 月 1 日の日付の行を編集可能にし、2012 年 5 月 1 日の日付の行を読み取り専用にし、2012 年 6 月 1 日の日付の行を編集可能にします。編集可能にします。
ページ全体ではなく、各行セットを個別に「無効にする」必要があると思います。行セット/スクロールについて頭を悩ませているだけで、プログラムの早い段階で操作を行っています。
&RS1 = GetLevel0().GetRow(1).GetRowset(Scroll.AVZ_JD_DTL_TBL).GetRow(1).GetRowset(Scroll.AVZ_JD_RESP_TBL); &RS2 = GetLevel0().GetRow(1).GetRowset(Scroll.AVZ_JD_DTL_TBL).GetRow(1).GetRowset(Scroll.AVZ_JD_EXPR_TBL);
&RS1.Sort(AVZ_JD_RESP_TBL.ORDER_SEQ, "A"); &RS2.Sort(AVZ_JD_EXPR_TBL.ORDER_SEQ, "A");
問題は、現在表示している行をどのように確認し、その行の FINAL_VALUE フィールドを取得して、その effdt のページ上のすべてをグレー/無効にするかです。(もちろん、その effdt を過ぎてそのチェックボックスがチェックされていないものに移動した場合は、すべてを再度編集可能にする必要があります)。
ありがとう