SAP系统变量SY-

系统变量是SAP自定义的变量,在ABAP程序编写过程中,可以直接使用而不需要定义,所有的系统变量都存放在结构SYST里,可以SE11直接参看。下面把一些常用的系统变量总结出来,大家在编写程序的时候可以参考一下。

1, 系统关联

SY-MANDT:R/3 系统, 登录的客户机编号

SY-LANGU:R/3 系统,当前语言

'当前用户的本地时区:',SY-ZONLO ,'当前用户的本地时间:',SY-TIMLO,'当前用户的本地日期:',sy-DATLO.

时区表TTZZ

函数IB_CONVERT_INTO_TIMEZONE获取用户所在时区

函数IB_CONVERT_INTO_TIMESTAMP获取输入日期时间时区转换成时间戳

函数IB_CONVERT_FROM_TIMESTAMP通过时间戳和时区转换成日期时间

 DATA:time_stamp TYPE tzonref-tstamps,
           e_datlo    TYPE sy-datlo,
           e_timlo    TYPE sy-timlo.


      CALL FUNCTION 'IB_CONVERT_INTO_TIMESTAMP'
        EXPORTING
          i_datlo     = sy-datlo
          i_timlo     = sy-timlo "时间
          i_tzone     = sy-zonlo "'UTC+8'“时区”
        IMPORTING
          e_timestamp = time_stamp.
      CALL FUNCTION 'IB_CONVERT_FROM_TIMESTAMP'
        EXPORTING
          i_timestamp = time_stamp
          i_tzone     = 'UTC+1'
        IMPORTING
          e_datlo     = e_datlo "日期
          e_timlo     = e_timlo. "时间

SY-LANGU语言代码转换关系

查询条件where后面写着WHERE spras = sy-langu

SY-DATUM:日期和时间,当前(应用服务器)日期

SY-UZEIT:日期和时间,当前应用服务器时间

SY-UNAME:R/3 系统, 用户登录名

SY-FDAYW:日期和时间,工厂日历工作日

2, 程序关联

SY-REPID:现在的ABAP程序员

SY-TCODE:现在的事务代码

SY-CPROG:ABAP 程序,外部过程中的调用者

SY-CALLD:ABAP 程序, ABAP 程序调用模式

SY-BATCH:后台的程序运行 (X)

SY-BINPT:批输入,批次输入下的程序运行

SY-SLSET:选择屏幕,变式名称

3, 逻辑关联

SY-SUBRC:返回值, ABAP 报表之后返回值 执行成功,返回值为0.

SY-INDEX:循环,当前通过的编号

SY-TABIX:表索引

SY-DBCNT:DB 操作: 处理过的表行号

SY-UCOMM:屏幕,PAI 触发的功能代码

SY-ABCDE:常量: 字母表 (A, B, C, ...)

SY-TFILL:内部表格,当前行号

SY-TLENG:内部表格,行宽度

SY-FDPOS:字符串,字符串中的偏移量

4, 消息关联

SY-MSGID:消息, 消息类

SY-MSGNO:消息, 消息编号

SY-MSGTY:消息,消息类型

SY-MSGV1:消息,消息变量

SY-MSGV2:消息,消息变量

SY-MSGV3:消息,消息变量

SY-MSGV4:消息,消息变量

5, 报表关联

SY-PAGNO:清单创建,当前页

SY-COLNO:清单创建,清单的当前列

SY-LINNO:清单创建,当前行

SY-ULINE:常量,长度为 255 的水平行

SY-MACOL:打印清单,SET MARGIN 声明的列

SY-VLINE:常量,垂直条

SY-MAROW:清单打印,SET MARGIN 声明的行

6, 印刷参数关联

SY-PRIMM:打印参数,立即打印

SY-PRREL:打印参数,打印后删除

SY-PRNEW:打印参数,新假脱机请求

SY-PDEST:打印参数,输出设备

SY-PRCOP:打印参数,拷贝数

SY-SPONO:打印清单,假脱机编号

7, DYNPRO关联

SY-DYNNR:ABAP 程序, 当前屏幕的编号

SY-DYNGR:ABAP 程序, 当前屏幕的屏幕组

SY-DATAR:屏幕, 显示用户输入

SY-SCOLS:屏幕,列编号

SY-SROWS:屏幕,行号

SY-CUCOL:屏幕,PAI 的水平光标位置

SY-CUROW:屏幕,PAI 的垂直光标位置

SY-TITLE:屏幕,标题文本

SY-STEPL:屏幕,当前表行索引

SY-LOOPC:屏幕,表中可见的行号

SY-PFKEY:屏幕: 当前 GUI 状态

8.系统常量

abap_true        默认'X'

abap_false      默认''

sprx_true         默认'X'

sprx_false       默认''

系统变量,记录登陆系统的语言。"今天看别人的程序看到有个查询条件where后面写着WHERE spras = sy-langu"很用可能是取描述的时候,因为描述字段可能会维护多个语种。

12、使用SELECT语句选择查询:
SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。
SY-SUBRC = 4: 没有数据。
SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”时才会有,
表示: WHERE条件指定的记录不止一行,结果是没有记录被选中。

