Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

After system PATCH the PF-STATUS of REUSE_ALV_GRID_DISPLAY does not work

0 Kudos

Our customer used the well known function module REUSE_ALV_GRID_DISPLAY in various reports to display grids (ALV).

The optional parameter I_CALLBACK_PF_STATUS_SET isn't used so that the pf-status STANDARD_FULLSCREEN of the function group KKBL will be set.

After patching our system (SAPKB64021) the menu of the reports shows '????????' when we are using English. The system further works in the German language without faults.

We have copied one of these 'corrupted' reports as a local object. Then we have build a form routine STATUS_SET corresponding to note 1089014 about the parameter. In this form we have set the pf-status STANDARD_FULLSCREEN of the function group of SLVC_FULLSCREEN (like described in note 1089014) - unfortunately without any success.

Can anybody help us ?

Thanks & a good new year

Martin

SAP_BASIS 640 0021 SAPKB64021 SAP Basis Component

SAP_ABA 640 0021 SAPKA64021 Cross-Application Component

ST-PI 2005_1_640 0007 SAPKITLQH7 SAP Solution Tools Plug-In

PI_BASIS 2005_1_640 0012 SAPKIPYJ6C Basis Plug-In (PI_BASIS) 2005_1_640

SAP_BW 350 0021 SAPKW35021 SAP_BW 350

SAP_HR 500 0038 SAPKE50038 Human Resources

SAP_APPL 500 0018 SAPKH50018 Logistics and Accounting

3 REPLIES 3

Former Member
0 Kudos

Probably NOT the answer you want but THROW AWAY all the old SLIS non OO ALV stuff as it's complicated to maintain, obsolete and won't be maintained for too much longer

For non editable grids you can use the SALV classes but for decent editable grids use cl_gui_alv_grid.

Here's a simple example -- I display some data out of VAPMA.

Because I use a dynamic table and FCAT you can use this program as a model to display ALMOST ANY DATA STRUCTURE.

You can use the standard functionality to add / delete lines via the ALV standard toolbar.

I use dynamic FCAT and table so ANY reasonable structure will work.

You will need to create a blank screen 100 (SE51) with a custom control on it called CCONTAINER1 and a standard GUI status (SE41) with say BACK, CANCEL and EXIT buttons on it.

Now here's the SIMPLE code


Program ZZZ_SIMPLE_EDITABLE_GRID.
tables: vapma.
* Define any structure
types:  begin of s_elements,
  vbeln   type vapma-vbeln,
  posnr   type vapma-posnr,
  matnr   type vapma-matnr,
  kunnr   type vapma-kunnr,
  werks   type vapma-werks,
  vkorg   type vapma-vkorg,
  vkbur   type vapma-vkbur,
  status  type c,

end of  s_elements.

* end of your structure

data lr_rtti_struc type ref to cl_abap_structdescr .
data:
    zog                     like line of lr_rtti_struc->components .
  data:
    zogt                    like table of zog,
  wa_it_fldcat type lvc_s_fcat,
  it_fldcat type lvc_t_fcat ,
  dy_line            type ref to data,
  dy_table           type ref to data.


 data:  dref               type ref to data.
 field-symbols: <fs> type any,
    <dyn_table>    type  standard table,
    <dyn_wa>.

data grid_container1 type ref to cl_gui_custom_container .
  data grid1 type ref to cl_gui_alv_grid .
data: ok_code type sy-ucomm.
data: STRUCT_GRID_LSET type lvc_s_layo.

*now I want to build a field catalog
* First get your data structure into a field symbol

create data dref type s_elements.
  assign dref->* to <fs>.

* Now get the structure components into a table

  lr_rtti_struc ?= cl_abap_structdescr=>describe_by_data( <fs> ).
    zogt[]  = lr_rtti_struc->components.

* table zogt[]  contains all the elements now required to
* to  build the field catalog


 loop at zogt into zog.
      clear wa_it_fldcat.
      wa_it_fldcat-fieldname = zog-name .
      wa_it_fldcat-datatype = zog-type_kind.
      wa_it_fldcat-inttype = zog-type_kind.
      wa_it_fldcat-intlen = zog-length.
      wa_it_fldcat-decimals = zog-decimals.
      wa_it_fldcat-coltext = zog-name.
      wa_it_fldcat-lowercase = 'X'.
      append wa_it_fldcat to it_fldcat .
    endloop.

* Add any changes to your field catalog here if you want to
* such as your own column names etc.

* Let's create a dynamic table and populate it.
* We use the field catalog just built to create our dynamic table.

call method cl_alv_table_create=>create_dynamic_table
       exporting
            it_fieldcatalog = it_fldcat
       importing
            ep_table = dy_table.

* OK Let's populate it

assign dy_table->* to <dyn_table>.
  create data dy_line like line of <dyn_table>.
  assign dy_line->* to <dyn_wa>.

  select vbeln posnr matnr kunnr werks vkorg vkbur
         up to 200 rows
         from vapma
         into  corresponding fields of table <dyn_table>.

* Now call the screen to display the grid

call screen 100.

module status_0100 output.

if grid_container1 is initial.
create object grid_container1
        exporting
           container_name = 'CCONTAINER1'.
    create object  grid1
       exporting
          i_parent = grid_container1.
  struct_grid_lset-edit = 'X'.    "To enable editing in ALV

call method grid1->set_table_for_first_display
  exporting is_layout =  struct_grid_lset
  changing
             it_outtab       = <dyn_table>  "our dynamic table"
             it_fieldcatalog = it_fldcat.      " Our field catalog

endif.
set pf-status '001'.
     set titlebar '000'.

endmodule.

  MODULE user_command_0100 INPUT.
      case sy-ucomm.
    when 'BACK'.
      leave program.
    when 'EXIT'.
      leave program.
    when 'RETURN'.
      leave program.
    when others.
  endcase.
endmodule.

As you can see the program is COMPLETELY GENERIC so you can display almost ANY structure you want merely by changing a few lines of code.

You can also add events, customized toolbars etc etc. so you can control double click events, data entry etc etc.

Much more flexible than using the old methods

Incidentally if you build some type of Function Module for calling the Grid you can avoid having to use a separate screen for each program as well.

So make a good New Year's resolution for 2008 -- NO MORE OLD FASHIONED ALV GRIDS.

Repeat again

I WILL NOT USE OLD FASHIONED SLIS ALV GRIDS IN FUTURE

Cheers and good luck

jimbo

Former Member
0 Kudos

Yep, we had that issue too... not sure if there's a SAP note that fixes it but I found that hopping into the PF-Status in display mode and hitting "Activate" fixed it just fine (i.e. in the report go System > Status then double click on the "GUI Status" value and click Ctrl-F3)... and the ?????? then disappeared.

Jonathan

0 Kudos

Hello Jonathan,

with this kind of re-activation it works. - Merci

Thanks also from my collague (Customer), who needs this solution,

Martin