版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ALV 学习资料SAP提供一组 ALV(ABAP LIST VIEWER)功能模块,这些功能模块可以修饰报表输出。这些设置的 ALV功能可以提高报表的可读性。 首先呢,我先跟大家说一下 ALV是什么东西 ALV=SAP LIST VIEWER,SAP列表显示器。就目前 ALV技术主要分 ALV GRID 和 ALV TREE。先跟大家说一下目前本人用的比较多的 ALV GRID技术, ALVGRID 的效果见图()。图()第一步在使用 ALV时,需要定义一个 SAP标准 TYPE-POOLS,具体语法为:TYPE-POOLS: SLIS.然后需要定义一个 LAYOUT式样,和一个 FIELDC
2、AT字段格式,具体语法为 :DATA: LIT_FCATTYPE SLIS_T_FIELDCAT_ALV,LT_LAYOTYPE SLIS_LAYOUT_ALV,GIT_EVENTSTYPE SLIS_T_EVENT,GIT_LISTHEADER TYPE SLIS_T_LISTHEADER.,LIT_EXTABTYPE SLIS_T_EXTAB.第二步(可选)可以为需要为最初的目录显示选择参数。在这里需要使用函数 'REUSE_ALV_VARIANT_DEFAULTGETSample code:CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_
3、GET'EXPORTINGi_save= variant save condition ( A=all, U = user-specific )CHANGINGcs_variant= internaltablecontainingthe program name (and the defaultvariant-optional )EXCEPTIONSnot_found = 2.使用者也可以使用现有的变量中选择,使用函数REUSE_ALV_VARIANT。F4第三步调用函数 REUSE_ALV_EVENTS_GET达到分屏显示的效果Sample code:CALL FUNCTION
4、39;REUSE_ALV_EVENTS_GET'EXPORTINGI_LIST_TYPE= 0IMPORTINGET_EVENTS= GIT_EVENTSEXCEPTIONSLIST_TYPE_WRONG= 1OTHERS= 2.具体效果见图()图也可以为 GIT_EVENTS添加许多参数也可以插入图片,需要使用函数REUSE_ALV_COMMENTARY_WRITESample code:CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'EXPORTINGIT_LIST_COMMENTARYI_LOGO= '=GIT_LIST
5、HEADERENJOYSAP_LOGO'.文本抬头图片L_LISTHEADER-TYP = 'H'.L_LISTHEADER-INFO = 'TEST ALV'.文本抬头内容APPEND L_LISTHEADER TO GIT_LISTHEADER.具体效果见图()图()第四步调用函数 REUSE_ALV_FIELDCATALOG_MERGE获得标准字段Sample code:CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'EXPORTINGI_PROGRAM_NAME= SY-REPIDI_STR
6、UCTURE_NAME='MSEG'表名CHANGINGCT_FIELDCAT=LIT_FCAT字段格式EXCEPTIONSINCONSISTENT_INTERFACE= 1PROGRAM_ERROR= 2OTHERS= 3CLEAR PS_FCAT.PS_FCAT-FIELDNAME = 'MATNR.表中字段名PS_FCAT-REF_TABNAME =MSEG''.表名PS_FCAT-KEY = ' X'水平移动时固定该列PS_FCAT-COL_POS ='1 '.列的位数APPEND PS_FCAT TO LIT_F
7、CAT.具体效果见图()图()在这里我们也可以使用自定义字段Sample code:PS_FCAT-FIELDNAME = 'TEXT'."字段名,一定要大写PS_FCAT-INTTYPE = ' P'.字段类型PS_FCAT-OUTPUTLEN =20 .输出长度PS_FCAT-COL_POS = ' 7'.列的位数PS_FCAT-SELTEXT_L = 'ADD BY Jacky_L '.列的抬头文本PS_FCAT-SELTEXT_M = 'ADD BY Jacky_M'.列的抬头文本PS_FCAT-
8、SELTEXT_S = 'ADD BY Jacky_S'.列的抬头文本PS_FCAT-DDICTXT = ' M'.选择 M抬头PS_FCAT-EDIT = 'X'.该列可编辑APPEND PS_FCAT TO LIT_FCAT.具体效果见图()图()在这里我们也可以自己设定输出的格式Sample code:CLEAR PS_FCAT.PS_FCAT-FIELDNAME = 'BWART'.字段名,一定要大写PS_FCAT-REF_TABNAME = ' MSEG'表名 .PS_FCAT-OUTPUTLEN = 2
9、0.字段输出长度PS_FCAT-JUST = 'C'.字段输出居中PS_FCAT-COL_POS = ' 9' .列的位置PS_FCAT-EMPHASIZE = ' X'."颜色,也可以是 CXYZ如'C501'.PS_FCAT-HOTSPOT = ' X'.激活热点APPEND PS_FCAT TO LIT_FCAT.具体效果见图()图()还可以把输出的字段变成图标:首先呢,在数据取入内表之后,循环这个内表,把要改变的那个字段进行操作Sample code:LOOP AT LIT_OUTTAB.LIT_
10、OUTTAB-WERKS = '06'.图标的名字MODIFY LIT_OUTTAB.ENDLOOP.然后在定义字段格式的时候PS_FCAT-FIELDNAME = 'WERKS'.PS_FCAT-REF_TABNAME = 'MSEG'.PS_FCAT-COL_POS = '10'.PS_FCAT-ICON = 'X'.激活图标APPEND PS_FCAT TO LIT_FCAT.具体效果见图()图()第五步当你把字段格式都设定完了之后, 那么接下来你就需要设定 LAYOUT输出的格式了。在 LAYOUT中有几个
11、参数是比较重要和比较常用到的:LAYOUT-COLWIDTH_OPTIMIZE:当你把这个参数的值设为 X时, ALV中的字段就会自动缩近,也就是说当你把一个字段设为 100位长时,而你输入的那个值只有 10位长,这个参数就会把字段的长度自动缩进为 10位长:Sample code:LT_LAYO-COLWIDTH_OPTIMIZE = X''.自动缩进效果见图()。图()LAYOUT-ZEBRA:当你把这个参数的值设为X时, ALV显示时会隔行颜色相同,Sample code:LT_LAYO-COLWIDTH_OPTIMIZE = X' .自动缩进效果见图()。图()
12、LAYOUT-F2CODE:当你把这个参数设为 &ETA时,你双击字段时会触发 FUNCTION CODESample code:LT_LAYO-F2CODE = '&ETA'双击触发效果见图()。图()LAYOUT-EDIT:当你把这个参数的值设定为 X之后,就表示输出的时候 ALV所有的列都可以修改,Sample code:LT_LAYO-EDIT = ' X'所有列都可以修改效果见图()。图()第六步当你把字段格式和 LAYOUT格式都设置的差不多了, 那么接下来就需要把你要显示的字段和内容取入你的内表,这个我就不多说了,每个人都每个人的需
13、求。第七步那么在你做好以上那 6个步骤之后,就可以把 ALV显示出来了,这里需要调用函数 REUSE_ALV_GRID_DISPLAYSample code:CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_CALLBACK_PROGRAM= L_REPID返回程序IS_LAYOUT=LT_LAYO输出格式IT_FIELDCAT=LIT_FCAT字段输出格式IT_EVENTS=GIT_EVENTS分屏显示I_GRID_TITLE=' 物料凭证 'ALV抬头I_CALLBACK_USER_COMMAND = '
14、;FRM_UCOMM'TABLEST_OUTTAB=LIT_OUTTAB输出的内表EXCEPTIONSPROGRAM_ERROR= 1OTHERS= 2.例子程序:*&-*& Report Z_TEST_ALV_ZJY*&*&-*&*&*&-*REPORT Z_TEST_ALV_ZJY TABLES: MSEG.TYPE-POOLS: SLIS.DATA: LIT_FCATLT_LAYOTYPE SLIS_T_FIELDCAT_ALV,TYPE SLIS_LAYOUT_ALV.DATA BEGIN OF LIT_OUTTAB OC
15、CURS 0.INCLUDE STRUCTURE MSEG.DATA:TEXTTYPE P DECIMALS 2,ROW_COLOR(4),END OF LIT_OUTTAB.DATA: GIT_EVENTSTYPE SLIS_T_EVENT,",RUNTIME"ERRORGIT_LISTHEADER TYPE SLIS_T_LISTHEADER.",RUNTIME"ERRORDATA LIT_EXTABTYPE SLIS_T_EXTAB.*&-* Start of Selection*&-*&-*&Form FRM_FL
16、DCAT*&-*text*-*FORM FRM_FLDCAT .DATA LS_FCAT TYPE SLIS_FIELDCAT_ALV.*CLEAR LIT_FCAT.PERFORM FRM_GET_ALL_FIELD USING LS_FCAT.* REFPERFORM FRM_REF_FIELDUSING LS_FCAT.*PERFORM FRM_REDEFINE_FIELD USING LS_FCAT.* PERFORM FRM_SUM_FIELDUSING LS_FCAT.* HOTSPOTPERFORM FRM_COLOR_HOTSPOT USING LS_FCAT.*PER
17、FORM FRM_FORMAT_FIELDUSING LS_FCAT.ENDFORM." FRM_FLDCAT*&-*&Form FRM_ADD_DATA*&-*text*-*SELECT * UP TO 10 ROWSINTO CORRESPONDING FIELDS OF TABLE LIT_OUTTAB FROM MSEG.* ICONENDLOOP.ENDFORM." FRM_ADD_DATA*&-*&Form FRM_LAYOUT*&-*text*-*FORM FRM_LAYOUT .LT_LAYO-COLWIDTH
18、_OPTIMIZE = 'X'.LT_LAYO-ZEBRA = 'X'."*LT_LAYO-EDIT = 'X'. "ALV,*"LT_LAYO-INFO_FIELDNAME = 'ROW_COLOR'."OUTTABLT_LAYO-F2CODE = '&ETA'."FUNCTION CODE* LT_LAYO-TOTALS_ONLY = 'X'.* LT_LAYO-DETAIL_POPUP = 'X'.ENDFORM.&qu
19、ot; FRM_LAYOUT*&-*&Form FRM_OUTPUT*&-*text*-*FORM FRM_OUTPUT .DATA L_REPID LIKE SY-REPID VALUE SY-REPID.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_CALLBACK_PROGRAM= L_REPID"SAPSY-REPIDIS_LAYOUT= LT_LAYOIT_FIELDCAT= LIT_FCATIT_EVENTS= GIT_EVENTSI_SAVE= 'X'I_GRID
20、_TITLE= ''I_CALLBACK_USER_COMMAND = 'FRM_UCOMM'IT_EXCLUDING= LIT_EXTAB""SHIFT+F3""SAPALV STATUS"SAPLSALV*I_STRUCTURE_NAME= 'MSEG'"MSEGTABLEST_OUTTAB= LIT_OUTTABEXCEPTIONSPROGRAM_ERROR= 1OTHERS= 2.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY
21、-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ENDFORM." FRM_OUTPUT*&-*&Form FRM_GET_ALL_FIELD*&-*text*-* -> p1text*<- p2text*-*FORM FRM_GET_ALL_FIELD USING PS_FCAT TYPE SLIS_FIELDCAT_ALV.CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'EXPORTINGI_PRO
22、GRAM_NAME= SY-REPID*I_INTERNAL_TABNAME=I_STRUCTURE_NAME= 'MSEG'*I_CLIENT_NEVER_DISPLAY= 'X'*I_INCLNAME=*I_BYPASSING_BUFFER=* I_BUFFER_ACTIVE=CHANGINGCT_FIELDCAT= LIT_FCATEXCEPTIONSINCONSISTENT_INTERFACE= 1PROGRAM_ERROR= 2OTHERS= 3.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MS
23、GTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.LOOP AT LIT_FCAT INTO PS_FCAT.IF SY-TABIX > 4.DELETE LIT_FCAT.ENDIF.ENDLOOP.ENDFORM." FRM_GET_ALL_FIELD*&-*&Form FRM_REF_FIELD*&-*text*-*FORM FRM_REF_FIELD USING PS_FCAT TYPE SLIS_FIELDCAT_ALV.CLEAR PS_FCAT.PS_FCA
24、T-FIELDNAME = 'MATNR'.PS_FCAT-REF_TABNAME = 'MSEG'.PS_FCAT-COL_POS = '1'.PS_FCAT-KEY = 'X'."APPEND PS_FCAT TO LIT_FCAT.ENDFORM." FRM_REF_FIELD*&-*&Form FRM_REDEFINE_FIELD*&-*text*-*FORM FRM_REDEFINE_FIELD USING PS_FCAT TYPE SLIS_FIELDCAT_ALV.*CLE
25、AR PS_FCAT.PS_FCAT-FIELDNAME = 'TEXT'."PS_FCAT-INTTYPE= 'P'."PS_FCAT-DATATYPE = 'P'.PS_FCAT-OUTPUTLEN = 20.PS_FCAT-COL_POS= '7'.* LIT_FCAT-CHECKBOX = 'X'.PS_FCAT-DDICTXT= 'M'."SELTEXT_SPS_FCAT-EDIT= 'X'."APPEND PS_FCAT TO LI
26、T_FCAT.ENDFORM." FRM_REDEFINE_FIELD*&-*&Form FRM_SUM_FIELD*&-*text*-*FORM FRM_SUM_FIELD USING PS_FCAT TYPE SLIS_FIELDCAT_ALV.*CLEAR PS_FCAT.PS_FCAT-DO_SUM = 'X'."I,F,PAPPEND PS_FCAT TO LIT_FCAT.ENDFORM." FRM_SUM_FIELD*&-*&Form FRM_COLOR*&-*text*-* ->
27、 p1text* <- p2text*-*FORM FRM_COLOR_HOTSPOT USING PS_FCAT TYPE SLIS_FIELDCAT_ALV.CLEAR PS_FCAT.PS_FCAT-FIELDNAME = 'BWART'.PS_FCAT-REF_TABNAME = 'MSEG'.PS_FCAT-OUTPUTLEN = 20.PS_FCAT-JUST = 'C'.PS_FCAT-COL_POS = '9'.PS_FCAT-EMPHASIZE = 'X'."CXYZ'C5
28、01'.PS_FCAT-HOTSPOT = 'X'.APPEND PS_FCAT TO LIT_FCAT.ENDFORM." FRM_COLOR*&-*&Form FRM_FORMAT_FIELD*&-*text*-*->p1text*<-p2text*-*FORM FRM_FORMAT_FIELD USING PS_FCAT TYPE SLIS_FIELDCAT_ALV.DATA LF_EXP TYPE F.LF_EXP = 111.CLEAR PS_FCAT.PS_FCAT-FIELDNAME = 'WERKS&
29、#39;.PS_FCAT-REF_TABNAME = 'MSEG'.PS_FCAT-COL_POS = '10'.PS_FCAT-ICON = 'X'.APPEND PS_FCAT TO LIT_FCAT.ENDFORM." FRM_FORMAT_FIELD*&-*&Form FRM_GET_EVENTS*&-*text*-*FORM FRM_GET_EVENTS .DATA FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'FRM_TOP_OF_PAGE
30、9;.DATA L_EVENTS TYPE SLIS_ALV_EVENT.CALL FUNCTION 'REUSE_ALV_EVENTS_GET'EXPORTINGI_LIST_TYPE= 0IMPORTINGET_EVENTS= GIT_EVENTSEXCEPTIONSOTHERS= 2.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.*(NAME)"TOP_OF_PAGE&q
31、uot;FORM(FORM)*"FRM_TOP_OF_PAGE,PERFORM FRM_TOP_OF_PAGE.CLEAR L_EVENTS.READ TABLE GIT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO L_EVENTS.IF SY-SUBRC = 0.MOVE FORMNAME_TOP_OF_PAGE TO L_EVENTS-FORM.MODIFY GIT_EVENTS FROM L_EVENTS INDEX SY-TABIX.ELSE.L_EVENTS-FORM = FORMNAME_TOP_OF_PAGE.L_EV
32、ENTS-NAME = FORMNAME_TOP_OF_PAGE.APPEND L_EVENTS TO GIT_EVENTS.ENDIF.ENDFORM." FRM_GET_EVENTS*&-*& Form FRM_TOP_OF_PAGE*&-*-*Form FRM_TOP_OF_PAGE.CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'EXPORTINGIT_LIST_COMMENTARY= GIT_LISTHEADERI_LOGO= 'ENJOYSAP_LOGO'. "ENJOYSAP_LOGO*TCODE:OAOR,CLASS NAME:PICTURES,*CLASS TYPE :OT,PICTUREENDFORM.*&-*&Form FRM_COMMENT_BUILD*&-*text*-*FORM FRM_COMMENT_BUILD.DATA L_LISTHEADER TYPE SLIS_LISTHEADER.CLEAR: GIT_LISTHEADER, L_LISTHEADER.L_LISTHEADER-TYP = 'H&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从业资格证考试项目背诵及答案解析
- 标准化办公用品领用及库存管理流程表
- 表演串词游戏题库及答案
- 2025年文化创意产业国际合作模式研究报告及未来发展趋势预测
- 文档编制与项目管理工具集
- 2025年心电图多选题题库及答案
- 教师上岗前考试考核内容及答案解析
- 2025年新能源行业新能源汽车技术发展与充电服务设施建设研究报告及未来发展趋势预测
- 行业商务礼仪规范指南
- 2025年贸易物流行业跨境电商与全球化物流研究报告及未来发展趋势预测
- 2025四川南充市嘉陵城市发展集团有限公司招聘工作人员10人考试模拟试题及答案解析
- 苏德战争教学课件
- 高一数学教案必修第一册(2025-2026学年)
- 税务风险知识培训课件
- 烟花炮竹仓库知识培训总结课件
- 2025年及未来5年中国汽车救援行业发展运行现状及投资战略规划报告
- 《在奉献中成就精彩人生》课件
- 第一性原理新视角
- 2025年钢筋工考试试题及答案
- 年产14万吨石墨烯轻纺产业园项目(一期)环评报告表
- 2.3 汉族民歌 教学设计-2023-2024学年高一上学期音乐人音版(2019)必修音乐鉴赏
评论
0/150
提交评论