ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:23.77KB ,
资源ID:11258355      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11258355.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(转载:ABAP-ALV报表开发实例.docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

转载:ABAP-ALV报表开发实例.docx

1、ABAP-ALV报表开发 ALV相关概念 ALV是系统的一种网格的显示方式,这种方式带有汇总\排序\筛选等功能,ALV格式的数据是以单元格为单位显示,不象一般的写屏方式拷出来或是 导出成文件不同列的内容粘在一块,这种方式便于数据导出来放在电子表格里进行加工。 ALV即能显示简单表单(SIMPLE LIST)又能显示有序表单(SEQUENTIAL LIST): ALV实现方式: ALV 可以通过两种方式实现:Two Approaches Conventional (Using SAP Standard Function Modules). Object Oriented (Usi

2、ng SAP Standard Classes and Methods). 以下我们要讲的为Function Modules方式。 ALV实现流程: 第一步:定义将要用到的表,即TALBES定义部分,然后定义TYPE-POOLS: SLIS. 第二步:定义数据类型或者内表的实体对象. 第三步:定义一些需要用到的变量. 第四步:定义自己的选择屏幕. 第五步:start-of-selection部分. 1)用一个子函数完成对ALV表单标题区域的赋值(i_list_comments). 2)用一个子函数完成自己所需要数据的抓取. 3)用一个子函数完成要显示列表的列名行(第一行)的

3、相关赋值(i_fieldcat_alv)以及设置. 4)用一个子函数完成输出格式的设置(i_layout),比如双击一条记录是否弹出对话框啊?是用哪个功能键触发等等. 5)用一个子函数FORM DISPLAY_DATA来显示上面我们已经分别封装好的数据,需要调用两个常用的FUNCTION MODULE. 下面根据一个普通的例子(purchase order)来具体解释各步骤: *第一步: TABLES:EKKO,EKPO,T001,LFA1. TYPE-POOLS SLIS."有时可以还要包含 *第二步: TYPES : BEGIN OF TYP_PURORDER,      

4、          "TYPE OF Purchase Order Information           AEDAT     TYPE EKKO-AEDAT,          "Date on Which Record Was Created           EBELN     TYPE EKKO-EBELN,          "Purchasing Document Number           MATNR     TYPE EKPO-MATNR,          "Material Number           TXZ01     TYPE EKPO-TXZ

5、01,           MENGE     TYPE EKPO-MENGE,          "Purchase Order Quantity           MEINS     TYPE EKPO-MEINS,          "Purchase Order Unit of Measure           NETPR     TYPE EKPO-NETPR,          "Net Price in Purchasing Document           WAERS     TYPE EKKO-WAERS,          "Currency Key   

6、        NETWR     TYPE EKPO-NETWR,          "Net Order Value in PO Currency          END OF TYP_PURORDER. DATA: ST_PURORDER TYPE TYP_PURORDER,                     "MAIN STRUCTER       TD_PURORDER TYPE STANDARD TABLE OF TYP_PURORDER.   "MAIN TABLE *第三步: *-----------------------------------------

7、 *       COUNTER DEF *----------------------------------------------------------------------* DATA: W_BUKRS    TYPE T001-BUKRS,  "用于公司代码的检索       W_LIFNR    TYPE LFA1-LIFNR,               "用于购买者代码的检索       W_DATUM    TYPE EKKO-AEDAT,       W_DATE(10) TYPE C. *---

8、 *       FOR ALV DEF *----------------------------------------------------------------------* DATA: ST_LAYO     TYPE SLIS_LAYOUT_ALV,              "ALV LAYOUT STR       TD_EVENT    TYPE SLIS_T_EVENT,                 "ALV EVENT T

9、AB       ST_EVENT    TYPE SLIS_ALV_EVENT,               "ALV EVENT STR       TD_COMMENT  TYPE SLIS_T_LISTHEADER,            "SET HEADER TAB       ST_COMMENT  LIKE LINE OF TD_COMMENT,           "SET HEADER STR       ST_FIELDCAT TYPE SLIS_FIELDCAT_ALV,            "ALV FIELDCAT STR       TD_FIELDC

