ALV Resfresh在SE80中工作正常,但与z Tcode不正常



我正在使用此代码来刷新我的alv-grid:

CALL METHOD go_alv->refresh_table_display
EXPORTING
  is_stable = is_stable.
go_alv is TYPE REF TO cl_gui_alv_grid.
is_stable is TYPE lvc_s_stbl and set like this:
is_stable-row = 'X'.
is_stable-col = 'X'.

在SE80中启动报告时,这无问题。但是,当我使用我在SE93中为其创建的T代码打开报告时,网格确实会得到刷新,但是IS_STABALE参数以某种方式被忽略了。结果,重置滚动位置。

我尝试在tcode中使用GUI选项,但它不起作用。

它通过报告或通过事务代码开始的行为相同。

您可以自己检查此小程序,然后创建一个运行此程序的事务代码,并检查问题是否仍然发生。如果没有,请检查代码中的不同之处。如果您找不到任何区别,简化代码或重新创建单独的程序和事务代码等,可以帮助您解决问题。

TABLES sscrfields.
DATA go_alv TYPE REF TO cl_gui_alv_grid.
DATA gt_sflight TYPE TABLE OF sflight.
PARAMETERS dummy.
SELECTION-SCREEN FUNCTION KEY 1.
AT SELECTION-SCREEN OUTPUT.
  sscrfields-functxt_01 = 'Refresh'.
  IF go_alv IS INITIAL.
    CREATE OBJECT go_alv
      EXPORTING
        i_parent = cl_gui_container=>screen0.
    SELECT * FROM sflight INTO TABLE gt_sflight.
    go_alv->set_table_for_first_display(
        EXPORTING i_structure_name = 'SFLIGHT'
        CHANGING it_outtab = gt_sflight ).
  ENDIF.
AT SELECTION-SCREEN.
  IF sscrfields-ucomm = 'FC01'.
    DATA gs_sflight TYPE sflight.
    MODIFY gt_sflight FROM gs_sflight TRANSPORTING price currency WHERE price <> 0.
    DATA: ls_stbl TYPE lvc_s_stbl.
    ls_stbl-col = abap_true.
    ls_stbl-row = abap_true.
    DATA: l_soft  TYPE char01.
    l_soft = abap_true. " do not recalculate totals
    go_alv->refresh_table_display(
          EXPORTING
            is_stable       = ls_stbl
            i_soft_refresh  = l_soft  " default = false
          EXCEPTIONS
            finished = 1 ).
  ENDIF.
AT SELECTION-SCREEN ON EXIT-COMMAND.
  go_alv->free( ).
  FREE go_alv.

相关内容

  • 没有找到相关文章

最新更新