Not triggering PBO in OOABAP ALV grid

Hi all.
I want to create drop down for Document type BSART.for that iam using OOABAP but my program is not triggering PBO module itself.I have seen so many examples but iam unable to fetch data.what are the changes i have to do here.i have reduced some code here.i have written my final internal table select query before this stataement.
loop at it_git_final into wa_git_final.
APPEND wa_git_final TO it_git_final.
ENDLOOP.
*Call to ALV
  CALL SCREEN 600.
MODULE status_0600 OUTPUT.
SET PF-STATUS 'DISP'.
SET TITLEBAR 'ALVF4'.
ENDMODULE.                 " STATUS_0600  OUTPUT
calling the PBO module ALV_GRID.
MODULE pbo OUTPUT.
*Creating objects of the container
  *  SET field for ALV
  if g_custom_container is initial.
  perform create_and_init_alv changing it_git_final
                                         gt_fieldcat.
PERFORM alv_build_fieldcat.
  endif.
  * Set ALV attributes FOR LAYOUT
PERFORM alv_report_layout.
   CHECK NOT c_alvgd IS INITIAL.
Call ALV GRID
   CALL METHOD c_alvgd->set_table_for_first_display
    EXPORTING
      is_layout                     = it_layout
      i_save                        = 'A'
    CHANGING
      it_outtab                     = it_git_final
      it_fieldcatalog               = it_fcat
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      OTHERS                        = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
   ENDMODULE.                 " PBO  OUTPUT
      MODULE PAI INPUT                                              *
MODULE pai INPUT.
   ENDMODULE.                    "pai INPUT
*subroutine to build fieldcat
FORM alv_build_fieldcat changing pt_fieldcat type lvc_t_fcat..
   DATA lx_fcat TYPE lvc_s_fcat.
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'IT_GIT_FINAL'
    CHANGING
      ct_fieldcat      = gt_fieldcat.
* To assign dropdown in the fieldcataogue
LOOP AT gt_fieldcat INTO lx_fcat.
   DATA : lx_fcat TYPE lvc_s_fcat.
  lx_fcat-row_pos   = '1'.
  lx_fcat-col_pos   = '1'.
lx_fcat-fieldname = 'CHECK1'.
lx_fcat-ref_field = 'CHECK1'
  lx_fcat-EDIT = 'X'.
  lx_fcat-coltext = 'Check Box'.
lx_fcat-seltext = text-c01.
APPEND lx_fcat TO Gt_fieldcat.
CLEAR lx_fcat.
lx_fcat-row_pos   = '1'.
  lx_fcat-col_pos   = '15'.
  lx_fcat-fieldname = 'BSART'.
  lx_fcat-ref_field = 'BSART'.
  lx_fcat-ref_table = 'T161P'.
  lx_fcat-coltext = 'Document Type'.
lx_fcat-drdn_hndl = '1'.
  lx_fcat-outputlen = 15.
  lx_fcat-edit = 'X'.
  append  lx_fcat to gt_fieldcat.
  CLEAR lx_fcat.
   DATA: lt_dropdown TYPE lvc_t_drop,
        ls_dropdown TYPE lvc_s_drop.
  ls_dropdown-handle = '1'.
  ls_dropdown-value = '01 ZFC Vesselchart Contract'.
  APPEND ls_dropdown TO lt_dropdown.
  ls_dropdown-handle = '1'.
  ls_dropdown-value = '02 ZQTY QTY Contract(SESA)'.
  APPEND ls_dropdown TO lt_dropdown.   ls_dropdown-handle = '1'.
*method to display the dropdown in ALV
  CALL METHOD g_grid->set_drop_down_table
    EXPORTING
      it_drop_down = lt_dropdown.
LOOP AT it_fcat INTO lx_fcat.
    CASE lx_fcat-fieldname.
To assign dropdown in the fieldcataogue
      WHEN 'BSART'.
        lx_fcat-drdn_hndl = '1'.
        lx_fcat-outputlen = 15.
        MODIFY it_fcat FROM lx_fcat.
    ENDCASE.
  ENDLOOP.
      endform.
form ALV_OUTPUT .
*Create object for container
CREATE OBJECT g_custom_container
        EXPORTING container_name = 'CCONT'.
*create object for grid
CREATE OBJECT g_grid
        EXPORTING i_parent = g_custom_container.
  CALL METHOD g_grid->set_table_for_first_display
    EXPORTING
      is_layout       = it_layout
    CHANGING
      it_fieldcatalog = gt_fieldcat
      it_outtab       = it_git_final.
endform.                    " ALV_OUTPUT
form ALV_REPORT_LAYOUT .
  it_layout-cwidth_opt = 'X'.
  it_layout-col_opt = 'X'.
  it_layout-zebra = 'X'.
endform.                    " ALV_REPORT_LAYOUT
form CREATE_AND_INIT_ALV  changing p_it_git_final
                                   p_gt_fieldcat.
  create object g_custom_container
         exporting container_name = g_container.
  create object g_grid
         exporting i_parent = g_custom_container.
endform.

Hello Raj
  Actually all the code is described in PBO module, so you need to invoke this module in PBO when defining the screen.
For example, access transaction SE51, start in Change mode and inser line
    MODULE PBO.
Then activate the object
Best regards
Carlos Machad o