10、AT TYPE SLIS_T_FIELDCAT_ALV,          "ALV FIELDCAT TAB       ST_SORT     TYPE SLIS_SORTINFO_ALV,            "ALV SORT STR       TD_SORT     TYPE SLIS_T_SORTINFO_ALV.          "ALV SORT TAB *1)SLIS_LAYOUT_ALV是一个类型,它用来定义ALV报表的整体属性例如:    *ST_LAYO-ZEBRA = 'X'.“显示成斑马纹样式    *ST_LAYO-DETAIL_POPUP = '

11、X'.“是否弹出详细信息窗口    *ST_LAYO-F2CODE = '&ETA'. “设置触发弹出详细信息窗口的功能码,这里是双击    *ST_LAYO-COLWIDTH_OPTIMIZE = 'X'. “优化列宽选项是否设置    *ST_LAYO-DETAIL_INITIAL_LINES  = 'X'.    *ST_LAYO -no_vline = 'X'.“这个用来设置列间隔线    *ST_LAYO -detail_titlebar = '详细内容'. “设置弹出窗口的标题栏 *2)SLIS_T_EVENT是一个取得事件的内表,通过函数REUSE_ALV_EVENT

12、S_GET取得多个事件(包括操作页眉页脚的事件). *3)SLIS_T_LISTHEADER操作页眉页脚的内表. *4)SLIS_T_FIELDCAT_ALV操作ALV报表列的内表. *5)SLIS_T_SORTINFO_ALV对显示数据排序的内表。 *第四步: *----------------------------------------------------------------------* *       PARAMTER DEF(SELECT-OPTION etc.) *----------------------------------------------

13、 *view or posting selection screen PARAMETERS:     P_BUKRS TYPE T001-BUKRS DEFAULT TEXT-001 OBLIGATORY. "Company Code PARAMETERS:     P_LIFNR TYPE LFA1-LIFNR OBLIGATORY. "Vendor Code SELECT-OPTIONS: S_DAT   FOR  W_DATUM.    "PO Date *------------------------------------

14、 *       AT SELECTION-SCREEN *----------------------------------------------------------------------* AT SELECTION-SCREEN. *Check Airline Carrier ID   PERFORM PRM_CHECK_SCDATA. *第五步: START-OF-SELECTION.   PERFORM PRM_GET_DATA.      PERFORM FRM_SET_LAYOUT. 

15、   PERFORM FRM_SET_EVENT.   "Set ALV EVENT   PERFORM FRM_SET_FIELDCAT."Set ALV FIELDCAT 用来定义表单中的各个列的相关信息,比如列名等   PERFORM FRM_SORT_TAB.   PERFORM FRM_DISPLAY_ALV. "OUT DATA FROM ALV "判断录入参数的合法性 FORM PRM_CHECK_SCDATA.   SELECT SINGLE BUKRS     FROM T001     INTO W_BUKRS    WHERE BUKRS = P_BU

16、KRS.   IF SY-SUBRC <> 0.     MESSAGE E003 WITH P_BUKRS.     LEAVE TO LIST-PROCESSING.   ENDIF.   SELECT SINGLE LIFNR    FROM LFA1    INTO W_LIFNR   WHERE LIFNR = P_LIFNR.   IF SY-SUBRC <> 0.     MESSAGE E003 WITH P_LIFNR.     LEAVE TO LIST-PROCESSING.   ENDIF. ENDFORM.                 

17、 "Set ALV LAYOUT 用于定义ALV表单的相关格式、属性 FORM FRM_SET_LAYOUT .   CLEAR ST_LAYO.   ST_LAYO-ZEBRA                 = 'X'.   ST_LAYO-DETAIL_POPUP          = 'X'.   ST_LAYO-F2CODE                = '&ETA'.   ST_LAYO-COLWIDTH_OPTIMIZE     = 'X'.   ST_LAYO-DETAIL_INITIAL_LINES  = 'X'. ENDFORM.            

