日常使用ALV報表時,如果不想顯示指定列的小位,可以通過判斷字段名,指定 **-DECIMALS_OUT = '0'. "去掉小數點后的0
DATA:
g_line TYPE slis_fieldcat_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv.
* 輸出 alv 報表 FORM frm_show_alv . DEFINE append_alv_field. CLEAR g_line. g_line-fieldname = &1. g_line-tabname = 'GT_ALV'. g_line-reptext_ddic = &2. g_line-seltext_l = &2. g_line-seltext_m = &2. g_line-seltext_s = &2. g_line-cfieldname = &3. g_line-ctabname = &4. g_line-no_out = &5. g_line-no_zero = &6. g_line-outputlen = &7. g_line-qfieldname = &8. g_line-just = &9. g_line-ddictxt = 'L'. g_line-do_sum = 'X'. if g_line-fieldname = 'LFIMG'. "如果字段名為LFIMG,則將小數位設置為0,其它的設置為2位 g_line-DECIMALS_OUT = '0'. "去掉小數點后的0 else. g_line-DECIMALS_OUT = '2'. "去掉小數點后的0 endif. APPEND g_line TO gt_fieldcat. END-OF-DEFINITION. **ALV 顯示字段 REFRESH:gt_fieldcat. gt_layout-colwidth_optimize = 'X'. " 自適應寬度 append_alv_field 'VKORG' '公司' '' '' '' '' '' '' ''. append_alv_field 'vtweg' '渠道' '' '' '' '' '' '' ''. append_alv_field 'WADAT_IST' '票據日期' '' '' '' '' '' '' ''. append_alv_field 'VBELN' '交貨單號' '' '' '' '' '' '' ''. append_alv_field 'RYBH' '業務員號' '' '' '' '' '' '' ''. append_alv_field 'RYXM' '業務員姓名' '' '' '' '' '' '' ''. append_alv_field 'kunnr' '客戶號' '' '' '' '' '' '' ''. append_alv_field 'name1' '客戶名稱' '' '' '' '' '' '' ''. append_alv_field 'matnr' '物料號' '' '' '' '' '' '' ''. append_alv_field 'maktx' '物料描述' '' '' '' '' '' '' ''. append_alv_field 'lfart' '類型' '' '' '' '' '' '' ''. append_alv_field 'LFIMG' '交貨數量' '' '' '' '' '' '' ''. append_alv_field 'hsdj' '單價' '' '' '' '' '' '' ''. append_alv_field 'hsje' '金額' '' '' '' '' '' '' ''. append_alv_field 'NETWR' '訂單金額' '' '' '' '' '' '' ''. append_alv_field 'KWMENG' '訂單數量' '' '' '' '' '' '' ''. append_alv_field 'VTWEG' '行項目' '' '' '' '' '' '' ''. append_alv_field 'DDBH' '訂單號' '' '' '' '' '' '' ''. append_alv_field 'vkbur' '銷售辦公室' '' '' '' '' '' '' ''. append_alv_field 'vkgrp' '銷售組' '' '' '' '' '' '' ''. append_alv_field 'bzirk' '銷售地區' '' '' '' '' '' '' ''. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid * i_callback_pf_status_set = 'FRM_STATUS' "GUI指定子程序 * i_callback_user_command = 'FRM_USER_COMM' "客戶命令指定子程序 is_layout = gt_layout it_fieldcat = gt_fieldcat[] * it_events = events[] TABLES t_outtab = gt_tab[] "指定要顯示的內表名稱 EXCEPTIONS program_error = 1 OTHERS = 2. ENDFORM.
**判斷字段名稱,設置指定字段的小數位
if g_line-fieldname = 'LFIMG'. "如果字段名為LFIMG,則將小數位設置為0,其它的設置為2位 g_line-DECIMALS_OUT = '0'. "去掉小數點后的0 else. g_line-DECIMALS_OUT = '2'. "去掉小數點后的0 endif.
執行效果:

