Abap 如何确定变量是结构变量还是标量变量?
现在我正在编写一个ABAP报告,用户在其中输入他的ABAP报告的名称,我的报告应该检查命名约定 基本上是编码准则检查 在我的团队中有一个命名约定,比如说Abap 如何确定变量是结构变量还是标量变量?,abap,Abap,现在我正在编写一个ABAP报告,用户在其中输入他的ABAP报告的名称,我的报告应该检查命名约定 基本上是编码准则检查 在我的团队中有一个命名约定,比如说数据:spfli的表类型标准表是错误的,正确的形式应该是数据:lt\u表类型spfli的标准表 我知道在这种特殊情况下,我可以将lt\ucode>放在变量名之前,因为有类型标准表 下面是我如何解决这个问题的简短代码 我所做的是将源代码读入字符串表,然后用源代码在该表中循环,我有一个条件,如果行包含字符串数据文本\u TAB类型标准表或类似表等
数据:spfli的表类型标准表
是错误的,正确的形式应该是数据:lt\u表类型spfli的标准表
我知道在这种特殊情况下,我可以将lt\ucode>放在变量名之前,因为有类型标准表
下面是我如何解决这个问题的简短代码
我所做的是将源代码读入字符串表,然后用源代码在该表中循环,我有一个条件,如果行包含字符串数据文本\u TAB类型标准表或类似表等,然后将该行拆分为3个变量;第一个将包含数据
,第二个将包含文本选项卡
(基本上是变量名称),第三个将包含数据声明的其余部分,如表
。然后我添加前缀和表行,并将它们连接在一起数据LT\u TEXT\u表,就像文本表一样
。“如果它起作用就不傻了”:D
现在我遇到了变量的问题。例如:
DATA: variable01 TYPE string,
variable02 TYPE spfli.
它们看起来一样,但一个是可变的,另一个是结构/工作区
我的问题是。。。如何确定以下变量是结构变量还是变量
我知道有classcl\u abap\u typedescr
带有方法,但它不适用于READ REPORT
更多信息。。。我有测试报告
REPORT ZMH_TEST_SOURCE_CODE.
DATA string01 TYPE string.
DATA: string02 TYPE string,
string03 TYPE string.
data class04 TYPE REF TO ZMH_CR_CL_SPPM.
data class05 LIKE class04.
DATA: class06 TYPE REF TO ZMH_CR_CL_SPPM.
DATA: table07 TYPE STANDARD TABLE OF spfli,
table08 TYPE STANDARD TABLE OF spfli,
table09 TYPE STANDARD TABLE OF spfli,
table10 TYPE STANDARD TABLE OF spfli.
DATA: lt_table11 TYPE STANDARD TABLE OF spfli,
lt_table12 TYPE STANDARD TABLE OF spfli.
DATA structure13 LIKE LINE OF table07.
data structure14 LIKE REF TO class05.
CONSTANTS constant15 TYPE i VALUE '13'.
CONSTANTS: constant16 TYPE i VALUE '14'.
DATA text(10) TYPE c.
DATA text_tab LIKE TABLE OF text.
到目前为止,我的命名约定报告的输出
Row:30 DATA LT_TEXT_TAB LIKE TABLE OF TEXT.
Row:17 DATA: LT_TABLE07 TYPE STANDARD TABLE OF SPFLI,
Row:18 LT_TABLE08 TYPE STANDARD TABLE OF SPFLI,
Row:19 LT_TABLE09 TYPE STANDARD TABLE OF SPFLI,
Row:20 LT_TABLE10 TYPE STANDARD TABLE OF SPFLI.
Row:24 DATA LO_STRUCTURE14 LIKE REF TO CLASS05.
Row:14 DATA LO_CLASS04 TYPE REF TO ZMH_CR_CL_SPPM.
Row:16 DATA: LO_CLASS06 TYPE REF TO ZMH_CR_CL_SPPM.
Row:27 CONSTANTS LC_CONSTANT15 TYPE I VALUE '13'.
Row:28 CONSTANTS: LC_CONSTANT16 TYPE I VALUE '14'.
Row:23 DATA WA_STRUCTURE13 LIKE LINE OF TABLE07.
谢谢。您的问题太深,无法处理浅字符串。添加到图片中,以获取有关语句中各个标记的含义的更多信息。字段中是否有结构/变量的名称?您可以对表DD02L(它包含DB表和结构)进行选择,如果有一个条目比您有一个结构,如果没有,则比它是一个变量。是,true。。。就像你之前说的“如果有一个条目,那么你就有一个结构,如果没有,那么它就是一个变量。”但是如果我的报告中有一些局部结构呢?类型:结构开始、日期类型sy基准、结构结束。数据工作区类型结构。你是对的,我没有考虑到这一点。我假设本地/全局类型(如lty、gty或ty等)有一个命名约定。你可以检查名字是否是这样开头的。另一方面,在检查代码时,您可以跟踪声明的类型。您真的需要重新创建标准SAP code Inspector命名约定检查吗?请不要发布代码截图。将代码作为文本发布。