Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV issue: when save list using Local File command will get run time error!

Former Member
0 Likes
697

help!!!!

report list using ALV method when to save this list using Local File.

i will get GETWA_NOT_ASSIGNED run time error information.

how resolve it?

source code :

REPORT ZIFT0103.

TABLES : MARA,MARC,CDHDR,CDPOS,MAKT.

******DEVK909212****************

****利用工厂来区分不同的SERVER的FTP ADDRESS ,user ,PASSWORD

DATA: FTP_WERKS LIKE MARC-WERKS.

********定义一个RANGE用来抓取MARC的信息

RANGES:R_MATNR FOR MARA-MATNR OCCURS 0.

********定义一个INTERNAL TABLE 来抓取MARC 的信息

DATA:BEGIN OF IT_MARC OCCURS 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS,

USERNAME TYPE CDHDR-USERNAME,

UDATE TYPE CDHDR-UDATE,

FLAG_UI TYPE C,

END OF IT_MARC.

*******定义存放北京的数据的变量

DATA : BEGIN OF FTP_BEIJING OCCURS 0 ,

MATNR(25) ,

MATNR1(25) ,

MAKTX(30) ,

END OF FTP_BEIJING .

******定义福清的数据变量

DATA : BEGIN OF FTP_FUQING OCCURS 0 ,

MATNR(25) ,

MATNR1(25) ,

MAKTX(30) ,

END OF FTP_FUQING .

*******DEVK909212*****************

DATA : BEGIN OF FTP_ITEMDOC1 OCCURS 0 ,

MATNR(25) ,

MAKTX(30) ,

END OF FTP_ITEMDOC1 .

DATA : BEGIN OF FTP_ITEMDOC OCCURS 0 ,

MATNR(25) ,

MATNR1(25) ,

MAKTX(30) ,

END OF FTP_ITEMDOC .

DATA: WA_ZMSGTA TYPE ZMSGTA ,

l_ersda like MARA-ERSDA .

***********DEVK909553********************

****用来决定执行FTP还是显示LIST**********

DATA:g_tcode_flag.

***********DEVK909553********************

      • Error message process ******************************

DEFINE EXPLAIN_MSG.

  • break soe_richard.

CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL'

EXPORTING

ID = &1 "SY-MSGID

NUMBER = &2 "SY-MSGNO

  • LANGUAGE = SY-LANGU

TEXTFORMAT = &3

  • LINKPATTERN =

MESSAGE_V1 = &4 "SY-MSGV1

MESSAGE_V2 = &5 "SY-MSGV2

MESSAGE_V3 = &6 "SY-MSGV3

MESSAGE_V4 = &7 "SY-MSGV4

IMPORTING

MESSAGE = &8 "WA_ZMSGTA-MSE1

  • RETURN =

  • TABLES

  • TEXT =

.

END-OF-DEFINITION.

DEFINE ERROR_MSG_UPDATA.

CALL FUNCTION 'ZINSERT_MSG' "IN UPDATE TASK

EXPORTING

XZMSGTA = &1 "WA_ZMSGTA

EXCEPTIONS

UPDATE_ERROR = 1

OTHERS = 2.

END-OF-DEFINITION.

********************************************************

IF SY-TCODE = 'ZIFT103' .

g_tcode_flag = 'L'.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

PERCENTAGE = 0

TEXT = '请耐心等候,系统正在抓数据'.

ENDIF.

l_ersda = sy-datum - 1 . "取前一天产生的物料号码。

DATA:BEGIN OF it_change OCCURS 0,

OBJECTID TYPE CDHDR-OBJECTID,

USERNAME TYPE CDHDR-USERNAME,

UDATE TYPE CDHDR-UDATE,

TABKEY TYPE CDPOS-TABKEY,

END OF it_change.

DATA:BEGIN OF it_cDhdr OCCURS 0,

OBJECTID type CDHDR-OBJECTID,

CHANGENR TYPE CDHDR-CHANGENR,

USERNAME TYPE CDHDR-USERNAME,

UDATE TYPE CDHDR-UDATE,

END OF it_cdhdr.

DATA:search_len TYPE I.

DATA:BEGIN of it_insert OCCURS 0,

