正确地使用SAP的标准对话框函数
在用户设计sap的程序时,经常需要一些对话框,用户可以自己编写,但使用SAP系统中提供了的对话框函数将减少许多开发工作。
1、sap的函数组列表和用途说明
适用情况 |
Function group |
提示用户将可能丢失数据 |
SPO1 |
提示用户对某个问题选择Yes或者No |
SPO1 |
提示用户将可能丢失数据, 并询问用户是否继续操作 |
SPO1 |
提示用户在多个操作中选择一个操作 |
SPO2 |
提示用户是继续当前操作或者取消当前操作 |
SPO2 |
提示用户输入数据 (可以根据一个表检查或者不检查输入值) |
SPO4 |
将数据显示给用户 |
SPO4 |
将详细数据显示给用户 |
SPO6 |
从列表中选择数据 | SP05 |
用可滚动的对话框显示数据给用户 |
STAB |
从视图或者数据表中打印数据 |
STPR |
2、函数列表和说明
2.1 SPO1的函数
- POPUP_TO_CONFIRM_STEP
用此函数可以建立一个对话框用于询问用户是否执行某步操作,用户可以选择Yes No或者Cancel。该函数可以传入一个标题和两行的文本(提示问题)。系统在窗口上显示一个绿色问号图标。
可以设置某个按钮作为默认按钮。
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING TITEL = '确认提示测试'
TEXTLINE1 = '确实要执行'
TEXTLINE2 = '测试?'
CANCEL_DISPLAY = SPACE "不显示CANCEL按钮
IMPORTING ANSWER = ANSWER. - POPUP_TO_CONFIRM_WITH_MESSAGE
类似POPUP_TO_CONFIRM_STEP,只是多三行的文本错误诊断提示。 系统在窗口上显示一个绿色问号图标。
call function 'POPUP_TO_CONFIRM_WITH_MESSAGE'
exporting titel = '确认提示测试'
textline1 = '确实要执行 ;;'
textline2 = spop-textline2
diagnosetext1 = spop-diagnose1
diagnosetext2 = spop-diagnose2
diagnosetext3 = spop-diagnose3
importing answer = answer. - POPUP_TO_CONFIRM_WITH_VALUE
用此函数可以建立一个对话框用于询问用户是否执行某步操作,该操作可能会丢失数据,用户可以选择Yes No或者Cancel。该函数可以传入一个标题,两行的文本(提示问题)和一个对象值(对象值将会插入在提示问题文本的两部分之间)。系统在窗口上显示一个绿色问号图标。
可以设置某个按钮作为默认按钮。
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_VALUE'
EXPORTING TITEL = TITEL
TEXT_BEFORE = '确实要执行'
OBJECTVALUE = 'TEST'
TEXT_AFTER = '?'
IMPORTING ANSWER = ANSWER. - POPUP_TO_CONFIRM_LOSS_OF_DATA
用此函数可以建立一个对话框用于询问用户是否执行某步操作,该操作可能会丢失数据,用户可以选择Yes No或者Cancel。该函数可以传入一个标题和一个两行的文本(提示问题)。 系统在窗口上显示一个黄色!图标和一行“数据将丢失。”。
可以设置某个按钮作为默认按钮。
CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'
EXPORTING TITEL = TITEL
TEXTLINE1 = SPOP-TEXTLINE1
TEXTLINE2 = SPOP-TEXTLINE2
IMPORTING ANSWER = ANSWER. - POPUP_TO_CONFIRM
该函数是POPUP函数的增强版,可以自定义按钮文本和图标。
2.2、Function group SPO2
- POPUP_TO_DECIDE
- POPUP_TO_DECIDE_WITH_MESSAGE
The action, the diagnosis text, the question and the alternative actions are passed as parameters.
The user action (Alternative 1, Alternative 2, or Cancel) is returned in a parameter.
2.3、Function group SPO4
- POPUP_GET_VALUES
The input fields are passed in a structure and must be defined in the Dictionary. You can also specify individual field display attributes and a field text, if the key word from the Dictionary is not to be displayed as field text in the dialog box, in the structure.
The standard help functionality (F1, F4) is supported.
- POPUP_GET_VALUES_DB_CHECKED
The input fields are passed in a structure and must be defined in the Dictionary. You can also specify individual field display attributes and a field text in the structure, if the key word from the Dictionary is not to be displayed as field text in the dialog box.
A comparison operator for checking the input data in the database is passed. You can specify whether the check is for the existence or absence of an object. A foreign key relationship check is supported.
The standard help functionality (F1, F4) is supported.
The user action is returned in a parameter.
- POPUP_GET_VALUES_USER_CHECKED
The Data input by the user in the dialog box are passed to the sub-routine specified in the interface for checking. Errors found by the check are entered in an error structure and are evaluated on return from the sub-routine by the function module.
The standard help functionality (F1, F4) is supported.
The user action (Continue or Cancel) is returned in a parameter.
- POPUP_GET_VALUES_USER_HELP
The input fields are passed in a structure and must be defined in the Dictionary. You can also specify individual field display attributes and a field text in the structure, if the key word from the Dictionary is not to be displayed as field text in the dialog box.
You can pass the data which are entered by the user in a dialog box to a sub-routine which must be specified in the interface for checking. Errors occurring in the check are stored in an error structure and are analyzed by the function module upon return from the sub-routine. The data, and an error message, if appropriate, are displayed again.
The standard help functionality (F1, F4) is supported.
User exits for a user F1 or F4 help can also be specified.
The user action (Continue or Cancel) is returned in a parameter.
- POPUP_GET_VALUES_USER_BUTTONS
- POPUP_GET_VALUES_SET_MAX_FIELD
2.4、Function group SPO6
- POPUP_DISPLAY_TEXT
With this function module you display a text which exists in the system in a dialog box.
- POPUP_DISPLAY_TEXT_WITH_PARAMS
With this function module you display a text which exists in the system with parameters in a dialog box. The parameter values are passed in a table. The use of numbered texts is recommended, to make the parameter values translatable.
The parameter names must be passed in upper-case letters.
2.5、Function group SPO5
- POPUP_TO_DECIDE_LIST
从列表中选择数据,样例程序
report rsspo500.
data: selectlist like spopli occurs 5 with header line.
data: antwort type c.
while antwort ne 2.
clear selectlist.
refresh selectlist.
selectlist-varoption = 显示含有单选按钮的弹出框'.
append selectlist.
selectlist-varoption = '显示含有复选框的弹出框'.
selectlist-selflag = 'X'.
append selectlist.
call function 'POPUP_TO_DECIDE_LIST'
exporting
* CURSORLINE = 1
* MARK_FLAG = ' '
mark_max = 1
start_col = 10
start_row = 10
textline1 = 'Text1'
textline2 = 'POPUP_TO_DECIDE_LIST'
textline3 = 'TEXT3'
titel = 'TITLE '
importing
answer = antwort
tables
t_spopli = selectlist
exceptions
not_enough_answers = 1
too_much_answers = 2
too_much_marks = 3
others = 4.
if antwort eq 'A'.
exit.
endif.
endwhile.
if antwort ne 'A'.
clear selectlist.
refresh selectlist.
selectlist-varoption = '最多 15 个选项'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = '含有复选框'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = '或单选按钮'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = '典型的列表功能:'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = '* 选择'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = '* 选择全部'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = ' 取消全部选择'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = '3 70字符/选项'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = '65 字符/选项'.
selectlist-selflag = 'X'.
append selectlist.
selectlist-varoption = '激活/不激活可选行'.
selectlist-selflag = 'X'.
selectlist-inactive = 'X'.
append selectlist.
* 2. Aufruf **********************************************************
call function 'POPUP_TO_DECIDE_LIST'
exporting
* CURSORLINE = 1
mark_flag = 'X'
mark_max = 0
start_col = 15
start_row = 15
textline1 = 'Das POPUP bietet'(c01)
textline2 = 'folgende Funktionalit鋞:'(c02)
titel = 'Das Beispiel 2'(b02)
importing
answer = antwort
tables
t_spopli = selectlist
exceptions
not_enough_answers = 1
too_much_answers = 2
too_much_marks = 3
others = 4.
endif.