SAP ALV報(bào)表開發(fā)指南_第1頁(yè)
SAP ALV報(bào)表開發(fā)指南_第2頁(yè)
SAP ALV報(bào)表開發(fā)指南_第3頁(yè)
SAP ALV報(bào)表開發(fā)指南_第4頁(yè)
SAP ALV報(bào)表開發(fā)指南_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 SAP ALV報(bào)表開發(fā)指南目 錄 TOC o 1-2 h z HYPERLINK l _Toc38914366 1用途 PAGEREF _Toc38914366 h 3 HYPERLINK l _Toc38914367 2前提 PAGEREF _Toc38914367 h 3 HYPERLINK l _Toc38914368 3GRID風(fēng)格報(bào)表相關(guān)函數(shù) PAGEREF _Toc38914368 h 3 HYPERLINK l _Toc38914369 3.1REUSE_ALV_GRID_DISPLAY函數(shù) PAGEREF _Toc38914369 h 4 HYPERLINK l _Toc38

2、914370 3.2REUSE_ALV_COMMENTARY_WRITE函數(shù) PAGEREF _Toc38914370 h 9 HYPERLINK l _Toc38914371 3.3REUSE_ALV_EVENTS_GET函數(shù) PAGEREF _Toc38914371 h 10 HYPERLINK l _Toc38914372 3.4REUSE_ALV_FIELDCATALOG_MERGE函數(shù) PAGEREF _Toc38914372 h 10 HYPERLINK l _Toc38914373 3.5開發(fā)實(shí)例 PAGEREF _Toc38914373 h 11 HYPERLINK l _To

3、c38914374 4LIST風(fēng)格報(bào)表相關(guān)函數(shù) PAGEREF _Toc38914374 h 11 HYPERLINK l _Toc38914375 4.1REUSE_ALV_LIST_DISPLAY函數(shù) PAGEREF _Toc38914375 h 12 HYPERLINK l _Toc38914376 4.2REUSE_ALV_HIERSEQ_LIST_DISPLAY函數(shù) PAGEREF _Toc38914376 h 12 HYPERLINK l _Toc38914377 4.3布局管理函數(shù) PAGEREF _Toc38914377 h 12 HYPERLINK l _Toc3891437

4、8 4.4開發(fā)實(shí)例 PAGEREF _Toc38914378 h 12ALV報(bào)表開發(fā)用途ALV Report 是SAP中一種常見的報(bào)表展現(xiàn)形式,它可以標(biāo)準(zhǔn)化、簡(jiǎn)單化R/3系統(tǒng)中的表單,可以為用戶提供一個(gè)統(tǒng)一的表單格式以及用戶接口。ALV既能顯示簡(jiǎn)單表單(SIMPLE LIST),又可以顯示有序表單(SEQUENTIAL LIST)。前提編寫一個(gè)ALV程序包括以下基本流程。 第一步:定義將要用到的表,即TABLES定義部分,然后定義TYPE-POOLS:SLIS;第二步:定義“第一步”中提到的這些數(shù)據(jù)類型或者內(nèi)表的實(shí)體對(duì)象;第三部:定義需要用的變量以及常數(shù);第四部:定義選擇屏幕;第五步:定義IN

5、ITIALIZATION部分,及初始化值; 本部分往往指定w_repid的值,w_repid = sy-repid,代表調(diào)用程序?yàn)楫?dāng)前程序 第六步:START-OF-SELECTION部分,主要包括如下幾個(gè)組成部分 1. 獲取所需數(shù)據(jù); 2. 設(shè)置ALV表單標(biāo)題區(qū)域的值; 3. 設(shè)置顯示列表的抬頭名稱(第一行); 4. 設(shè)置輸出格式; 5. 顯示上述封裝好的數(shù)據(jù)。ALV報(bào)表需要展現(xiàn)的數(shù)據(jù)在抓取封裝完成以后,需要調(diào)用FUNCTION輸出數(shù)據(jù),有兩個(gè)FUNCTION MODULE分別是REUSE_ALV_GRID_DISPLAY、REUSE_ALV_LIST_DISPLAY,上述兩個(gè)函數(shù)分別以GR

6、ID風(fēng)格和LIST風(fēng)格將數(shù)據(jù)展現(xiàn)給前臺(tái)用戶。本文將介紹ALV中經(jīng)常使用的如下兩大類函數(shù):1. 以GRID風(fēng)格展示的報(bào)表相關(guān)函數(shù);2. 以 LIST 風(fēng)格展示的報(bào)表相關(guān)函數(shù)。GRID風(fēng)格報(bào)表相關(guān)函數(shù)GRID風(fēng)格的報(bào)表相關(guān)的函數(shù)主要包括:1. 顯示報(bào)表數(shù)據(jù)的主函數(shù)REUSE_ALV_GRID_DISPLAY;2. 顯示報(bào)表標(biāo)題的子函數(shù)REUSE_ALV_COMMENTARY_WRITE;3. 事件回寫函數(shù)REUSE_ALV_EVENTS_GET;4. 報(bào)表抬頭和屬性設(shè)置子函數(shù)REUSE_ALV_FIELDCATALOG_MERGE。REUSE_ALV_GRID_DISPLAY函數(shù)該函數(shù)主要包含如下

