维护视图使用介绍

作者:ABAP三叔 约 7 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, SD, WM, 仓库管理, 开发, 数据工程, 销售分销
维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

前言

目录:

• 维护视图创建

• 维护视图增加描述字段

• 维护视图事件:增加默认字段(创建人、日期、时间)

• 维护视图创建事务码

• 维护视图选择屏幕

• 维护视图变式

• 维护视图ABAP调用

创建维护视图

1\. SE11 建表

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

2\. 创建维护视图

从SE11->表->"实用程序"->"表维护生成器"路径创建

权限组: 通常输"&NC&"无权限组;

函数组: 通常建议一个模块建一个维护视图函数组;

维护类型:选"一步";

维护屏幕编号:概述屏幕中输入屏幕编号,函数组内递增不重复即可

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

添加描述字段

1\. 进入维护视图函数组 ,在包含文件top中增加全局描述字段gv_bezei

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

2\. 编辑屏幕100,在表格控件中增加一个输入输出框(名称 为 上一步定义的字段名 gv_bezei)和一个文本字段,将gv_bezei

设置为仅输出

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

3\. 在屏幕PBO中增加取值代码,如下图所示

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

4\. 双 击get_bezei后 创建新的包含文件,完善代码如下:

*&---------------------------------------------------------------------**& Module GET_BEZEI OUTPUT*&---------------------------------------------------------------------**&*&---------------------------------------------------------------------*MODULE get_bezei OUTPUT. SELECT SINGLE bezei INTO gv_bezei FROM tvakt WHERE auart = ztsd01_test-auart AND spras = sy-langu.ENDMODULE.

5\. SM30查看维护视图

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

添加默认字段

这个有两种方法:一. 在屏幕PAI中增加代码 二. 使用维护视图事件。

**方法一: 在屏幕PAI中增加代码 **

1. 将屏幕中的字段,设置为仅输出

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

2\. 在屏幕PAI中增加 取值代码,如下图所示

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

3\. 双 击add_audit后 创建新的包含文件,完善代码如下:

*&---------------------------------------------------------------------**& Module ADD_AUDIT INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE add_audit INPUT. zcl_common=>add_audit( CHANGING cs_data = ztsd01_test ).ENDMODULE.

METHOD add_audit. FIELD-SYMBOLS:<fs> TYPE any. ASSIGN COMPONENT 'ERNAM' OF STRUCTURE cs_data TO <fs>. IF sy-subrc = 0 AND <fs> IS INITIAL. <fs> = sy-uname. ASSIGN COMPONENT 'ERDAT' OF STRUCTURE cs_data TO <fs>. IF sy-subrc = 0. <fs> = sy-datum. ENDIF. ASSIGN COMPONENT 'ERZET' OF STRUCTURE cs_data TO <fs>. IF sy-subrc = 0. <fs> = sy-uzeit. ENDIF. ELSE. ASSIGN COMPONENT 'AENAM' OF STRUCTURE cs_data TO <fs>. IF sy-subrc = 0. <fs> = sy-uname. ASSIGN COMPONENT 'AEDAT' OF STRUCTURE cs_data TO <fs>. IF sy-subrc = 0. <fs> = sy-datum. ENDIF. ASSIGN COMPONENT 'AEZET' OF STRUCTURE cs_data TO <fs>. IF sy-subrc = 0. <fs> = sy-uzeit. ENDIF. ENDIF. ENDIF. ENDMETHOD.

4\. SM30编辑行项目后,创建人、更改人会自动填充值

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

**方法二: 使用维护视图事件。 **

1\. 从SE11->表->"实用程序"->"表维护生成器"->"环境"->"修改"->"事件"路径进入事件编辑界面

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

2\. 添加行项目:事件"21",子例程"FRM_ADD_AUDIT"

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

3\. 点击"编辑器",创建包含文件,完善代码如下:

*----------------------------------------------------------------------**&---------------------------------------------------------------------**& Form FRM_ADD_AUDIT*&---------------------------------------------------------------------**& text*&---------------------------------------------------------------------**& --> p1 text*& <-- p2 text*&---------------------------------------------------------------------*FORM frm_add_audit . zcl_common=>add_audit( CHANGING cs_data = ztsd01_test ).ENDFORM.

4\. SM30编辑行项目后,创建人、更改人会自动填充值

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

创建事务码

1\. SE93创建事务码,选择"使用参数的事务"

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

2\. 事务输入"SM30",勾选"跳过初始屏幕",屏幕字段名称内输入VIEWNAME,值为维护视图名称"ZTSD01_TEST",

SHOW字段值为"X",如果想直接进入编辑模式的话,需设置UPDATE字段为"X".

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

维护视图选择屏幕

SM30进入维护视图的时候,如果行项目太多,想在进入视图前使用筛选条件,具体方法如下。

1\. 以维护视图"V_TCURR"汇率维护为例,默认进去的时候是这样的

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

如果我只是想维护今年范围内,CNY兑美元的汇率,怎么办呢?

2 . 在SM30界面,选择"输入条件"

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

3\. 勾选"从货币"、"最终货币"、"有效自"

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

4\. 输入过滤条件,如下

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

5\. 结果如下

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

维护视图变式

如果维护视图的某种过滤条件使用频率非常频繁,我们可以考虑建立维护视图的变式,不用每次都使用"输入条件"过滤。

1. 进入SE54,输入视图名,点击"编辑视图变式"

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

2\. 输入变式名,点击"创建"

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

3\. 表内输入"V_TCURR",然后回车

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

4."选择条件"页签点击"表字段"

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

5\. 勾选"从货币"、"最终货币"、"汇率有效起始日期"

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

6\. 输入过滤条件,GDATU字段需多选一次,如下

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

7\. 维护状态,按下图修改,然后激活

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

8.SM30,输入视图变式名称,查询,效果同 06 节一致。

维护视图使用介绍 - 封面图
维护视图使用介绍 - 封面图

ABAP调用

1\. 如果不带过滤条件调用的话,直接使用" VIEW_MAINTE NANCE_CALL "函数,action值'S'为查看,'U'为编辑。

CALL FUNCTION 'VIEW_MAINTENANCE_CALL' EXPORTING        action                       = 'S' view_name = 'V_TCURR'* TABLES* dba_sellist = dba_sellist EXCEPTIONS client_reference = 1 foreign_lock = 2 invalid_action = 3 no_clientindependent_auth = 4 no_database_function = 5 no_editor_function = 6 no_show_auth = 7 no_tvdir_entry = 8 no_upd_auth = 9 only_show_allowed = 10 system_failure = 11 unknown_field_in_dba_sellist = 12 view_not_found = 13 maintenance_prohibited = 14 OTHERS = 15.

2.如果需要传入选择条件,先调用" VIEW_RANGETAB_TO_SEL LIST "函数,将选择屏幕参数转换为 vimsellist

内表,最后将内表传入函数" VIEW_MAINTE NANCE_CALL "的 dba_sellist 参数即可

DATA:lt_dba_sellist TYPE STANDARD TABLE OF vimsellist,       ls_dba_sellist TYPE vimsellist. CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST' EXPORTING fieldname = 'GDATU' append_conjunction = 'AND' TABLES sellist = lt_dba_sellist rangetab = s_GDATU. E

...

ABAP三叔

关于作者:ABAP三叔

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「维护视图使用介绍.md」整理生成,仅用于内部技术分享与学习交流。