王磊雷亮
(1.中国海洋石油总公司 100010 2.中国人民解放军装备学院 101416)
SAP技术TABLE CONTROL和ALV的对比分析
王磊1雷亮2
(1.中国海洋石油总公司 100010 2.中国人民解放军装备学院 101416)
ALV(ABAP LIST VIEWER)和TABLE CONTROL作为SAP提供的两种不同的展示数据的方式,各自具有不同的特点和应用场景。但在具体的选用和如何取舍方面,一直困扰着ABAP开发和功能顾问,本文力求通过通俗的语言分析其功能特点和比较它们的优缺点,希望能直观给从业人员提供一定的技术支持。
SAP 技术;ABAP;TABLE CONTROL;ALV
SAP是全球企业管理软件与技术解决方案的领导者,SAP ECC系统以其稳定性高、集成性好、功能强大和可定制化程度高等特点,受到企业界,尤其是国际大型企业的青睐,得到广泛的应用。ABAP作为其独有的编程语言,受到众多程序开发人员和SAP功能顾问的追捧,本文就其使用率高又有些相似的两种技术ALV(ABAP LIST VIEWER)和TABLE CONTROL进行浅显的对比分析。供相关从业人员和企业需求人员参考。
ALV是SAP中的一种报表展示形式,可实现标准化、简单化开发系统中的表单,给用户提供统一的表单格式。ALV本身的一些排序、合计等预设功能,使ALV报表输出具有很好的可读性和功能性。作为一种广泛应用的报表技术,ALV具有以下特点:
1.1 字段属性控制灵活
使用字段目录来控制界面中字段顺序、对齐方式、颜色等属性具有很高的灵活性。也可以按需求在界面展示时使用方法SET_FRONTEND_FIELDCATALOG进行动态设置。
1.2 界面布局控制便捷
ALV提供的标准功能可直接进行显示布局调整,不同的布局可以被保存下来,可以通过选择布局来显示保存的样式。与字段目录结合,可实现灵活便捷的界面调整。
1.3 预设功能使用方便
ALV菜单中预设的排序、过滤等功能可以直接使用,不需要再做专门开发。如果用户有特定需要,也支持在原有功能上添加新功能,也可以屏蔽不常用的预设功能。
1.4 支持事件监听和响应
当用户用鼠标点击某个单元格时,程序可以捕获这些事件。对应的控制逻辑可在用户触发这些事件时做出响应。如实现数据修改完成后对数据格式进行校验的功能。
虽然ALV得到了广泛应用,但也还存在着一些不足:
1.4.1 程序代码量大
很多功能的实现都不能通过设置属性等方式实现。在事件的控制中,要有类定义、事件注册和响应等多个部分,需要具有面向对象设计思想和继承或重写类的能力。
1.4.2 不便于交互
ALV适合报表的展示,但在数据输入方面不够便利。输入数据时不够流利,有时还需要编写相应的代码才能将输入的数据进行保存。
TABLE CONTROL是SAP应用中最重要的对象之一,业务单据的输入、基础数据的输入等都使用TABLE CONTROL控件,它对数据修改更加简单。这种方式对用户来说也更加熟悉。
TABLE CONTROL具有如下几方面特点:
2.1 数据输入方便快捷
具有屏幕控件特有的记忆输入功能,让用户在遇到大量相似的数据需要手动输入时,可以通过屏幕记忆的历史数据来进行选择,极大的提高了输入的效率和流畅性。
2.2 自动适应屏幕大小
当用户改变窗口大小时,TABLE CONTROL的大小会随窗口大小自动调整。用户可以通过拖动滚动条在小屏幕内完成操作。用户可同时打开两个操作界面,在输入数据时左右对比,进一步减小失误率。
2.3 创建方式灵活
SAP系统提供了创建TABLE CONTROL的向导。可以根据提示选择要输出的字段和按钮等。创建完成以后,还可以更改列的属性或是增删列。同时系统也提供手动创建的方式。两种方式的结合使得开发更为灵活。
2.4 字段属性设置方便
对于列的很多属性,比如参考字段等可以直接在属性列表里进行维护。想要隐藏某些字段,只需将输出字段属性取消,就能很方便的在展示结果中取消展示该字段。
2.5 错误定位迅速
在数据的校验方面,可以通过GET CURSOR FIELD和SET CURSOR FIELD方式设置光标所在位置,发生错误时直接将光标定位到出错条目所在位置,让错误信息更容易进行排查。
2.6 程序执行效率高
执行取数逻辑相同只有界面显示不同的程序,TABLE CONTROL展示方式的速度约是ALV展示方式的2.4倍。TABLE CONTROL主要是在屏幕的交互和刷新上节约了大量的时间,从而减少了用户的等待时间。
TABLE CONTROL的不足之处:
2.6.1 不便于进行事件监听
没有提供与之相对应的类,不能进行事件的监听,只能够在逻辑流中的PBO、PAI等事件块中做一定控制。在需要复杂的事件处理时显得不够方便。
2.6.2 不适合进行动态展示
在进行界面展示时要展示的字段事先已经确定,可以通过代码将不需要的字段进行隐藏,但它不能随意的增加新的字段,只能对原有字段或预留出的字段进行调整。
表1 TABLE CONTROL与ALV对比总结
TABLE CONTROL作为屏幕类的控件,在数据修改等方面具有明显的优势。同时也能很好的与其他屏幕控件进行衔接,适应能力更强。在需要输入项目较多处,较为实用。如果将这部分程序的展示界面使用TBALE CONTROL进行替换,将会极大的提高录入速度,从而提高工作效率。但TABLE CONTROL相比ALV技术也有不足,在灵活性上,ALV比TABLE CONTROL更有优势,能够对展示的结果做更多的控制,也能够更好的实现对事件的支持,也便于程序封装。在报表的展示方面,继续使用ALV技术,会达到更好的效果。
[1][韩]金圣俊,著,张钟淑,译.SAPABAP开发从入门到精通.机械工业出版社,2013.
[2]黄 佳.SAP程序设计.机械工业出版社,2005.
[3]唐俊华.工程师突击-SAPABAP实用程序开发攻略.机械工业出版社,2014.
[4]温涛.SAPABAP程序设计基础教程.大连理工大学出版社,2011.
TH878
A
1004-7344(2016)10-0276-02
2016-3-15