Abap报告退出详细信息

2020-08-15 07:14发布

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

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


任何人都可以用这段代码来帮助我,我在这里尝试将表pa0000和zempdetl中的两个内部连接。

我这样出错了

转义时,必须使用@转义所有主机变量。 变量L_DAT的逸出方式与前面的宿主变量不同。

这是我的代码。

报告zhr_exitdetails。

表格:pa0000,zempdetl。

类型:ty_struc的开始,
pernr类型pa0000-pernr,
begda类型pa0000-begda,
massn TYPE pa0000-massn,
ty_struc的结尾。
DATA:ty_struc的itab TYPE表,
wa ty_struc的类型。


TYPES:ty_struc1的开头,
部门TYPE zempdetl部门,
emp_plantloc TYPE ZEMPDETL-emp_plantloc,性别TYPE ZEMPDETL-gender,
ty_struc1的结尾。
数据:itab01 ty_struc1的类型表,
wa01 ty_struc1的类型。 br>
TYPES:ty_final的开始,
pernr TYPE pa0000-pernr,
begda TYPE pa0000-begda,
massn TYPE pa0000-massn,
部门类型zempdetl-部门,
emp_plantloc TYPE zempdetl-emp_plantloc,
性别TYPE zempdetl-gender,
ty_final结尾。
DATA:itab02 ty_final类型表,
wa02 TYPE ty_final类型。

DATA:i_layout TYPE slis_layout_alv,
i_events类型slis_t_event,
i_fieldtab TYPE slis_t_fieldcat_alv,
s_fieldtab类似于i_fieldtab的产品线。

S 带有标题标题文本001的块btop的选举屏幕开始。 " ZHR_COP_BDC <选择>选项:l_dat用于pa0000-begda。
选择屏幕结束的块btop。


开始选择。

执行get_data。
PERFORM显示。


FORM get_data。

从pa0000中选择a〜pernr,a〜begda,a〜massn,b〜部门,b〜emp_plantloc,b〜gender 在a_pernr EQ b_empid上作为联接zempdetl AS b进入表@ itab02的对应字段,其中l_dat中a〜massn ='ZJ'和a〜begda。

ENDFORM。

FORM显示。
* ---------------------------------------- -------------------------------------
清除:i_layout。
i_layout-zebra ='X'。
i_layout-colwidth_optimize ='X'。


s_fieldtab-col_pos ='1'。
s_fieldtab-fieldname ='PERNR'。
s_fieldtab-seltext_m ='EMPLOYEE NUMBER'。
将s_fieldtab附加到i_fieldtab。
清除s_fieldtab。

s_fieldtab-col_pos ='2'。
s_fieldtab-fieldname ='BEGDA'。
s_fieldtab- seltext_m ='开始日期'。
附加s_fieldtab到i_fieldtab。
清除s_fieldtab。

s_fieldtab-col _pos ='3'。
s_fieldtab-fieldname ='MASSN'。
s_fieldtab-seltext_m ='ACTION TAKEN'。
将s_fieldtab附加到i_fieldtab。
清除s_fieldtab。

s_fieldtab -col_pos ='4'。
s_fieldtab-fieldname ='DEPARTMENT'。
s_fieldtab-seltext_m ='DEPARTMENT'。
附加s_fieldtab到i_fieldtab。
清除s_fieldtab。

s_fieldtab -col_pos ='5'。
s_fieldtab-fieldname ='EMP_PLANTLOC'。
s_fieldtab-seltext_m ='LOCATION'。
追加s_fieldtab到i_fieldtab。
清除s_fieldtab。

s_fieldtab -col_pos ='6'。
s_fieldtab-fieldname ='GENDER'。
s_fieldtab-seltext_m ='GENDER'。
将s_fieldtab附加到i_fieldtab。
清除s_fieldtab。


调用功能'REUSE_ALV_GRID_DISPLAY'
导出
i_callback_program ='SY-REPID'
is_layout = i_layout
it_fieldcat = i_fieldtab []
i_default ='X'
表格
t_outtab = itab02
例外情况
程序错误= 1
其他=2。
ENDFORM。

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

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


