热门标签 | 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 

已开发程序查询


推荐阅读
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文探讨了如何通过最小生成树(MST)来计算严格次小生成树。在处理过程中,需特别注意所有边权重相等的情况,以避免错误。我们首先构建最小生成树,然后枚举每条非树边,检查其是否能形成更优的次小生成树。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 几何画板展示电场线与等势面的交互关系
    几何画板是一款功能强大的物理教学软件,具备丰富的绘图和度量工具。它不仅能够模拟物理实验过程,还能通过定量分析揭示物理现象背后的规律,尤其适用于难以在实际实验中展示的内容。本文将介绍如何使用几何画板演示电场线与等势面之间的关系。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 本文介绍如何在应用程序中使用文本输入框创建密码输入框,并通过设置掩码来隐藏用户输入的内容。我们将详细解释代码实现,并提供专业的补充说明。 ... [详细]
  • 本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ... [详细]
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社区 版权所有