ABAP WRITE、WRITE TO、FORMAT语句

时间:2023-03-09 08:55:10
ABAP WRITE、WRITE TO、FORMAT语句
ABAP WRITE、WRITE TO、FORMAT语句
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4292819.html

WRITE

,
      pos ,
      )   ,
      )      ) )

右对齐

s

5

右对齐

P

2 * 字段长度(+1如果有小数点)

右对齐

F

24

右对齐

I

11

右对齐

C

字段长度,maximum 255

左对齐

D

8

左对齐

N

字段长度,maximum 255

左对齐

T

6

左对齐

X

2 * 字段长度,maximum 255

左对齐

数字数据类型 F、I 和 P 是右对齐的,左边用空格填充,如果有足够的空间,也输出千位分隔符。,不能比10小,也不能是默认的输出宽度)来输出数据:

) d, ()d.
20110709 20110709  2011.07.09

时间也是一样:

) t , () t.
111111 111111  11:11:11

下面字段number变量实际上输出总长为 13,即9 位数字(包括小数点)、前导负号和作为分隔符的两个逗号。但因为这里的变量为P(8)类型,所以默认情况下(Write语句中未使用len参数)系统会为P(8)类型预留输出长度为 2*8+1(一位符号位)=17,所以前面剩余的位置用四个空格填充。

.
) ) )

GUI-dependent

{1 |COL_HEADING }

1

Gray-blue

{ 2 |COL_NORMAL }

2

Light gray

{ 3 | COL_TOTAL}

3

Yellow

{ 4 | COL_KEY }

4

Blue-green

{ 5 | COL_POSITIVE }

5

Green

{ 6 | COL_NEGATIVE }

6

Red

{ 7 | COL_GROUP }

7

orange桔黄

OFF选项等效于color为COL_BACKGROUND或者col为0,这也是默认值,此时色依赖于GUI window。

INTENSIFIED [{ON|OFF}|{= flag }]

INTENSIFIED选项设置background color高亮显示(时,background color会使用高亮方式来显示(默认),否则为OFF或flag为0时,使用弱的background color。例外:An exception to this is the COL_BACKGROUND background color, used by INTENSIFIED OFF to control the foreground color.

如果ON、OFF、flag都没指定时,时,则COLOR用来设置前景色(注:时,则COLOR用来设置背景色的(默认)

如果ON、OFF、flag都没指定时,.

ABAP WRITE、WRITE TO、FORMAT语句

INPUT

INPUT [{ON|OFF}|{= flag}]

使用ON选项(或者flag不为0)格式化后继输出字段为可输入字段(Input-enabled)。

Input-enabled字段对于输出选项COLOR,INVERSE,andHOTSPOT不再起作用,但INTENSIFIED会有效

可以格式化ULINE为输入字段,但空行SKIP不能。

如果ON, OFF, nor flag都不输入时,默认为ON

如果输出的字段只包含空格,则不会显示为可输入,除非在之前使用了SET BLANK LINES ON。

时,则显示为表格框线(默认);否则显示为普通的字符。

如果ON, OFF, nor flag都指定,默认为ON

"FORMAT FRAMES ON.

123

CURRENCY cur

不能与ENVIRONMENT TIME FORMAT 、 TIME ZONE、STYLE一起使用,适用于i, p, f类型。

数据库字段TCURC-WAERS存储了货币代码,一般货币都是精确到小数点后两位,除非这些货币代码在 TCURX-CURRKEY出现,则此时的货币的小数位以TCURX-CURRDEC为准

-/+scale,然后对于整数(I或P无小数)取整(与DECIMALS选项一起使用时则会保留数位)。对于浮点数f,好像不起作用

.

123.46

12,345.600

1,234.560

12.346

1.235

UNIT unit

不能与DECIMALS, ROUND, STYLE, ENVIRONMENT TIME FORMAT, TIME ZONE一起使用

单位代码可从数据库表 T006-MSEHI获得,DECAN列决定了小数点的位置,如果指定的单位代码中T006中不存在,则会忽略。如果为P类型同时有CURRENCY选项,则会先执行CURRENCY选项 ,f类型会忽略。

对于f类型,UNIT选项与DECIMALS作用一样  请参见 知识小结.docx文档

DATA

15:46:33

示例:因为数据元素(data element)S_FLTIME的domain域S_DURA在词典中关联一个名叫“SDURA”的转换规则(请看后面两个截图),所以msk返回"==SDURA",然后WRITE语句使用该规则将seconds转换分钟的格式进行显示:

)     .

 IMPORTING
   位的年表示,并且有日期分隔符,但日期分隔符与年月日的输入顺序是由Client端用户主数据设置的值来决定的,所以这两种格式只是决定了日期输出时年的位数与年月日的输入顺序,它只是个掩码,不是真正日期。

  • DD/MM/YYYYand MM/DD/YYYY
    Both additions have the same effect. The date output has a four-digit year value and separator. The separator and the order are taken from the definition for date output in the user master record. DD/MM/YYYY und MM/DD/YYYY具有同样的作用,日期输入时使用4位的年表示,并且有日期分隔符,但日期分隔符与年月日的输入顺序是由Client端用户主数据设置的值来决定的,所以这两种格式只是决定了日期输出时年的位数与年月日的输入顺序,它只是个掩码,不是真正日期。
  • DDMMYYMMDDYY
    Both additions have the same effect. The date output has a two-digit year value and no separator. The order is taken from the definition for date output in the user master record. ?      DDMMYY 与 MMDDYY具有同样的作用,日期输入时使用2位的年表示,但没有日期分隔符,日期年月日的输出顺序是由Client端用户主数据设置的值来决定的,所以这两种格式只是决定了日期输入时年的位数与年月日的输入顺序,它只是个掩码,不是真正日期。
  • YYMMDD
    This addition provides a date output with a two-digit year value without a separator in the format YYMMDD. 该格式与上面三种不同的时,它本身就是一种日期格式,输出时会按此来格式化输出。
  • Write具体成什么格式的日期,这与当前用户主数据所设定的格式来显示,用户主数据日期格式可以通过以下方式获取到:

    获取当前Client端的日期格式与时间格式: