• 选择屏幕部分应用


    *实现目标
    *1.按照选择屏幕的样式来实现。
    *2.库存地点和工厂必输
    *3.盘点日期设置初始值,要求设置的是选择范围,有上限和下限
    *4.给会计年度添加搜索帮助,搜索帮助的范围从1880年-2014年,使用屏幕事件AT SELECTION-SCREEN ON VALUE-REQUEST FOR 。
    *5.使用框按照屏幕样式将元素分别列在不同的框中
    *6.当‘选择排序方式’打勾了之后,显示两个单选按钮‘按库存凭证排序’和‘按物理排序’;否则不显示
    *7.在程序中定义内表,根据你在选择屏幕上维护的筛选条件,在数据库查找符合条件的数据放在内表中。
    *---------------------------------begin----------------------------------------------------------------
    TABLES:IKPF,ISEG.
    
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001."使用框按照屏幕样式将元素分别列在不同的框中
    PARAMETERS:P_WERKS TYPE IKPF-WERKS,
               P_LGORT TYPE IKPF-LGORT.
    SELECT-OPTIONS:S_GIDAT FOR IKPF-GIDAT.
    SELECT-OPTIONS:S_MATNR FOR ISEG-MATNR.
    SELECT-OPTIONS:S_IBLNR FOR IKPF-IBLNR.
    SELECT-OPTIONS:S_GJAHR FOR IKPF-GJAHR NO-EXTENSION.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002."使用框按照屏幕样式将元素分别列在不同的框中
    PARAMETERS:A TYPE CHAR1 AS CHECKBOX USER-COMMAND F DEFAULT 'X',
               B TYPE CHAR1 RADIOBUTTON GROUP G1 MODIF ID B1,
               C TYPE CHAR1 RADIOBUTTON GROUP G1 MODIF ID B1.
    SELECTION-SCREEN END OF BLOCK B2.
    
    AT SELECTION-SCREEN OUTPUT."当‘选择排序方式’打勾了之后,显示两个单选按钮‘按库存凭证排序’和‘按物理排序’;否则不显示
      LOOP AT SCREEN.
        IF A = 'X'.
          IF SCREEN-GROUP1 = 'B1'.
            SCREEN-ACTIVE = 1.
            MODIFY SCREEN.
          ENDIF.
        ELSE.
          IF SCREEN-GROUP1 = 'B1'.
            SCREEN-ACTIVE = 0.
            MODIFY SCREEN.
          ENDIF.
        ENDIF.
      ENDLOOP.
    
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GJAHR-LOW."给会计年度添加搜索帮助,搜索帮助的范围从1880年-2014年
      PERFORM DATA_GET USING S_GJAHR-LOW.
    
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GJAHR-HIGH."给会计年度添加搜索帮助,搜索帮助的范围从1880年-2014年
      PERFORM DATA_GET USING S_GJAHR-HIGH.
    
    START-OF-SELECTION."在程序中定义内表,根据你在选择屏幕上维护的筛选条件,在数据库查找符合条件的数据放在内表中。
      IF B = 'X'.
        PERFORM SORT_LABST.
      ENDIF.
      IF C = 'X'.
        PERFORM SORT_MATNR.
      ENDIF.
    
    FORM DATA_GET USING DATE1.
    
      DATA:DATE TYPE WORKFLDS-GKDAY.
      CALL FUNCTION 'F4_DATE'
        EXPORTING
          DATE_FOR_FIRST_MONTH         = SY-DATUM
        IMPORTING
          SELECT_DATE                  = DATE
        EXCEPTIONS
          CALENDAR_BUFFER_NOT_LOADABLE = 1
          DATE_AFTER_RANGE             = 2
          DATE_BEFORE_RANGE            = 3
          DATE_INVALID                 = 4
          FACTORY_CALENDAR_NOT_FOUND   = 5
          HOLIDAY_CALENDAR_NOT_FOUND   = 6
          PARAMETER_CONFLICT           = 7
          OTHERS                       = 8.
      IF SY-SUBRC <> 0.
    * Implement suitable error handling here
      ENDIF.
    
      IF SY-SUBRC = 0.
        DATE1 =  DATE.
      ENDIF.
    ENDFORM.
    *-------------------------------------------------由于盘点表没数据,换了库存表------------------------------------------
    FORM SORT_MATNR .
      SELECT MARD~MATNR, MAKTX,WERKS,LGORT,LABST INTO TABLE @DATA(LT_MATNR)  FROM MARD  INNER JOIN MAKT ON MARD~MATNR = MAKT~MATNR UP TO 10 ROWS.
      SORT LT_MATNR BY MATNR LABST.
    
      LOOP AT LT_MATNR INTO DATA(LS_MATNR).
        WRITE:/ LS_MATNR-MATNR,LS_MATNR-LABST.
      ENDLOOP.
    ENDFORM.
    
    FORM SORT_LABST .
      SELECT MARD~MATNR, MAKTX,WERKS,LGORT,LABST INTO TABLE @DATA(LT_MATNR1)  FROM MARD  INNER JOIN MAKT ON MARD~MATNR = MAKT~MATNR UP TO 10 ROWS.
      SORT LT_MATNR1 BY LABST MATNR.
    
      LOOP AT LT_MATNR1 INTO DATA(LS_MATNR1)  .
        WRITE:/ LS_MATNR1-LABST,LS_MATNR1-MATNR.
      ENDLOOP.
    ENDFORM.

  • 相关阅读:
    word批量打印工具,c#写的
    word添加页眉脚和设置各页不同的页眉页脚.
    打印机双面打印
    ORACLE OCP认证
    基于.net程序,使用cefsharp开发的打开网页工具,如何不加载图片
    在iis上运行的服务器端程序,运行一段时间后,访问都只出现一行乱码,回收进程池后又好了,求大神回复
    ArcGis API for JavaScript 开发笔记一 加载地图
    修改现有消息类让.net core项目支持Protobuf
    结合现有分布式系统的数据一致性思考
    让现有vue前端项目快速支持多语言
  • 原文地址:https://www.cnblogs.com/BruceKing/p/11422968.html
Copyright © 2020-2023  润新知