[英]CX_SY_READ_SRC_LINE_TOO_LONG error while calling REUSE_ALV_FIELDCATALOG_MERGE
I want to using 'reuse_alv_fieldcatalog_merge'
fill the table and press the screen.我想使用'reuse_alv_fieldcatalog_merge'
填充表格并按下屏幕。 But it gives such an error:但它给出了这样的错误:
"The ABAP program lines are wider than the internal table." “ABAP 程序行比内部表更宽。”
I checked the settings and Downwards-Comp.我检查了设置和 Downwards-Comp。 There was no sign in the line lentgh (72) section. line lentgh (72) 部分没有任何迹象。 So the problem is not caused by this.所以问题不是由这个引起的。 I leave my code down.我留下我的代码。 I would be glad if you could help.如果您能提供帮助,我会很高兴。
TYPE-POOLS slis .
TABLES : vbrk, vbrp.
DATA : BEGIN OF gt_table OCCURS 0,
vbeln LIKE vbrk-vbeln,
waerk LIKE vbrk-waerk,
kunag LIKE vbrk-kunag,
fkart LIKE vbrk-fkart,
fktyp LIKE vbrk-fktyp,
vbtyp LIKE vbrk-vbtyp,
vkorg LIKE vbrk-vkorg,
vtweg LIKE vbrk-vtweg,
fkdat LIKE vbrk-fkdat,
posnr LIKE vbrp-posnr,
vrkme LIKE vbrp-vrkme,
matnr LIKE vbrp-matnr,
werks LIKE vbrp-werks,
fkimg LIKE vbrp-fkimg,
ntgew LIKE vbrp-ntgew,
brgew LIKE vbrp-brgew,
gewei LIKE vbrp-gewei,
brtwr LIKE vbrp-brtwr,
name1 LIKE kna1-name1,
END OF gt_table.
SELECT-OPTIONS : so_vbeln FOR vbrk-vbeln,
so_fkart FOR vbrk-fkart,
so_fktyp FOR vbrk-fktyp,
so_vbtyp FOR vbrk-vbtyp,
so_vkorg FOR vbrk-vkorg,
so_vtweg FOR vbrk-vtweg,
so_fkdat FOR vbrk-fkdat,
so_vrkme FOR vbrp-vrkme,
so_matnr FOR vbrp-matnr,
so_werks FOR vbrp-werks.
DATA : i_fcat TYPE slis_t_fieldcat_alv .
DATA : wa_fcat LIKE LINE OF i_fcat .
START-OF-SELECTION .
PERFORM get_data .
PERFORM create_fcat_merge .
END-OF-SELECTION .
PERFORM disp_alv .
FORM get_data .
SELECT a~vbeln a~waerk a~kunag a~fkart a~fktyp a~vbtyp a~vkorg a~vtweg a~fkdat b~posnr b~vrkme
b~matnr b~werks b~fkimg b~ntgew b~brgew b~gewei b~brtwr c~name1
INTO TABLE gt_table
FROM vbrk AS a INNER JOIN vbrp AS b ON a~vbeln = b~vbeln
INNER JOIN kna1 AS c ON c~kunnr = a~kunag
WHERE a~vbeln IN so_vbeln AND
a~fkart IN so_fkart AND
a~fktyp IN so_fktyp AND
a~vbtyp IN so_vbtyp AND
a~vkorg IN so_vkorg AND
a~vtweg IN so_vtweg AND
a~fkdat IN so_fkdat AND
b~vrkme IN so_vrkme AND
b~matnr IN so_matnr AND
b~werks IN so_werks.
ENDFORM.
FORM disp_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = i_fcat
TABLES
t_outtab = gt_table.
ENDFORM.
FORM create_fcat_merge .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'gt_table'
i_inclname = sy-repid
CHANGING
ct_fieldcat = i_fcat.
ENDFORM.
Your SELECT line is wider than 72 characters:您的 SELECT 行超过 72 个字符:
SELECT a~vbeln a~waerk a~kunag a~fkart a~fktyp a~vbtyp a~vkorg a~vtweg a~fkdat b~posnr b~vrkme
Break it into two lines:把它分成两行:
SELECT a~vbeln a~waerk a~kunag a~fkart a~fktyp a~vbtyp a~vkorg a~vtweg
a~fkdat b~posnr b~vrkme
There is another issue:还有一个问题:
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'gt_table'
The 'gt_table' has to be in capitals (just to prevent the next dump): 'gt_table' 必须大写(只是为了防止下一次转储):
i_internal_tabname = 'GT_TABLE'
PS.: I guess you are just playing around, there are more up to date tools to create an ALV list. PS.:我猜你只是在玩,有更多最新的工具来创建 ALV 列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.