显示多张报表

type-POOLs :slis , icon .

TABLES :sflight ,spfli ,scarr ,sbook .

DATA :ok_code  TYPE sy -ucomm .

*定义屏幕中使用的对象
DATA :go_split_container  TYPE  REF  TO cl_gui_splitter_container .
DATA :go_container  TYPE  REF  TO cl_gui_custom_container .
DATA :go_container1  TYPE  REF  TO cl_gui_container ,
      go_container2  TYPE  REF  TO cl_gui_container ,
      go_container3  TYPE  REF  TO cl_gui_container ,
      go_container4  TYPE  REF  TO cl_gui_container .

DATA :go_alv_control1  TYPE  REF  TO cl_gui_alv_grid ,
      go_alv_control2  TYPE  REF  TO cl_gui_alv_grid ,
      go_alv_control3  TYPE  REF  TO cl_gui_alv_grid ,
      go_alv_control4  TYPE  REF  TO cl_gui_alv_grid .

*定义内表和结构
DATA : BEGIN  OF gs_sflight ,
  carrid  TYPE sflight -carrid ,
  connid  TYPE sflight -connid ,
  fldate  TYPE sflight -fldate ,
  price  TYPE sflight -price ,
   END  OF gs_sflight .

DATA : BEGIN  OF gs_spfli ,
  carrid  TYPE spfli -carrid ,
  connid  TYPE spfli -connid ,
  cityfrom  TYPE spfli -cityfrom ,
  cityto  TYPE spfli -cityto ,
   END  OF gs_spfli .

DATA : BEGIN  OF gs_scarr ,
  carrid  TYPE scarr -carrid ,
  carrname  TYPE scarr -carrname ,
   END  OF gs_scarr .

DATA : BEGIN  OF gs_sbook ,
  carrid  TYPE sbook -carrid ,
  connid  TYPE sbook -connid ,
  bookid  TYPE sbook -bookid ,
  customid  TYPE sbook -customid ,
   END  OF gs_sbook .

*定义ALV控件
DATA :gs_field_cat1  TYPE lvc_s_fcat ,
     gs_field_cat2  TYPE lvc_s_fcat ,
      gs_field_cat3  TYPE lvc_s_fcat ,
      gs_field_cat4  TYPE lvc_s_fcat .
DATA :gt_field_cat1  TYPE lvc_t_fcat ,
      gt_field_cat2  TYPE lvc_t_fcat ,
      gt_field_cat3  TYPE lvc_t_fcat ,
      gt_field_cat4  TYPE lvc_t_fcat .

*定义显示数据
DATA :gt_sflight  LIKE  STANDARD  TABLE  OF gs_sflight ,
      gt_spfli  LIKE  STANDARD  TABLE  OF gs_spfli ,
      gt_scarr  LIKE  STANDARD  TABLE  OF gs_scarr ,
      gt_sbook  LIKE  STANDARD  TABLE  OF gs_sbook .

START-OF-SELECTION .

   PERFORM sub_retrive_data .
   PERFORM sub_alv_data .

   CALL  SCREEN  9100 .
*&---------------------------------------------------------------------*
*&      Form  SUB_RETRIVE_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SUB_RETRIVE_DATA  .
   SELECT
   carrid
   connid
   fldate
   price
    INTO CORRESPONDING  FIELDS  OF  TABLE gt_sflight
    FROM sflight .

   SELECT
carrid
connid
cityfrom
cityto
INTO CORRESPONDING  FIELDS  OF  TABLE gt_spfli
FROM spfli .

   SELECT
    carrid
    carrname
     INTO CORRESPONDING  FIELDS  OF  TABLE gt_scarr
     FROM scarr .

   SELECT
     carrid
     connid
     bookid
     customid
      INTO CORRESPONDING  FIELDS  OF  TABLE gt_sbook
      FROM sbook .

ENDFORM .                     " SUB_RETRIVE_DATA
*&---------------------------------------------------------------------*
*&      Form  SUB_ALV_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SUB_ALV_DATA  .
   CLEAR :gs_field_cat1 .
*建立字段目录1
  gs_field_cat1 -col_pos  1 .
  gs_field_cat1 -fieldname  'CARRID' .
  gs_field_cat1 -scrtext_m  'airline code' .
   APPEND gs_field_cat1  to gt_field_cat1 .

  gs_field_cat1 -col_pos  2 .
  gs_field_cat1 -fieldname  'CONNID' .
  gs_field_cat1 -scrtext_m  'connection number' .
   APPEND gs_field_cat1  to gt_field_cat1 .

  gs_field_cat1 -col_pos  3 .
  gs_field_cat1 -fieldname  'FLDATE' .
  gs_field_cat1 -scrtext_m  'flight date' .
   APPEND gs_field_cat1  to gt_field_cat1 .

  gs_field_cat1 -col_pos  4 .
  gs_field_cat1 -fieldname  'PRICE' .
  gs_field_cat1 -scrtext_m  'flight price' .
   APPEND gs_field_cat1  to gt_field_cat1 .

*建立字段目录2
   CLEAR gs_field_cat2 .
  gs_field_cat2 -col_pos  1 .
  gs_field_cat2 -fieldname  'CARRID' .
  gs_field_cat2 -scrtext_m  'airline code' .
   APPEND gs_field_cat2  to gt_field_cat2 .

  gs_field_cat2 -col_pos  2 .
  gs_field_cat2 -fieldname  'CONNID' .
  gs_field_cat2 -scrtext_m  'connection number' .
   APPEND gs_field_cat2  to gt_field_cat2 .

  gs_field_cat2 -col_pos  3 .
  gs_field_cat2 -fieldname  ' CITYFROM' .
  gs_field_cat2 -scrtext_m  'city from' .
   APPEND gs_field_cat2  to gt_field_cat2 .

  gs_field_cat2 -col_pos  4 .
  gs_field_cat2 -fieldname  'CITYTO' .
  gs_field_cat2 -scrtext_m  'city to' .
   APPEND gs_field_cat2  to gt_field_cat2 .

