Peoplesoft набор строк

Я новичок в peopleoft. Мне нужна помощь в понимании набора строк, и у меня есть требование, где у меня есть 3 уровня.

На уровне 1 у меня есть флажок, и когда я открываю компонент, значение флажка на уровне 1 должно быть передано и отображено в сетке уровня 2 для всех строк.

Например

уровень0 - запись1 уровень1 - запись2 (область прокрутки)

уровень2 - запись3 (сетка)

Когда я захожу на страницу, она должна иметь такие значения

Record2.field1 = Y => Row1 Record3.field1 = Y Row2 Record3.field1 = Y


Record2.field1 = N => Row1 Record3.field1 = N


Я написал код на уровне level2 record.field rowinit peoplecode event. но проблема в том, что то же поле записи используется и на уровне 0. Есть ли способ избежать использования цикла for, поскольку в сетке может быть n строк, что может привести к проблемам с производительностью при открытии страницы.

Заранее спасибо,

1 ответ

Rowinit будет стрелять для каждого ряда в свитке. Так что если у вас есть цикл в rowinit, цикл будет выполняться для каждой строки.

Если вы хотите, чтобы флажок устанавливался только во время загрузки компонента, вы можете добавить код пользователя в компоненте PostBuild.

&rsLevel1 = GetLevel0()(1).GetRowSet(Scroll.Level1);
for &nCnt1 = 1 to &rsLevel1.activerowcount
   &rsLevel2 = &rsLevel1(&nCnt1).GetRowset(Scroll.Level2);
   for &nCnt2 = 1 to &rsLevel2.activerowcount
      &rsLevel2(&nCnt2).Level2.Check_box.value = &rsLevel1(&nCnt1).Level1.Check_box.value
   end-for;
end-for;
Другие вопросы по тегам