ALV动态列内表实现Demo
2015-12-30 14:32
288 查看
开发财务报表或者一些预测数据的报表时,经常会有动态显示列的情况。
这里转摘贴吧上的ALV动态显示列的Demo,可做学习用。
比如在选择屏幕上设定显示4个动态列
![](http://img.blog.csdn.net/20151230143202493?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
输出效果为:
这里转摘贴吧上的ALV动态显示列的Demo,可做学习用。
REPORT yiris_dynamic_alv_demo. DATA: wa_layo TYPE lvc_s_layo, wa_fcat TYPE lvc_s_fcat, it_fcat TYPE lvc_t_fcat. DATA: it_scol TYPE lvc_t_scol. FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE, <dyn_wa>, <dyn_field>. DATA: dy_table TYPE REF TO data, dy_line TYPE REF TO data. DATA: colname(10), index(2). PARAMETERS: col TYPE i. "列 数 CLEAR: it_fcat. *1)根 据 条 件 动 态 生 成 列 DO col TIMES. index = index + 1. CONCATENATE 'COL' index INTO colname. PERFORM frm_add_fact USING colname 'C' '描述' '100'. ENDDO. *2)根 据 it_fcat 生 成 动 态 内 表 CALL METHOD cl_alv_table_create=>create_dynamic_table EXPORTING it_fieldcatalog = it_fcat IMPORTING ep_table = dy_table. *如 果 定 义 时 没 有 指 定 类 型 或 者 结 构 ,那 么 REF 必 须 ASSIGN *到 另 外 一 个 FS 里 间 接 使 用 ASSIGN dy_table->* TO <dyn_table>. CREATE DATA dy_line LIKE LINE OF <dyn_table>. ASSIGN dy_line->* TO <dyn_wa>. *3)给 表 字 段 赋 值 CLEAR: index. DO col TIMES. index = index + 1. CONCATENATE 'COL' index INTO colname. ASSIGN COMPONENT colname OF STRUCTURE <dyn_wa> TO <dyn_field>. <dyn_field> = '列数据1'. ENDDO. APPEND <dyn_wa> TO <dyn_table>. *4)给 内 表 装 入 第 二 条 数 据 CLEAR: index. DO col TIMES. index = index + 1. CONCATENATE 'COL' index INTO colname. ASSIGN COMPONENT colname OF STRUCTURE <dyn_wa> TO <dyn_field>. <dyn_field> = '列数据2'. ENDDO. APPEND <dyn_wa> TO <dyn_table>. CLEAR: wa_layo. wa_layo-zebra = 'X'. wa_layo-cwidth_opt = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid is_layout_lvc = wa_layo it_fieldcat_lvc = it_fcat TABLES t_outtab = <dyn_table> 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. FORM frm_add_fact USING value1 value2 value3 value4. wa_fcat-fieldname = value1. wa_fcat-inttype = value2. wa_fcat-reptext = value3. wa_fcat-intlen = value4. APPEND wa_fcat TO it_fcat. CLEAR: wa_fcat. ENDFORM. " frm_add_fact
比如在选择屏幕上设定显示4个动态列
输出效果为:
相关文章推荐
- 正则表达式必知必会(修订版) 笔记
- 使用 jQuery Mobile 与 HTML5 开发 Web App(一) 系列文章目录
- fedora 20 安装 docker
- Linux下动态共享库加载时的搜索路径详解
- iOS开发ARC入门和使用
- c# 将十进制数字转换成字节数组
- Nginx安装部署
- Nginx服务器中使用gzip压缩的相关配置解析
- Ubuntu 常用命令
- Myeclipse8.5 反编译插件 jad 安装
- HTML表单
- Select count(*)和Count(1)的区别和执行方式【转】
- each的详解
- tableview footer and header 取消粘稠效果
- 保证数据完整型 1
- BLE Peripheral设备的名字显示错误
- 图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目
- python 安装pillow
- SpringMVC 表单复选框处理
- SpringMVC配置