SAP 常用函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、获取订单状态(STATUS_READ 和 STATUS_TEXT_EDIT)

1.STATUS_READ 改函数的实现原理大概是通过订单的对象好(OR+订单号)到JEST 中取出字段STAT INACT.

JEST表中STAT是一串从字面看不出意思的字符,可以根据STAT到表TJ02T中找到具体的描述。

下面是具体用法

DATA:objnr TYPE aufk-objnr.

objnr = 'OR000000100014'.

DATA:t_status TYPE TABLE OF jstat WITH HEADER LINE.

"结果存放在STATUS表中

CALL FUNCTION 'STATUS_READ'

EXPORTING

client = sy-mandt

objnr = objnr

TABLES

status = t_status

EXCEPTIONS

object_not_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

LOOP AT t_status.

IF t_status = 'I0046'.

WRITE:'订单已关闭'.

EXIT.

ENDIF.

ENDLOOP.

2.STATUS_TEXT_EDIT 改函数读取的结果是将订单状态拼接到一个字符串中,而且这个字符串是在前台订单上看到的状态,比较直接,这样做的结果就可能由于状态较多导致长度过长,在某些情况下取的数据可能不准。

下面是一段代码

DATA:line TYPE bsvx-sttxt.

CALL FUNCTION 'STATUS_TEXT_EDIT'

EXPORTING

client = sy-mandt

objnr = objnr

spras = sy-langu

IMPORTING

line = line

EXCEPTIONS

object_not_found = 1

OTHERS . "

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

SEARCH line FOR 'CLSD'.

IF sy-subrc = 0.

WRITE:'订单已关闭'.

ENDIF.

DATA i_jstat LIKE jstat OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'STATUS_READ'

EXPORTING

client = sy-mandt

objnr = i_caufv_resb-objnr ”对象号

only_active = 'X'

* IMPORTING

* OBTYP =

* STSMA =

* STONR =

TABLES

status = i_jstat “目前的所有状态

EXCEPTIONS

object_not_found = 1

OTHERS = 2.

LOOP AT i_jstat WHERE stat = 'I0013' "DLT 删除标识符.

OR stat = 'I0012' "DLV 交货

OR stat = 'I0045' "TECO 技术实现

OR stat = 'I0043' "LKD 冻结

OR stat = 'I0001' "CRTD 建立

OR stat = 'I0046' "CLSD 已结算

OR stat = 'I0076'. "DLID 删除标志

l_delete = 'X'.

EXIT.

ENDLOOP.

2、图标的函数ICON_CREATE

1、定义字段

data: status_icon type icons-text.

2、创建屏幕,并在屏幕定义创建一个"Status Icon"控件,命名为:status_icon

3、利用ICON_CREATE函数在输出是设置ICON。

call function'ICON_CREATE'

exporting

name= 'ICON_RED_LIGHT'

text= '图标后的文本'

info= '提示'

add_stdinf= 'X'

importing

result= status_icon

exceptions

icon_not_found= 1

outputfield_too_short = 2

others= 3.

可以通过函数ICON_CREATE将alv中的单元格(Cell)变成ICON. LOOP AT git_alv ASSIGNING .

CALL FUNCTION'ICON_CREATE'

EXPORTING

name = icon_pdf "图标名字

info = 'PDF'

IMPORTING

result = -pdf_order

EXCEPTIONS

OTHERS = 0.

ENDLOOP

另外不要忘了声明一个TYPE-POOLS:icon.

TYPE-POOLS:icon.

3、进度条函数SAPGUI_PROGRESS_INDICATOR DATA: ll_lines(10),"行数

ll_tabix(10),"循环标号

ll_pecnt TYPE p LENGTH 6 DECIMALS 2,"百分比

ll_pecet(6),"百分数

ll_text(40)."消息

CLEAR: ll_lines,ll_tabix,ll_pecnt,ll_pecet,ll_text.

DESCRIBE TABLE it_vbrk LINES ll_lines."获取内表行数

*

LOOP AT it_vbrk INTO wa_vbrk.

ll_tabix = sy-tabix."当前处理的行号

ll_pecnt = ll_tabix / ll_lines * 100."已处理百分比

ll_pecet = ll_pecnt.

"拼接显示消息

相关文档
最新文档