Similar Messages

  • ABAP OOABAP ALV GRID

    Hi Experts,
      i have one requirement. i need to Develop Alvgrid in one Screen.in the Same Screen another Grid.in First i need to Display Summary information.if we Double Click on First Grid of line Detail output of paricular contract.How to Acheive using classes.
    plz send me the material Regarding this.and give me Some examples.How to approach.
    Thanks,
    Venkat.

    Hi,
    Here is a code for a single grid.
    In the screen layout,make a custom container (Icon with C ) and name it in Capital letters as CONTAINER.The code below in bold letters is what exactly you want.I ve given a small example on how to use ALV:
    REPORT SAMPLE.
    DATA: alv type ref to cl_gui_alv_GRID,
    cont type ref to cl_gui_custom_container,
    itab_spfli type table of spfli.
    START-OF-SELECTION.
    select * from spfli into table itab_spfli.
    call screen 100.
    END-OF-SELECTION.
    *& Module STATUS_0100 OUTPUT
    text
    MODULE STATUS_0100 OUTPUT.
    seT PF-STATUS 'GUI'.
    SET TITLEBAR 'xxx'.
    if cont is initial.
    CREATE OBJECT cont
    EXPORTING
    CONTAINER_NAME = 'CONTAINER'.
    CREATE OBJECT ALV
    EXPORTING
    I_PARENT = CONT.
    CALL METHOD ALV->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
    I_STRUCTURE_NAME = 'SPFLI'
    CHANGING
    IT_OUTTAB = itab_spfli
    Now for your requirement,you can create two custom containers in the screen layout and two different alv grid instances.ie:
    DATA: alv1 type ref to cl_gui_alv_GRID,
    cont1 type ref to cl_gui_custom_container
    alv2 type ref to cl_gui_alv_GRID,
    cont2 type ref to cl_gui_custom_container.
    To select data from first grid,you can use events on double_click and fetch information and then display it in the second grid.
    <b>SOME MATERIAL REGARDING ALV:</b>
    www.abap4.it/download/ALV.pdf <b>(very useful)</b>
    http://www.sapdevelopment.co.uk/reporting/alvhome.htm
    <b>-->download the PDF from following link.</b>
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_color.htm
    <b>SAMPLE PROGRAMS IN ALV:</b>http://www.geocities.com/victorav15/sapr3/abap_ood.html#d_grid
    <b>DEMO PROGRAMS IN ALV:</b>BCALV*
    Regards,
    Beejal
    **Reward if this helps

  • Newly Appended rows are not ready for input in ALV Grid

    Hi,
    I created a ALV Grid using OO ALV ,
    I made a condition for editable rows and I have succeded in it.
    in the applicaton tool bar of the ALV I have  the  ADD and DELETE rows Buttons.
    When I click on the Add row button I am having it Disabled for Input.
    But I want the whole line Enabled for Input
    How to get that
    Regards

    "data Declarations
    TYPES: BEGIN OF ty_sto.
            INCLUDE STRUCTURE zarp_sto.
    TYPES: celltab TYPE lvc_t_styl,
          END OF ty_sto.
    DATA:it_sto TYPE TABLE OF ty_sto,
         wa_sto TYPE ty_sto,
         alv_grid  TYPE REF TO cl_gui_alv_grid,
         container TYPE REF TO cl_gui_custom_container,
         it_fieldcat TYPE lvc_t_fcat,
         wa_layout   TYPE lvc_s_layo.
    CALL SCREEN 100.
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS'.
      IF container IS INITIAL.
        CREATE OBJECT container
          EXPORTING
            container_name = 'CONTROL'.
        CREATE OBJECT alv_grid
          EXPORTING
            i_parent = container.
      ENDIF.
      PERFORM fetch_data.
      PERFORM fill_fieldcat.
      wa_layout-stylefname = 'CELLTAB'.
      CALL METHOD alv_grid->set_table_for_first_display
        EXPORTING
           is_layout                     = wa_layout
        CHANGING
          it_outtab                     = it_sto
          it_fieldcatalog               = it_fieldcat.
      CALL METHOD alv_grid->set_ready_for_input
       EXPORTING
        i_ready_for_input = 1
    ENDMODULE.                 " STATUS_0100  OUTPUT
    MODULE user_command_0100 INPUT.
      CASE sy-ucomm.
        WHEN 'BACK'.
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    Data Fetch and Filling Field cat
    FORM fetch_data .
      DATA: lt_sto TYPE TABLE OF zarp_sto,
            ls_sto TYPE zarp_sto.
      SELECT *
        FROM zarp_sto
        INTO TABLE lt_sto.
      LOOP AT lt_sto INTO ls_sto .
        PERFORM fill_cell_tab USING ls_sto
                              CHANGING wa_sto.
        MOVE-CORRESPONDING ls_sto TO wa_sto.
        APPEND wa_sto TO it_sto.
      ENDLOOP.
    ENDFORM.                  
    FORM fill_cell_tab USING ls_sto    TYPE zarp_sto
                       CHANGING wa_sto TYPE ty_sto .
      DATA: l_mode     TYPE raw4,
            ls_celltab TYPE lvc_s_styl.
      IF ls_sto-manual_entry IS INITIAL.
        l_mode = cl_gui_alv_grid=>mc_style_disabled.
      ELSE.
        l_mode = cl_gui_alv_grid=>mc_style_enabled.
      ENDIF.
      ls_celltab-fieldname = 'CONTRIBUTION'.
      ls_celltab-style     = l_mode.
      INSERT ls_celltab INTO TABLE wa_sto-celltab.
      ls_celltab-fieldname = 'TOT_CONTRIBUTION'.
      ls_celltab-style     = l_mode.
      INSERT ls_celltab INTO TABLE wa_sto-celltab.
      ls_celltab-fieldname = 'AVG_CONTRIBUTION'.
      ls_celltab-style     = l_mode.
      INSERT ls_celltab INTO TABLE wa_sto-celltab.
    ENDFORM.                 
    FORM fill_fieldcat .
      DATA: ls_fieldcat TYPE lvc_s_fcat.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          i_structure_name             = 'ZARP_STO'
        CHANGING
          ct_fieldcat                  = it_fieldcat.
      LOOP AT it_fieldcat INTO ls_fieldcat .
        IF ls_fieldcat-fieldname = 'CONTRIBUTION' OR
           ls_fieldcat-fieldname = 'TOT_CONTRIBUTION' OR
           ls_fieldcat-fieldname = 'AVG_CONTRIBUTION'.
          ls_fieldcat-edit = 'X'.
          ls_fieldcat-checktable = '!'.
        ELSE.
          ls_fieldcat-auto_value = 'X'.
          ls_fieldcat-checktable = '!'.
        ENDIF.
        MODIFY it_fieldcat FROM ls_fieldcat .
      ENDLOOP.
    ENDFORM.             
    Please help in this issue
    Edited by: SAP LEARNER on Dec 17, 2009 7:32 AM

  • ALV Grid Excel in Place using REUSE_ALV_GRID_DISPLAY

    I have a ALV grid displayed in a report and i have a bunch of layouts created by various users and the layouts works fine when selected. But when I use 'Excel'  (excel-in-place) button to export the grid into an excel sheet, the order of the columns are all jumbled up and not in sync with the ALV grid layout on the screen. However, when I use export to local file>excel option, the order of columns are in sync with the layout. Can any one explain why this is happening and how I can fix it ? Is there any OSS note or something that I need to apply ?
    PS : I am using REUSE_ALV_GRID_DISPLAY to display the report and I am building the fieldcatalog manually
    Eg :
    CLEAR r_fieldcatalog.
      MOVE 'TB_OUTPUT'  TO r_fieldcatalog-tabname.
      MOVE 'BUKRS'      TO r_fieldcatalog-fieldname.
      MOVE 'VBAK'       TO r_fieldcatalog-ref_tabname.
      MOVE 'BUKRS_VF'   TO r_fieldcatalog-ref_fieldname.
      MOVE text-f01     TO r_fieldcatalog-seltext_s.
      MOVE text-f01     TO r_fieldcatalog-seltext_m.
      MOVE text-f01     TO r_fieldcatalog-seltext_l.
      add '1' to lv_col_pos .
      move lv_col_pos to r_fieldcatalog-col_pos .
      APPEND r_fieldcatalog TO tc_fieldcatalog.
      CLEAR r_fieldcatalog.
      MOVE 'TB_OUTPUT'  TO r_fieldcatalog-tabname.
      MOVE 'VKORG'      TO r_fieldcatalog-fieldname.
      MOVE 'VBAK'       TO r_fieldcatalog-ref_tabname.
      MOVE 'VKORG'      TO r_fieldcatalog-ref_fieldname.
      MOVE text-f02     TO r_fieldcatalog-seltext_s.
      MOVE text-f02     TO r_fieldcatalog-seltext_m.
      MOVE text-f02     TO r_fieldcatalog-seltext_l.
      add '1' to lv_col_pos .
      move lv_col_pos to r_fieldcatalog-col_pos .
      APPEND r_fieldcatalog     TO tc_fieldcatalog.
    Thanks in advance,
    Shareen

      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_pf_status_set = 'ALV_PF_STATUS'
          i_callback_program       = sy-repid
          is_layout                = gs_layout
          it_fieldcat              = gt_fieldcat[]
          i_default                = ' '
          i_save                   = g_save
        TABLES
          t_outtab                 = it_tab
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
    and beneath this just put a form.as its shown.
    FORM alv_pf_status USING l_alv_excl TYPE STANDARD TABLE.
      SET PF-STATUS 'STANDARD_FULLSCREEN' "excluding lt_extab
                    OF PROGRAM 'SAPLSETB'.
    ENDFORM.                    "alv_pf_status

  • F4IF_INT_TABLE_VALUE_REQUEST + ALV Grid

    Hi All,
    I have a ALV grid with 2 fields.
    I implemented F4 for field1 using the FM below.
    I get a list of values as expected when i use 'F4', however the selected value is not written back to the ALV grid field!
    What am i missing here?
        call function 'F4IF_INT_TABLE_VALUE_REQUEST'
          exporting
            retfield        = lv_retfield_name
            value_org       = 'S'
          tables
            value_tab       = lt_f4tabletmodel
            field_tab       = lt_return_tab
          exceptions
            parameter_error = 1
            no_values_found = 2
            others          = 3.
    Note: the internal table lt_return_tab[], contains the value i selected, but i expect this to be written to the ALV grid field for which F4 was performed.
    Thanks in advance and Regards
    Dev

    *Method definition
          handle_on_f4
             for event onf4 of cl_gui_alv_grid
                 importing e_fieldname
                           E_FIELDVALUE "Importing  Type  LVC_VALUE
                           es_row_no
                           er_event_data
                           et_bad_cells
                           e_display.
    *Method implementation
      method handle_on_f4.
        type-pools sesi .
        data:   lt_f4tabletmodel  type table of str_classification_values,
                ls_f4tabletmodel  type str_classification_values,
                lt_return_tab     type table of ddshretval,
                ls_return_tab     type ddshretval,
                lv_retfield_name  type dfies-fieldname,
                lr_class_metadata type ref to cl_er_class_metadata,
                lt_class_systems  type stty_er_classification_system,
                wa_class_systems  type line of stty_er_classification_system,
                lv_class_system   type string.
        call method cl_er_class_metadata=>s_instance
          receiving
            r_instref = lr_class_metadata.
        if registry_name is initial.
          message i100(ws_tool). exit.
        endif.
    read from cache-DB
        try.
          call method lr_class_metadata->read_db_data
            exporting
              i_registry                   = registry_name
            importing
              e_tab_classification_systems = lt_class_systems.
        endtry.
        loop at lt_class_systems into wa_class_systems.
          clear ls_f4tabletmodel.clear lv_class_system.
          lv_class_system = wa_class_systems-tmodel_key.
          ls_f4tabletmodel-class_name = lv_class_system.
          append ls_f4tabletmodel to lt_f4tabletmodel.
        endloop.
        lv_retfield_name = 'CLASS_NAME'.
    f4-Popup
        call function 'F4IF_INT_TABLE_VALUE_REQUEST'
          exporting
            retfield        = lv_retfield_name
            value_org       = 'S'
          tables
            value_tab       = lt_f4tabletmodel
            return_tab      = lt_return_tab
          exceptions
            parameter_error = 1
            no_values_found = 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.
    get Value that has been chosen in F4-Help
        read table lt_return_tab into ls_return_tab index 1. "Always only one entry...
    If empty, nothing has been chosen on the F4-Help, so just return
        check ls_return_tab is not initial.
    change datatable, adding new F4 Data
        case e_fieldname.
          when 'CLASS_NAME'.
           <lf_f4_data>-class_VALUE = ls_return_tab-fieldval.
          when 'CLASS_VALUE'.
           <lf_f4_data>-class_VALUE = ls_return_tab-fieldval.
        endcase.
      endmethod.

  • Out put in ALV grid format

    Hi,
      i need a help from you my dear friend I'm providing you the following information in which i have extract some of the fields from two internal tables and i have to display it in the alv grid format. All the work was done successfully but the problem is the values from internal table are moved but the values are not coming in output in ALV grid format. so pleease try to solve my problem.
    Thanking you
    TABLES: J_1IEXCHDR, J_1IEXCDTL.
    type-pools: slis.
    DATA: ITAB1 TYPE J_1IEXCHDR OCCURS 0 WITH HEADER LINE.
    DATA: ITAB2 TYPE J_1IEXCHDR OCCURS 0 WITH HEADER LINE.
    DATA: ITAB3 TYPE J_1IEXCHDR OCCURS 0 WITH HEADER LINE.
    DATA: OK_CODE LIKE SY-UCOMM,
          GT_SFLIGHT TYPE TABLE OF itab,
          G_CONTAINER TYPE  SCRFNAME VALUE 'BCALV_GRID_DEMO_0100_CONT1',
          GRID1  TYPE REF TO CL_GUI_ALV_GRID,
          G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    DATA:   LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA:   GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    DATA:    G_TABNAME TYPE SLIS_TABNAME VALUE 'RTAB_ALV'.
    data: fieldcat  type slis_t_fieldcat_alv.
    data: begin of itab occurs 0,
         lifnr type j_1iexchdr-lifnr,
         docno type j_1iexchdr-docno,
         exyear type j_1iexchdr-exyear,
         budat type j_1iexchdr-budat,
         exbed type j_1iexcDTL-exbed,
         rdoc1 type j_1iexcDTL-rdoc1,
         ecs type j_1iexcDTL-ecs,
         exbas type j_1iexcDTL-exbas,
         end of itab.
    start-of-selection.
    perform get_data.
    perform call_alv.
    form get_data.
    select * into corresponding fields of table itab
             from  J_1IEXCHDR
                     inner join  J_1IEXCDTL
                        on  J_1IEXCDTLlifnr =  J_1IEXCHDRlifnr
                     where  J_1IEXCHDr~status = 'P'.
    append itab.
    endform.
    CALL_ALV
    form call_alv.
    perform build_field_catalog.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
        i_callback_program = i_repid
    IT_SORT               = gt_sort
         it_fieldcat        = fieldcat[]
       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.
    Call ABAP List Viewer (ALV)
    call function 'REUSE_ALV_GRID_DISPLAY'
      exporting
        it_fieldcat  = fieldcat
      tables
         t_outtab     = itab.
    endform.
    form build_field_catalog.
    clear: fieldcat. refresh: fieldcat.
    data: tmp_fc type slis_fieldcat_alv.
    tmp_fc-reptext_ddic = 'Vendor No'.
    tmp_fc-fieldname    = 'lifnr'.
    tmp_fc-tabname      = 'itab'.
    tmp_fc-outputlen    = '10'.
    append tmp_fc to fieldcat.
    tmp_fc-reptext_ddic = 'docno'.
    tmp_fc-fieldname    = 'docno'.
    tmp_fc-tabname      = 'itab'.
    tmp_fc-outputlen    = '10'.
    append tmp_fc to fieldcat.
      tmp_fc-reptext_ddic = 'exyear'.
    tmp_fc-fieldname    = 'exyear'.
    tmp_fc-tabname      = 'itab'.
    tmp_fc-outputlen    = '10'.
    append tmp_fc to fieldcat.
    tmp_fc-reptext_ddic = 'budat'.
    tmp_fc-fieldname    = 'budat'.
    tmp_fc-tabname      = 'itab'.
    tmp_fc-outputlen    = '10'.
    append tmp_fc to fieldcat.
    tmp_fc-reptext_ddic = 'exbas'.
    tmp_fc-fieldname    = 'exbas'.
    tmp_fc-tabname      = 'itab'.
    tmp_fc-outputlen    = '10'.
    append tmp_fc to fieldcat.
      tmp_fc-reptext_ddic = 'exbed'.
    tmp_fc-fieldname    = 'exbed'.
    tmp_fc-tabname      = 'itab'.
    tmp_fc-outputlen    = '10'.
    append tmp_fc to fieldcat.
    tmp_fc-reptext_ddic = 'rdoc1'.
    tmp_fc-fieldname    = 'rdoc1'.
    tmp_fc-tabname      = 'itab'.
    tmp_fc-outputlen    = '10'.
    append tmp_fc to fieldcat.
    tmp_fc-reptext_ddic = 'ecs'.
    tmp_fc-fieldname    = 'ecs'.
    tmp_fc-tabname      = 'itab'.
    tmp_fc-outputlen    = '10'.
    append tmp_fc to fieldcat.
    endform.
    *loop at itab.
    *WRITE: /  ITAB-LIFNR,
             ITAB-DOCNO,
             ITAB-EXYEAR,
             ITAB-BUDAT,
             ITAB-EXBAS,
             ITAB-EXBED,
             ITAB-RDOC1,
             ITAB-ECS.
    *endloop.

    Hi Praveen,
    In the field cat internal tabel for fieldname you have to pass the values in caps.look at the followig eg:
    tmp_fc-fieldname = 'LIFNR'.
    let me know if you still have a problem after this change.
    regards,
    Raju

  • ALV Grid Layouts - Setting them user-specific

    Hi everybody -
    I am using the ALV grid layout for a report using function module REUSE_ALV_GRID_DISPLAY.  There are a number of fields that are not immediately viewed on screen - they are in hide mode within the field catalog.  We want to allow the users to add them / remove them from the report using an ALV variant.
    I can allow the users to add/remove with a layout variant no problem - but I am having an issue allowing them to save the variant that they are using to view the data, as user-specific.  For whatever reason, they are only allowed to save their layout variants as global - the "User-specific" box is grayed out.
    Does anyone know how I can get the "User Specific" box to be NOT grayed out within an ALV grid?
    Thanks!
    Abby

    Set the I_SAVE parameter to 'U' in your function call.
    Regards
    Rich Heilman

  • Event not triggering in ALV

    Hi All,
    I am using ALV GRID in object oriented with editing option.If user made any changes in the Grid ,then i will captured the changes by the event DATA_CHANGED and i will display the error message inside the DATA_CHANGED event method using Method ADD_PROTOCOL_ENTRY and DISPLAY_PROTOCOL(which displayed a message in popup window with the field name ,row etc.).
    The Method CHECK_CHANGED_DATA in PAI will trigger DATA_CHANGE event.It is some time triggering DATA_CHANGED and some time it is not triggering DATA_CHANGED event..Why it is not triggering DATA_CHANGED event?
    Can any one give me solution for this.....
    Thanks in Advance..

    Hi,
    i have to register an ENTER  event:
    that is
    CALL METHOD alv->register_edit_event
    EXPORTING
    i_event_id = cl_gui_alv_grid=>mc_evt_enter.
    For this also it is not triggering...

  • Disabling push button column cell on alv grid control (OOABAP)

    Hello All,
    I have a requirement where I need to add one column as pushbutton in alv grid display. I have done that and it's triggering button_click event also. The problem here is that I want the few <b>push button cells</b> of that column to be disbaled (depending on my requirement). I tried using a internal table lvc_t_styl and adding a field of same lvc_t_styl in my main internal table. This works for all other fields (e.g disbaling checkbox in alv grid and other editable fields) but not for push buttons. My exact requirement is that I want some of the <b>cells of pushbutton column to be grayed out (made inactive)</b>. Can anyone tell me how to do that. Thanks.
    Note:Helpful answers will be duly rewarded.
    null

    Hi,
    I had the same problem.
    what I did I just added the  cl_gui_alv_grid=>mc_style_button at each row of the data table instead of adding it at the field catalog level.
    Hope this solve your problem.
    Thanks,
    Harish

  • How do I find an event which is triggered on line selection for ALV grid?

    Hi,
    I'm trying to find an event which is triggered when a user selects a row in the ALV grid. I want to add my own code in to add up the total values of selected lines, but can't find any event which will trigger my method.
    I found CLICK_ROW_COL but it's protected so when I try and add a method for it:
      PROTECTED SECTION.
        METHODS:
        select_row
            FOR EVENT click_row_col OF cl_gui_alv_grid.
    I get the syntax error:
    Access to protected event "CLICK_ROW_COL" is not allowed.
    Am I using the right event? Am I implementing it correctly?
    Any help appreciated. Thanks in advance.
    Gill

    I chose to solve this by removing the line select buttons from the ALV and replacing them with a checkbox defined as a hotspot.  I then used EVENT hotspot_click FROM cl_gui_alv_grid to highlight the line and change my totals on a single click.

  • Splitter Problem - ALV Grid not refreshed when selected another item

    Hi Experts!!
    I have a container on screen 100 which has to be split into 3 areas. Left area ->tree, Right top area -alv grid and bottom also alv grid. I created the program without splitter and it was working fine. After I added this splitter, I see that in ALV grid, the data is not being refreshed. When double clicked on an item in tree struct, ALV grid (CL_SALV_TABLE) to be shown.. Firstly it's fine but when I double click on another item, it's not refreshing the data but is showing the same previous data.
    I have searched existing posts and implemented, but no luck.
    PFB my code:
    * In PBO of screen 100
      CREATE OBJECT go_cc_area1
        EXPORTING
          container_name              = 'CC_AREA1'
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          create_error                = 3
          lifetime_error              = 4
          lifetime_dynpro_dynpro_link = 5.
      IF sy-subrc <> 0.
        MESSAGE e025 WITH sy-subrc.
      ENDIF.
      CREATE OBJECT go_splitter
        EXPORTING
          parent        = go_cc_area1
          orientation   = 1              "Vertical split
          sash_position = 40
        EXCEPTIONS
          OTHERS        = 1.
      IF sy-subrc <> 0.
      ENDIF.
      go_container_tree  = go_splitter->top_left_container.
      go_container_2 = go_splitter->bottom_right_container.
      CREATE OBJECT go_splitter_2
        EXPORTING
          parent        = go_container_2
          orientation   = 0              "Horizontal split
          sash_position = 40
        EXCEPTIONS
          OTHERS        = 1.
      IF sy-subrc <> 0.
      ENDIF.
      go_cc_area2 = go_splitter_2->top_left_container.
      go_cc_area3 = go_splitter_2->bottom_right_container.
      CREATE OBJECT go_tree
        EXPORTING
          i_parent                    = go_container_tree
          i_node_selection_mode       = cl_gui_column_tree=>node_sel_mode_single
          i_item_selection            = gc_x
          i_no_html_header            = gc_x
          i_no_toolbar                = space
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          create_error                = 3
          lifetime_error              = 4
          illegal_node_selection_mode = 5
          failed                      = 6
          illegal_column_name         = 7.
        CALL METHOD go_tree->set_table_for_first_display
          EXPORTING
            i_background_id = space
            is_layout       = gs_layout
          CHANGING
            it_sort         = gt_sort
            it_outtab       = gt_tree_output
            it_fieldcatalog = gt_fieldcat_tree.
        CALL METHOD go_tree->expand_tree
          EXPORTING
            i_level = 2.
    * End - PBO 100
    *       CLASS lcl_tree_event_receiver DEFINITION
    CLASS lcl_tree_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS: handle_item_double_click
                   FOR EVENT item_double_click OF cl_gui_alv_tree_simple
                   IMPORTING fieldname
                             index_outtab
                             grouplevel.
    ENDCLASS.                    "lcl_tree_event_receiver DEFINITION
    *       CLASS lcl_tree_event_receiver IMPLEMENTATION
    CLASS lcl_tree_event_receiver IMPLEMENTATION.
      METHOD handle_item_double_click.
          IF go_alv_area2 IS BOUND.
            go_alv_area2->refresh( ).
          ENDIF.
          cl_salv_table=>factory(
            EXPORTING
              list_display   = space
              r_container    = go_cc_area2
            IMPORTING
              r_salv_table = go_alv_area2
            CHANGING
              t_table      = gt_table ).
          go_alv_area2->display( ).
      ENDMETHOD.                    "handle_item_double_click
    ENDCLASS.                    "lcl_tree_event_receiver IMPLEMENTATION
    I am facing the same problem with area 3 as well. Can somebody please help me out.
    Thanks a lot!!
    Edited by: Srinivas Kalluri on Jan 28, 2012 1:39 PM

    Hi All,
    I am still facing this problem. Can somebody please help me out?
    I created a test program wth sflight and spfli tables. Can somebody look into this and tell me where I am going wrong?
    On screen 100 i have one cust container named CC.
    When I test it, it's showing the same refresh problem. But in this test program refresh is atleast happening once.
    REPORT ztest.
    PARAMETERS: p_carrid TYPE sflight-carrid.
    CLASS lcl_tree_event_receiver DEFINITION DEFERRED.
    CONSTANTS: gc_x VALUE 'X'.
    DATA: go_cc_area1 TYPE REF TO cl_gui_custom_container,
          go_tree TYPE REF TO cl_gui_alv_tree_simple,
          go_tree_event_receiver TYPE REF TO lcl_tree_event_receiver,
          go_cc_area2 TYPE REF TO cl_gui_container,
          go_alv_area2 TYPE REF TO cl_salv_table,
          go_cc_area3 TYPE REF TO cl_gui_container,
          go_columns TYPE REF TO cl_salv_columns_table,
          go_cc_editor TYPE REF TO cl_gui_custom_container,
          go_editor TYPE REF TO cl_gui_textedit,
          go_content TYPE REF TO cl_salv_form_element,
          go_container_tree TYPE REF TO cl_gui_container,
          go_container_2 TYPE REF TO cl_gui_container,
          go_splitter TYPE REF TO cl_gui_easy_splitter_container,
          go_splitter_2 TYPE REF TO cl_gui_easy_splitter_container,
          go_cc_comp TYPE REF TO cl_gui_custom_container,
          go_alv_comp TYPE REF TO cl_salv_table.
    DATA: gt_sflight TYPE TABLE OF sflight,
          gt_data TYPE TABLE OF spfli,
          gt_fieldcat TYPE lvc_t_fcat,
          gt_sort TYPE lvc_t_sort,
          gs_sflight TYPE sflight,
          gs_layout TYPE lvc_s_layo.
    *       CLASS lcl_tree_event_receiver DEFINITION
    CLASS lcl_tree_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS: handle_item_double_click
                   FOR EVENT item_double_click OF cl_gui_alv_tree_simple
                   IMPORTING fieldname
                             index_outtab
                             grouplevel.
    ENDCLASS.                    "lcl_tree_event_receiver DEFINITION
    *       CLASS lcl_tree_event_receiver IMPLEMENTATION
    CLASS lcl_tree_event_receiver IMPLEMENTATION.
      METHOD handle_item_double_click.
        READ TABLE gt_sflight INTO gs_sflight INDEX index_outtab.
        IF sy-subrc EQ 0.
          SELECT * FROM spfli INTO TABLE gt_data WHERE connid = gs_sflight-connid.
          IF go_alv_area2 IS BOUND.
            go_alv_area2->refresh( ).
            cl_gui_cfw=>flush( ).
          ENDIF.
          cl_salv_table=>factory(
            EXPORTING
              r_container    = go_cc_area2
            IMPORTING
              r_salv_table = go_alv_area2
            CHANGING
              t_table      = gt_data ).
          go_alv_area2->display( ).
        ENDIF.
      ENDMETHOD.                    "handle_item_double_click
    ENDCLASS.                    "lcl_tree_event_receiver IMPLEMENTATION
    START-OF-SELECTION.
      CALL SCREEN 100.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'MAIN'.
    *  SET TITLEBAR 'xxx'.
      CREATE OBJECT go_cc_area1
        EXPORTING
          container_name              = 'CC'
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          create_error                = 3
          lifetime_error              = 4
          lifetime_dynpro_dynpro_link = 5.
      IF sy-subrc <> 0.
    *    MESSAGE e025 WITH sy-subrc text-e01.
      ENDIF.
      CREATE OBJECT go_splitter
        EXPORTING
          parent            = go_cc_area1
          orientation       = 1              "Vertical split
          sash_position     = 25
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
    *    MESSAGE e025 WITH sy-subrc text-e02.
      ENDIF.
      go_container_tree  = go_splitter->top_left_container.
      go_container_2 = go_splitter->bottom_right_container.
      CREATE OBJECT go_splitter_2
        EXPORTING
          parent            = go_container_2
          orientation       = 0              "Horizontal split
          sash_position     = 40
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
    *    MESSAGE e025 WITH sy-subrc text-e02.
      ENDIF.
      go_cc_area2 = go_splitter_2->top_left_container.
      CREATE OBJECT go_tree
        EXPORTING
          i_parent                    = go_container_tree
          i_node_selection_mode       = cl_gui_column_tree=>node_sel_mode_single
          i_item_selection            = gc_x
          i_no_html_header            = gc_x
          i_no_toolbar                = space
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          create_error                = 3
          lifetime_error              = 4
          illegal_node_selection_mode = 5
          failed                      = 6
          illegal_column_name         = 7.
      IF sy-subrc <> 0.
    *    MESSAGE e025 WITH sy-subrc text-e03.
      ENDIF.
      SELECT * FROM sflight INTO TABLE gt_sflight WHERE carrid EQ p_carrid.
        CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
          EXPORTING
            i_structure_name       = 'SFLIGHT'
            i_bypassing_buffer     = gc_x
          CHANGING
            ct_fieldcat            = gt_fieldcat
          EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.
        IF sy-subrc <> 0.
    *      MESSAGE e025 WITH sy-subrc text-e05.
        ENDIF.
        DATA: ls_fieldcatalog TYPE lvc_s_fcat.
        LOOP AT gt_fieldcat INTO ls_fieldcatalog.
          ls_fieldcatalog-col_opt = gc_x.
          CASE ls_fieldcatalog-fieldname.
            WHEN 'CARRID'.
              ls_fieldcatalog-no_out = gc_x.
            WHEN 'CONNID'.
              ls_fieldcatalog-no_out = gc_x.
          ENDCASE.
          MODIFY gt_fieldcat FROM ls_fieldcatalog.
          CLEAR ls_fieldcatalog.
        ENDLOOP.
        DATA: ls_sort TYPE lvc_s_sort.
        ls_sort-spos = 1.
        ls_sort-fieldname = 'CARRID'.
        ls_sort-up = gc_x.
        APPEND ls_sort TO gt_sort.
        ls_sort-spos = 2.
        ls_sort-fieldname = 'CONNID'.
        ls_sort-up = gc_x.
        APPEND ls_sort TO gt_sort.
        DATA: lt_events TYPE cntl_simple_events,
              lo_l_event TYPE cntl_simple_event.
        lo_l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
        APPEND lo_l_event TO lt_events.
        lo_l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
        APPEND lo_l_event TO lt_events.
        lo_l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
        APPEND lo_l_event TO lt_events.
        lo_l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
        APPEND lo_l_event TO lt_events.
        lo_l_event-eventid = cl_gui_column_tree=>eventid_item_double_click.
        APPEND lo_l_event TO lt_events.
        lo_l_event-eventid = cl_gui_column_tree=>eventid_button_click.
        APPEND lo_l_event TO lt_events.
        lo_l_event-eventid = cl_gui_column_tree=>eventid_node_double_click.
        APPEND lo_l_event TO lt_events.
        CALL METHOD go_tree->set_registered_events
          EXPORTING
            events                    = lt_events
          EXCEPTIONS
            cntl_error                = 1
            cntl_system_error         = 2
            illegal_event_combination = 3.
    * Set Handler
        CREATE OBJECT go_tree_event_receiver.
        SET HANDLER go_tree_event_receiver->handle_item_double_click FOR go_tree.
        CALL METHOD go_tree->set_table_for_first_display
          EXPORTING
            i_background_id = space
            is_layout       = gs_layout
          CHANGING
            it_sort         = gt_sort
            it_outtab       = gt_sflight
            it_fieldcatalog = gt_fieldcat.
        CALL METHOD go_tree->expand_tree
          EXPORTING
            i_level = 2.
        IF NOT gt_sflight[] IS INITIAL.
          CALL METHOD go_tree->set_top_node
            EXPORTING
              i_index_outtab = 0.
        ENDIF.
    * Send data to frontend.
        CALL METHOD go_tree->frontend_update.
      ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      CASE sy-ucomm.
        WHEN 'BACK'.
          SET SCREEN 0.
          LEAVE SCREEN.
        WHEN OTHERS.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    Edited by: Srinivas Kalluri on Jan 31, 2012 4:49 PM

  • How can we find out data in an editable ALV grid has been changed or not?

    Hi Experts,
    How can we find out whether a data in an editable ALV grid has been changed or not.
    I am using the
    FM -> REUSE_ALV_GRID_DISPLAY_LVC
    for ALV display.
    I have to chekc whther data has been changed or not befor saving. if changed then only i want to
    SAVE
    . I cannot use the internal table comparison method for this purpose also i am not using OOP ALV.
    So kindly sugest me an alternative.
    Thanks and Regards,
    Shahana

    Hi,
    Thanks for your answer. I already saw this post.
    See this method.
    CALL METHOD reuse_alv_grid->check_changed_data
    IMPORTING
    e_valid = lv_check.
    This will update the internal table with the edited values. Then we can go for internal table comparison.
    But my scenario will not allow me for itab comparisons.I just want to know the ALV data has been changed or not.
    Regards,
    Shahana

  • End_of_page is not triggering in ALV

    hi mates
             the code below is not triggering end-of-page event, can anyone help me. reply asap
    TABLES:VBAP.
    TYPE-POOLS:SLIS.
    DATA: BEGIN OF VBAP_TYPE OCCURS 0,
          VBELN TYPE VBAP-VBELN,
          POSNR TYPE VBAP-POSNR,
          MATKL TYPE VBAP-MATKL,
          MATNR TYPE VBAP-MATNR,
          END OF VBAP_TYPE.
    DATA:GET_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
         WA_FIELDCAT  TYPE SLIS_FIELDCAT_ALV,
         HT_EVENT    TYPE SLIS_T_EVENT,
         WA_EVENT     TYPE SLIS_ALV_EVENT,
         HT_HEADER   TYPE SLIS_T_LISTHEADER,
         WA_HEADER   TYPE SLIS_LISTHEADER.
    START-OF-SELECTION.
      PERFORM GET_DATA.
      PERFORM GET_FIELDCATALOG.
      PERFORM FIELD_EVENT.
      PERFORM FIELD_DISPLAY.
    *&      Form  get_data
          text
    FORM GET_DATA.
      SELECT VBELN
             POSNR
             MATKL
             MATNR
           FROM VBAP
           INTO TABLE VBAP_TYPE.
    ENDFORM.                    "get_data
    *&      Form  get_fieldcatalog
          text
    FORM GET_FIELDCATALOG.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-COL_POS = 1.
      WA_FIELDCAT-FIELDNAME = 'VBELN'.
      WA_FIELDCAT-SELTEXT_L = 'sales doc'.
      APPEND WA_FIELDCAT TO GET_FIELDCAT.
      CLEAR WA_FIELDCAT.
    clear wa_fieldcat.
    wa_fieldcat-col_pos = 1.
    wa_fieldcat-fieldname = 'VBELN'.
    wa_fieldcat-seltext_l = 'sales doc'.
    append wa_fieldcat to get_fieldcat.
    clear wa_fieldcat.
      WA_FIELDCAT-COL_POS = 2.
      WA_FIELDCAT-FIELDNAME = 'POSNR'.
      WA_FIELDCAT-SELTEXT_L = 'sales doc item'.
      APPEND WA_FIELDCAT TO GET_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-COL_POS = 3.
      WA_FIELDCAT-FIELDNAME = 'MATKL'.
      WA_FIELDCAT-SELTEXT_L = 'Material Group'.
      APPEND WA_FIELDCAT TO GET_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-COL_POS = 4.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-SELTEXT_L = 'Material No'.
      APPEND WA_FIELDCAT TO GET_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "get_fieldcatalog
    *&      Form  field_display
          text
    FORM FIELD_DISPLAY.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
      EXPORTING
       I_INTERFACE_CHECK              = ' '
       I_BYPASSING_BUFFER             =
       I_BUFFER_ACTIVE                = ' '
          I_CALLBACK_PROGRAM             = SY-CPROG
       I_CALLBACK_PF_STATUS_SET       = ' '
       I_CALLBACK_USER_COMMAND        = ' '
       I_STRUCTURE_NAME               =
       IS_LAYOUT                      =
          IT_FIELDCAT                    = GET_FIELDCAT[]
       IT_EXCLUDING                   =
       IT_SPECIAL_GROUPS              =
       IT_SORT                        =
       IT_FILTER                      =
       IS_SEL_HIDE                    =
       I_DEFAULT                      = 'X'
       I_SAVE                         = ' '
       IS_VARIANT                     =
          IT_EVENTS                      = HT_EVENT
       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                       = VBAP_TYPE
       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.                    "field_display
    *&      Form  field_event
          text
    FORM FIELD_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
       I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = HT_EVENT.
    WA_EVENT-NAME = SLIS_EV_TOP_OF_PAGE .
    WA_EVENT-FORM = 'TOP_OF_PAGE'.
    APPEND WA_EVENT TO HT_EVENT.
    CLEAR WA_EVENT.
      WA_EVENT-NAME = SLIS_EV_END_OF_PAGE .
      WA_EVENT-FORM = 'END_OF_PAGE'.
    APPEND WA_EVENT TO HT_EVENT.
    CLEAR WA_EVENT.
    READ TABLE ht_event INTO wa_event
                         WITH KEY name = slis_ev_top_of_page .
    EXCEPTIONS
       LIST_TYPE_WRONG       = 1
       OTHERS                = 2
    IF sy-subrc = 0.
       wa_event-form = 'TOP-OF-PAGE'.
       wa_event-form = 'END_OF_PAGE'.
       MODIFY ht_event FROM wa_event INDEX sy-tabix.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    "field_event
    *&      Form  top_of_page
          text
    FORM TOP_OF_PAGE.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = ' this is the sales document data'.
      APPEND WA_HEADER TO HT_HEADER.
      CLEAR WA_HEADER.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = HT_HEADER
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
      I_ALV_FORM               =
    ENDFORM.                    "top_of_page
    *&      Form  END_OF_Page
          text
    FORM END_OF_PAGE.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = ' this is the end of page'.
      APPEND WA_HEADER TO HT_HEADER.
      CLEAR WA_HEADER.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY       = HT_HEADER
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
      I_ALV_FORM               =
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
         it_list_commentary       = ht_header
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
      I_ALV_FORM               =
    endform.

    Hi,
    Try this code for end_of_page is not triggering in ALV
    TYPE-POOLS : slis.
    TABLES : mara,
             makt,
             marc.
    DATA : BEGIN OF itab OCCURS 0,
            matnr LIKE mara-matnr,
            maktx LIKE makt-maktx,
            werks LIKE marc-werks,
           END OF itab.
    DATA : t_fcat TYPE slis_t_fieldcat_alv,
           t_eve TYPE slis_t_event,
           st_line TYPE slis_listheader,
           t_list_top_page TYPE slis_t_listheader,
           t_list_end_page TYPE slis_t_listheader.
    DATA : t_mat LIKE mara-matnr.
    SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : mat FOR mara-matnr.
    SELECTION-SCREEN : END OF BLOCK blk1.
    INITIALIZATION.
      PERFORM build_cat USING t_fcat.
      PERFORM build_eve.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM build_header USING t_list_top_page[].
      PERFORM build_footer USING t_list_end_page[].
      PERFORM dis_data.
    *&      Form  buils_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'.
      wa_fcat-fieldname = 'MATNR'.
      wa_fcat-seltext_m = 'Material'.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'ITAB'.
      wa_fcat-fieldname = 'MAKTX'.
      wa_fcat-seltext_m = 'Material Description'.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'ITAB'.
      wa_fcat-fieldname = 'WERKS'.
      wa_fcat-seltext_m = 'Plant'.
    wa_fcat-row_pos = 2.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
    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.
      READ TABLE t_eve INTO wa_eve WITH KEY name = 'END_OF_LIST'.
      IF sy-subrc = 0.
        wa_eve-form = 'END_OF_PAGE'.
        MODIFY t_eve FROM wa_eve INDEX sy-tabix.
      ENDIF.
    ENDFORM.                    "build_eve
    *&      Form  get_data
          text
    FORM get_data.
      SELECT maramatnr maktmaktx marc~werks INTO CORRESPONDING FIELDS OF TABLE itab
      FROM mara INNER JOIN makt ON
      maramatnr = maktmatnr
      INNER JOIN marc ON
      maramatnr = marcmatnr
      WHERE mara~matnr IN mat.
    ENDFORM.                    "get_data
    *&      Form  dis_data
          text
    FORM dis_data.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = 'ZALV_PRDS'
         i_callback_top_of_page            = 'TOP_OF_PAGE'
         it_fieldcat                       = t_fcat
         i_save                            = 'A'
         it_events                         = t_eve
       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.
    ENDFORM.                    "dis_data
    *&      Form  build_header
          text
         -->TEMP_LIST          text
         -->TTYPE              text
         -->SLIS_T_LISTHEADER  text
    FORM build_header USING temp_list TYPE slis_t_listheader.
      CLEAR st_line.
      st_line-typ = 'H'.
      st_line-info = 'Material Info'.
      APPEND st_line TO temp_list.
    ENDFORM.                    "build_header
    *&      Form  build_footer
          text
         -->TEMP_LIST  text
    FORM build_footer USING temp_list TYPE slis_t_listheader.
      CLEAR st_line.
      st_line-typ = 'H'.
      st_line-info = 'Dhwani Shah'.
      APPEND st_line TO temp_list.
    ENDFORM.                    "build_header
    *&      Form  top_Of_page
          text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_list_top_page.
    ENDFORM.                    "top_Of_page
    *&      Form  end_of_page
          text
    FORM end_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_list_end_page.
    ENDFORM.                    "end_of_page
    Reward Points if usefull
    Regards
    Fareedas

  • Not gettting quantity displayed in the alv grid

    hi experts
    iam displaying vbeln, matnr, quantity, sellingprice etc for an customer using fieldcat. in alv grid.
    iam able to get all the fields other than quantity in the output.
    i have taken vbap-kwmeng, actually in the va03 it is displaying from komp.
    i have tried with the following
      wa_fieldcat-col_pos =  5.
      wa_fieldcat-fieldname = 'KWMEMG'.
      wa_fieldcat-tabname = 'IT_DISPLAY'.
    wa_fieldcat-datatype =  'QUAN'.
      wa_fieldcat-outputlen = 15.
      wa_fieldcat-seltext_m = 'QUANTITY'.
    wa_fieldcat-ref_fieldname = 'KWMENG'.
    wa_fieldcat-ref_tabname = 'VBAP'.
    wa_fieldcat-qfieldname = 'VRKME'.
    wa_fieldcat-qtabname   =  'VBAP'.
    but iam not getting the respective output.
    please help
    thanks in advance.
    maaya

    I am not sure why are you not getting :
    Just remove col_pos and see the results,and also increase output len to 18.
    <b>clear wa_fieldcat.</b>
    wa_fieldcat-col_pos = 5. -> first comment and see the results
    wa_fieldcat-fieldname = 'KWMEMG'.
    wa_fieldcat-tabname = 'IT_DISPLAY'.
    wa_fieldcat-outputlen = 18.
    wa_fieldcat-seltext_m = 'QUANTITY'.
    wa_fieldcat-seltext_s = 'QUANTITY'.
    wa_fieldcat-seltext_l = 'QUANTITY'.
    <b>append wa_fieldcat to i_fieldcat.</b>
    Always clear the wa_fieldcat.
    Thanks
    Seshu

  • ALV grid is not displaying few fields of final internal table of type DMBTR

    hello frnds,
    i am displaying 10 fields in ALV grid using field catalog.
    among them five fields are currency fields on which i doing some arithematic operations. but all these fields are not getting displayed in alv grid.
    here is my code....
    declaring final strucutre to generate report
    TYPES:BEGIN OF ty_final,
              gjahr   TYPE gjahr,       " Year
              wwert   TYPE wwert_d,     " Traslation date
              bukrs   TYPE bukrs,       " company code
              hkont   TYPE hkont,       " General ledger account
              txt20   TYPE txt20_skat,  " Account name
              belnr   TYPE belnr_d,     " Purchase order number
              shkzg   TYPE shkzg,       " Dt/Cr indicator
              dmbtr1   TYPE dmbtr,       " Ammount in local currency
              v_alc   TYPE dmbtr,       " Ammount in local currency
              wrbtr   TYPE wrbtr,       " Ammount in foreign currency
              ebeln   TYPE ebeln,       " Purchase order number
              ebelp   TYPE ebelp,       " Item number
              matnr   TYPE matnr,       " Material number
              menge   TYPE menge_d,     " Qunatity
              meins   TYPE meins,       " Unit of measure
              stprs   TYPE stprs,       " Std material master
              v_iv    TYPE dmbtr,       " Invoice value
              pswsl   TYPE pswsl,       " Currency
              v_erc   TYPE dmbtr,       " Exchange rate calculated
              v_op    TYPE dmbtr,       " Order price
              v_uos   TYPE dmbtr,       " Unit order to stock
              v_io    TYPE dmbtr,       " Invoice to order
              v_uv    TYPE dmbtr,       " Unit value
              v_t     TYPE dmbtr,       " Total
              v_d     TYPE dmbtr,       " Differecne
              netpr   TYPE bprei,       " Net price in purchasing document
              v_total TYPE dmbtr,       " Total
              v_os    TYPE dmbtr,       " Order to stock
              v_ito   TYPE dmbtr,       " Invoice to order
              saknr   TYPE saknr,       " G/L account number
           END OF ty_final.
    FORM move_data.
      IF NOT i_bseg[] IS INITIAL.
        LOOP AT i_bseg INTO wa_bseg.
          wa_final-gjahr  = wa_bseg-gjahr.
          wa_final-bukrs  = wa_bseg-bukrs.
          wa_final-hkont  = wa_bseg-hkont.
          wa_final-belnr  = wa_bseg-belnr.
          wa_final-shkzg  = wa_bseg-shkzg.
          wa_final-wrbtr  = wa_bseg-wrbtr.
          wa_final-ebeln  = wa_bseg-ebeln.
          wa_final-ebelp  = wa_bseg-ebelp.
          wa_final-matnr  = wa_bseg-matnr.
          wa_final-menge  = wa_bseg-menge.
          wa_final-meins  = wa_bseg-meins.
          wa_final-pswsl  = wa_bseg-pswsl.
          wa_final-dmbtr1  = wa_bseg-dmbtr.
          wa_final-saknr  = wa_bseg-saknr.
          wa_final-v_total = wa_bseg-dmbtr.
          READ TABLE i_bkpf INTO wa_bkpf WITH KEY bukrs = wa_bseg-bukrs.
          IF sy-subrc = 0.
            wa_final-wwert = wa_bkpf-wwert.
          ENDIF.
         CLEAR wa_bkpf.
          READ TABLE i_mbew INTO wa_mbew WITH KEY matnr = wa_bseg-matnr.
          IF sy-subrc = 0.
            wa_final-stprs = wa_mbew-stprs.
          ENDIF.
         CLEAR wa_mbew.
          READ TABLE i_ekpo INTO wa_ekpo WITH KEY ebeln = wa_bseg-ebeln.
          IF sy-subrc = 0.
            wa_final-netpr = wa_ekpo-netpr.
          ENDIF.
         CLEAR wa_ekpo.
          READ TABLE i_skat INTO wa_skat WITH KEY saknr = wa_bseg-saknr.
          IF sy-subrc = 0.
            wa_final-txt20 = wa_skat-txt20.
          ENDIF.
    calculating output values
          IF wa_bseg-shkzg = 'H'.
            wa_final-v_alc = -1 * wa_bseg-dmbtr.
          ELSEIF wa_bseg-shkzg = 'S'.
            wa_final-v_alc = 1 * wa_bseg-dmbtr.
          ENDIF.
         DATA : l_c_v_alc TYPE p DECIMALS 2,
         l_c_v_iv TYPE p DECIMALS 2.
         l_c_v_alc = wa_final-v_alc.
          IF wa_bseg-menge NE 0.
            wa_final-v_iv = wa_bseg-dmbtr / wa_bseg-menge.
          ENDIF.
          IF wa_bseg-dmbtr NE 0.
            wa_final-v_erc  = wa_bseg-wrbtr   / wa_final-dmbtr1.
          ENDIF.
          IF wa_final-v_erc NE 0.
            wa_final-v_op   = wa_ekpo-netpr   / wa_final-v_erc.
          ENDIF.
          wa_final-v_uos  = wa_mbew-stprs   - wa_final-v_op.
          wa_final-v_io   = wa_final-v_iv   + wa_final-v_uos.
          wa_final-v_uv   = wa_final-v_uos  + wa_final-v_io.
          wa_final-v_t    = wa_final-v_uv   + wa_bseg-menge.
          wa_final-v_d    = wa_final-v_t    - wa_final-v_alc.
          wa_final-v_os   = wa_final-v_uos  * wa_bseg-menge.
          wa_final-v_ito  = wa_final-v_io   * wa_bseg-menge.
          CLEAR wa_bseg.
          APPEND wa_final TO i_final.
          CLEAR wa_final.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    "data_retrieval
    *&      Form  build_fieldcat
          text
    -->  p1        text
    <--  p2        text
    FORM build_fieldcat.
      CLEAR wa_fieldcat.
    *  TYPES : v_alc TYPE dmbtr. "curr. " decimal 2.
    DATA: l_c_v_alc TYPE p DECIMALS 2,
    l_c_v_iv TYPE p DECIMALS 2 .
    l_c_v_alc = v_alc.
    l_c_v_iv = v_iv.
    Constant Declarations.
      CONSTANTS:
                l_c_gjahr(5)   TYPE c VALUE 'GJAHR',      " Year
                l_c_wwert(5)   TYPE c VALUE 'WWERT',      " Traslation date
                l_c_bukrs(5)   TYPE c VALUE 'BUKRS',      " company code
                l_c_hkont(5)   TYPE c VALUE 'HKONT',      " General ledger account
                l_c_txt20(10)  TYPE c VALUE 'TXT20',      " Account name
                l_c_belnr(5)   TYPE c VALUE 'BELNR',      " Doc number
                l_c_shkzg(5)   TYPE c VALUE 'SHKZG',      " Dt/Cr indicator
                l_c_dmbtr(5)   TYPE c VALUE 'DMBTR1',      " Ammount in local currency
               " l_c_v_alc      TYPE c VALUE 'V_ALC',      " Ammount in local currency
                l_c_wrbtr(5)   TYPE c VALUE 'WRBTR',      " Ammount in foreign currency
                l_c_ebeln(5)   TYPE c VALUE 'EBELN',      " Purchase order number
                l_c_ebelp(5)   TYPE c VALUE 'EBELP',      " Item number
                l_c_matnr(5)   TYPE c VALUE 'MATNR',      " Material number
                l_c_menge(7)   TYPE c VALUE 'MENGE',      " Qunatity
                l_c_meins(5)   TYPE c VALUE 'MEINS',      " Unit of measure
                l_c_stprs(5)   TYPE c VALUE 'STPRS',      " Std material master
               " l_c_v_iv(4)    TYPE c VALUE 'V_IV',           " Invoice value
                l_c_pswsl(5)   TYPE c VALUE 'PSWSL',      " Currency
                l_c_v_erc(5)   TYPE c VALUE 'V_ERC',      " Exchange rate calculated
                l_c_v_op(4)    TYPE c VALUE 'V_OP',       " Order price
                l_c_v_uos(5)   TYPE c VALUE 'V_UOS',      " Unit order to stock
                l_c_v_io(4)    TYPE c VALUE 'V_IO',       " Invoice to order
                l_c_v_uv(4)    TYPE c VALUE 'V_UV',       " Unit value
                l_c_v_t(3)     TYPE c VALUE 'V_T',        " Total
                l_c_v_d(3)     TYPE c VALUE 'V_D',        " Differecne
                l_c_netpr(5)   TYPE c VALUE 'NETPR',      " Net price in purchasing document
                l_c_v_total(7) TYPE c VALUE 'V_TOTAL',    " Total
                l_c_v_os(4)    TYPE c VALUE 'V_OS',      " Order to stock
                l_c_v_ito(5)   TYPE c VALUE 'V_ITO',      " Invoice to order
                l_c_saknr(5)   TYPE c VALUE 'SAKNR',      " G/L account number
                l_c_i_final(7) TYPE c VALUE 'I_FINAL'.    " Final internal table
    Fieldcat for fiscal year
      wa_fieldcat-col_pos   =  1.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_gjahr.
      wa_fieldcat-seltext_m = text-007.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Translation date
      wa_fieldcat-col_pos   =  2.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_wwert.
      wa_fieldcat-seltext_m = text-008.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Company code
      wa_fieldcat-col_pos   =  3.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_bukrs.
      wa_fieldcat-seltext_m = text-009.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for General ledger account
      wa_fieldcat-col_pos   =  4.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_hkont.
      wa_fieldcat-seltext_m = text-010.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Account name
      wa_fieldcat-col_pos   =  5.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_txt20.
      wa_fieldcat-seltext_m = text-011.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Doc number
      wa_fieldcat-col_pos   =  6.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_belnr.
      wa_fieldcat-seltext_m = text-012.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Dt/Cr indicator
      wa_fieldcat-col_pos   =  7.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_shkzg.
      wa_fieldcat-seltext_m = text-013.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Ammount in local currency
      wa_fieldcat-col_pos   =  8.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = 'DMBTR1'.
      wa_fieldcat-seltext_m = text-014.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Ammount in local currency
      wa_fieldcat-col_pos   =  9.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = 'V_ALC'.
      wa_fieldcat-seltext_m = text-015.
      wa_fieldcat-ref_fieldname = 'DMBTR'.
    wa_fieldcat-no_sign   = 'X'.
    wa_fieldcat-do_sum    =  c_x.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Ammount in foreign currency
      wa_fieldcat-col_pos   =  10.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_wrbtr.
      wa_fieldcat-seltext_m = text-016.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Purchse order number
      wa_fieldcat-col_pos   =  11.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_ebeln.
      wa_fieldcat-seltext_m = text-017.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Item No
      wa_fieldcat-col_pos   =  12.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_ebelp.
      wa_fieldcat-seltext_m = text-018.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Material number
      wa_fieldcat-col_pos   =  13.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_matnr.
      wa_fieldcat-seltext_m = text-019.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Qunatity
      wa_fieldcat-col_pos   =  14.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_menge.
      wa_fieldcat-seltext_m = text-020.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Unit of measure
      wa_fieldcat-col_pos   =  15.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_meins.
      wa_fieldcat-seltext_m = text-021.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Std material master
      wa_fieldcat-col_pos   =  16.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_stprs.
      wa_fieldcat-seltext_m = text-022.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Invoice value,
      wa_fieldcat-col_pos   =  17.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = 'V_IV'.
      wa_fieldcat-seltext_m = text-023.
      wa_fieldcat-ref_fieldname = 'DMBTR'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Currency
      wa_fieldcat-col_pos   =  18.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_pswsl.
      wa_fieldcat-seltext_m = text-024.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Exchange rate calculated
      wa_fieldcat-col_pos   =  19.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = 'V_ERC'.
      wa_fieldcat-seltext_m = text-025.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Order price
      wa_fieldcat-col_pos   =  20.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_op.
      wa_fieldcat-seltext_m = text-026.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Unit order to stock
      wa_fieldcat-col_pos   =  21.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_uos.
      wa_fieldcat-seltext_m = text-027.
      wa_fieldcat-do_sum    = c_x.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Invoice to order
      wa_fieldcat-col_pos   =  22.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_io.
      wa_fieldcat-seltext_m = text-028.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Unit value
      wa_fieldcat-col_pos   =  23.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_uv.
      wa_fieldcat-seltext_m = text-029.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Total
      wa_fieldcat-col_pos   =  24.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_t.
      wa_fieldcat-seltext_m = text-030.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Difference
      wa_fieldcat-col_pos   =  25.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_d.
      wa_fieldcat-seltext_m = text-031.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Net Price in Purchasing Document
      wa_fieldcat-col_pos   =  26.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_netpr.
      wa_fieldcat-seltext_m = text-032.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Total
      wa_fieldcat-col_pos   =  27.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_total.
      wa_fieldcat-seltext_m = text-033.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Order to stock
      wa_fieldcat-col_pos   =  28.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_os.
      wa_fieldcat-seltext_m = text-034.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    Fieldcat for Invoice to order
      wa_fieldcat-col_pos   =  29.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_v_ito.
      wa_fieldcat-seltext_m = text-035.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    fieldcat for invoice to order
      wa_fieldcat-col_pos   =  30.
      wa_fieldcat-tabname   = l_c_i_final.
      wa_fieldcat-fieldname = l_c_saknr.
      wa_fieldcat-seltext_m = text-035.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
    ENDFORM.                    "build_fieldcat

    Hi romanch,
    defining the field catalog you must reference all currency fields to the respective currency key field (type CUKY).
    <alv_fieldcat>-cfieldname         = 'HWAER'.
    This is sample for alv output of a currency field. The alv structure has a field HWAER which carries the currency key, e.g. USD or so.
    Obviously you do not provide a cutrrency key for your values. If they are initial (zero), ALV will not display them as 0,00 but leave the field empty if the reference too currency key is not established.
    If you define a DDIC structure for the ALV output this refernce is enforced. You can pass the DDIC structure name to the ALV and don not have to create the field catalog manually.
    Regards,
    Clemens

