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 PROG

Former Member
0 Likes
1,477

Hi!,

This is my ALV Prog. Which shows error. First screen is displayed properly but second screen is containing error. Could you all tell me that where is the fault.

When executing second screen it shows that field symbol is not defined.

Please correct my error.

Thanks & regards.....

&----


*& Report ZTEST_ALVABHAY

*&

&----


*&

*&

&----


REPORT ZTEST_ALVABHAY.

TYPE-POOLS: SLIS.

TYPES: BEGIN OF I_MARA,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

END OF I_MARA.

DATA: I_MARA TYPE STANDARD TABLE OF I_MARA INITIAL SIZE 0,

WA_MARA TYPE I_MARA.

TYPES: BEGIN OF I_MARC,

WERKS LIKE MARC-WERKS,

PSTAT LIKE MARC-PSTAT,

LVORM LIKE MARC-LVORM,

END OF I_MARC.

DATA: I_MARC TYPE STANDARD TABLE OF I_MARC INITIAL SIZE 0,

WA_MARC TYPE I_MARC .

DATA: V_REPID LIKE SY-REPID .

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

DATA: I_TITLE_MARA TYPE LVC_TITLE VALUE 'ABHAY ALV FIRST SCREEN LIST DISPLAYED'.

DATA: I_TITLE_MARC TYPE LVC_TITLE VALUE 'ABHAY ALV SECOND SCREEN ALV LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'I_MARA'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARA'.

WA_FIELDCAT-FIELDNAME = 'ERSDA'.

WA_FIELDCAT-SELTEXT_M = 'CREATE ON.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARA'.

WA_FIELDCAT-FIELDNAME = 'ERNAM'.

WA_FIELDCAT-SELTEXT_M = 'NAME OF PERSON'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARA'.

WA_FIELDCAT-FIELDNAME = 'MTART'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT MATNR ERSDA ERNAM MTART FROM MARA INTO TABLE I_MARA.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'THIS IS MY ALV PROG'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_MARA

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = I_MARA

  • 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. "display_alv_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE I_MARA INTO WA_MARA INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_MARC.

PERFORM EVENT_CALL_MARC.

PERFORM POPULATE_EVENT_MARC.

PERFORM DATA_RETRIEVAL_MARC.

PERFORM BUILD_LISTHEADER_MARC USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_MARC.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_MARC

&----


  • text

----


FORM BUILD_FIELDCATLOG_MARC.

WA_FIELDCAT-TABNAME = 'I_MARC'.

WA_FIELDCAT-FIELDNAME = 'WERKS'.

WA_FIELDCAT-SELTEXT_M = 'PLANT.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARC'.

WA_FIELDCAT-FIELDNAME = 'PSTAT'.

WA_FIELDCAT-SELTEXT_M = 'MAINTENACE STATUS'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARC'.

WA_FIELDCAT-FIELDNAME = 'LVORM'.

WA_FIELDCAT-SELTEXT_M = 'FLAG MATERIAL.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_MARC

&----


*& Form event_call_MARC

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_MARC.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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. "event_call_MARC

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_MARC.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table MARA

FORM DATA_RETRIEVAL_MARC.

SELECT WERKS PSTAT LVORM FROM MARC INTO TABLE I_MARC.

ENDFORM. "DATA_RETRIEVAL_MARC

&----


*& Form BUILD_LISTHEADER_MARC

&----


  • text

----


  • -->I_LISTHEADER text

----


FORM BUILD_LISTHEADER_MARC USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM. "BUILD_LISTHEADER_MARC

&----


*& Form DISPLAY_ALV_MARC

&----


  • text

----


FORM DISPLAY_ALV_MARC.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = I_TITLE_MARC

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = I_MARC

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. "DISPLAY_ALV_MARC

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,446

Hi,

Is the code working as per the requirement .

Regards

Arun

12 REPLIES 12
Read only

Former Member
0 Likes
1,446

Hi,

What is the error you are getting??

Thanks,

naren

Read only

0 Likes
1,446

it shows taht field symbol is not defined

Read only

jayanthi_jayaraman
Active Contributor
0 Likes
1,446

Hi,

Problem may be because you are using i_fieldcat for building two fieldcat.Use i_fieldcat1 for first and i_fieldcat2 for second.

Hope this will solve the problem.If not,get back.

Message was edited by:

Jayanthi Jayaraman

Read only

Former Member
0 Likes
1,446

Hi ,

The problem is with the subroutine 'BUILD_FIELDCATLOG_MARC.' , what you are doing is you keep on appending to the same field catalog , so if you observe for the first time the program works fine , but when you come back and try to go to level 2 again the program dumps , so i would suggest is use a different field catalog table for displaying second level detail , and in the subroutine BUILD_FIELDCATLOG_MARC. , please refresh this field catalog before you start entering value into it.

