SAP ABAP截取字符问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAP ABAP截取字符问题相关的知识,希望对你有一定的参考价值。

ABAP 一个字段正常输出是PPO-2012-001 特殊情况是PPO-2012-001-W.
这个字段是40长度. 如何确定他取的是正常还是特殊!

参考技术A 直接通过if语句判断输出是PPO-2012-001 还是PPO-2012-001-W
或者通过偏移量<f1>[+<o1>][(<l1>)]取第13和14位,如果为空,则为正常,如果为-W,则为特殊
参考技术B 假设你的这个字段对应的变量是:FIELD
IF FIELD+13(1) IS NOT INITIAL
特殊情况.
ELSE.
正常情况.
ENDIF.本回答被提问者采纳
参考技术C ilen = strlen( text ). 取字符串长度就可以判断了,如果字符串有补0的话,可以在strlen之前先CONDENSE 参考技术D 检索有多少个‘-’嘛追问

语法是什么?写个例子出来下..

第五篇SAP ABAP7.50新语法之命名规约

原文链接:SAP ABAP7.50系列之命名规约

公众号:SAP Technical

命名约定

以下约定适用于ABAP程序中所有可定义对象的名称,例如数据类型,数据对象,类,宏或存储过程:

1、名称最长可达30个字符。
2、允许的字符是从“A”到“Z”的字母,从“0”到“9”的数字和下划线(_)。
3、名称必须以字母或下划线(_)开头。

      只有在ABAP对象之外,名称也可以以不同的字符开头。
4、名称可以具有名称空间前缀。

      名称空间前缀由至少三个由两个正斜杠(/.../)括起来的字符组成。

      前缀和名称的整个长度不能超过30个字符。
5、预定义的ABAP类型或预定义数据对象的名称不能用于数据类型或数据对象。
6、实际上并未禁止使用为ABAP字等保留的ID 以用于自定义定义,但强烈建议不要这样做。
7、字段符号是特殊的,因为它们的名称必须用尖括号(<...>)括起来。

     尖括号是名称的一部分,这意味着字段符号可能被称为<>(但不建议这样做)。

 

程序内名称规则

程序内部名称描述在程序中声明的实体,在程序中调用或由其他程序调用。典型示例包括数据类型和数据对象的标识符以及方法和方法接口参数。
可以在不同的上下文中配置程序内部声明,这些上下文都跨越单独的命名空间。这些上下文按从本地到全局的顺序排列:
1、程序中的本地声明(方法)
2、类中实例组件和静态组件的声明
3、程序声明部分中的全局声明
这里局部声明总是隐藏更高上下文的更全局声明。不同类型的声明在其上下文中跨越单独的命名空间,但类组件除外,它们都位于一个命名空间中,而不管其类型如何。

 

数据声明

1、g_用于全局数据对象
2、l_用于隐藏静态属性的本地数据对象
3、i_用于IMPORTING参数
4、e_用于EXPORTING参数
5、c_用于CHANGING参数
6、r_用于RETURNING参数

 

ABAP中可能的所有类型都在命名空间中。数据类型和对象类型没有单独的命名空间。例如,无法使用已在ABAP字典中用于数据类型的名称创建全局类。
必须遵循此处提供的命名约定。它们不会通过语法检查完全检查,但它们不能超出绝对必要的范围。

 

命名空间

在类声明之外,不同的对象具有单独的名称空间,因此数据类型,数据对象或过程可能具有相同的名称。因此,类和接口与数据类型位于同一名称空间中。命名空间对于相应的上下文有效。在上下文中,相同对象的名称必须是唯一的。例如,在ABAP程序中只能有一个具有相同名称的子程序,并且在整个AS ABAP中只能有一个具有相同名称的功能模块 。

在类声明中,每个类组件的名称(数据类型,属性,方法,事件或别名)必须是唯一的。

以上是关于SAP ABAP截取字符问题的主要内容,如果未能解决你的问题,请参考以下文章

SAP abap 怎么拆分字符串

SAP ABAP 我在SMARTFORM的时候输出QUAN类型字段,SMARTFORMS就没效果。 取消输出就没有问题。

sap abap报表显示的问题

关于SAP ABAP字符变量和字符串变量字符个数的一个知识点,和一个血案

第五篇SAP ABAP7.50新语法之命名规约

sap abap dialog编程问题