MATNR TYPE MARA-MATNR,

WERKS TYPE MARC-WERKS,

END OF it_insert.

DATA:BEGIN OF it_MAKT OCCURS 0,

MATNR TYPE MAKT-MATNR,

MAKTX TYPE MAKT-MAKTX,

END OF it_makt.

DATA IT_MARA TYPE TABLE OF MARA WITH HEADER LINE.

DATA:BEGIN OF IT_OUT OCCURS 0,

MATNR TYPE MARA-MATNR,

WERKS TYPE MARC-WERKS,

MTART TYPE MARA-MTART,

MEINS TYPE MARA-MEINS,

MATKL TYPE MARA-MATKL,

MAKTX TYPE MAKT-MAKTX,

PSTAT TYPE MARA-PSTAT,

BRGEW TYPE MARA-BRGEW,

NTGEW TYPE MARA-NTGEW,

GEWEI TYPE MARA-GEWEI,

FERTH TYPE MARA-FERTH,

KZUMW TYPE MARA-KZUMW,

ERNAM TYPE MARA-ERNAM,

ERSDA TYPE MARA-ERSDA,

END OF IT_OUT.

*-- DECLARE DATA FOR ALV

TYPE-POOLS: slis.

DATA : g_variant LIKE disvariant,

g_save(1) TYPE c,

g_exit(1) TYPE c,

gx_variant LIKE disvariant.

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, "

gt_events TYPE slis_t_event,

gt_list_top_of_page TYPE slis_t_listheader,

gs_print TYPE slis_print_alv,

gs_layout TYPE slis_layout_alv .

******只能抓出系统有做更改的数据***************

******而第一次INSERT MARA的数据抓不出来********

START-OF-SELECTION.

  • SELECT AOBJECTID AUSERNAME AUDATE BTABKEY

  • INTO TABLE it_change

  • FROM ( CDPOS AS B INNER JOIN CDHDR AS A ON

  • AOBJECTCLAS = BOBJECTCLAS AND

  • AOBJECTID = BOBJECTID AND

  • ACHANGENR = BCHANGENR )

  • WHERE A~OBJECTCLAS = 'MATERIAL'

  • AND A~UDATE = l_ersda

  • AND B~TABNAME = 'MARC'

  • AND B~CHNGIND = 'I'.

  • LOOP AT it_change.

  • search_len = STRLEN( it_change-TABKEY ).

  • search_len = search_len - 4.

  • IF search_len > 0.

  • IT_MARC-WERKS = it_change-TABKEY+search_len(4).

  • ENDIF.

  • IT_MARC-MATNR = it_change-objectid+0(18).

  • IT_MARC-USERNAME = it_change-username.

  • IT_MARC-UDATE = It_change-udate.

  • IT_MARC-FLAG_UI = 'U'.

  • APPEND IT_MARC.

  • CLEAR IT_MARC.

  • CLEAR R_MATNR.

  • R_MATNR-SIGN = 'I'.

  • R_MATNR-OPTION = 'EQ'.

  • R_MATNR-LOW = IT_MARC-MATNR.

  • APPEND R_MATNR.

  • ENDLOOP.

****CDPOS is Cluster TABLE 所以没有办法用INNER JOIN******

SELECT OBJECTID CHANGENR USERNAME UDATE

INTO TABLE it_cdhdr

FROM CDHDR

WHERE OBJECTCLAS = 'MATERIAL'

AND UDATE = l_ersda.

  • AND TCODE = 'MM02'.

LOOP AT IT_cdhdr.

SELECT * FROM CDPOS

WHERE OBJECTCLAS = 'MATERIAL'

AND OBJECTID = IT_CDHDR-OBJECTID

AND CHANGENR = IT_CDHDR-CHANGENR

AND TABNAME = 'MARC'

AND CHNGIND = 'I'.

search_len = STRLEN( CDPOS-TABKEY ).

search_len = search_len - 4.

IF search_len > 0.

IT_MARC-WERKS = CDPOS-TABKEY+search_len(4).

ENDIF.

IT_MARC-MATNR = IT_cdhdr-objectid+0(18).

IT_MARC-USERNAME = IT_cdhdr-username.

