原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
数据字典是ABAP中最基本的知识,充分使用数据字典可以给你的程序提供一些基本功能(帮助,搜索帮助,数据校验等)
这些功能可以改善程序对用户的友好度
**本文主要介绍ABAP程序关联数据字典**
希望本文对你的ABAP编程习惯能有一些积极的影响.
二
数据字典提供的基本功能
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ ABAP基础知识 数据字典(一 功能篇)
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247487054&idx=1&sn=83e60e3059415d5d470945b01df51532&chksm=cf5dd378f82a5a6e598c193c1618c858d86440447473e7cabeafe575d3b24058cfc1f95cbb6b&token=7878777&lang=zh_CN#rd)
本文介绍关联时,只涉及到三个常用基本功能
• F1帮助
• F4搜索帮助
• 数据校验
三
输入输出界面
ABAP常用的输入输出界面如下,这些界面中的字典通过和数据字典的关联来获取数据字典提供的基本功能
• 选择屏幕
• SCREEN屏幕
• ALV清单
四
选择屏幕
单个输入或复杂输入字段
一般情况下,单个输入或复杂输入字段大家都会通过参考数据字典对象定义选择屏幕,如图一.这样产生的选择屏中可以使用这个销售订单字段的F1帮助及搜索帮助(数据校验对选择屏幕无效)
复选和单选字段
对于复选或单选字段,一般都不会太注意关联数据字典对象,建议对每个程序创建一个对应的结构, 把相关的复选单选字段都创建到该结构中.
在创建复选或单选按钮时,也参照一下结构中的字段,以便能使用数据元素的文档作为详细帮助.
图一
图二
五
正常屏幕
通过四种方式创建屏幕字段 ,产生的屏幕字段对数据字典基本功能的应用如图三所示.
• 通过数据字典字段,屏幕字段关联数据字典字段(F1帮助,F4搜索帮助,校验)
• 通过参考数据字典表定义的全局变量(F1帮助,F4搜索帮助,无校验)
• 通过数据字典数据元素定义的全局变量(F1帮助,F4搜索帮助,无校验)
• 与数据字典无关(三无产品)
图三
六
ALV清单
ALV清单通过FIELDCAT 中的REF_TABLE ,REF_FIELD 字段关联数据字典.
推荐使用函数
LVC_FIELDCATALOG_MERGE
或 REUSE_ALV_FIELDCATALOG_MERGE
获取 字段清单.以便ALV中的字段和数据字典关联 如图四
如果通过通过直接赋值方式添加字段清单, 请务必填充 REF_TABLE REF_FIELD字段, 以便ALV字段与数据字典关联,
启用数据字典提供的基本功能(F1帮助,F4帮助,数据校验等)
** ( 一般情况下,建议为ALV清单创建一个结构,调用函数获取结构的字段清单,以便充分使用数据字典功能) **
图四
图五
七
进阶功能
数据字典定义表或者结构时, 可以引入其它预先定义好的结构.
_**01** _
**引用结构**
推荐把常用字段放入放到特定结构中, 定义表或结构时引用这些通用结构.如图六
图六
_**02** _
**引用结构的组名称**
引用结构时, 输入 .INCLU-_MO 加上引用的结构DEMO_DAY (包含字段 WORK )系统会自动给引入的字段附加后缀
_MO,同时可以输入一个组名称 MONDAY 如图七
这样表字段的使用更加灵活
WEEK-WORK_MO 等同于
WEEK-MONDAY-WORK 如图八
通过组名称可以更好的组织多组有相同含义并通过特定维度等区分的字段.
特定维度可以是日期(周,月,年),数字顺序(01,02,03..)或者其它可应用的维度
图七
图八
八
总结
使用数据字典提供的基本功能可以让程序更加友好,用户通过F1帮助,F4搜索帮助可以快速理解字段含义,进一步理解程序的基本功能.
数据字典提供的输入校验可以避免用户输入无效数据.
在ABAP开发中,尽量关联数据字典,可以让你的程序看起来 更友好 ,更专业.
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
**公众号 : syjf1976_abap**
**ABAP开发技巧**
**微信号 : 392077**
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论