Maybe you are looking for

  • I accidently unplugged my iPod touch midst a sync, now it won't sync anything to it. How do I fix this problem?

    I was moving my laptop while the iPod was plugged in and I accidently pulled on the cord halfway out of the iPod's plug. I pushed it back in but all of my music wsa deleted and even after trying to restore the iPod to factory settings I cannot get an

  • Parameterized ArrayList in 1.5 but not in 1.4

    I've been doing a lot of reading on the discussion about JDK 1.5 and JDK 1.4 here. I think I've dug myself into a hole that will be very hard to get out of. And yes, it's my fault, but this is my first time developing a real J2EE application... sigh.

  • USB audio to USB audio

    I have audio hardware that does audio I/O with the Mac through a USB connection. I have another piece of hardware that does audio I/O with the Mac through a USB connection. I would like to route the audio out from hardware A to audio in of hardware B

  • Can't limit the number of simultaneous sessions per user

    Hi, I am using Cisco ACS 4.0 as a radius server that authenticate users for Internet access. Microsoft ISA 2004 is used as Radius client. When users tries to connect to Internet, the ISA Server forwards requests to Radius server (Cisco ACS) for authe

  • Wrong cancellation date seen in the order

    Hi, Today i.e 10th July 2011, Sunday evening at around 5.45 pm I called up the line cancellation number 0800 800 030 and requested that my landline be cancelled on 18th July. I was informed that generally two weeks notice is required and hence the li