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

Report

Former Member
0 Likes
707

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!

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
627

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

5 REPLIES 5
Read only

Former Member
0 Likes
627

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

Read only

Former Member
0 Likes
627

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

Read only

Former Member
0 Likes
627

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.

Read only

Former Member
0 Likes
628

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

Read only

matt
Active Contributor
0 Likes
627

Please use a meaningful informative subject in future. And use tags around your ABAP