Skip to Content
author's profile photo Former Member
Former Member

internal tables

Hi ,

Iam going to retreive different fields from different table and displaying it in an ALV format.

do we have to declare an internal table for each table and atlast move all the fields to a final table. from the final table we can display the results in ALV.Is this the only we can do or

can we use one internal table alone to select different fields from different table and to display it in ALV.If it is possible could you please explain me how to do it.

Thanks,

Phyrose.

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

4 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Sep 19, 2007 at 10:10 AM

    Hi

    retrieve data from different tables and populate final internal table which contains all data .

    This can be done using inner joins or for all entries.

    Now u can display this internal table ( final) using ALV.

    Sample code for ALV

    REPORT ZALV .

    TABLES : VBAP.

    TYPE-POOLS : SLIS.

    DATA : BEGIN OF ITAB OCCURS 0,

    VBELN LIKE VBAP-VBELN,

    POSNR LIKE VBAP-POSNR,

    ERNAM LIKE VBAP-ERNAM,

    ERDAT LIKE VBAP-ERDAT.

    DATA : END OF ITAB.

    DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

    WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

    DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

    SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.

    START-OF-SELECTION.

    SELECT VBELN

    POSNR

    ERNAM

    ERDAT

    FROM VBAP

    INTO CORRESPONDING FIELDS OF TABLE ITAB

    WHERE VBELN IN S_VBELN.

    PERFORM MODIFY_CAT.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

    • I_INTERFACE_CHECK = ' '

    • I_BYPASSING_BUFFER = ' '

    • I_BUFFER_ACTIVE = ' '

    • I_CALLBACK_PROGRAM = ' '

    • I_CALLBACK_PF_STATUS_SET = ' '

    • I_CALLBACK_USER_COMMAND = ' '

    • I_CALLBACK_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_GRID_SETTINGS =

    IS_LAYOUT = WA_LAYOUT

    IT_FIELDCAT = IT_FIELDCAT

    • IT_EXCLUDING =

    • IT_SPECIAL_GROUPS =

    • IT_SORT =

    • IT_FILTER =

    • IS_SEL_HIDE =

    • I_DEFAULT = 'X'

    • I_SAVE = ' '

    • IS_VARIANT =

    • IT_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

    • IT_ALV_GRAPHICS =

    • IT_HYPERLINK =

    • IT_ADD_FIELDCAT =

    • IT_EXCEPT_QINFO =

    • I_HTML_HEIGHT_TOP =

    • I_HTML_HEIGHT_END =

    • IMPORTING

    • E_EXIT_CAUSED_BY_CALLER =

    • ES_EXIT_CAUSED_BY_USER =

    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.

    *END-OF-SELECTION.

    *LOOP AT ITAB.

    *WRITE : / ITAB-VBELN,

    • ITAB-POSNR,

    • ITAB-ERNAM,

    • ITAB-ERDAT.

    *ENDLOOP.

    &----


    *& Form MODIFY_CAT

    &----


    • text

    ----


    • --> p1 text

    • <-- p2 text

    ----


    FORM MODIFY_CAT .

    WA_FIELDCAT-TABNAME = 'ITAB'..

    WA_FIELDCAT-FIELDNAME = 'VBELN'.

    WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.

    WA_FIELDCAT-COL_POS = 1.

    WA_FIELDCAT-OUTPUTLEN = 10.

    APPEND WA_FIELDCAT TO IT_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'ITAB'..

    WA_FIELDCAT-FIELDNAME = 'POSNR'.

    WA_FIELDCAT-SELTEXT_L = 'ITEM'.

    WA_FIELDCAT-COL_POS = 2.

    WA_FIELDCAT-OUTPUTLEN = 6.

    APPEND WA_FIELDCAT TO IT_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'ITAB'..

    WA_FIELDCAT-FIELDNAME = 'ERNAM'.

    WA_FIELDCAT-SELTEXT_L = 'PERSON NAME'.

    WA_FIELDCAT-COL_POS = 3.

    WA_FIELDCAT-OUTPUTLEN = 12.

    APPEND WA_FIELDCAT TO IT_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-TABNAME = 'ITAB'..

    WA_FIELDCAT-FIELDNAME = 'ERDAT'.

    WA_FIELDCAT-SELTEXT_L = 'DATE'.

    WA_FIELDCAT-COL_POS = 4.

    WA_FIELDCAT-OUTPUTLEN = 8.

    APPEND WA_FIELDCAT TO IT_FIELDCAT.

    CLEAR WA_FIELDCAT.

    WA_LAYOUT-ZEBRA = 'X'.

    *WA_LAYOUT-INFO_FIELDNAME = 'COLOR'.

    ENDFORM. " MODIFY_CAT

    Regards

    vasu

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Sep 19, 2007 at 10:11 AM

    HI

    U can decalre one final internal table

    and use join stt while selecting the data from different tables

    regards

    sandhya

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Sep 19, 2007 at 10:13 AM

    hi camila,

    it depends up on the req and the tables & fields the functional people mantioned uin the FS.

    if all the fields are coming from 2-3 tables and these 3 tables have key fields to get the combination of data from them then no need to go for another int table declaration.

    if it is not like that acoording to the req.

    we have to declare tp fetch the req data from different tables and finally populate them into one final internal table .

    using that final internal table build the field catelog and popuplate it in ALV fms...

    <b>Reward points if useful</b>

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Sep 19, 2007 at 10:18 AM

    Hi,

    You can follow any of the following steps to display the otuput in ALV.

    i) Declare a single internal table(containing fields from different tables), and query a join based on the tables only if it satisfies the following conditions.

    a) Fields are to be selected from not more than three tables and

    b) Ensure that there are common fields present in all the tables to per form a join.

    NOTE: Join on more no of tables will be performance intensive.

    ii) Declare any no of internal tables to select the fields from different tables. Declare a final internal table with all the fields that needs to be displayed in ALV.

    Move the final data into Final internal table and display it in ALV.

    You can follow any of the above steps, depending on the requirement.

    Hope this gives some information about selection from different tables.

    Regards,

    Dilli

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.