IT_MARC-UDATE = IT_cdhdr-udate.

IT_MARC-FLAG_UI = 'U'.

APPEND IT_MARC.

  • CLEAR IT_MARC.

CLEAR R_MATNR.

R_MATNR-SIGN = 'I'.

R_MATNR-OPTION = 'EQ'.

R_MATNR-LOW = IT_MARC-MATNR.

APPEND R_MATNR.

CLEAR IT_MARC.

ENDSELECT.

ENDLOOP.

IF g_tcode_flag = 'L'.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

PERCENTAGE = 20

TEXT = '处理好当天CHANGE的数据'.

ENDIF.

*******抓当天做了INSERT的数据*************

*******不需要***********************

  • SELECT BMATNR BWERKS INTO TABLE IT_INSERT

  • FROM MARC AS B JOIN MARA AS A

  • ON AMATNR = BMATNR

  • WHERE A~ERSDA = l_ersda.

*

  • LOOP AT IT_INSERT.

  • IT_MARC-MATNR = IT_INSERT-MATNR.

  • IT_MARC-WERKS = IT_INSERT-WERKS.

  • IT_MARC-FLAG_UI = 'I'.

  • APPEND IT_MARC.

  • CLEAR IT_MARC.

  • CLEAR R_MATNR.

  • R_MATNR-SIGN = 'I'.

  • R_MATNR-OPTION = 'EQ'.

  • R_MATNR-LOW = IT_MARC-MATNR.

  • APPEND R_MATNR.

  • ENDLOOP.

  • IF g_tcode_flag = 'L'.

  • CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

  • EXPORTING

  • PERCENTAGE = 40

  • TEXT = '处理好当天INSERT的数据'.

  • ENDIF.

IF g_tcode_flag = 'L'.

PERFORM get_MAKTX.

PERFORM get_mara.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

PERCENTAGE = 100

TEXT = '处理好数据,并开始显示数据'.

PERFORM do_data.

PERFORM display_alv.

ELSE.

PERFORM get_MAKTX.

PERFORM do_ftp.

ENDIF.

&----


*& Form get_marktx

&----


  • text

----


FORM get_maktx.

SELECT MATNR MAKTX INTO TABLE IT_MAKT FROM MAKT

WHERE MATNR IN R_MATNR AND SPRAS = '1'.

ENDFORM. "get_marktx

&----


*& Form get_mara

&----


  • text

----


FORM get_mara.

SELECT * INTO TABLE it_mara FROM MARA

WHERE MATNR IN R_MATNR.

ENDFORM. "get_mara

&----


*& Form do_data

&----


  • text

----


FORM do_data.

SORT IT_MARC BY MATNR WERKS.

DELETE ADJACENT DUPLICATES FROM IT_MARC COMPARING MATNR WERKS.

LOOP AT IT_MARC.

CLEAR IT_MAKT.

CLEAR IT_MARA.

READ TABLE IT_MAKT WITH KEY MATNR = IT_MARC-MATNR.

READ TABLE IT_MARA WITH KEY MATNR = IT_MARC-MATNR.

MOVE-CORRESPONDING IT_MARA TO IT_OUT.

IT_OUT-MAKTX = IT_MAKT-MAKTX.

IT_OUT-WERKS = IT_MARC-WERKS.

IF IT_MARC-FLAG_UI = 'U'.

IT_OUT-ERNAM = IT_MARC-USERNAME.

ENDIF.

APPEND IT_OUT.

CLEAR IT_OUT.

ENDLOOP.

ENDFORM. "do_data

*SELECT AMATNR BMAKTX INTO CORRESPONDING

*FIELDS OF FTP_ITEMDOC1 FROM MARA AS A JOIN MAKT AS B

*ON AMATNR = BMATNR WHERE A~ERSDA = l_ersda

*AND B~SPRAS = '1' . "代表为中文说明。

  • APPEND FTP_ITEMDOC1.

*

*******DEVK909212****************

*******添加RANGE*****************

  • CLEAR R_MATNR.

  • R_MATNR-SIGN = 'I'.

  • R_MATNR-OPTION = 'EQ'.

  • R_MATNR-LOW = FTP_ITEMDOC1-MATNR.

  • APPEND R_MATNR.

  • CLEAR FTP_ITEMDOC1.