7、參數(shù),如表3-1所示。參數(shù)名稱默認(rèn)值用法I_INTERFACE_CHECKSPACE接口一致性檢查I_BYPASSING_BUFFERSPACE是否使用BUFFERI_BUFFER_ACTIVESPACE如果每次顯示ALV都是相同的字段目錄,則該字段目錄會(huì)被放到一個(gè)特殊的緩存里,加快ALV的顯示速度。I_CALLBACK_PROGRAMSPACE調(diào)用程序名稱I_CALLBACK_PF_STATUS_SETSPACE設(shè)置屏幕菜單I_CALLBACK_USER_COMMANDSPACE實(shí)現(xiàn)對(duì)應(yīng)菜單項(xiàng)及相應(yīng)事件功能I_CALLBACK_TOP_OF_PAGESPACE設(shè)置ALV表頭I_CALLBAC

8、K_HTML_TOP_OF_PAGESPACE加入HTML格式的表頭I_CALLBACK_HTML_END_OF_LISTSPACE加入HTML格式的表尾I_STRUCTURE_NAME為輸出表數(shù)據(jù)結(jié)構(gòu)的命名,指定了這個(gè)參數(shù),域目錄將會(huì)自動(dòng)生成I_BACKGROUND_IDSPACE設(shè)置報(bào)表背景I_GRID_TITLE設(shè)置抬頭信息I_GRID_SETTINGS打印表頭設(shè)置IS_LAYOUT設(shè)定輸出樣式IT_FIELDCAT設(shè)定顯示的項(xiàng)目名稱及輸出設(shè)定IT_SPECIAL_GROUPS如果字段目錄中一些字段通過(guò)SP_GROUP被分組在一起.必須為這些組傳遞一個(gè)組的文本內(nèi)表IT_SORT排序設(shè)置I

9、T_FILTER過(guò)濾設(shè)置I_DEFAULTX用戶是否可以定義默認(rèn)的布局:X 可以定義默認(rèn)布局,SPACE 不可以定義默認(rèn)布局I_SAVESPACE保存表格布局:X 只能保存全局變式U 只能保存特定變式A 都可以保存SPACE 不能保存變式IS_VARIANT管理表格布局IT_EVENTS設(shè)置抬頭和結(jié)尾IT_EVENT_EXIT設(shè)置回調(diào)的方法的執(zhí)行行為,表明用戶所寫的代碼是在執(zhí)行標(biāo)準(zhǔn)執(zhí)行之前還是之后IS_PRINT從后端開始打印的參數(shù)I_SCREEN_START_COLUMN0對(duì)話格式展現(xiàn)的開始列I_SCREEN_START_LINE0對(duì)話格式展現(xiàn)的開始行I_SCREEN_END_COLUMN0

10、對(duì)話格式展現(xiàn)的結(jié)束列I_SCREEN_END_LINE0對(duì)話格式展現(xiàn)的結(jié)束行I_HTML_HEIGHT_TOP0HTML表頭高度I_HTML_HEIGHT_END0HTML表尾高度IT_ALV_GRAPHICS是否可以在圖表中顯示ALVIT_HYPERLINK使用超鏈接T_OUTTAB需要展現(xiàn)的表表3-1下面針對(duì)常用的輸入?yún)?shù)進(jìn)行詳細(xì)介紹:I_CALLBACK_PROGRAM:定義調(diào)用程序名稱,一般為當(dāng)前程序sy-repid。I_CALLBACK_PF_STATUS_SET:定義屏幕菜單,此參數(shù)允許報(bào)表展現(xiàn)用戶自定義的屏幕菜單。如設(shè)定i_callback_pf_status_set=PF_ST

11、ATUS_SET定義如下FORM,程序自動(dòng)調(diào)用PF01菜單。FORMPF_STATUS_SETUSINGrt_extabTYPEslis_t_extab.setpf-statusPF01.ENDFORM.I_CALLBACK_USER_COMMAND:此參數(shù)響應(yīng)菜單項(xiàng)及相應(yīng)事件。如I_CALLBACK_USER_COMMAND =USER_COMMAND點(diǎn)擊相應(yīng)的按鈕或雙擊等操作觸發(fā)對(duì)應(yīng)定義的事件。FORMuser_commandusingi_ucommlikesy-ucommis_selfieldtypeslis_selfield.casei_ucomm.when&IC1.messagei8