18、        " FRM_SET_LAYOUT "取数据到内表中 FORM PRM_GET_DATA.   SELECT           EKKO~AEDAT          "Date on Which Record Was Created           EKKO~EBELN          "Purchasing Document Number           EKPO~MATNR          "Material Number           EKPO~TXZ01           EKPO~MENGE          "Purchas

19、e Order Quantity           EKPO~MEINS          "Purchase Order Unit of Measure           EKPO~NETPR          "Net Price in Purchasing Document           EKKO~WAERS          "Currency Key           EKPO~NETWR          "Net Order Value in PO Currency     INTO TABLE TD_PURORDER     FROM EKKO INNE

20、R JOIN EKPO       ON ( EKKO~EBELN = EKPO~EBELN )    WHERE EKKO~BUKRS = P_BUKRS      AND EKKO~LIFNR = P_LIFNR      AND EKKO~AEDAT IN S_DAT.   IF SY-SUBRC <> 0.     MESSAGE E002 .     LEAVE LIST-PROCESSING.   ENDIF. *  SORT TD_PURORDER BY AEDAT EBELN MATNR. ENDFORM.                    "GET_D

21、ATA "取全部的事件,并且更改处理页眉页脚的事件的FORM的值 FORM FRM_SET_EVENT .   CALL FUNCTION 'REUSE_ALV_EVENTS_GET'     EXPORTING       I_LIST_TYPE     = 0     IMPORTING       ET_EVENTS       = TD_EVENT     EXCEPTIONS       LIST_TYPE_WRONG = 1       OTHERS          = 2.   IF SY-SUBRC <> 0.     MESSAGE ID SY-MS

22、GID TYPE SY-MSGTY NUMBER SY-MSGNO             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.     LEAVE TO LIST-PROCESSING.   ENDIF.   READ TABLE TD_EVENT   WITH KEY NAME = SLIS_EV_END_OF_LIST   INTO ST_EVENT.   IF SY-SUBRC = 0.     ST_EVENT-FORM = 'ALV_END_OF_LIST'."将页尾子程名称赋值给 ST_EVENT-FORM     

23、MODIFY TD_EVENT FROM ST_EVENT INDEX SY-TABIX.   ENDIF.   READ TABLE TD_EVENT   WITH KEY NAME = SLIS_EV_TOP_OF_PAGE   INTO ST_EVENT.   IF SY-SUBRC = 0.     ST_EVENT-FORM = 'ALV_TOP_OF_PAGE'."将页眉子程名称赋值给 ST_EVENT-FORM     MODIFY TD_EVENT FROM ST_EVENT INDEX SY-TABIX.   ENDIF. ENDFORM.         

24、           " FRM_SET_EVENT "页眉处理子程 FORM ALV_TOP_OF_PAGE .   REFRESH TD_COMMENT.   CLEAR ST_COMMENT.   ST_COMMENT-TYP  = 'H'."H=Header, S=Selection, A=Action供选择   ST_COMMENT-KEY  = SPACE.   ST_COMMENT-INFO = TEXT-024.   APPEND ST_COMMENT TO TD_COMMENT.   CLEAR ST_COMMENT.   ST_COMMENT-TYP  

25、 'A'.   ST_COMMENT-KEY  = TEXT-020.   ST_COMMENT-INFO = P_BUKRS.   APPEND ST_COMMENT TO TD_COMMENT.   CLEAR ST_COMMENT.   ST_COMMENT-TYP  = 'S'.   ST_COMMENT-KEY  = TEXT-023.   ST_COMMENT-INFO = P_LIFNR.   APPEND ST_COMMENT TO TD_COMMENT.   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'     E

