0

我在某处得到了这个 PeopleCode,它说它可以在下拉列表中动态添加项目:

Component number &rownum;

Local SQL &SQL;
Local Rowset &rset0, &rset1;
Local String &type, &descr;

&rset0 = GetLevel0();
&rset1 = &rset0(1).GetRowset(Scroll.LEVEL1_REC);

&FLD = &rset1(&rownum).GetRecord(Record.LEVEL1_REC).GetField(Field.LEVEL1_REC_FIELD);
&FLD.ClearDropDownList();

&SQL = CreateSQL("SELECT A.TYPE, A.DESCR FROM PS_ABCD_TBL A WHERE A.EFF_STATUS = 'A' AND SOME CONDITION");

While &SQL.Fetch(&type, &descr)
    &FLD.AddDropDownItem(&type, &descr);
End-While;

我的问题是我不知道我应该把它放入 peoplecode 中的哪个事件。

我想要实现的是这样的:

用户将选择一个日期。当日期在 2018 年 6 月之前时,它会显示一组下拉项目。但是,如果所选日期在 2018 年 6 月 1 日或之后,它将显示另一组下拉列表项。

4

1 回答 1

0

因此,如果我理解正确,您希望在日期更改时更改下拉列表。然后,您应该将代码放入日期字段的 FieldChange 事件中。

在 PeopleSoft 中,您有 Record.Field.FieldChange 事件和 Component.Record.Field.FieldChange。Record.Field.FieldChange 事件将在此字段更改时触发,无论它位于哪个组件中。而 Component.Record.Field.FieldChange PeopleCode 仅在您保存代码的组件中更改该字段时触发。

在您的情况下,您可能希望它出现在 Component.Record.Field.Fieldchange 事件中,因为您的逻辑听起来是特定于组件\页面的。

于 2018-06-27T18:51:45.737 回答