*******DEVK909212****************

*ENDSELECT.

*

*******DEVK909212****************

****get WERKS information from MARC*******

*SELECT MATNR WERKS INTO TABLE IT_MARC

*FROM MARC

*WHERE MATNR IN R_MATNR.

*******DEVK909212****************

******DEVK909212****************

**MARK**************************

*LOOP AT FTP_ITEMDOC1 .

  • MOVE : FTP_ITEMDOC1-MATNR TO FTP_ITEMDOC-MATNR,

  • FTP_ITEMDOC1-MATNR TO FTP_ITEMDOC-MATNR1,

  • FTP_ITEMDOC1-MAKTX TO FTP_ITEMDOC-MAKTX.

  • APPEND FTP_ITEMDOC.

  • CLEAR FTP_ITEMDOC.

*ENDLOOP.

******DEVK909212****************

******DEVK909212***********************************

**根据IT_MARC中信息,往北京和福清的TABLE写数据*****

FORM do_ftp.

LOOP AT IT_MARC.

***福清的

IF IT_MARC-WERKS = '1010' OR IT_MARC-WERKS = '1020'

OR IT_MARC-WERKS = '1023' .

  • READ TABLE FTP_ITEMDOC1 WITH KEY MATNR = IT_MARC-MATNR.

*

  • MOVE : FTP_ITEMDOC1-MATNR TO FTP_FUQING-MATNR,

  • FTP_ITEMDOC1-MATNR TO FTP_FUQING-MATNR1,

  • FTP_ITEMDOC1-MAKTX TO FTP_FUQING-MAKTX.

CLEAR IT_MAKT.

READ TABLE IT_MAKT WITH KEY = IT_MARC-MATNR.

MOVE : IT_MARC-MATNR TO FTP_FUQING-MATNR,

IT_MARC-MATNR TO FTP_FUQING-MATNR1,

IT_MAKT-MAKTX TO FTP_FUQING-MAKTX.

APPEND FTP_FUQING.

CLEAR FTP_FUQING.

ENDIF.

***北京的

IF IT_MARC-WERKS = '1041' OR IT_MARC-WERKS = '1042'.

  • READ TABLE FTP_ITEMDOC1 WITH KEY MATNR = IT_MARC-MATNR.

  • MOVE : FTP_ITEMDOC1-MATNR TO FTP_BEIJING-MATNR,

  • FTP_ITEMDOC1-MATNR TO FTP_BEIJING-MATNR1,

  • FTP_ITEMDOC1-MAKTX TO FTP_BEIJING-MAKTX.

CLEAR IT_MAKT.

READ TABLE IT_MAKT WITH KEY = IT_MARC-MATNR.

MOVE : IT_MARC-MATNR TO FTP_BEIJING-MATNR,

IT_MARC-MATNR TO FTP_BEIJING-MATNR1,

IT_MAKT-MAKTX TO FTP_BEIJING-MAKTX.

APPEND FTP_BEIJING.

CLEAR FTP_BEIJING.

ENDIF.

ENDLOOP.

****清楚重复的数据**********

SORT FTP_FUQING.

DELETE ADJACENT DUPLICATES FROM FTP_FUQING.

SORT FTP_BEIJING.

DELETE ADJACENT DUPLICATES FROM FTP_BEIJING.

***传送数据********

REFRESH FTP_ITEMDOC.

FTP_ITEMDOC[] = FTP_FUQING[].

FTP_WERKS = '1010'.

PERFORM ftp_work.

REFRESH FTP_ITEMDOC.

FTP_ITEMDOC[] = FTP_BEIJING[].

FTP_WERKS = '1041'.

PERFORM ftp_work.

******DEVK909212***********************************

ENDFORM. "do_ftp

&----


*& Form ftp_work

&----


  • 把以前FTP的工作做一个FORM

----


*******DEVK909212**************************

FORM ftp_work.

*******DEVK909212**************************

CHECK FTP_ITEMDOC[] IS NOT INITIAL.

    • FTP function *****************************************************

DATA : HDL TYPE I,

L_SLEN TYPE I ,

ERROR,