12、88(sabapdocu)withDOUBLECLICKED!.whenCREATE.messagei888(sabapdocu)withCREATE.CALLSCREEN1001.endcase.ENDFORM.I_CALLBACK_TOP_OF_PAGE:設(shè)置ALV表頭信息。如I_CALLBACK_TOP_OF_PAGE=TOP-OFTOP-OF為子程序,詳細(xì)內(nèi)容具體請(qǐng)參考 HYPERLINK l _REUSE_ALV_COMMENTARY_WRITE函數(shù) 3.2節(jié)。此參數(shù)設(shè)置的表頭格式,如圖3-1所示。圖3-1IT_FIELDCAT:設(shè)定顯示的項(xiàng)目名稱。即設(shè)定報(bào)表抬頭內(nèi)容I_SAVE:設(shè)

13、定是否可以保存報(bào)表布局(具體參數(shù)值見上表)。如I_SAVE=A 此設(shè)置允許保存所有布局,如圖3-2所示。圖3-2IS_LAYOUT:設(shè)定報(bào)表輸出樣式。該參數(shù)確定字段寬度、行顏色、是否顯示分隔線等等屬性,通常定義為slis_layout_alv類型組。如:gs_layoutTYPEslis_layout_alv.is_layout=gs_layout設(shè)置Grid的字段列寬度自動(dòng)適應(yīng)GS_LAYOUT-COLWIDTH_OPTIMIZE = X設(shè)置Grid的行顏色變換顯示GS_LAYOUT-ZEBRA = X設(shè)置彈出窗口的標(biāo)題欄GS_LAYOUT-DETAIL_TITLEBAR = 詳細(xì)內(nèi)容設(shè)置G

14、rid的多行選擇列,其中BOX必須為內(nèi)表的一列,為一個(gè)字符長(zhǎng)度GS_LAYOUT-BOX_FIELDNAME= BOX設(shè)置Grid是否顯示行分割線GS_LAYOUT-NO_VLINE= X設(shè)置Grid的合計(jì)行顯示在明細(xì)的上面GS_LAYOUT-TOTALS_BEFORE_ITEMS= X設(shè)置Grid不顯示彈出明細(xì)顯示窗口GS_LAYOUT-DETAIL_POPUP= X設(shè)置Grid顯示LED列, LIGHT為內(nèi)表字段,,一個(gè)字符長(zhǎng),,值范圍為1-3GS_LAYOUT-EXCP_FNAME= LIGHT設(shè)置Grid的沒(méi)有標(biāo)題GS_LAYOUT-NO_COLHEAD = X設(shè)置Grid是否顯示列分

15、隔線GS_LAYOUT-NO_HLINE = X在明細(xì)前顯示合計(jì)GS_LAYOUT- TOTALS_BEFORE_ITEMS = X只顯示合計(jì)GS_LAYOUT-TOTALS_ONLY = X合計(jì)第一列文本GS_LAYOUT-TOTALS_TEXT = X設(shè)置Grid是否顯示列分隔線GS_LAYOUT-NO_HLINE = X輸出報(bào)表樣式,如圖3-3所示。圖3-3各參數(shù)設(shè)置方法代碼程序參見 HYPERLINK l _開發(fā)實(shí)例 3.5節(jié)開發(fā)實(shí)例,運(yùn)行結(jié)果,如圖3-4所示。圖3-4REUSE_ALV_COMMENTARY_WRITE函數(shù)此函數(shù)設(shè)置輸出報(bào)表的抬頭和結(jié)尾的標(biāo)題,通過(guò)參數(shù)i_end_of

16、_list_grid區(qū)分抬頭和結(jié)尾。獲得結(jié)果作為傳入?yún)?shù)被主函數(shù)REUSE_ALV_GRID_DISPLAY的導(dǎo)入?yún)?shù)I_CALLBACK_TOP_OF_PAGE調(diào)用。I_CALLBACK_TOP_OF_PAGE=TOP-OFFORMTOP-OF.DATA:t_headerTYPEslis_t_listheader,wa_headerTYPEslis_listheader,t_lineLIKEwa_header-info,ld_lineTYPEi,ld_lineseTYPEc.wa_header-typ=S.標(biāo)題字體大小.wa_header-info=the top of alvprogram

17、.alv頁(yè)上方的標(biāo)題.APPENDwa_headerTOt_header.CALLFUNCTIONREUSE_ALV_COMMENTARY_WRITE輸出表標(biāo)題.EXPORTINGit_list_commentary=t_header.it_logo =ENJOYSAP_LOGO.設(shè)置調(diào)用的圖片 it_end_of_list_grid=.ENDFORM.REUSE_ALV_EVENTS_GET函數(shù)slis_t_event是event的整體可看作event的集合,用來(lái)設(shè)置表頭。slis_alv_event是某個(gè)event, 需要將slis_alv_event append到slis_t_even

