Regarding  normal  ALVs

Hi friends,
I have developed a report in alv .it's working .
1) when I tried to add some additional flds it's not working properly
here iam giving my codig.I addeded matkl,arktx. it's giving wrong data of these 2flds.
can any body help me to get this.
2)
when i tried to change from grid list to normal list it's working
after addition of fields it's not work out. plz let me know the solution.
Thanks in advance
REPORT  Z_ALV.
TABLES: vbak,vbap.
select-options:s_vbeln for vbak-vbeln.
TYPE-POOLS: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_final,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
matnr LIKE vbap-matnr,
posnr LIKE vbap-posnr,
matkl LIKE vbap-matkl,
arktx LIKE vbap-arktx,
END OF t_final.
DATA: i_final TYPE STANDARD TABLE OF t_final initial size 0,
        wa_final TYPE t_final.
*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv,
      wa_fieldcatalog type slis_fieldcat_alv,
*gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid.
*Start-of-selection.
START-OF-SELECTION.
PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
*& Form BUILD_FIELDCATALOG
*• Build Fieldcatalog for ALV Report
FORM build_fieldcatalog.
wa_fieldcatalog-fieldname = 'VBELN'.
wa_fieldcatalog-seltext_m = 'sales order'.
wa_fieldcatalog-col_pos = 0.
APPEND wa_fieldcatalog TO fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'ERDAT'.
wa_fieldcatalog-seltext_m = 'date'.
wa_fieldcatalog-col_pos = 1.
APPEND wa_fieldcatalog TO fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'MATNR'.
wa_fieldcatalog-seltext_m = 'material no.'.
wa_fieldcatalog-col_pos = 2.
APPEND wa_fieldcatalog TO fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'POSNR'.
wa_fieldcatalog-seltext_m = 'line item no.'.
wa_fieldcatalog-col_pos = 3.
APPEND wa_fieldcatalog TO fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'matkl'.
wa_fieldcatalog-seltext_m = 'mat grp.'.
wa_fieldcatalog-col_pos = 4.
APPEND wa_fieldcatalog TO fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'arktx'.
wa_fieldcatalog-seltext_m = 'short txt'.
wa_fieldcatalog-col_pos = 5.
append wa_fieldcatalog TO fieldcatalog.
CLEAR wa_fieldcatalog.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
*• Build layout for ALV grid report
FORM build_layout.
*gd_layout-no_input = 'X'.
*gd_layout-colwidth_optimize = 'X'.
*gd_layout-totals_text = 'Totals'(201).
**• gd_layout-totals_only = 'X'.
**• gd_layout-f2code = 'DISP'. "Sets fcode for when double
**• "click(press f2)
gd_layout-zebra = 'X'.
**• gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
ENDFORM. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
*• Display report using ALV grid
FORM display_alv_report.
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
*• i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
*• i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
*• it_special_groups = gd_tabgroup
*• IT_EVENTS = GT_XEVENTS
i_save = 'X'
*• is_variant = z_template
TABLES
t_outtab = i_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc ne 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 DATA_RETRIEVAL
*• Retrieve data form EKPO table and populate itab it_ekko
FORM data_retrieval.
SELECT avbeln aerdat bmatnr bposnr bmatkl barktx FROM vbak AS a
INNER JOIN vbap AS b ON avbeln = bvbeln
INTO TABLE i_final WHERE a~vbeln in s_vbeln.
ENDFORM. " DATA_RETRIEVAL
when i chabged from grid to list.
I addeded some extra fields in my outputlist. with this it goes to runtime error.

Hi,
Please mention the field names in Upper Case.
as in...
* wa_fieldcatalog-fieldname = 'matkl'.
wa_fieldcatalog-fieldname = 'MATKL'.
wa_fieldcatalog-seltext_m = 'mat grp.'.
wa_fieldcatalog-col_pos = 4.
APPEND wa_fieldcatalog TO fieldcatalog.
CLEAR wa_fieldcatalog.
*wa_fieldcatalog-fieldname = 'arktx'.
wa_fieldcatalog-fieldname = 'ARKTX'.
wa_fieldcatalog-seltext_m = 'short txt'.
wa_fieldcatalog-col_pos = 5.
append wa_fieldcatalog TO fieldcatalog.
CLEAR wa_fieldcatalog.
Reward points inorder to say thanks and encourage us,
Kiran

