Peoplecode 运算符

Peoplecode 运算符

peoplecode表达式能够使用数学,String,比较和布尔类型运算符来修改和结合。

数学运算符

peoplecode使用标准的数学运算符:

  • +
  • -
  • *
  • /
  • **(指数)

指数计算优先于乘除法,乘除法优先于加减法。此外,数学表达式是从左往右进行运算的,可以使用括号来决定运算的优先级。

负数符号可以使用为:

-10
-&NUM
-Product(&PERCENT_CUT,0.1,SALARY)

日期和时间运算符

我们可以对两个日期或者时间进行加减,最后会得到一个结果数。日期间的情况,这个数字代表两个日期间相差的天数。如果是时间之间的情况,这就是两个时间之间相差的秒数。也可以像时间或者日期加上或者减去相应的数,就会得到计算后的新的时间或日期。下表总结了这些运算:
在这里插入图片描述

字符串链接

字符串连接符(|)用于连接两个字符串。例如:假设&OPER_NICKNAME是“Dave”;以下语句为&RETOPT赋值为:

“I can't do that,|&OPER_NICKNAME|"."

连接符会自动将操作数转化成字符串。这种转换使得我们更加容易的去写混合类型的语句。例如:

&DAYS_LEFT = &CHRISTMAS - %Date;
WinMessage("Today is " | %Date | ".  Only " | &DAYS_LEFT | " shopping days left!");

@操作符

@操作符将一个存储定义引用的字符串转化为定义。这个非常有用。例如,如果我们希望在数据库中存储定义引用并且使用peoplecode检索他们;或者我们希望一字符串形式通过操作者在提示功能中的输入来获取定义引用。

用一个简单的例子来说明,如果记录中的字段EMPLID目前是8001,以下表达式获取值为8001.

@"EMPLID"

下例是使用@操作符将字符串转化为存储的相应记录引用和字段引用

&STR1 = "RECORD.BUS_EXPENSE_PER"; 
&STR2 = "BUS_EXPENSE_DTL.EMPLID"; 
&STR3 = FetchValue(@(&STR1), CurrentRowNumber(1), @(&STR2), 1); 
WinMessage(&STR3, 64);

注意:字符串的引用定义是不被peopleTools维护的。如果我们以字符串形式存储一个定义引用,然后用@操作符去转换。这样当定义名称改变时就产生了一个维护问题。

以下个函数从另一个程序中传入两个参数,一个是一个rowset,另一个是一个record,并使用他们来执行一些程序处理。用GetRecord方法不能为record获取到变量,可是我们可以使用@来引用record的名字。因为record名称不会写死的,如果这个名称发生了改变,该代码可以不做修改。

Function Get_My_Row(&PASSED_ROWSET, &PASSED_RECORD) 
    
   For &ROWSET_ROW = 1 To &PASSED_ROWSET.RowCount 
      &UNDERLYINGREC = "RECORD." | &PASSED_ROWSET.DBRecordName; 
      &ROW_RECORD = &PASSED_ROWSET.GetRow(&ROWSET_ROW).GetRecord(@&UNDERLYINGREC); 
       
      /* Do other processing */ 
       
   End-For; 
    
End-Function;

比较操作符

比较操作符比较两个相同数据类型的表达式。结果是一个布尔类型的值。下表总结了比较操作符:

在这里插入图片描述

我们可以在任意的比较操作符前加上not,例如:

  • Not=
  • Not<
  • Not>=

形成一个以比较运算符形式的表达式逻辑术语,可以结合布尔运算符。

字符比较是区分大小写的,可以使用内置函数Upper或者Lower来达到不区分大小写的比较。

布尔运算符

逻辑运算符AND,OR,NOT用于和布尔表达式相结合。下表展示了用and和or结合两个布尔表达式的结果。
在这里插入图片描述

NOT运算符会对布尔表达式取反,将为TRUE的变为FALSE,为FALSE的变为TRUE。

在混合表达式中使用NOT,AND,OR。NOT的优先级最高,AND其次,最后是OR。可以使用括号去改变优先级。(通常我们在逻辑表达式上都使用括号,他会使该表达式更容易被解读)如果是被使用于赋值语句的右边,布尔表达式必须用括号括起来。

下面的例子是包含布尔表达式的语句:

&FLAG = (Not (&FLAG)); /* toggles a Boolean */
if ((&HAS_FLEAS or &HAS_TICKS) and 
SOAP_QTY <= MIN_SOAP_QTY)  then
SOAP_QTY = SOAP_QTY + OrderFleaSoap(SOAP_ORDER_QTY);
end-if;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PeopleCode开发手册是一本专门为PeopleSoft软件开发人员编写的指南。PeopleCode是一种面向对象的编程语言,用于创建和定制PeopleSoft应用程序。该手册提供了关于PeopleCode语法、数据类型、变量、循环、条件语句和函数等方面的详细说明,帮助开发人员理解和应用PeopleCode的基本概念和技巧。 首先,该手册介绍了PeopleCode的基本语法和结构,如变量声明、赋值语句和控制流语句等。开发人员可以通过详细的示例代码和解释,快速掌握基本的编程知识和技能。 其次,该手册详细描述了PeopleCode的数据类型和数据操作。开发人员可以了解如何处理整型、浮点型、字符串、日期和布尔类型的数据,以及如何进行数据转换和格式化操作。此外,该手册还介绍了数据结构和数组的使用方法,帮助开发人员高效地组织和操作数据。 此外,该手册还介绍了PeopleCode中的循环和条件语句的使用方法。开发人员可以学习如何使用循环语句进行重复执行和条件语句进行分支处理,以实现更复杂的逻辑和功能。 最后,该手册提供了丰富的PeopleCode函数库的说明和使用示例。开发人员可以查阅函数库,了解各种函数的功能和用法,从而提高编程效率和开发质量。 总之,PeopleCode开发手册为开发人员提供了关于PeopleCode语法、数据操作、循环和条件语句以及函数库的详细说明和示例,是开发人员进行PeopleSoft应用程序开发的必备参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值