关于用OO开发ALV中半自动创建输出结构的方法
来源:互联网 发布:火炮兰捏脸数据 编辑:程序博客网 时间:2024/06/07 04:32
一般调用两个FUNCTION 就能实现.
1. REUSE_ALV_FIELDCATALOG_MERGE
用来将内表结构转化为slis_t_fieldcat_alv类型的数据.
2. LVC_TRANSFER_FROM_SLIS
用来将普通ALV格式等数据转化为面对对象方法所需要的数据.与上面的FUNCTION一起使用.半自动创建ALV显示字段.
DATA: ls_fcat TYPE lvc_s_fcat.
DATA: ls_slis_fcat TYPE slis_t_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'GT_LIST'
* i_structure_name =
* I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = sy-repid
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = ls_slis_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'LVC_TRANSFER_FROM_SLIS'
EXPORTING
it_fieldcat_alv = ls_slis_fcat
* IT_SORT_ALV =
* IT_FILTER_ALV =
* IS_LAYOUT_ALV =
IMPORTING
et_fieldcat_lvc = p_gt_fieldcat[]
* ET_SORT_LVC =
* ET_FILTER_LVC =
* ES_LAYOUT_LVC =
TABLES
it_data = gt_list
EXCEPTIONS
it_data_missing = 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.
第一个FUNCTION中的 i_internal_tabname 参数需要注意, 如果是参考工作区的结构生成的内表而不是用OCCURS 申明的话,最好在这个参数后面填上工作区结构名字,事实证明,能达到同样的效果.在使用OO开发ALV时,有一个FUNCTION 名字叫LVC_FIELDCATALOG_MERGE,功能和上面差不多,但貌似无法将内表按结构生成对应的FIELDCAT.
- 关于用OO开发ALV中半自动创建输出结构的方法
- 关于oo alv
- 如何去掉OO方法中的ALV的标准按钮
- ALV OO: 最简单的ALV OO实例-自定义容器
- ALV OO: 最简单的ALV OO实例-Docking容器
- 一个ALV(OO)的实例
- ALV OO的栏位属性
- ABAP里OO ALV选中或container alv里的选中方法
- ALV OO
- OO实现ALV TABLE 一:最简单的ALV显示
- OO实现ALV TABLE 三:ALV的功能设计
- OO实现ALV TABLE 四:ALV的显示样式
- OO实现ALV TABLE 五:ALV的栏位属性
- OO实现ALV TABLE 六:ALV的弹出窗口形式
- OO实现ALV TABLE 七:ALV的选择功能
- OO实现ALV TABLE 八:ALV的布局功能
- OO实现ALV TABLE 九:ALV的事件
- OO实现ALV TABLE 十:ALV的页眉页脚
- 用java实现cache
- JAVA面试题解惑系列(十一)——这些运算符你是否还记得?
- TextBox客户端JS赋值 后台获取
- 交叉编译的一般方法
- 利用触发器生成自增列
- 关于用OO开发ALV中半自动创建输出结构的方法
- 测试脚本
- MyEclipse优化技巧
- MS SQL Server 2005网络服务器配置方法
- java socket和多线程(Thread)实例
- JQuery上传插件Uploadify使用详解及错误处理
- error LNK2019: unresolved external symbol "public: __cdecl std::_Lockit::~_Lockit(void)"
- MFC SDI随笔
- 日历控件Calendar的使用