PeopleSoft-弹窗功能实现

同组件页面跳转或弹窗

1
2
3
4
5
DoModal(Page.page_name, title, xpos, ypos, [level, scroll_path, target_row])
-- In which scrollpath is:
[Record.level1_recname, level1_row, [Record.level2_recname, level2_row, ]] Record.target_recname

-- 可以传一级页面的scroll,或者(临时)数据表

DoModalXComponent函数介绍

1
2
3
4
5
DoModalXComponent(showInModal,  cancelButtonName,  MenuName.MENU_NAME,  BarName.BAR_NAME,  ItemName.MENU_ITEM_NAME,  Page.COMPONENT_ITEM_NAME,  action, Record.SHARED_RECORD_NAME [, keylist])
-- In which keylist is a list of field references in the form:
[recordname.]field1 [, [recordname.]field2]

-- 只能传(临时)数据表

根据参数直接进入页面;如果默认进入新增页面,需要在跳转后地组件的searchinit上添加一下的代码:

1
SetSearchDialogBehavior(0);

关闭

1
2
//在返回按钮添加代码,即可跳关闭当前弹出的组件页面
EndModal(0);

示例:

DoModal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
If All(C_EMPL_DEMAND_S.C_RE_NO.Value) Then
local number &rtNum = DoModal(Page.C_EMPL_DES_PG, "需求详情", - 1, - 1, 1, Record.C_EMPL_DEMAND_S, CurrentRowNumber());
Else
MessageBox(0, "", 0, 0, "请先保存生成招聘编号,再填写需求详情!")
End-If;
/*
True -- 是否弹窗显示,true-是,false-否;
MenuName -- 菜单名
BarName -- 栅名
ItemName -- 组件名
Page -- 页面名
"L" -- 跳转模式
Record -- 传参表
rtNum -- 返回一个数字,指示如何终止辅助页面。用户可以通过单击内置的“确定”或“取消”按钮,或者通过调用 PeopleCode 程序中的 EndModal 函数来终止二级页面。在任何一种情况下,DoModal 的返回值都是以下之一:
1 如果用户在二级页面中单击了“确定”,或者在终止二级页面的 EndModal 函数调用中传递了 1。
0 如果用户在二级页面中单击了取消,或者如果在终止二级页面的 EndModal 函数调用中传递了 0,则为 0。
*/

DoModalXComponent

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*设置参数表*/
C_STD_POSN_WK.SETID = C_STD_POSN_TBL.SETID;
C_STD_POSN_WK.C_STD_POSN_ID = C_STD_POSN_TBL.C_STD_POSN_ID;
/*调用函数*/
local number &rtNum = DoModalXComponent( True, "", MenuName.C_HR_MENU, BarName.CONFIG, ItemName.C_POSN_INST_COM, Page.C_POSN_INST_PG, "L", Record.C_STD_POSN_WK);
/*
True -- 是否弹窗显示,true-是,false-否;
MenuName -- 菜单名
BarName -- 栅名
ItemName -- 组件名
Page -- 页面名
"L" -- 跳转模式
Record -- 传参表
rtNum -- 返回一个数字,指示如何终止辅助页面。用户可以通过单击内置的“确定”或“取消”按钮,或者通过调用 PeopleCode 程序中的 EndModal 函数来终止二级页面。在任何一种情况下,DoModal 的返回值都是以下之一:
1 如果用户在二级页面中单击了“确定”,或者在终止二级页面的 EndModal 函数调用中传递了 1。
0 如果用户在二级页面中单击了取消,或者如果在终止二级页面的 EndModal 函数调用中传递了 0,则为 0。
*/

action参数:

Numeric Value Constant Value Description
A %Action_Add Add – 新增模式,进入新增页面
U %Action_UpdateDisplay Update/Display – 更新/显示模式,搜索页面
L %Action_UpdateDisplayAll Update/Display All
C %Action_Correction Correction – 修改历史记录模式,搜索页面
E %Action_DataEntry Data Entry
P %Action_Prompt Prompt

官方参考链接:

PeopleBook8.57-DoModalXComponent函数