Problem in placing checkboxes in output in grid display

hi experts,
I not getting checkboxes when i am using the concept of dynamic internal table and oops concept.and i am not getting how to pass data from dynamic internal table to standard internal table and i have searched in forums i got some solutions but i tried out with those solution but i havent got the output with checkboxes. so i am pasting the below code.so kindly help me in this regard.
the functionality of below code is to copy tables across clients.for this i have created two containers in same layout i.e.one for source client details and other for target client details.
TYPE-POOLS *
TYPE-POOLS: slis.
*-- Tables Declaration
TABLES:  dd02l, t000.
*-- Constants Declaration
CONSTANTS: lc_z   TYPE char1  VALUE 'Z',
           lc_y   TYPE char1  VALUE 'Y'.
*--Internal table and Work Area Declaration
DATA: lines LIKE sy-dbcnt VALUE 0.
DATA: icursor TYPE cursor.
*DATA: icursor1 TYPE cursor.
DATA: lv_count TYPE i.
DATA: lv_table_var1  TYPE char1.
DATA: lv_ans TYPE char1.
DATA : gd_tabname  TYPE tabname.
*field catalog for source client
DATA: c_cont1 TYPE REF TO cl_gui_custom_container,
c_alv1 TYPE REF TO cl_gui_alv_grid,
it_fieldcat1 TYPE lvc_t_fcat ,
ty_fieldcat1 TYPE lvc_s_fcat ,
struc_desc1   TYPE REF TO cl_abap_structdescr,
ls_fieldcatalogue1 TYPE slis_fieldcat_alv,
lt_fieldcatalogue1 TYPE slis_t_fieldcat_alv,
l_structure1   TYPE REF TO data,
l_table1    TYPE REF TO data.
check boxes for source client.
for check boxes.
class lcl_event_receiver definition deferred.  "for event handling
DATA: ok_code LIKE sy-ucomm,
      save_ok LIKE sy-ucomm,
g_event_receiver TYPE REF TO lcl_event_receiver,
gs_layout TYPE lvc_s_layo,
      g_max TYPE i VALUE 100.
types: begin of gs_outtab.
types: checkbox type c,                "field for checkbox
t_name TYPE tabname,
t_ref TYPE REF TO data.
*include structure itab.
types: celltab type lvc_t_styl.        "field to switch editability
types: end of gs_outtab.
data: gt_outtab type gs_outtab occurs 0 with header line,
wa type gs_outtab.
LOCAL CLASSES
This local class only handles event DOUBLE_CLICK.
Wenn the user double clicks on a checkbox cell the status of
this cell is switched from editable to not editable and vice versa.
class lcl_event_receiver definition.
public section.
methods: catch_doubleclick
         for event double_click of cl_gui_alv_grid
         importing
            e_column
            es_row_no
            sender.
endclass.
class lcl_event_receiver implementation.
method catch_doubleclick.
  data: ls_outtab type gs_outtab,
         ls_celltab type lvc_s_styl.
           if e_column-fieldname ne 'CHECKBOX'.
    exit.
  endif.
  read table gt_outtab into ls_outtab index es_row_no-row_id.
The loop is only needed if there are other columns that
use checkboxes. At this point the loop could be
replaced by a READ of the first line of CELLTAB.
      loop at ls_outtab-celltab into ls_celltab.
        if ls_celltab-fieldname eq 'CHECKBOX'.
§B4.Switch the style to dis- or enable a cell for input
         if ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
          ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
         else.
          ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
         endif.
         modify ls_outtab-celltab from ls_celltab.
        endif.
      endloop.
      modify gt_outtab from ls_outtab index es_row_no-row_id.
    call method sender->refresh_table_display.
endmethod.
endclass.
*field catalog for target client
DATA: c_cont2 TYPE REF TO cl_gui_custom_container,
c_alv2 TYPE REF TO cl_gui_alv_grid,
it_fieldcat2 TYPE lvc_t_fcat ,
ty_fieldcat2 TYPE lvc_s_fcat ,
struc_desc2   TYPE REF TO cl_abap_structdescr,
ls_fieldcatalogue2 TYPE slis_fieldcat_alv,
lt_fieldcatalogue2 TYPE slis_t_fieldcat_alv,
l_structure2   TYPE REF TO data,
l_table2    TYPE REF TO data.
*for source client
TYPES: BEGIN OF itab,
        t_name TYPE tabname,
        t_ref TYPE REF TO data,
END OF itab.
*for target client
TYPES: BEGIN OF itab1,
         t_name1 TYPE tabname,
         t_ref1 TYPE REF TO data,
END OF itab1.
*-- Field Symbol declaration for Dynamic Internal Table for source client
FIELD-SYMBOLS:  TYPE ANY.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_table    LIKE dd02l-tabname,
            p_mdt_fm LIKE t000-mandt DEFAULT sy-mandt,
            p_mdt_to LIKE t000-mandt DEFAULT '910'.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON p_table.
  lv_table_var1  = p_table+0(1).
*-- Validation for Standard tables
  IF ( lv_table_var1 NE lc_z ) AND ( lv_table_var1 NE lc_y ).
    MESSAGE e001(00)  WITH text-002.
  ENDIF.
*-- Start of Selection
START-OF-SELECTION.
for source client----
  DATA itab2 TYPE itab.
  DATA t_ref1 TYPE REF TO data.
  itab2-t_name = p_table.
for target client----
  DATA itab3 TYPE itab1.
  DATA t_ref2 TYPE REF TO data.
  itab3-t_name1 = p_table.
*-- Create Dynamic Internal table for source client
  CREATE DATA itab2-t_ref TYPE TABLE OF (itab2-t_name) .
  ASSIGN itab2-t_ref->* TO  0.
        CLOSE CURSOR icursor.
        EXIT.
      ENDIF.
*-- Close the cursor
      CALL FUNCTION 'DB_COMMIT'.
    ENDDO.
ENDIF.
  CALL SCREEN 3000.
*&      Module  STATUS_3000  OUTPUT
      text
MODULE status_3000 OUTPUT.
  SET PF-STATUS 'ZTESTMENU'.
SET TITLEBAR 'xxx'.
For Source client
*for check boxes.
if c_cont1 is initial.
    perform create_and_init_alv.
  endif.
IF c_alv2 IS INITIAL.
    CREATE OBJECT c_cont2
      EXPORTING
        container_name              = 'CONTAINER_TARGET'.
    IF sy-subrc = 0.
      CREATE OBJECT c_alv2
        EXPORTING
          i_parent          = c_cont2.
    ENDIF.
    IF sy-subrc EQ 0.
      PERFORM field_cat2.
    ENDIF.
    CALL METHOD c_alv2->set_table_for_first_display
EXPORTING
   i_buffer_active               =
   i_bypassing_buffer            =
   i_consistency_check           =
   i_structure_name              =
   is_variant                    =
   i_save                        =
   i_default                     = 'x'
   is_layout                     =
   is_print                      =
   it_special_groups             =
   it_toolbar_excluding          =
   it_hyperlink                  =
   it_alv_graphics               =
   it_except_qinfo               =
   ir_salv_adapter               =
      CHANGING
        it_outtab                     =
        it_fieldcatalog               = it_fieldcat2
   it_sort                       =
   it_filter                     =
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.
  ENDIF.
ENDMODULE.                 " STATUS_3000  OUTPUT
*&      Module  USER_COMMAND_3000  INPUT
      text
MODULE user_command_3000 INPUT.
save_ok = ok_code.
  clear ok_code.
  case save_ok.
    WHEN 'BACK'.
      LEAVE PROGRAM.
       when 'EXIT'.
     perform exit_program.
    when 'SELECT'.
      perform select_all_entries changing gt_outtab[].
    when 'DESELECT'.
      perform deselect_all_entries changing gt_outtab[].
    when 'RESET'.
      perform reset_selected_entries changing gt_outtab[].
   when 'SWITCH'.
     perform switch_activation changing gt_outtab[].
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_3000  INPUT
*&      Form  field_cat1
      text
-->  p1        text
<--  p2        text
FORM field_cat1 .
Dynamic creation of a structure
  CREATE DATA l_structure1 TYPE (p_table).
  ASSIGN l_structure1->* TO .
