• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

狼升空

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

ALV 实现多表格 ( 多表格的ALV List

昨天写了个报表,似乎格式有点复杂。 一个alv 表格显示两部分数据,没办法就想起了alv的多表格。

具体方法如下,以供参考:

 
以两个表格为例

 第一步: 首先创建两个 FIELDCAT 可以使用 REUSE_ALV_FIELDCATALOG_MERGE . 

当然 也可以手工创建

 

第二步:调用初始化function REUSE_ALV_BLOCK_LIST_INIT

 
CALL FUNCTION ‘REUSE_ALV_BLOCK_LIST_INIT’
 EXPORTING 
I_CALLBACK_PROGRAM = SY-CPROG “ sy-repid1 * I_CALLBACK_PF_STATUS_SET = ’ ’ * I_CALLBACK_USER_COMMAND = ’ ’ * IT_EXCLUDING = . 第三步:添加表格数据(这里是两个表格)调用REUSE_ALV_BLOCK_LIST_APPEND 因为是两个表格所以要调用两次把两个表格的参数分别传递过来 1.表格一调用的function CALL FUNCTION ‘REUSE_ALV_BLOCK_LIST_APPEND’ EXPORTING2
IS_LAYOUT = gs_layout1 IT_FIELDCAT = T_FIELDCAT1[] I_TABNAME = ‘P_MAKETMP’*
IT_EVENTS = it_events IT_SORT = it_sort#
* I_TEXT = ’ ’ TABLES T_OUTTAB = P_MAKETMP7
* EXCEPTIONS * PROGRAM_ERROR = 1 * MAXIMUM_OF_APPENDS_REACHED = 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. 2.表格2调用的function, CALL FUNCTION ‘REUSE_ALV_BLOCK_LIST_APPEND’% l.
EXPORTING IS_LAYOUT = gs_layout24 IT_FIELDCAT = T_FIELDCAT2[] I_TABNAME = ‘P_FUNDTMP’ IT_EVENTS = it_events IT_SORT = it_sort * I_TEXT = ’ TABLES T_OUTTAB = P_FUNDTMP
* EXCEPTIONS5 R * PROGRAM_ERROR = 1 * MAXIMUM_OF_APPENDS_REACHED = 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. 第四步: 输出报表 调用函数‘REUSE_ALV_BLOCK_LIST_DISPLAY CALL FUNCTION ‘REUSE_ALV_BLOCK_LIST_DISPLAY’3 * EXPORTING * I_INTERFACE_CHECK = ’ ’ * IS_PRINT = * I_SCREEN_START_COLUMN = * I_SCREEN_START_LINE = * I_SCREEN_END_COLUMN = * I_SCREEN_END_LINE = * IMPORTING* E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER =
* 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. 经过以上步骤 一个多表格的alv 就成功了 有点遗憾的是两个表格中间有行空行

 

posted on 2012-10-16 20:59  狼升空  阅读(718)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3