KEY TYPE I VALUE 26101957,

DEST TYPE RFCDES-RFCDEST VALUE 'SAPFTPA'.

DATA: FTP_RESULT TYPE TABLE OF TEXT.

DATA: P_FILE TYPE RLGRAP-FILENAME.

DATA: L_USER(16) TYPE C VALUE 'SFIS',

L_PWD(16) TYPE C VALUE 'SFIS',

L_HOST(16) TYPE C VALUE '172.16.31.17'.

*******DEVK909212**************************

*****根据不同的工厂来抓FTP的信息

CALL FUNCTION 'Z_FTP_SFIS'

EXPORTING

BLART = 'S'

WERKS = FTP_WERKS

IMPORTING

HOST = L_HOST

USER1 = L_USER

PASS1 = L_PWD.

*******DEVK909212**************************

CONCATENATE l_ersda '.KP' INTO P_FILE.

SET EXTENDED CHECK OFF.

ERROR = 0.

CHECK HDL IS INITIAL.

  • Connect to server

L_SLEN = STRLEN( L_PWD ).

CALL FUNCTION 'HTTP_SCRAMBLE'

EXPORTING

SOURCE = L_PWD

SOURCELEN = L_SLEN

KEY = KEY

IMPORTING

DESTINATION = L_PWD.

  • CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

  • EXPORTING

  • TEXT = 'Connect to FTP Server'.

CALL FUNCTION 'FTP_CONNECT'

EXPORTING

USER = L_USER

PASSWORD = L_PWD

HOST = L_HOST

RFC_DESTINATION = DEST

IMPORTING

HANDLE = HDL

EXCEPTIONS

NOT_CONNECTED = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

MOVE: 'B' TO WA_ZMSGTA-BLART,

l_ersda TO WA_ZMSGTA-REFNUMBER,

SY-MSGTY TO WA_ZMSGTA-MSGTY,

'MARA' TO WA_ZMSGTA-TBMA_VAL.

EXPLAIN_MSG SY-MSGID SY-MSGNO ' ' SY-MSGV1 SY-MSGV2 SY-MSGV3

SY-MSGV4 WA_ZMSGTA-MSE1.

ERROR_MSG_UPDATA WA_ZMSGTA.

EXIT.

ENDIF.

CALL FUNCTION 'FTP_COMMAND'

EXPORTING

HANDLE = HDL

COMMAND = 'ascii'

TABLES

DATA = FTP_RESULT

EXCEPTIONS

TCPIP_ERROR = 1

COMMAND_ERROR = 2

DATA_ERROR = 3.

IF SY-SUBRC <> 0.

EXPLAIN_MSG SY-MSGID SY-MSGNO ' ' SY-MSGV1 SY-MSGV2 SY-MSGV3

SY-MSGV4 WA_ZMSGTA-MSE1.

MOVE: 'B' TO WA_ZMSGTA-BLART,

l_ersda TO WA_ZMSGTA-REFNUMBER,

SY-MSGTY TO WA_ZMSGTA-MSGTY,

'MARA' TO WA_ZMSGTA-TBMA_VAL.

ERROR_MSG_UPDATA WA_ZMSGTA.

EXIT.

ENDIF.

CALL FUNCTION 'FTP_R3_TO_SERVER'

EXPORTING

HANDLE = HDL

FNAME = P_FILE

CHARACTER_MODE = 'X'

TABLES

TEXT = FTP_ITEMDOC

EXCEPTIONS

TCPIP_ERROR = 1

COMMAND_ERROR = 2

DATA_ERROR = 3

OTHERS = 4.

IF SY-SUBRC <> 0.

EXPLAIN_MSG SY-MSGID SY-MSGNO ' ' SY-MSGV1 SY-MSGV2 SY-MSGV3

SY-MSGV4 WA_ZMSGTA-MSE1.

MOVE: 'B' TO WA_ZMSGTA-BLART,

l_ersda TO WA_ZMSGTA-REFNUMBER,

SY-MSGTY TO WA_ZMSGTA-MSGTY,

'MARA' TO WA_ZMSGTA-TBMA_VAL.

ERROR_MSG_UPDATA WA_ZMSGTA.

EXIT.

ENDIF.

