调用功能模块时发生类型冲突

2020-09-05 08:23发布

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

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


嗨,

我在执行代码时遇到类型冲突错误,请帮忙我的练习

报告ztest_m03_inner_joins。
类型库:slis。
表格:vbrk,vbrp。
类型:ty_vbrk的开始,
vbeln类型vbeln_vf,
fkart类型fkart,
fktyp TYPE fktyp,
vbtyp TYPE vbtyp,
ty_vbrk的结尾。 ,
vrkme TYPE vrkme,
ty_vbrp的结尾。

类型:ty_out的开始,
vbeln TYPE vbeln_vf,
fkart TYPE fkart,
fktyp TYPE fktyp,
vbtyp TYPE vbtyp,
posnr TYPE posnr,
fkimg TYPE fkimg,
vrkme TYPE vrkme,
ty_out的结尾。

DATA:wa_out TYPE ty_out,
it_out TYPE ty_out表,

wa_fcat类型slis_fieldcat_alv,
it_fcat类型slis_t_fieldcat_alv带标题行。

选择选项:s_vbeln用于vbrk-vbeln。


START-OF- 选择。


wa_fcat-col_pos =1。
wa_fcat-fieldname ='VBELN'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='BILLING DOC NO'。
将wa_fcat添加到it_fcat。
清除wa_fcat。

wa_fcat-col_pos =2。
wa_fcat-fieldname ='FKART'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat- seltext_m ='帐单类型'。
附加wa_fcat到it_fcat。
清除wa_fcat。

wa_fcat-col_pos =3。
wa_fcat字段名称='FKTYP'。
wa_fcat-tab名称 ='IT_OUT'。
wa_fcat-seltext_m ='BILLING CATAGERY'。
将wa_fcat附加到it_fcat。
清除wa_fcat。

wa_fcat-col_pos =4。
wa_fcat字段名称= 'VBTYP'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='SD DOCUMENT CATAGERY'。
将wa_fcat附加到it_fcat。
清除wa_fcat。

wa_fcat- col_pos =5。
wa_fcat-fieldname ='VBTYP'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='SD DOCUMENT CATAGERY'。
附加wa_fcat到它_fcat。
清除wa_fcat。

wa_fcat-col_pos =6。
wa_fcat-fieldname = 'POSNR'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='BILLING ITEM'。
将wa_fcat附加到it_fcat。
清除wa_fcat。


wa_fcat-col_pos = 7.
wa_fcat-fieldname ='FKIMG'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='QUANTITY'。
将wa_fcat附加到it_fcat。
清除wa_fcat。

wa_fcat-col_pos =8。
wa_fcat-fieldname ='VRKME'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='销售部门'。
APPEND wa_fcat TO it_fcat。
清除wa_fcat。


选择a〜vbeln
fkart
fktyp
vbtyp
posnr
fkimg
vrkme从vbrk AS a内部联接vbrp AS b
在a〜vbeln上= b〜vbeln进入表it_out最多30个行
a〜vbeln在s_vbeln中。

*选择结束。
* DATA:tb_lines类型i。
* DESCRIBE TABLE it_out LINES tb_lines。
* WRITE:'NO.OF RECORDS',tb_lines。

通话功能'REUSE_ALV_GRID_DISPLAY'
导出
i_callback_program = sy-repid
it_fieldcat = it_fcat

表格
t_outtab = it_ out
EXCEPTIONS
程序错误= 1
其他= 2

IF sy-subrc <> 0.
*在此处实施适当的错误处理
ENDIF。
< br>

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

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


嗨,

我在执行代码时遇到类型冲突错误,请帮忙我的练习

报告ztest_m03_inner_joins。
类型库:slis。
表格:vbrk,vbrp。
类型:ty_vbrk的开始,
vbeln类型vbeln_vf,
fkart类型fkart,
fktyp TYPE fktyp,
vbtyp TYPE vbtyp,
ty_vbrk的结尾。 ,
vrkme TYPE vrkme,
ty_vbrp的结尾。

类型:ty_out的开始,
vbeln TYPE vbeln_vf,
fkart TYPE fkart,
fktyp TYPE fktyp,
vbtyp TYPE vbtyp,
posnr TYPE posnr,
fkimg TYPE fkimg,
vrkme TYPE vrkme,
ty_out的结尾。

DATA:wa_out TYPE ty_out,
it_out TYPE ty_out表,

wa_fcat类型slis_fieldcat_alv,
it_fcat类型slis_t_fieldcat_alv带标题行。

选择选项:s_vbeln用于vbrk-vbeln。


START-OF- 选择。


wa_fcat-col_pos =1。
wa_fcat-fieldname ='VBELN'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='BILLING DOC NO'。
将wa_fcat添加到it_fcat。
清除wa_fcat。

