输入框函数POPUP_GET_VALUES

来源:互联网 发布:java程序员壁纸 编辑:程序博客网 时间:2024/06/05 02:33

abap标准的有输入框函数十分好用,用来和用户进行交互,如果想要在输入框上写上文本信息,只需要将那个输入框设置为不可输入,再把信息写上去。如图:

image

此函数使用十分方便。

DATA: l_returncode TYPE c.
DATA: lt_sval TYPE STANDARD TABLE OF sval INITIAL SIZE 0,
      ls_sval LIKE LINE OF lt_sval.

break abap04.
break abap01.

"库存地
MOVE 'LIPS' TO ls_sval-tabname.
MOVE 'LGORT' TO ls_sval-fieldname.
APPEND ls_sval TO lt_sval.

data: ls_lgort type LGORT_D.
"收货库存地描述
select single LGORT
from ekpo
into ls_lgort
where ebeln = cs_lips-VGBEL.

data: ls_lgobe type LGOBE.
select single lgobe
from t001l
into ls_lgobe
where LGORT = ls_lgort.

MOVE 'T001L' TO ls_sval-tabname.
MOVE 'LGOBE' TO ls_sval-fieldname.
LS_SVAL-VALUE = LS_LGOBE.
ls_sval-FIELD_ATTR = '02'.
APPEND ls_sval TO lt_sval.

"物料号
MOVE 'LIPS' TO ls_sval-tabname.
MOVE 'MATNR' TO ls_sval-fieldname.
LS_SVAL-VALUE = cs_lips-MATNR.
ls_sval-FIELD_ATTR = '02'.
APPEND ls_sval TO lt_sval.

  "物料描述
MOVE 'LIPS' TO ls_sval-tabname.
MOVE 'ARKTX' TO ls_sval-fieldname.
LS_SVAL-VALUE = cs_lips-ARKTX.
ls_sval-FIELD_ATTR = '02'.
APPEND ls_sval TO lt_sval.

  "行项目
MOVE 'LIPS' TO ls_sval-tabname.
MOVE 'POSNR' TO ls_sval-fieldname.
LS_SVAL-VALUE = cs_lips-POSNR.
ls_sval-FIELD_ATTR = '02'.
APPEND ls_sval TO lt_sval.

"采购订单号
MOVE 'EKKO' TO ls_sval-tabname.
MOVE 'EBELN' TO ls_sval-fieldname.
LS_SVAL-VALUE = cs_lips-VGBEL.
ls_sval-FIELD_ATTR = '02'.
APPEND ls_sval TO lt_sval.

CALL FUNCTION 'POPUP_GET_VALUES'
  EXPORTING
    popup_title     = '输入库存地'
  IMPORTING
    returncode      = l_returncode
  TABLES
    fields          = lt_sval
  EXCEPTIONS
    error_in_fields = 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.
  CHECK l_returncode IS INITIAL.
"赋值库存地
READ TABLE lt_sval INTO ls_sval INDEX 1.
MOVE ls_sval-value TO cs_lips-lgort.

lt_sval是一个内表,设置输入框的属性和文本信息,field_attr的具体值可以参考ls_sval结构字段的value range。

原创粉丝点击