*******DEVK909212**************************

*******CLOSE FTP******************

CHECK NOT HDL IS INITIAL.

CALL FUNCTION 'FTP_DISCONNECT'

EXPORTING

HANDLE = HDL.

CALL FUNCTION 'RFC_CONNECTION_CLOSE'

EXPORTING

DESTINATION = DEST

EXCEPTIONS

OTHERS = 1.

CLEAR HDL.

ENDFORM. "ftp_work

*******DEVK909212**************************

FORM DISPLAY_ALV .

*-- PREPARE ALV DATA

PERFORM EVENTTAB_BUILD USING GT_EVENTS[].

PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].

*-- LAYOUT SETTING

PERFORM PREPARE_ALV_FIELD USING GT_FIELDCAT[].

*-- ALV DISPLAY

PERFORM CALL_REUSE_ALV_GRID_DISPLAY.

ENDFORM. " display_alv

&----


*& Form eventtab_build

&----


  • text

----


  • -->P_GT_EVENTS[] text

----


FORM EVENTTAB_BUILD USING PT_EVENTS TYPE SLIS_T_EVENT.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

*

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = PT_EVENTS.

READ TABLE PT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO LS_EVENT.

IF SY-SUBRC = 0.

LS_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY PT_EVENTS FROM LS_EVENT INDEX SY-TABIX.

ENDIF.

ENDFORM. " eventtab_build

&----


*& Form comment_build

&----


  • text

----


  • -->P_GT_LIST_TOP_OF_PAGE[] text

----


FORM COMMENT_BUILD USING PT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: LS_LINE TYPE SLIS_LISTHEADER,

L_DATE(30),

l_v_BWKEY like T001W-BWKEY, "Valuation area

l_v_BUKRS like T001K-BUKRS. "Firm/Company

  • Listen&#57692;erschrift: Typ H

  • CLEAR LS_LINE.

  • LS_LINE-TYP = 'H'.

    • LS_LINE-KEY: not used for this type

  • select single BWKEY

  • into l_v_BWKEY

  • from t001w

  • where WERKS IN s_WERKS.

*

  • select single BUKRS

  • into l_v_BUKRS

  • from t001k

  • where BWKEY = l_v_BWKEY.

*

  • SELECT SINGLE butxt INTO LS_LINE-INFO

  • FROM t001

  • WHERE bukrs = l_v_BUKRS.

  • APPEND LS_LINE TO PT_TOP_OF_PAGE.

  • Kopfinfo: Typ S

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = '&#25253;&#34920;&#21517;&#31216;&#65306;'.

LS_LINE-INFO = SY-TITLE.

APPEND LS_LINE TO PT_TOP_OF_PAGE.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = '&#25171;&#21360;&#26085;&#26399;&#65306;'.

WRITE SY-DATUM TO LS_LINE-INFO.

  • ls_line-info = sy-datum.

APPEND LS_LINE TO PT_TOP_OF_PAGE.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = '&#25171;&#21360;&#26178;&#38291;&#65306;'.

WRITE SY-UZEIT TO LS_LINE-INFO.

  • ls_line-info = sy-uzeit.

APPEND LS_LINE TO PT_TOP_OF_PAGE.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = '&#20351;&#29992;&#32773;&#65306;'.

LS_LINE-INFO = SY-UNAME.

APPEND LS_LINE TO PT_TOP_OF_PAGE.

ENDFORM. " comment_build

&----


*& Form prepare_alv_field

&----


  • text

----


  • -->P_GT_FIELDCAT[] text

----


FORM PREPARE_ALV_FIELD USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: LS_LINE TYPE SLIS_FIELDCAT_ALV.

*-- DEFINE MARCO

DEFINE APPEND_ALV_FIELD.

CLEAR LS_LINE.

LS_LINE-FIELDNAME = &1.

LS_LINE-TABNAME = &2.

LS_LINE-REPTEXT_DDIC = &3.

LS_LINE-SELTEXT_L = &3.

LS_LINE-SELTEXT_M = &3.

LS_LINE-SELTEXT_S = &3.

LS_LINE-QFIELDNAME = &4.

LS_LINE-QTABNAME = &5.

LS_LINE-NO_OUT = &6.

