zoukankan      html  css  js  c++  java
  • ABAP如何使选择屏幕的初始化事件再次触发

    最近一个同事有一个比较变态的用户需求,他希望每次回到选择屏幕时,选择参数是有程序控制输入的,用户客户端的输入清除。对此需求有两种处理方法:
    一、在AT SELECTION-SCREEN中写赋值语句,这种方法你可能需要中间变量缓存选择条件用于查询,代码样例:
    REPORT demo_write_statement.
    tables vbak.
    DATA:  NAME(20) VALUE 'SOURCE',
          SOURCE(10) VALUE 'abcd',
          TARGET(10).


    select-options k_kunnr for vbak-kunnr.


    data: is_parent  type i value 0.

    INITIALIZATION.
    ×  refresh k_kunnr.
    AT SELECTION-SCREEN.
      refresh k_kunnr.
      MOVE: 'I'      TO k_kunnr-SIGN,
            'EQ'     TO k_kunnr-OPTION,
            '9999'   TO k_kunnr-LOW.
      APPEND k_kunnr.
    *SYSTEM-CALL INITIALIZATION.

    二、在Initialization事件中写赋值代码
     在Initialization事件中写赋值代码,默认情况只有第一次会影响输入屏幕,以后将失去作用。为了使该代码起作用你必须在选择屏幕的其他事件中执行SYSTEM-CALL INITIALIZATION.这个语句。代码样例:
    REPORT demo_write_statement.
    tables: spfli.
    DATA: tab_spfli   TYPE TABLE OF spfli,
          tab_sflight TYPE SORTED TABLE OF sflight
                           WITH UNIQUE KEY table_line,
          wa LIKE LINE OF tab_sflight.
    select-options s_CARRID for spfli-CARRID.

    INITIALIZATION.
      refresh s_CARRID.
      MOVE: 'I'      TO s_CARRID-SIGN,
            'EQ'     TO s_CARRID-OPTION,
            'AZ'   TO s_CARRID-LOW.
      APPEND k_kunnr.


    AT SELECTION-SCREEN.
    start-of-SELECTION.
      SELECT carrid connid
      INTO   CORRESPONDING FIELDS OF TABLE tab_spfli
      FROM   spfli
      WHERE  CARRID in s_CARRID .

      SYSTEM-CALL INITIALIZATION.
      SELECT  carrid connid fldate
        INTO  CORRESPONDING FIELDS OF TABLE tab_sflight
        FROM  sflight
        FOR ALL ENTRIES IN tab_spfli
        WHERE carrid = tab_spfli-carrid AND
              connid = tab_spfli-connid.


      LOOP AT tab_sflight INTO wa.

        AT NEW connid.
          WRITE: / wa-carrid, wa-connid.
        ENDAT.

        WRITE: / wa-fldate.

      ENDLOOP.



    相关连接:http://blog.csdn.net/CompassButton/archive/2006/08/18/1091626.aspx

  • 相关阅读:
    Hive-0.12.0 配置Mysql的Metasotre
    cdecl、stdcall、fastcall、thiscall函数调用约定区别 (转)
    汇编函数 哪些寄存器在使用时需要保护和恢复现场
    如何用C++ 写Python模块扩展(二)
    如何用C++ 写Python模块扩展(一)
    python装饰器装饰原理探秘
    Linux 命令
    iOS为所需要的视图添加模糊效果--UIVisualEffectView
    UIAlertView ----警告视图
    Virtual Box 下Ubuntu桥接网络设置
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157133.html
Copyright © 2011-2022 走看看