Similar Messages

  • How to create field catalog using field-symbols in normal alv report?

    hi all,
    how to create field catalog using field-symbols in normal alv report? i.e, using function modules...reuse_alv_list_display/grid_display?
    regards,
    jack

    HI
    LIKE THIS
    TYPE-POOLS : slis.
    DATA : t_fieldcat TYPE slis_t_fieldcat_alv,
           st_fieldcat TYPE slis_fieldcat_alv.
    st_fieldcat-fieldname     = 'STATUS'.
      st_fieldcat-seltext_l     = 'STATUS INDICATOR'.
      st_fieldcat-outputlen     = 17.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'VBELN'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Sales Document No.'.
      st_fieldcat-outputlen     = 10.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUDAT'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Document Date'.
      st_fieldcat-outputlen     = 10.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'VBTYP'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Document Type'.
      st_fieldcat-outputlen     = 4.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUART'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Category'.
      st_fieldcat-outputlen     = 1.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUGRU'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Reason'.
      st_fieldcat-outputlen     = 3.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'NETWR'.
      st_fieldcat-do_sum        = 'X'.
      st_fieldcat-seltext_l     = 'Net Amount'.
      st_fieldcat-outputlen     = 15.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'WAERK'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Unit'.
      st_fieldcat-outputlen     = 5.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
    *sortinfo
      st_sort-fieldname = 'AUART'.
      st_sort-up        = 'X'.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'VBTYP'.
      st_sort-up        = 'X'.
      st_sort-subtot    = ' '.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'WAERK'.
      st_sort-up        = 'X'.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'VBELN'.
      st_sort-up        = ' '.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type     = 0
       IMPORTING
         et_events       = it_eventcat
       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.
      IF grid = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
         I_INTERFACE_CHECK                 = ' '
         I_BYPASSING_BUFFER                = ' '
         I_BUFFER_ACTIVE                   = ' '
          i_callback_program                = g_program
          I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
         I_CALLBACK_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_GRID_SETTINGS                   =
         IS_LAYOUT                         =
           it_fieldcat                       = t_fieldcat
         IT_EXCLUDING                      =
         IT_SPECIAL_GROUPS                 =
          it_sort                           = t_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
         I_HTML_HEIGHT_TOP                 = 0
         I_HTML_HEIGHT_END                 = 0
         IT_ALV_GRAPHICS                   =
         IT_HYPERLINK                      =
         IT_ADD_FIELDCAT                   =
         IT_EXCEPT_QINFO                   =
         IR_SALV_FULLSCREEN_ADAPTER        =
       IMPORTING
         E_EXIT_CAUSED_BY_CALLER           =
         ES_EXIT_CAUSED_BY_USER            =
          TABLES
            t_outtab                          = it_final
          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.
    REWARD IF USEFULL

  • Normal ALVs vrs ALV OOPs

    I am using ALV OOPs. In ALV OOPs Appl tool bar is working by default when we create PF-STATUS. But in case of normal ALVs we need to write code for SY-UCOMM in PAI. why this happens, can anybody give tips. 
    Regards,
    Naseer.

    Hi Naseer,
    In Normal ALV we use Function mnodule and in OOPs we use classes and methods.
    In Normal ALV we cannot place grids on screens but in OOALV we can place grids on screens.
    we can insert logos in OOPS ALV.
    see the code below
    for displaying LOGO in ALV GRID CONTROL, we work with
    Predefined global class. CL_GUI_ALV_TREE_SIMPLE. FOR
    displaying LOGO. AND we use CL_GUI_CUSTOM_CONTAINTER for
    identifies the location where we r goinh to display.
    DECLARATIONS;
    TYPE-POOLS: SDYDO, SLIS.
    DATA: L_LOGO TYPE SDYDO_VALUE,” FOR DISPLAYING LOGO
    L_LIST TYPE SLIS_T_LISTHEADER. ” FOR LIST HEADING
    DATA: LOGO TYPE SCRFNAME VALUE ‘SLOGO’,
    CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
    LOGO1 TYPE REF TO CL_GUI_ALV_TREE_SIMPLE.
    CREATE INSTANCE FOR ABOVE DEFINED CLASSES IN PBO EVENT
    OF SCREEN FLOW LOGIC.
    IF CONTAINER IS INITIAL.
    CREATE OBJECT CONTAINER EXPORTING CONTAINER_NAME =
    LOGO.
    CREATE OBJECT LOGO1 EXPORTING I_PARENT = CONTAINER.
    NOW CALL THE METHOD FOR DISPLAYING LOGO IN GRID CONTROL
    CALL METHOD LOGO->‘CREATE_REPORT_HEADER’
    EXPORTING
    I_LIST_COMMENTARY = L_LIST
    I_LOGO = ’ ’ ” HERE PASS WHERE LOGO EXISTING.
    THE ABOVE METHOD EXISTING
    Please reward points if helpful..
    Cheers,
    Chaitanya.

  • Refresh Normal ALV

    Hi everybody,
    I have done normal ALV report.I did not use any methods for displaying . now i want to refresh the normal ALV report. is there any command for refreshing the alv report....
    thanks and regards,
    varahagiri.

    Um mean to say u want to auto-refesh ur ALV list? If it is then try this sample code...
    REPORT z_alv_auto_refresh.
    TYPE-POOLS: slis.                      " ALV Global Types
    DATA :
      gt_user LIKE uinfo OCCURS 0 WITH HEADER LINE. " User info in SM04
    START-OF-SELECTION.
      PERFORM f_read_data.
      PERFORM f_display_data.
          Form  F_LIRE_DATA
    FORM f_read_data.
      REFRESH gt_user.
    Get User's info
      CALL FUNCTION 'THUSRINFO'
           TABLES
                usr_tabl = gt_user.
    Wait in a task
      PERFORM f_call_rfc_wait.
    ENDFORM.                               " F_READ_DATA
         Form  F_DISPLAY_DATA
    FORM f_display_data.
      DEFINE m_sort.
        add 1 to ls_sort-spos.
        ls_sort-fieldname = &1.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.
      DEFINE m_event_exit.
        clear ls_event_exit.
        ls_event_exit-ucomm = &1.
        ls_event_exit-after = 'X'.
        append ls_event_exit to lt_event_exit.
      END-OF-DEFINITION.
      DATA :
        ls_layout     TYPE slis_layout_alv,
        lt_sort       TYPE slis_t_sortinfo_alv,
        ls_sort       TYPE slis_sortinfo_alv,
        lt_event_exit TYPE slis_t_event_exit,
        ls_event_exit TYPE slis_event_exit.
    Build Sort Table
      m_sort 'ZEIT'.
    Build Event Exit Table
      m_event_exit '&NTE'.                 " Refresh
      ls_layout-zebra = 'X'.
      ls_layout-colwidth_optimize = 'X'.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                i_callback_program      = sy-cprog
                i_callback_user_command = 'USER_COMMAND'
                is_layout               = ls_layout
                i_structure_name        = 'UINFO'
                it_sort                 = lt_sort
                it_event_exit           = lt_event_exit
           TABLES
                t_outtab                = gt_user.
    ENDFORM.                               " F_DISPLAY_DATA
          FORM USER_COMMAND                                             **
    FORM user_command USING i_ucomm     TYPE syucomm
                            is_selfield TYPE slis_selfield.     "#EC CALLED
      CASE i_ucomm.
        WHEN '&NTE'.
          PERFORM f_read_data.
          is_selfield-refresh = 'X'.
          SET USER-COMMAND '&OPT'.         " Optimize columns width
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
         Form  F_CALL_RFC_WAIT
    FORM f_call_rfc_wait.
      DATA lv_mssg(80).                                         "#EC NEEDED
    Wait in a task
      CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'
        PERFORMING f_task_end ON END OF TASK
        EXPORTING
          seconds               = 5        " Refresh time
          busy_waiting          = space
        EXCEPTIONS
          RESOURCE_FAILURE      = 1
          communication_failure = 2  MESSAGE lv_mssg
          system_failure        = 3  MESSAGE lv_mssg
          OTHERS                = 4.
    ENDFORM.                               " F_CALL_RFC_WAIT
         Form  F_TASK_END
    FORM f_task_end USING u_taskname.
      DATA lv_mssg(80).                                         "#EC NEEDED
    Receiving task results
      RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'
        EXCEPTIONS
          RESOURCE_FAILURE      = 1
          communication_failure = 2  MESSAGE lv_mssg
          system_failure        = 3  MESSAGE lv_mssg
          OTHERS                = 4.
      CHECK sy-subrc EQ 0.
      SET USER-COMMAND '&NTE'.             " Refresh
    ENDFORM.                               " F_TASK_END
    If u want normal refresh based on clicking on a button then follow these steps:
    1. Pass the subroutine name for event user_command to ALV list like:
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                i_callback_program      = sy-cprog
                i_callback_user_command = 'USER_COMMAND'
                is_layout               = ls_layout
                i_structure_name        = 'UINFO'
                it_sort                 = lt_sort
                it_event_exit           = lt_event_exit
           TABLES
                t_outtab                = gt_user.
    2. In the routine USER_COMMAND trap the fcode and set the refesh field.
          FORM USER_COMMAND                                             **
    FORM user_command USING i_ucomm     TYPE syucomm
                            is_selfield TYPE slis_selfield.     "#EC CALLED
      CASE i_ucomm.
        WHEN 'ABCD'.
          is_selfield-refresh = 'X'.
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
    3. Attach custom pf-status and there define a button with fcode
    ABCD.
    So that whenever u press this button user_command routine will get called and ALV list get refreshed.
    Regards,
    Joy.

  • Maximum Number of Columns in OOPs ALV / Normal ALV Grid

    Hi Experts ,
    We got Stuck in Displaying the 150 Columns in the ALV Display .
    Need to Confirm how many Columns can be displayed in ALV - 60/90/99/1023  Or 1023 characters in ALv Display
    1. How It can be achieved to display 150 Columns in ALV .
    2. By Which way it should be More Efficient Using OOPs ALV or Normal ALV Grid.
    We had check almost all the forums Post but didnt get any satisfactory answer for the same .
    Thanks in advance
    Regards,
    Saurabh Goel

    Hello,
    If you are preparing your field catalog by using the function module REUSE_ALV_FIELDCAT_MERGE, then you can display a
    maximum of something around 70 to 82 fields.
    But if you are creating your field catalog manually, then you can display N number of columns in ALV grid.
    Check the point of fieldcat preparation.
    Hope this helps
    Cheers!
    Mishra

  • How to REFRESH Normal ALV..

    Hi Experts,
    I have Display normal ALV REPORT using 'REUSE_ALV_GRID_DISPLAY'.
    When Double Click on a Particular Field say EBELN I need to Modify the Text say TXZ01( In below Source Code I Cleared Text just for Example).
    Using u2018&IC1u2019 I modified in Internal Table, but it is not visible in the Screen.
    Can anyone Give Idea on This.
    TYPE-POOLS slis.
    DATA : it_ekpo TYPE STANDARD TABLE OF ekpo,
           it_fcat TYPE slis_t_fieldcat_alv.
    START-OF-SELECTION.
      SELECT * FROM ekpo INTO TABLE it_ekpo UP TO 10 ROWS.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_structure_name       = 'EKPO'
        CHANGING
          ct_fieldcat            = it_fcat
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = sy-cprog
          i_callback_user_command = 'USER_COMMAND'
          it_fieldcat             = it_fcat
        TABLES
          t_outtab                = it_ekpo
        EXCEPTIONS
          program_error           = 1.
    *&      Form  USER_COMMAND
          text
         -->SLIS_SELFIELD  text
    FORM user_command USING command TYPE sy-ucomm
                            field   TYPE slis_selfield.
      FIELD-SYMBOLS <lfs_fcat>  TYPE ekpo.
      IF command EQ '&IC1'.
        IF  field-fieldname  EQ 'EBELN'.
          READ TABLE it_ekpo ASSIGNING <lfs_fcat> INDEX field-tabindex.
          IF sy-subrc EQ 0.
            CLEAR <lfs_fcat>-txz01.
          ENDIF.
          CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_REFRESH' .
        ENDIF.
      ENDIF.
    ENDFORM.            "USER_COMMAND
    Regards,
    Kumar

    Hi,
      Try like below:
    *& Form USER_COMMAND
    * text
    * -->SLIS_SELFIELD text
    FORM user_command USING command TYPE sy-ucomm
    field TYPE slis_selfield.
    FIELD-SYMBOLS <lfs_fcat> TYPE ekpo.
    IF command EQ '&IC1'.
    IF field-fieldname EQ 'EBELN'.
    READ TABLE it_ekpo ASSIGNING <lfs_fcat> INDEX field-tabindex.
    IF sy-subrc EQ 0.
    CLEAR <lfs_fcat>-txz01.
    ENDIF.
    ENDIF.
    ENDIF.
    field-refresh ' X'.                      <----Add this
    ENDFORM. "USER_COMMAND
    Regards,
    Himanshu

  • Normal ALV grid

    Hello,
          I am editing a field in alv grid but I am not able to save.
                I am using normal ALV and not OOALV.
         I am able to get the row which I am edit but how do i get modified cell.

    Hi try to get the concept from the below code snippet. keep a checkbox in your final itab that you want to show using ALV.then mark the checkbox for the line you want to edit a field.
    WHEN '&ZXZ'.
          CLEAR l_cntr.
          CLEAR WA_final.
          LOOP AT IT_final INTO WA_final.
            IF WA_final-chk = 'X'.
              l_cntr = l_cntr + 1.
            ENDIF.
          ENDLOOP.
          IF l_cntr GT 1.
            MESSAGE i011.
          ELSEIF l_cntr = 1.
            READ TABLE IT_final INTO WA_final WITH KEY chk = 'X'.
            CALL FUNCTION 'POPUP_TO_GET_VALUE'
              EXPORTING
               fieldname                 = 'MENGE'
                tabname                  = 'EKPO'
                titel                    = 'PO Quan.'
                valuein                  = WA_final-menge
              IMPORTING
    *           ANSWER                    =
               valueout                  = l_out_string
             EXCEPTIONS
               fieldname_not_found       = 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.
            CATCH SYSTEM-EXCEPTIONS conversion_errors = 1.
              l_out_final = l_out_string.
            ENDCATCH.
            IF sy-subrc = 1.
              MESSAGE i012 DISPLAY LIKE 'E'.
            ELSE.
              WA_final-menge = l_out_final.
              MODIFY IT_final FROM WA_final TRANSPORTING menge
              WHERE chk = 'X'.
              CLEAR WA_final.
              PERFORM disp_alv.
            ENDIF.
          ELSE.
            MESSAGE i010.
          ENDIF.
    I have kept this code snippet for the subroutine used corresponding to the pf-status.
    Regards.
    Sarbajit

  • Can i make a normal alv report web eabled if so please guide me

    can i make a normal alv report web eabled if so please guide me

    i m getting the error as below
    Business Server Page (BSP) error
    What happened?
    Calling the BSP page was terminated due to an error.
    SAP Note
    The following error text was processed in the system:
    Die URL enthält keine vollständige Domainangabe (ecc01 statt ecc01.).
    Exception Class
    CX_FQDN
    Error Name
    Program
    CX_FQDN=======================CP
    Include
    CX_FQDN=======================CM002
    ABAP Class
    CX_FQDN
    Analyze
    CHECK
    Line
    10
    Long text
    Error type: Exception
    Your SAP Business Server Pages Team

  • Three normal alv output in a single screen

    Hi,
         SAP ABAP EXPERT,
                    i want to add 3 normal output of alv in a single screen without using any container can it be possible?
    suggest me suitable method for that ASAP.
    thanx n regards
    pankaj

    Hi Dear,
    yes it is possible.
    See at what respect u want to display three ALv ouput that i donot know.
    But suppose in ur ALV 10 fields are there and whenever the 1st field data will differ it should show as another Block and so on like Page -break it is possible .
    For this just use sort
    and give *
    Another way Class using Container
    then Block List
    Thanks
    Arbind Prasad.

  • Icons in normal alv

    Hai
    can any one give me example of normal interactive alv ..
    report.
    I hav one alv rep having 5 secondary lists.
    1) i need to print this report via diff. options unconverted, richtext format, spreadsheet, html format
    2)i wnt icons such as firstpage, prev, nxt, last page icons on toolbar.
    3)back arrow, uparrow, close arrows as well.
    How to do this...plz tell me
    wt is the procedure..>> guide me in detail

    Hi
    just check this.
    this is how you call the basic list.
      g_repid = sy-repid.
      REFRESH : gt_events.
    basic list ALV Call
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program          = g_repid
          i_callback_pf_status_set    = 'FRM_PF_STATUS'      "set PF Status
          i_callback_user_command     = 'FRM_USER_COMMAND'   "secondary list
          i_callback_html_top_of_page = c_html_top_of_page
          it_fieldcat                 = gt_fieldcat
          i_html_height_top           = 13
        TABLES
          t_outtab                    = gt_isrlog1          "Basic list data
        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.
    This is ur secondary list.
    *&      Form  FRM_USER_COMMAND
          User command
    FORM frm_user_command  USING p_ucomm LIKE sy-ucomm
                               rs_selfield TYPE slis_selfield.
      CLEAR gt_isrlog1.
      READ TABLE gt_isrlog1 INDEX rs_selfield-tabindex.
      CASE p_ucomm.
        WHEN '&IC1'.
    Build Secondary list
          PERFORM build_secondary_list.
      ENDCASE.
    ENDFORM.                  "FRM_USER_COMMAND
    There are so many standard ALV programs for you ref. just go to SE38 and give BCAL* and do a F4 you will get list of all the ALV's.
    Regards,
    Lakshmikanth.

  • Regarding editable alv

    Hi all,
              Frnds i am working in editable alv using function modules not object oriented abap.
    i m trying to edit a Field(MATNR ) in my output list and finally update it with changed values in the DB table.
    But i m getting syntax error like
    "the work area i_final is not alligned properly
    below i m providing my code.
    <code>
    *& Report  ZEDITABLE_ALV1
    REPORT  ZEDITABLE_ALV1.
    TABLES: vbak,vbap.
    TYPE-POOLS: slis. "ALV Declarations
    data: BEGIN OF i_final occurs 0,
          vbeln like vbap-vbeln,
          posnr like vbap-posnr,
          matnr like vbap-matnr,
          erdat like vbap-erdat,
    END OF i_final.
    DATA : C_X(1) TYPE C VALUE 'X',
           C_FC_MODIFY(6) TYPE C VALUE 'MODIFY'.
    *DATA: i_final TYPE STANDARD TABLE OF T_FINAL with header line.
         i_temp type standard table of T_FINAL with header line.
    *wa_final like line of i_final.
    *DATA:i_final LIKE vbap OCCURS 0.
    *DATA:wa_final LIKE vbap.
    *ALV data declarations
    DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
    gd_tab_group TYPE slis_t_sp_group_alv,
    gd_layout TYPE slis_layout_alv,
    gd_repid LIKE sy-repid.
    *Start-of-selection.
    START-OF-SELECTION.
    PERFORM data_retrieval.
    PERFORM build_fieldcatalog.
    PERFORM build_layout.
    PERFORM display_alv_report.
    *& Form BUILD_FIELDCATALOG
    *•     Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
    fieldcatalog-fieldname = 'VBELN'.
    fieldcatalog-seltext_m = 'sales order'.
    fieldcatalog-col_pos = 0.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'ERDAT'.
    fieldcatalog-seltext_m = 'date'.
    fieldcatalog-col_pos = 1.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MATNR'.
    fieldcatalog-seltext_m = 'material no.'.
    fieldcatalog-col_pos = 2.
    fieldcatalog-edit = 'X'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'POSNR'.
    fieldcatalog-seltext_m = 'line item no.'.
    fieldcatalog-col_pos = 3.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-FIELDNAME = 'REC_SEL'.
    fieldcatalog-NO_OUT = C_X.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    ENDFORM. " BUILD_FIELDCATALOG
    *& Form BUILD_LAYOUT
    *•     Build layout for ALV grid report
    FORM build_layout.
    gd_layout-no_input = 'X'.
    gd_layout-colwidth_optimize = 'X'.
    gd_layout-totals_text = 'Totals'(201).
         gd_layout-totals_only = 'X'.
         gd_layout-f2code = 'DISP'. "Sets fcode for when double
         "click(press f2)
         gd_layout-zebra = 'X'.
         gd_layout-group_change_edit = 'X'.
         gd_layout-header_text = 'helllllo'.
    ENDFORM. " BUILD_LAYOUT
    *& Form DISPLAY_ALV_REPORT
    *•     Display report using ALV grid
    FORM display_alv_report.
    gd_repid = sy-repid.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = gd_repid
    i_callback_user_command = 'USER_COMMAND'
    i_callback_pf_status_set = 'GUI_STAT'
    *i_grid_title = outtext
    is_layout = gd_layout
    it_fieldcat = fieldcatalog[]
    *it_special_groups = gd_tabgroup
    *it_events = it_events
    i_save = 'X'
    *is_variant = z_template
    TABLES
    t_outtab = i_final
    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 DATA_RETRIEVAL
    *•     Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
    *SELECT avbeln aerdat bmatnr bposnr FROM vbak AS a
    *INNER JOIN vbap AS b ON avbeln = bvbeln
    *INTO TABLE i_final WHERE a~vbeln = b~vbeln.
    select VBELN ERDAT MATNR POSNR up to 10 rows from vbap into corresponding fields of  table i_final.
    ENDFORM. " DATA_RETRIEVAL
    *•     FORM GUI_STAT *
    *•     --> RT_EXTAB *
    FORM gui_stat USING rt_extab TYPE slis_t_extab.
    SET PF-STATUS 'MODIFY' EXCLUDING rt_extab.
    ENDFORM.
    *•     FORM USER_COMMAND *
    *•     --> U_COMM *
    *•     --> RS_SELFIELD *
    FORM user_command USING u_comm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    DATA:selfield TYPE slis_selfield.
    *RS_SELFIELD-REFRESH = C_X.
    CASE u_comm.
    *IF U_COMM = C_FC_MODIFY.
    WHEN 'UPDATE'.
    LOOP AT i_final. " into wa_final."into wa_final.
    *READ TABLE I_TEMP WITH KEY VBELN = I_FINAL-VBELN.
    *IF SY-SUBRC = 0.
    i_final-matnr = vbap-matnr.
    *MODIFY I_final INDEX SY-TABIX.
    *ENDIF.
    ENDLOOP.
    *ENDIF.
    MODIFY VBAP FROM TABLE i_final.
    IF SY-SUBRC = 0.
    COMMIT WORK AND WAIT.
    *MESSAGE I000 WITH SY-DBCNT
    *' Record(s) has been Updated'(020).
    ENDIF.
    *append i_final.
    *it_temp = i_final.
    *append it_temp.
    **UPDATE sflight FROM TABLE sflight_tab.
    *ENDLOOP.
    *update vbap from table i_final.
    *IF sy-subrc = 0.
    *MESSAGE s000(0) WITH 'records updated successfully'.
    *ENDIF.
    ENDCASE.
    ENDFORM.
    </code>
    Frnds plz help me in this regard.
    Thanks,
    satya

    Try something like this...ur code was not clear..i have done something u can understand.
    First check that u r not trying to update the primary key field.
    first before updating.
    Before updating select the record u r going to update from the main table.
    select single * from VBAP where <pass the key values>.
    if sy-subrc = 0.
    move the rest of the values to the table header except the key values.
    vbap-<field1> = value1.
    vbap-<field2> = value2.
    after moving the values.
    update <table>.
    if sy-subrc = 0.
    commit work.
    endif.
    data:st_vbap type vbap.
    WHEN 'UPDATE'.
    LOOP AT i_final. " into wa_final."into wa_final.
    select single * from vbap where vbeln = I_FINAL-VBELN.
    move-corresponding i_final to vbap.
    update vbap.
    if sy-subrc = 0.
    commit work.
    wk_cnt = wk_cnt + 1.
    endif.
    at last.
    *MESSAGE I000 WITH SY-DBCNT
    *' Record(s) has been Updated'(020).
    endat.
    endloop

  • Regarding list alv display

    Hi All,
    I am catching double click event in user command for alv list display,where we get one structure filled on runtime called slis_selfield upon double clicking on alv rows. in this structure i am not getting the field 'sel_tab_field' filled. and i am in need of that field value.
    can you help me out in this regard.
    Thanks in advance.
    Regards
    Ashutosh

    Hi ,
    FORM user_command USING p_ucomm LIKE sy-ucomm
    f_selfield TYPE slis_selfield.
    capture double click event on document number created.
    CASE p_ucomm.
    WHEN '&IC1'.
    IF f_selfield-tabname EQ 'I_DOC_CREATED'.
    CHECK NOT f_selfield-value IS INITIAL.
    SET PARAMETER ID 'BLN' FIELD f_selfield-value.
    SET PARAMETER ID 'BUK' FIELD so_bukrs-low.
    SET PARAMETER ID 'GJR' FIELD w_gjahr.
    CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ELSEIF f_selfield-tabname EQ 'I_ELOG'.
    CHECK NOT f_selfield-value IS INITIAL.
    SET PARAMETER ID 'BLN' FIELD f_selfield-value.
    SET PARAMETER ID 'BUK' FIELD so_bukrs-low.
    SET PARAMETER ID 'GJR' FIELD w_gjahr.
    CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ENDIF.
    ENDCASE.
    I am not getting fieldname field of slis_selfield populated upon double clicking

  • Regarding Hierarchial ALV Display

    Can any one please tell me the 'keyinfo' parameter in the ALV function REUSE_ALV_HIERSEQ_LIST_DISPLAY.
    I want all the details regarding the parameter keyinfo.
    Thanks in advance.

    this is used to specify that according to which field u want hierarchy....
    means i want that according to material number i want hierarchical display than i have to pass matnr in this
    and
    key_info-header01 = 'MAT'.
    key_info-item01 = 'MAT'.
    In this we passing field name of header table and item table....
    Now see this example..
    In this i want hierarchy depend on Material and palnt both..
    so my code will be
    TYPE-POOLS : slis.
    TABLES : mseg.
    DATA : BEGIN OF itab_head OCCURS 0,
    mat LIKE mseg-matnr,
    matnr LIKE mseg-matnr,
    werks LIKE mseg-werks,
    END OF itab_head.
    DATA : BEGIN OF itab_item OCCURS 0,
    mat LIKE mseg-matnr,
    matnr LIKE mseg-matnr,
    werks LIKE mseg-werks,
    mblnr LIKE mseg-mblnr,
    menge LIKE mseg-menge,
    END OF itab_item.
    DATA : t_fcat TYPE slis_t_fieldcat_alv,
    key_info TYPE slis_keyinfo_alv,
    t_eve TYPE slis_t_event,
    gt_subtot TYPE slis_t_sortinfo_alv,
    subtot LIKE LINE OF gt_subtot,
    t_listhead TYPE slis_t_listheader,
    st_line TYPE slis_listheader.
    DATA : t_mtdoc LIKE mseg-mblnr.
    SELECT-OPTIONS : mat FOR mseg-matnr.
    INITIALIZATION.
    PERFORM build_cat USING t_fcat.
    PERFORM build_eve.
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM dis_data.
    *& Form build_cat
    text
    -->TEMP_FCAT text
    FORM build_cat USING temp_fcat TYPE slis_t_fieldcat_alv.
    DATA : wa_fcat TYPE slis_fieldcat_alv.
    wa_fcat-tabname = 'ITAB_HEAD'.
    wa_fcat-fieldname = 'MAT'.
    wa_fcat-seltext_m = 'Material'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_HEAD'.
    wa_fcat-fieldname = 'WERKS'.
    wa_fcat-seltext_m = 'Plant'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_ITEM'.
    wa_fcat-fieldname = 'MBLNR'.
    wa_fcat-seltext_m = 'Material Doc.'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_ITEM'.
    wa_fcat-fieldname = 'MENGE'.
    wa_fcat-seltext_m = 'Quantity'.
    wa_fcat-do_sum = 'Y'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    subtot-spos = 1.
    subtot-fieldname = 'MAT'.
    subtot-tabname = 'ITAB_HEAD'.
    subtot-up = 'X'.
    subtot-group = 'X'.
    subtot-subtot = 'X'.
    subtot-expa = 'X'.
    APPEND subtot TO gt_subtot.
    ENDFORM. "build_cat
    *& Form build_eve
    text
    FORM build_eve.
    DATA : wa_eve TYPE slis_alv_event.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    i_list_type = 0
    IMPORTING
    et_events = t_eve
    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. "build_eve
    *& Form get_data
    text
    FORM get_data.
    SELECT matnr AS mat werks mblnr menge FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab_item
    WHERE matnr IN mat.
    ENDFORM. "get_data
    *& Form dis_data
    text
    FORM dis_data.
    key_info-header01 = 'MAT'.
    key_info-item01 = 'MAT'.
    key_info-header02 = 'WERKS'.
    key_info-item02 = 'WERKS'.
    REFRESH itab_head.
    LOOP AT itab_item.
    ON CHANGE OF itab_item-mat OR itab_item-werks.
    MOVE-CORRESPONDING itab_item TO itab_head.
    APPEND itab_head.
    ENDON.
    ENDLOOP.
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
    i_callback_program = 'ZALV_PRDS'
    it_fieldcat = t_fcat
    it_sort = gt_subtot
    it_events = t_eve[]
    i_tabname_header = 'ITAB_HEAD'
    i_tabname_item = 'ITAB_ITEM'
    is_keyinfo = key_info
    TABLES
    t_outtab_header = itab_head
    t_outtab_item = itab_item
    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. "dis_data
    reward if usefull.....

  • Need information regarding Hierarchical ALV display

    How to total sub items in an Heirarchical ALV List display?

    Hi,
    I have one Hierarchical alv example .. please see it. Also check B*ALV in se38.
    *& Report  ZLAXMI_ALVEXER4                                             *
    REPORT  ZLAXMI_ALVEXER4    MESSAGE-ID ZZ        .
    *& TABLES DECLARATION                                                  *
    TABLES: VBAK, VBAP.
    *& TYPE POOLS DECLARATION                                              *
    TYPE-POOLS: SLIS.
                          DATA DECLARATIONS                             *
    DATA: V_FLAG TYPE C.                        "Flag to display the header
    DATA: V_REPID TYPE SY-REPID.
    *& INTERNAL TABLE DECLARATION                                          *
    DATA: BEGIN OF IT_VBAK OCCURS 0,
           VBELN LIKE VBAK-VBELN,
           AUDAT LIKE VBAK-AUDAT,
           AUART LIKE VBAK-AUART,
           NETWR LIKE VBAK-NETWR,
           EXPAND(1),
          END OF IT_VBAK.
    DATA: BEGIN OF IT_VBAP OCCURS 0,
           VBELN LIKE VBAP-VBELN,
           POSNR LIKE VBAP-POSNR,
           MATNR LIKE VBAP-MATNR,
           PSTYV LIKE VBAP-PSTYV,
           CHARG LIKE VBAP-CHARG,
         END OF IT_VBAP.
    DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
          IT_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
    *events
          IT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE,
          V_CALL TYPE C,
          X_USER TYPE  SLIS_EXIT_BY_USER,
          IT_VARIANT LIKE  DISVARIANT OCCURS 0 WITH HEADER LINE,
          X_KEYINFO TYPE SLIS_KEYINFO_ALV,
    *layout
          X_LAYOUT TYPE SLIS_LAYOUT_ALV,
    *sort
          IT_SORT TYPE SLIS_T_SORTINFO_ALV,
          WA_SORT LIKE LINE OF IT_SORT,
          X_CAT TYPE SLIS_FIELDCAT_ALV,
          V_TABIX LIKE SY-TABIX.
          Selection screen Declaration
    *--BLOCK1
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,
                    S_AUART FOR VBAK-AUART.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN                                                 *
    *- Validations
    AT SELECTION-SCREEN.
      PERFORM VALIDATE_SCREEN.
                  START OF SELECTION                                    *
    START-OF-SELECTION.
    *- To get data from VBAK
      PERFORM GET_DATA.
    *to get data from VBAP
      PERFORM GET_DATA_VBAP.
      PERFORM PREPARE_ALV.
                  END OF SELECTION                                    *
    END-OF-SELECTION.
      PERFORM DISPLAY_REPORT.
    *&      Form  VALIDATE_SCREEN
          text
    -->  p1        text
    <--  p2        text
    FORM VALIDATE_SCREEN .
      DATA: LV_VBELN LIKE VBAK-VBELN,
            LV_AUART LIKE VBAK-AUART.
      IF NOT S_VBELN[] IS INITIAL.
        SELECT VBELN
               INTO LV_VBELN
               FROM VBAK
               WHERE VBELN IN S_VBELN.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH 'INVALID SALES DOC'(002).
        ENDIF.
      ENDIF.
      IF NOT S_AUART[] IS INITIAL.
        SELECT AUART
               INTO LV_AUART
               FROM VBAK
               WHERE AUART IN S_AUART.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH 'INVALID SALES DOC TYPE'(003).
        ENDIF.
      ENDIF.
    ENDFORM.                    " VALIDATE_SCREEN
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA .
      SELECT VBELN
             AUDAT
             AUART
             NETWR
             FROM VBAK
             INTO TABLE IT_VBAK
             WHERE VBELN IN S_VBELN
             AND AUART IN S_AUART.
      IF SY-SUBRC = 0.
        SORT IT_VBAK BY VBELN.
      ENDIF.
    ENDFORM.                    " GET_DATA
    *&      Form  GET_DATA_VBAP
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA_VBAP .
      SELECT VBELN
             POSNR
             MATNR
             PSTYV
             CHARG
             INTO TABLE IT_VBAP
             FROM VBAP
             FOR ALL ENTRIES IN IT_VBAK
             WHERE VBELN = IT_VBAK-VBELN.
      IF SY-SUBRC = 0.
        SORT IT_VBAP BY VBELN POSNR.
      ENDIF.
    ENDFORM.                    " GET_DATA_VBAP
    *&      Form  prepare_alv
          text
    -->  p1        text
    <--  p2        text
    FORM PREPARE_ALV .
    Prepare field catalog .
      PERFORM PREPARE_CATALOG.
    Modify catalog
      PERFORM CHANGE_ATTR_OF_CATALOG.
    Modify Layout
      PERFORM MODIFY_LAYOUT.
    Sort Catalog
      PERFORM SORT_CATALOG.
    ENDFORM.                    " prepare_alv
    *&      Form  prepare_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM PREPARE_CATALOG .
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME         = SY-REPID
          I_INTERNAL_TABNAME     = 'IT_VBAK'
          I_INCLNAME             = SY-REPID
        CHANGING
          CT_FIELDCAT            = IT_FLDCAT1[]
        EXCEPTIONS
          INCONSISTENT_INTERFACE = 1
          PROGRAM_ERROR          = 2
          OTHERS                 = 3.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      APPEND LINES OF IT_FLDCAT1 TO IT_FLDCAT.
      CLEAR: IT_FLDCAT1[].
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME         = SY-REPID
          I_INTERNAL_TABNAME     = 'IT_VBAP'
          I_INCLNAME             = SY-REPID
        CHANGING
          CT_FIELDCAT            = IT_FLDCAT1[]
        EXCEPTIONS
          INCONSISTENT_INTERFACE = 1
          PROGRAM_ERROR          = 2
          OTHERS                 = 3.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      APPEND LINES OF IT_FLDCAT1 TO IT_FLDCAT.
    ENDFORM.                    " prepare_catalog
    *&      Form  change_attr_of_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM CHANGE_ATTR_OF_CATALOG .
      LOOP AT IT_FLDCAT INTO X_CAT.
        V_TABIX = SY-TABIX.
        CASE X_CAT-FIELDNAME.
          WHEN  'EXPAND'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-NO_OUT = 'X'.
            ENDIF.
         when  'VBELN'.
           if x_cat-tabname = 'IT_VBAK'.
             x_cat-no_out = 'X'.
           endif.
          WHEN  'VBELN'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '1'.
              X_CAT-SELTEXT_M = 'SALES DOC'.
              X_CAT-SELTEXT_L = 'SALES DOC'.
              X_CAT-SELTEXT_S = 'SALES DOC'.
              X_CAT-OUTPUTLEN = '10'.
            ENDIF.
          WHEN  'AUDAT'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '2'.
              X_CAT-SELTEXT_M = 'DOC DATE'.
              X_CAT-SELTEXT_L = 'DOC DATE'.
              X_CAT-SELTEXT_S = 'DOC DATE'.
              X_CAT-OUTPUTLEN = '8'.
            ENDIF.
          WHEN  'AUART'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '3'.
              X_CAT-SELTEXT_M = 'ORDER REASON'.
              X_CAT-SELTEXT_L = 'ORDER REASON'.
              X_CAT-SELTEXT_S = 'ORDER REASON'.
              X_CAT-OUTPUTLEN = '5'.
            ENDIF.
          WHEN  'NETWR'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '4'.
              X_CAT-SELTEXT_M = 'NET PRICE'.
              X_CAT-SELTEXT_L = 'NET PRICE'.
              X_CAT-SELTEXT_S = 'NET PRICE'.
              X_CAT-OUTPUTLEN = '15'.
            ENDIF.
        ENDCASE.
        MODIFY IT_FLDCAT FROM X_CAT.
        CLEAR X_CAT.
      ENDLOOP.
    ENDFORM.                    " change_attr_of_catalog
    *&      Form  modify_layout
          text
    -->  p1        text
    <--  p2        text
    FORM MODIFY_LAYOUT .
      X_LAYOUT-DEFAULT_ITEM = 'X'.
      X_LAYOUT-ZEBRA = 'X'.
      X_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.
    ENDFORM.                    " modify_layout
    *&      Form  sort_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM SORT_CATALOG .
      CLEAR WA_SORT.
      WA_SORT-SPOS = '01'.
      WA_SORT-FIELDNAME = 'VBELN' .
      WA_SORT-TABNAME   = 'IT_VBAP'.
      WA_SORT-UP        = 'X'.
      APPEND WA_SORT TO IT_SORT.
      CLEAR  WA_SORT.
      WA_SORT-SPOS = '02'.
      WA_SORT-FIELDNAME = 'POSNR' .
      WA_SORT-TABNAME   = 'IT_VBAP'.
      WA_SORT-UP        = 'X'.
      APPEND WA_SORT TO IT_SORT.
    ENDFORM.                    " sort_catalog
    *&      Form  DISPLAY_REPORT
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_REPORT .
      IT_VARIANT-REPORT = SY-REPID.
      SORT IT_VBAK BY VBELN.
      SORT IT_VBAP BY VBELN POSNR.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = SY-REPID
          IS_LAYOUT               = X_LAYOUT
          IT_FIELDCAT             = IT_FLDCAT[]
          IT_SORT                 = IT_SORT
          IS_VARIANT              = IT_VARIANT
          IT_EVENTS               = IT_EVENTS[]
          I_TABNAME_HEADER        = 'IT_VBAK'
          I_TABNAME_ITEM          = 'IT_VBAP'
          IS_KEYINFO              = X_KEYINFO
        IMPORTING
          E_EXIT_CAUSED_BY_CALLER = V_CALL
          ES_EXIT_CAUSED_BY_USER  = X_USER
        TABLES
          T_OUTTAB_HEADER         = IT_VBAK
          T_OUTTAB_ITEM           = IT_VBAP
        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_REPORT
    Regards,
    Laxmi.

  • Regarding interactive Alv

    Hi abapers,
                          i am developing the alv interactive report . such that if any user clicks on particular matnr then it has to go for the MM02 Transaction Accounting tab.
    i should not do BDC. i am using function module called selection_view_find. how to acheive it? i am keep trying but not able to search in sdn . if possible post the sample code without doing bdc.
    my code is
    { IF rs_selfield-fieldname = 'MATNR'.}
    {READ TABLE t_vbap INTO w_vbap INDEX rs_selfield-tabindex.}
    {SET PARAMETER ID 'MAT' FIELD w_vbap-matnr.}
    { CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.}

    Use a
    IF rs_selfield-fieldname = 'MATNR'.
      READ TABLE t_vbap INTO w_vbap INDEX rs_selfield-tabindex.
      SET PARAMETER ID 'MAT' FIELD w_vbap-matnr. " material number
      SET PARAMETER ID 'WRK' FIELD w_vbap-werks. " Plant
      SET PARAMETER ID 'BWT' FIELD w_vbap-bwtar. " Valuation type
      SET PARAMETER ID 'MXX' FIELD 'B'. " function(s) to call
      CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
    Check table T132(T) for values of MXX parameter, and provide every required parameters.
    Regards,
    Raymond

Maybe you are looking for