直接在syst结构里面可以找到
abap系统变量
SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,0表示成功
SY-DBLNT: 被处理过的记录的笔数
SY-UNAME: 当前使用者登入SAP的USERNAME
SY-DATUM: 当前系统日期
SY-UZEIT: 当前系统时间
SY-TCODE: 当前执行程序的Transaction code
SY-REPID: 当前程序名称
SY-INDEX : 当前LOOP循环过的次数
SY-TABIX: 当前处理的是internal table 的第几笔
SY-TMAXL: Internal table的总笔数
SY-SROWS: 屏幕总行数
SY-SCOLS: 屏幕总列数
SY-MANDT: 當前系統編號(CLIENT NUMBER)
SY-VLINE: 画竖线
SY-ULINE: 画横线
SY-PAGNO: 当前页号
SY-LINSZ: 当前报表宽度
SY-LINCT: 当前报表长度
SPACE: 空字符串
SY-LSIND: 列表索引页
SY-LISTI: 上一个列表的索引
SY-LILLI: 绝对列表中选定行的行号
SY-CUROW: 屏幕上的行
SY-CUCOL: 光标列
SY-CPAGE: 列表的当前显示页
SY-STARO:真实行号
SY-LISEL: 选择行的内容,长度为255
SY-LINNO: 当前行
SY-SUBRC:语句执行后的返回值,0表示成功
SY-DATUM:当前服务器日期
SY-UZEIT:当前服务器时间
SY-ULINE:255长度的水平线
SY-VLINE:垂直线
SY-INDEX:循环说执行的次数
SY-TABIX:内表循环的次数
SY-DYNNR:当前Screen号
SY-MANDT:当前登录的Client号
SY-STEPL:返回当前操作的屏幕行号(Table Control)
SY-LOOPC:当前表格控件在屏幕中的总行数(Table Control)
SY-UCOMM:PAI所出发的功能代码
SY-DYNNR:当前屏幕号
SY-MSGID:Message Class
SY-MSGNR:Message Number
SY-MSGTY:Message Type
SY-MSGV1~4:Message Variant
SY-LINCT:REPROT语句中设定的LINE-COUNT
SY-LINSZ:REPROT语句中设定的LINE-SIZE
SY-SROWS:当前窗口的列表行数
SY-SCOLS:当前窗口的列表栏目数
SY-PAGNO:当前页的页码
SY-LINNO:当前选定行的行号
SY-COLNO:当前选定列的列号
SY-LSIND:当前列表索引,第一级列表为1
SY-LILLI:选择某行时光标行位置
SY-CUROW:选择某行时光标列位置 
SY-ABCDE 常量,A-Z字母表
SY-BATCH 后台的程序运行
SY-COLNO:当前选定列的列号
SY-CPAGE 列表的当前显示页
SY-CUCOL 屏幕,PAI 的水平光标位置
SY-CUROW:选择某行时光标列位置
sy-datar:在PAI中,如果屏幕上至少有一个输入字段的值被用户或其他数据传输所更改,则为“X”,否则为初始值。
sy-datlo:用户的当前日期
SY-DATUM 服务器日期
SY-DYNNR 当前屏幕的编号
SY-INDEX 循环的次数(DO While)
SY-LANGU 当前登录语言
SY-LILLI:选择某行时光标行位置
SY-LINCT 当前报表长度 (REPROT语句中设定的LINE-COUNT)
SY-LINNO 当前选定行的行号
SY-LINSZ 当前报表宽度(REPROT语句中设定的LINE-SIZE)
SY-LISEL 选择行的内容,长度为255
SY-LISTI 上一个列表的索引
SY-LOOPC:当前表格控件在屏幕中的总行数(Table Control)
SY-LSIND:当前列表索引,第一级列表为1
SY-MSGID 消息, 消息类
SY-MSGTY 消息,消息类型
SY-MSGNO 消息, 消息编号
SY-MSGV1 消息,消息变量1
SY-MSGV2 消息,消息变量2
SY-MSGV3 消息,消息变量3
SY-MSGV4 消息,消息变量4
SY-PAGNO 当前页号
SY-SCOLS:当前窗口的列表栏目数
SY-SLSET 选择屏幕的变式名称
SY-SROWS:当前窗口的列表行数
SY-STARO 真实行号
SY-STEPL:返回当前操作的屏幕行号(Table Control)
SY-SUBRC 执行状态
SY-TABIX 当前处理的内表的Index
SY-TCODE 当前的事务代码
SY-UCOMM:PAI所出发的功能代码
SY-ULINE 水平线
SY-UNAME 用户名
SY-UZEIT 服务器时间
SY-VLINE 垂直线
附加几个系统常用函数
SHIFT STRING:左移字符串。长度减1。
CONCATENATE:连接字符串。
 SPLIT:拆分字符串。
SEARCH:查询字符串。
REPLACE:替换字符串。
CONDENSE:删除多余的空格。
TRANSLATE:转换字符格式,如将'ABC'转换为'ABC'
CONVERT TEXT:创建一个可排序的字符串。
OVERLAY:用一个字符串覆盖另一个字符串。
STRLEN:字符串长度。
ABS:取绝对值。
COS、SIN、TAN:取三角函数值。
ACOS、ASIN、ATAN:反三角函数。
COSH、SINH、TANH:双曲函数。
EXP:E的幂函数。
LOG:底数为E的对数。
LOG10:底数为10的对数。
SQRT:平方根。
SIGN:返回参数符号。
TRUNC:返回参数的整数部分。
FRAC:输入参数的小数部分。
CEIL:返回不小于参数的最小整数。
FLOOR:返回不大于参数的最小整数。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值