1、建立自定义函数1.1 整数显示FUNCTION CONVERSION_EXIT_Z0002_OUTPUT.*"----------------------------------------------------------------------*"*"Local interface:*" IMPORTING*" REFERENCE(INPUT)*" EXPORTING*" REFERENCE(OUTPUT)*"---------------------------------------------------------------------- DATA: OUTPUT1(12) TYPE C, OUTDATUM TYPE INT4. IF INPUT <> SPACE. OUTDATUM = INPUT. if input > 0. move OUTDATUM TO OUTPUT . else. OUTDATUM = OUTDATUM * ( -1 ). move OUTDATUM TO OUTPUT1 . CONCATENATE '-' output1 into output. CONDENSE output NO-GAPS . endif. ELSE. OUTPUT = SPACE. ENDIF.ENDFUNCTION. 1.2 浮点数显示FUNCTION conversion_exit_zsign_output.*"----------------------------------------------------------------------*"*"Local interface:*" IMPORTING*" REFERENCE(INPUT)*" EXPORTING*" REFERENCE(OUTPUT)*"----------------------------------------------------------------------
DATA: output1(19) TYPE c, output2(19), outdatum TYPE p DECIMALS 2. IF not input is initial. outdatum = input. IF input > 0. WRITE outdatum TO output1 ."RIGHT-JUSTIFIED . CONCATENATE ' ' output1 INTO output1. ELSE. outdatum = outdatum * ( -1 ). WRITE outdatum TO output1 ."RIGHT-JUSTIFIED. CONCATENATE '-' output1 INTO output1. ENDIF. ELSE.* output = '0.00'. CLEAR output1. ENDIF. CONDENSE output1 NO-GAPS . WRITE output1 TO output2 RIGHT-JUSTIFIED . output = output2.ENDFUNCTION.
2、设置ALV输出格式字段格式 clear ls_fcat. ls_fcat-fieldname = 'INT4'. ls_fcat-inttype = 'I'. ls_fcat-intlen = 10. ls_fcat-col_pos = l_lin. ls_fcat-seltext_s = ls_fcat-fieldname. ls_fcat-seltext_m = ls_fcat-fieldname. ls_fcat-seltext_l = ls_fcat-fieldname. ls_fcat-edit_mask = '==Z0002'. append ls_fcat to ct_fcat.
3、调用函数就可达到负数符号前显的效果。 call function 'REUSE_ALV_GRID_DISPLAY' exporting it_fieldcat = lt_fcat tables t_outtab = gt_outtab exceptions program_error = 1 others = 2.