OOALV单个container放置多个ALV grid
来源:互联网 发布:数据库的设计原则答案 编辑:程序博客网 时间:2024/05/21 07:47
此方法可以实现用单个container放置多个ALV grid,每个ALV grid可以任意拖拽大小,
切该container不影响屏幕中放置的其他container .
*&---------------------------------------------------------------------*
*& Form FORM_INIT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM form_init .
DATA go_container TYPE REF TO cl_gui_alv_grid.
DATA go_right TYPE REF TO cl_gui_alv_grid.
DATA lo_container TYPE REF TO cl_gui_splitter_container.
DATA lo_main TYPE REF TO cl_gui_custom_container.
DATA l_fieldcat TYPE lvc_t_fcat.
DATA l_pfcat TYPE lvc_t_fcat.
DATA l_ppcat TYPE lvc_t_fcat.
DATA wa_layout_sjmx TYPE lvc_s_layo.
DATA wa_layout_pomx TYPE lvc_s_layo.
DATA wa_layout_prmx TYPE lvc_s_layo.
DATA l_rootkey TYPE lvc_nkey.
DATA l_key TYPE lvc_nkey.
DATA l_text TYPE lvc_value.
DATA go_meta TYPE REF TO cl_gui_alv_grid.
DATA go_pack TYPE REF TO cl_gui_alv_grid.
DATA go_metapack TYPE REF TO cl_gui_alv_grid.
* DATA lo_event TYPE REF TO cl_event_receiver.
CREATE OBJECT lo_main
EXPORTING
container_name = 'MAIN'.
CREATE OBJECT lo_container "指定container
EXPORTING
parent = lo_main
rows = 2
columns = 2.
* CREATE OBJECT lo_event. "注册 event
* SET HANDLER lo_event->handle_hotspot_click FOR go_meta.
* SET HANDLER lo_event->handle_double_click FOR go_meta.
* SET HANDLER lo_event->handle_toolbar FOR go_meta.
* SET HANDLER lo_event->handle_command FOR go_meta.
CREATE OBJECT go_meta
EXPORTING
i_parent = lo_container->get_container( row = 1 column = 1 ).
* CREATE OBJECT go_meta
* EXPORTING
* i_parent = go_container->get_container( row = 1 column = 1 ). "第一列的第一行
PERFORM form_append_field:
USING 'VBELN' '销售凭证' CHANGING l_fieldcat,
USING 'POSNR' '销售凭证项目' CHANGING l_fieldcat,
USING 'WERKS' '工厂' CHANGING l_fieldcat,
USING 'AUART' '销售凭证类型' CHANGING l_fieldcat,
USING 'BSTNK' '客户参考' CHANGING l_fieldcat,
USING 'POSEX' '优先采购订单的项目号' CHANGING l_fieldcat,
USING 'KUNNR' '售达方' CHANGING l_fieldcat,
USING 'KUNWE' '送达方' CHANGING l_fieldcat,
USING 'ZZDKH' '消费者编码' CHANGING l_fieldcat,
USING 'ZKHMC' '消费者名称' CHANGING l_fieldcat,
USING 'MATNR' '物料编号' CHANGING l_fieldcat,
USING 'MATKL' '物料组' CHANGING l_fieldcat,
USING 'KWMENG' '数量' CHANGING l_fieldcat,
USING 'VRKME' '销售单位' CHANGING l_fieldcat,
USING 'ARKTX' '销售订单项目短文本' CHANGING l_fieldcat,
USING 'ZWLLX' '物料类型' CHANGING l_fieldcat,
USING 'MAKTX' '物料描述' CHANGING l_fieldcat.
CREATE OBJECT go_pack
EXPORTING
i_parent = lo_container->get_container( row = 1 column = 2 ).
* CREATE OBJECT go_pack
* EXPORTING
* i_parent = go_right->get_container( row = 1 column = 1 ). "第二列的第一行
PERFORM form_append_field:
USING 'EBELN' '采购凭证' CHANGING l_pfcat,
USING 'EBELP' '行项目' CHANGING l_pfcat,
USING 'ETENR' '计划行' CHANGING l_pfcat,
USING 'EINDT' '交货日期' CHANGING l_pfcat,
USING 'MENGE' '数量' CHANGING l_pfcat,
USING 'WEMNG' '已交货数量' CHANGING l_pfcat,
USING 'BANFN' '采购申请' CHANGING l_pfcat,
USING 'BNFPO' '行项目' CHANGING l_pfcat,
USING 'MATNR' '物料编号' CHANGING l_pfcat,
USING 'MAKTX' '物料描述' CHANGING l_pfcat,
USING 'LIFNR' '供应商' CHANGING l_pfcat,
USING 'NAME1' '供应商' CHANGING l_pfcat.
CREATE OBJECT go_metapack
EXPORTING
i_parent = lo_container->get_container( row = 2 column = 2 ).
* CREATE OBJECT go_metapack
* EXPORTING
* i_parent = go_right->get_container( row = 2 column = 1 ). "第二列的第二行
PERFORM form_append_field:
USING 'BANFN' '采购申请编号' CHANGING l_ppcat,
USING 'BNFPO' '采购申请的项目编号' CHANGING l_ppcat,
USING 'BSART' '采购申请凭证类型' CHANGING l_ppcat,
USING 'EKGRP' '采购组' CHANGING l_ppcat,
USING 'MATNR' '物料编号' CHANGING l_ppcat,
USING 'MAKTX' '物料描述' CHANGING l_ppcat,
USING 'WERKS' '工厂' CHANGING l_ppcat,
USING 'LGORT' '库存地点' CHANGING l_ppcat,
USING 'MATKL' '物料组' CHANGING l_ppcat,
USING 'MENGE' '采购申请数量' CHANGING l_ppcat,
USING 'MEINS' '采购申请计量单位' CHANGING l_ppcat,
USING 'BADAT' '申请(请求)日期' CHANGING l_ppcat,
USING 'LFDAT' '项目交货日期' CHANGING l_ppcat,
USING 'DISPO' 'MRP控制者' CHANGING l_ppcat,
USING 'BSMNG' '对应于此采购申请的订货数量' CHANGING l_ppcat,
USING 'ZSYSL' '未转换数量' CHANGING l_ppcat.
wa_layout_sjmx-grid_title = '合计需求明细'.
wa_layout_sjmx-sel_mode = 'A'.
wa_layout_pomx-grid_title = 'PO明细'.
wa_layout_pomx-sel_mode = 'A'.
wa_layout_prmx-grid_title = 'PR明细'.
wa_layout_prmx-sel_mode = 'A'.
CALL METHOD go_meta->set_table_for_first_display
EXPORTING
is_layout = wa_layout_sjmx
CHANGING
it_fieldcatalog = l_fieldcat
it_outtab = gt_outmx[].
CALL METHOD go_pack->set_table_for_first_display
EXPORTING
is_layout = wa_layout_pomx
CHANGING
it_fieldcatalog = l_pfcat
it_outtab = gt_pomx_02[].
CALL METHOD go_metapack->set_table_for_first_display
EXPORTING
is_layout = wa_layout_prmx
CHANGING
it_fieldcatalog = l_ppcat
it_outtab = gt_prmx_03[].
* CALL METHOD go_meta->free .
* CALL METHOD go_pack->free .
* CALL METHOD go_metapack->free .
ENDFORM.
FORM form_append_field USING fname ftext CHANGING ch_fcat TYPE lvc_t_fcat.
DATA wa_field TYPE lvc_s_fcat.
wa_field-fieldname = fname.
wa_field-coltext = ftext.
wa_field-outputlen = 20.
APPEND wa_field TO ch_fcat.
ENDFORM.
*&---------------------------------------------------------------------*
实现效果如下:
- OOALV单个container放置多个ALV grid
- ALV Grid
- ALV grid display
- ALV GRID的颜色
- ALV GRID颜色设置
- The ALV Grid control
- ALV GRID参考文档(II)
- ALV GRID参考文档(III)
- ALV GRID参考文档(十)
- ALV GRID参考文档(十一)
- ALV GRID参考文档(十三)
- ALV GRID参考文档 ( 10 )
- 关于ALV GRID的颜色
- 典型的ALV-GRID report
- 关于ALV GRID的颜色
- 单个sever 多个handler
- 同一页面放置多个UpdatePanel
- 同一页面放置多个UpdatePanel
- web框架简介
- android java process stack OOM
- 两种红外解码方法(RC-5)
- 蓝桥杯练习题之 Fibonacci数列
- git 命令
- OOALV单个container放置多个ALV grid
- 小东吖 之 java的基础知识以及break 和 continue 关键字的使用
- 关于SSH的经典知识
- JAVA 与 MyCat(2) 单例模式
- STL(五)list 双向链表
- ToolBar的封装、动态改变状态栏颜色
- 20171130_tensorflow_tf.Variable
- CentOS7 下安装docker和docker-compose
- 面向对象(上)