*建立字段目录3
   CLEAR gs_field_cat3 .
  gs_field_cat3 -col_pos  1 .
  gs_field_cat3 -fieldname  'CARRID' .
  gs_field_cat3 -scrtext_m  'airline code' .
   APPEND gs_field_cat3  to gt_field_cat3 .

  gs_field_cat3 -col_pos  2 .
  gs_field_cat3 -fieldname  'CONNID' .
  gs_field_cat3 -scrtext_m  'connection number' .
   APPEND gs_field_cat3  to gt_field_cat3 .

*建立字段目录4
   CLEAR :gs_field_cat4 .
  gs_field_cat4 -col_pos  1 .
  gs_field_cat4 -fieldname  'CARRID' .
  gs_field_cat4 -scrtext_m  'airline code' .
   APPEND gs_field_cat4  to gt_field_cat4 .

  gs_field_cat4 -col_pos  2 .
  gs_field_cat4 -fieldname  'CONNID' .
  gs_field_cat4 -scrtext_m  'connection number' .
   APPEND gs_field_cat4  to gt_field_cat4 .

  gs_field_cat4 -col_pos  3 .
  gs_field_cat4 -fieldname  'BOOKID' .
  gs_field_cat4 -scrtext_m  'book id' .
   APPEND gs_field_cat4  to gt_field_cat4 .

  gs_field_cat4 -col_pos  4 .
  gs_field_cat4 -fieldname  'CUSTOMID' .
  gs_field_cat4 -scrtext_m  'cumstom id' .
   APPEND gs_field_cat4  to gt_field_cat4 .

ENDFORM .                     " SUB_ALV_DATA
*&---------------------------------------------------------------------*
*&      Module  ALV_DIAPLAY  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE ALV_DIAPLAY  OUTPUT .
   IF go_split_container  IS  INITIAL .
     CREATE OBJECT go_container
       EXPORTING
        container_name  'GO_CONTAINER' .

     CREATE OBJECT go_split_container
       EXPORTING
        link_dynnr  sy -dynnr
        link_repid  sy -repid
        parent      go_container
         rows        2
        columns     2
        name        'GO_SPLIT_CONTAINER' .

     CALL  METHOD go_split_container ->get_container
       EXPORTING
        row        1
        column     1
      RECEIVING
        container  go_container1 .

     CALL  METHOD go_split_container ->get_container
       EXPORTING
        row        1
        column     2
      RECEIVING
        container  go_container2 .

     CALL  METHOD go_split_container ->get_container
       EXPORTING
        row        2
        column     1
      RECEIVING
        container  go_container3 .

     CALL  METHOD go_split_container ->get_container
       EXPORTING
        row        2
        column     2
      RECEIVING
        container  go_container4 .


     CREATE OBJECT go_alv_control1
       EXPORTING
        i_parent  go_container1 .

     CREATE OBJECT go_alv_control2
       EXPORTING
        i_parent  go_container2 .

     CREATE OBJECT go_alv_control3
       EXPORTING
        i_parent  go_container3 .

     CREATE OBJECT go_alv_control4
       EXPORTING
        i_parent  go_container4 .

     CALL  METHOD go_alv_control1 ->set_table_for_first_display
       CHANGING
        it_outtab        gt_sflight
        it_fieldcatalog  gt_field_cat1 .

     CALL  METHOD go_alv_control2 ->set_table_for_first_display
       CHANGING
        it_outtab        gt_sflight
        it_fieldcatalog  gt_field_cat2 .

     CALL  METHOD go_alv_control3 ->set_table_for_first_display
       CHANGING
        it_outtab        gt_sflight
        it_fieldcatalog  gt_field_cat3 .

     CALL  METHOD go_alv_control4 ->set_table_for_first_display
       CHANGING
        it_outtab        gt_sbook
        it_fieldcatalog  gt_field_cat4 .

   ELSE .

     CALL  METHOD go_alv_control1 ->refresh_table_display .
     CALL  METHOD go_alv_control2 ->refresh_table_display .
     CALL  METHOD go_alv_control3 ->refresh_table_display .
     CALL  METHOD go_alv_control4 ->refresh_table_display .

   ENDIF .



ENDMODULE .                  " ALV_DIAPLAY  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_9100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_9100  OUTPUT .
   SET  PF-STATUS  'STATUS9100' .
*  SET TITLEBAR 'xxx'.

ENDMODULE .                  " STATUS_9100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9100  INPUT .
   CASE ok_code .
     WHEN  'BACK' .
       CALL  METHOD go_alv_control1 -> free .
       CALL  METHOD go_alv_control2 -> free .
       CALL  METHOD go_alv_control3 -> free .
       CALL  METHOD go_alv_control4 -> free .

       CALL  METHOD go_container1 -> free .
       CALL  METHOD go_container2 -> free .
       CALL  METHOD go_container3 -> free .
       CALL  METHOD go_container4 -> free .

       CALL  METHOD go_split_container -> free .
       CALL  METHOD go_container -> free .

       LEAVE  PROGRAM .
     WHEN  OTHERS .
   ENDCASE .

ENDMODULE.                 " USER_COMMAND_9100  INPUT



屏幕

PROCESS BEFORE OUTPUT.
  MODULE STATUS_9100.
  MODULE alv_diaplay.
PROCESS AFTER INPUT.
 MODULE USER_COMMAND_9100.


元素清单

GO_CONTAINER

OK_CODE


画个容器名为GO_CONTAINER

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值