002 programs
003 functions
004 structures
005 search help
006 enhance
007 replaces
P_1 program
P_10 search help
P_11 role&user
P_2 function
P_3 snumber
P_4 enhance
P_5 smartform
P_6 request
P_7 classes
P_8 replaces
P_9 structure
P_ERROR 仅显示错误数据
P_ISSTR structure
P_ISTAB table
P_NOTAB no table main
P_NOVIEW no view main
P_ROLE 角色去重
P_USER 用户去重
S_AGR_N 角色
S_AREA 函数组
S_AS4D 日期
S_AS4L 激活状态
S_AS4T 时间
S_AS4TEX 简短描述
S_AS4U 上次更改者
S_AS4USE 所有者
S_ASDATE 日期
S_ASTIME 时间
S_ASUSER 上次更改者
S_AUTH 负责人
S_AUTHOR 负责人
S_AUTO 创建人
S_CAPTIN 描述
S_CDAT 创建日期
S_CHAN 更改日期
S_CHANA 用户名
S_CHAND 日期
S_CHANT 时间
S_CHAY 最后修改人
S_CHGD 最后修改人
S_CHGO 更改日期
S_CLIDEP 客户端特定
S_CLSN 类/接口
S_CNAM 创建人
S_CONTFG 提交类
S_CREA 创建日期
S_CREAA 用户名
S_CREAD 日期
S_CREAT 时间
S_CREATD 创建日期
S_DDTEXT 简短描述
S_DESC 简短描述
S_DEVCL 包
S_DIAL 对话类型
S_EXIT 业务加载项定义名称
S_FIUSER 创建人
S_FMNAME 表单名称
S_FMODE 模式
S_FNAME 功能模块
S_GBDT1 创建日期
S_GBDT2 修改日期
S_GBOP1 建立者
S_GBOP2 最后更改人
S_GBTM1 创建时间
S_GBTM2 最后更改时间
S_LAUSER 更改人
S_MAINFG 表维护
S_NAME 程序名
S_NAMEL 全名
S_OBJECT 对象名
S_OBJN 对象名称
S_OBJT 对象类型
S_OBJTYP 对象类型
S_OBJ_NA 对象名称
S_PROFI 角色的参数文件名称
S_PROXY 代理使用
S_SELM 选择方法
S_SELT 选择方法种类
S_SHLP 搜索帮助名称
S_SHTX 短文本
S_STEXT 短文本
S_SUBC 程序类型
S_SUBID 替代名
S_SUBNR 替代步骤
S_SUBST 替代文本
S_SUBTX 替代文本
S_TABNM 表名
S_TCODE 事务代码
S_TEXT 报告标题
S_TOYEAR 终止年
S_TRFUNC 请求/任务的类型
S_TRKORR 请求/任务
S_TRSTAT 状态
S_TTEXT 事务说明
S_TXT 长文本
S_UDAT 更改日期
S_UNAM 最后修改人
S_UNAME 负责人
S_UNAM_ 用户
*&---------------------------------------------------------------------*
*& Report ZSEARCH_OBJECT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zsearch_object.
*&---------------------------------------------------------------------*
*& 表格工作区 *
*&---------------------------------------------------------------------*
TABLES : trdir,tstc,trdirt,tstct,tlibv,tfdir,tftit,tadir,nriv,tnrot,
stxfadm,stxfadmt,e070,e071,e07t,vseoclass,gb92,gb92t,gb921t,
dd02l,dd02t,sxc_exit,dd30l,dd30t,agr_users,agr_1016,agr_define,
user_addr.
TYPE-POOLS:slis.
*&---------------------------------------------------------------------*
*& 内表类型 *
*&---------------------------------------------------------------------*
"程序&事物代码
TYPES : BEGIN OF t_prog,
zrow TYPE i, "行号
name LIKE trdir-name , "程序名
text LIKE trdirt-text, "程序描述
tcode LIKE tstc-tcode , "事物代码
ttext LIKE tstct-ttext, "事物代码描述
clas LIKE trdir-clas , "程序类别
subc LIKE trdir-subc , "程序类型
zsub TYPE string, "程序类型描述
secu LIKE trdir-secu , "权限组
cnam LIKE trdir-cnam , "作者
cdat LIKE trdir-cdat , "创建日期
unam LIKE trdir-unam , "最后修改人
udat LIKE trdir-udat , "更改日期
vern LIKE trdir-vern , "版本
rmand LIKE trdir-rmand, "集团
devclass LIKE tadir-devclass, "包
zword TYPE c, "存在开发文档
wordf TYPE string, "开发文档目录
zexcl TYPE c, "存在技术文档
excel TYPE string, "技术文档目录
END OF t_prog.
"程序&事物代码
TYPES : BEGIN OF t_prog_tcode,
pname LIKE tfdir-pname , "程序名
tcode LIKE tstc-tcode , "事物代码
ttext LIKE tstct-ttext, "事物代码描述
END OF t_prog_tcode.
"函数&函数组
TYPES : BEGIN OF t_func,
zrow TYPE i, "行号
area LIKE tlibv-area, "函数组
uname LIKE tlibv-uname, "函数组负责人
funcname LIKE tfdir-funcname, "函数名称
stext LIKE tftit-stext , "函数描述
fmode LIKE tfdir-fmode , "函数模块类型
pname LIKE tfdir-pname , "程序名
include LIKE tfdir-include , "INCLUDE号
freedate LIKE tfdir-freedate, "释放日期
mand LIKE tfdir-mand , "集团
devclass LIKE tadir-devclass, "包
zword TYPE c, "存在开发文档
wordf TYPE string, "开发文档目录
zexcl TYPE c, "存在技术文档
excel TYPE string, "技术文档目录
appl TYPE tfdir-appl, "功能程序片(指令组,组件)被分配给应用
END OF t_func.
"号码范围
TYPES : BEGIN OF t_snro,
zrown TYPE i, "行号
obj_name LIKE tadir-obj_name, "号码范围
srcsystem LIKE tadir-srcsystem, "对象的原始系统
author LIKE tadir-author , "作者
devclass LIKE tadir-devclass , "包
created_on LIKE tadir-created_on, "创建日期
nrrangenr LIKE nriv-nrrangenr, "序号区间编号
subobject LIKE nriv-subobject, "子对象
toyear LIKE nriv-toyear , "到会计年度
fromnumber LIKE nriv-fromnumber, "起始号
tonumber LIKE nriv-tonumber , "终止号
nrlevel LIKE nriv-nrlevel , "编号范围状态
externind LIKE nriv-externind , "编号范围的标志
txt LIKE tnrot-txt,
txtshort LIKE tnrot-txtshort,
END OF t_snro.
"增强
TYPES : BEGIN OF t_enhc,
zrown TYPE i,
object LIKE tadir-object , "对象类型
obj_name LIKE tadir-obj_name , "对象名
author LIKE tadir-author , "作者
devclass LIKE tadir-devclass , "包
created_on LIKE tadir-created_on , "创建日期
changedby LIKE enhcompheader-changedby, "最后修改人
changedon LIKE enhcompheader-changedon, "更改日期
childenh LIKE enhcompchildenh-childenh, "子实现
programname(200) TYPE c, "程序
member LIKE modact-member, "组件
modtext LIKE modtext-modtext, "描述
"SXCI
imp_class LIKE sxc_class-imp_class, "对象类型名称
text LIKE sxc_attrt-text, "客户增强: 文本
exit_name LIKE sxc_exit-exit_name, "实施名称
END OF t_enhc.
"SMARTFORMS
TYPES : BEGIN OF t_smart,
zrown TYPE i,
formname LIKE stxfadm-formname,
masterlang LIKE stxfadm-masterlang,
devclass LIKE stxfadm-devclass,
version LIKE stxfadm-version,
firstuser LIKE stxfadm-firstuser,
firstdate LIKE stxfadm-firstdate,
firsttime LIKE stxfadm-firsttime,
lastuser LIKE stxfadm-lastuser,
lastdate LIKE stxfadm-lastdate,
lasttime LIKE stxfadm-lasttime,
caption LIKE stxfadmt-caption,
END OF t_smart.
"开发请求
TYPES : BEGIN OF t_reque,
zrown TYPE i,
trkorr LIKE e070-trkorr,
trfunction LIKE e070-trfunction,
trstatus LIKE e070-trstatus,
tarsystem LIKE e070-tarsystem,
korrdev LIKE e070-korrdev,
as4user LIKE e070-as4user,
as4date LIKE e070-as4date,
as4time LIKE e070-as4time,
as4text LIKE e07t-as4text,
object LIKE e071-object,
obj_name LIKE e071-obj_name,
END OF t_reque.
"开发类对象
TYPES : BEGIN OF ty_class,
zrown TYPE i,
clsname LIKE vseoclass-clsname , "对象类型名称
version LIKE vseoclass-version , " 版本指示器(活动/不活动)
langu LIKE vseoclass-langu , " 语言代码
descript LIKE vseoclass-descript , " 简短描述
category LIKE vseoclass-category , " 类/接口类别
exposure LIKE vseoclass-exposure , " 类别或组件的可见性
state LIKE vseoclass-state , " 类别或组件的状态
release LIKE vseoclass-release , " 类别的版本状态
author LIKE vseoclass-author , " 作者
createdon LIKE vseoclass-createdon, " 创建日期
changedby LIKE vseoclass-changedby, " 最后修改人
changedon LIKE vseoclass-changedon, " 更改日期
chgdanyby LIKE vseoclass-chgdanyby, " 最后修改人
chgdanyon LIKE vseoclass-chgdanyon, " 更改日期
devclass LIKE tadir-devclass.
TYPES : END OF ty_class.
"替代
TYPES : BEGIN OF ty_replace,
zrown TYPE i,
substid LIKE gb92-substid,
gbopcreate LIKE gb92-gbopcreate,
gbdtcreate LIKE gb92-gbdtcreate,
gbtmcreate LIKE gb92-gbtmcreate,
gbopchange LIKE gb92-gbopchange,
gbdtchange LIKE gb92-gbdtchange,
gbtmchange LIKE gb92-gbtmchange,
subtx1 LIKE gb92t-substext,
subseqnr LIKE gb921t-subseqnr,
subtx2 LIKE gb921t-substext,
END OF ty_replace.
"表格,结构
TYPES : BEGIN OF ty_struct,
zrown TYPE i,
tabname LIKE dd02l-tabname,
clidep LIKE dd02l-clidep,
as4user LIKE dd02l-as4user,
as4date LIKE dd02l-as4date,
as4time LIKE dd02l-as4time,
mainflag LIKE dd02l-mainflag,
contflag LIKE dd02l-contflag,
proxytype LIKE dd02l-proxytype,
ddtext LIKE dd02t-ddtext,
devclass LIKE tadir-devclass,
END OF ty_struct.
"用户&角色
TYPES: BEGIN OF ty_usr_role,
zrow TYPE i,
agr_name LIKE agr_users-agr_name,
uname LIKE agr_users-uname,
name_last LIKE user_addr-name_last,
department LIKE user_addr-department,
aname LIKE usr02-aname,
erdat LIKE usr02-erdat,
moddate LIKE usrstamp-moddate,
modtime LIKE usrstamp-modtime,
modifier LIKE usrstamp-modifier,
from_dat LIKE agr_users-from_dat,
to_dat LIKE agr_users-to_dat,
* change_dat LIKE agr_users-change_dat,
* change_tim LIKE agr_users-change_tim,
profile LIKE agr_1016-profile,
pstate LIKE agr_1016-pstate,
create_usr LIKE agr_define-create_usr , "用户名
create_dat LIKE agr_define-create_dat , "菜单生成的日期
create_tim LIKE agr_define-create_tim , "上次生成菜单时间
change_usr LIKE agr_define-change_usr , "用户名
change_dat LIKE agr_define-change_dat , "菜单生成的日期
change_tim LIKE agr_define-change_tim , "上次生成菜单时间
light TYPE char4,
zword TYPE string,
zexel TYPE string,
END OF ty_usr_role.
"搜索帮助
TYPES: BEGIN OF ty_shelp.
INCLUDE STRUCTURE dd30l.
TYPES: ddtext LIKE dd30t-ddtext.
TYPES: zrown LIKE sy-tabix.
TYPES: devclass LIKE tadir-devclass.
TYPES: END OF ty_shelp.
*&---------------------------------------------------------------------*
*& 定义内表和工作区 *
*&---------------------------------------------------------------------*
DATA : it_prog TYPE TABLE OF t_prog,
wa_prog LIKE LINE OF it_prog,
it_func TYPE TABLE OF t_func,
wa_func LIKE LINE OF it_func,
it_snro TYPE TABLE OF t_snro,
wa_snro LIKE LINE OF it_snro,
it_enhc TYPE TABLE OF t_enhc,
wa_enhc LIKE LINE OF it_enhc,
it_smart TYPE TABLE OF t_smart,
wa_smart LIKE LINE OF it_smart,
it_reque TYPE TABLE OF t_reque,
wa_reque LIKE LINE OF it_reque,
it_struct TYPE TABLE OF ty_struct,
wa_struct LIKE LINE OF it_struct.
DATA : it_ddv1 TYPE TABLE OF dd07v,
wa_ddv1 LIKE LINE OF it_ddv1,
it_ddv2 TYPE TABLE OF dd07v.
DATA : gt_class TYPE TABLE OF ty_class,
gs_class LIKE LINE OF gt_class.
DATA : gt_replace TYPE TABLE OF ty_replace,
gs_replace LIKE LINE OF gt_replace.
DATA : gt_usr_role TYPE TABLE OF ty_usr_role.
DATA : gs_usr_role TYPE ty_usr_role.
DATA : gt_shelp TYPE TABLE OF ty_shelp.
DATA : gs_shelp TYPE ty_shelp.
DATA : domname LIKE dd01l-domname.
DATA : lv_index LIKE sy-tabix.
DATA : gv_refresh TYPE c.
CONSTANTS: gc_green_light TYPE char4 VALUE '@08@'.
CONSTANTS: gc_red_light TYPE char4 VALUE '@0A@'.
*&---------------------------------------------------------------------*
*& BDC变量定义 *
*&---------------------------------------------------------------------*
DATA: BEGIN OF gt_bdcdata OCCURS 100.
INCLUDE STRUCTURE bdcdata.
DATA: END OF gt_bdcdata.
"BDC所需
DATA: gv_group(12) TYPE c VALUE 'INTERNAL_ORD', "BDC Name
gv_user(12) TYPE c, "BDC User
gv_keep(1) TYPE c VALUE 'X', "''=Delete,'X'=keep after processing
gv_holddate LIKE sy-datum. "Date
*&---------------------------------------------------------------------*
*& ALV展示变量 *
*&---------------------------------------------------------------------*
DATA: it_fieldcat TYPE lvc_t_fcat,
wa_fieldcat TYPE lvc_s_fcat.
DATA: wa_layout TYPE lvc_s_layo.
DATA: gr_ref_alv TYPE REF TO cl_gui_alv_grid.
*&---------------------------------------------------------------------*
*& 选择屏幕 *
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE t1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_1 RADIOBUTTON GROUP p1 DEFAULT 'X' USER-COMMAND cre.
SELECTION-SCREEN COMMENT 3(16) TEXT-002 FOR FIELD p_1. "programs
PARAMETERS: p_2 RADIOBUTTON GROUP p1.
SELECTION-SCREEN COMMENT 22(30) TEXT-003 FOR FIELD p_2. "functions
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_9 RADIOBUTTON GROUP p1.
SELECTION-SCREEN COMMENT 3(16) TEXT-004 FOR FIELD p_9. "structs
PARAMETERS: p_10 RADIOBUTTON GROUP p1.
SELECTION-SCREEN COMMENT 22(30) TEXT-005 FOR FIELD p_10. "searchhelp
SELECTION-SCREEN END OF LINE.
PARAMETERS : p_3 RADIOBUTTON GROUP p1,
p_5 RADIOBUTTON GROUP p1,
p_11 RADIOBUTTON GROUP p1,
p_6 RADIOBUTTON GROUP p1,
p_7 RADIOBUTTON GROUP p1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_4 RADIOBUTTON GROUP p1.
SELECTION-SCREEN COMMENT 3(16) TEXT-006 FOR FIELD p_4. "enhance
PARAMETERS: p_8 RADIOBUTTON GROUP p1.
SELECTION-SCREEN COMMENT 22(30) TEXT-007 FOR FIELD p_8. "replaces
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK block1.
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE t2.
"program
SELECT-OPTIONS:
s_devcl FOR tadir-devclass DEFAULT 'ZDEV' MODIF ID m0,
s_name FOR trdir-name MODIF ID m1,
s_text FOR trdirt-text MODIF ID m1,
s_tcode FOR tstc-tcode MODIF ID m1,
s_ttext FOR tstct-ttext MODIF ID m1,
s_cnam FOR trdir-cnam MODIF ID m1,
s_cdat FOR trdir-cdat MODIF ID m1,
s_unam FOR trdir-unam MODIF ID m1,
s_udat FOR trdir-udat MODIF ID m1,
s_subc FOR trdir-subc MODIF ID m1
.
"function
SELECT-OPTIONS:
s_fname FOR tfdir-funcname MODIF ID m2,
s_stext FOR tftit-stext MODIF ID m2,
s_area FOR tlibv-area MODIF ID m2,
s_uname FOR tlibv-uname MODIF ID m2,
s_fmode FOR tfdir-fmode MODIF ID m2
.
PARAMETERS : p_notab AS CHECKBOX DEFAULT 'X' MODIF ID m2.
PARAMETERS : p_noview AS CHECKBOX DEFAULT 'X' MODIF ID m2.
"SNUMBER
SELECT-OPTIONS:
s_object FOR nriv-object MODIF ID m3,
s_txt FOR tnrot-txt MODIF ID m3,
s_author FOR tadir-author MODIF ID m3,
s_creatd FOR tadir-created_on MODIF ID m3, "创建日期
s_toyear FOR nriv-toyear MODIF ID m3
.
"ENTHANCE
SELECT-OPTIONS:
s_objt FOR tadir-object MODIF ID m4,
s_objn FOR tadir-obj_name MODIF ID m4,
s_exit FOR sxc_exit-exit_name MODIF ID m4,
s_auth FOR tadir-author MODIF ID m4.
"SMARTFORMS
SELECT-OPTIONS :
s_fmname FOR stxfadm-formname MODIF ID m5,
s_fiuser FOR stxfadm-firstuser MODIF ID m5,
s_lauser FOR stxfadm-lastuser MODIF ID m5,
s_captin FOR stxfadmt-caption MODIF ID m5
.
"请求
SELECT-OPTIONS :
s_trkorr FOR e070-trkorr MODIF ID m6,
s_trfunc FOR e070-trfunction MODIF ID m6,
s_trstat FOR e070-trstatus MODIF ID m6,
s_as4use FOR e070-as4user MODIF ID m6,
s_as4tex FOR e07t-as4text MODIF ID m6,
s_obj_na FOR e071-obj_name MODIF ID m6,
s_objtyp FOR e071-object MODIF ID m6
.
"类
SELECT-OPTIONS :
s_clsn FOR vseoclass-clsname MODIF ID m7 ,
s_desc FOR vseoclass-descript MODIF ID m7,
s_auto FOR vseoclass-author MODIF ID m7,
s_crea FOR vseoclass-createdon MODIF ID m7,
s_chay FOR vseoclass-changedby MODIF ID m7,
s_chan FOR vseoclass-changedon MODIF ID m7,
s_chgd FOR vseoclass-chgdanyby MODIF ID m7,
s_chgo FOR vseoclass-chgdanyon MODIF ID m7.
"替代
SELECT-OPTIONS :
s_subid FOR gb92-substid MODIF ID m8,
s_subtx FOR gb92t-substext MODIF ID m8,
s_gbop1 FOR gb92-gbopcreate MODIF ID m8,
s_gbdt1 FOR gb92-gbdtcreate MODIF ID m8,
s_gbtm1 FOR gb92-gbtmcreate MODIF ID m8,
s_gbop2 FOR gb92-gbopchange MODIF ID m8,
s_gbdt2 FOR gb92-gbdtchange MODIF ID m8,
s_gbtm2 FOR gb92-gbtmchange MODIF ID m8,
s_subnr FOR gb921t-subseqnr MODIF ID m8,
s_subst FOR gb921t-substext MODIF ID m8.
"表,结构
SELECT-OPTIONS :
s_tabnm FOR dd02l-tabname MODIF ID m9,
s_clidep FOR dd02l-clidep MODIF ID m9 ,
s_asuser FOR dd02l-as4user MODIF ID m9 ,
s_asdate FOR dd02l-as4date MODIF ID m9 ,
s_astime FOR dd02l-as4time MODIF ID m9 ,
s_mainfg FOR dd02l-mainflag MODIF ID m9,
s_contfg FOR dd02l-contflag MODIF ID m9,
s_ddtext FOR dd02t-ddtext MODIF ID m9,
s_proxy FOR dd02l-proxytype MODIF ID m9 DEFAULT ''.
PARAMETERS : p_istab AS CHECKBOX MODIF ID m9,
p_isstr AS CHECKBOX MODIF ID m9.
"搜索帮助
SELECT-OPTIONS: s_shlp FOR dd30l-shlpname MODIF ID m10. "搜索帮助的名称
SELECT-OPTIONS: s_shtx FOR dd30t-ddtext MODIF ID m10. "描述
SELECT-OPTIONS: s_as4u FOR dd30l-as4user MODIF ID m10. "上次更改者
SELECT-OPTIONS: s_as4d FOR dd30l-as4date MODIF ID m10. "最后更改的日期
SELECT-OPTIONS: s_as4t FOR dd30l-as4time MODIF ID m10. "上次更改时间
SELECT-OPTIONS: s_selm FOR dd30l-selmethod MODIF ID m10. "基本搜索帮助的选择方法
SELECT-OPTIONS: s_selt FOR dd30l-selmtype MODIF ID m10 . "选择方法的类型
SELECT-OPTIONS: s_as4l FOR dd30l-as4local MODIF ID m10. "激活状态 ?
SELECT-OPTIONS: s_dial FOR dd30l-dialogtype MODIF ID m10. "对话类型
"用户&角色
SELECT-OPTIONS: s_agr_n FOR agr_users-agr_name MODIF ID m11.
SELECT-OPTIONS: s_unam_ FOR agr_users-uname MODIF ID m11.
SELECT-OPTIONS: s_namel FOR user_addr-name_textc MODIF ID m11.
SELECT-OPTIONS: s_cread FOR agr_define-create_dat MODIF ID m11.
SELECT-OPTIONS: s_creat FOR agr_define-create_tim MODIF ID m11.
SELECT-OPTIONS: s_creaa FOR agr_define-create_usr MODIF ID m11.
SELECT-OPTIONS: s_chand FOR agr_define-change_dat MODIF ID m11.
SELECT-OPTIONS: s_chant FOR agr_define-change_tim MODIF ID m11.
SELECT-OPTIONS: s_chana FOR agr_define-change_usr MODIF ID m11.
SELECT-OPTIONS: s_profi FOR agr_1016-profile MODIF ID m11.
PARAMETERS: p_error AS CHECKBOX DEFAULT 'X' MODIF ID m11.
PARAMETERS: p_role AS CHECKBOX MODIF ID m11.
PARAMETERS: p_user AS CHECKBOX MODIF ID m11.
SELECTION-SCREEN END OF BLOCK block2.
*&---------------------------------------------------------------------*
*& 初始化选择屏幕 *
*&---------------------------------------------------------------------*
INITIALIZATION.
t1 = '操作选项'.
t2 = '选择条件'.
s_subc-low = 'I'.
s_subc-sign = 'I'.
s_subc-option = 'NE'.
APPEND s_subc.
CLEAR : s_subc.
* "类名
* s_clsn-low = 'Z*'.
* s_clsn-sign = 'I'.
* s_clsn-option = 'CP'.
* APPEND s_clsn.
* CLEAR : s_clsn.
*&---------------------------------------------------------------------*
*& 动态屏幕事件 *
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF p_1 = 'X' AND ( screen-group1 = 'M2' OR screen-group1 = 'M5'
OR screen-group1 = 'M6' OR screen-group1 = 'M3' OR screen-group1 = 'M4'
OR screen-group1 = 'M7' OR screen-group1 = 'M8' OR screen-group1 = 'M9'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_2 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M5'
OR screen-group1 = 'M6' OR screen-group1 = 'M3' OR screen-group1 = 'M4'
OR screen-group1 = 'M7' OR screen-group1 = 'M9' OR screen-group1 = 'M8'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_3 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M5'
OR screen-group1 = 'M6' OR screen-group1 = 'M2' OR screen-group1 = 'M4'
OR screen-group1 = 'M7' OR screen-group1 = 'M8' OR screen-group1 = 'M9'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_4 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M5'
OR screen-group1 = 'M6' OR screen-group1 = 'M2' OR screen-group1 = 'M3'
OR screen-group1 = 'M7' OR screen-group1 = 'M8' OR screen-group1 = 'M9'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_5 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M4'
OR screen-group1 = 'M6' OR screen-group1 = 'M2' OR screen-group1 = 'M3'
OR screen-group1 = 'M7' OR screen-group1 = 'M8' OR screen-group1 = 'M9'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_6 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M4'
OR screen-group1 = 'M5' OR screen-group1 = 'M2' OR screen-group1 = 'M3'
OR screen-group1 = 'M7' OR screen-group1 = 'M8' OR screen-group1 = 'M9'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_7 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M4'
OR screen-group1 = 'M5' OR screen-group1 = 'M2' OR screen-group1 = 'M3'
OR screen-group1 = 'M6' OR screen-group1 = 'M8' OR screen-group1 = 'M9'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_8 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M4'
OR screen-group1 = 'M5' OR screen-group1 = 'M2' OR screen-group1 = 'M3'
OR screen-group1 = 'M6' OR screen-group1 = 'M7' OR screen-group1 = 'M9'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_9 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M4'
OR screen-group1 = 'M5' OR screen-group1 = 'M2' OR screen-group1 = 'M3'
OR screen-group1 = 'M6' OR screen-group1 = 'M7' OR screen-group1 = 'M8'
OR screen-group1 = 'M10' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_10 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M4'
OR screen-group1 = 'M5' OR screen-group1 = 'M2' OR screen-group1 = 'M3'
OR screen-group1 = 'M6' OR screen-group1 = 'M7' OR screen-group1 = 'M8'
OR screen-group1 = 'M9' OR screen-group1 = 'M11').
screen-active = 0.
MODIFY SCREEN.
ELSEIF p_11 = 'X' AND ( screen-group1 = 'M1' OR screen-group1 = 'M4'
OR screen-group1 = 'M5' OR screen-group1 = 'M2' OR screen-group1 = 'M3'
OR screen-group1 = 'M6' OR screen-group1 = 'M7' OR screen-group1 = 'M8'
OR screen-group1 = 'M9' OR screen-group1 = 'M10' OR screen-group1 = 'M0' ).
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
*&---------------------------------------------------------------------*
*& 开始选择屏幕 *
*&---------------------------------------------------------------------*
START-OF-SELECTION.
IF p_1 = 'X'. "查找程序/事务代码
PERFORM frm_get_programs.
ELSEIF p_2 = 'X'. "查找函数/函数组
PERFORM frm_get_function.
ELSEIF p_3 = 'X'. "查找号码范围
PERFORM frm_get_snumber.
ELSEIF p_4 = 'X'. "查找增强
PERFORM frm_get_enthance.
ELSEIF p_5 = 'X'. "查找SMARTFORMS
PERFORM frm_get_smartforms.
ELSEIF p_6 = 'X'. "查找请求
PERFORM frm_get_requests.
ELSEIF p_7 = 'X'. "查找类
PERFORM frm_get_classes.
ELSEIF p_8 = 'X'. "查找替代
PERFORM frm_get_replaces.
ELSEIF p_9 = 'X'. "表或者结构
PERFORM frm_get_structure.
ELSEIF p_10 = 'X'. "搜索帮助
PERFORM frm_get_shelp.
ELSEIF p_11 = 'X'. "用户&角色
PERFORM frm_get_role_user.
ENDIF.
*&---------------------------------------------------------------------*
*& FORM FRM_GET_PROGRAMS
*&---------------------------------------------------------------------*
* TEXT 得到程序名和事务代码
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_get_programs .
DATA : e_row TYPE i VALUE 1.
DATA : e_flag TYPE c.
DATA : lt_tcode TYPE TABLE OF t_prog_tcode.
DATA : ls_tcode TYPE t_prog_tcode.
DATA : lt_prog TYPE TABLE OF t_prog.
DATA : lv_index TYPE sy-tabix.
DATA : lv_exist TYPE c.
IF s_tcode[] IS NOT INITIAL OR s_ttext[] IS NOT INITIAL.
"得到程序及事务代码
SELECT a~name
b~text
a~clas
a~subc
a~secu
a~cnam
a~cdat
a~unam
a~udat
a~vern
a~rmand
c~devclass "包
d~tcode
e~ttext
INTO CORRESPONDING FIELDS OF TABLE it_prog
FROM trdir AS a
JOIN trdirt AS b ON b~name = a~name
JOIN tadir AS c ON c~obj_name = a~name
JOIN tstc AS d ON d~pgmna = a~name
JOIN tstct AS e ON e~tcode = d~tcode
WHERE a~name IN s_name AND a~cnam IN s_cnam
AND a~cdat IN s_cdat AND a~unam IN s_unam
AND a~udat IN s_udat AND a~subc IN s_subc
AND b~text IN s_text AND b~sprsl = sy-langu
AND c~object = 'PROG' AND c~devclass IN s_devcl
AND d~tcode IN s_tcode AND e~ttext IN s_ttext
AND e~sprsl = sy-langu
.
ELSE.
CLEAR: lt_prog.
"得到程序及事务代码
SELECT
a~name
b~text
a~clas
a~subc
a~secu
a~cnam
a~cdat
a~unam
a~udat
a~vern
a~rmand
c~devclass "包
INTO CORRESPONDING FIELDS OF TABLE it_prog
FROM trdir AS a
JOIN trdirt AS b ON b~name = a~name
JOIN tadir AS c ON c~obj_name = a~name
WHERE a~name IN s_name AND a~cnam IN s_cnam
AND a~cdat IN s_cdat AND a~unam IN s_unam
AND a~udat IN s_udat AND a~subc IN s_subc
AND b~text IN s_text AND b~sprsl = sy-langu
AND c~object = 'PROG' AND c~devclass IN s_devcl
.
IF it_prog IS NOT INITIAL.
CLEAR: lt_tcode.
SELECT
a~pgmna a~tcode b~ttext
INTO TABLE lt_tcode
FROM tstc AS a
JOIN tstct AS b ON b~tcode = a~tcode
FOR ALL ENTRIES IN it_prog
WHERE pgmna = it_prog-name
AND b~sprsl = sy-langu.
ENDIF.
ENDIF.
IF it_prog IS NOT INITIAL.
SORT it_prog BY devclass name.
"得到程序类型描述
"得到状态描述
domname = 'SUBC'.
CALL FUNCTION 'DD_DOMA_GET'
EXPORTING
domain_name = domname
TABLES
dd07v_tab_a = it_ddv1
dd07v_tab_n = it_ddv2
EXCEPTIONS
illegal_value = 1
op_failure = 2
OTHERS = 3.
ENDIF.
"拼接数据
LOOP AT it_prog INTO wa_prog.
* wa_prog-zrow = e_row. "行号
lv_index = sy-tabix.
IF s_tcode[] IS INITIAL AND s_ttext[] IS INITIAL.
"拼接事务代码
* SELECT SINGLE
* a~tcode b~ttext
* INTO (wa_prog-tcode,wa_prog-ttext)
* FROM tstc AS a
* JOIN tstct AS b ON b~tcode = a~tcode
* WHERE pgmna = wa_prog-name
* AND b~sprsl = sy-langu.
ENDIF.
"得到程序类型描述
READ TABLE it_ddv1 INTO wa_ddv1 WITH KEY
domvalue_l = wa_prog-subc.
IF sy-subrc = 0.
wa_prog-zsub = wa_ddv1-ddtext.
CLEAR : wa_ddv1.
ENDIF.
* "得到开发文档和技术文档
* IF wa_prog-name+0(1) = 'Z'.
* SELECT SINGLE
* a~zword
* a~zexcl
* INTO (wa_prog-wordf,wa_prog-excel)
* FROM zobject_fiel AS a
* WHERE a~zname = wa_prog-name AND a~zdecl = wa_prog-devclass.
*
* IF wa_prog-wordf IS NOT INITIAL.
* wa_prog-zword = 'X'.
* ENDIF.
*
* IF wa_prog-excel IS NOT INITIAL.
* wa_prog-zexcl = 'X'.
* ENDIF.
* ENDIF.
CLEAR: lv_exist.
LOOP AT lt_tcode INTO ls_tcode WHERE pname = wa_prog-name.
wa_prog-zrow = e_row. "行号
wa_prog-tcode = ls_tcode-tcode.
wa_prog-ttext = ls_tcode-ttext.
APPEND wa_prog TO lt_prog.
CLEAR: ls_tcode.
e_row = e_row + 1.
lv_exist = 'X'.
ENDLOOP.
* MODIFY it_prog FROM wa_prog.
IF lv_exist = 'X'.
DELETE it_prog INDEX lv_index.
ELSE.
wa_prog-zrow = e_row. "行号
APPEND wa_prog TO lt_prog.
e_row = e_row + 1.
ENDIF.
CLEAR : wa_prog.
ENDLOOP.
CLEAR: it_prog.
it_prog = lt_prog.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"展示结果
IF it_prog IS NOT INITIAL.
PERFORM frm_diaplay_alv.
ELSE.
MESSAGE '指定关键字的数字没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDIF.
ENDFORM. "frm_get_programs
*&---------------------------------------------------------------------*
*& Form FRM_GET_FUNCTION
*&---------------------------------------------------------------------*
* text 得到函数/函数组
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_function .
DATA : e_row TYPE i VALUE 1.
DATA : e_where TYPE string.
"函数&函数组
SELECT
a~funcname
b~pname
b~include
b~freedate
b~appl
b~mand
b~fmode
c~area
c~uname
d~devclass
e~stext
INTO CORRESPONDING FIELDS OF TABLE it_func
FROM v_fdir AS a
JOIN tfdir AS b ON b~funcname = a~funcname
JOIN tlibv AS c ON c~area = a~area
JOIN tadir AS d ON d~obj_name = a~area
JOIN tftit AS e ON e~funcname = a~funcname
WHERE b~funcname IN s_fname AND b~fmode IN s_fmode
AND c~area IN s_area AND c~uname IN s_uname
AND d~devclass IN s_devcl
AND e~stext IN s_stext AND e~spras = sy-langu
.
SORT it_func BY devclass funcname.
"不包含表格维护函数
IF p_notab = 'X'.
DELETE it_func WHERE funcname+0(10) = 'TABLEFRAME'
OR funcname+0(9) = 'TABLEPROC'.
ENDIF.
"不含视图维护函数
IF p_noview = 'X'.
DELETE it_func WHERE funcname+0(9) = 'VIEWFRAME'
OR funcname+0(8) = 'VIEWPROC'.
ENDIF.
"拼接函数描述
LOOP AT it_func INTO wa_func.
wa_func-zrow = e_row. "行号
"得到开发文档和技术文档
* IF wa_func-funcname+0(1) = 'Z'.
* SELECT SINGLE
* a~zword
* a~zexcl
* INTO (wa_func-wordf,wa_func-excel)
* FROM zobject_fiel AS a
* WHERE a~zname = wa_func-funcname AND a~zdecl = wa_func-devclass.
*
* IF wa_func-wordf IS NOT INITIAL.
* wa_func-zword = 'X'.
* ENDIF.
*
* IF wa_func-excel IS NOT INITIAL.
* wa_func-zexcl = 'X'.
* ENDIF.
* ENDIF.
MODIFY it_func FROM wa_func.
e_row = e_row + 1.
CLEAR : wa_func.
ENDLOOP.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"展示结果
IF it_func IS NOT INITIAL.
PERFORM frm_diaplay_alv.
ELSE.
MESSAGE '指定关键字的数字没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDIF.
ENDFORM. "frm_get_function
*&---------------------------------------------------------------------*
*& Form FRM_GET_SNUMBER
*&---------------------------------------------------------------------*
* text 得到号码范围
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_snumber .
DATA : e_rown TYPE i VALUE 1.
SELECT
a~obj_name "号码范围
a~srcsystem "对象的原始系统s
a~author "作者
a~devclass "包
a~created_on "创建日期
b~nrrangenr "序号区间编号
b~toyear "到会计年度
b~fromnumber "起始号
b~tonumber "终止号
b~nrlevel "编号范围状态
b~externind "编号范围的标志
b~subobject
c~txt
c~txtshort
INTO CORRESPONDING FIELDS OF TABLE it_snro
FROM tadir AS a
LEFT JOIN nriv AS b ON b~object = a~obj_name
JOIN tnrot AS c ON c~object = a~obj_name
WHERE a~object = 'NROB' AND a~devclass IN s_devcl
AND a~obj_name IN s_object
AND a~author IN s_author AND a~created_on IN s_creatd
AND c~txt IN s_txt AND c~langu = sy-langu
.
"删除不符合条件的数据
DELETE it_snro WHERE toyear NOT IN s_toyear.
SORT it_snro BY devclass obj_name.
"拼接数据
LOOP AT it_snro INTO wa_snro.
wa_snro-zrown = e_rown.
MODIFY it_snro FROM wa_snro.
e_rown = e_rown + 1.
CLEAR : wa_snro.
ENDLOOP.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
IF it_snro IS NOT INITIAL.
PERFORM frm_diaplay_alv.
ELSE.
MESSAGE '指定关键字的数字没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDIF.
ENDFORM . "frm_get_snumber
*&---------------------------------------------------------------------*
*& Form FRM_GET_ENTHANCE
*&---------------------------------------------------------------------*
* text 获得增强
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_enthance .
DATA : e_zrown TYPE i VALUE 1.
SELECT
object
obj_name
author
devclass
created_on
INTO CORRESPONDING FIELDS OF TABLE it_enhc
FROM tadir
WHERE object IN s_objt AND obj_name IN s_objn
AND author IN s_auth AND devclass IN s_devcl
AND object IN ('CMOD','ENHC','ENHO','SXCI')
.
DELETE it_enhc WHERE object NOT IN s_objt.
SORT it_enhc BY object obj_name.
IF it_enhc IS NOT INITIAL.
"类型为CMOD
LOOP AT it_enhc INTO wa_enhc WHERE object = 'CMOD'.
SELECT SINGLE
a~member
b~modtext
INTO (wa_enhc-member,wa_enhc-modtext)
FROM modact AS a
JOIN modtext AS b ON b~name = a~name
WHERE a~name = wa_enhc-obj_name AND a~member <> ''
AND b~modtext <> ''.
wa_enhc-zrown = e_zrown .
MODIFY it_enhc FROM wa_enhc.
e_zrown = e_zrown + 1.
CLEAR : wa_enhc.
ENDLOOP.
"类型为ENHO,ENHC
LOOP AT it_enhc INTO wa_enhc WHERE object = 'ENHC'
OR object = 'ENHO'.
SELECT SINGLE
a~changedby
a~changedon
b~childenh
c~programname
INTO (wa_enhc-changedby,wa_enhc-changedon,
wa_enhc-childenh,wa_enhc-programname)
FROM enhcompheader AS a
JOIN enhcompchildenh AS b ON b~enhcomposite = a~enhcomposite
JOIN enhincinx AS c ON c~enhname = a~enhcomposite
WHERE a~enhcomposite = wa_enhc-obj_name.
wa_enhc-zrown = e_zrown .
MODIFY it_enhc FROM wa_enhc.
e_zrown = e_zrown + 1.
CLEAR : wa_enhc.
ENDLOOP.
"类型为SXCI
LOOP AT it_enhc INTO wa_enhc WHERE object = 'SXCI'.
lv_index = sy-tabix.
"类型
SELECT SINGLE
imp_class
exit_name
INTO (wa_enhc-imp_class,wa_enhc-exit_name)
FROM sxc_class AS a
JOIN sxc_exit AS b ON b~imp_name = a~imp_name
WHERE a~imp_name = wa_enhc-obj_name
AND exit_name IN s_exit.
IF sy-subrc <> 0.
DELETE it_enhc INDEX lv_index.
CONTINUE.
ENDIF.
"描述
SELECT SINGLE
text
INTO wa_enhc-text
FROM sxc_attrt
WHERE imp_name = wa_enhc-obj_name
AND sprsl = sy-langu.
wa_enhc-zrown = e_zrown.
MODIFY it_enhc FROM wa_enhc.
e_zrown = e_zrown + 1.
CLEAR : wa_enhc.
ENDLOOP.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"展示内表
PERFORM frm_diaplay_alv.
ENDIF.
ELSE.
MESSAGE '指定关键字的数据没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. "frm_get_enthance
*&---------------------------------------------------------------------*
*& FORM FRM_GET_SMARTFORMS
*&---------------------------------------------------------------------*
* TEXT 得到smartforms
*----------------------------------------------------------------------*
* -->P_FLAG TEXT
*----------------------------------------------------------------------*
FORM frm_get_smartforms.
DATA : e_zrown TYPE i VALUE 1.
SELECT
a~formname
a~devclass
a~firstuser
a~firstdate
a~lastuser
a~lastdate
a~lasttime
b~caption
INTO CORRESPONDING FIELDS OF TABLE it_smart
FROM stxfadm AS a
JOIN stxfadmt AS b ON b~formname = a~formname
WHERE a~formname IN s_fmname AND devclass IN s_devcl
AND firstuser IN s_fiuser AND lastuser IN s_lauser
AND caption IN s_captin.
IF it_smart IS NOT INITIAL.
LOOP AT it_smart INTO wa_smart.
wa_smart-zrown = e_zrown.
MODIFY it_smart FROM wa_smart.
e_zrown = e_zrown + 1.
CLEAR : wa_smart.
ENDLOOP .
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"展示内表
PERFORM frm_diaplay_alv.
ENDIF.
ELSE.
MESSAGE '指定关键值的数据没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. "frm_get_smartforms
*&---------------------------------------------------------------------*
*& Form FRM_GET_REQUESTS
*&---------------------------------------------------------------------*
* text 查找请求
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_requests .
DATA : e_zrown TYPE i VALUE 1.
DATA : lv_like TYPE string.
"拼接
CONCATENATE sy-sysid 'K%' INTO lv_like.
IF s_obj_na IS NOT INITIAL OR s_objtyp IS NOT INITIAL.
SELECT
a~trkorr
a~trfunction
a~trstatus
a~tarsystem
a~korrdev
a~as4user
a~as4date
a~as4time
b~as4text
c~obj_name
c~object
INTO CORRESPONDING FIELDS OF TABLE it_reque
FROM e070 AS a
JOIN e07t AS b ON b~trkorr = a~trkorr
JOIN e071 AS c ON c~trkorr = a~trkorr
WHERE a~trkorr IN s_trkorr AND a~trfunction IN s_trfunc
AND a~trstatus IN s_trstat AND a~as4user IN s_as4use
AND a~strkorr = '' AND a~trkorr LIKE lv_like "没有高级请求
AND b~as4text IN s_as4tex AND b~langu = sy-langu
AND ( c~obj_name LIKE 'Z%' OR c~obj_name LIKE 'Y%' )
AND c~object NOT IN ('REPS' ,'TOBJ','MESS','SOTT')
AND c~obj_name IN s_obj_na AND c~object IN s_objtyp
.
ELSE.
SELECT
a~trkorr
a~trfunction
a~trstatus
a~tarsystem
a~korrdev
a~as4user
a~as4date
a~as4time
b~as4text
c~obj_name
c~object
INTO CORRESPONDING FIELDS OF TABLE it_reque
FROM e070 AS a
JOIN e07t AS b ON b~trkorr = a~trkorr
LEFT JOIN e071 AS c ON c~trkorr = a~trkorr
WHERE a~trkorr IN s_trkorr AND a~trfunction IN s_trfunc
AND a~trstatus IN s_trstat AND a~as4user IN s_as4use
AND a~strkorr = '' AND a~trkorr LIKE lv_like "没有高级请求
AND b~as4text IN s_as4tex AND b~langu = sy-langu
.
"删除不符合数据
DELETE it_reque WHERE ( obj_name+0(1) <> 'Z' AND obj_name+0(1) <> 'Y' AND
obj_name <> '')
OR object = 'REPS' OR object = 'TOBJ' OR object = 'MESS'
OR object = 'SOTT'.
ENDIF.
IF it_reque IS NOT INITIAL.
SORT it_reque BY trkorr DESCENDING object obj_name.
LOOP AT it_reque INTO wa_reque.
wa_reque-zrown = e_zrown.
MODIFY it_reque FROM wa_reque.
e_zrown = e_zrown + 1.
CLEAR : wa_reque.
ENDLOOP.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"调用ALV展示
PERFORM frm_diaplay_alv.
ENDIF.
ELSE.
MESSAGE '指定关键字的数据没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. "frm_get_requests
*&---------------------------------------------------------------------*
*& Form FRM_GET_CLASSES
*&---------------------------------------------------------------------*
* text 查找请求
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_classes .
DATA : e_zrown TYPE i VALUE 1.
SELECT
a~devclass b~clsname b~version
b~langu b~descript b~category
b~exposure b~state b~release
b~author b~createdon b~changedby
b~changedon b~chgdanyby b~chgdanyon
INTO CORRESPONDING FIELDS OF TABLE gt_class
FROM tadir AS a
JOIN vseoclass AS b ON b~clsname = a~obj_name
WHERE a~object = 'CLAS' AND devclass IN s_devcl
AND clsname IN s_clsn
AND descript IN s_desc
AND b~author IN s_auto
AND createdon IN s_crea
AND changedby IN s_chay
AND changedon IN s_chan
AND chgdanyby IN s_chgd
AND chgdanyon IN s_chgo
.
IF gt_class IS NOT INITIAL.
SORT gt_class BY clsname author createdon.
LOOP AT gt_class INTO gs_class.
gs_class-zrown = e_zrown.
MODIFY gt_class FROM gs_class.
e_zrown = e_zrown + 1.
CLEAR : gs_class.
ENDLOOP.
"调用ALV展示
PERFORM frm_diaplay_alv.
ELSE.
MESSAGE '指定关键字的数据没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. "frm_get_classes
*&---------------------------------------------------------------------*
*& Form FRM_GET_REPLACES
*&---------------------------------------------------------------------*
* text 查找请求
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_replaces .
DATA : e_zrown TYPE i VALUE 1.
SELECT
a~substid a~gbopcreate a~gbdtcreate
a~gbtmcreate a~gbopchange a~gbdtchange
a~gbtmchange
b~substext AS subtx1
c~subseqnr
c~substext AS subtx2
INTO CORRESPONDING FIELDS OF TABLE gt_replace
FROM gb92 AS a
JOIN gb92t AS b ON b~subsid = a~substid
JOIN gb921t AS c ON c~subsid = a~substid
WHERE a~substid IN s_subid AND a~gbopcreate <> 'SAP'
AND b~substext IN s_subtx
AND a~gbopcreate IN s_gbop1
AND a~gbdtcreate IN s_gbdt1
AND a~gbtmcreate IN s_gbtm1
AND a~gbopchange IN s_gbop2
AND a~gbdtchange IN s_gbdt2
AND a~gbtmchange IN s_gbtm2
AND c~subseqnr IN s_subnr
AND c~substext IN s_subst.
IF gt_replace IS NOT INITIAL.
SORT gt_replace BY substid gbopcreate subseqnr.
LOOP AT gt_replace INTO gs_replace.
gs_replace-zrown = e_zrown.
MODIFY gt_replace FROM gs_replace.
e_zrown = e_zrown + 1.
CLEAR : gs_replace.
ENDLOOP.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"调用ALV展示
PERFORM frm_diaplay_alv.
ENDIF.
ELSE.
MESSAGE '指定关键字的数据没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. "frm_get_replaces
*&---------------------------------------------------------------------*
*& Form FRM_GET_STRUCTURE
*&---------------------------------------------------------------------*
* text 查找请求
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_structure .
DATA : e_zrown TYPE i VALUE 1.
CLEAR : it_struct.
SELECT
a~tabname a~clidep a~as4user
a~as4date a~as4time a~mainflag
a~contflag a~proxytype
b~ddtext c~devclass
INTO CORRESPONDING FIELDS OF TABLE it_struct
FROM dd02l AS a
JOIN dd02t AS b ON b~tabname = a~tabname
JOIN tadir AS c ON c~obj_name = a~tabname
WHERE a~tabname IN s_tabnm
AND a~clidep IN s_clidep
AND a~as4user IN s_asuser
AND a~as4date IN s_asdate
AND a~as4time IN s_astime
AND a~mainflag IN s_mainfg
AND a~contflag IN s_contfg
AND b~ddtext IN s_ddtext
AND c~devclass IN s_devcl
AND a~proxytype IN s_proxy.
"只含表格,不含结构
IF p_istab = 'X'.
DELETE it_struct WHERE contflag IS INITIAL.
ENDIF.
IF p_isstr = 'X'.
DELETE it_struct WHERE contflag IS NOT INITIAL.
ENDIF.
IF it_struct IS NOT INITIAL.
SORT it_struct BY devclass as4user as4date as4time tabname.
DELETE ADJACENT DUPLICATES FROM it_struct COMPARING devclass tabname.
LOOP AT it_struct INTO wa_struct.
wa_struct-zrown = e_zrown.
MODIFY it_struct FROM wa_struct.
e_zrown = e_zrown + 1.
CLEAR : wa_struct.
ENDLOOP.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"调用ALV展示
PERFORM frm_diaplay_alv.
ENDIF.
ELSE.
MESSAGE '指定关键字的数据没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. "frm_get_structure
*&---------------------------------------------------------------------*
*& Form FRM_GET_SHELP
*&---------------------------------------------------------------------*
* text 查找搜索帮助
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_shelp .
DATA : e_zrown TYPE i VALUE 1.
CLEAR : it_struct.
SELECT
*
INTO CORRESPONDING FIELDS OF TABLE gt_shelp
FROM dd30l AS a
JOIN dd30t AS b ON b~shlpname = a~shlpname
JOIN tadir AS c ON c~obj_name = a~shlpname
WHERE a~shlpname IN s_shlp
AND a~as4local IN s_as4l
AND a~selmethod IN s_selm
AND a~selmtype IN s_selt
AND a~dialogtype IN s_dial
AND a~as4user IN s_as4u
AND a~as4date IN s_as4d
AND a~as4time IN s_as4t
AND b~ddtext IN s_shtx
AND c~devclass IN s_devcl
.
IF gt_shelp IS NOT INITIAL.
SORT gt_shelp BY devclass shlpname as4user as4date DESCENDING.
DELETE ADJACENT DUPLICATES FROM gt_shelp COMPARING devclass shlpname.
LOOP AT gt_shelp INTO gs_shelp.
gs_shelp-zrown = e_zrown.
MODIFY gt_shelp FROM gs_shelp.
e_zrown = e_zrown + 1.
CLEAR : gs_shelp.
ENDLOOP.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"调用ALV展示
PERFORM frm_diaplay_alv.
ENDIF.
ELSE.
MESSAGE '指定关键字的数据没有找到!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. "FRM_GET_SHELP
*&---------------------------------------------------------------------*
*& FORM FRM_GET_ROLE_USER
*&---------------------------------------------------------------------*
* TEXT 查找搜索帮助
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_get_role_user .
DATA: lv_rown TYPE i.
DATA: lv_index TYPE sy-tabix.
DATA: lt_ust04 TYPE TABLE OF ust04.
DATA: ls_ust04 TYPE ust04.
DATA: lt_usr02 TYPE TABLE OF usr02.
DATA: ls_usr02 TYPE usr02.
DATA: lt_tamp TYPE TABLE OF usrstamp.
DATA: ls_tamp TYPE usrstamp.
FIELD-SYMBOLS: <fs_role> TYPE ty_usr_role.
CLEAR : gt_usr_role.
IF p_user = 'X' AND p_role = 'X'.
MESSAGE '去重项只能选择一个!' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
"查询用户&角色数据
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gt_usr_role
FROM agr_users AS a
JOIN agr_1016 AS b ON b~agr_name = a~agr_name
JOIN agr_define AS c ON c~agr_name = a~agr_name
JOIN user_addr AS d ON d~bname = a~uname
WHERE a~agr_name IN s_agr_n
AND a~uname IN s_unam_
AND c~change_dat IN s_chand
AND c~change_tim IN s_chant
AND c~change_usr IN s_chana
AND c~create_dat IN s_cread
AND c~create_tim IN s_creat
AND c~create_usr IN s_creaa
AND b~profile IN s_profi
AND a~agr_name LIKE 'Z%'
AND ( d~name_last IN s_namel OR d~name_first IN s_namel
OR d~name_textc IN s_namel ).
IF p_error = 'X'.
DELETE gt_usr_role WHERE pstate <> ''.
ENDIF.
IF gt_usr_role IS INITIAL .
MESSAGE '指定关键字的数据没有找到' TYPE 'S' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
IF p_user = 'X'.
SORT gt_usr_role BY uname.
DELETE ADJACENT DUPLICATES FROM gt_usr_role COMPARING uname.
ENDIF.
IF p_role = 'X'.
SORT gt_usr_role BY agr_name.
DELETE ADJACENT DUPLICATES FROM gt_usr_role COMPARING agr_name.
ENDIF.
"得到参数文件信息
SELECT *
INTO TABLE lt_ust04
FROM ust04
FOR ALL ENTRIES IN gt_usr_role
WHERE bname = gt_usr_role-uname
AND profile = gt_usr_role-profile.
SORT lt_ust04 BY bname profile.
"用户创建信息
SELECT *
INTO TABLE lt_usr02
FROM usr02
FOR ALL ENTRIES IN gt_usr_role
WHERE bname = gt_usr_role-uname.
SORT lt_usr02 BY bname.
"用户修改信息
SELECT *
INTO TABLE lt_tamp
FROM usrstamp
FOR ALL ENTRIES IN gt_usr_role
WHERE username = gt_usr_role-uname.
SORT lt_tamp BY username moddate DESCENDING modtime DESCENDING.
CLEAR: lv_rown.
LOOP AT gt_usr_role ASSIGNING <fs_role>.
lv_index = sy-tabix.
IF <fs_role>-pstate = ''.
<fs_role>-light = gc_red_light.
CONTINUE.
ENDIF.
"判断参数文件是否有误
READ TABLE lt_ust04 INTO ls_ust04 WITH KEY bname = <fs_role>-uname
profile = <fs_role>-profile
BINARY SEARCH.
IF sy-subrc = 0.
IF p_error = 'X'.
DELETE gt_usr_role INDEX lv_index.
CONTINUE.
ENDIF.
<fs_role>-light = gc_green_light.
ELSE.
<fs_role>-light = gc_red_light.
ENDIF.
ENDLOOP.
IF p_error = 'X'.
DELETE gt_usr_role WHERE light = gc_green_light.
ENDIF.
IF gt_usr_role IS INITIAL .
MESSAGE '指定关键字的数据没有找到' TYPE 'S' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
"行号
LOOP AT gt_usr_role ASSIGNING <fs_role>.
lv_rown = lv_rown + 1.
<fs_role>-zrow = lv_rown .
"用户创建信息
READ TABLE lt_usr02 INTO ls_usr02 WITH KEY bname = <fs_role>-uname
BINARY SEARCH.
IF sy-subrc = 0.
<fs_role>-aname = ls_usr02-aname.
<fs_role>-erdat = ls_usr02-erdat.
ENDIF.
"用户修改信息
READ TABLE lt_tamp INTO ls_tamp WITH KEY username = <fs_role>-uname.
IF sy-subrc = 0.
<fs_role>-moddate = ls_tamp-moddate .
<fs_role>-modtime = ls_tamp-modtime .
<fs_role>-modifier = ls_tamp-modifier.
ENDIF.
ENDLOOP.
IF gv_refresh = 'X'.
PERFORM frm_refresh_alv USING gr_ref_alv.
CLEAR: gv_refresh.
ELSE.
"调用ALV展示
PERFORM frm_diaplay_alv.
ENDIF.
ENDFORM. "FRM_GET_ROLE_USER
*&---------------------------------------------------------------------*
*& FORM FRM_DIAPLAY_ALV
*&---------------------------------------------------------------------*
* TEXT 展示结果
*----------------------------------------------------------------------*
* -->P_FLAG TEXT
*----------------------------------------------------------------------*
FORM frm_diaplay_alv .
wa_layout-cwidth_opt = 'X'.
wa_layout-zebra = 'X'.
wa_layout-sel_mode = 'A'.
IF p_1 = 'X'.
"创建展示字段
PERFORM frm_build_pfield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDP'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = it_prog
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_2 = 'X'.
"创建展示字段
PERFORM frm_build_ffield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDF'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = it_func
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_3 = 'X'.
"创建展示字段
PERFORM frm_build_sfield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDS'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = it_snro
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_4 = 'X'.
"创建展示字段
PERFORM frm_build_efield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDE'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = it_enhc
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_5 = 'X'.
"创建展示字段
PERFORM frm_build_smfield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDSM'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = it_smart
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_6 = 'X'.
"创建展示字段
PERFORM frm_build_refield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDRE'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = it_reque
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_7 = 'X'.
"创建展示字段
PERFORM frm_build_clfield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDCL'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = gt_class
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_8 = 'X'.
"创建展示字段
PERFORM frm_build_tdfield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDTD'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = gt_replace
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_9 = 'X'.
"创建展示字段
PERFORM frm_build_stfield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDST'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = it_struct
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_10 = 'X'.
"创建展示字段
PERFORM frm_build_shfield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDSH'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = gt_shelp
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSEIF p_11 = 'X'.
"创建展示字段
PERFORM frm_build_rofield.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FM_SET_STATUS'
i_callback_user_command = 'USER_COMMANDRO'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
i_save = 'A'
TABLES
t_outtab = gt_usr_role
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. "frm_diaplay_alv
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDP
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandp USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE it_prog INTO wa_prog INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'NAME' .
IF wa_prog-name IS NOT INITIAL.
SET PARAMETER ID 'RID' FIELD wa_prog-name.
CALL TRANSACTION 'SE38' .
ELSE.
MESSAGE '程序名为空!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
WHEN 'TCODE'.
IF wa_prog-tcode IS NOT INITIAL.
SET PARAMETER ID 'TCD' FIELD wa_prog-tcode.
CALL TRANSACTION 'SE93' .
ELSE.
MESSAGE '事务代码为空!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
ENDCASE.
CASE rs_selfield-sel_tab_field. "这里就对应的是单元格定位
"对应的是输出的内表字表名,其中1-是固定的格式,后面加内表字段名
WHEN '1-ZWORD'.
IF wa_prog-zword IS NOT INITIAL.
"打开本地文件
PERFORM frm_open_file USING wa_prog-wordf 'W'.
ELSE.
MESSAGE '没有对应的开发文档!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
WHEN '1-ZEXCL'.
IF wa_prog-zexcl IS NOT INITIAL.
"打开本地文件
PERFORM frm_open_file USING wa_prog-excel 'E'.
ELSE.
MESSAGE '没有对应的技术文档!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_prog.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDF
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandf USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE it_func INTO wa_func INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'FUNCNAME' .
IF wa_func-funcname IS NOT INITIAL.
SET PARAMETER ID 'LIB' FIELD wa_func-funcname.
CALL TRANSACTION 'SE37' .
ELSE.
MESSAGE '函数名为空!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
WHEN 'AREA'.
IF wa_func-area IS NOT INITIAL.
SET PARAMETER ID 'LIB' FIELD wa_func-funcname.
CALL TRANSACTION 'SE37'.
ELSE.
MESSAGE '函数组为空!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
ENDCASE.
CASE rs_selfield-sel_tab_field. "这里就对应的是单元格定位
"对应的是输出的内表字表名,其中1-是固定的格式,后面加内表字段名
WHEN '1-ZWORD'.
IF wa_func-zword IS NOT INITIAL.
"打开本地文件
PERFORM frm_open_file USING wa_func-wordf 'W'.
ELSE.
MESSAGE '没有对应的开发文档!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
WHEN '1-ZEXCL'.
IF wa_func-zexcl IS NOT INITIAL.
"打开本地文件
PERFORM frm_open_file USING wa_func-excel 'E'.
ELSE.
MESSAGE '没有对应的技术文档!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_func.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDS
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commands USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE it_snro INTO wa_snro INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'OBJ_NAME' .
IF wa_snro-obj_name IS NOT INITIAL.
nriv-object = wa_snro-obj_name.
PERFORM frm_call_snro USING nriv-object.
ELSE.
MESSAGE '号码范围为空!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_snro.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDE
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commande USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE it_enhc INTO wa_enhc INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'OBJ_NAME' .
IF wa_enhc-obj_name <> '' AND wa_enhc-object = 'CMOD'.
SET PARAMETER ID 'MON' FIELD wa_enhc-obj_name.
CALL TRANSACTION 'CMOD'.
ELSEIF wa_enhc-obj_name <> '' AND wa_enhc-object = 'ENHC'.
SET PARAMETER ID 'ENH' FIELD wa_enhc-obj_name.
CALL TRANSACTION 'SE20'.
ELSEIF wa_enhc-obj_name <> '' AND wa_enhc-object = 'ENHO'.
SET PARAMETER ID 'ENH' FIELD wa_enhc-obj_name.
CALL TRANSACTION 'SE20'.
ELSEIF wa_enhc-obj_name <> '' AND wa_enhc-object = 'SXCI'.
SET PARAMETER ID 'IMN' FIELD wa_enhc-obj_name.
CALL TRANSACTION 'SE19'.
ELSE.
MESSAGE '对象为空!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
WHEN 'PROGRAMNAME'.
IF wa_enhc-programname IS NOT INITIAL.
SET PARAMETER ID 'RID' FIELD wa_enhc-programname.
CALL TRANSACTION 'SE38' .
ELSE.
MESSAGE '程序为空!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
WHEN 'IMP_CLASS'.
IF wa_enhc-imp_class <> ''.
SET PARAMETER ID 'CLASS' FIELD wa_enhc-imp_class.
CALL TRANSACTION 'SE24'.
ENDIF.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_enhc.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDSM
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandsm USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE it_smart INTO wa_smart INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'FORMNAME' .
IF wa_smart-formname <> '' .
SET PARAMETER ID 'SSFNAME' FIELD wa_smart-formname.
CALL TRANSACTION 'SMARTFORMS'.
ELSE.
MESSAGE 'SMARTFORMS不存在!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_smart.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDRE
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandre USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
* RS_SELFIELD-REFRESH = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE it_reque INTO wa_reque INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'TRKORR' .
IF wa_reque-trkorr <> '' .
CALL TRANSACTION 'SE01'.
ELSE.
MESSAGE '请求号不存在!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
WHEN 'OBJ_NAME'.
CASE wa_reque-object .
WHEN 'PROG' OR 'REPT'.
SET PARAMETER ID 'RID' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SE38' .
WHEN 'FUNC' OR 'FUGR' OR 'SRFC'.
SET PARAMETER ID 'LIB' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SE37'.
WHEN 'TABL' OR 'TABT' OR 'DTEL' OR 'DOMA'
OR 'TTYP' OR 'TABD' OR 'DTED'.
SET PARAMETER ID 'DTB' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SE11'.
WHEN 'MSAG'.
SET PARAMETER ID 'MAG' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SE91'.
WHEN 'TRAN'.
SET PARAMETER ID 'TCD' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SE93'.
WHEN 'NROB'.
CALL TRANSACTION 'SNRO'.
WHEN 'AUTH'.
CALL TRANSACTION 'SU20'.
WHEN 'SUSC' OR 'SUSO'.
CALL TRANSACTION 'SU21'.
WHEN 'ENHO' OR 'ENHC'.
CALL TRANSACTION 'SE20'.
WHEN 'SHLP'.
SET PARAMETER ID 'SHLP' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SE11'.
WHEN 'SSFO'.
SET PARAMETER ID 'SSFNAME' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SMARTFORMS'.
WHEN 'SSST'.
SET PARAMETER ID 'SSFSTYLE' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SMARTFORMS'.
WHEN 'W3MI'.
CALL TRANSACTION 'SMW0'.
WHEN 'SPLO'.
CALL TRANSACTION 'SPAD'.
WHEN 'CLAS'.
SET PARAMETER ID 'CLASS' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SE24'.
WHEN 'SXCI'.
SET PARAMETER ID 'IMN' FIELD wa_reque-obj_name.
CALL TRANSACTION 'SE19'.
ENDCASE.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_reque.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDCL
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandcl USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE gt_class INTO gs_class INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'CLSNAME' .
SET PARAMETER ID 'CLASS' FIELD gs_class-clsname.
CALL TRANSACTION 'SE24' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_reque.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDTD
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandtd USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
* READ TABLE gt_replace INTO gs_replace INDEX rs_selfield-tabindex.
* CASE rs_selfield-fieldname .
* WHEN 'CLSNAME' .
CALL TRANSACTION 'GGB1'.
* ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_reque.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDST
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandst USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE it_struct INTO wa_struct INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'TABNAME' .
IF wa_struct-contflag IS INITIAL.
SET PARAMETER ID 'DTYP' FIELD wa_struct-tabname.
CALL TRANSACTION 'SE11' AND SKIP FIRST SCREEN.
ELSE.
SET PARAMETER ID 'DTB' FIELD wa_struct-tabname.
CALL TRANSACTION 'SE11' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'MAINFLAG'.
IF wa_struct-mainflag = 'X'.
"调用表格维护
PERFORM frm_call_sm30 USING wa_struct-tabname.
ENDIF.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : wa_struct.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDSH
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandsh USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE gt_shelp INTO gs_shelp INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'SHLPNAME' .
SET PARAMETER ID 'SHLP' FIELD gs_shelp-shlpname.
CALL TRANSACTION 'SE11' AND SKIP FIRST SCREEN.
WHEN 'SELMETHOD'.
SET PARAMETER ID 'DTB' FIELD gs_shelp-selmethod.
CALL TRANSACTION 'SE11' AND SKIP FIRST SCREEN.
WHEN 'TEXTTAB'.
SET PARAMETER ID 'DTB' FIELD gs_shelp-texttab.
CALL TRANSACTION 'SE11' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : gs_shelp.
ENDFORM. " USER_COMMANDSH
*&---------------------------------------------------------------------*
*& FORM USER_COMMANDRO
*&---------------------------------------------------------------------*
* TEXT 用户命令响应
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM user_commandro USING rs_code TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE rs_code.
WHEN '&IC1'. "双击
READ TABLE gt_usr_role INTO gs_usr_role INDEX rs_selfield-tabindex.
CASE rs_selfield-fieldname .
WHEN 'UNAME' .
IF gs_usr_role-uname IS NOT INITIAL.
SET PARAMETER ID 'XUS' FIELD gs_usr_role-uname.
CALL TRANSACTION 'SU01' .
ELSE.
MESSAGE '用户名为空!' TYPE 'S' DISPLAY LIKE 'W'.
ENDIF.
WHEN 'AGR_NAME'.
"调用PFCG展示角色
PERFORM frm_call_pfcg USING gs_usr_role-agr_name.
ENDCASE.
WHEN '&REF'.
PERFORM frm_get_show_data.
ENDCASE.
CLEAR : gs_usr_role.
ENDFORM. " USER_COMMANDRO
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_PFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_pfield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'ZWORD' OR 'ZEXCL'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-hotspot = 'X'.
WHEN 'NAME' OR 'TCODE'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROW' '行号' '' '' ''.
buildfieldcat 'NAME' '程序名' '' '' ''.
buildfieldcat 'TEXT' '程序描述' '' '' ''.
buildfieldcat 'TCODE' '事物代码' '' '' ''.
buildfieldcat 'TTEXT' '事物代码描述' '' '' ''.
buildfieldcat 'CLAS' '程序类别' '' '' 'X'.
buildfieldcat 'SUBC' '程序类型' '' '' 'X'.
buildfieldcat 'ZSUB' '程序类型' '' '' ''.
buildfieldcat 'SECU' '权限组' '' '' 'X'.
buildfieldcat 'CNAM' '作者' '' '' ''.
buildfieldcat 'CDAT' '创建日期' '' '' ''.
buildfieldcat 'UNAM' '最后修改人' '' '' ''.
buildfieldcat 'UDAT' '更改日期' '' '' ''.
buildfieldcat 'VERN' '版本' '' '' ''.
buildfieldcat 'RMAND' '集团' '' '' ''.
buildfieldcat 'DEVCLASS' '包' '' '' ''.
buildfieldcat 'ZWORD' '开发文档' '' '' ''.
buildfieldcat 'ZEXCL' '技术文档' '' '' ''.
ENDFORM. "frm_build_pfield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_FFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_ffield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'ZWORD' OR 'ZEXCL'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-hotspot = 'X'.
WHEN 'FUNCNAME' OR 'AREA'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROW' '行号' '' '' ''.
buildfieldcat 'AREA' '函数组' '' '' ''.
buildfieldcat 'UNAME' '函数组负责人' '' '' ''.
buildfieldcat 'FUNCNAME' '函数名称' '' '' ''.
buildfieldcat 'STEXT' '函数描述' '' '' ''.
buildfieldcat 'FMODE' '函数模块类型' '' '' ''.
buildfieldcat 'PNAME' '程序名' '' '' ''.
buildfieldcat 'INCLUDE' 'INCLUDE号' '' '' ''.
buildfieldcat 'FREEDATE' '释放日期' '' '' ''.
buildfieldcat 'MAND' '集团' '' '' ''.
buildfieldcat 'DEVCLASS' '包' '' '' ''.
buildfieldcat 'ZWORD' '开发文档' '' '' ''.
buildfieldcat 'ZEXCL' '技术文档' '' '' ''.
ENDFORM. "frm_build_ffield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_SFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_sfield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'ZWORD' OR 'ZEXCL'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-hotspot = 'X'.
WHEN 'OBJ_NAME' OR 'NRRANGENR' OR 'FROMNUMBER' OR 'TONUMBER'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROWN' '行号' '' '' ''.
buildfieldcat 'OBJ_NAME' '号码范围' '' '' ''.
buildfieldcat 'TXT' '范围描述' '' '' ''.
buildfieldcat 'TXTSHORT' '短描述' '' '' ''.
buildfieldcat 'AUTHOR' '作者' '' '' ''.
buildfieldcat 'SUBOBJECT' '子对象' '' '' ''.
buildfieldcat 'CREATED_ON' '创建日期' '' '' ''.
buildfieldcat 'TOYEAR' '到会计年度' '' '' ''.
buildfieldcat 'NRRANGENR' '序号区间编号' '' '' ''.
buildfieldcat 'FROMNUMBER' '起始号' '' '' ''.
buildfieldcat 'TONUMBER' '终止号' '' '' ''.
buildfieldcat 'NRLEVEL' '编号范围状态' '' '' ''.
buildfieldcat 'SRCSYSTEM' '对象的原始系统' '' '' ''.
buildfieldcat 'EXTERNIND' '编号范围的标志' '' '' ''.
buildfieldcat 'DEVCLASS' '包' '' '' ''.
ENDFORM. "frm_build_sfield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_EFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_efield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'ZWORD' OR 'ZEXCL'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-hotspot = 'X'.
WHEN 'OBJECT' OR 'OBJ_NAME'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROWN' '行号' '' '' ''.
buildfieldcat 'OBJECT' '增强类别' '' '' ''.
buildfieldcat 'OBJ_NAME' '增强名称' '' '' ''.
buildfieldcat 'EXIT_NAME' '业务加载项名称' '' '' ''.
buildfieldcat 'AUTHOR' '作者' '' '' ''.
buildfieldcat 'DEVCLASS' '包' '' '' ''.
buildfieldcat 'CREATED_ON' '创建日期' '' '' ''.
buildfieldcat 'CHANGEDBY' '修改者' '' '' ''.
buildfieldcat 'CHANGEDON' '修改日期' '' '' ''.
buildfieldcat 'CHILDENH' '实现' '' '' ''.
buildfieldcat 'PROGRAMNAME' '程序' '' '' ''.
buildfieldcat 'MEMBER' '组件(MOD)' '' '' ''.
buildfieldcat 'MODTEXT' '描述' '' '' ''.
buildfieldcat 'IMP_CLASS' '对象类型名称' '' '' ''.
buildfieldcat 'TEXT' '客户增强: 文本' '' '' ''.
ENDFORM. "frm_build_efield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_FMFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_smfield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'FORMNAME'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROWN' '行号' '' '' ''.
buildfieldcat 'FORMNAME' 'SM名字' '' '' ''.
buildfieldcat 'DEVCLASS' '包' '' '' ''.
buildfieldcat 'FIRSTUSER' '创建者' '' '' ''.
buildfieldcat 'FIRSTDATE' '创建日期' '' '' ''.
buildfieldcat 'LASTUSER' '修改者' '' '' ''.
buildfieldcat 'LASTDATE' '修改日期' '' '' ''.
buildfieldcat 'LASTTIME' '修改时间' '' '' ''.
buildfieldcat 'CAPTION' '描述' '' '' ''.
ENDFORM. "frm_build_smfield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_REFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_refield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'TRFUNCTION'.
wa_fieldcat-ref_table = 'E070'.
wa_fieldcat-ref_field = 'TRFUNCTION'.
WHEN 'TRSTATUS'.
wa_fieldcat-ref_table = 'E070'.
wa_fieldcat-ref_field = 'TRSTATUS'.
WHEN 'KORRDEV'.
wa_fieldcat-ref_table = 'E070'.
wa_fieldcat-ref_field = 'KORRDEV'.
WHEN 'OBJECT'.
wa_fieldcat-ref_table = 'E071'.
wa_fieldcat-ref_field = 'OBJECT'.
WHEN 'TKORR'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROWN' '行号' '' '' ''.
buildfieldcat 'TRKORR' '请求/任务' '' '' ''.
buildfieldcat 'TRFUNCTION' '类型' '' '' ''.
buildfieldcat 'TRSTATUS' '状态' '' '' ''.
buildfieldcat 'OBJECT' '对象类型' '' '' ''.
buildfieldcat 'OBJ_NAME' '对象名称' '' '' ''.
buildfieldcat 'AS4TEXT' '描述' '' '' ''.
buildfieldcat 'AS4USER' '请求所有者' '' '' ''.
buildfieldcat 'AS4DATE' '更改日期' '' '' ''.
buildfieldcat 'AS4TIME' '更改时间' '' '' ''.
buildfieldcat 'KORRDEV' '请求/任务类型' '' '' ''.
buildfieldcat 'TARSYSTEM' '传输目标' '' '' ''.
ENDFORM. "frm_build_refield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_CLFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_clfield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'CLSNAME'.
wa_fieldcat-ref_table = 'VSEOCLASS'.
wa_fieldcat-ref_field = 'CLSNAME'.
WHEN 'LANGU'.
wa_fieldcat-ref_table = 'VSEOCLASS'.
wa_fieldcat-ref_field = 'LANGU'.
WHEN 'CATEGORY'.
wa_fieldcat-ref_table = 'VSEOCLASS'.
wa_fieldcat-ref_field = 'CATEGORY'.
WHEN 'STATE'.
wa_fieldcat-ref_table = 'VSEOCLASS'.
wa_fieldcat-ref_field = 'STATE'.
WHEN 'CLSNAME'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROWN' '行号' '' '' ''.
buildfieldcat 'CLSNAME' '对象类型名称' '' '' ''.
buildfieldcat 'DESCRIPT' '简短描述 ' '' '' ''.
buildfieldcat 'AUTHOR' '作者 ' '' '' ''.
buildfieldcat 'CREATEDON' '创建日期' '' '' ''.
buildfieldcat 'CHANGEDBY' '最后修改人' '' '' ''.
buildfieldcat 'CHANGEDON' '更改日期' '' '' ''.
buildfieldcat 'CHGDANYBY' '最后修改人' '' '' ''.
buildfieldcat 'CHGDANYON' '更改日期' '' '' ''.
buildfieldcat 'DEVCLASS' '开发包' '' '' ''.
buildfieldcat 'VERSION' '版本指示器' '' '' ''.
buildfieldcat 'LANGU' '语言代码' '' '' ''.
buildfieldcat 'CATEGORY' '类/接口类别' '' '' ''.
buildfieldcat 'EXPOSURE' '类别或组件的可见性' '' '' ''.
buildfieldcat 'STATE' '类别或组件的状态 ' '' '' ''.
buildfieldcat 'RELEASE' '类别的版本状态 ' '' '' ''.
ENDFORM. "frm_build_clfield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_TDFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_tdfield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'SUBSTID'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROWN' '行号' '' '' ''.
buildfieldcat 'SUBSTID' '替代名' '' '' ''.
buildfieldcat 'SUBTX1' '替代描述' '' '' ''.
buildfieldcat 'GBOPCREATE' '创建者' '' '' ''.
buildfieldcat 'GBDTCREATE' '创建日期' '' '' ''.
buildfieldcat 'GBTMCREATE' '创建时间' '' '' ''.
buildfieldcat 'GBOPCHANGE' '更改人' '' '' ''.
buildfieldcat 'GBDTCHANGE' '更改日期' '' '' ''.
buildfieldcat 'GBTMCHANGE' '更改时间' '' '' ''.
buildfieldcat 'SUBSEQNR' '替代的步骤号' '' '' ''.
buildfieldcat 'SUBTX2' '替代的步骤文本' '' '' ''.
ENDFORM. "frm_build_tdfield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_STFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_stfield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'MAINFLAG'.
wa_fieldcat-hotspot = 'X'.
WHEN 'TABNAME'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROWN' '行号' '' '' ''.
buildfieldcat 'DEVCLASS' '包' '' '' ''.
buildfieldcat 'TABNAME ' '表名' '' '' ''.
buildfieldcat 'DDTEXT ' '描述' '' '' ''.
buildfieldcat 'AS4USER ' '作者' '' '' ''.
buildfieldcat 'AS4DATE ' '日期' '' '' ''.
buildfieldcat 'AS4TIME ' '时间' '' '' ''.
IF p_isstr = ''.
buildfieldcat 'CLIDEP ' '非跨客户端' 'DD02L' 'CLIDEP' ''.
buildfieldcat 'MAINFLAG' '表维护(单击可维护)' 'DD02L' 'MAINFLAG' ''.
buildfieldcat 'CONTFLAG' '内容类型' 'DD02L' 'CONTFLAG' ''.
ENDIF.
IF p_istab = ''.
buildfieldcat 'PROXYTYPE' '代理使用' 'DD02L' 'PROXYTYPE' ''.
ENDIF.
ENDFORM. "frm_build_stfield
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_SHFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_shfield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'SHLPNAME' OR 'SELMETHOD'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROWN' '行号' '' '' ''.
buildfieldcat 'DEVCLASS' '包' '' '' ''.
buildfieldcat 'SHLPNAME ' '搜索帮助名 ' '' '' ''.
buildfieldcat 'ISSIMPLE ' '基本搜索帮助' '' '' ''.
buildfieldcat 'SELMETHOD ' '选择方法' '' '' ''.
buildfieldcat 'DDTEXT ' '描述' '' '' ''.
buildfieldcat 'TEXTTAB ' '文本表' '' '' ''.
buildfieldcat 'SELMTYPE ' '方法的类型 ' 'DD30L' 'SELMTYPE' ''.
buildfieldcat 'AS4LOCAL ' '激活状态 ' 'DD30L' 'AS4LOCAL' ''.
buildfieldcat 'DIALOGTYPE' '对话类型' 'DD30L' 'DIALOGTYPE' ''.
buildfieldcat 'ELEMEXI ' '包含搜索帮助 ' '' '' ''.
buildfieldcat 'NOFIELDS ' '标记是否有字段' '' '' ''.
buildfieldcat 'ATTACHEXI ' '标记字段分配' '' '' 'X'.
buildfieldcat 'SELMEXIT ' '搜索帮助退出 ' '' '' ''.
buildfieldcat 'HOTKEY ' '搜索帮助热键 ' '' '' 'X'.
buildfieldcat 'ACTFLAG ' '激活标志 ' '' '' 'X'.
buildfieldcat 'AS4USER ' '上次更改者 ' '' '' ''.
buildfieldcat 'AS4DATE ' '更改日期' '' '' ''.
buildfieldcat 'AS4TIME ' '更改时间' '' '' ''.
ENDFORM. "FRM_BUILD_SHFIELD
*&---------------------------------------------------------------------*
*& FORM FRM_BUILD_ROFIELD
*&---------------------------------------------------------------------*
* TEXT 准备程序展示字段
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_build_rofield .
DATA : e_col TYPE i VALUE 1.
DEFINE buildfieldcat.
wa_fieldcat-col_pos = e_col.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-scrtext_s = &1.
wa_fieldcat-scrtext_m = &1.
wa_fieldcat-scrtext_l = &1.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.
wa_fieldcat-no_out = &5.
CASE wa_fieldcat-fieldname.
WHEN 'LIGHT'.
wa_fieldcat-icon = 'X'.
WHEN 'UNAME' OR 'AGR_NAME'.
wa_fieldcat-emphasize = 'X'.
ENDCASE.
APPEND wa_fieldcat TO it_fieldcat.
e_col = e_col + 1.
CLEAR wa_fieldcat.
END-OF-DEFINITION.
CLEAR : it_fieldcat,wa_fieldcat.
buildfieldcat 'ZROW' '行号' '' '' ''.
buildfieldcat 'LIGHT ' '指示灯' '' '' ''.
IF p_role = ''.
buildfieldcat 'UNAME ' '用户' '' '' ''.
buildfieldcat 'ANAME' '用户创建者' '' '' ''.
buildfieldcat 'ERDAT' '用户创建日期' '' '' ''.
buildfieldcat 'MODIFIER' '用户修改者' '' '' ''.
buildfieldcat 'MODDATE ' '用户修改日期' '' '' ''.
buildfieldcat 'MODTIME ' '用户修改时间' '' '' ''.
ENDIF.
buildfieldcat 'AGR_NAME ' '角色' '' '' ''.
buildfieldcat 'FROM_DAT ' '开始日期' '' '' ''.
buildfieldcat 'TO_DAT ' '结束日期' '' '' ''.
buildfieldcat 'CREATE_USR' '创建人' '' '' ''.
buildfieldcat 'CREATE_DAT' '创建日期' '' '' ''.
buildfieldcat 'CREATE_TIM' '创建时间' '' '' ''.
buildfieldcat 'CHANGE_USR' '修改人' '' '' ''.
buildfieldcat 'CHANGE_DAT' '修改日期' '' '' ''.
buildfieldcat 'CHANGE_TIM' '修改时间' '' '' ''.
buildfieldcat 'PROFILE ' '参数文件' '' '' ''.
buildfieldcat 'ZWORD' '开发文档' '' '' ''.
buildfieldcat 'ZEXCL' '技术文档' '' '' ''.
ENDFORM. "frm_build_rofield
*&---------------------------------------------------------------------*
*& FORM FM_SET_STATUS
*&---------------------------------------------------------------------*
* TEXT 设置屏幕状态
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM fm_set_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM. "fm_set_status
*&---------------------------------------------------------------------*
*& Form FRM_OPEN_FILE
*&---------------------------------------------------------------------*
* text 打开本地的开发文档或者技术文档
*----------------------------------------------------------------------*
* -->P_FILE text
* -->P_FLAG text
*----------------------------------------------------------------------*
FORM frm_open_file USING p_file p_flag.
"定义EXCEL操作相关的对象变量。
DATA: application TYPE ole2_object, "EXCEL OBJECT
workbook TYPE ole2_object, "EXCEL WORKBOOK OBJCET
word TYPE ole2_object, "WORKBOOK SHEET OBJECT
documents TYPE ole2_object. "SHEET COL OBJCET
IF p_file IS NOT INITIAL .
IF p_flag = 'W'.
CREATE OBJECT word 'WORD.APPLICATION'.
SET PROPERTY OF word 'VISIBLE' = 1 .
CALL METHOD OF
word
'DOCUMENTS' = documents.
CALL METHOD OF
documents
'OPEN' = documents
EXPORTING
#1 = p_file.
ELSEIF p_flag = 'E'.
CREATE OBJECT application 'EXCEL.APPLICATION'. "创建EXCEL应用程序
"设置EXCEL可见性如下(1:显示,0:隐藏)
SET PROPERTY OF application 'VISIBLE' = 1.
CALL METHOD OF application
'WORKBOOKS' = workbook. "获取EXECL工作簿属性
CALL METHOD OF
workbook
'OPEN' = workbook
EXPORTING
#1 = p_file. "打开指定位置文件
ENDIF.
ENDIF.
ENDFORM. "frm_open_file
*&---------------------------------------------------------------------*
*& Form FRM_CALL_SNRO
*&---------------------------------------------------------------------*
*& text 调用事务代码
*&---------------------------------------------------------------------*
* -->PV_TCODE text
*&---------------------------------------------------------------------*
FORM frm_call_snro USING pv_snro_name.
DATA : lt_zmess TYPE TABLE OF bdcmsgcoll,
ls_zmess TYPE bdcmsgcoll.
CLEAR: gt_bdcdata.
"打开录屏
PERFORM frm_open_group.
PERFORM frm_bdc_dynpro USING 'SAPMSNRO' '0150'.
PERFORM frm_bdc_field USING 'BDC_CURSOR'
'NRIV-OBJECT'.
* perform FRM_bdc_field using 'BDC_OKCODE'
* '/00'.
PERFORM frm_bdc_field USING 'NRIV-OBJECT'
pv_snro_name.
PERFORM frm_bdc_dynpro USING 'SAPMSNRO' '0150'.
PERFORM frm_bdc_field USING 'BDC_CURSOR'
'NRIV-OBJECT'.
CLEAR : lt_zmess.
CALL TRANSACTION 'SNRO' USING gt_bdcdata
MODE 'A'
MESSAGES INTO lt_zmess.
"关闭录屏
PERFORM frm_close_group.
FREE: gt_bdcdata.
ENDFORM. "frm_call_snro
*&---------------------------------------------------------------------*
*& FORM frm_open_group
*&---------------------------------------------------------------------*
* TEXT 打开录屏
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_open_group.
gv_user = sy-uname.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = gv_group
holddate = gv_holddate
keep = gv_keep
user = gv_user.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " OPEN_GROUP
*&---------------------------------------------------------------------*
*& FORM frm_bdc_dynpro
*&---------------------------------------------------------------------*
* TEXT BDC屏幕
*----------------------------------------------------------------------*
FORM frm_bdc_dynpro USING program dynpro .
CLEAR gt_bdcdata.
gt_bdcdata-program = program.
gt_bdcdata-dynpro = dynpro.
gt_bdcdata-dynbegin = 'X'.
APPEND gt_bdcdata.
ENDFORM. " BDC_DYNPRO
*&---------------------------------------------------------------------*
*& FORM frm_bdc_field
*&---------------------------------------------------------------------*
* TEXT 输入字段
*----------------------------------------------------------------------*
* -->P_0254 TEXT
* -->P_0255 TEXT
*----------------------------------------------------------------------*
FORM frm_bdc_field USING fnam fval.
CLEAR gt_bdcdata.
gt_bdcdata-fnam = fnam.
gt_bdcdata-fval = fval.
APPEND gt_bdcdata.
ENDFORM. " BDC_FIELD
*&---------------------------------------------------------------------*
*& FORM frm_close_group
*&---------------------------------------------------------------------*
* TEXT 关闭BDC
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM frm_close_group.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " BDC_CLOSE_GROUP
*&---------------------------------------------------------------------*
*& Form FRM_CALL_SM30
*&---------------------------------------------------------------------*
*& text SM30配置表
*&---------------------------------------------------------------------*
* -->P_ text
*&---------------------------------------------------------------------*
FORM frm_call_sm30 USING pv_tabname.
DATA: lv_view_name LIKE dd02v-tabname.
lv_view_name = pv_tabname.
"调用
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'U'
view_name = lv_view_name.
ENDFORM. "frm_call_sm30
*&---------------------------------------------------------------------*
*& Form FRM_GET_SHOW_DATA
*&---------------------------------------------------------------------*
* text 得到查询数据
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_show_data .
gv_refresh = 'X'.
IF p_1 = 'X'. "查找程序/事务代码
PERFORM frm_get_programs.
ELSEIF p_2 = 'X'. "查找函数/函数组
PERFORM frm_get_function.
ELSEIF p_3 = 'X'. "查找号码范围
PERFORM frm_get_snumber.
ELSEIF p_4 = 'X'. "查找增强
PERFORM frm_get_enthance.
ELSEIF p_5 = 'X'. "查找SMARTFORMS
PERFORM frm_get_smartforms.
ELSEIF p_6 = 'X'. "查找请求
PERFORM frm_get_requests.
ELSEIF p_7 = 'X'. "查找类
PERFORM frm_get_classes.
ELSEIF p_8 = 'X'. "查找替代
PERFORM frm_get_replaces.
ELSEIF p_9 = 'X'. "表或者结构
PERFORM frm_get_structure.
ELSEIF p_10 = 'X'. "搜索帮助
PERFORM frm_get_shelp.
ELSEIF p_11 = 'X'. "用户&角色
PERFORM frm_get_role_user.
ENDIF.
ENDFORM. " FRM_GET_SHOW_DATA
*&---------------------------------------------------------------------*
*& FORM FRM_REFRESH_ALV
*&---------------------------------------------------------------------*
*& TEXT 刷新ALV
*&---------------------------------------------------------------------*
* -->PR_ALV_GRID TEXT
*&---------------------------------------------------------------------*
FORM frm_refresh_alv USING pr_alv_grid TYPE REF TO cl_gui_alv_grid.
DATA : ls_stbl TYPE lvc_s_stbl.
ls_stbl-row = 'X'." 基于行的稳定刷新
ls_stbl-col = 'X'." 基于列稳定刷新
"对象没有创建,返回
IF pr_alv_grid IS INITIAL.
RETURN.
ENDIF.
"刷新ALV
CALL METHOD pr_alv_grid->refresh_table_display
EXPORTING
is_stable = ls_stbl
* I_SOFT_REFRESH =
EXCEPTIONS
finished = 1
OTHERS = 2.
IF sy-subrc <> 0.
* --异常处理
ENDIF.
ENDFORM. "frm
*&---------------------------------------------------------------------*
*& Form FRM_CALL_PFCG
*&---------------------------------------------------------------------*
* text 调用PFCG展示角色
*----------------------------------------------------------------------*
* -->PV_AGR_NAME text
*----------------------------------------------------------------------*
FORM frm_call_pfcg USING pv_agr_name.
DATA : lt_zmess TYPE TABLE OF bdcmsgcoll,
ls_zmess TYPE bdcmsgcoll.
CLEAR: gt_bdcdata.
"打开录屏
PERFORM frm_open_group.
PERFORM frm_bdc_dynpro USING 'SAPLPRGN_TREE' '0121'.
PERFORM frm_bdc_field USING 'BDC_CURSOR'
'AGR_NAME_NEU'.
* PERFORM frm_bdc_field USING 'BDC_OKCODE'
* '=ANZE'.
PERFORM frm_bdc_field USING 'AGR_NAME_NEU'
pv_agr_name.
* PERFORM frm_bdc_dynpro USING 'SAPLPRGN_TREE' '0300'.
* PERFORM frm_bdc_field USING 'BDC_CURSOR'
* 'S_AGR_DEFINE-AGR_NAME'.
* PERFORM frm_bdc_field USING 'BDC_OKCODE'
* '=TAB5'.
* PERFORM frm_bdc_dynpro USING 'SAPLPRGN_TREE' '0300'.
* PERFORM frm_bdc_field USING 'BDC_CURSOR'
* 'S_AGR_DEFINE-AGR_NAME'.
CLEAR : lt_zmess.
CALL TRANSACTION 'PFCG' USING gt_bdcdata
MODE 'A'
MESSAGES INTO lt_zmess.
"关闭录屏
PERFORM frm_close_group.
FREE: gt_bdcdata.
ENDFORM. " FRM_CALL_PFCG