26、XPORTING       IT_LIST_COMMENTARY       = TD_COMMENT       I_LOGO                   = 'ENJOYSAP_LOGO'." 输出图标   IF SY-SUBRC <> 0.     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.     LEAVE TO LIST-PROCESSING.   ENDIF. ENDFORM.        

27、            " ALV_TOP_OF_PAGE "页脚处理子程 FORM ALV_END_OF_LIST .   REFRESH TD_COMMENT.   CLEAR ST_COMMENT.   ST_COMMENT-TYP  = 'S'.   ST_COMMENT-KEY  = TEXT-022.   ST_COMMENT-INFO = SY-UNAME.   APPEND ST_COMMENT TO TD_COMMENT.   CONCATENATE SY-DATUM+0(4)               SY-DATUM+4(2)           

28、    SY-DATUM+6(2)          INTO W_DATE     SEPARATED BY '/'."时间字符串的连接   CLEAR ST_COMMENT.   ST_COMMENT-TYP  = 'S'.   ST_COMMENT-KEY  = TEXT-021.   ST_COMMENT-INFO = W_DATE.   APPEND ST_COMMENT TO TD_COMMENT.   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'     EXPORTING       IT_LIST_COMMENTAR

29、Y       = TD_COMMENT       I_END_OF_LIST_GRID       = 'X'. ENDFORM.                    "指定ALV报表列属性 FORM FRM_SET_FIELDCAT .   REFRESH TD_FIELDCAT.   CLEAR ST_FIELDCAT.   ST_FIELDCAT-COL_POS       = 0.         "第一列   ST_FIELDCAT-FIELDNAME     = TEXT-002.  "绑定的内表列名称 *  ST_FIELDCAT-ref_tabname 

30、  = 'EKKO'.   "录入时,帮助制作时指定表名称   ST_FIELDCAT-REF_FIELDNAME = TEXT-002.  "录入时,帮助制作时指定表中参考列名称   ST_FIELDCAT-SELTEXT_M     = TEXT-003. * ST_FIELDCAT-SELTEXT_L     = 'zzz'.     "M,L,S这三个给一个就行 * ST_FIELDCAT-SELTEXT_S     = 'AAA'.     "如果都给,它只用L中的值   ST_FIELDCAT-EDIT          = 'X'.       "是否可编辑   AP

31、PEND ST_FIELDCAT TO TD_FIELDCAT.   CLEAR ST_FIELDCAT.   ST_FIELDCAT-COL_POS       = 1.   ST_FIELDCAT-FIELDNAME     = TEXT-004.   ST_FIELDCAT-REF_FIELDNAME = TEXT-004.   ST_FIELDCAT-SELTEXT_M     = TEXT-005.   ST_FIELDCAT-EDIT          = 'X'.   APPEND ST_FIELDCAT TO TD_FIELDCAT.   CLEAR ST_FI

32、ELDCAT.   ST_FIELDCAT-COL_POS       = 2.   ST_FIELDCAT-FIELDNAME     = TEXT-006.   ST_FIELDCAT-ref_tabname   = 'EKPO'.   ST_FIELDCAT-REF_FIELDNAME = TEXT-006.   ST_FIELDCAT-SELTEXT_M     = TEXT-007.   ST_FIELDCAT-EDIT          = SPACE.   APPEND ST_FIELDCAT TO TD_FIELDCAT.   CLEAR ST_FIELDCAT

33、   ST_FIELDCAT-COL_POS       = 3.   ST_FIELDCAT-FIELDNAME     = TEXT-008.   ST_FIELDCAT-REF_FIELDNAME = TEXT-008.   ST_FIELDCAT-SELTEXT_M     = TEXT-009.   ST_FIELDCAT-EDIT          = SPACE.   APPEND ST_FIELDCAT TO TD_FIELDCAT.   CLEAR ST_FIELDCAT.   ST_FIELDCAT-COL_POS       = 4.   ST_FIE

