*&---------------------------------------------------------------------* *& Report ZGDR0099 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZGDR0099. DATA: GO_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER, GO_DOCKING1 TYPE REF TO CL_GUI_CONTAINER, GO_DOCKING2 TYPE REF TO CL_GUI_CONTAINER, GO_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER, GO_GRID_R1C1 TYPE REF TO CL_GUI_ALV_GRID, " row 1 co1 1. GO_GRID_R1C2 TYPE REF TO CL_GUI_ALV_GRID. " row1 col 2. DATA: GT_FIELDCAT_R1C1 TYPE LVC_T_FCAT, GS_FIELDCAT_R1C1 LIKE LINE OF GT_FIELDCAT_R1C1, GS_LAYOUT_R1C1 TYPE LVC_S_LAYO. DATA: GT_FIELDCAT_R1C2 TYPE LVC_T_FCAT, GS_FIELDCAT_RITHT LIKE LINE OF GT_FIELDCAT_R1C2, GS_LAYOUT_R1C2 TYPE LVC_S_LAYO. TYPES: BEGIN OF TYP_SCARR, BOX. INCLUDE STRUCTURE SCARR. TYPES: END OF TYP_SCARR. DATA GT_SCARR TYPE TABLE OF TYP_SCARR. TYPES: BEGIN OF TYP_T001, BOX. INCLUDE STRUCTURE T001. TYPES: END OF TYP_T001. DATA GT_T001 TYPE TABLE OF TYP_T001. SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-B01. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 01(4) COMMENT1 . PARAMETERS: P01 RADIOBUTTON GROUP RAD DEFAULT 'X' USER-COMMAND UC. SELECTION-SCREEN COMMENT 10(10) COMMENT2 . PARAMETERS: P02 RADIOBUTTON GROUP RAD. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN: END OF BLOCK B1. AT SELECTION-SCREEN OUTPUT. PERFORM FM_SEL_OUTPUT. PERFORM FM_BUILD_VIEWER. PERFORM FM_USE_VIEWER. START-OF-SELECTION. * CL_DEMO_OUTPUT=>DISPLAY( GT_SCARR[ BOX = 'X' ] ). * DATA(LV_LINES_CHECKED) = LINES( GT_SCARR[ BOX = 'X' ] ). DELETE GT_SCARR WHERE BOX IS INITIAL. CL_DEMO_OUTPUT=>DISPLAY( GT_SCARR ). FORM FM_BUILD_VIEWER . CHECK GO_DOCKING IS INITIAL. CREATE OBJECT GO_DOCKING EXPORTING REPID = SY-REPID DYNNR = SY-DYNNR SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_TOP EXTENSION = 152 EXCEPTIONS CNTL_ERROR = 1 CNTL_SYSTEM_ERROR = 2 CREATE_ERROR = 3 LIFETIME_ERROR = 4 LIFETIME_DYNPRO_DYNPRO_LINK = 5 OTHERS = 6. IF SY-SUBRC IS INITIAL. CHECK GO_SPLITTER IS NOT BOUND. CREATE OBJECT GO_SPLITTER EXPORTING LINK_DYNNR = SY-DYNNR LINK_REPID = SY-REPID HEIGHT = 50 ALIGN = 15 PARENT = GO_DOCKING ROWS = 1 COLUMNS = 2. ENDIF. CHECK GO_SPLITTER IS BOUND. ****---1行1列单元格初始化. CALL METHOD GO_SPLITTER->GET_CONTAINER EXPORTING ROW = 1 COLUMN = 1 RECEIVING CONTAINER = GO_DOCKING1. CREATE OBJECT GO_GRID_R1C1 EXPORTING I_PARENT = GO_DOCKING1. ****---1行2列单元格初始化. CALL METHOD GO_SPLITTER->GET_CONTAINER EXPORTING ROW = 1 COLUMN = 2 RECEIVING CONTAINER = GO_DOCKING2. CREATE OBJECT GO_GRID_R1C2 EXPORTING I_PARENT = GO_DOCKING2. ENDFORM. FORM FM_USE_VIEWER . IF GO_GRID_R1C1 IS BOUND. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_SCARR FROM SCARR. GS_LAYOUT_R1C1 = VALUE #( ZEBRA = ABAP_TRUE CWIDTH_OPT = ABAP_TRUE ). GT_FIELDCAT_R1C1 = VALUE #( ( FIELDNAME = 'BOX' COLTEXT = '选择' EDIT = 'X' CHECKBOX = 'X') ( FIELDNAME = 'CARRID' COLTEXT = '航线代码' ) ( FIELDNAME = 'CARRNAME' COLTEXT = '航班名称' ) ( FIELDNAME = 'CURRCODE' COLTEXT = '货币 ' ) ( FIELDNAME = 'URL' COLTEXT = 'Airline URL' ) ). CALL METHOD GO_GRID_R1C1->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = GS_LAYOUT_R1C1 CHANGING IT_OUTTAB = GT_SCARR IT_FIELDCATALOG = GT_FIELDCAT_R1C1. CALL METHOD GO_GRID_R1C1->SET_TOOLBAR_INTERACTIVE. CALL METHOD GO_GRID_R1C1->SET_READY_FOR_INPUT EXPORTING I_READY_FOR_INPUT = 1. CALL METHOD GO_GRID_R1C1->REGISTER_EDIT_EVENT EXPORTING I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED. ENDIF. IF GO_GRID_R1C2 IS BOUND. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_T001 FROM T001 WHERE KTOPL = 'INT'. GS_LAYOUT_R1C2 = VALUE #( ZEBRA = ABAP_TRUE CWIDTH_OPT = ABAP_TRUE ). GT_FIELDCAT_R1C2 = VALUE #( ( FIELDNAME = 'BOX' COLTEXT = '选择' EDIT = 'X' CHECKBOX = 'X') ( FIELDNAME = 'BUKRS' COLTEXT = '公司代码' ) ( FIELDNAME = 'BUTXT' COLTEXT = '公司名称' ) ( FIELDNAME = 'LAND1' COLTEXT = '国家' ) ). CALL METHOD GO_GRID_R1C2->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = GS_LAYOUT_R1C2 CHANGING IT_OUTTAB = GT_T001 IT_FIELDCATALOG = GT_FIELDCAT_R1C2. CALL METHOD GO_GRID_R1C2->SET_TOOLBAR_INTERACTIVE. CALL METHOD GO_GRID_R1C2->SET_READY_FOR_INPUT EXPORTING I_READY_FOR_INPUT = 1. CALL METHOD GO_GRID_R1C2->REGISTER_EDIT_EVENT EXPORTING I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED. ENDIF. ENDFORM. FORM FM_SEL_OUTPUT . COMMENT1 = 'Opt2'. COMMENT2 = 'Opt2'. ENDFORM.