If you want i can add the modifed code ,

Please try it and get back in case of any queries.

Regards

Arun

Read only

0 Likes
1,446

could u modify the code

Read only

0 Likes
1,446

Hi ,

Here is the modifed code

TYPE-POOLS: SLIS.

TYPES: BEGIN OF I_MARA,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
MTART LIKE MARA-MTART,
END OF I_MARA.

DATA: I_MARA TYPE STANDARD TABLE OF I_MARA INITIAL SIZE 0,
WA_MARA TYPE I_MARA.


TYPES: BEGIN OF I_MARC,
WERKS LIKE MARC-WERKS,
PSTAT LIKE MARC-PSTAT,
LVORM LIKE MARC-LVORM,
END OF I_MARC.

DATA: I_MARC TYPE STANDARD TABLE OF I_MARC INITIAL SIZE 0,
WA_MARC TYPE I_MARC .

DATA: V_REPID LIKE SY-REPID .

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      i_fielcat1 type SLIS_T_FIELDCAT_ALV,  " new addition 
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.


DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.

DATA: I_TITLE_MARA TYPE LVC_TITLE VALUE 'ABHAY ALV FIRST SCREEN LIST
DISPLAYED'.
DATA: I_TITLE_MARC TYPE LVC_TITLE VALUE 'ABHAY ALV SECOND SCREEN ALV
LIST DISPLAYED'.

INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.

START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.

*&--------------------------------------------------------------------*
*& Form BUILD_FIELDCATLOG
*&--------------------------------------------------------------------*
* Fieldcatalog has all the field details from ekko
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'I_MARA'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARA'.
WA_FIELDCAT-FIELDNAME = 'ERSDA'.
WA_FIELDCAT-SELTEXT_M = 'CREATE ON.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARA'.
WA_FIELDCAT-FIELDNAME = 'ERNAM'.
WA_FIELDCAT-SELTEXT_M = 'NAME OF PERSON'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARA'.
WA_FIELDCAT-FIELDNAME = 'MTART'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

*&--------------------------------------------------------------------*
*& Form EVENT_CALL
*&--------------------------------------------------------------------*
* we get all events - TOP OF PAGE or USER COMMAND in table v_events
*---------------------------------------------------------------------*
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
* EXCEPTIONS
* LIST_TYPE_WRONG = 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. "EVENT_CALL

*&--------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&--------------------------------------------------------------------*
* Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT


*&--------------------------------------------------------------------*
*& Form data_retrieval
*&--------------------------------------------------------------------*
* retreiving values from the database table ekko
*---------------------------------------------------------------------*
FORM DATA_RETRIEVAL.

SELECT MATNR ERSDA ERNAM MTART FROM MARA INTO TABLE I_MARA.

ENDFORM. "data_retrieval
*&--------------------------------------------------------------------*
*& Form bUild_listheader
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->I_LISTHEADEtext
*---------------------------------------------------------------------*
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'THIS IS MY ALV PROG'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader

*&--------------------------------------------------------------------*
*& Form display_alv_report
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_MARA
* I_GRID_SETTINGS =
* IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* i_default = 'ZLAY1'
I_SAVE = 'A'
* is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = I_MARA
* 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. "display_alv_report




*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
* i_logo =
* I_END_OF_LIST_GRID =
.

ENDFORM. "TOP_OF_PAGE

*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->, text
* -->RS_SLEFIELDtext
*---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE I_MARA INTO WA_MARA INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_MARC.
PERFORM EVENT_CALL_MARC.
PERFORM POPULATE_EVENT_MARC.
PERFORM DATA_RETRIEVAL_MARC.
PERFORM BUILD_LISTHEADER_MARC USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_MARC.
ENDCASE.
ENDFORM. "user_command
*&--------------------------------------------------------------------*
*& Form BUILD_FIELDCATLOG_MARC
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATLOG_MARC.
refresh i_fielcat1. " new statement 
WA_FIELDCAT-TABNAME = 'I_MARC'.
WA_FIELDCAT-FIELDNAME = 'WERKS'.
WA_FIELDCAT-SELTEXT_M = 'PLANT.'.
APPEND WA_FIELDCAT TO i_fielcat1.   " statement modifed
CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARC'.
WA_FIELDCAT-FIELDNAME = 'PSTAT'.
WA_FIELDCAT-SELTEXT_M = 'MAINTENACE STATUS'.
APPEND WA_FIELDCAT TO i_fielcat1.  " statement modifed
CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARC'.
WA_FIELDCAT-FIELDNAME = 'LVORM'.
WA_FIELDCAT-SELTEXT_M = 'FLAG MATERIAL.'.
APPEND WA_FIELDCAT TO i_fielcat1.  " statement modifed
CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_MARC

