热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

已开发程序查询

REPORTzmail.TABLES:trdir,tstc.DATA:BEGINOFgs_data,selTYPEboolean,用于选择多行nameTYPEtrdir-name
  REPORT zmail.
  TABLES: trdir, tstc.

  DATA: BEGIN OF gs_data,
          sel   TYPE boolean,     " 用于选择多行
          name  TYPE trdir-name,  " 程序名
          subc  TYPE trdir-subc,  " 程序类型
          rstat TYPE trdir-rstat, " 状态
          tcode TYPE tstc-tcode,  " 事务码
          ttext TYPE tstct-ttext, " 事务码描述
          cnam  TYPE trdir-cnam,  " 创建者
          cdat  TYPE trdir-cdat,  " 创建日期
          unam  TYPE trdir-unam,  " 最后修改人
          udat  TYPE trdir-udat,  " 修改日期
        END OF gs_data.
  DATA: gt_data LIKE TABLE OF gs_data. " ALV显示內表
  DATA: line TYPE i." ALV行数
  " 选择屏幕
  SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS: s_name  FOR trdir-name,            " 程序名
                  s_tcode FOR  tstc-tcode,           " 事务码
                  s_cnam  FOR  trdir-cnam,           " 创建者
                  s_unam  FOR  trdir-unam,           " 最后修改人
                  s_subc  FOR  trdir-subc DEFAULT 1, " 程序类型
                  s_rstat FOR  trdir-rstat.          " 状态
  SELECTION-SCREEN END OF BLOCK b1.

  INITIALIZATION.
    %_s_name_%_app_%-text = 程序名.
    %_s_tcode_%_app_%-text = 事务码.
    %_s_cnam_%_app_%-text = 创建者.
    %_s_unam_%_app_%-text = 最后修改人.
    %_s_subc_%_app_%-text = 程序类型.
    %_s_rstat_%_app_%-text = 状态.
    " F8事件

  AT SELECTION-SCREEN.
    DATA p_prog TYPE programm .
    DATA: l_rc(5).
    p_prog = sy-repid.
    PERFORM copy_status_diff_progs_new IN PROGRAM saplsmpe IF FOUND
    USING X SAPLKKBL p_prog STANDARD_FULLSCREEN STATUS_ALV
    CHANGING l_rc.

  START-OF-SELECTION.
    IF s_name[]  IS INITIAL AND " 程序名
       s_cnam[]  IS INITIAL AND " 创建者
       s_unam[]  IS INITIAL AND " 最后修改人
       s_subc[]  IS INITIAL AND " 程序类型
       s_tcode[] IS INITIAL AND " 事务码
       s_rstat[] IS INITIAL.    " 状态

      MESSAGE 请至少输入一个条件! TYPE S DISPLAY LIKE E.
      EXIT.
    ENDIF.
    PERFORM get_data.
    IF gt_data[] IS INITIAL.
      MESSAGE 无符合条件的记录 TYPE S DISPLAY LIKE E.
      EXIT.
    ENDIF.
    PERFORM alv_data.
*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text  获取数据
*----------------------------------------------------------------------*
  FORM get_data.
    DATA: BEGIN OF ls_tstc,
            tcode TYPE tstc-tcode,
            ttext TYPE tstct-ttext,
          END OF ls_tstc.

    DATA: lt_tstc LIKE TABLE OF ls_tstc.
    " 输入事务码时
    IF s_tcode[] IS NOT INITIAL.
      SELECT
        a~tcode
        b~name
        b~subc
        b~rstat
        b~cnam
        b~cdat
        b~unam
        b~udat
        c~ttext
        INTO CORRESPONDING FIELDS OF TABLE gt_data
        FROM tstc AS a
        INNER JOIN trdir AS b ON a~pgmna = b~name
        INNER JOIN tstct AS c ON a~tcode = c~tcode
        WHERE a~tcode IN s_tcode
        AND   b~name  IN s_name   " 程序名
        AND   b~cnam  IN s_cnam   " 创建者
        AND   b~unam  IN s_unam   " 最后修改人
      AND   b~subc  IN s_subc   " 程序类型
      AND   b~rstat IN s_rstat. " 状态
    ELSE.
      " 没有输入事务码时
      SELECT
        a~name
        a~subc
        a~rstat
        a~cnam
        a~cdat
        a~unam
        a~udat
        b~tcode
        INTO CORRESPONDING FIELDS OF TABLE gt_data
        FROM trdir AS a
        LEFT JOIN tstc AS b ON a~name  = b~pgmna
        WHERE a~name  IN s_name   " 程序名
        AND   a~cnam  IN s_cnam   " 创建者
        AND   a~unam  IN s_unam   " 最后修改人
      AND   a~subc  IN s_subc   " 程序类型
      AND   a~rstat IN s_rstat. " 状态

      IF gt_data[] IS NOT INITIAL.
        " 查询事务码描述文本
        SELECT
          tcode
          ttext
          INTO CORRESPONDING FIELDS OF TABLE lt_tstc
          FROM tstct
        FOR ALL ENTRIES IN gt_data
        WHERE tcode = gt_data-tcode.
        SORT lt_tstc BY tcode." 先排序
        LOOP AT gt_data INTO gs_data.
          READ TABLE lt_tstc INTO ls_tstc WITH KEY tcode = gs_data-tcode BINARY SEARCH.
          IF sy-subrc EQ 0.
            gs_data-ttext = ls_tstc-ttext.
            MODIFY gt_data FROM gs_data TRANSPORTING ttext.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDIF.
    " 统计內表行数
    DESCRIBE TABLE gt_data LINES line.
    " 排序
    SORT gt_data BY cnam cdat.
  ENDFORM.                    "get_data