wa_fcat-col_pos =2。
wa_fcat-fieldname ='FKART'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat- seltext_m ='帐单类型'。
附加wa_fcat到it_fcat。
清除wa_fcat。

wa_fcat-col_pos =3。
wa_fcat字段名称='FKTYP'。
wa_fcat-tab名称 ='IT_OUT'。
wa_fcat-seltext_m ='BILLING CATAGERY'。
将wa_fcat附加到it_fcat。
清除wa_fcat。

wa_fcat-col_pos =4。
wa_fcat字段名称= 'VBTYP'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='SD DOCUMENT CATAGERY'。
将wa_fcat附加到it_fcat。
清除wa_fcat。

wa_fcat- col_pos =5。
wa_fcat-fieldname ='VBTYP'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='SD DOCUMENT CATAGERY'。
附加wa_fcat到它_fcat。
清除wa_fcat。

wa_fcat-col_pos =6。
wa_fcat-fieldname = 'POSNR'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='BILLING ITEM'。
将wa_fcat附加到it_fcat。
清除wa_fcat。


wa_fcat-col_pos = 7.
wa_fcat-fieldname ='FKIMG'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='QUANTITY'。
将wa_fcat附加到it_fcat。
清除wa_fcat。

wa_fcat-col_pos =8。
wa_fcat-fieldname ='VRKME'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='销售部门'。
APPEND wa_fcat TO it_fcat。
清除wa_fcat。


选择a〜vbeln
fkart
fktyp
vbtyp
posnr
fkimg
vrkme从vbrk AS a内部联接vbrp AS b
在a〜vbeln上= b〜vbeln进入表it_out最多30个行
a〜vbeln在s_vbeln中。

*选择结束。
* DATA:tb_lines类型i。
* DESCRIBE TABLE it_out LINES tb_lines。
* WRITE:'NO.OF RECORDS',tb_lines。

通话功能'REUSE_ALV_GRID_DISPLAY'
导出
i_callback_program = sy-repid
it_fieldcat = it_fcat

表格
t_outtab = it_ out
EXCEPTIONS
程序错误= 1
其他= 2

IF sy-subrc <> 0.
*在此处实施适当的错误处理
ENDIF。
< br>

付费偷看设置
发送
5条回答
路亽曱_Ryan
1楼-- · 2020-09-05 08:57

嗨,

当您遇到类型冲突时,便会出现转储。 在转储内部,您将获得Conflic类型,FM和字段的描述。 从这里开始,阅读您的转储(trans ST22)

能不能别闹
2楼-- · 2020-09-05 08:44

嗨,

1。删除标题行。

it_fcat类型slis_t_fieldcat_alv。"(带标题行)。

2。并删除重复的字段目录

wa_fcat-col_pos =4。
wa_fcat-fieldname ='VBTYP'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m ='SD DOCUMENT CATAGERY'。
APPEND wa_fcat TO it_fcat。
清除wa_fcat。

wa_fcat-col_pos = 5.
wa_fcat-fieldname ='VBTYP'。
wa_fcat-tabname ='IT_OUT'。
wa_fcat-seltext_m =' SD文件标签'。
在wa_fcat附加到it_fcat。
清除wa_fcat。

派大星 ヾ
3楼-- · 2020-09-05 08:54

嗨,

您正在使用错误的输入参数调用" REUSE_ALV_GRID_DISPLAY"功能模块。 不需要标题行。

尝试在it_fcat的声明中使用标题行删除。

数据:带有标题行的it_fcat类型slis_t_fieldcat_alv。

尝试

数据:it_fcat TYPE slis_t_fieldcat_alv。
bbpeas
4楼-- · 2020-09-05 09:01

您很高兴地说"对于您的要求而言,不必使用标头行",因为自7.0(2005)起,它已经完全过时,主要是因为 容易出错(OP的良好经验,我希望他再也不会这样做了:-D)。

nice_wp
5楼-- · 2020-09-05 08:43
 data g_vblen类型vbrk-vbeln。

 select-options:s_vbeln用于g_vblen。

 选择vbrk〜vbeln,fkart,fktyp,vbtyp,posnr,fkimg,vrkme
        从vbrk内部加入vbrp
        在vbrk〜vbeln = vbrp〜vbeln
        @s_vbeln中的vbrk〜vbeln
        到表@data(db_values)最多30行。


 尝试。
     cl_salv_table => factory(导出list_display = if_salv_c_bool_sap => false
                             导入r_salv_table = data(salv)
                             更改t_table = db_values)。


     salv-> get_functions()-> set_all()。
     salv-> display()。
   捕获cx_salv_msg cx_salv_not_found。
 努力。
 

1。 不需要TYPE-POOLS声明。 该系统包括所有类型池!

2。 忘记Tabels声明

3。 为什么不使用SALV框架进行输出?

一周热门 更多>