Abap 使用不带转换出口的输出和SALV类
在SE16N的“技术设置”中,有一个复选框,用于在不退出转换的情况下输出。Abap 使用不带转换出口的输出和SALV类,abap,alv,sap-data-dictionary,Abap,Alv,Sap Data Dictionary,在SE16N的“技术设置”中,有一个复选框,用于在不退出转换的情况下输出。 在我的程序中,我使用类CL_SALV_表来创建ALV。是否可以在程序中设置一个与SE16N类似的复选框,当用户启用它时,我的ALV将显示与SE16N类似的数据? 谢谢 Elias在SAP中一切都是可能的,但是我不确定您的请求是否可以使用class CL_SALV_表。我建议您使用类CL_GUI_ALV_GRID,它是真正动态的,可以根据您的场景来实现 网上有很多教程,但我会尽量做一个小总结 创建父容器CL\u GUI\u
在我的程序中,我使用类CL_SALV_表来创建ALV。是否可以在程序中设置一个与SE16N类似的复选框,当用户启用它时,我的ALV将显示与SE16N类似的数据?
谢谢
Elias在SAP中一切都是可能的,但是我不确定您的请求是否可以使用class CL_SALV_表。我建议您使用类CL_GUI_ALV_GRID,它是真正动态的,可以根据您的场景来实现 网上有很多教程,但我会尽量做一个小总结
如果您需要更多帮助,请写下这是我想要的,因为我正在广泛使用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.
**无需转换即可显示数据
数据:l_tabledescr_ref TYPE ref至cl_abap_tabledescr,
l_descr_ref TYPE ref TO cl_abap_structdescr,
wa_表类型abap_compdescr。
如果p_woconv='X'。
尝试
columns=oref\u table->get\u columns()。
l\u tabledescr\u ref?=cl\u abap\u typedescr=>description\u by\u data()。
l\u descr\u ref?=l\u tabledescr\u ref->get\u table\u line\u type()。
在l_descr_ref->组件处循环到wa_表中。
数据(编辑掩码)=列->获取列(wa表名)->获取编辑掩码()。
如果编辑_掩码(2)='='='。
列->获取列(wa\U表格名称)->设置编辑掩码(“”)。
恩迪夫。
如果wa_table-type_-kind='C'或wa_table-type_-kind='N'。
columns->get_column(wa_table-name)->set_leading_zero()。
恩迪夫。
结束循环。
未找到捕获残次。
结束。
恩迪夫。
如果有人对SALV有更好的解决方案,我将非常感谢与我们分享。谢谢大家的回答。
Elias这并不是问题的真正答案,OP不需要创建网格的一般方法,而是关于数据元素显示模式的特定问题是否有字段目录?字段目录的编辑掩码字段可用于此操作。例如,如果字段长度为10个字符,则可以添加编辑掩码,该值为:“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,因此字段值将在没有任何内部转换的情况下被接管。@JózsefSzikszai可能值得将其转换为answer最后,答案在SET_EDIT_MASK中,特别是在下面的命令中:columns->get_column('MATNR')->SET_EDIT_MASK('')。现在,我正在寻找一种方法来为所有具有转换的字段执行此操作。谢谢