*&---------------------------------------------------------------------*
*&      Form  alv_data
*&---------------------------------------------------------------------*
*       text 显示ALV数据
*----------------------------------------------------------------------*
  FORM alv_data.
    DATA: fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          layout   TYPE slis_layout_alv.
    PERFORM get_layout CHANGING layout.   " alv布局
    PERFORM get_fieldcat TABLES fieldcat. " 控制报表显示哪些栏位
    CALL FUNCTION REUSE_ALV_GRID_DISPLAY
      EXPORTING
        i_callback_program       = sy-repid             " 程序名
        is_layout                = layout               " 布局
        i_callback_pf_status_set = STATUS_ALV      " STATUS
        i_callback_user_command  = USER_COMMAND_FORM  " 定义按钮的功能
        it_fieldcat              = fieldcat[]           " alv栏目(显示字段)内表
      TABLES
        t_outtab                 = gt_data              " 将内表数据赋给ALV
      EXCEPTIONS
        program_error            = 1
        OTHERS                   = 2.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDFORM.                    "alv_data
*&---------------------------------------------------------------------*
*&      Form  get_layout
*&---------------------------------------------------------------------*
*       text  ALV布局设置
*----------------------------------------------------------------------*
*      -->C_LAYOUT   text
*----------------------------------------------------------------------*
  FORM get_layout CHANGING c_layout TYPE slis_layout_alv.
    CLEAR: c_layout.
    c_layout-colwidth_optimize = X." 宽度自动调节
    c_layout-box_fieldname = SEL.  " 选择多行
    c_layout-zebra = X.            " 颜色交替显示
  ENDFORM.                    "get_layout
*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND_FORM
*&---------------------------------------------------------------------*
*       text  自定义按钮功能
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
  FORM user_command_form USING r_ucomm     LIKE sy-ucomm
                               rs_selfield TYPE slis_selfield.
    READ TABLE gt_data INTO gs_data INDEX rs_selfield-tabindex.
    IF sy-subrc EQ 0 AND gs_data-tcode IS NOT INITIAL.
      CASE r_ucomm.
        WHEN &IC1. " 双击事件
          CALL TRANSACTION gs_data-tcode. " 调用事务码,运行程序
        WHEN OTHERS.
      ENDCASE.
    ENDIF.
  ENDFORM.                    "USER_COMMAND_FORM
*&---------------------------------------------------------------------*
*&      Form  get_fieldcat
*&---------------------------------------------------------------------*
*       text 显示字段
*----------------------------------------------------------------------*
*      -->CT_TAB     text
*----------------------------------------------------------------------*
  FORM get_fieldcat TABLES ct_tab TYPE slis_t_fieldcat_alv.
    DATA: fcat TYPE slis_fieldcat_alv.
    DEFINE add_fcat.
      CLEAR fcat.
      fcat-fieldname       = &1. " 字段名
      fcat-seltext_l       = &2. " 显示字段文本
      fcat-seltext_m       = &2.
      fcat-seltext_s       = &2.
      fcat-key             = &3. " 主键
      fcat-hotspot         = &4. " 链接
      fcat-checkbox        = &5. " 复选框
      fcat-edit            = &6. " 是否可修改
      fcat-ref_tabname     = &7. " 参考表
      fcat-ref_fieldname   = &8. " 参考表字段
      APPEND fcat TO ct_tab.
    END-OF-DEFINITION.
    add_fcat NAME  程序名      ‘‘  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘.
    add_fcat SUBC  程序类型    ‘‘  ‘‘  ‘‘  ‘‘  TRDIR  SUBC.
    add_fcat RSTAT 状态        ‘‘  ‘‘  ‘‘  ‘‘  TRDIR  RSTAT.
    add_fcat TCODE 事务码      ‘‘  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘.
    add_fcat TTEXT 事务码描述  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘.
    add_fcat CNAM  创建者  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘.
    add_fcat CDAT  创建日期    ‘‘  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘.
    add_fcat UNAM  最后修改人  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘.
    add_fcat UDAT  修改日期    ‘‘  ‘‘  ‘‘  ‘‘  ‘‘  ‘‘.
  ENDFORM.                    "get_fieldcat
*&---------------------------------------------------------------------*
*&      Form  pfstatus_form
*&---------------------------------------------------------------------*
*       text  STATUS
*----------------------------------------------------------------------*
*      -->RT_EXTAB   text
*----------------------------------------------------------------------*
  FORM status_alv USING rt_extab TYPE slis_t_extab.
    SET TITLEBAR TITLE_BAR WITH line. " 标题
    SET PF-STATUS STATUS_ALV EXCLUDING rt_extab.
*    SET PF-STATUS ‘STATUS_ALV‘.         " 工具条
  ENDFORM.                    "pfstatus_form 

已开发程序查询


推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
author-avatar
___何鵬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有