資源描述:
《函數(shù)調(diào)用ALV方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、小總結(jié)一下函數(shù)方法調(diào)用alv的過程。其實(shí)用函數(shù)調(diào)用alv非常簡(jiǎn)單,只需要一個(gè)REUSE_ALV_GRID_DISPLAY函數(shù)即可(或者list的方式),但是如果要做的復(fù)雜的話也可以非常復(fù)雜,如我之前的加上異常,單選框,或者加上雙擊命令,加上各種事件。過于復(fù)雜的不講了,以一個(gè)平常項(xiàng)目中夠用的例子講解,還有其他需求直接可以再pack:slis中找到,或者se38中直接輸入*demo*就可以看到一堆例子。下面是使用alv的一些必備信息。1.類型池(Type-pools)如果使用函數(shù)調(diào)用ALV必須要用TYPE-POOLS:SLIS.這個(gè)類行池里包含了alv所有要
2、用到的類型,當(dāng)有哪些字段名稱忘記的時(shí)候可以到這個(gè)pool里查找相應(yīng)的字段。2.字段信息(SLIS_T_FIELDCAT_ALV)如果我們自己寫一個(gè)ALV的函數(shù)讓別人調(diào)用,有哪些參數(shù)必不可缺了?字段信息肯定必不可少,字段信息決定了ALV到底輸出哪些信息。通常有兩種方式一是手動(dòng),二是自動(dòng)。2.1手動(dòng)生成lt_fieldcatTYPEslis_t_fieldcat_alv.“定義字段表WA_FIELDCAT-TABNAME='IT_EKKO'.WA_FIELDCAT-FIELDNAME='EBELN'.WA_FIELDCAT-SELTEXT_M='PONO.'
3、.APPENDWA_FIELDCATTOI_FIELDCAT.CLEARWA_FIELDCAT.這樣就完成了一個(gè)字段的定義,不過通常都會(huì)用一個(gè)宏來完成相應(yīng)的功能。如下:DEFINEinit_key.clear&1.?&1-fieldname=&2.?&1-coltext????=&4.?&1-outputlen????=&5.?&1-no_zero??????='X'.?&1-key='X'.?????"凍結(jié)窗口append&1to&3.end-OF-DEFINITION.這樣定義多個(gè)字段就會(huì)比較方便。2.2自動(dòng)生成自動(dòng)生成字段信息必須要調(diào)用這個(gè)函數(shù):C
4、ALLFUNCTION'REUSE_ALV_FIELDCATALOG_MERGE'*EXPORTING*??I_PROGRAM_NAME??????????????=*??I_INTERNAL_TABNAME??????????=*??I_STRUCTURE_NAME????????????=*??I_CLIENT_NEVER_DISPLAY??????='X'*??I_INCLNAME??????????????????=*??I_BYPASSING_BUFFER??????????=*??I_BUFFER_ACTIVE?????????????=CH
5、ANGING???ct_fieldcat?????????????????=*EXCEPTIONS*??INCONSISTENT_INTERFACE??????=1*??PROGRAM_ERROR???????????????=2*??OTHERS??????????????????????=3通常只需要兩個(gè)參數(shù),一是changing參數(shù),即輸出的字段信息。二是紅色標(biāo)記的部分,如果是一個(gè)內(nèi)表的話就用第一個(gè),有自建表或者系統(tǒng)表的話就用第二個(gè)。二者只能填一個(gè),注意使用內(nèi)表作為參數(shù)的話,類型定義只能用like而不能用type。如果還需要增加或刪除一些字段的話只
6、需要修改這個(gè)內(nèi)表就可以了。下面是實(shí)例:*//增加選擇項(xiàng)MOVE'SELECTED'TOls_fieldcat-fieldname.MOVE'X'TOls_fieldcat-edit.MOVE'X'TOls_fieldcat-checkbox.INSERTls_fieldcatINTOct_fieldcatINDEX1.*//刪除不必要顯示的項(xiàng)DELETEct_fieldcatWHEREfieldnameEQ'INFO_TYPE_CODE'ORfieldnameEQ'INFO_NUMBER'ORfieldnameEQ'STATUS'ORfieldnameE
7、Q'GOODS_LIST_FLAG'ORfieldnameEQ'COMPANY'ORfieldnameEQ'COMPANY_NAME'ORfieldnameEQ'SALES_ORG'ORfieldnameEQ'SALES_ORG_DESC'ORfieldnameEQ'MESSAGE'.*//隱藏一些字段LOOPATct_fieldcatINTOls_fieldcatWHEREfieldnameEQ'NOTICE_NUMBER'ORfieldnameEQ'REVERSE_CODE'ORfieldnameEQ'REVERSE_NUMBER'.MOVE'X'T
8、Ols_fieldcat-no_out.MODIFYct_fieldcatFRO