王磊雷亮
(1.中國海洋石油總公司 100010 2.中國人民解放軍裝備學(xué)院 101416)
SAP技術(shù)TABLE CONTROL和ALV的對(duì)比分析
王磊1雷亮2
(1.中國海洋石油總公司 100010 2.中國人民解放軍裝備學(xué)院 101416)
ALV(ABAP LIST VIEWER)和TABLE CONTROL作為SAP提供的兩種不同的展示數(shù)據(jù)的方式,各自具有不同的特點(diǎn)和應(yīng)用場(chǎng)景。但在具體的選用和如何取舍方面,一直困擾著ABAP開發(fā)和功能顧問,本文力求通過通俗的語言分析其功能特點(diǎn)和比較它們的優(yōu)缺點(diǎn),希望能直觀給從業(yè)人員提供一定的技術(shù)支持。
SAP 技術(shù);ABAP;TABLE CONTROL;ALV
SAP是全球企業(yè)管理軟件與技術(shù)解決方案的領(lǐng)導(dǎo)者,SAP ECC系統(tǒng)以其穩(wěn)定性高、集成性好、功能強(qiáng)大和可定制化程度高等特點(diǎn),受到企業(yè)界,尤其是國際大型企業(yè)的青睞,得到廣泛的應(yīng)用。ABAP作為其獨(dú)有的編程語言,受到眾多程序開發(fā)人員和SAP功能顧問的追捧,本文就其使用率高又有些相似的兩種技術(shù)ALV(ABAP LIST VIEWER)和TABLE CONTROL進(jìn)行淺顯的對(duì)比分析。供相關(guān)從業(yè)人員和企業(yè)需求人員參考。
ALV是SAP中的一種報(bào)表展示形式,可實(shí)現(xiàn)標(biāo)準(zhǔn)化、簡(jiǎn)單化開發(fā)系統(tǒng)中的表單,給用戶提供統(tǒng)一的表單格式。ALV本身的一些排序、合計(jì)等預(yù)設(shè)功能,使ALV報(bào)表輸出具有很好的可讀性和功能性。作為一種廣泛應(yīng)用的報(bào)表技術(shù),ALV具有以下特點(diǎn):
1.1 字段屬性控制靈活
使用字段目錄來控制界面中字段順序、對(duì)齊方式、顏色等屬性具有很高的靈活性。也可以按需求在界面展示時(shí)使用方法SET_FRONTEND_FIELDCATALOG進(jìn)行動(dòng)態(tài)設(shè)置。
1.2 界面布局控制便捷
ALV提供的標(biāo)準(zhǔn)功能可直接進(jìn)行顯示布局調(diào)整,不同的布局可以被保存下來,可以通過選擇布局來顯示保存的樣式。與字段目錄結(jié)合,可實(shí)現(xiàn)靈活便捷的界面調(diào)整。
1.3 預(yù)設(shè)功能使用方便
ALV菜單中預(yù)設(shè)的排序、過濾等功能可以直接使用,不需要再做專門開發(fā)。如果用戶有特定需要,也支持在原有功能上添加新功能,也可以屏蔽不常用的預(yù)設(shè)功能。
1.4 支持事件監(jiān)聽和響應(yīng)
當(dāng)用戶用鼠標(biāo)點(diǎn)擊某個(gè)單元格時(shí),程序可以捕獲這些事件。對(duì)應(yīng)的控制邏輯可在用戶觸發(fā)這些事件時(shí)做出響應(yīng)。如實(shí)現(xiàn)數(shù)據(jù)修改完成后對(duì)數(shù)據(jù)格式進(jìn)行校驗(yàn)的功能。
雖然ALV得到了廣泛應(yīng)用,但也還存在著一些不足:
1.4.1 程序代碼量大
很多功能的實(shí)現(xiàn)都不能通過設(shè)置屬性等方式實(shí)現(xiàn)。在事件的控制中,要有類定義、事件注冊(cè)和響應(yīng)等多個(gè)部分,需要具有面向?qū)ο笤O(shè)計(jì)思想和繼承或重寫類的能力。
1.4.2 不便于交互
ALV適合報(bào)表的展示,但在數(shù)據(jù)輸入方面不夠便利。輸入數(shù)據(jù)時(shí)不夠流利,有時(shí)還需要編寫相應(yīng)的代碼才能將輸入的數(shù)據(jù)進(jìn)行保存。
TABLE CONTROL是SAP應(yīng)用中最重要的對(duì)象之一,業(yè)務(wù)單據(jù)的輸入、基礎(chǔ)數(shù)據(jù)的輸入等都使用TABLE CONTROL控件,它對(duì)數(shù)據(jù)修改更加簡(jiǎn)單。這種方式對(duì)用戶來說也更加熟悉。
TABLE CONTROL具有如下幾方面特點(diǎn):
2.1 數(shù)據(jù)輸入方便快捷
具有屏幕控件特有的記憶輸入功能,讓用戶在遇到大量相似的數(shù)據(jù)需要手動(dòng)輸入時(shí),可以通過屏幕記憶的歷史數(shù)據(jù)來進(jìn)行選擇,極大的提高了輸入的效率和流暢性。
2.2 自動(dòng)適應(yīng)屏幕大小
當(dāng)用戶改變窗口大小時(shí),TABLE CONTROL的大小會(huì)隨窗口大小自動(dòng)調(diào)整。用戶可以通過拖動(dòng)滾動(dòng)條在小屏幕內(nèi)完成操作。用戶可同時(shí)打開兩個(gè)操作界面,在輸入數(shù)據(jù)時(shí)左右對(duì)比,進(jìn)一步減小失誤率。
2.3 創(chuàng)建方式靈活
SAP系統(tǒng)提供了創(chuàng)建TABLE CONTROL的向?qū)???梢愿鶕?jù)提示選擇要輸出的字段和按鈕等。創(chuàng)建完成以后,還可以更改列的屬性或是增刪列。同時(shí)系統(tǒng)也提供手動(dòng)創(chuàng)建的方式。兩種方式的結(jié)合使得開發(fā)更為靈活。
2.4 字段屬性設(shè)置方便
對(duì)于列的很多屬性,比如參考字段等可以直接在屬性列表里進(jìn)行維護(hù)。想要隱藏某些字段,只需將輸出字段屬性取消,就能很方便的在展示結(jié)果中取消展示該字段。
2.5 錯(cuò)誤定位迅速
在數(shù)據(jù)的校驗(yàn)方面,可以通過GET CURSOR FIELD和SET CURSOR FIELD方式設(shè)置光標(biāo)所在位置,發(fā)生錯(cuò)誤時(shí)直接將光標(biāo)定位到出錯(cuò)條目所在位置,讓錯(cuò)誤信息更容易進(jìn)行排查。
2.6 程序執(zhí)行效率高
執(zhí)行取數(shù)邏輯相同只有界面顯示不同的程序,TABLE CONTROL展示方式的速度約是ALV展示方式的2.4倍。TABLE CONTROL主要是在屏幕的交互和刷新上節(jié)約了大量的時(shí)間,從而減少了用戶的等待時(shí)間。
TABLE CONTROL的不足之處:
2.6.1 不便于進(jìn)行事件監(jiān)聽
沒有提供與之相對(duì)應(yīng)的類,不能進(jìn)行事件的監(jiān)聽,只能夠在邏輯流中的PBO、PAI等事件塊中做一定控制。在需要復(fù)雜的事件處理時(shí)顯得不夠方便。
2.6.2 不適合進(jìn)行動(dòng)態(tài)展示
在進(jìn)行界面展示時(shí)要展示的字段事先已經(jīng)確定,可以通過代碼將不需要的字段進(jìn)行隱藏,但它不能隨意的增加新的字段,只能對(duì)原有字段或預(yù)留出的字段進(jìn)行調(diào)整。
表1 TABLE CONTROL與ALV對(duì)比總結(jié)
TABLE CONTROL作為屏幕類的控件,在數(shù)據(jù)修改等方面具有明顯的優(yōu)勢(shì)。同時(shí)也能很好的與其他屏幕控件進(jìn)行銜接,適應(yīng)能力更強(qiáng)。在需要輸入項(xiàng)目較多處,較為實(shí)用。如果將這部分程序的展示界面使用TBALE CONTROL進(jìn)行替換,將會(huì)極大的提高錄入速度,從而提高工作效率。但TABLE CONTROL相比ALV技術(shù)也有不足,在靈活性上,ALV比TABLE CONTROL更有優(yōu)勢(shì),能夠?qū)φ故镜慕Y(jié)果做更多的控制,也能夠更好的實(shí)現(xiàn)對(duì)事件的支持,也便于程序封裝。在報(bào)表的展示方面,繼續(xù)使用ALV技術(shù),會(huì)達(dá)到更好的效果。
[1][韓]金圣俊,著,張鐘淑,譯.SAPABAP開發(fā)從入門到精通.機(jī)械工業(yè)出版社,2013.
[2]黃 佳.SAP程序設(shè)計(jì).機(jī)械工業(yè)出版社,2005.
[3]唐俊華.工程師突擊-SAPABAP實(shí)用程序開發(fā)攻略.機(jī)械工業(yè)出版社,2014.
[4]溫濤.SAPABAP程序設(shè)計(jì)基礎(chǔ)教程.大連理工大學(xué)出版社,2011.
TH878
A
1004-7344(2016)10-0276-02
2016-3-15