任何人都可以用这段代码来帮助我,我在这里尝试将表pa0000和zempdetl中的两个内部连接。

我这样出错了

转义时,必须使用@转义所有主机变量。 变量L_DAT的逸出方式与前面的宿主变量不同。

这是我的代码。

报告zhr_exitdetails。

表格:pa0000,zempdetl。

类型:ty_struc的开始,
pernr类型pa0000-pernr,
begda类型pa0000-begda,
massn TYPE pa0000-massn,
ty_struc的结尾。
DATA:ty_struc的itab TYPE表,
wa ty_struc的类型。


TYPES:ty_struc1的开头,
部门TYPE zempdetl部门,
emp_plantloc TYPE ZEMPDETL-emp_plantloc,性别TYPE ZEMPDETL-gender,
ty_struc1的结尾。
数据:itab01 ty_struc1的类型表,
wa01 ty_struc1的类型。 br>
TYPES:ty_final的开始,
pernr TYPE pa0000-pernr,
begda TYPE pa0000-begda,
massn TYPE pa0000-massn,
部门类型zempdetl-部门,
emp_plantloc TYPE zempdetl-emp_plantloc,
性别TYPE zempdetl-gender,
ty_final结尾。
DATA:itab02 ty_final类型表,
wa02 TYPE ty_final类型。

DATA:i_layout TYPE slis_layout_alv,
i_events类型slis_t_event,
i_fieldtab TYPE slis_t_fieldcat_alv,
s_fieldtab类似于i_fieldtab的产品线。

S 带有标题标题文本001的块btop的选举屏幕开始。 " ZHR_COP_BDC <选择>选项:l_dat用于pa0000-begda。
选择屏幕结束的块btop。


开始选择。

执行get_data。
PERFORM显示。


FORM get_data。

从pa0000中选择a〜pernr,a〜begda,a〜massn,b〜部门,b〜emp_plantloc,b〜gender 在a_pernr EQ b_empid上作为联接zempdetl AS b进入表@ itab02的对应字段,其中l_dat中a〜massn ='ZJ'和a〜begda。

ENDFORM。

FORM显示。
* ---------------------------------------- -------------------------------------
清除:i_layout。
i_layout-zebra ='X'。
i_layout-colwidth_optimize ='X'。


s_fieldtab-col_pos ='1'。
s_fieldtab-fieldname ='PERNR'。
s_fieldtab-seltext_m ='EMPLOYEE NUMBER'。
将s_fieldtab附加到i_fieldtab。
清除s_fieldtab。

s_fieldtab-col_pos ='2'。
s_fieldtab-fieldname ='BEGDA'。
s_fieldtab- seltext_m ='开始日期'。
附加s_fieldtab到i_fieldtab。
清除s_fieldtab。

s_fieldtab-col _pos ='3'。
s_fieldtab-fieldname ='MASSN'。
s_fieldtab-seltext_m ='ACTION TAKEN'。
将s_fieldtab附加到i_fieldtab。
清除s_fieldtab。

s_fieldtab -col_pos ='4'。
s_fieldtab-fieldname ='DEPARTMENT'。
s_fieldtab-seltext_m ='DEPARTMENT'。
附加s_fieldtab到i_fieldtab。
清除s_fieldtab。

s_fieldtab -col_pos ='5'。
s_fieldtab-fieldname ='EMP_PLANTLOC'。
s_fieldtab-seltext_m ='LOCATION'。
追加s_fieldtab到i_fieldtab。
清除s_fieldtab。

s_fieldtab -col_pos ='6'。
s_fieldtab-fieldname ='GENDER'。
s_fieldtab-seltext_m ='GENDER'。
将s_fieldtab附加到i_fieldtab。
清除s_fieldtab。


