sap abap dialog编程问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sap abap dialog编程问题相关的知识,希望对你有一定的参考价值。

请教下大家,编程里结构screen 各参数是什麽含义,比如 screen-group1 = 'BLK', screen-group1 = 'GP1',其中BLK,GP1这些值是系统预置的还是自已定的呢?如果是系统预置的话?那分别代表什么含?呢?在哪里可以看到screen 所有预设值的含议呢?万分感谢。

自己设定的,某些含义的缩写,BLK不知道,GP1 就是 Group 1 嘛。这样设定,主要是为了将屏幕上的字段进行分组用的,一个字段可以设定4个组,分别是GROUP1,GROUP2,GROUP3,GROUP4。通过屏幕窗口中的元素清单标签下面的子标签Mod.groups/
fucntions进行组的设定。通过组的设定,当程序执行PBO(process before output)时,我们可以使用命令对屏幕进行控制,实现屏幕上字段的显示或不显示,输入或不可输入等操作,可以通过数据字典查看SCREEN中的具体参数。如下面的例子:
LOOP SCREEN.
IF SCREEN-GROUP1 = 'BLK'. “ 如你上述写的命名
SCREEN-INPUT = '0'.
ENDIF.
IF SCREEN-GROUP2 = 'GP2'.
SCREEN- ACTIVE = '1'.

ENDIF.
MODIFY SCREEN.
ENDLOOP.
参考技术A 可以自己定义,双击一个屏幕--〉你会看见Attributes,Element list,Flow logic-->然后点上面的Layout--〉出现的屏幕任意双击一个屏幕字段Field--〉在弹出的小窗口你会看见Groups,就是你想要的了!自己定义,可以check在同一个Group 下面不同字段,是否有变化,做相应的change。

至于sap标准的,不外乎也是一个屏幕套用一个屏幕,你知道程序名,你知道屏幕号,可以去程序里面看,那个Group是啥。至于group的含义,我不认为有什么含义。。。指不定哪个程序元自己随意想出来的。。。

ABAP系列SAP ABAP 如何控制Dialog中的键盘(回车)功能

公众号:SAP Technical
本文作者:matinal
 

技术图片

 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

MODULE USER_COMMAND_2100 INPUT.
  CLEAR SAVE_OK.
  SAVE_OK = OK_CODE.
  CLEAR OK_CODE.
  CASE SAVE_OK.
    WHEN \\ENTER\\‘.
      PERFORM FRM_ENTER.
    WHEN \\‘CANC\\‘ OR \\‘BACK\\‘.
      LEAVE TO SCREEN 0.
    WHEN \\‘EXIT\\‘.
      LEAVE PROGRAM.
    WHEN \\‘INPU\\‘.
      PERFORM FRM_SELE_FUNC USING \\‘1\\‘.
    WHEN \\‘MODI\\‘.
      PERFORM FRM_SELE_FUNC USING \\‘2\\‘.
    WHEN \\‘SECH\\‘.
      PERFORM FRM_SELE_FUNC USING \\‘3\\‘.
    WHEN \\‘CLEA\\‘.
      PERFORM FRM_CLEAR_SCREEN USING \\‘2100\\‘.
    WHEN OTHERS.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_2100  INPUT
*&---------------------------------------------------------------------*
*&      Form  FRM_ENTER
*&---------------------------------------------------------------------*
*       按回车键引发的动作
*----------------------------------------------------------------------*
FORM FRM_ENTER_2100 .
* 取得当前光标所在位置
  CLEAR W_2100-CURPOS.
  GET CURSOR FIELD W_2100-CURPOS.
  CASE W_2100-CURPOS.
    WHEN \\‘W_2100-DATE\\‘.
*     拣配日期——默认当天日期,可修改。若修改,用户回车后判断日期格式
*     是否正确,若不正确光标停留在“拣配日期”项目上等待用户修改;若正
*     确光标跳到“仓库”项目上。
      PERFORM FRM_MAIN_CHECK_JZRQ USING W_2100-DATE.      "检查日期
      IF G_MAIN_CURPOS = \\‘W_G-JZRQ\\‘.
        W_2100-CURPOS  = \\‘W_2100-DATE\\‘.
        EXIT.
      ELSE.
        W_2100-CURPOS  = \\‘W_2100-LGORT\\‘.
      ENDIF.
    WHEN \\‘W_2100-LGORT\\‘.
*   仓库——用户登录后,从“仓管员信息表”里查找出用户名对应的库存地点,
*   显示在“仓库”后面。用户可修改,修改后按回车,系统需要判断用户输入的
*   库存地点代码是否在“仓管员信息表”里,若不存在提示错误信息(您没有操
*   作该仓库的权限)。若正确,回车后光标跳到“请选择”上
      SELECT  SINGLE LGORT
        INTO  ZMMWHM-LGORT
        FROM  ZMMWHM
        WHERE NAME  = SY-UNAME
          AND LGORT = W_2100-LGORT.
      IF SY-SUBRC <> 0.
        W_2100-CURPOS  = \\‘W_2100-LGORT\\‘.
          MESSAGE E000.
        EXIT.
      ELSE.
        W_2100-CURPOS  = \\‘W_2100-SELE\\‘.
      ENDIF.
    WHEN \\‘W_2100-SELE\\‘.
*   请选择——用户在该项目上输入屏幕上可供选择的菜单项编号,回车后系统判
*   断输入的内容是否存在对应菜单编号,若不存在光标停留在“请选择”项目
*   上,并选中输入的内容等待用户修改;若存在则进入相应的操作屏幕。
      PERFORM FRM_SELE_FUNC USING W_2100-SELE.
    WHEN OTHERS.
  ENDCASE.
ENDFORM.                    " FRM_ENTER

 

以上是关于sap abap dialog编程问题的主要内容,如果未能解决你的问题,请参考以下文章

ABAP之DIALOG

ABAP系列SAP ABAP 如何控制Dialog中的键盘(回车)功能

一些通过SAP ABAP代码审查得出的ABAP编程最佳实践

Sap. Abap 编程的指针怎么用?

如何在SAP Cloud Platform ABAP编程环境里创建一个employee

SAP 云平台上的 ABAP 编程环境里如何消费第三方服务