LS_LINE-NO_ZERO = &7.

LS_LINE-OUTPUTLEN = &8.

APPEND LS_LINE TO P_FIELDCAT.

END-OF-DEFINITION.

APPEND_ALV_FIELD: 'MATNR' 'IT_OUT' '&#26009;&#21495;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'WERKS' 'IT_OUT' '&#24037;&#21378;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'MTART' 'IT_OUT' 'MTyp'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'MEINS' 'IT_OUT' 'BUn'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'MATKL' 'IT_OUT' '&#29289;&#26009;&#32452;\&#20998;&#32676;&#30721;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'MATKX' 'IT_OUT' '&#29289;&#26009;&#25551;&#36848;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'PSTAT' 'IT_OUT' '&#32500;&#25252;&#29366;&#24577;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'BRGEW' 'IT_OUT' '&#27611;&#37325;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'NTGEW' 'IT_OUT' '&#20928;&#37325;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'GEWEI' 'IT_OUT' 'WUn'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'FERTH' 'IT_OUT' '&#23545;&#22806;&#26426;&#31181;&#21517;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'KZUMW' 'IT_OUT' '&#39640;&#20851;&#31246;&#26631;&#35782;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'ERNAM' 'IT_OUT' '&#21019;&#24314;&#32773;'

'' ''

'O' 'X' ''.

APPEND_ALV_FIELD: 'ERSDA' 'IT_OUT' '&#21019;&#24314;&#26085;&#26399;'

'' ''

'O' 'X' ''.

ENDFORM. " prepare_alv_field

&----


*& Form call_reuse_alv_grid_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALL_REUSE_ALV_GRID_DISPLAY .

gs_layout-f2code = 'DISPLAY'.

gs_print-no_print_listinfos = 'X'.

gs_layout-colwidth_optimize = 'X'. "&#21015;&#23485;&#24230;&#33258;&#21160;&#26681;&#25454;&#20869;&#23481;&#20248;&#21270;

  • gs_layout-f2code = '&ETA'. "double check&#24377;&#20986;&#35814;&#32454;&#20449;&#24687;

gs_layout-zebra = 'X'. "&#28165;&#21333;&#26465;&#32441;&#26174;&#31034;

gs_layout-no_vline = ''. "&#26159;&#21542;&#26174;&#31034;&#21015;&#38388;&#38548;&#32447;

gs_layout-box_fieldname = ''. "&#26159;&#21542;&#26174;&#31034;checkbox

gs_layout-confirmation_prompt = ''. "&#25512;&#20986;&#28165;&#21333;&#26159;&#21542;&#25552;&#31034;

gs_layout-detail_titlebar = '&#35814;&#32454;&#20449;&#24687;'."&#35814;&#32454;&#28165;&#21333;&#30340;&#26631;&#39064;

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_BACKGROUND_ID = 'ALV_BACKGROUND'

  • I_CALLBACK_PF_STATUS_SET = 'ALV_PF_STATUS'

  • I_CALLBACK_USER_COMMAND = 'ALV_USER_COMMAND'

  • I_CALLBACK_TOP_OF_PAGE = GT_LIST_TOP_OF_PAGE[]

IT_FIELDCAT = GT_FIELDCAT[]

IT_EVENTS = GT_EVENTS[]

I_STRUCTURE_NAME = 'IT_OUT'

I_SAVE = 'A'

IS_LAYOUT = GS_LAYOUT

IS_PRINT = GS_PRINT

TABLES

T_OUTTAB = IT_OUT

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " call_reuse_alv_grid_display

&----


*& Form PREPARE_ALV_FIELD

&----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.

ENDFORM. "TOP_OF_PAGE

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
653

check your field catalog .

rfeerence field.

3 REPLIES 3
Read only

former_member194669
Active Contributor
0 Likes
653

Hi,

Please check your field catalog and refer field names once again.

Check spelling, or Check strucutre properly.

There are something wrong in your catalog definition

aRs.

Read only

Former Member
0 Likes
654

check your field catalog .

rfeerence field.

Read only

Former Member
0 Likes
653

thank you !

reason:

LS_LINE-SELTEXT_S = &3. the length is 10 char.