- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
函数调用ALV方法
小总结一下函数方法调用alv的过程。其实用函数调用alv非常简单,只需要一个REUSE_ALV_GRID_DISPLAY函数即可(或者 list的方式),但是如果要做的复杂的话也可以非常复杂,如我之前的加上异常,单选框,或者加上双击命令,加上各种事件。过于复杂的不讲了,以一个平常 项目中够用的例子讲解,还有其他需求直接可以再pack:slis中找到,或者se38中直接输入*demo*就可以看到一堆例子。下面是使用alv的一 些必备信息。
1. 类型池(Type-pools)
如果使用函数调用ALV必须要用TYPE-POOLS: SLIS.这个类行池里包含了alv所有要用到的类型,当有哪些字段名称忘记的时候可以到这个pool里查找相应的字段。
2. 字段信息(SLIS_T_FIELDCAT_ALV)
如果我们自己写一个ALV的函数让别人调用,有哪些参数必不可缺了?字段信息肯定必不可少,字段信息决定了ALV到底输出哪些信息。通常有两种方式一是手动,二是自动。
2.1 手动生成
lt_fieldcat TYPE slis_t_fieldcat_alv. “定义字段表
WA_FIELDCAT-TABNAME = IT_EKKO. WA_FIELDCAT-FIELDNAME = EBELN. WA_FIELDCAT-SELTEXT_M = PO NO.. APPEND WA_FIELDCAT TO I_FIELDCAT. CLEAR WA_FIELDCAT.
这样就完成了一个字段的定义,不过通常都会用一个宏来完成相应的功能。如下:
DEFINE init_key. clear 1 . ? 1-fieldname = 2 . ? 1-coltext???? = 4. ? 1-outputlen???? = 5. ? 1-no_zero?????? = X . ? 1-key = X .????? 冻结窗口 append 1 to 3 . end-OF-DEFINITION.
这样定义多个字段就会比较方便。
2.2 自动生成
自动生成字段信息必须要调用这个函数:
CALL FUNCTION 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????????????? = CHANGING ??? ct_fieldcat????????????????? = * EXCEPTIONS *?? INCONSISTENT_INTERFACE?????? = 1 *?? PROGRAM_ERROR??????????????? = 2 *?? OTHERS?????????????????????? = 3
通常只需要两个参数,一是changing参数,即输出的字段信息。二是红色标记的部分,如果是一个内表的话就用第一个,有自建表或者系统表的话就用第二个。二者只能填一个,注意使用内表作为参数的话,类型定义只能用like而不能用type。
如果还需要增加或删除一些字段的话只需要修改这个内表就可以了。下面是实例:
*//增加选择项 MOVE SELECTED TO ls_fieldcat-fieldname. MOVE X TO ls_fieldcat-edit. MOVE X TO ls_fieldcat-checkbox. INSERT ls_fieldcat INTO ct_fieldcat INDEX 1. *//删除不必要显示的项 DELETE ct_fieldcat WHERE fieldname EQ INFO_TYPE_CODE OR fieldname EQ INFO_NUMBER OR fieldname EQ STATUS OR fieldname EQ GOODS_LIST_FLAG OR fieldname EQ COMPANY OR fieldname EQ COMPANY_NAME OR fieldname EQ SALES_ORG OR fieldname EQ SALES_ORG_DESC OR fieldname EQ MESSAGE. *//隐藏一些字
文档评论(0)