18、t,它可以包含圖片和listheader等,也就是說(shuō)listheader等是靠event來(lái)顯示的。slis_t_listheader是listheader的集合,slis_listheader是某個(gè)listheader。將slis_listheader賦值后append到slis_t_listheader中。它是內(nèi)表的表頭。slis_listheader 包含:typ (H = header,S = Selection,A = action. )key :是和s對(duì)應(yīng)的,是那個(gè)的標(biāo)題, info:可以是變量和賦值的。跟在key的標(biāo)題后面,是個(gè)表達(dá)值。函數(shù):reuse_alv_events_get

19、:將各個(gè)事件的名字寫到slis_t_event的name中。這樣,可以在后面,根據(jù)名字的不同,對(duì)不同的event付不同的form,來(lái)實(shí)現(xiàn)不同功能。函數(shù)生成參數(shù)i_events被主函數(shù)REUSE_ALV_GRID_DISPLAY的導(dǎo)入?yún)?shù)it_events調(diào)用。it_events=i_eventsREUSE_ALV_FIELDCATALOG_MERGE函數(shù)1. 構(gòu)建field catalog表-輸出報(bào)表的表頭;2. 設(shè)置Field catalog表中各欄位的相關(guān)屬性,一般需修改顯示名稱,顯示長(zhǎng)度,鎖定,是否加總,是否顯示等,如圖3-5所示。圖3-5子函數(shù)的導(dǎo)出參數(shù)i_fieldcat_alv被主

20、函數(shù)REUSE_ALV_GRID_DISPLAY的導(dǎo)入?yún)?shù)it_fieldcat調(diào)用。it_fieldcat = i_fieldcat_alv。開發(fā)實(shí)例LIST風(fēng)格報(bào)表相關(guān)函數(shù)LIST風(fēng)格的報(bào)表相關(guān)的函數(shù)主要包括:1. 顯示簡(jiǎn)單LIST風(fēng)格報(bào)表數(shù)據(jù)的主函數(shù)REUSE_ALV_LIST_DISPLAY;2. 顯示報(bào)表標(biāo)題的子函數(shù)REUSE_ALV_COMMENTARY_WRITE;3. 事件回寫函數(shù)REUSE_ALV_EVENTS_GET;4. 報(bào)表抬頭和屬性設(shè)置子函數(shù)REUSE_ALV_FIELDCATALOG_MERGE;5. 讀取默認(rèn)的布局REUSE_ALV_VARIANT_DEFAULT

21、_GET;6. 檢測(cè)指定布局是否存在REUSE_ALV_VARIANT_EXISTENCE;7. 顯示布局格式選擇對(duì)話窗REUSE_ALV_VARIANT_F4;8. 顯示層次有序報(bào)表數(shù)據(jù)的主函數(shù)REUSE_ALV_HIERSEQ_LIST_DISPLAY。其中子函數(shù)REUSE_ALV_COMMENTARY_WRITE、REUSE_ALV_EVENTS_GET和REUSE_ALV_FIELDCATALOG_MERGE與前述相同,本節(jié)不在介紹??蓞⒖记懊鎸?duì)應(yīng)的章節(jié)。REUSE_ALV_LIST_DISPLAY函數(shù)REUSE_ALV_LIST_DISPLAY與函數(shù)REUSE_ALV_GRID_DI

22、SPLAY參數(shù)設(shè)置類似,此處不再詳細(xì)介紹。具體用法可結(jié)合 HYPERLINK l _開發(fā)實(shí)例_1 4.4節(jié)的開發(fā)實(shí)例并參考 HYPERLINK l _REUSE_ALV_GRID_DISPLAY函數(shù) 3.1節(jié)的函數(shù)REUSE_ALV_GRID_DISPLAY。REUSE_ALV_HIERSEQ_LIST_DISPLAY函數(shù)REUSE_ALV_HIERSEQ_LIST_DISPLAY與函數(shù)REUSE_ALV_LIST_DISPLAY參數(shù)設(shè)置類似,具體用法結(jié)合 HYPERLINK l _開發(fā)實(shí)例_1 4.4節(jié)的開發(fā)實(shí)例并參考 HYPERLINK l _REUSE_ALV_GRID_DISPLAY函數(shù) 3.1節(jié)的函數(shù)REUSE_ALV_GRID_DISPLAY。布局管理函數(shù)為了進(jìn)一步管理布局,則需要在REUSE_ALV_GRID_DISPLAY、REUSE_ALV _LIST_DISPLA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論