PeopleSoft-Grid相关设置

设置Grid列标题

1
2
&Grid = getGrid(page.c_test_page,"c_test_grid");
&Grid.getColumn("test").label = "测试";

设置Grid每行,每列只读

1
2
3
4
5
6
7
8
9
10
11
local rowset &rs = getRowset(scroll.C_TEST_TBL);
FOR &i = 1 TO &rs.activeRowCount
FOR &l = 1 TO &rs(&i).getRecord(Record.C_TEST_TBL).fieldCount;
&rs(&i).getRecord(Record.C_TEST_TBL).getField(&l).enabled = false;
end-for;
end-for;

Local Grid &g = GetGrid(Page.C_EMPL_DEMAND_PG, "C_EMPL_DEMAND_S");
&g.GetColumn("C_RE_NO").Enabled = False;
&g.GetColumn("POSITION_NBR").Enabled = False;

链接字段赋值

1
2
3
4
5
6
7
8
9
/*将LINK的字段赋值为每行的员工ID*/
IF ALL(C_TEST_TBL.C_TEST_EMPLID) THEN
/*如果在表上写getrow()的话,直接获取相对位置*/
GETROW().C_TEST_TBL.C_TEST_LINK.LABEL = GETROW().C_TEST_TBL.C_TEST_EMPLID.VALUE;
/*如果不写,可能获取0层上的表,可能会取错位置*/
C_TEST_TBL.C_TEST_LINK.LABEL = C_TEST_TBL.C_TEST_EMPLID.VALUE;
END-IF;

//注意:这里要注意,不能想在员工ID字段EMPLID上直接设置按钮链接,这样的话会导致,EMPLID值不能正常显示员工的ID值,应该利用WRK表弄一个字段将它的LABEL值设置为员工的ID值(仅做显示),然后根据上面的设置Grid的列头显示。

如果要在页面实现勾选功能,只需要在Grid的设置页面勾选该项,代码中使用selected 属性即可;

1
2
3
4
5
6
7
8
9
Local Rowset &rsC_EP_APPR_M_VW = GetLevel0()(1).GetRowset(Scroll.C_EP_APPR_M_VW);
Local number &i;
If &rsC_EP_APPR_M_VW.GetRow(&i).Selected Then
If &strC_EP_DOC_IDs = "" Then
&strC_EP_DOC_IDs = "'" | &rsC_EP_APPR_M_VW.GetRow(&i).C_EP_APPR_M_VW.C_EP_DOC_ID.Value | "'";
End-If;
End-For;


禁止Grid得 + 、 - 号

1
2
3
4
5
//隐藏+ 、- 号;
Local Rowset &rs = GetLevel0().GetRow(1).GetRowset(Scroll.C_EMPL_DEMAND_S);
&rs.InsertEnabled = False;
&rs.DeleteEnabled = False;

获取当前操作行的行数

1
2
3
4
grid中的每行数据序号赋值:
If All(C_EDCT_BAKG_TBL.C_EDCT_IN_DT.Value) Then
C_EDCT_BAKG_TBL.C_SEQUENCE_NUM.Value = CurrentRowNumber();
End-If;

判断某条数据是否被修改

1
2
3
4
5
6
7
8
If %CompIntfcName = "C_SB_GJJ_SAVE_COM_CI" Then
If GetRowset().GetRow(CurrentRowNumber()).IsChanged Then
If C_GJ_CALC_RES_T.C_IS_UPDED.Value = "Y" Then
Error MsgGet(20001, 4, "Message Not Found");
End-If;
End-If;
End-If;