调用功能'REUSE_ALV_GRID_DISPLAY'
导出
i_callback_program ='SY-REPID'
is_layout = i_layout
it_fieldcat = i_fieldtab []
i_default ='X'
表格
t_outtab = itab02
例外情况
程序错误= 1
其他=2。
ENDFORM。

付费偷看设置
发送
5条回答
独立观察员
1楼-- · 2020-08-15 07:50

嗨,Priya,

您需要在选择查询中使用@转义所有变量。
检查以下链接:
https://help.sap.com/doc/abapdocu_750_index_htm/7.50/zh-CN/abenopen_sql_host_variables.htm

Best,Ajit

lukcy2020
2楼-- · 2020-08-15 07:45

嗨,Priya:

感谢您访问SAP社区,以获取问题的答案。 由于您是第一次在这里提出问题,因此建议您熟悉 https ://community.sap.com/resources/questions-and-answers (如果您还没有的话),因为它提供了准备问题的技巧,这些问题引起了我们成员的反馈。

如果您愿意,可以先选择"操作",然后再选择"编辑"来修改问题(尽管一旦有人回答了问题,您将失去编辑问题的能力-但是,如果发生这种情况,您可以在 评论)。 一方面,您可能想使用问题工具中的"插入代码"功能...以使成员更容易阅读。

最后,如果您希望与读者建立联系,请考虑在您的个人资料中添加图片。 操作方法如下: https://www.youtube.com/watch?v = F5JdUbyjfMA&list = PLpQebylHrdh5s3gwy-h6RtymfDpoz3vDS 。 通过使用您的照片来个性化您的个人资料,可以鼓励读者做出回应。

亲切的问候,

-Jerry

黑丝骑士
3楼-- · 2020-08-15 07:47

由于您没有使用特殊的select语句,因此不必使用Open SQL严格模式,因此您也可以将select写成这样(不使用逗号) 按属性分隔选择和顺序,并且没有@转义宿主变量):

 SELECT a〜pernr a〜begda a〜massn b〜部门b〜emp_plantloc b〜gender
 从pa0000作为
 在a〜pernr EQ b〜empid上加入zempdetl AS b
 表itab02的相应字段
 a〜massn ='ZJ'
   和l_dat中的begda。  

如果您选择使用Open SQL严格模式( https: //help.sap.com/doc/abapdocu_750_index_htm/7.50/zh-CN/abenopensql_strict_mode_740_sp05.htm ),您必须完全使用它,而不仅仅是选择性地使用它。

您可以选择使用 则必须这样做,即l_dat也需要用@字符进行转义(字面量例如" ZJ"一定不能转义):

选择a〜pernr,a〜begda,a〜 梅森,b〜部门,b〜emp_plantloc,b〜性别
 从pa0000作为
 在a〜pernr EQ b〜empid上加入zempdetl AS b
 表@ itab02的对应字段
 a〜massn ='ZJ'
   和@l_dat中的〜begda。
 
愤怒的猪头君
4楼-- · 2020-08-15 07:40

请下次为您的问题选择一个更好的标题。 标题应与您的问题相关,例如 "变量不能像前面的变量一样被转义"

N-Moskvin
5楼-- · 2020-08-15 07:34

您的代码语法错误:

 SELECT a〜pernr,a〜begda,a〜massn,b  〜部门,b〜emp_plantloc,b〜性别
 从pa0000作为连接zempdetl AS b在apernr EQ b〜empid上
 表@ itab02的对应字段
 a〜massn ='ZJ'
   和a_begda IN l_dat。  " <=====语法错误

语法错误的文本:

转义时,必须使用@来转义所有主机变量。变量L_DAT
 

使用正确语法的代码:

 SELECT a〜pernr,a〜begda,a〜massn,b〜department,b  〜emp_plantloc,b〜性别
 从pa0000作为连接zempdetl AS b在apernr EQ b〜empid上
 表@ itab02的对应字段
 a〜massn ='ZJ'
   和a〜begda IN @l_dat。  " <=====更正

一周热门 更多>