ABAP 弹出框 函数

POPUP_GET_VALUES_USER_HELP 是一个和用户交互信息的函数,用户可以填写信息,而且我们还可以根据实际的需求对弹出框进行F1 F4 以及用户的需求进行增强,详细的实现可以参考系统标准程序 RSSPO440


下面是一个对弹出框中的客户编码进行存在性检验的一个简单例子 


DATA:tab TYPE TABLE OF sval WITH HEADER LINE.
DATA: code  TYPE c.


CLEAR tab.
tab-tabname = 'KNA1'.
tab-fieldname = 'KUNNR'.
APPEND tab.


"弹出填写数据的框
CALL FUNCTION 'POPUP_GET_VALUES_USER_HELP'
  EXPORTING
    popup_title = '抬头'
    programname = 'ZTEST'
    formname    = 'TESTFORM'
  IMPORTING
    returncode  = code
  TABLES
    fields      = tab.


IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


*&---------------------------------------------------------------------*
*&      Form  TESTFORM
*&---------------------------------------------------------------------*
*       检查客户编码是否存在
*----------------------------------------------------------------------*
FORM testform  TABLES   fields STRUCTURE sval
                    CHANGING error  STRUCTURE svale.
  DATA:l_kunnr TYPE kna1-kunnr.
  DATA:lw_kna1 TYPE kna1.
  READ TABLE fields INDEX 1.
  l_kunnr = fields-value.
  SELECT SINGLE * INTO lw_kna1 FROM kna1 WHERE kunnr = l_kunnr.
  IF sy-subrc <> 0.
*    Bitte geben Sie einen gültigen Lagerort an
    CLEAR error.
    error-errortab   = 'KNA1'.
    error-errorfield = 'KUNNR'.
    error-msgty      = 'I'.
    error-msgid      = '消息对象'.
    error-msgno      = '消息号'.
  ENDIF.
ENDFORM.   


附:
SAP对弹出框根据类型进行了分组  分成了SPO1 SPO2 ...
上述的有输入的属于SPO4的组 同时SAP系统中有一些这些分组的函数的样例函数,可以通过 RS+分组+* 进行搜索,如我们这里的是SPO4的 使用RSSPO4*进行搜索 有如下结果
其他的用户交互框可以通过一下程序进行学习 RSSPO4 *
RSSPO410                       函数模块 POPUP_GET_VALUES 的范例
RSSPO420                       函数模块 POPUP_GET_VALUES_DB_CHECKED 的范例
RSSPO430                       函数模块 POPUP_GET_VALUES_USER_CHECKED 的范例
RSSPO440                       函数模块 POPUP_GET_VALUES_USER_CHECKED 的范例

RSSPO450                       函数模块 POPUP_GET_VALUES_USER_BUTTONS 的范例

1、sap的函数组列表和用途说明

适用情况

Function group

提示用户将可能丢失数据

SPO1

提示用户对某个问题选择Yes或者No 

SPO1

提示用户将可能丢失数据, 并询问用户是否继续操作

SPO1

提示用户在多个操作中选择一个操作

SPO2

提示用户是继续当前操作或者取消当前操作

SPO2

提示用户输入数据 (可以根据一个表检查或者不检查输入值)

SPO4

将数据显示给用户

SPO4

将详细数据显示给用户

SPO6

从列表中选择数据 SPO5

用可滚动的对话框显示数据给用户

STAB

从视图或者数据表中打印数据

STPR


SPO1                           迅速保存的会话框
POPUP_TO_CONFIRM               标准对话弹出消息
POPUP_TO_CONFIRM_LOSS_OF_DATA  返回后迅速确实会话框 (POPUP, CONFIRM)
POPUP_TO_CONFIRM_STEP          用此函数可以建立一个对话框用于询问用户是否执行某步操作,用户可以选 择Yes No或者Cancel。该函数可以传入一个标题和两行的文本(提示问题)。
POPUP_TO_CONFIRM_WITH_MESSAGE  类似POPUP_TO_CONFIRM_STEP,只是多三行的文本错误诊断提示。 系统             在窗口上显示一个绿色问号图标。
POPUP_TO_CONFIRM_WITH_VALUE    用此函数可以建立一个对话框用于询问用户是否执行某步操作,该操作可能 会丢失数据,用户可以选择Yes No或者Cancel。该函数可以传入一个标题, 两行的文本(提示问题)和一个对象值(对象值将会插入在提示问题文本的 两部分之间)。系统在窗口上显示一个绿色问号图标。
POPUP_TO_CONFIRM_WITH_VALUE_2  Do not use! Please use POPUP_TO_CONFIRM.
SPO2                           决定年龄的对话框
POPUP_TO_DECIDE                显示一个对话框,用户可以两个操作中的一个或者取消。可以传入三行提示文本。
POPUP_TO_DECIDE_WITH_MESSAGE   用于有诊断选项间的选择的对话框
SPO3                           用于输入数据的对话框
POPUP_TO_GET_ONE_VALUE         Pop-up window, in order to confirm user-defined processing step (CONF
POPUP_TO_GET_VALUE             POPUP for requesting a value
SPO4                           用于显示和请求的对话框
ALPHA_EXIT_FOR_TYPE_N_CONTROL
POPUP_GET_VALUES               对于显示和值请求的会话框, 没有检查
POPUP_GET_VALUES_DB_CHECKED    对于请求值的对话框, 预防检查 DB 表/视图
POPUP_GET_VALUES_SET_MAX_FIELD 为此组的对话框设置每个对话框的字段最大数值
POPUP_GET_VALUES_USER_BUTTONS  用于要求值和提供用户按钮的对话框
POPUP_GET_VALUES_USER_CHECKED  对于请求值的对话框, 通过存在用户检查
POPUP_GET_VALUES_USER_HELP     请求值的对话框, 用户退出和帮助的调用
SPO5                           从列表选择的对话框
POPUP_TO_DECIDE_LIST           Dialog box for choosing from a list without diagnosis
SPO6                           显示文本的对话框
POPUP_DISPLAY_TEXT             文本显示对话框窗口
POPUP_DISPLAY_TEXT_USER_BUTTON Popup with user-defined pushbuttons to display a text
POPUP_DISPLAY_TEXT_WITH_PARAMS 用参数对话窗显示文本
SPO8                           Application Modules
POPUP_TO_DECIDE_LOCKED_DATA

你可能感兴趣的:(ABAP 弹出框 函数)