У меня есть страница, содержащая родительскую запись и несколько дочерних записей. Существует поле (уровень 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 1/1/2012, 5/1/2012 и 6/1/2012, с установленным флажком для строки, датированной 5/1/2012, поскольку я «просматриваю» / «прокручиваю» даты вступления в силу, я хочу, чтобы строка от 01.01.2012 была редактируемой, строка от 01.05.2012 - только для чтения, а затем строка от 01.06.2012. быть редактируемым.
Я думаю, возможно, мне нужно будет «отключить» каждый набор строк в отдельности, а не страницу в целом. Я просто обдумываю наборы строк/прокрутки, и ранее в программе я выполняю некоторые манипуляции:
&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 к тому, у которого этот флажок не установлен, все нужно будет снова редактировать).
Спасибо