34、LDCAT-FIELDNAME     = TEXT-010.   ST_FIELDCAT-REF_FIELDNAME = TEXT-010.   ST_FIELDCAT-SELTEXT_M     = TEXT-011.   ST_FIELDCAT-EDIT          = SPACE.   APPEND ST_FIELDCAT TO TD_FIELDCAT.   CLEAR ST_FIELDCAT.   ST_FIELDCAT-COL_POS       = 5.   ST_FIELDCAT-FIELDNAME     = TEXT-012.   ST_FIELDCA

35、T-REF_FIELDNAME = TEXT-013.   ST_FIELDCAT-SELTEXT_M     = TEXT-013.   ST_FIELDCAT-EDIT          = SPACE.   APPEND ST_FIELDCAT TO TD_FIELDCAT.   CLEAR ST_FIELDCAT.   ST_FIELDCAT-COL_POS       = 6.   ST_FIELDCAT-FIELDNAME     = TEXT-014.   ST_FIELDCAT-REF_FIELDNAME = TEXT-014.   ST_FIELDCAT-SE

36、LTEXT_M     = TEXT-015.   ST_FIELDCAT-EDIT          = SPACE.   APPEND ST_FIELDCAT TO TD_FIELDCAT.   CLEAR ST_FIELDCAT.   ST_FIELDCAT-COL_POS       = 7.   ST_FIELDCAT-FIELDNAME     = TEXT-016.   ST_FIELDCAT-REF_FIELDNAME = TEXT-016.   ST_FIELDCAT-SELTEXT_M     = TEXT-017.   ST_FIELDCAT-EDIT  

37、        = SPACE.   APPEND ST_FIELDCAT TO TD_FIELDCAT.   CLEAR ST_FIELDCAT.   ST_FIELDCAT-COL_POS       = 8.   ST_FIELDCAT-FIELDNAME     = TEXT-018.   ST_FIELDCAT-REF_FIELDNAME = TEXT-018.   ST_FIELDCAT-SELTEXT_M     = TEXT-019.   ST_FIELDCAT-EDIT          = SPACE.   APPEND ST_FIELDCAT TO TD_

38、FIELDCAT. ENDFORM.                    "ALV报表的显示 FORM FRM_DISPLAY_ALV .    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'    EXPORTING      I_INTERFACE_CHECK                 = SPACE      I_CALLBACK_PROGRAM                = SY-REPID "表示当前程序调用      IS_LAYOUT                         = ST_LAYO       I

39、T_FIELDCAT                       = TD_FIELDCAT      IT_SORT                           = TD_SORT      I_DEFAULT                         = 'X'      I_SAVE                            = 'A'      IT_EVENTS                         = TD_EVENT     TABLES       T_OUTTAB                         = TD_PUR

40、ORDER "操作的内表    EXCEPTIONS      PROGRAM_ERROR                     = 1      OTHERS                            = 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. ENDFORM.                   

41、 " FRM_DISPLAY_ALV "显示前页表数据的排序 FORM FRM_SORT_TAB .   CLEAR ST_SORT.   REFRESH TD_SORT.   ST_SORT-SPOS      = 3.       "排序的次序   ST_SORT-FIELDNAME = 'AEDAT'. "绑定的内表字段名称   ST_SORT-UP        = 'X'.     "是否为升序   APPEND ST_SORT TO TD_SORT.   CLEAR ST_SORT.   ST_SORT-SPOS      = 2.   ST_SORT-FIELDNAME = 'EBELN'.   ST_SORT-UP        = 'X'. * ST_SORT-DOWN      = 'X'.   APPEND ST_SORT TO TD_SORT.   CLEAR ST_SORT.   ST_SORT-SPOS      = 1.   ST_SORT-FIELDNAME = 'MATNR'.   ST_SORT-UP        = 'X'.   APPEND ST_SORT TO TD_SORT.   CLEAR ST_SORT.

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服