SELECT SCREEN 整理4 转载

(1)SELECTION-SCREEN COMMONT fmt name.
      用于定义或者修改本地元素的注释,包括PARAMETER、CHECKBOX BUTTON等。通过SELECTION-SCREEN COMMENT语法可以按Text Symbols设置的值对其属性重新定义。
      [For Example]

SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT (12) TEXT-W03 FOR FIELD parm.
    SELECTION-SCREEN POSITION 14.
    PARAMETERS parm LIKE MARA-MATNR.
   SELECTION-SCREEN END OF LINE.

   SELECTION-SCREEN SKIP 1.
   SELECTION-SCREEN BEGIN OF LINE.
     PARAMETERS:type AS CHECKBOX.
     SELECTION-SCREEN COMMENT (40) TEXT-W04 FOR FIELD type.
   SELECTION-SCREEN END OF LINE.
   Text-Symbols设置如下:
   

   程序运行界面如下:
   

   (2)SELECTION-SCREEN FUNCTION KEY n.
   该对象用于在工具栏上新增一个功能按钮。该按钮的定义保存在系统结构体SSCRFIELDS中,n为一个整数序数最大至5。不要试图让它小于1或者大于5,它不接受这个范围。也就是说工具栏按钮最多可以放5个(whereby a value between 1 and 5 must be entered for n)。当n等于1时,其按钮描述保存在字段SSCRFIELDS-FUNCTXT_01中,其按钮对象命名为
"FC01",保存在字段SSCRFIELDS-UCOMM中,以下为示例代码:
    [For Example]

    PARAMETERS para LIKE MARA-MATNR.
    TABLES: SSCRFIELDS.
    SELECTION-SCREEN FUNCTION KEY 1.
    SELECTION-SCREEN FUNCTION KEY 2.
    SELECTION-SCREEN FUNCTION KEY 5.

INITIALIZATION.  "初始公屏幕时,就给它们一些值吧,让它们看起来更像是个按钮,按钮也需要有尊严的活着。

       MOVE ‘Add BUTTON‘ TO SSCRFIELDS-FUNCTXT_01.
       MOVE ‘Minus BUTTON‘ TO SSCRFIELDS-FUNCTXT_02.
       MOVE ‘MODIFY BUTTON‘ TO SSCRFIELDS-FUNCTXT_05.
 
    AT SELECTION-SCREEN.
      IF SSCRFIELDS-UCOMM = ‘FC05‘. "触发 FC05工具栏按钮,将要执行什么操作
        CALL SELECTION-SCREEN 1234."调用程序中的子屏幕
      ENDIF.

    运行界面如下:
    
    

以下代码来自官方网站上面的例子:

