2008 Jan 27 3:05 AM
Hello,
I am using the reuse_alv_list_display function module to display data from my internal table. The internal table has following fields:
MATNR LIKE MARA-MATNR,
ZZBISMT05 LIKE MARA-ZZBISMT05,
MAKTX LIKE MAKT-MAKTX,
SPART LIKE MARA-SPART,
MMSTA LIKE MARC-MMSTA,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
AENNR LIKE AENR-AENNR,
AEGRU LIKE AENR-AEGRU,
I build the field catalog and pass that to FM as well. The display shows all the column heading but it doesn't show all the data. For some reason it doesn't show data for fields MAKTX, MMSTA, AENNR and AEGRU. I don't know why. Any ideas?
2008 Jan 27 3:29 AM
Hi Rutul
before executing put a breakpoint at the REuse_alv_list_display FM and check if the data is there in the internal table ur are passing to this FM. May be there is not data..
Or else let see ur code.. and we can fix... whats wrong..
Regards
JJ
2008 Jan 27 3:29 AM
Hi Rutul
before executing put a breakpoint at the REuse_alv_list_display FM and check if the data is there in the internal table ur are passing to this FM. May be there is not data..
Or else let see ur code.. and we can fix... whats wrong..
Regards
JJ
2008 Jan 27 3:49 AM
Hi,
The data is there. The weird thing is that if i change to GRID_DISPLAY the data shows up but not in LIST_DISPLAY. The reason I am using LIST_DISPLAY is because I have to display two tables.
Here's my internal table:
TYPES: BEGIN OF WA_MAT_OUT,
MATNR LIKE MARA-MATNR,
ZZBISMT05 LIKE MARA-ZZBISMT05,
MAKTX LIKE MAKT-MAKTX,
SPART LIKE MARA-SPART,
MMSTA LIKE MARC-MMSTA,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
AENNR LIKE AENR-AENNR,
AEGRU LIKE AENR-AEGRU,
END OF WA_MAT_OUT,
BEGIN OF WA_BOM_OUT,
STLNR LIKE STKO-STLNR,
STLTY LIKE STKO-STLTY,
ANDAT LIKE STKO-ANDAT,
ANNAM LIKE STKO-ANNAM,
AENNR LIKE STKO-AENNR,
AEGRU LIKE AENR-AEGRU,
END OF WA_BOM_OUT.
DATA: WS_MAT_OUT TYPE WA_MAT_OUT,
MAT_OUT TYPE TABLE OF WA_MAT_OUT,
WS_BOM_OUT TYPE WA_BOM_OUT,
BOM_OUT TYPE TABLE OF WA_BOM_OUT.
Here's how I get the data:
SELECT *
INTO CORRESPONDING FIELDS OF TABLE TMARA
FROM MARA
JOIN MAKT
ON ( MARAMATNR = MAKTMATNR )
WHERE MARA~ERSDA IN S_ERSDA
AND MAKT~SPRAS = 'E'.
IF NOT TMARA[] IS INITIAL.
SELECT *
INTO TABLE TMARC
FROM MARC
FOR ALL ENTRIES IN TMARA
WHERE MATNR = TMARA-MATNR
AND WERKS = S_WERKS.
ENDIF.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE TAEOI
FROM AEOI
JOIN AENR
ON ( AENRAENNR = AEOIAENNR )
WHERE AENR~ANDAT IN S_ERSDA
AND ( AEOI~AETYP = '02' OR
AEOI~AETYP = '41' )
AND AENR~AENST = '02'.
SELECT *
INTO TABLE TSTKO
FROM STKO
WHERE ANDAT IN S_ERSDA
AND STLTY = 'M'.
and Here's how I process the data and build up MAT_OUT and BOM_OUT tables:
DATA: L_OBJKT LIKE AEOI-OBJKT.
LOOP AT TMARA.
CLEAR: WS_MAT_OUT, TAEOI.
MOVE-CORRESPONDING TMARA TO WS_MAT_OUT.
READ TABLE TAEOI WITH KEY AETYP = '41'
OBJKT = TMARA-MATNR.
IF SY-SUBRC = 0.
WS_MAT_OUT-AENNR = TAEOI-AENNR.
WS_MAT_OUT-AEGRU = TAEOI-AEGRU.
ENDIF.
READ TABLE TMARC WITH KEY MATNR = TMARA-MATNR
WERKS = S_WERKS.
IF SY-SUBRC = 0.
WS_MAT_OUT-MMSTA = MARC-MMSTA.
ENDIF.
APPEND WS_MAT_OUT TO MAT_OUT.
ENDLOOP.
LOOP AT TSTKO.
CLEAR: WS_BOM_OUT, TAEOI,L_OBJKT.
MOVE-CORRESPONDING TSTKO TO WS_BOM_OUT.
CONCATENATE 'M'
TSTKO-STLNR
INTO L_OBJKT.
READ TABLE TAEOI WITH KEY AETYP = '02'
OBJKT = L_OBJKT.
IF SY-SUBRC = 0.
WS_BOM_OUT-AENNR = TAEOI-AENNR.
WS_BOM_OUT-AEGRU = TAEOI-AEGRU.
ENDIF.
APPEND WS_BOM_OUT TO BOM_OUT.
ENDLOOP.
Then create my field catalog:
PERFORM ADD_FIELD USING 'MARA'
'MATNR'.
PERFORM ADD_FIELD USING 'MARA'
'ZZBISMT05'.
PERFORM ADD_FIELD USING 'MAKT'
'MAKTX'.
PERFORM ADD_FIELD USING 'MARA'
'SPART'.
PERFORM ADD_FIELD USING 'MARC'
'MMSTA'.
PERFORM ADD_FIELD USING 'MARA'
'ERSDA'.
PERFORM ADD_FIELD USING 'MARA'
'ERNAM'.
PERFORM ADD_FIELD USING 'AENR'
'AENNR'.
PERFORM ADD_FIELD USING 'AENR'
'AEGRU'.
FORM ADD_FIELD USING TABNAME
FIELDNAME.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR: LS_FIELDCAT.
LS_FIELDCAT-TABNAME = TABNAME.
LS_FIELDCAT-FIELDNAME = FIELDNAME.
LS_FIELDCAT-REF_FIELDNAME = FIELDNAME.
LS_FIELDCAT-REF_TABNAME = TABNAME.
LS_FIELDCAT-DDICTXT = 'L'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
ENDFORM.
Then I call the ALV_LIST_DISPLAY:
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'MAT_OUT'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = GS_VARIANT
IT_EVENTS = GT_EVENTS[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = MAT_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.
2008 Jan 27 4:09 AM
hi Rutul
Looks like this is causing the problem..
I_STRUCTURE_NAME = 'MAT_OUT'
IS_LAYOUT = GS_LAYOUT
*IT_FIELDCAT = IT_FIELDCAT[ ]* "<<<<< add the [ ]
TYPES: BEGIN OF WA_MAT_OUT,
MATNR LIKE MARA-MATNR, "<<<<<<<<<1
ZZBISMT05 LIKE MARA-ZZBISMT05, "<<<<<<<<<2
MAKTX LIKE MAKT-MAKTX, "<<<<<<<<<3
SPART LIKE MARA-SPART, "<<<<<<<<<4
MMSTA LIKE MARC-MMSTA, "<<<<<<<<5<
ERSDA LIKE MARA-ERSDA, "<<<<<<<<6<
ERNAM LIKE MARA-ERNAM, "<<<<<<<7<<
AENNR LIKE AENR-AENNR, "<<<<<<<<<8
AEGRU LIKE AENR-AEGRU, "<<<<<<<<<9
END OF WA_MAT_OUT,
BEGIN OF WA_BOM_OUT,
STLNR LIKE STKO-STLNR, "<<<<<<<<<10
STLTY LIKE STKO-STLTY, "<<<<<<<<<11
ANDAT LIKE STKO-ANDAT, "<<<<<<<<<12
ANNAM LIKE STKO-ANNAM, "<<<<<<<<<13
AENNR LIKE STKO-AENNR, "<<<<<<<<<14
AEGRU LIKE AENR-AEGRU, "<<<<<<<<<15
END OF WA_BOM_OUT.
DATA: WS_MAT_OUT TYPE WA_MAT_OUT,
MAT_OUT TYPE TABLE OF WA_MAT_OUT,
WS_BOM_OUT TYPE WA_BOM_OUT,
BOM_OUT TYPE TABLE OF WA_BOM_OUT.
You dint create the field catalog for the other fields...
you have 15 fields in ur output tables and you dint call the perform to build your Filed catalog for the rest of the fields..
Edited by: Jackandjay on Jan 26, 2008 11:19 PM
2008 Jan 27 4:14 AM