*&--------------------------------------------------------------------*
*& Form event_call_MARC
*&--------------------------------------------------------------------*
* we get all events - TOP OF PAGE or USER COMMAND in table v_events
*---------------------------------------------------------------------*
FORM EVENT_CALL_MARC.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
* EXCEPTIONS
* LIST_TYPE_WRONG = 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. "event_call_MARC


*&--------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&--------------------------------------------------------------------*
* Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM POPULATE_EVENT_MARC.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.

ENDFORM. "POPULATE_EVENT

*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
* i_logo =
* I_END_OF_LIST_GRID =
.

ENDFORM. "TOP_OF_PAGE

*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->, text
* -->RS_SLEFIELDtext
*---------------------------------------------------------------------*

*retreiving values from the database table MARA

FORM DATA_RETRIEVAL_MARC.

SELECT WERKS PSTAT LVORM FROM MARC INTO TABLE I_MARC.

ENDFORM. "DATA_RETRIEVAL_MARC

*&---------------------------------------------------------------------*
*& Form BUILD_LISTHEADER_MARC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->I_LISTHEADER text
*----------------------------------------------------------------------*
FORM BUILD_LISTHEADER_MARC USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM. "BUILD_LISTHEADER_MARC

*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_MARC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_MARC.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_MARC
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = i_fielcat1[]  " statement modifed
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT =
I_SAVE = 'A'
* IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = I_MARC
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. "DISPLAY_ALV_MARC

the statements in red are the modification i have made.

Please test it and if any further issues are there please revert back.

Regards

Arun

  • Reward point for helpful replies

Read only

former_member508729
Active Participant
0 Likes
1,446

Hi Sam,

I tried to run your program and i am not getting any error. I got second alv containing some columns left blank and some filled with data.

just check it once again.

if error percists then let me know.

regards

Ashutosh

reward points if helpful

Read only

jayanthi_jayaraman
Active Contributor
0 Likes
1,446

Hi,

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

<b>I_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.</b>

FORM BUILD_FIELDCATLOG_MARC.

<b>WA_FIELDCAT1-TABNAME = 'I_MARC'.

WA_FIELDCAT1-FIELDNAME = 'WERKS'.

WA_FIELDCAT1-SELTEXT_M = 'PLANT.'.

APPEND WA_FIELDCAT1 TO I_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-TABNAME = 'I_MARC'.

WA_FIELDCAT1-FIELDNAME = 'PSTAT'.

WA_FIELDCAT1-SELTEXT_M = 'MAINTENACE STATUS'.

APPEND WA_FIELDCAT1 TO I_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-TABNAME = 'I_MARC'.

WA_FIELDCAT1-FIELDNAME = 'LVORM'.

WA_FIELDCAT1-SELTEXT_M = 'FLAG MATERIAL.'.

APPEND WA_FIELDCAT1 TO I_FIELDCAT1.

CLEAR WA_FIELDCAT1.</b>ENDFORM. "BUILD_FIELDCATLOG_MARC

FORM DISPLAY_ALV_MARC.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = I_TITLE_MARC

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = <b>I_FIELDCAT1[]</b>

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = I_MARC

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. "DISPLAY_ALV_MARC

Message was edited by:

Jayanthi Jayaraman

Read only

Former Member
0 Likes
1,446

Hi,

Add REFRESH: I_FIELDCAT. in the subroutine BUILD_FIELDCATLOG_MARC.

Changes are marked in bold..

FORM BUILD_FIELDCATLOG_MARC.

<b>REFRESH: I_FIELDCAT.</b>

WA_FIELDCAT-TABNAME = 'I_MARC'.

WA_FIELDCAT-FIELDNAME = 'WERKS'.

WA_FIELDCAT-SELTEXT_M = 'PLANT.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARC'.

WA_FIELDCAT-FIELDNAME = 'PSTAT'.

WA_FIELDCAT-SELTEXT_M = 'MAINTENACE STATUS'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_MARC'.

WA_FIELDCAT-FIELDNAME = 'LVORM'.

WA_FIELDCAT-SELTEXT_M = 'FLAG MATERIAL.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_MARC

THanks,

Naren

Read only

Former Member
0 Likes
1,447

Hi,

Is the code working as per the requirement .

Regards

Arun

Read only

0 Likes
1,446

yes arun its working properly.

Read only

0 Likes
1,446

Hi,

If the probelm is solved,kindly close the thread by choosing solved on my own or by assigning blue star against the reply which helped to solve the problem.