参考选择屏幕(控制选择屏幕两个屏幕,单值输入……通过函数实现单值输入)
2014-04-03 15:02
369 查看
TABLES:likp,vbap,vbak,vttp. DATA:gl_restrict TYPE sscr_restrict. SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN. SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001. SELECT-OPTIONS: s_vstel FOR likp-vstel NO INTERVALS, "装运点 s_lfdat FOR likp-lfdat NO INTERVALS NO-EXTENSION , "交货日期 s_lfart FOR likp-lfart DEFAULT 'LF' NO INTERVALS MODIF ID lf, "交货类型 s_prodh FOR vbap-prodh NO INTERVALS, "产品层次 s_vbeln1 FOR likp-vbeln, "交货单号 s_vtweg FOR vbak-vtweg NO INTERVALS. "销售渠道 SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-002. * 配送方式 SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(8) text-003. SELECTION-SCREEN POSITION 33. PARAMETERS r_rd1 RADIOBUTTON GROUP sg1 DEFAULT 'X' USER-COMMAND rd_click. SELECTION-SCREEN COMMENT 34(4) text-004 FOR FIELD r_rd1. SELECTION-SCREEN POSITION 45. PARAMETERS r_rd2 RADIOBUTTON GROUP sg1. SELECTION-SCREEN COMMENT 46(4) text-005 FOR FIELD r_rd2. SELECTION-SCREEN END OF LINE. * 拣配状态 SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(8) text-006. SELECTION-SCREEN POSITION 33. PARAMETERS p_ck1 AS CHECKBOX. SELECTION-SCREEN COMMENT 34(4) text-007 FOR FIELD p_ck1. SELECTION-SCREEN POSITION 45. PARAMETERS p_ck2 AS CHECKBOX. SELECTION-SCREEN COMMENT 46(4) text-008 FOR FIELD p_ck2. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK bk2. SELECTION-SCREEN END OF BLOCK bk1. SELECTION-SCREEN END OF SCREEN 100. * subscreen 200 SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN. SELECTION-SCREEN BEGIN OF BLOCK bk3 WITH FRAME TITLE text-015. PARAMETERS: p_vbeln TYPE likp-vbeln MODIF ID mop. SELECTION-SCREEN: PUSHBUTTON 63(5) pubu USER-COMMAND mailbutt. SELECT-OPTIONS: s_vbeln FOR likp-vbeln NO-DISPLAY. SELECTION-SCREEN END OF BLOCK bk3. SELECTION-SCREEN END OF SCREEN 200. * tab screen SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 25 LINES, TAB (20) button1 USER-COMMAND push1, TAB (20) button2 USER-COMMAND push2, END OF BLOCK mytab. INITIALIZATION. PERFORM frm_set_tab. PERFORM frm_select_option. AT SELECTION-SCREEN OUTPUT. PERFORM frm_output_set. *&---------------------------------------------------------------------* *& 参数输入检查 *&---------------------------------------------------------------------* AT SELECTION-SCREEN. PERFORM frm_set_screen. *&---------------------------------------------------------------------* *& Form frm_set_tab *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM frm_set_tab. DATA: lv_tab TYPE char1. button1 = '查询1'. button2 = '查询2'. mytab-prog = sy-repid. IMPORT p1 = lv_tab FROM MEMORY ID 'ZDQWM_099_TAB'. IF lv_tab IS INITIAL. mytab-dynnr = 100. mytab-activetab = 'PUSH1'. ELSE. IF lv_tab = 'A'. mytab-dynnr = 100. mytab-activetab = 'PUSH1'. ENDIF. IF lv_tab = 'B'. mytab-dynnr = 200. mytab-activetab = 'PUSH2'. ENDIF. ENDIF. * mytab-dynnr = 100. * mytab-activetab = 'PUSH1'. ENDFORM. "frm_set_tab *&---------------------------------------------------------------------* *& Form frm_set_screen *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM frm_set_screen. CASE sy-ucomm. WHEN 'PUSH1'. mytab-dynnr = 100. EXPORT p1 = 'A' TO MEMORY ID 'ZDQWM_099_TAB'. WHEN 'PUSH2'. mytab-dynnr = 200. EXPORT p1 = 'B' TO MEMORY ID 'ZDQWM_099_TAB'. WHEN 'MAILBUTT'. PERFORM show_box. WHEN OTHERS. ... ENDCASE. ENDFORM. "frm_set_screen *&---------------------------------------------------------------------* *& Form FRM_OUTPUT_SET *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM frm_output_set . IF p_vbeln IS INITIAL. WRITE icon_enter_more AS ICON TO pubu. ELSE. WRITE icon_display_more AS ICON TO pubu. ENDIF. ENDFORM. " FRM_OUTPUT_SET *&---------------------------------------------------------------------* *& Form frm_select_option *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM frm_select_option. REFRESH gl_restrict-ass_tab. PERFORM frm_set_key USING 'KEY1' 'S_VSTEL'. PERFORM frm_set_key USING 'KEY2' 'S_PRODH'. PERFORM frm_set_key USING 'KEY3' 'S_VTWEG'. PERFORM frm_set_key USING 'KEY4' 'S_LFART'. PERFORM frm_set_key USING 'KEY10' 'S_VBELN2'. * PERFORM frm_set_key USING 'KEY11' 'S_POS'. CALL FUNCTION 'SELECT_OPTIONS_RESTRICT' "只执行一次 EXPORTING restriction = gl_restrict EXCEPTIONS too_late = 1 repeated = 2 selopt_without_options = 3 selopt_without_signs = 4 invalid_sign = 5 empty_option_list = 6 invalid_kind = 7 repeated_kind_a = 8 OTHERS = 9. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. "frm_select_option *&---------------------------------------------------------------------* *& Form frm_set_key *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->L_KEY text * -->L_NAME text *----------------------------------------------------------------------* FORM frm_set_key USING l_key l_name. DATA: wl_restrict TYPE sscr_restrict, wl_optlist TYPE sscr_opt_list, wl_ass TYPE sscr_ass. CONSTANTS: cl_s TYPE char1 VALUE 'S', cl_x TYPE c VALUE 'X', cl_i TYPE char1 VALUE 'I'. wl_optlist-name = l_key. "选项框id,不同select-option不能重复 wl_optlist-options-eq = cl_x. APPEND wl_optlist TO gl_restrict-opt_list_tab. CLEAR: wl_optlist. wl_ass-kind = cl_s. wl_ass-name = l_name. "select-option id wl_ass-sg_main = cl_i. wl_ass-sg_addy = space. wl_ass-op_main = l_key. APPEND wl_ass TO gl_restrict-ass_tab. CLEAR: wl_ass. ENDFORM. "frm_set_key *&---------------------------------------------------------------------* *& Form SHOW_BOX *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM show_box . DATA: wh_excluded_options TYPE rsoptions. DATA: w_message TYPE char100. *输入单值,排除其他 wh_excluded_options-ne = 'X'. wh_excluded_options-bt = 'X'. wh_excluded_options-nb = 'X'. wh_excluded_options-ge = 'X'. wh_excluded_options-gt = 'X'. wh_excluded_options-le = 'X'. wh_excluded_options-lt = 'X'. wh_excluded_options-cp = 'X'. wh_excluded_options-np = 'X'. CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG' EXPORTING title = '批量处理' just_incl = 'X' "只有包含输入 excluded_options = wh_excluded_options TABLES range = s_vbeln EXCEPTIONS no_range_tab = 1 cancelled = 2 internal_error = 3 invalid_fieldname = 4 OTHERS = 5. IF sy-subrc <> 0. IF sy-subrc = 2. MESSAGE '取消批量处理' TYPE 'S'. EXIT. ENDIF. CALL FUNCTION 'MESSAGE_TEXT_BUILD' EXPORTING msgid = sy-msgid msgnr = sy-msgno msgv1 = sy-msgv1 msgv2 = sy-msgv2 msgv3 = sy-msgv3 msgv4 = sy-msgv4 IMPORTING message_text_output = w_message. MESSAGE w_message TYPE 'S' DISPLAY LIKE 'E'. EXIT. ENDIF. ENDFORM. " SHOW_BOX
View Code
相关文章推荐
- 通过设置maskedit实现小数位的输入控制
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- 使用js函数实现的通过输入框中数据的长度来控制光标聚焦位置
- Objective-C - 写一个函数实现求两个数的和(要求两个加数由用户从控制台输入)
- 1、通过函数实现打印*号组成的直角三角形,函数要求传入行数即可。在main 方法中,通过用户输入得到行数,然后调用函数做打印。 三角形样式: * ** *** **** ***** ******
- javascript操作两个选择列表(有两个列表,如何实现在一个列表通过双击和多选列表中内容添加到另一个列表. )
- 利用汇编语言编程实现在键盘上输入两个一位数,在屏幕上显示它们的积。
- 实现cxDateEdit控件只能通过下拉框选择日期,无法再编辑框输入日期
- 一个函数实现调节录音控制麦克风输入音量
- 编程题:用一组数组做函数参数来实现,输入两个数,输出其中最大数
- iOS学习笔记20-通过AirServer使用AirPlay镜像并实现多屏幕显示控制
- 通过java实现输入系数求一元二次方程根,学习Scanner()、split()和Substring()函数
- 通过选择排序,实现对用户输入的数字进行排序
- iOS 开发 高级:通过AirServer使用AirPlay镜像并实现多屏幕显示控制
- 选择屏幕输入值的控制
- 输入两个整数,然后让用户选择1或者2,选1是调用max函数,输出二者中大数,选2时调用min函数输出二者中的小数(指向函数的指针变量)
- DELPHI中通过SHBrowseForFolder函数实现选择目录
- iOS 开发 高级:通过AirServer使用AirPlay镜像并实现多屏幕显示控制
- js控制文本框输入的内容为(数字、字母、汉字)(二、js在函数中实现)
- angularjs 下实现即可通过select选择 也可以通过input输入