使用不带SALV类的转换退出的输出

问题描述

在SE16N的“技术设置”中,有一个“没有转换退出输出”复选框。
在我的程序中,我使用CL_SALV_TABLE类创建ALV。是否可以在类似于SE16N的程序中放置一个复选框,当用户启用该复选框时,我的ALV将像SE16N一样显示数据?
谢谢
埃里亚斯

解决方法

这就是我广泛使用SALV时想要的。

** Display the data Without Conversion
  DATA: l_tabledescr_ref TYPE REF TO cl_abap_tabledescr,l_descr_ref      TYPE REF TO cl_abap_structdescr,wa_table         TYPE abap_compdescr.
  IF p_woconv = 'X'.
    TRY.
        columns = oref_table->get_columns( ).
        l_tabledescr_ref ?= cl_abap_typedescr=>describe_by_data( <fs_itab> ).
        l_descr_ref ?= l_tabledescr_ref->get_table_line_type( ).

        LOOP AT l_descr_ref->components INTO wa_table.
          DATA(edit_mask) = columns->get_column( wa_table-name )->get_edit_mask( ).
          IF edit_mask(2) = '=='.
            columns->get_column( wa_table-name )->set_edit_mask( ' ' ).
          ENDIF.
          IF wa_table-type_kind = 'C' OR wa_table-type_kind = 'N'.
            columns->get_column( wa_table-name )->set_leading_zero( ).
          ENDIF.
        ENDLOOP.

      CATCH cx_salv_not_found.
    ENDTRY.
  ENDIF.

如果有人对SALV有更好的解决方案,我将有义务与我们分享。
谢谢大家的回答。
埃里亚斯

,

在SAP中一切皆有可能,但是我不确定使用类CL_SALV_TABLE是否可以实现您的请求。我建议您使用CL_GUI_ALV_GRID类,该类实际上是动态的,可以根据情况进行实现。

在线上有很多教程,但我会尝试做一些小总结

  1. 创建父容器CL_GUI_CUSTOMCONTAINER
  2. 创建ALV网格并设置父级。
  3. 获取字段目录(也可以动态以适合任何表)
  4. 创建Output表并传递操作
  5. 显示ALV

确保可以根据用户的选择设置“显示的表格”(复选框)

如果需要更多帮助,请写下来