3个参数与逻辑合为一行。

2020-08-26 08:35发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


参数:p_var1类型i,
            p_var2类型i,
            p_sym类型char1。
 数据:结果类型i。
 假设...
 在选择屏幕参数是
 p_var1 =10。variable可以是任何数字。
 p_sym ='+'或'-'或'*'或'/'。
 p_var2 =20。变量可以是任何数字。

 我想在一行中写一个逻辑。
 结果= p_var1 p_sym p_var2。
          (10 + 20)。
 如果我正在写那样的简短转储。
 结果= p_var1 + p_sym + p_var2。
 bcoz调试中。
 结果= 10 + + + 20。
 如何用..一行写3个参数


 


        



 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


参数:p_var1类型i,
            p_var2类型i,
            p_sym类型char1。
 数据:结果类型i。
 假设...
 在选择屏幕参数是
 p_var1 =10。variable可以是任何数字。
 p_sym ='+'或'-'或'*'或'/'。
 p_var2 =20。变量可以是任何数字。

 我想在一行中写一个逻辑。
 结果= p_var1 p_sym p_var2。
          (10 + 20)。
 如果我正在写那样的简短转储。
 结果= p_var1 + p_sym + p_var2。
 bcoz调试中。
 结果= 10 + + + 20。
 如何用..一行写3个参数


 


        



 
付费偷看设置
发送
6条回答
微wx笑
1楼-- · 2020-08-26 09:02

ABAP中没有" 评估",最接近的是GENERATE SUBROUTINE POOL ,但是它的性能不好,尤其是在您的情况下,所以您 d最好选择静态替代项:

 CASE p_sym。
   当" +"时。 结果= p_var1 + p_var2。
   什么时候 '-'。 结果= p_var1-p_var2。
   什么时候 '*'。 结果= p_var1 * p_var2。
   什么时候 '/'。 结果= p_var1/p_var2。
 ENDCASE。

或选择 SWITCH 变体:

结果=开关#(p_sym当'+'则p_var1 + p_var2
                          当'-'然后p_var1-p_var2
                          当'*'然后p_var1 * p_var2
                          当'/'然后p_var1/p_var2)。
 
空代码
2楼-- · 2020-08-26 08:57

通过CODE按钮进行格式化时要小心,当前您将所有内容都放在了代码块中。 您应该可以这样输入文本:

参数:p_var1类型,
            p_var2 typei,
            p_sym类型char1。
 数据:结果类型i。

假设...

在选择屏幕参数中为

 p_var1 =10。可变值可以是任何数字。
 p_sym ='+'或'-'或'*'或'/'。
 p_var2 =20。变量可以是任何数字。

我想在一行中编写逻辑。

结果= p_var1 p_sym p_var2。
          (10 + 20)。

如果我正在像那样写短时转储。

结果= p_var1 + p_sym + p_var2。
 

bcoz调试中。.

结果= 10 + + +20。

如何用..

#在一行中编写3个参数 p#

嗨,

尝试FM EVAL_FORMULA

报告YTESTCALC。

 参数:FORMEL(50)强制性的。

 数据:像SY-SUBRC这样的RECODE,
       FUNCNAME(30)C型,
       讯息(70)C型,
       POS TYPE I,
       C型
 * FORMEL ='(2 + 3)* 4'。
 * Formel FORMEL语法

 CALLFUNCTION" CHECK_FORMULA"
 出口
 配方=配方
 输入
 SUBRC =重新编码
 FUNCNAME = FUNCNAME
 MESSAGE = MESSAGE
 POS = POS。

 如果重新初始化。
 *温恩·福梅尔(Wenn Formel)FORMEL语法师,奥斯威登

 CALLFUNCTION'EVAL_FORMULA'
 出口
 配方=配方
 输入
 VALUE = C
 例外情况
 OTHERS = 1。
 如果SY-SUBRC = 0。
 写:/TEXT-001,C。
 其他。
 写:/SY-SUBRC。
 万一。
 其他。
 写:/FUNCNAME,MESSAGE,POS。
 ENDIF。
我是小鹏鹏啊
3楼-- · 2020-08-26 09:08

是,我遇到了编译时错误...

但是我写的是那样的简短转储。

你有什么解决办法吗?

结果= p_var1 + p_sym + p_var2。
 
Aaron 3364
4楼-- · 2020-08-26 08:58

嗨,

我认为不可能使用变量内的运算符来执行Aarithematic操作。

您没有遇到编译时错误吗?

谢谢。

SAP砖家
6楼-- · 2020-08-26 09:10

我不认为 可以使用变量内的运算符执行Arithematic操作。

一周热门 更多>