*官方菜单SELECTION-SCREEN FUNCTION KEY n (demo:http://help.sap.com/abapdocu_70/en/ABAPSELECTION-SCREEN_FUNCTIONKEY.htm)
   TYPE-POOLS ICON. "Program Icon Library
   TABLES SSCRFIELDS.
   DATA functxt TYPE SMP_DYNTXT. "SMP_DYNTXT(菜单制作器:动态文本的程序接口)

PARAMETERS: p_carrid TYPE s_carr_id,
               p_cityfr TYPE s_from_cit.
   SELECTION-SCREEN: FUNCTION KEY 1,
                     FUNCTION KEY 2.

INITIALIZATION. "屏幕初始化
     functxt-icon_id   = icon_ws_plane.  "文本字段中的图标(替换显示,别名) 
     functxt-quickinfo = ‘Preselected Carrier‘.  "菜单制作器:信息文本 (4.0),滑鼠移去过去显示的信息TIP
     functxt-icon_text = ‘LH‘.  "菜单制作器:图标文本 (4.0),菜单名称
     sscrfields-functxt_01 = functxt.
     functxt-icon_text = ‘UA‘.
     sscrfields-functxt_02 = functxt.
  
   AT SELECTION-SCREEN.
    CASE SSCRFIELDS-UCOMM.
      WHEN ‘FC01‘.
        p_carrid = ‘LH‘.
        p_cityfr = ‘Frankfurt‘.
      WHEN ‘FC02‘.
        p_carrid = ‘UA‘.
        p_cityfr = ‘Chicago‘.
   ENDCASE.
   运行界面如下:
   
    

  
 (3)SELECTION-SCREEN BEGIN OF TABBED BLOCK <block> FOR n LINES.
    定义选项卡或者其他类似于选择页切换的功能组件。具体语法如下:
   [Syntax]
   SELECTION-SCREEN: BEGIN OF TABBED BLOCK <sub_area> FOR n LINES,
                     [......]
                     END OF BLOCK <sub_area>.
   其中 n代表高度,此高度为选择控件的高度。
   例1:
   [Code]

TABLES:MARA.
   *定义子屏幕100 SUBSCREEN
   SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN. 
     SELECTION-SCREEN BEGIN OF BLOCK blockA WITH FRAME TITLE TEXT-W01.
      SELECT-OPTIONS:mantra FOR MARA-MATNR NO INTERVALS.
      SELECTION-SCREEN SKIP 1.
      PARAMETERS: check01 AS CHECKBOX DEFAULT ‘X‘.
     SELECTION-SCREEN END OF BLOCK blockA.
   SELECTION-SCREEN END OF SCREEN 100.

*定义子屏幕200 SUBSCREEN
   SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    PARAMETERS: mantrb LIKE MARA-MATNR.
   SELECTION-SCREEN END OF SCREEN 200.
   
   *选择页TAB功能,定义两个TAB
   SELECTION-SCREEN:
    BEGIN OF TABBED BLOCK MyTab FOR 5 LINES,
     TAB (20) BUTTON1 USER-COMMAND PUSH1,  *(20)代表要显示在TAB内容的长度,最大长度为79,不相信?你可以试下.哈哈
     TAB (20) BUTTON2 USER-COMMAND PUSH2,
    END OF BLOCK MyTab.

INITIALIZATION.
    BUTTON1 = ‘FirstTab‘.
    BUTTON2 = ‘SecondTab‘.
    MyTab-PROG = SY-REPID. *指定调用的程序名
    MyTab-DYNNR = 100. *指定当前要显示的屏幕

AT SELECTION-SCREEN.
    CASE SY-UCOMM.
     WHEN ‘PUSH1‘.
        MyTab-DYNNR = 100.
        MyTab-ACTIVETAB = ‘BUTTON1‘.
     WHEN ‘PUSH2‘.
        MyTab-DYNNR = 200.
        MyTab-ACTIVETAB = ‘BUTTON2‘.
    ENDCASE.
    运行界面如下:
    
    

例2:
    [CODE] The Official Demo

TABLES SSCRFIELDS.
    * SUBSCREEN 100
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
     SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-010.
      PARAMETERS: p1(10) TYPE c,
                 p2(10) TYPE c,
                 p3(10) TYPE c.
     SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN END OF SCREEN 100.

* SUBSCREEN 200
    SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
     SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.
      PARAMETERS: q1(10) TYPE c,
                  q2(10) TYPE c,
                  q3(10) TYPE c.
     SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN END OF SCREEN 200.

* SUBSCREEN 300
    SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
     SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-030.
      PARAMETERS: r1(10) TYPE c,
                  r2(10) TYPE c,
                  r3(10) TYPE c.
     SELECTION-SCREEN END OF BLOCK b3.
    SELECTION-SCREEN END OF SCREEN 300.

* STANDARD SELECTION SCREEN
   SELECTION-SCREEN: FUNCTION KEY 1, "工具栏按钮
                     FUNCTION KEY 2.

SELECTION-SCREEN: BEGIN OF TABBED BLOCK sub FOR 10 LINES,
                     END OF BLOCK sub.

INITIALIZATION.
     sscrfields-functxt_01 = ‘@[email protected]‘. "按钮描述字段,图标形貌
     sscrfields-functxt_02 = ‘@[email protected]‘. "按钮描述字段,图标形貌
     sub-prog = SY-REPID. "必选项,倔强的孩子.
     sub-dynnr = 100.

AT SELECTION-SCREEN.
    CASE SY-DYNNR. "当前显示屏幕的名称
     WHEN 100.
      IF SSCRFIELDS-UCOMM = ‘FC01‘. "触发事件的TOOL BAR CONTROL
        sub-dynnr = 300.  "指定显示哪个屏幕
      ELSEIF SSCRFIELDS-UCOMM = ‘FC02‘.
        sub-dynnr = 200.
      ENDIF.
    WHEN 200.
      IF SSCRFIELDS-UCOMM = ‘FC01‘.
        sub-dynnr = 100.
      ELSEIF SSCRFIELDS-UCOMM = ‘FC02‘.
        sub-dynnr = 300.
      ENDIF.
    WHEN 300.
      IF SSCRFIELDS-UCOMM = ‘FC01‘.
        sub-dynnr = 200.
      ELSEIF SSCRFIELDS-UCOMM = ‘FC02‘.
        sub-dynnr = 100.
      ENDIF.
  ENDCASE.

START-OF-SELECTION.
   WRITE: / ‘P1:‘, p1,‘Q1:‘, q1, ‘R1:‘, r1,
          / ‘P2:‘, p2,‘Q2:‘, q2, ‘R2:‘, r2,
          / ‘P3:‘, p3,‘Q3:‘, q3, ‘R3:‘, r3.
  运行界面如下:
  

时间: 2024-08-26 08:12:50

SELECT SCREEN 整理4 转载的相关文章

SELECT SCREEN 整理1 转载

SELECT-SCREEN语句用于创建屏幕的框架结构,主要包括屏幕元素的创建.子屏幕的创建等.子程序主要分为两种,一种为Include Screen,可以通过Report端程序直接调用:另一种为SubScreen,需要通过Screen Painter所创建的屏幕调用.SELECT-SCREEN具体的应用语法如下: (1)SELECTION-SCREEN BEGIN OF SCREEN src.               .......               SELECTION-SCREE

SELECT SCREEN 整理2 转载

(4)SELECTION-SCREEN INCLUDE(调用已经存在的屏幕元素)        参照某一个已经定义的屏幕元素来创建,如下代码: CALL SCREEN 1234.     *PARAMETERS MATNR LIKE MARA-MATNR.    *CALL SELECTION-SCREEN 1234.  "调用子窗体    SELECTION-SCREEN BEGIN OF SCREEN 1111.      SELECTION-SCREEN BEGIN OF BLOCK bl

SELECT SCREEN 整理3 转载

在ABAP中在屏幕上创建按钮,你需要在SELECTION-SCREEN对象中加入PUSHBUTTON参数,语法如下:     [Syntax]     SELECTION-SCREEN PUSHBUTTON [/] <pos(len)> <name> USER-COMMAND <ucom> [MODIF ID <key>]     <pos(len)>:PUSHBUTTON按钮在屏幕生成的位置与长度.     <name>:PUSHB

MVC4 网站发布(整理 + 部分转载 + 部分问题收集和解决方案)

网站发布步骤: 这部分是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因. 如有冒犯请联系本人,或删除,或标明出处. 因为好的文章,以前只想收藏,但连接有时候会失效,所以现在碰到好的直接转到自己这里. 原文 出处http://blog.sina.com.cn/s/blog_acb983ba0101c5um.html 1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击&

Github安全整理(转载)

刚好这两天对之前github上关注的一些比较有意思的项目进行了一下分类整理,在这里列出来分享给大家,希望能对大家寻找工具或者资源有所帮助. 大部分Repo是关于安全以及Python的,也有一些其他主题的项目,有很多我都没有用过,关于项目的功能概括如果写的有不对的地方,还请大家多多包涵,给予指正. 欢迎组团欢迎一起学习交流!转载请注明出处. 链接:http://blog.leanote.com/post/b0ss/Github%E5%AE%89%E5%85%A8%E6%95%B4%E7%90%86

【NCBI教程】资源汇总整理 (转载)

主题 网址 备注 [NCBI教程]资源汇总整理 http://www.omicshare.com/forum/thread-200-1-1.html (出处: OmicShare Forum)

vim快捷键整理(转载)

一.移动光标 1.左移h.右移l.下移j.上移k2.向下翻页ctrl + f,向上翻页ctrl + b3.向下翻半页ctrl + d,向上翻半页ctrl + u4.移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^5.移动光标到下一个句子 ),移动光标到上一个句子(6.移动到段首{,移动到段尾}7.移动到下一个词w,移动到上一个词b8.移动到文档开始gg,移动到文档结束G9.移动到匹配的{}.().[]处%10.跳到第n行 ngg 或 nG 或 :n11.移动光标到屏幕顶端H,移动到屏

基于.net平台常用的框架整理(转载)

转自:http://www.cnblogs.com/hgmyz/p/5313983.html#!comments 基于.NET平台常用的框架整理 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库. 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memc

mapper映射文件配置之select、resultMap(转载)

原文地址:http://www.cnblogs.com/dongying/p/4073259.html 先看select的配置吧: <select         <!-- 1. id (必须配置)         id是命名空间中的唯一标识符,可被用来代表这条语句.         一个命名空间(namespace) 对应一个dao接口,         这个id也应该对应dao里面的某个方法(相当于方法的实现),因此id 应该与方法名一致 -->        id="se