zoukankan      html  css  js  c++  java
  • ALV报表——选择屏幕选项卡

    效果:

    代码:

    *&--------------------------------------------------------------------*
    *& REPORT ZPPRTEST
    *&--------------------------------------------------------------------*
    *&
    *&--------------------------------------------------------------------*
    REPORT ZPPRTEST.
    
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
    PARAMETERS: p_werks LIKE marc-werks DEFAULT '2000' OBLIGATORY.
    SELECTION-SCREEN END OF SCREEN 100.
    
    SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    PARAMETERS: p_matnr LIKE marc-matnr.
    SELECTION-SCREEN END OF SCREEN 200.
    
    "定义一个TAB空间, 取名为MYTAB, 控件高10行, 共分为二个页签.
    SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
      TAB (25) button1 USER-COMMAND push1,
      TAB (25) button2 USER-COMMAND push2,
    END OF BLOCK mytab.
    
    ************************************************************************
    * INITIALIZATION
    ************************************************************************
    INITIALIZATION.
    "为TAB控件分配初始化值
      PERFORM tab_initial.
    
    ************************************************************************
    * AT SELECTION SCREEN
    ************************************************************************
    AT SELECTION-SCREEN.
    "为控件页签单击事件, 选择不同页签显示不同子屏幕.
      PERFORM tab_change.
    
    ************************************************************************
    * AT SELECTION SCREEN OUTPUT
    ************************************************************************
    AT SELECTION-SCREEN OUTPUT.
    
    ************************************************************************
    * REPORT FORMAT
    ************************************************************************
    TOP-OF-PAGE.
    
    END-OF-PAGE.
    ************************************************************************
    * MAIN PROCESS
    ************************************************************************
    START-OF-SELECTION.
    "根据不同的选项卡执行不同的FORM
      CASE mytab-dynnr.
        WHEN '100'.
          WRITE 1.
    *  PERFORM get_data.
    *  PERFORM display_data.
        WHEN '200'.
          WRITE 2.
    *  PERFORM get_data2.
    *  PERFORM display_data2.
      ENDCASE.
    END-OF-SELECTION.
    
    FORM tab_initial.
      button1 = TEXT-010.
      button2 = TEXT-020.
      mytab-prog = sy-repid.
    
      "取内存记录的mytab-dynnr
      IMPORT mytab-dynnr TO mytab-dynnr FROM MEMORY ID 'TAB'.
    
      IF mytab-dynnr IS INITIAL.
        mytab-dynnr = 100.
        mytab-activetab = 'PUSH1'.
      ELSE.
        CASE mytab-dynnr.
          WHEN 100.
            mytab-dynnr = 100.
            mytab-activetab = 'PUSH1'.
          WHEN 200.
            mytab-dynnr = 200.
            mytab-activetab = 'PUSH2'.
        ENDCASE.
      ENDIF.
    
    
    ENDFORM.
    
    FORM tab_change.
      CASE sy-ucomm.
        WHEN 'ONLI'.
          "用内存记录的mytab-dynnr
          EXPORT mytab-dynnr FROM mytab-dynnr TO MEMORY ID 'TAB'.
        WHEN 'PUSH1'.
          mytab-dynnr = 100.
          mytab-activetab = 'BUTTON1'.
        WHEN 'PUSH2'.
          mytab-dynnr = 200.
          mytab-activetab = 'BUTTON2'.
      ENDCASE.
    ENDFORM.
    木叶飞舞之处,火亦生生不息
  • 相关阅读:
    20145325张梓靖 《Java程序设计》第9周学习总结
    20145325张梓靖 实验四 "Andoid开发基础"
    20145325张梓靖 《Java程序设计》第8周学习总结
    20145307《信息安全系统设计基础》第7周学习总结
    20145307《信息安全系统设计基础》第六周学习总结
    Y86模拟器安装
    20145307《信息安全系统设计基础》第五周学习总结PT2
    git失败案例
    20145307陈俊达《信息安全系统设计基础》第5周学习总结PT1
    20145307陈俊达《信息安全系统设计基础》第3周学习总结
  • 原文地址:https://www.cnblogs.com/StephenAmell/p/11401575.html
Copyright © 2011-2022 走看看