[英]Is there a way to prevent CL_SALV_TABLE from removing leading spaces?
[英]Prevent CL_SALV_TABLE from removing leading zeros?
請查看以下這段代碼,其中我將 Test2 中的零作為值,將 Test3 中的兩個零作為值。 我使用了 set_leading_zero 但仍然刪除了前導零。
CLASS lcl_main DEFINITION FINAL CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS:
main.
ENDCLASS.
CLASS lcl_main IMPLEMENTATION.
METHOD main.
TYPES: BEGIN OF l_tys_test,
name TYPE string,
value TYPE i,
END OF l_tys_test,
l_tyt_test TYPE STANDARD TABLE OF l_tys_test WITH EMPTY KEY.
DATA(lt_test) = VALUE l_tyt_test(
( name = `Test1` value = 1 )
( name = `Test2` value = 02 )
( name = `Test3` value = 003 )
).
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(lo_salv_table)
CHANGING
t_table = lt_test
).
lo_salv_table->get_columns( )->get_column( 'VALUE' )->set_leading_zero( abap_true ).
lo_salv_table->display( ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
lcl_main=>main( ).
同意 Jozsef 和 Sandra,您無法使用整數數據類型來做到這一點。
如何通過 ALV 網格實現這一點的唯一方法是將您的VALUE
字段重新聲明為 numchar
TYPES: BEGIN OF
...
value TYPE n LENGTH 10,
...
END OF.
並利用EDIT_MASK函數,該函數可用於WRITE
語句和 ALV 網格。
把這個而不是set_leading_zero( )
調用放在你的方法中
lo_salv_table->get_columns( )->get_column( 'VALUE' )->set_edit_mask( '___________' ).
類型定義中的LENGTH
規范是要放置的前導零的數量。
您可以使用 set_zero 方法設置為 false。
DATA(lo_column) = lo_alv->get_columns( )->get_column( 'PERNR' ). lo_column->set_long_text( 'Staff No' ). lo_column->set_zero( abap_false ).
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.