‎2008 Nov 24 5:12 AM
Moderator message: Please use a meaningful informative subject in future
Hi,
I m facing a problem in report (Store Location wise Stock) that i m picking record from a single field, into multiple columns...
i mean i have a field MARD-LABST : Valuated Unrestricted-Use Stock...and i m using this field into multiple columns. Data is coming but shown in same column not multiple in columns..
i m pasting my code here, please check it...
****************
tables : MARD, MAKT.
TYPE-POOLS : SLIS.
DATA : BEGIN OF ITAB OCCURS 0,
MATNR LIKE MARD-MATNR,
WERKS LIKE MARD-WERKS,
MAKTX LIKE MAKT-MAKTX,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
INSME LIKE MARD-INSME,
LABST1 LIKE MARD-LABST,
LABST2 LIKE MARD-LABST,
LABST3 LIKE MARD-LABST,
LABST4 LIKE MARD-LABST,
LABST5 LIKE MARD-LABST,
LABST6 LIKE MARD-LABST,
LABST7 LIKE MARD-LABST,
TOTAL LIKE MARD-LABST,
END OF ITAB.
************************************************************************
DATA : W_CONTAINER TYPE SCRFNAME VALUE 'CL_GRID',
W_CPROG TYPE LVC_S_LAYO,
G_REPID LIKE SY-REPID,
W_SAVE TYPE C,
W_EXIT TYPE C,
CL_GRID TYPE REF TO CL_GUI_ALV_GRID,
CL_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
IT_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV,
WA_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE ,
LAYOUT TYPE SLIS_LAYOUT_ALV,
COL_POS LIKE SY-CUCOL ,
ALVFC TYPE SLIS_T_FIELDCAT_ALV.
************************************************************************
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : MATNR FOR MARD-MATNR.
SELECT-OPTIONS : WERKS FOR MARD-WERKS.
SELECT-OPTIONS : LGORT FOR MARD-LGORT.
SELECTION-SCREEN : END OF BLOCK B1.
************************************************************************
PERFORM FILL_CATALOG1 USING:
'MATNR' 'ITAB' 'MATERIAL NUMBER' ,
'WERKS' 'ITAB' 'PLANT' ,
'LGORT' 'ITAB' 'LOCATION',
'MAKTX' 'ITAB' 'MATERIAL DESCRIPTION',
'LABST' 'ITAB' 'RECP',
'INSME' 'ITAB' 'Quality Insp.',
'LABST1' 'ITAB' 'MAIN',
'LABST2' 'ITAB' 'COMP' ,
'LABST3' 'ITAB' 'EBSS',
'LABST4' 'ITAB' 'EDSS',
'LABST5' 'ITAB' 'ELEC',
'LABST6' 'ITAB' 'GDNS',
'LABST7' 'ITAB' 'SFNS',
'TOTAL' 'ITAB' 'TOTAL STOCK'.
*********************************************************************************************
SELECT DISTINCT A~MATNR A~WERKS A~LGORT A~LABST A~INSME
B~MAKTX
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM MARD AS A
INNER JOIN MAKT AS B ON A~MATNR = B~MATNR
WHERE A~MATNR IN MATNR
AND A~WERKS IN WERKS
* AND A~LGORT EQ 'RECP'.
AND A~LGORT IN LGORT.
IF SY-SUBRC <> 0.
MESSAGE 'DATA NOT FOUND.' TYPE 'I'(001).
SORT ITAB BY MATNR.
* MODIFY ITAB INDEX SY-TABIX TRANSPORTING LABST.
**********************************************************************************
ELSE.
SELECT LABST FROM MARD INTO ITAB-LABST1 WHERE MATNR IN MATNR AND WERKS IN WERKS AND LGORT EQ 'MAIN'.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING LABST1.
ENDSELECT.
SELECT LABST FROM MARD INTO ITAB-LABST2 WHERE MATNR IN MATNR AND WERKS IN WERKS AND LGORT EQ 'COMP'.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING LABST2.
ENDSELECT.
SELECT LABST FROM MARD INTO ITAB-LABST3 WHERE MATNR IN MATNR AND WERKS IN WERKS AND LGORT EQ 'EBSS'.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING LABST3.
ENDSELECT.
SELECT LABST FROM MARD INTO ITAB-LABST4 WHERE MATNR IN MATNR AND WERKS IN WERKS AND LGORT EQ 'EDSS'.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING LABST4.
ENDSELECT.
SELECT LABST FROM MARD INTO ITAB-LABST5 WHERE MATNR IN MATNR AND WERKS IN WERKS AND LGORT EQ 'ELEC'.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING LABST5.
ENDSELECT.
SELECT LABST FROM MARD INTO ITAB-LABST6 WHERE MATNR IN MATNR AND WERKS IN WERKS AND LGORT EQ 'GDNS'.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING LABST6.
ENDSELECT.
SELECT LABST FROM MARD INTO ITAB-LABST7 WHERE MATNR IN MATNR AND WERKS IN WERKS AND LGORT EQ 'SFNS'.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING LABST7.
ENDSELECT.
LOOP AT ITAB.
ITAB-TOTAL = ITAB-LABST + ITAB-LABST1 + ITAB-LABST2 + ITAB-LABST3 + ITAB-LABST4 + ITAB-LABST5 + ITAB-LABST6 + ITAB-LABST7.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING TOTAL.
ENDLOOP.
ENDIF.
************************************************************************
LAYOUT-ZEBRA = 'X' .
LAYOUT-COLWIDTH_OPTIMIZE(1) = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZMM25'
i_callback_user_command = g_user_command
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FLD_CATALOG
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = ITAB
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.
*&---------------------------------------------------------------------*
*& Form FILL_CATALOG1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FIELDNAME text
* -->P_REF_TABLE text
* -->P_SCRTEXT text
*----------------------------------------------------------------------*
FORM FILL_CATALOG1 USING P_FIELDNAME TYPE ANY
P_REF_TABLE TYPE ANY
P_SCRTEXT TYPE ANY.
CLEAR : WA_FLD_CATALOG.
WA_FLD_CATALOG-FIELDNAME = P_FIELDNAME.
WA_FLD_CATALOG-TABNAME = P_REF_TABLE.
WA_FLD_CATALOG-SELTEXT_S = P_SCRTEXT.
WA_FLD_CATALOG-SELTEXT_M = P_SCRTEXT.
WA_FLD_CATALOG-SELTEXT_L = P_SCRTEXT.
WA_FLD_CATALOG-OUTPUTLEN = 15.
APPEND WA_FLD_CATALOG TO IT_FLD_CATALOG.
ENDFORM. " fill_catalog1****************
Plz help...
Edited by: Matt on Nov 24, 2008 8:02 AM Please use tags around your ABAP!
‎2008 Nov 24 5:29 AM
Hi,
You should not select data from a single table these many times.
Use field symbols and change your internal table data how ever u want.
try as follows,
loop at itab into <fs_itab>.
<fs_itab>-LABST1 = <fs_itab>-LABST.
<fs_itab>-LABST2 = <fs_itab>-LABST.
<fs_itab>-LABST3 = <fs_itab>-LABST.
<fs_itab>-LABST4 = <fs_itab>-LABST.
.
.
.
.
Endloop.
Regards,
Kusuma.
Edited by: kusuma kurapati on Nov 24, 2008 6:29 AM
‎2008 Nov 24 5:20 AM
Hi,
Give a meaningful subject line .
Read the [Rules of Engagement|https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/rulesofEngagement] before posting more.
Anyhow, can you see the fields in the ALV layout, try adding it manually if it does.
Regards
Karthik D
‎2008 Nov 24 5:23 AM
Hi Prince,
I am not sure about ur query.According to my understanding.Please find the solution.
I think you want one table field in more than one column.Did u Declare the field catlog more than once.
did u pass the same value to ur final internal table more than once.
Regards
Rasheed
‎2008 Nov 24 5:25 AM
Hi,
If u getting data in Debugg mode then Try like this.
CLEAR : WA_FLD_CATALOG.
WA_FLD_CATALOG-FIELDNAME = 'LABST'
WA_FLD_CATALOG-TABNAME = 'ITAB'.
WA_FLD_CATALOG-SELTEXT_S = 'RECP',.
WA_FLD_CATALOG-SELTEXT_M = 'RECP',.
WA_FLD_CATALOG-SELTEXT_L = 'RECP',.
WA_FLD_CATALOG-OUTPUTLEN = 15.
WA_FLD_CATALOG-COL_POS = 2
APPEND WA_FLD_CATALOG TO IT_FLD_CATALOG.
CLEAR : WA_FLD_CATALOG.
WA_FLD_CATALOG-FIELDNAME = 'LABST1'
WA_FLD_CATALOG-TABNAME = 'ITAB'.
WA_FLD_CATALOG-SELTEXT_S = 'MAIN',.
WA_FLD_CATALOG-SELTEXT_M = 'MAIN',.
WA_FLD_CATALOG-SELTEXT_L = 'MAIN',.
WA_FLD_CATALOG-OUTPUTLEN = 15.
WA_FLD_CATALOG-COL_POS = 3
APPEND WA_FLD_CATALOG TO IT_FLD_CATALOG.
‎2008 Nov 24 5:29 AM
Hi,
You should not select data from a single table these many times.
Use field symbols and change your internal table data how ever u want.
try as follows,
loop at itab into <fs_itab>.
<fs_itab>-LABST1 = <fs_itab>-LABST.
<fs_itab>-LABST2 = <fs_itab>-LABST.
<fs_itab>-LABST3 = <fs_itab>-LABST.
<fs_itab>-LABST4 = <fs_itab>-LABST.
.
.
.
.
Endloop.
Regards,
Kusuma.
Edited by: kusuma kurapati on Nov 24, 2008 6:29 AM
‎2008 Nov 24 7:04 AM
Please use a meaningful informative subject in future. And use tags around your ABAP