PeopleSoft-APIs和Functions

其他数据类型转字符串String

1
String(a)

其他数据类型转小数Number

1
Number(a)

其他数据类型转整数Integer

1
2
Integer(a)
//注意:如果是小数类型数据,会去掉小数部分,直接取整。

其他数据类型转数值型Value

1
2
Value("5.56");
Value("12,300");

String类型转Date类型、Datetime类型

1
Date(19970701);
1
2
3
Datetime6(year, month, day, hour, minute, second)
Datetime6(1990,01,01,09,30,20);
//时间:1990-1-1 9:30:20

字符串修剪、截取、替换、比对

左修剪方法:LTrim()

1
2
3
4
5
6
7
Local string &str = ",,.。;:'“”123";
Local string &str1 = LTrim(&str, ",,“”.。;:'");
/*
LTrim() -- 左起修剪:
参数&str,为需要修剪的字符串;
参数"",需要去除的字符,顺序随意,会根据包含的字符,一一对比,如有相同,则去除;
*/

右修剪方法:RTrim()

1
2
3
4
5
6
7
Local string &str = ",,.。;:'“”123";
Local string &str1 = RTrim(&str, ",,“”.。;:'");
/*
RTrim() -- 右起修剪:
参数&str,为需要修剪的字符串;
参数"",需要去除的字符,顺序随意,会根据包含的字符,一一对比,如有相同,则去除;
*/

截取方法:substring()、left()、right()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
&str = "12345abc";
&ret = substring(&str,1,5);
结果:12345
/*
Substring(source_str, start_pos, length) --按长度截取字符串;
参数source_str,需要截取的源字符串;
参数start_pos,开始下标;
参数length,截取的长度;
*/

&str = "12345abc";
&ret = left(&str,5);
结果:12345
/*
left(source_str,num_char); -- 从左开始数,截取指定字符字数;
参数1:源字符串;
参数2:截取字符个数;
*/

&str = "12345abc";
&ret = right(&str,3);
结果:abc
/*
left(source_str,num_char); -- 从右开始数,截取指定字符字数;
参数1:源字符串;
参数2:截取字符个数;
*/

替换方法:Substitute() 对比也可使用该方法实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
&str = "12345abc";
&ret = Substitute(&str,"1","");
结果:2345sbc
/*
Substitute(source_text, old_text, new_text) -- 取子串所在的下标;
参数1:需要替换的源字符串;
参数2:需要替换的子串;
参数3:替换的新子串;
返回值:替换后的字符串;
*/
if Substitute(&str,"1","") = &str then
winmessage("不含该子串");
else
winmessage("包含该子串");
end-if;
/* 对目标源串进行子串替换为空,如果替换后仍然等于源串,说明该源串不含子串;*/

获取随机数

1
2
//获取0-1之间的随机数。
rand();

获取唯一ID

1
2
//获取唯一ID;
UUIDGEN();

获取当前访问组件的CI名称

1
2
//获取当前访问组件的CI名称;
&CI_Name = %CompIntfcName;

sleep函数(客制化)

1
2
3
4
5
//利用以下PeopleCede,进行系统定时休眠。   
Local datetime &dttmTemp;
&dttmTemp = %Datetime;
While (%Datetime - &dttmTemp) < 1
End-While;

URL编码函数

1
2
3
EncodeURLForQueryString(Substitute(Substitute(&arrResult [2], Char(10), ";"), Char(13), "")) 
char(10) CR 回车,回到首行 替换为 ';'
char(13) LF 换行 替换为空

鼠标聚焦

1
2
3
4
SetCursorPos(%Page, Record.C_HEAD_TBL, &i, Record.C_DETAIL_TBL, &j, C_DETAIL_TBL.FIELD);
//Record.C_HEAD_TBL 1层表,&i 定位对应行数
//Record.C_DETAIL_TBL 2层表,&j 定位对应行数
//C_DETAIL_TBL.FIELD 表名.字段,定位对应字段

获取页面对象

1
2
3
4
5
6
7
8
GetLevel0()(1).GetRowset(Scroll.C_HEAD_TBL).GetRow(&i).GetRowset(Scroll.C_DETAIL_TBL).GetRow(&j).C_DETAIL_TBL.FIELD
/*(&i)=GetRow(&i) 可以省略GetRow*/
//getlevel0(1) = getlevel0.getrow(1) 获取0层
//GetLevel0()(1).GetRowset(Scroll.C_HEAD_TBL) 获取1层的rowset
//GetLevel0()(1).GetRowset(Scroll.C_HEAD_TBL).GetRow(&i) 获取1层的rowset的第&i行
//GetLevel0()(1).GetRowset(Scroll.C_HEAD_TBL).GetRow(&i).GetRowset(Scroll.C_DETAIL_TBL) 获取2层的rowset
//GetLevel0()(1).GetRowset(Scroll.C_HEAD_TBL).GetRow(&i).GetRowset(Scroll.C_DETAIL_TBL).GetRow(&j) 获取2层的rowset的第&j行

获取页面中field对象

1
2
GetPageField(page.page_name,"fieldName");
//根绝页面中field的名称获取field对象

获取页面中Grid对象

1
2
3
GetGrid(Page.page_name, grid_name, [L1_row_num]); 
//根据页面中Grid的名称获取Grid对象
//[L1_row_num] 为父层级L1的行数,所以仅当获取2层级的Grid对象时才填写

日期加减

1
2
3
AddToDate(date, num_years, num_months, num_days)
AddToDate(&date, 0, 3, - 1);
//年、月、日 加减操作。注意,按月操作时,1月31号 加1个月,可能得到2月28(平年)或者2月29(闰年)

获取日期中的月份

1
2
Month(%DATE);
//获取日期中的月份;

获取编辑前字段值

1
2
PriorValue(REC.FIELD.VALUE) 
//获取表.字段编辑前的值(上一个),一般使用在fieldedit 或者 fieldchange

判断行数据更改

1
2
getrow().ischanged = true ; 
//行数据修改

判断行数据新增

1
2
getrow().isnew = true ; 
//行数据新增