Fields Structure
  struc_desc1 ?= cl_abap_typedescr=>describe_by_data( .
  Build Fieldcatalog
    ty_fieldcat1-checkbox = 'X'.
    ty_fieldcat1-fieldname = -name.
    ty_fieldcat1-ref_table = p_table.
    APPEND ty_fieldcat1 TO it_fieldcat1.
  Build Fieldcatalog
    ls_fieldcatalogue1-fieldname = create_dynamic_table
    EXPORTING
   i_style_table             =
      it_fieldcatalog           = it_fieldcat1
   i_length_in_byte          =
    IMPORTING
      ep_table                  = l_table1
   e_style_fname             =
EXCEPTIONS
   generate_subpool_dir_full = 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.
  ASSIGN l_table1->* TO  = gt_outtab[].
Read data from the table selected.
  SELECT * FROM (p_table)
     CLIENT SPECIFIED
     INTO CORRESPONDING FIELDS OF TABLE  TO wa.
  INSERT wa into table  gt_outtab.
ENDLOOP.
ENDFORM.                    " field_cat1
*&      Form  field_cat2
      text
-->  p1        text
<--  p2        text
FORM field_cat2 .
  CREATE DATA l_structure2 TYPE (p_table).
  ASSIGN l_structure2->* TO .
Fields Structure
  struc_desc2 ?= cl_abap_typedescr=>describe_by_data( .
  Build Fieldcatalog
    ty_fieldcat2-fieldname = -name.
    ty_fieldcat2-ref_table = p_table.
    APPEND ty_fieldcat2 TO it_fieldcat2.
  Build Fieldcatalog
    ls_fieldcatalogue2-fieldname = create_dynamic_table
    EXPORTING
   i_style_table             =
      it_fieldcatalog           = it_fieldcat2
   i_length_in_byte          =
    IMPORTING
      ep_table                  = l_table2
   e_style_fname             =
EXCEPTIONS
   generate_subpool_dir_full = 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.
  ASSIGN l_table2->* TO .
Read data from the table selected.
  SELECT * FROM (p_table) CLIENT SPECIFIED
     INTO CORRESPONDING FIELDS OF TABLE
               WHERE mandt =  p_mdt_to.
ENDFORM.                    " field_cat2
*&      Form  create_and_init_alv
      text
-->  p1        text
<--  p2        text
form create_and_init_alv .
data: lt_exclude type ui_functions.
  create object c_cont1
         exporting container_name = 'CONTAINER_SOURCE'.
  create object c_alv1
         exporting i_parent = c_cont1.
PERFORM field_cat1.
perform exclude_tb_functions changing lt_exclude.
perform build_data.
gs_layout-stylefname = 'CELLTAB'.
  call method c_alv1->set_table_for_first_display
       exporting is_layout             = gs_layout
                 it_toolbar_excluding  = lt_exclude
       changing  it_fieldcatalog       = it_fieldcat1
                 it_outtab             = gt_outtab[].
  create object g_event_receiver.
  set handler g_event_receiver->catch_doubleclick for c_alv1.
Set editable cells to ready for input initially
  call method c_alv1->set_ready_for_input
   exporting
    i_ready_for_input = 1.
endform.                    " create_and_init_alv
*&      Form  exclude_tb_functions
      text
     <--P_LT_EXCLUDE  text
form exclude_tb_functions changing pt_exclude type ui_functions.
  data ls_exclude type ui_func.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
  append ls_exclude to pt_exclude.
endform.                    " exclude_tb_functions
*&      Form  build_data
      text
-->  p1        text
<--  p2        text
form build_data .
data:ls_celltab type lvc_s_styl,
        lt_celltab type lvc_t_styl,
        l_index type i.
*-- get the number of entries in table
  SELECT COUNT(*) FROM dd03l INTO lv_count
                            WHERE tabname   =  p_table
                              AND fieldname = 'MANDT'.
Check MANDT field the the table, if not exists through an error message
  IF lv_count = 0.
    MESSAGE i000(8i) WITH text-001 space space.
    EXIT.
  ELSE.
*-- Delete the Table Entries in the target system
    DELETE FROM (p_table) CLIENT SPECIFIED
          WHERE mandt = p_mdt_to.
    COMMIT WORK.
*-- Open cursor
    OPEN CURSOR WITH HOLD icursor FOR
      SELECT * FROM (p_table) CLIENT SPECIFIED
              WHERE mandt = p_mdt_fm.
    IF sy-subrc .
   move-corresponding <tab1> to gt_outtab.
  if gt_outtab-connid eq '400'.
    gt_outtab-checkbox = 'X'.
  endif.
   append gt_outtab.
endloop.
ls_celltab-fieldname = 'CHECKBOX'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
loop at gt_outtab.
   l_index = sy-tabix.
   refresh lt_celltab.
   ls_celltab-fieldname = 'CHECKBOX'.
   ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
   insert ls_celltab into table lt_celltab.
   insert lines of lt_celltab into table gt_outtab-celltab.
   modify gt_outtab index l_index.
endloop.
endform.                    " build_data
*&      Form  select_all_entries
      text
     <--P_GT_OUTTAB  text
form select_all_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c,
        l_locked type c.
*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,
      you must check the input cells.
If all entries are ok, ALV transferes new values to the output
table which you then can modify.
  call method c_alv1->check_changed_data
              importing
                 e_valid = l_valid.
  if l_valid eq 'X'.
    loop at pt_outtab into ls_outtab.
      perform check_lock using    ls_outtab
                         changing l_locked.
      if l_locked is initial
         and not ls_outtab-checkbox eq '-'.
        ls_outtab-checkbox = 'X'.
      endif.
      modify pt_outtab from ls_outtab.
    endloop.
    call method c_alv1->refresh_table_display.
  endif.
endform.                               " select_all_entries
*&      Form  deselect_all_entries
      text
     <--P_GT_OUTTAB[]  text
form deselect_all_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c,
        l_locked type c.
*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,
      you must check the input cells.
If all entries are ok, ALV transferes new values to the output
table which you then can modify.
  call method c_alv1->check_changed_data
              importing
                 e_valid = l_valid.
  if l_valid eq 'X'.
    loop at pt_outtab into ls_outtab.
      perform check_lock using    ls_outtab
                       changing l_locked.
      if l_locked is initial
         and not ls_outtab-checkbox eq '-'.
        ls_outtab-checkbox = ' '.
      endif.
      modify pt_outtab from ls_outtab.
    endloop.
    call method c_alv1->refresh_table_display.
  endif.
endform.                               " deselect_all_entries
*&      Form  reset_selected_entries
      text
     <--P_GT_OUTTAB[]  text
form reset_selected_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c.
*§A4b. Before you set, (b)reset or evaluate checkboxes,
     you must check the input cells.
If all entries are ok, ALV transferes new values to the output
table which you then can modify.
  call method c_alv1->check_changed_data
              importing
                 e_valid = l_valid.
  if l_valid eq 'X'.
    loop at pt_outtab into ls_outtab.
      if     not ls_outtab-checkbox is initial
         and not ls_outtab-checkbox eq '-'.
        clear ls_outtab.
        modify pt_outtab from ls_outtab.
      endif.
    endloop.
    call method c_alv1->refresh_table_display.
  endif.
endform.                               " reset_selected_entries
*&      Form  check_lock
      text
     -->P_LS_OUTTAB  text
     <--P_L_LOCKED  text
form check_lock using    ps_outtab type gs_outtab
                changing p_locked.
  data ls_celltab type lvc_s_styl.
  loop at ps_outtab-celltab into ls_celltab.
    if ls_celltab-fieldname = 'CHECKBOX'.
      if ls_celltab-style eq cl_gui_alv_grid=>mc_style_disabled.
        p_locked = 'X'.
      else.
        p_locked = space.
      endif.
    endif.
  endloop.
endform.                               " check_lock
and when i am running this code its going for runtime.i know the cause also as the data from dynamic internal table is not properly moved to standard internal.but i am not getting how to do this.please can u help out in this regard with code.
thank u.
soham

hi experts,
I not getting checkboxes when i am using the concept of dynamic internal table and oops concept.and i am not getting how to pass data from dynamic internal table to standard internal table and i have searched in forums i got some solutions but i tried out with those solution but i havent got the output with checkboxes. so i am pasting the below code.so kindly help me in this regard.
the functionality of below code is to copy tables across clients.for this i have created two containers in same layout i.e.one for source client details and other for target client details.
TYPE-POOLS *
TYPE-POOLS: slis.
*-- Tables Declaration
TABLES:  dd02l, t000.
*-- Constants Declaration
CONSTANTS: lc_z   TYPE char1  VALUE 'Z',
           lc_y   TYPE char1  VALUE 'Y'.
*--Internal table and Work Area Declaration
DATA: lines LIKE sy-dbcnt VALUE 0.
DATA: icursor TYPE cursor.
*DATA: icursor1 TYPE cursor.
DATA: lv_count TYPE i.
DATA: lv_table_var1  TYPE char1.
DATA: lv_ans TYPE char1.
DATA : gd_tabname  TYPE tabname.
*field catalog for source client
DATA: c_cont1 TYPE REF TO cl_gui_custom_container,
c_alv1 TYPE REF TO cl_gui_alv_grid,
it_fieldcat1 TYPE lvc_t_fcat ,
ty_fieldcat1 TYPE lvc_s_fcat ,
struc_desc1   TYPE REF TO cl_abap_structdescr,
ls_fieldcatalogue1 TYPE slis_fieldcat_alv,
lt_fieldcatalogue1 TYPE slis_t_fieldcat_alv,
l_structure1   TYPE REF TO data,
l_table1    TYPE REF TO data.
check boxes for source client.
for check boxes.
class lcl_event_receiver definition deferred.  "for event handling
DATA: ok_code LIKE sy-ucomm,
      save_ok LIKE sy-ucomm,
g_event_receiver TYPE REF TO lcl_event_receiver,
gs_layout TYPE lvc_s_layo,
      g_max TYPE i VALUE 100.
types: begin of gs_outtab.
types: checkbox type c,                "field for checkbox
t_name TYPE tabname,
t_ref TYPE REF TO data.
*include structure itab.
types: celltab type lvc_t_styl.        "field to switch editability
types: end of gs_outtab.
data: gt_outtab type gs_outtab occurs 0 with header line,
wa type gs_outtab.
LOCAL CLASSES
This local class only handles event DOUBLE_CLICK.
Wenn the user double clicks on a checkbox cell the status of
this cell is switched from editable to not editable and vice versa.
class lcl_event_receiver definition.
public section.
methods: catch_doubleclick
         for event double_click of cl_gui_alv_grid
         importing
            e_column
            es_row_no
            sender.
endclass.
class lcl_event_receiver implementation.
method catch_doubleclick.
  data: ls_outtab type gs_outtab,
         ls_celltab type lvc_s_styl.
           if e_column-fieldname ne 'CHECKBOX'.
    exit.
  endif.
  read table gt_outtab into ls_outtab index es_row_no-row_id.
The loop is only needed if there are other columns that
use checkboxes. At this point the loop could be
replaced by a READ of the first line of CELLTAB.
      loop at ls_outtab-celltab into ls_celltab.
        if ls_celltab-fieldname eq 'CHECKBOX'.
§B4.Switch the style to dis- or enable a cell for input
         if ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
          ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
         else.
          ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
         endif.
         modify ls_outtab-celltab from ls_celltab.
        endif.
      endloop.
      modify gt_outtab from ls_outtab index es_row_no-row_id.
    call method sender->refresh_table_display.
endmethod.
endclass.
*field catalog for target client
DATA: c_cont2 TYPE REF TO cl_gui_custom_container,
c_alv2 TYPE REF TO cl_gui_alv_grid,
it_fieldcat2 TYPE lvc_t_fcat ,
ty_fieldcat2 TYPE lvc_s_fcat ,
struc_desc2   TYPE REF TO cl_abap_structdescr,
ls_fieldcatalogue2 TYPE slis_fieldcat_alv,
lt_fieldcatalogue2 TYPE slis_t_fieldcat_alv,
l_structure2   TYPE REF TO data,
l_table2    TYPE REF TO data.
*for source client
TYPES: BEGIN OF itab,
        t_name TYPE tabname,
        t_ref TYPE REF TO data,
END OF itab.
*for target client
TYPES: BEGIN OF itab1,
         t_name1 TYPE tabname,
         t_ref1 TYPE REF TO data,
END OF itab1.
*-- Field Symbol declaration for Dynamic Internal Table for source client
FIELD-SYMBOLS:  TYPE ANY.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_table    LIKE dd02l-tabname,
            p_mdt_fm LIKE t000-mandt DEFAULT sy-mandt,
            p_mdt_to LIKE t000-mandt DEFAULT '910'.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON p_table.
  lv_table_var1  = p_table+0(1).
*-- Validation for Standard tables
  IF ( lv_table_var1 NE lc_z ) AND ( lv_table_var1 NE lc_y ).
    MESSAGE e001(00)  WITH text-002.
  ENDIF.
*-- Start of Selection
START-OF-SELECTION.
for source client----
  DATA itab2 TYPE itab.
  DATA t_ref1 TYPE REF TO data.
  itab2-t_name = p_table.
for target client----
  DATA itab3 TYPE itab1.
  DATA t_ref2 TYPE REF TO data.
  itab3-t_name1 = p_table.
*-- Create Dynamic Internal table for source client
  CREATE DATA itab2-t_ref TYPE TABLE OF (itab2-t_name) .
  ASSIGN itab2-t_ref->* TO  0.
        CLOSE CURSOR icursor.
        EXIT.
      ENDIF.
*-- Close the cursor
      CALL FUNCTION 'DB_COMMIT'.
    ENDDO.
ENDIF.
  CALL SCREEN 3000.
*&      Module  STATUS_3000  OUTPUT
      text
MODULE status_3000 OUTPUT.
  SET PF-STATUS 'ZTESTMENU'.
SET TITLEBAR 'xxx'.
For Source client
*for check boxes.
if c_cont1 is initial.
    perform create_and_init_alv.
  endif.
IF c_alv2 IS INITIAL.
    CREATE OBJECT c_cont2
      EXPORTING
        container_name              = 'CONTAINER_TARGET'.
    IF sy-subrc = 0.
      CREATE OBJECT c_alv2
        EXPORTING
          i_parent          = c_cont2.
    ENDIF.
    IF sy-subrc EQ 0.
      PERFORM field_cat2.
    ENDIF.
    CALL METHOD c_alv2->set_table_for_first_display
EXPORTING
   i_buffer_active               =
   i_bypassing_buffer            =
   i_consistency_check           =
   i_structure_name              =
   is_variant                    =
   i_save                        =
   i_default                     = 'x'
   is_layout                     =
   is_print                      =
   it_special_groups             =
   it_toolbar_excluding          =
   it_hyperlink                  =
   it_alv_graphics               =
   it_except_qinfo               =
   ir_salv_adapter               =
      CHANGING
        it_outtab                     =
        it_fieldcatalog               = it_fieldcat2
   it_sort                       =
   it_filter                     =
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.
  ENDIF.
ENDMODULE.                 " STATUS_3000  OUTPUT
*&      Module  USER_COMMAND_3000  INPUT
      text
MODULE user_command_3000 INPUT.
save_ok = ok_code.
  clear ok_code.
  case save_ok.
    WHEN 'BACK'.
      LEAVE PROGRAM.
       when 'EXIT'.
     perform exit_program.
    when 'SELECT'.
      perform select_all_entries changing gt_outtab[].
    when 'DESELECT'.
      perform deselect_all_entries changing gt_outtab[].
    when 'RESET'.
      perform reset_selected_entries changing gt_outtab[].
   when 'SWITCH'.
     perform switch_activation changing gt_outtab[].
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_3000  INPUT
*&      Form  field_cat1
      text
-->  p1        text
<--  p2        text
FORM field_cat1 .
Dynamic creation of a structure
  CREATE DATA l_structure1 TYPE (p_table).
  ASSIGN l_structure1->* TO .
Fields Structure
  struc_desc1 ?= cl_abap_typedescr=>describe_by_data( .
  Build Fieldcatalog
    ty_fieldcat1-checkbox = 'X'.
    ty_fieldcat1-fieldname = -name.
    ty_fieldcat1-ref_table = p_table.
    APPEND ty_fieldcat1 TO it_fieldcat1.
  Build Fieldcatalog
    ls_fieldcatalogue1-fieldname = create_dynamic_table
    EXPORTING
   i_style_table             =
      it_fieldcatalog           = it_fieldcat1
   i_length_in_byte          =
    IMPORTING
      ep_table                  = l_table1
   e_style_fname             =
EXCEPTIONS
   generate_subpool_dir_full = 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.
  ASSIGN l_table1->* TO  = gt_outtab[].
Read data from the table selected.
  SELECT * FROM (p_table)
     CLIENT SPECIFIED
     INTO CORRESPONDING FIELDS OF TABLE  TO wa.
  INSERT wa into table  gt_outtab.
ENDLOOP.
ENDFORM.                    " field_cat1
*&      Form  field_cat2
      text
-->  p1        text
<--  p2        text
FORM field_cat2 .
  CREATE DATA l_structure2 TYPE (p_table).
  ASSIGN l_structure2->* TO .
Fields Structure
  struc_desc2 ?= cl_abap_typedescr=>describe_by_data( .
  Build Fieldcatalog
    ty_fieldcat2-fieldname = -name.
    ty_fieldcat2-ref_table = p_table.
    APPEND ty_fieldcat2 TO it_fieldcat2.
  Build Fieldcatalog
    ls_fieldcatalogue2-fieldname = create_dynamic_table
    EXPORTING
   i_style_table             =
      it_fieldcatalog           = it_fieldcat2
   i_length_in_byte          =
    IMPORTING
      ep_table                  = l_table2
   e_style_fname             =
EXCEPTIONS
   generate_subpool_dir_full = 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.
  ASSIGN l_table2->* TO .
Read data from the table selected.
  SELECT * FROM (p_table) CLIENT SPECIFIED
     INTO CORRESPONDING FIELDS OF TABLE
               WHERE mandt =  p_mdt_to.
ENDFORM.                    " field_cat2
*&      Form  create_and_init_alv
      text
-->  p1        text
<--  p2        text
form create_and_init_alv .
data: lt_exclude type ui_functions.
  create object c_cont1
         exporting container_name = 'CONTAINER_SOURCE'.
  create object c_alv1
         exporting i_parent = c_cont1.
PERFORM field_cat1.
perform exclude_tb_functions changing lt_exclude.
perform build_data.
gs_layout-stylefname = 'CELLTAB'.
  call method c_alv1->set_table_for_first_display
       exporting is_layout             = gs_layout
                 it_toolbar_excluding  = lt_exclude
       changing  it_fieldcatalog       = it_fieldcat1
                 it_outtab             = gt_outtab[].
  create object g_event_receiver.
  set handler g_event_receiver->catch_doubleclick for c_alv1.
Set editable cells to ready for input initially
  call method c_alv1->set_ready_for_input
   exporting
    i_ready_for_input = 1.
endform.                    " create_and_init_alv
*&      Form  exclude_tb_functions
      text
     <--P_LT_EXCLUDE  text
form exclude_tb_functions changing pt_exclude type ui_functions.
  data ls_exclude type ui_func.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
  append ls_exclude to pt_exclude.
endform.                    " exclude_tb_functions
*&      Form  build_data
      text
-->  p1        text
<--  p2        text
form build_data .
data:ls_celltab type lvc_s_styl,
        lt_celltab type lvc_t_styl,
        l_index type i.
*-- get the number of entries in table
  SELECT COUNT(*) FROM dd03l INTO lv_count
                            WHERE tabname   =  p_table
                              AND fieldname = 'MANDT'.
Check MANDT field the the table, if not exists through an error message
  IF lv_count = 0.
    MESSAGE i000(8i) WITH text-001 space space.
    EXIT.
  ELSE.
*-- Delete the Table Entries in the target system
    DELETE FROM (p_table) CLIENT SPECIFIED
          WHERE mandt = p_mdt_to.
    COMMIT WORK.
*-- Open cursor
    OPEN CURSOR WITH HOLD icursor FOR
      SELECT * FROM (p_table) CLIENT SPECIFIED
              WHERE mandt = p_mdt_fm.
    IF sy-subrc .
   move-corresponding <tab1> to gt_outtab.
  if gt_outtab-connid eq '400'.
    gt_outtab-checkbox = 'X'.
  endif.
   append gt_outtab.
endloop.
ls_celltab-fieldname = 'CHECKBOX'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
loop at gt_outtab.
   l_index = sy-tabix.
   refresh lt_celltab.
   ls_celltab-fieldname = 'CHECKBOX'.
   ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
   insert ls_celltab into table lt_celltab.
   insert lines of lt_celltab into table gt_outtab-celltab.
   modify gt_outtab index l_index.
endloop.
endform.                    " build_data
*&      Form  select_all_entries
      text
     <--P_GT_OUTTAB  text
form select_all_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c,
        l_locked type c.
*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,
      you must check the input cells.
If all entries are ok, ALV transferes new values to the output
table which you then can modify.
  call method c_alv1->check_changed_data
              importing
                 e_valid = l_valid.
  if l_valid eq 'X'.
    loop at pt_outtab into ls_outtab.
      perform check_lock using    ls_outtab
                         changing l_locked.
      if l_locked is initial
         and not ls_outtab-checkbox eq '-'.
        ls_outtab-checkbox = 'X'.
      endif.
      modify pt_outtab from ls_outtab.
    endloop.
    call method c_alv1->refresh_table_display.
  endif.
endform.                               " select_all_entries
*&      Form  deselect_all_entries
      text
     <--P_GT_OUTTAB[]  text
form deselect_all_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c,
        l_locked type c.
*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,
      you must check the input cells.
If all entries are ok, ALV transferes new values to the output
table which you then can modify.
  call method c_alv1->check_changed_data
              importing
                 e_valid = l_valid.
  if l_valid eq 'X'.
    loop at pt_outtab into ls_outtab.
      perform check_lock using    ls_outtab
                       changing l_locked.
      if l_locked is initial
         and not ls_outtab-checkbox eq '-'.
        ls_outtab-checkbox = ' '.
      endif.
      modify pt_outtab from ls_outtab.
    endloop.
    call method c_alv1->refresh_table_display.
  endif.
endform.                               " deselect_all_entries
*&      Form  reset_selected_entries
      text
     <--P_GT_OUTTAB[]  text
form reset_selected_entries changing pt_outtab type standard table.
  data: ls_outtab type gs_outtab.
  data: l_valid type c.
*§A4b. Before you set, (b)reset or evaluate checkboxes,
     you must check the input cells.
If all entries are ok, ALV transferes new values to the output
table which you then can modify.
  call method c_alv1->check_changed_data
              importing
                 e_valid = l_valid.
  if l_valid eq 'X'.
    loop at pt_outtab into ls_outtab.
      if     not ls_outtab-checkbox is initial
         and not ls_outtab-checkbox eq '-'.
        clear ls_outtab.
        modify pt_outtab from ls_outtab.
      endif.
    endloop.
    call method c_alv1->refresh_table_display.
  endif.
endform.                               " reset_selected_entries
*&      Form  check_lock
      text
     -->P_LS_OUTTAB  text
     <--P_L_LOCKED  text
form check_lock using    ps_outtab type gs_outtab
                changing p_locked.
  data ls_celltab type lvc_s_styl.
  loop at ps_outtab-celltab into ls_celltab.
    if ls_celltab-fieldname = 'CHECKBOX'.
      if ls_celltab-style eq cl_gui_alv_grid=>mc_style_disabled.
        p_locked = 'X'.
      else.
        p_locked = space.
      endif.
    endif.
  endloop.
endform.                               " check_lock
and when i am running this code its going for runtime.i know the cause also as the data from dynamic internal table is not properly moved to standard internal.but i am not getting how to do this.please can u help out in this regard with code.
thank u.
soham

Similar Messages

  • Problem in placing the background in ALV Grid display

    I have created one image of the business flow, and it have to be displayed in the background of ALV grid display.
    For this I have gone to T.Code –<b>OAER</b> , Given class name as <b>PICTURES</b> , Class type as <b>OT</b> , Object Key <b>BACKGROUND</b>, clicked on the triangle of Standard Doc , then double click on screen, and finally uploaded the background into SAP.
    In the function module <b>‘REUSE_ALV_GRID_DISPLAY’</b> I passed this background to the parameter I_BACKGROUND_ID.
    It is working fine, and I was able to see the back ground in my program.
    (developed in IDES)
    But the same is not working in my development client, will some one suggest be the reason for the problem. Please kindly help me out from this problem.

    hello Dinesh,
    I have created the object key in the development client itself and used in the grid display of the same client. i am not understanding where the problem is, any how thank you very much for your responce. if you have any other solution please let me know.
    Thank you

  • How to capture the checkbox status in ALV Grid display

    I need some immediate help regarding Grid ALV.
    My Requirement: I need to display an ALV grid report along with checkboxes. Further, I need to provide an option wherein the user can checkboxes and select the records that I need to process further (by clicking the process button on the ALV Report).
    My Query: The problem here is that I am not able to capture the status of the checkboxes. This means that I am not able to capture which of the records have been selected by checking their resp checkboxes.
    Solutions that I have tried: I have tried capturing the same at user command by checking the value in slis_selfield. But all the records show the value as 1 for the checkbox field.
    Kinldy suggest how to go about it.
    I am not using Object Oriented ALV. Please suggest something to be used in ALV Grid display in 4.6C version.
    Regards,
    Namrata

    Here is a Sample code , it might help you
    TABLES : sflight.
    TYPE-POOLS: slis.
    DATA : w_repid LIKE sy-repid.
    w_repid = sy-repid.
    DATA: BEGIN OF it_sflight OCCURS 0,
      checkbox(1),
      carrid LIKE sflight-carrid,
    END OF it_sflight.
    *layout
    DATA: wa_layout TYPE slis_layout_alv.
    *field catalog
    DATA: it_fieldcatalog TYPE slis_t_fieldcat_alv,
              wa_fieldcatalog TYPE slis_fieldcat_alv.
    START-OF-SELECTION.
      SELECT carrid FROM sflight
         INTO CORRESPONDING FIELDS OF TABLE it_sflight.
    END-OF-SELECTION.
      CLEAR it_fieldcatalog.
      REFRESH it_fieldcatalog.
      wa_fieldcatalog-fieldname = 'CHECKBOX'.
      wa_fieldcatalog-outputlen = '3'.
      wa_fieldcatalog-col_pos = '1'.
      wa_fieldcatalog-seltext_m = 'Chk'.
      wa_fieldcatalog-checkbox = 'X'.
      wa_fieldcatalog-edit = 'X'.
      APPEND wa_fieldcatalog TO it_fieldcatalog.
      CLEAR wa_fieldcatalog.
      wa_fieldcatalog-fieldname = 'CARRID'.
      wa_fieldcatalog-outputlen = '10'.
      wa_fieldcatalog-col_pos = '2'.
      wa_fieldcatalog-seltext_m = 'Carrid'.
      APPEND wa_fieldcatalog TO it_fieldcatalog.
      CLEAR wa_fieldcatalog.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = w_repid
          is_layout = wa_layout
          i_callback_user_command = 'USER_COMMAND'
          it_fieldcat = it_fieldcatalog
        TABLES
          t_outtab = it_sflight
        EXCEPTIONS
          program_error = 1
          OTHERS = 2.
    *& Form USER_COMMAND
    FORM user_command USING p_ucomm TYPE sy-ucomm
      p_selfld TYPE slis_selfield.
      CASE p_ucomm.
       WHEN '&DATA_SAVE'.
          DATA ref1 TYPE REF TO cl_gui_alv_grid.
          CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
             IMPORTING
               e_grid = ref1.
          CALL METHOD ref1->check_changed_data.
          LOOP AT it_sflight WHERE checkbox = 'X'.
             DELETE it_sflight INDEX sy-tabix.
          ENDLOOP.
          p_selfld-refresh = 'X'.
      ENDCASE.
    ENDFORM. "user_command

  • How to Edit the CheckBox in Classic ALV GRID Display

    Hi,
    I want to Edit the checkbox in Grid Display.
    I have one checkbox field in my internal Table,
    Code Of the Program,
    Data :
    Begin of itab occurs 0,
    CHK type C,
    MATNR like MARA-MATNR,
    end of itab.
    Iam building the fieldcatelog using Merge Funcion module.
    After that I am chaning the properties of the field
    catelog like below,
    loop at I_FCAT assigning <FCAT>.
    Case <FCAT>-Fieldname
    When 'CHK'.
    <FCAT>-Checkbox = 'X'.
    <FCAT>-INPUT = 'X'.
    I dont have edit option in fieldcatelog.
    modify I_FCAT from <FCAT>.
    endcase.
    endloop.
    In the Layout,
    I_LAYOUT-box_fieldname = 'CHK'.
    I_LAYOUT-box_tabname = 'ITAB'.
    It is displaying the Checkbox field.but I couldnt edit the checkBox.
    I can able to edit in REUSE_ALV_LIST_DISPLAY.
    But I  have to use REUSE_ALV_GRID_DISPLAY.How to edit the checkbox.
    Thanks in Advance,
    Sumithra

    Hi vasu,
    The below procedure explains you to create a checkbox cloumn in the grid and allows you to edit i hope this will helps u.
    The ALV Grid Control displays the cells of a column as checkboxes if the column is marked as a checkbox column in the field catalog.
    •     Add another field to the output table in which you want to display checkboxes
    OR
    •     Define an existing field as a checkbox.
    Procedure
    1.     Add a field to your output table:
    Data: gt_fieldcat type lvc_t_fcat.
    Types: begin of gs_outtab.
    Types: checkbox type c. "field for checkbox
    Include structure <ABAP Dictionary structure> .
    Types: end of gs_outtab.
    Data: gt_outtab type gs_outtab occurs 0 with header line.
    2 * Add an entry for the checkbox to the field catalog
    clear ls_fcat.
    ls_fcat-fieldname = 'CHECKBOX'.
    * Essential: declare field as checkbox and
    * mark it as editable field:
    ls_fcat-checkbox = 'X'.
    ls_fcat-edit = 'X'.
    * do not forget to provide texts for this extra field
    ls_fcat-coltext = text-f01.
    ls_fcat-tooltip = text-f02.
    ls_fcat-seltext = text-f03.
    append ls_fcat to gt_fieldcat.
    regards,
    venu.

  • Problem in linking F4 help in alv grid display.

    Hi,
         I am linking F4 help in my program.My program gets activated properly but i am getting runtime error as : DYNPRO_NOT_FOUND and short text as
    Dynpor existiert nicht.Please help me in removing this error.Below is the simple code in which i am getting the error for ur reference:
    Thanks.
    REPORT  ZALVF4.
    Global data definitions for ALV.......................................
    DATA : alvgrid TYPE REF TO cl_gui_alv_grid,
           custom_container TYPE REF TO cl_gui_custom_container,
           fieldcatalog TYPE lvc_t_fcat.
    table to contain fields that require f4...............................
    DATA : lt_f4 TYPE lvc_t_f4 WITH HEADER LINE.
    ok_code declaration...................................................
    DATA : ok_code TYPE sy-ucomm.
    Tables declaration....................................................
    TABLES : zharry.
    Types declaration.....................................................
    TYPES : BEGIN OF ty_emp,
      empid LIKE zharry-student,
      empname LIKE zharry-sname,
    END OF ty_emp.
    Internal table declaration............................................
    DATA : i_emp TYPE TABLE OF ty_emp.
    Workarea declaration..................................................
    DATA : wa_emp TYPE ty_emp.
    Selection screen parameters...........................................
    SELECT-OPTIONS : s_sno FOR zharry-student.
          CLASS lcl_event_handler DEFINITION
    CLASS lcl_event_handler DEFINITION.
      PUBLIC SECTION.
        METHODS :
                 handle_on_f1 FOR EVENT onf1 OF cl_gui_alv_grid
                              IMPORTING e_fieldname es_row_no er_event_data,
                 handle_on_f4 for event onf4 of cl_gui_alv_grid
                              importing e_fieldname es_row_no er_event_data
    ENDCLASS.
          CLASS lcl_event_handler IMPLEMENTATION
    CLASS lcl_event_handler IMPLEMENTATION.
      METHOD handle_on_f1.
    custom f1 help for empid field.......................................
        IF e_fieldname = 'STUDENT'.
          CALL SCREEN 3001.
        ENDIF.
    to prevent processing of standard f1 help............................
        er_event_data->m_event_handled = 'X'.
      ENDMETHOD.
      Method handle_on_f4.
    standard f4 help will be invoked......................................
      endmethod.
    ENDCLASS.
    start of selection....................................................
    START-OF-SELECTION.
      SELECT STUDENT SNAME FROM ZHARRY
                           INTO CORRESPONDING FIELDS OF TABLE i_emp
                           WHERE student IN s_sno.
      CALL SCREEN 3000.
    *&      Module  STATUS_3000  OUTPUT
          text
    MODULE status_3000 OUTPUT.
      SET PF-STATUS 'ZTOOL'.
      SET TITLEBAR 'ZTITLE'.
      IF alvgrid IS INITIAL.
        CREATE OBJECT custom_container
          EXPORTING
            container_name = 'ZCONTAINER'.
        CREATE OBJECT alvgrid
          EXPORTING
            i_parent = custom_container.
        PERFORM prepare_f4.
        CALL METHOD alvgrid->register_f4_for_fields
          EXPORTING
            it_f4  = lt_f4[]
    creating instance for event handler..................................
        DATA : event_handler TYPE REF TO lcl_event_handler.
        CREATE OBJECT event_handler.
        SET HANDLER event_handler->handle_on_f1 FOR alvgrid.
        SET HANDLER event_handler->handle_on_f4 FOR alvgrid.
    preparing field catalog..............................................
        PERFORM prepare_fieldcatalog CHANGING fieldcatalog.
        CALL METHOD alvgrid->set_table_for_first_display
         EXPORTING
           I_BYPASSING_BUFFER            =
           I_BUFFER_ACTIVE               =
           I_CONSISTENCY_CHECK           =
           I_STRUCTURE_NAME              =
           IS_VARIANT                    =
           I_SAVE                        =
           I_DEFAULT                     = 'X'
           IS_LAYOUT                     =
           IS_PRINT                      =
           IT_SPECIAL_GROUPS             =
           IT_TOOLBAR_EXCLUDING          =
           IT_HYPERLINK                  =
           IT_ALV_GRAPHICS               =
           IT_EXCEPT_QINFO               =
          CHANGING
             it_outtab                     = i_emp
             it_fieldcatalog               = fieldcatalog
           IT_SORT                       =
           IT_FILTER                     =
         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.
      ENDIF.
    ENDMODULE.                 " STATUS_3000  OUTPUT
    preparing field catalog...............................................
    FORM prepare_fieldcatalog CHANGING i_fieldcatalog TYPE lvc_t_fcat.
      DATA : ls_fcat TYPE lvc_s_fcat.
      ls_fcat-fieldname = 'STUDENT'.
      ls_fcat-ref_table = 'ZHARRY'.
      ls_fcat-coltext = 'STUDENT NO'.
      APPEND ls_fcat TO i_fieldcatalog.
      CLEAR ls_fcat.
      ls_fcat-fieldname = 'SNAME'.
      ls_fcat-ref_table = 'ZHARRY'.
      ls_fcat-coltext = 'STUDENT NAME'.
      APPEND ls_fcat TO i_fieldcatalog.
    ENDFORM.
    *&      Module  USER_COMMAND_3000  INPUT
          text
    MODULE user_command_3000 INPUT.
      CASE ok_code.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_3000  INPUT
    *&      Module  USER_COMMAND_3001  INPUT
          text
    MODULE user_command_3001 INPUT.
      CASE ok_code.
        WHEN 'SAVE'.
          LEAVE TO SCREEN 0.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_3001  INPUT
    *&      Module  STATUS_3001  OUTPUT
          text
    MODULE status_3001 OUTPUT.
      SET PF-STATUS 'GUI'.
      SET TITLEBAR 'TITLE'.
    ENDMODULE.                 " STATUS_3001  OUTPUT
    preparing fields to be registered for f4 help.........................
    FORM prepare_f4.
      lt_f4-fieldname = 'EMPNAME'.
      lt_f4-register = 'X'.
      lt_f4-getbefore = 'X'.
      lt_f4-chngeafter = 'X'.
      APPEND lt_f4.
    ENDFORM.

    Hi,
         I am linking F4 help in my program.My program gets activated properly but i am getting runtime error as : DYNPRO_NOT_FOUND and short text as
    Dynpor existiert nicht.Please help me in removing this error.Below is the simple code in which i am getting the error for ur reference:
    Thanks.
    REPORT  ZALVF4.
    Global data definitions for ALV.......................................
    DATA : alvgrid TYPE REF TO cl_gui_alv_grid,
           custom_container TYPE REF TO cl_gui_custom_container,
           fieldcatalog TYPE lvc_t_fcat.
    table to contain fields that require f4...............................
    DATA : lt_f4 TYPE lvc_t_f4 WITH HEADER LINE.
    ok_code declaration...................................................
    DATA : ok_code TYPE sy-ucomm.
    Tables declaration....................................................
    TABLES : zharry.
    Types declaration.....................................................
    TYPES : BEGIN OF ty_emp,
      empid LIKE zharry-student,
      empname LIKE zharry-sname,
    END OF ty_emp.
    Internal table declaration............................................
    DATA : i_emp TYPE TABLE OF ty_emp.
    Workarea declaration..................................................
    DATA : wa_emp TYPE ty_emp.
    Selection screen parameters...........................................
    SELECT-OPTIONS : s_sno FOR zharry-student.
          CLASS lcl_event_handler DEFINITION
    CLASS lcl_event_handler DEFINITION.
      PUBLIC SECTION.
        METHODS :
                 handle_on_f1 FOR EVENT onf1 OF cl_gui_alv_grid
                              IMPORTING e_fieldname es_row_no er_event_data,
                 handle_on_f4 for event onf4 of cl_gui_alv_grid
                              importing e_fieldname es_row_no er_event_data
    ENDCLASS.
          CLASS lcl_event_handler IMPLEMENTATION
    CLASS lcl_event_handler IMPLEMENTATION.
      METHOD handle_on_f1.
    custom f1 help for empid field.......................................
        IF e_fieldname = 'STUDENT'.
          CALL SCREEN 3001.
        ENDIF.
    to prevent processing of standard f1 help............................
        er_event_data->m_event_handled = 'X'.
      ENDMETHOD.
      Method handle_on_f4.
    standard f4 help will be invoked......................................
      endmethod.
    ENDCLASS.
    start of selection....................................................
    START-OF-SELECTION.
      SELECT STUDENT SNAME FROM ZHARRY
                           INTO CORRESPONDING FIELDS OF TABLE i_emp
                           WHERE student IN s_sno.
      CALL SCREEN 3000.
    *&      Module  STATUS_3000  OUTPUT
          text
    MODULE status_3000 OUTPUT.
      SET PF-STATUS 'ZTOOL'.
      SET TITLEBAR 'ZTITLE'.
      IF alvgrid IS INITIAL.
        CREATE OBJECT custom_container
          EXPORTING
            container_name = 'ZCONTAINER'.
        CREATE OBJECT alvgrid
          EXPORTING
            i_parent = custom_container.
        PERFORM prepare_f4.
        CALL METHOD alvgrid->register_f4_for_fields
          EXPORTING
            it_f4  = lt_f4[]
    creating instance for event handler..................................
        DATA : event_handler TYPE REF TO lcl_event_handler.
        CREATE OBJECT event_handler.
        SET HANDLER event_handler->handle_on_f1 FOR alvgrid.
        SET HANDLER event_handler->handle_on_f4 FOR alvgrid.
    preparing field catalog..............................................
        PERFORM prepare_fieldcatalog CHANGING fieldcatalog.
        CALL METHOD alvgrid->set_table_for_first_display
         EXPORTING
           I_BYPASSING_BUFFER            =
           I_BUFFER_ACTIVE               =
           I_CONSISTENCY_CHECK           =
           I_STRUCTURE_NAME              =
           IS_VARIANT                    =
           I_SAVE                        =
           I_DEFAULT                     = 'X'
           IS_LAYOUT                     =
           IS_PRINT                      =
           IT_SPECIAL_GROUPS             =
           IT_TOOLBAR_EXCLUDING          =
           IT_HYPERLINK                  =
           IT_ALV_GRAPHICS               =
           IT_EXCEPT_QINFO               =
          CHANGING
             it_outtab                     = i_emp
             it_fieldcatalog               = fieldcatalog
           IT_SORT                       =
           IT_FILTER                     =
         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.
      ENDIF.
    ENDMODULE.                 " STATUS_3000  OUTPUT
    preparing field catalog...............................................
    FORM prepare_fieldcatalog CHANGING i_fieldcatalog TYPE lvc_t_fcat.
      DATA : ls_fcat TYPE lvc_s_fcat.
      ls_fcat-fieldname = 'STUDENT'.
      ls_fcat-ref_table = 'ZHARRY'.
      ls_fcat-coltext = 'STUDENT NO'.
      APPEND ls_fcat TO i_fieldcatalog.
      CLEAR ls_fcat.
      ls_fcat-fieldname = 'SNAME'.
      ls_fcat-ref_table = 'ZHARRY'.
      ls_fcat-coltext = 'STUDENT NAME'.
      APPEND ls_fcat TO i_fieldcatalog.
    ENDFORM.
    *&      Module  USER_COMMAND_3000  INPUT
          text
    MODULE user_command_3000 INPUT.
      CASE ok_code.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_3000  INPUT
    *&      Module  USER_COMMAND_3001  INPUT
          text
    MODULE user_command_3001 INPUT.
      CASE ok_code.
        WHEN 'SAVE'.
          LEAVE TO SCREEN 0.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_3001  INPUT
    *&      Module  STATUS_3001  OUTPUT
          text
    MODULE status_3001 OUTPUT.
      SET PF-STATUS 'GUI'.
      SET TITLEBAR 'TITLE'.
    ENDMODULE.                 " STATUS_3001  OUTPUT
    preparing fields to be registered for f4 help.........................
    FORM prepare_f4.
      lt_f4-fieldname = 'EMPNAME'.
      lt_f4-register = 'X'.
      lt_f4-getbefore = 'X'.
      lt_f4-chngeafter = 'X'.
      APPEND lt_f4.
    ENDFORM.

  • TO enable the menu button in ALV Grid Display

    Hi Mates,
    I have a peculiar problem while doing ALV Grid display for screens.
    In the main Screen i have Three coloumns.The 1st coloum will interacted
    next screen 101 and 2nd coloum will interacted to screen 102.
    Now the problem is in the menu of ALV Grid display,the Total button was enabled for screen
    101 and same button is disabled in screen 102.
    But the code semms to be fine .
    Below i have pasted the code and please have a look and help to come out of this cris.
    My Code  :
    FORM CREATE_ALV_GRID USING R_SCREEN.
      DATA: LS_LAYOUT TYPE LVC_S_LAYO,
      ITAB_FUNCTIONS     TYPE UI_FUNCTIONS.   "MHTK903257(+)(add)
      CASE R_SCREEN.
    *--> SCREEN 9000
        WHEN C_SCREEN_9000.
    *-- Build the field catalog for the ALV grid.
          PERFORM BUILD_FIELD_CATALOG TABLES ITAB_FIELDCAT_9000
                                      USING:
    *ref_table|fieldname|coltext|hotspot|inttype|outputlen|lzero|just|color
    'ITAB_OVERVIEW' 'WADAT'     'Due date'(004)  'X' 'D' ' ' ' ' ' ' 'C100',
    *'ITAB_OVERVIEW' 'HU_UNLOAD' 'Unloaded HU'(005) 'X' 'I' '15' ' ' ' ' 'C500',  "MHTK903257(-)
    'ITAB_OVERVIEW' 'TOT_TO'    'Total TO'(006)   'X' 'I' ' '  ' ' ' ' 'C30',
    GMTK901103: REMOVE HOTSPOT ON ESTIMATED TO:
    'ITAB_OVERVIEW' 'EST_TO'    'Estim TO'(030)    ' ' 'I' ' '  ' ' ' ' 'C500'.
          LOOP AT ITAB_INB_LOC WHERE OUTPUT = 'X'.
                PERFORM BUILD_FIELD_CATALOG TABLES ITAB_FIELDCAT_9000
                                        USING:
       ref_table|fieldname|coltext|hotspot|inttype|outputlen|lzero|just|color
            'ITAB_OVERVIEW' ITAB_INB_LOC-FIELDNAME
            ITAB_INB_LOC-Z_INBND_LOC 'X' '' ' ' ' ' 'R' 'C500'.  "MHTK903418
            ENDLOOP.
          LOOP AT ITAB_STORAGE_TYPE WHERE OUTPUT = 'X'.
            PERFORM BUILD_FIELD_CATALOG TABLES ITAB_FIELDCAT_9000
                                        USING:
    *ref_table|fieldname|coltext|hotspot|inttype|outputlen|lzero|just|color
    'ITAB_OVERVIEW' ITAB_STORAGE_TYPE-FIELDNAME
      ITAB_STORAGE_TYPE-LGTYP 'X' 'I' ' ' ' ' 'R' 'C500'.
          ENDLOOP.
    *-- Create the ALV grid object.
          CREATE OBJECT PT_ALV_1000
            EXPORTING
              I_PARENT  = PT_DOCK_1000.
          PERFORM EXCLUDE_FUNCTIONS TABLES ITAB_FUNCTIONS   "MHTK903257(+)(add)
                                    USING  R_SCREEN.
    *-- Get the title of the ALV grid.
          PERFORM GET_ALV_GRID_TITLE USING    C_SCREEN_1000
                                     CHANGING LS_LAYOUT-GRID_TITLE.
    *-- Display the ALV grid.
          CALL METHOD PT_ALV_1000->SET_TABLE_FOR_FIRST_DISPLAY
            EXPORTING
              IS_LAYOUT       = LS_LAYOUT
              IT_TOOLBAR_EXCLUDING = ITAB_FUNCTIONS
            CHANGING
              IT_OUTTAB       = ITAB_OVERVIEW
              IT_FIELDCATALOG = ITAB_FIELDCAT_9000.
    *--> SCREEN 9100
        WHEN C_SCREEN_1100.
    *-- Build the field catalog for the ALV grid.
          PERFORM BUILD_FIELD_CATALOG TABLES ITAB_FIELDCAT_1100
                                      USING:
    *ref_table|fieldname|coltext|hotspot|inttype|outputlen|lzero|just|color
    'ITAB_DETIAL' 'WAUHR'     'Due time'(007)  ' ' 'T' ' ' 'X' ' ' 'C100',
    'ITAB_DETAIL' 'TOT_TO'    'Total TO'(006)   'X' 'I' ' '  ' ' ' ' 'C30',
    'ITAB_DETAIL' 'EST_TO'    'Estim TO'(030)   ' ' 'I' ' '  ' ' ' ' 'C500'.
       CLEAR ITAB_INB_LOC.
        LOOP AT ITAB_INB_LOC WHERE SELECTED = 'X'.
             CHECK SY-SUBRC EQ 0.
                PERFORM BUILD_FIELD_CATALOG TABLES ITAB_FIELDCAT_1100
                                        USING:
       ref_table|fieldname|coltext|hotspot|inttype|outputlen|lzero|just|color
            'ITAB_DETAIL' ITAB_INB_LOC-FIELDNAME
            ITAB_INB_LOC-Z_INBND_LOC '' '' ' ' ' ' 'R' 'C500'.
         ENDLOOP.
         CLEAR: ITAB_STORAGE_TYPE.
          LOOP AT ITAB_STORAGE_TYPE WHERE SELECTED = 'X'.
            CHECK SY-SUBRC EQ 0.
            PERFORM BUILD_FIELD_CATALOG TABLES ITAB_FIELDCAT_1100
                                        USING:
    *ref_table|fieldname|coltext|hotspot|inttype|outputlen|lzero|just|color
    'ITAB_DETAIL' ITAB_STORAGE_TYPE-FIELDNAME
      ITAB_STORAGE_TYPE-LGTYP 'X' 'I' ' ' ' ' 'R' 'C500'.
          ENDLOOP.
    *-- Create the ALV grid object.
          CREATE OBJECT PT_ALV_1100
            EXPORTING
              I_PARENT  = PT_DOCK_1100.
          PERFORM EXCLUDE_FUNCTIONS TABLES ITAB_FUNCTIONS   "MHTK903257(+)(add)
                                    USING  R_SCREEN.
    *-- Get the title of the ALV grid.
          PERFORM GET_ALV_GRID_TITLE USING    C_SCREEN_1100
                                     CHANGING LS_LAYOUT-GRID_TITLE.
    *-- Display the ALV grid.
          CALL METHOD PT_ALV_1100->SET_TABLE_FOR_FIRST_DISPLAY
            EXPORTING
              IS_LAYOUT       = LS_LAYOUT
              IT_TOOLBAR_EXCLUDING = ITAB_FUNCTIONS
            CHANGING
              IT_OUTTAB       = ITAB_DETAIL
              IT_FIELDCATALOG = ITAB_FIELDCAT_1100.
    screen 1300 TO detail.
    *--> SCREEN 9300
        WHEN C_SCREEN_1300.
    *-- Build the field catalog for the ALV grid.
          PERFORM BUILD_FIELD_CATALOG TABLES ITAB_FIELDCAT_1300
                                      USING:
    *ref_table|fieldname|coltext|hotspot|inttype|outputlen|lzero|just|color
    'ITAB_TO2' 'TANUM' 'TO'(020)  ' '   'C' ' ' ' ' ' ' 'C100',
    'ITAB_TO2' 'NLPLA' 'Location'(021) ' '   'C' ' '  ' ' ' ' 'C500',
    'ITAB_TO2' 'LETY1' 'SUT'(013)  ' ' 'C'  ' ' ' ' ' ' 'C500',
    'ITAB_TO2' 'MATNR' 'Material'(016) ' '  'C' ' '  ' ' ' ' 'C500',
    'ITAB_TO2' 'NSOLM' 'Quantity'(017) ' ' 'I' ' '  ' ' ' ' 'C500',
    'ITAB_TO2' 'NLTYP' 'Storage type'(014) ' ' '' ' '  ' ' ' ' 'C500'.  "MHTK903257(-)
    *'ITAB_TO2' 'POSNR' 'Line'(015) ' ' 'C' ' ' ' ' ' ' 'C500'.       "MHTK903257(-)
    *-- Create the ALV grid object.
          CREATE OBJECT PT_ALV_1300
            EXPORTING
              I_PARENT  = PT_DOCK_1300.
    *-- Exclude the non-applicable functions from the ALV grid.
          PERFORM EXCLUDE_FUNCTIONS TABLES ITAB_FUNCTIONS
                                    USING  R_SCREEN.
    *-- Get the title of the ALV grid.
          PERFORM GET_ALV_GRID_TITLE USING    C_SCREEN_1300
                                     CHANGING LS_LAYOUT-GRID_TITLE.
          SORT ITAB_TO2 BY TANUM VBELN POSNR.
    *-- Display the ALV grid.
          CALL METHOD PT_ALV_1300->SET_TABLE_FOR_FIRST_DISPLAY
            EXPORTING
              IS_LAYOUT       = LS_LAYOUT
              IT_TOOLBAR_EXCLUDING = ITAB_FUNCTIONS
            CHANGING
              IT_OUTTAB       = ITAB_TO2
              IT_FIELDCATALOG = ITAB_FIELDCAT_1300.
    screen 9400 Pre Processing detail.
    *--> SCREEN 9400
        WHEN C_SCREEN_9400.          "MHTK903418(BEgin Of change)
    *-- Build the field catalog for the ALV grid.
          PERFORM BUILD_FIELD_CATALOG TABLES ITAB_FIELDCAT_1400
                                      USING:
    *ref_table|fieldname|coltext|hotspot|inttype|outputlen|lzero|just|color
    'ITAB_PRE_PROC2' 'Z_PRE_PROC' 'Pre Processing Number'(030)  ' '   'C' ' ' ' ' ' ' 'C100',
    'ITAB_PRE_PROC2' 'Z_PRE_PROC_LN' 'Pre Processing Number'(035) ' '   'C' ' '  ' ' ' ' 'C100',
    'ITAB_PRE_PROC2' 'MATNR' 'Material'(035) ' '   'C' ' '  ' ' ' ' 'C500',
    'ITAB_PRE_PROC2' 'Z_PSH_QTY' 'Quantity'(035) ' '   'C' ' '  ' ' ' ' 'C500'.
    *'ITAB_TO2' 'MATNR' 'Material'(016) ' '  'C' ' '  ' ' ' ' 'C500',
    *'ITAB_TO2' 'NSOLM' 'Quantity'(017) ' ' 'I' ' '  ' ' ' ' 'C500',
    *'ITAB_TO2' 'NLTYP' 'Storage type'(014) ' ' '' ' '  ' ' ' ' 'C500'.  "MHTK903257(-)
    **'ITAB_TO2' 'POSNR' 'Line'(015) ' ' 'C' ' ' ' ' ' ' 'C500'.       "MHTK903257(-)
    *-- Create the ALV grid object.
          CREATE OBJECT PT_ALV_1400
            EXPORTING
              I_PARENT  = PT_DOCK_1400.
    *-- Exclude the non-applicable functions from the ALV grid.
          PERFORM EXCLUDE_FUNCTIONS TABLES ITAB_FUNCTIONS
                                    USING  R_SCREEN.
    *-- Get the title of the ALV grid.
          PERFORM GET_ALV_GRID_TITLE USING    C_SCREEN_1400
                                     CHANGING LS_LAYOUT-GRID_TITLE.
          SORT ITAB_PRE_PROC2 BY Z_PRE_PROC.
    *-- Display the ALV grid.
          CALL METHOD PT_ALV_1400->SET_TABLE_FOR_FIRST_DISPLAY
            EXPORTING
              IS_LAYOUT       = LS_LAYOUT
              IT_TOOLBAR_EXCLUDING = ITAB_FUNCTIONS
            CHANGING
              IT_OUTTAB       = ITAB_PRE_PROC2
              IT_FIELDCATALOG = ITAB_FIELDCAT_1400.  "MHTK903418(End of change)
      ENDCASE.

    Hi
    U copy from standard program and paste ur report ...It will work..'
    Regards:
    Prabu

  • Push Button on Alv Grid display

    Hi experts,
       I strcuk in the middle of one program, i need to have push buttons on the output ALV Grid display, i have copied the standard status and used the same in the Function module for pf-status, iam able to get the output
    but my requirement is how to add the push buttons to the out put screen, as when iam clicking on status which i have copied iam unable to find where to add these push button in the application tool bar, iam unable to edit the push button can any body help me out, thanks in advance.

    Hello Madan
    I cannot help you with the FM-based ALV lists. However, for OO-based ALV grids (CL_GUI_ALV_GRID) I have a sample program that simulates radio buttons by using icons with hotspots.
    PROGRAM ZUS_SDN_BCALV_GRID_DEMO_2.
    * Based on: BCALV_GRID_DEMO.
    TYPE-POOLS: icon.
    TYPES: BEGIN OF ty_s_sflight.
    INCLUDE TYPE sflight.
    TYPES: button1    TYPE lvc_emphsz.
    TYPES: button2    TYPE lvc_emphsz.
    TYPES: button3    TYPE lvc_emphsz.
    TYPES: button4    TYPE lvc_emphsz.
    TYPES: END OF ty_s_sflight.
    DATA:
      gt_sflight    TYPE STANDARD TABLE OF ty_s_sflight,
      gt_fcat       TYPE lvc_t_fcat.
    DATA: ok_code LIKE sy-ucomm,
    *      gt_sflight TYPE TABLE OF sflight,
          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.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA:
          md_cnt    TYPE i.
        CLASS-METHODS:
          handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
            IMPORTING
              e_row_id
              e_column_id
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_hotspot_click.
    * define local data
        FIELD-SYMBOLS:
          <ls_entry>    TYPE ty_s_sflight,
          <ld_fld>      TYPE ANY.
        READ TABLE gt_sflight ASSIGNING <ls_entry> INDEX es_row_no-row_id.
        CHECK ( <ls_entry> IS ASSIGNED ).
    *   Set all radio buttons "unselected"
        <ls_entry>-button1 =  icon_wd_radio_button_empty.
        <ls_entry>-button2 =  icon_wd_radio_button_empty.
        <ls_entry>-button3 =  icon_wd_radio_button_empty.
        <ls_entry>-button4 =  icon_wd_radio_button_empty.
        ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE <ls_entry>
                                                  TO <ld_fld>.
        IF ( <ld_fld> IS ASSIGNED ).
    *     Set selected radio button "selected".
          <ld_fld> = icon_wd_radio_button.
        ENDIF.
    *   Force PAI followed by refresh of table display in PBO
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = 'DUMMY'
    *      IMPORTING
    *        RC       =
      ENDMETHOD.                    "handle_hotspot_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
    *       MAIN                                                          *
      PERFORM select_data.
      CALL SCREEN 100.
    *       MODULE PBO OUTPUT                                             *
    MODULE pbo OUTPUT.
      SET PF-STATUS 'MAIN100'.
      IF g_custom_container IS INITIAL.
        CREATE OBJECT g_custom_container
               EXPORTING container_name = g_container.
        CREATE OBJECT grid1
               EXPORTING i_parent = g_custom_container.
        PERFORM build_fieldcatalog.
        CALL METHOD grid1->set_table_for_first_display
    *      EXPORTING
    *        i_structure_name = 'SFLIGHT'
          CHANGING
            it_fieldcatalog  = gt_fcat
            it_outtab        = gt_sflight.
    *   Set event handler for event TOOLBAR
        SET HANDLER:
          lcl_eventhandler=>handle_hotspot_click FOR grid1.
      else.
        CALL METHOD grid1->refresh_table_display
    *      EXPORTING
    *        IS_STABLE      =
    *        I_SOFT_REFRESH =
          EXCEPTIONS
            FINISHED       = 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.
      ENDIF.
    ENDMODULE.                    "PBO OUTPUT
    *       MODULE PAI INPUT                                              *
    MODULE pai INPUT.
    *   to react on oi_custom_events:
      CALL METHOD cl_gui_cfw=>dispatch.
      CASE ok_code.
        WHEN 'EXIT'.
          PERFORM exit_program.
        WHEN OTHERS.
    *     do nothing
      ENDCASE.
      CLEAR ok_code.
    ENDMODULE.                    "PAI INPUT
    *       FORM EXIT_PROGRAM                                             *
    FORM exit_program.
    *  CALL METHOD G_CUSTOM_CONTAINER->FREE.
    *  CALL METHOD CL_GUI_CFW=>FLUSH.
      LEAVE PROGRAM.
    ENDFORM.                    "EXIT_PROGRAM
    *&      Form  BUILD_FIELDCATALOG
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_fieldcatalog .
    * define local data
      DATA:
        ls_fcat        TYPE lvc_s_fcat,
        ls_hype        TYPE lvc_s_hype.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'LVC_S_FCAT'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        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.
      DELETE gt_fcat WHERE ( fieldname <> 'EMPHASIZE' ).
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'SFLIGHT'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        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.
      READ TABLE gt_fcat INTO ls_fcat
           WITH KEY fieldname = 'EMPHASIZE'.
      IF ( syst-subrc = 0 ).
        DELETE gt_fcat INDEX syst-tabix.
      ENDIF.
      ls_fcat-fieldname = 'BUTTON4'.
      ls_fcat-icon    = 'X'.
      ls_fcat-hotspot = 'X'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON3'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON2'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON1'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      LOOP AT gt_fcat INTO ls_fcat.
        ls_fcat-col_pos = syst-tabix.
        MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
      ENDLOOP.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  SELECT_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM select_data .
    * define local data
      DATA:
        ls_sflight    TYPE ty_s_sflight.
      SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.
      ls_sflight-button1 = icon_wd_radio_button.
      ls_sflight-button2 = icon_wd_radio_button_empty.
      ls_sflight-button3 = icon_wd_radio_button_empty.
      ls_sflight-button4 = icon_wd_radio_button_empty.
      MODIFY gt_sflight FROM ls_sflight
          TRANSPORTING button1 button2 button3 button4
        WHERE ( carrid IS NOT INITIAL ).
    ENDFORM.                    " SELECT_DATA
    Regards
    Uwe

  • Problem in customizations after Issue Output of a Billing Document (VF02)

    Dear Friends,
    I am facing some problem while I do repeat output of a Billing Transaction. (VF02->GoTo->Header->Output). There are some customizations done in our system that whenever an Output is processed in our system, an xml file should be created and placed on application server (Which would then be printed in some Legacy system).
    The custmizations for this has been done SPRO -> Sales and Distribution -> Billing Documents -> Invoice Lists ->Maintain Output for Invoice Lists -> Output Type.
    Now my problem is that XML file creation program works in the Dialog mode and I am able to create the XML file and make an entry of this file in a Z table as per my program logic.
    But when the processing is automatically through some files coming from application server, some of the files are missed. I want to figure out under which conditions my program to create XML file fails.
    I tried debugging this program by puttinga hard coded break-point as well but the control does not stops there.
    Could any one please help me how can we debug the program in such scenario.
    Thanks a Lot for your kind help!!!
    Regards,
    Lalit Kabra

    There was some issue in the RFC setup of our system because of which when fies were processed in bulk, some of them were missed out. It was like connection issue. Hence I did not put the soln here as I could not get the answer of this problem by doing some thing in ABAP.
    Apologies for the same.
    Regds,
    Lalit

  • Problem with ALV Grid Display screen Back Button

    Dear Friends ,
    I have an ALV Grid Display,Here am facing a problem for my 'Back' button,i haven't defined any PF Status and is using the standard one.But after the Display when i press Back Button a blank Screen is appearing n then again i have to press back button to go to my Selection Screen.
    Please Suggest if i have to take care of something else.
    I want my Selection Screen when i press Back on my Display Screen.
    DATA:  IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
             I_BYPASSING_BUFFER          =
             I_BUFFER_ACTIVE             =
             I_INTERFACE_CHECK           = ' '
                 I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
             I_CALLBACK_PF_STATUS_SET    = ' '
             I_CALLBACK_USER_COMMAND     = ' '
             I_CALLBACK_TOP_OF_PAGE      = ' '
             I_CALLBACK_HTML_TOP_OF_PAGE = ' '
             I_CALLBACK_HTML_END_OF_LIST = ' '
             I_STRUCTURE_NAME            =
             I_BACKGROUND_ID             = ' '
             I_GRID_TITLE                =
             I_GRID_SETTINGS             =
               IS_LAYOUT                     =  I_LAYOUT
               IT_FIELDCAT                 =  IT_FIELDCAT
             IT_EXCLUDING                =
             IT_SPECIAL_GROUPS           =
             IT_SORT                     =
             IT_FILTER                   =
             IS_SEL_HIDE                 =
             I_DEFAULT                   = 'X'
             I_SAVE                      = ' '
             IS_VARIANT                  =
             IT_EVENTS                   =
             IT_EVENT_EXIT               =
             IS_PRINT                    =
             IS_REPREP_ID                =
             I_SCREEN_START_COLUMN       = 0
             I_SCREEN_START_LINE         = 0
             I_SCREEN_END_COLUMN         = 0
             I_SCREEN_END_LINE           = 0
        IMPORTING
             E_EXIT_CAUSED_BY_CALLER     =
             ES_EXIT_CAUSED_BY_USER      =
             TABLES
                  T_OUTTAB                    = IT_FINAL
            EXCEPTIONS
                 PROGRAM_ERROR               = 1
                 OTHERS                      = 2
    Thanks and Regards,
    Ashwini

    Hi Vijay ,
    No i dont have any write statement in my proggram.
    Here it is
    REPORT ZRMMPD01A  NO STANDARD PAGE HEADING.
    TABLES : EQUI,SER03,MKPF,OBJK.
    TYPE-POOLS : SLIS.
    DATA  IT_EQUI LIKE EQUI OCCURS 0 WITH HEADER LINE.
    DATA  IT_OBJK LIKE OBJK OCCURS 0 WITH HEADER LINE..
    DATA  IT_SER03 LIKE SER03 OCCURS 0 WITH HEADER LINE.
    DATA  IT_MKPF LIKE MKPF OCCURS 0 WITH HEADER LINE .
    DATA : BEGIN OF IT_DISPLAY OCCURS 0,
                MATNR LIKE EQUI-MATNR,
                SERNR LIKE EQUI-SERNR,
                BWART LIKE SER03-BWART,
                WERK LIKE SER03-WERK,
                CHARGE LIKE SER03-CHARGE,
                LAGERORT LIKE SER03-LAGERORT,
                MBLNR LIKE SER03-MBLNR,
                MJAHR LIKE SER03-MJAHR,
                ZEILE LIKE SER03-ZEILE,
                BUDAT LIKE MKPF-BUDAT,
                BKTXT LIKE MKPF-BKTXT,
                USNAM LIKE MKPF-USNAM,
                XBLNR LIKE MKPF-XBLNR,
            END OF IT_DISPLAY.
    DATA : WA_DISPLAY LIKE IT_DISPLAY.
    DATA  IT_FINAL LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
    DATA  IT_TEMP LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
    DATA:  IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA :I_LAYOUT TYPE SLIS_LAYOUT_ALV,
          I_EVENTS TYPE SLIS_T_EVENT.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_MATNR FOR EQUI-MATNR MATCHCODE OBJECT MCD,"OBLIGATORY
                    S_SERNR FOR EQUI-SERNR, "MATCHCODE OBJECT MCD OBLIGATORY
                    S_MBLNR FOR SER03-MBLNR MATCHCODE OBJECT MCD,
                    S_BWART FOR SER03-BWART MATCHCODE OBJECT MCD,
                    S_WERK FOR SER03-WERK MATCHCODE OBJECT MCD,
                    S_LAGET FOR SER03-LAGERORT MATCHCODE OBJECT MCD,
                    S_BUDAT FOR MKPF-BUDAT MATCHCODE OBJECT MCD,
                    S_XBLNR FOR MKPF-XBLNR MATCHCODE OBJECT MCD.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X',
                 R2 RADIOBUTTON GROUP G1.
    SELECTION-SCREEN END OF BLOCK B2.
    START-OF-SELECTION.
    *Fetch Data.
      PERFORM GET_DATA.
    *Fill Display Fields.
      PERFORM FILL_TABLE.
    *Segregate data according to radio button selection.
      PERFORM SELECT_CONDITION.
    *Fill The Feild catalog.
      PERFORM FIELD_CATALOG.
    *Display Output.
      PERFORM OUTPUT_DISPLAY..
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA.
      SELECT * FROM EQUI INTO TABLE IT_EQUI
        WHERE MATNR IN S_MATNR
        AND SERNR IN S_SERNR.
      SELECT * FROM OBJK INTO TABLE IT_OBJK
      FOR ALL ENTRIES IN IT_EQUI
      WHERE EQUNR = IT_EQUI-EQUNR.
      SELECT * FROM SER03 INTO TABLE IT_SER03
      FOR ALL ENTRIES IN IT_OBJK
      WHERE OBKNR = IT_OBJK-OBKNR
      AND MBLNR IN S_MBLNR
      AND BWART IN S_BWART
      AND WERK IN S_WERK
      AND LAGERORT IN S_LAGET.
      SELECT * FROM MKPF INTO TABLE IT_MKPF
      FOR ALL ENTRIES IN IT_SER03
      WHERE MBLNR = IT_SER03-MBLNR
      AND BUDAT IN S_BUDAT
      AND XBLNR IN S_XBLNR.
    ENDFORM.                    " GET_DATA
    *&      Form  FILL_TABLE
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_TABLE.
      LOOP AT IT_EQUI.
        LOOP AT IT_OBJK.
          IF IT_OBJK-EQUNR <> IT_EQUI-EQUNR.
            SKIP.
          ELSE.
            READ TABLE IT_SER03 WITH KEY OBKNR = IT_OBJK-OBKNR.
            IF SY-SUBRC = 0.
              WA_DISPLAY-MATNR = IT_EQUI-MATNR.
              WA_DISPLAY-SERNR = IT_EQUI-SERNR.
              WA_DISPLAY-BWART = IT_SER03-BWART.
              WA_DISPLAY-WERK = IT_SER03-WERK.
              WA_DISPLAY-CHARGE = IT_SER03-CHARGE.
              WA_DISPLAY-LAGERORT = IT_SER03-LAGERORT.
              WA_DISPLAY-MBLNR = IT_SER03-MBLNR.
              WA_DISPLAY-MJAHR = IT_SER03-MJAHR.
              WA_DISPLAY-ZEILE = IT_SER03-ZEILE.
             READ TABLE IT_MKPF WITH KEY MBLNR = IT_SER03-MBLNR.
              IF SY-SUBRC = 0.
                WA_DISPLAY-BUDAT = IT_MKPF-BUDAT.
                WA_DISPLAY-BKTXT = IT_MKPF-BKTXT.
                WA_DISPLAY-USNAM = IT_MKPF-USNAM.
                WA_DISPLAY-XBLNR = IT_MKPF-XBLNR.
              ENDIF.
            ENDIF.
          ENDIF.
          IF NOT WA_DISPLAY IS INITIAL.
            APPEND WA_DISPLAY TO IT_DISPLAY.
            CLEAR WA_DISPLAY.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.                    " FILL_TABLE
    *&      Form  FIELD_CATALOG
          text
    -->  p1        text
    <--  p2        text
    FORM FIELD_CATALOG.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MATNR'.
      FIELDCAT-SELTEXT_M = 'Material Number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'SERNR'.
      FIELDCAT-SELTEXT_M = 'Serial number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MBLNR'.
      FIELDCAT-SELTEXT_L = 'Number of material document'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BWART'.
      FIELDCAT-SELTEXT_M = 'Movement type'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'WERK'.
      FIELDCAT-SELTEXT_M = 'Plant'.
      FIELDCAT-OUTPUTLEN =  5.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'CHARGE'.
      FIELDCAT-SELTEXT_M = 'Batch number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'LAGERORT'.
      FIELDCAT-SELTEXT_M = 'Storage Location'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MJAHR'.
      FIELDCAT-SELTEXT_M = 'Material doc. year'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'ZEILE'.
      FIELDCAT-SELTEXT_L = 'Item in material document'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BUDAT'.
      FIELDCAT-SELTEXT_L = 'Posting date in the document'.
      FIELDCAT-OUTPUTLEN =  10.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BKTXT'.
      FIELDCAT-SELTEXT_L = 'Document header text'.
      FIELDCAT-OUTPUTLEN =  25.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'USNAM'.
      FIELDCAT-SELTEXT_M = 'User name'.
      FIELDCAT-OUTPUTLEN =  15.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'XBLNR'.
      FIELDCAT-SELTEXT_L = 'Reference document number'.
      FIELDCAT-OUTPUTLEN =  25.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
    ENDFORM.                    " FIELD_CATALOG
    *&      Form  DISPLAY_OUTPUT
          text
    -->  p1        text
    <--  p2        text
    FORM OUTPUT_DISPLAY.
      IF R1 = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
              I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
              IS_LAYOUT                   =  I_LAYOUT
              IT_FIELDCAT                 = IT_FIELDCAT
          TABLES
              T_OUTTAB                    = IT_DISPLAY
            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.
        REFRESH IT_DISPLAY.
        CLEAR IT_DISPLAY.
      ELSEIF R2 = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
                 I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
                 IS_LAYOUT                     =  I_LAYOUT
                 IT_FIELDCAT                 =  IT_FIELDCAT
             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.
        REFRESH IT_DISPLAY.
        CLEAR IT_DISPLAY.
      ENDIF.
    ENDFORM.                    " DISPLAY_OUTPUT
    *&      Form  SELECT_CONDITION
          text
    -->  p1        text
    <--  p2        text
    FORM SELECT_CONDITION.
      IF R2 = 'X'.
        CLEAR WA_DISPLAY.
        SORT IT_DISPLAY BY MATNR SERNR MBLNR ZEILE.
        DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.
        LOOP AT IT_DISPLAY WHERE ZEILE = '0002'.
          READ TABLE IT_DISPLAY WITH KEY MATNR = IT_DISPLAY-MATNR
          SERNR = IT_DISPLAY-SERNR ZEILE = '0001'.
          IF SY-SUBRC = 0.
            DELETE IT_DISPLAY.
          ENDIF.
        ENDLOOP.
        SORT IT_DISPLAY BY MATNR SERNR BWART MBLNR.
        DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.
        LOOP AT IT_DISPLAY.
          IF WA_DISPLAY IS INITIAL.
            WA_DISPLAY =  IT_DISPLAY.
          ENDIF.
          LOOP AT IT_DISPLAY WHERE MATNR = WA_DISPLAY-MATNR
          AND SERNR = WA_DISPLAY-SERNR.
            IF IT_DISPLAY-BUDAT > WA_DISPLAY-BUDAT.
              WA_DISPLAY = IT_DISPLAY.
            ELSE.
              DELETE IT_DISPLAY.
            ENDIF.
          ENDLOOP.
          APPEND WA_DISPLAY TO IT_TEMP.
          CLEAR WA_DISPLAY.
        ENDLOOP.
        DELETE ADJACENT DUPLICATES FROM IT_TEMP.
        IF NOT IT_TEMP[] IS INITIAL.
          IT_FINAL[] = IT_TEMP[].
        ENDIF.
      ENDIF.
    ENDFORM.                    " SELECT_CONDITION
    Regards,
    Ashwini

  • Reg: CheckBox in ALV Grid Display

    Hi all,
    My requirement is to display checkbox field in ALV Grid which is editable.
    And i also need to get all the records that i have selected in ALV grid.
    How can i do it. Kindly Help me with sample codes.
    Its Urgent.
    <REMOVED BY MODERATOR>
    Regards
    Naveen
    Edited by: Alvaro Tejada Galindo on Feb 18, 2008 5:41 PM

    Hi,
    First declare ur itab with the first field of length 1 char,
    Dont mention dat in the field cat.
    Give that field name and itab name in the layout.
    as
      is_layout-box_fieldname = 'CHECK'.
      is_layout-box_tabname   = 'IT_FINAL'.
    u can dispaly ur checkbox in the output dispaly.
    now to read the selected checkboxes u need to read the display with the syntax..
    first describe the table + headre length = w_count.
    FORM sub_read_checkbox.
      DATA: w_cbox TYPE char1.
      REFRESH : it_mail,it_text,it_selected.                   
      REFRESH : it_selected.
      DO w_count TIMES.
        READ LINE sy-index FIELD VALUE  : is_final-cbox  INTO w_cbox.
        IF w_cbox = c_x.
          READ TABLE it_header INTO is_header WITH KEY lifnr = is_header-lifnr
                                                       u_r   = is_header-u_r.
          IF sy-subrc = 0.
            APPEND is_header TO it_selected .
            CLEAR: is_header,w_cbox.
          ENDIF.
        ENDIF.
      ENDDO.
    endform.
    This serves ur purpose.
    Regards............

  • ALV GRID DISPLAY -Problem with Layout

    Hi,
    I'm using ALV GRID DISPLAY. I ran the program and in the output i created a layout Test1.Later i created a layout Test2. Now when i run the report, when i select layout Test1, the display is not as selected for the layout. but when i manualy select the layout throu change layout-->Test1, the display is working good. Can someone tell me what the problem can be?
    Thanks
    Challa

    hi,
    in the FM have you filled the structure IS_VARIANT.
    is_variant-report = sy-repid.
    is_variant-variant = <variant name>.
    Regards,
    Leo

  • Need to add Header  and footer in an alv grid display output.

    How can I add header and footer in an alv grid dispay output.
    For the grid display, I am using the function module "REUSE_ALV_GRID_DISPLAY".

    HI,
    call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
                i_callback_top_of_page   = 'TOP-OF-PAGE'
                i_callback_html_end_of_list = 'END_OF_LIST_HTML'
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
                i_save                  = 'X'
           tables
                t_outtab                = it_ekko
           exceptions
                program_error           = 1
                others                  = 2.
    FORM end_of_list_html USING end TYPE REF TO cl_dd_document.
      DATA: ls_text TYPE sdydo_text_element,
            l_grid     TYPE REF TO cl_gui_alv_grid,
            f(14) TYPE c VALUE 'SET_ROW_HEIGHT'.
      ls_text = 'Footer title'.
    adds and icon (red triangle)
      CALL METHOD end->add_icon
        EXPORTING
          sap_icon = 'IL'.
    adds test (via variable)
      CALL METHOD end->add_text
        EXPORTING
          text         = ls_text
          sap_emphasis = 'strong'.
    adds new line (start new line)
      CALL METHOD end->new_line.
    display text(bold)
      CALL METHOD end->add_text
        EXPORTING
          text         = 'Bold text'
          sap_emphasis = 'strong'.
    adds new line (start new line)
      CALL METHOD end->new_line.
    display text(normal)
      CALL METHOD end->add_text
        EXPORTING
          text         = 'Nor'.
    adds new line (start new line)
      CALL METHOD end->new_line.
    display text(bold)
      CALL METHOD end->add_text
        EXPORTING
          text         = 'Yellow '
          sap_emphasis = 'str'.
    adds and icon (yellow triangle)
      CALL METHOD end->add_icon
        EXPORTING
          sap_icon = 'IC''.
    display text(normal)
      CALL METHOD end->add_text
        EXPORTING
          text         = 'Mor'.
    *set height of this section
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          e_grid = l_grid.
      CALL METHOD l_grid->parent->parent->(f)
        EXPORTING
          id     = 3
          height = 14.
    ENDFORM. "end_of_list_html.
    This will solve  it. Post if you need more help in this.
    Regards,
    Madhu.

  • Problem with ALV Grid display

    Hi,
    I have developed  ALV Grid Report. It is working fine.
    But while i am coming from alv grid display to program
    by pressing BACK button it is showing one more screen
    which is empty. Again I press back button it is coming to
    selection screen. I don't want that empty screen.What is
    the problem. Can u help me in this regard.?
    Thanks
    Narasimha

    hi
    under the usercommand of back button use Exit Statement
    like
    At user-comand
    IF sy-ucom = 'Back'
    EXIT
    ENdif.
    Cheers
    Snehi

  • Facing a Problem while downloading the data from ALV Grid to Excel Sheet

    Hi Friends,
    Iam facing a problem while downloading the data from ALV Grid to excel sheet. This is working fine in Development server , when comes to Quality and Production servers I have this trouble.
       I have nearly 11 fields in ALV Grid and out of which one is PO number of length 10 , all the ten numbers are visible in the excel sheet if we download it from development server but when we download it from Quality or Production it is showing only 9 numbers.
    Can any one help me out in this case.

    hi...
    if this problems happens dont display the same internal as u finally got.
    just create new internal table without calling any standard data elements and domains... but the new internal table s similar like ur final internal table and move all the values to new int table.
    for eg.
    ur final internal int table for disp,
         data : begin of itab occur 0,
                        matnr like mara-matnr,
                   end of itab.
    create new like this,
               data : begin of itab occur 0,
                        matnr(12) type N,
                   end of itab.

  • ALV grid display the subtotal not getting for one column at the output

    Hi,
    I am working one report ALV grid display and subtotal is not getting for one paricular coulumn.
    Eventhough that column has some values.
    So can anyone give the proper solution.
    Waiting quick response.
    Best Regards,
    Bansi

    Hi
    see this link .
    https://wiki.sdn.sap.com/wiki/display/ABAP/SUBTOTALinALV
    or try this program.
    REPORT zalv.
    DATA:
    t_sflight TYPE TABLE OF sflight,
    fs_sflight TYPE sflight.
    DATA:
    r_container TYPE REF TO cl_gui_custom_container,
    r_grid TYPE REF TO cl_gui_alv_grid.
    *FIELD CATALOG
    DATA:
    t_fcat TYPE lvc_t_fcat,
    fs_fcat TYPE lvc_s_fcat.
    *SORTING THE BASIC LIST
    DATA:
    t_sort TYPE lvc_t_sort,
    fs_sort TYPE lvc_s_sort.
    fs_fcat-fieldname = 'PRICE'.
    fs_fcat-do_sum = 'X'.
    APPEND fs_fcat TO t_fcat.
    fs_sort-spos ='1'.
    fs_sort-fieldname = 'CARRID'.
    fs_sort-down = 'X'.
    fs_sort-group = '*'.
    fs_sort-subtot = 'X'.
    APPEND fs_sort TO t_sort.
    SELECT * FROM sflight INTO TABLE t_sflight.
    CALL SCREEN 100.
    *& Module STATUS_0100 OUTPUT
    MODULE status_0100 OUTPUT.
    SET PF-STATUS 'SCREEN1'.
    SET TITLEBAR 'TITLE1'.ENDMODULE. " STATUS_0100 OUTPUT
    *& Module USER_COMMAND_0100 INPUT
    MODULE user_command_0100 INPUT.
    CASE sy-ucomm.
    WHEN 'BACK'.
    LEAVE TO SCREEN 0.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    **& Module HANDLER OUTPUT
    MODULE list OUTPUT.
    CREATE OBJECT r_container
    EXPORTING
    container_name = 'CONTAINER'.
    CREATE OBJECT r_grid
    EXPORTING
    i_parent = r_container.
    CALL METHOD r_grid->set_table_for_first_display
    EXPORTING
    i_structure_name = 'SFLIGHT'
    CHANGING
    it_fieldcatalog = t_fcat
    it_outtab = t_sflight
    it_sort = t_sort.
    ENDMODULE. "list OUTPUT
    Regards
    Hareesh Menon

Maybe you are looking for

  • Where is this "software"?

    HELLO!!! I have typed in a TON of other questions and everyone keeps tellin gme the SAME thing, so I'm just going to type my OWN question... OK Here goes!!!!! I JUST bought a 2nd gen ipod shuffle... Followed the instructions(dl itunes, plugged it in,

  • AIR 1.5.2 namespace throws error in FB 3 standalone

    I am developing in the standalone Flex Builder 3 Standard IDE, running the latest Flash Player and matching debug player 10.0.32.18 and have installed the new AIR 1.5.2 runtime. I have an AIR application that is built on the Flex 3.2 SDK. When I chan

  • Fuji raw files from iPad Camera Roll to Lightroom Mobile

    I can not transfer Fuji XE2 Raw files from my iPad Camera Roll into  Lightroom Mobile. They will transfer from Lightroom 5.4 into mobile and can be edited which proves mobile can handle them. However not a lot of good for location use! Does anyone el

  • Add user search functionality in a custom form

    Hi, I am new to IDM . I have two doubts regarding search functionality. Please help me out. 1.     I want to add a user search option for a field and populate the value(user name ) from the searched result to that filed. The search option should have

  • BUG: unable to handle kernel NULL pointer dereference at 0000000000000

    5月 18 18:18:55 thinkman kernel: [<ffffffff81077683>] do_exit+0x3b3/0xbb0 5月 18 18:18:55 thinkman systemd[1]: Stopping Create Volatile Files and Directories... 5月 18 18:18:55 thinkman systemd[1]: Stopped target Local File Systems. 5月 18 18:18:55 think