<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ABAP多表頭ALV(單元格合并)

      參考:https://tricktresor.de/blog/zellen-verbinden

      效果:

      按照參考鏈接建立類ZCL_GUI_ALV_GRID:

      類方法

      ZCL_GUI_ALV_GRID~Z_SET_MERGE_HORIZ

      METHOD Z_SET_MERGE_HORIZ.
      
      * ROW - Zeile deren Spalten zusammengef?hrt werden sollen
      * tab_col_merge - Spalten, die zusammengef?hrt werden sollen
         FIELD-SYMBOLS <fs_cols> TYPE lvc_s_co01.
         FIELD-SYMBOLS <fs_data> TYPE lvc_s_data.
         DATA outputlen TYPE i.
      
         SORT tab_col_merge.
      * Die Spalten, die zusammengef?hrt werden sollen
         LOOP AT tab_col_merge ASSIGNING <fs_cols>.
      * ein paar Pr?fungen
           if <fs_cols>-col_id    le 0.                continue. endif.
           if <fs_cols>-outputlen le <fs_cols>-col_id. continue. endif.
           outputlen = <fs_cols>-outputlen - <fs_cols>-col_id.
           LOOP AT mt_data ASSIGNING <fs_data>
                WHERE row_pos = row  AND
                      ( col_pos between <fs_cols>-col_id AND
                                        <fs_cols>-outputlen ).
      * Setze wie weit soll gemerged werden Von Spalte in L?nge
      * und zwar wird bei der 1 Spalte angefangen
             IF <fs_data>-col_pos = <fs_cols>-col_id.
               <fs_data>-mergehoriz = outputlen.
               <fs_data>-value = value.
      * bei allen anderen, die zusammangeh?ren
      * muss der Wert raus, da er aus der 1. Spalte kommt
      * und das mergekennzeichen muss auch weg !
             ELSE.
               CLEAR <fs_data>-mergehoriz.
               CLEAR <fs_data>-value.
             ENDIF.
           ENDLOOP.
      
         ENDLOOP.
      
      ENDMETHOD.

      ZCL_GUI_ALV_GRID~Z_SET_MERGE_VERT

      METHOD Z_SET_MERGE_VERT.
      
      * ROW - Zeile deren Spalten zusammengef?hrt werden sollen
      * tab_col_merge - Spalten, die zusammengef?hrt werden sollen
         FIELD-SYMBOLS <fs_cols> TYPE lvc_s_co01.
         FIELD-SYMBOLS <fs_data> TYPE lvc_s_data.
         DATA outputlen TYPE i.
      
         SORT tab_col_merge.
      * Die Spalten, die zusammengef?hrt werden sollen
         LOOP AT tab_col_merge ASSIGNING <fs_cols>.
      * ein paar Pr?fungen
           if <fs_cols>-col_id    le 0.                continue. endif.
           if <fs_cols>-outputlen le <fs_cols>-col_id. continue. endif.
           outputlen = <fs_cols>-outputlen - <fs_cols>-col_id.
           LOOP AT mt_data ASSIGNING <fs_data>
                WHERE row_pos = row  AND
                      ( col_pos between <fs_cols>-col_id AND
                                        <fs_cols>-outputlen ).
      * Setze wie weit soll gemerged werden Von Spalte in L?nge
      * und zwar wird bei der 1 Spalte angefangen
             IF <fs_data>-col_pos = <fs_cols>-col_id.
               <fs_data>-mergevert = outputlen.
               <fs_data>-value = value.
      * bei allen anderen, die zusammangeh?ren
      * muss der Wert raus, da er aus der 1. Spalte kommt
      * und das mergekennzeichen muss auch weg !
             ELSE.
               CLEAR <fs_data>-mergevert.
               CLEAR <fs_data>-value.
             ENDIF.
           ENDLOOP.
      
         ENDLOOP.
      
      
      ENDMETHOD.

      ZCL_GUI_ALV_GRID~Z_DISPLAY

      METHOD Z_DISPLAY.
      
        DATA lv_stable TYPE lvc_s_stbl.
        DATA lv_soft   TYPE C.
      
      **** Prepare refresh
      *  lv_stable-row = 'X'.
      *  lv_stable-col = 'X'.
      *  lv_soft       = 'X'.
      *
      **** Refresh table because Z_SET_CELL_STYLE adds style-values
      **** Refresh initializes mt_data
      *  CALL METHOD refresh_table_display
      *    EXPORTING
      *      is_stable      = lv_stable
      *      i_soft_refresh = lv_soft
      *    EXCEPTIONS
      *      OTHERS         = 1.
      
      * Jetzt noch  ?bertragen der ge?nderten Daten
        CALL METHOD me->set_data_table
        CHANGING
          data_table = mt_data[].
      
        CALL METHOD set_auto_redraw
        EXPORTING
          enable = 1.
      
      ENDMETHOD.

      ZCL_GUI_ALV_GRID~Z_SET_CELL_STYLE

      METHOD Z_SET_CELL_STYLE.
      
        FIELD-SYMBOLS <fs_data> TYPE lvc_s_data.
        IF row IS INITIAL.
          IF col IS INITIAL.
      * Beides leer -> nichts zu tun.
            EXIT.
          ELSE.
      * Nur Spalte setze komplette Spalte
            LOOP AT mt_data ASSIGNING <fs_data>
            WHERE col_pos = col.
              <fs_data>-style  = <fs_data>-style + style.
              <fs_data>-style2 = <fs_data>-style2 + style2.
            ENDLOOP.
          ENDIF.
        ELSE.
          IF col IS INITIAL.
      * Nur Zeile eingegeben -> komplette Zeile setzen
            LOOP AT mt_data ASSIGNING <fs_data>
            WHERE row_pos = row.
              <fs_data>-style  = <fs_data>-style + style.
              <fs_data>-style2 = <fs_data>-style2 + style2.
            ENDLOOP.
          ELSE.
            READ TABLE mt_data ASSIGNING <fs_data>
            WITH KEY row_pos = row
            col_pos = col.
            IF sy-subrc EQ 0.
              <fs_data>-style  = <fs_data>-style + style.
              <fs_data>-style2 = <fs_data>-style2 + style2.
            ELSE.
              EXIT.
            ENDIF.
          ENDIF.
        ENDIF.
      
      ENDMETHOD.

      ZCL_GUI_ALV_GRID~Z_SET_FIXED_COL_ROW

      METHOD Z_SET_FIXED_COL_ROW.
      
        me->set_fixed_cols( col ).
        me->set_fixed_rows( row ).
      
      ENDMETHOD.

      ZCL_GUI_ALV_GRID~Z_INIT_CELL_STYLES

      METHOD Z_INIT_CELL_STYLES.
        FIELD-SYMBOLS <fs_data> TYPE lvc_s_data.
      * Nur Spalte setze komplette Spalte
        LOOP AT mt_data ASSIGNING <fs_data>.
          <fs_data>-style = 0.
        ENDLOOP.
      ENDMETHOD.

      代碼:

      ************************************************************************
      * 程 序 名:xxx
      * 程序描述:商城、SAP、支付寶對賬
      * 事務代碼:xxx
      ************************************************************************
      * 修改日志
      ************************************************************************
      * 日期     版本 修改人       描述
      * -------- ---- ------------ -------------------------------------------
      * 20230609 1.0  Amell        創建程序
      *
      ************************************************************************
      REPORT zsdrtest MESSAGE-ID 00.
      
      INCLUDE <cl_alv_control>.
      INCLUDE <icon>.
      
      ************************************************************************
      * Type Pools Definitions          定義類型池
      ************************************************************************
      TYPE-POOLS slis.
      
      ************************************************************************
      * Tables Definitions
      ************************************************************************
      TABLES: mkpf.
      ************************************************************************
      * Data Definitions                定義數據
      ************************************************************************
      TYPES: BEGIN OF ty_account,
               field01 TYPE string,
               field02 TYPE string,
               field03 TYPE string,
               field04 TYPE string,
               field05 TYPE string,
               field06 TYPE char4,
               field07 TYPE string,
               field08 TYPE string,
               field09 TYPE string,
               field10 TYPE char4,
               field11 TYPE string,
               field12 TYPE string,
               field13 TYPE string,
               field14 TYPE string,
               field15 TYPE string,
               field16 TYPE string,
             END OF ty_account.
      
      DATA: gt_account         TYPE TABLE OF ty_account.
      
      DATA: ok_code             TYPE sy-ucomm,
            gv_container        TYPE scrfname VALUE 'ACCOUNT',
            go_custom_container TYPE REF TO cl_gui_custom_container,
            go_alv_grid         TYPE REF TO zcl_gui_alv_grid,
            gv_save             TYPE c,
            gs_variant          TYPE disvariant.
      
      DATA: gs_layout    TYPE lvc_s_layo, "布局
            gs_style     TYPE lvc_s_styl, "樣式
            gt_fieldcat  TYPE lvc_t_fcat, "字段
            gt_col_merge TYPE lvc_t_co01, "列布局
            gs_col_merge TYPE lvc_s_co01. "列布局
      
      CLASS cl_gui_cfw DEFINITION LOAD.
      
      ************************************************************************
      * Includes Module                 包含模塊
      ************************************************************************
      
      ************************************************************************
      * Selection Screen                選擇屏幕
      ************************************************************************
      SELECT-OPTIONS: s_erdat FOR mkpf-budat.
      
      ************************************************************************
      * Initialization                  初始化事件
      ************************************************************************
      INITIALIZATION.
      
      ************************************************************************
      * At Selection Screen             PAI事件
      ************************************************************************
      AT SELECTION-SCREEN.
      
      ************************************************************************
      * At Selection Screen Output      PBO事件
      ************************************************************************
      AT SELECTION-SCREEN OUTPUT.
        LOOP AT SCREEN.
          IF screen-name = 'S_ERDAT-LOW'.
            screen-required = '1'.
            MODIFY SCREEN.
          ENDIF.
      
          IF screen-name = 'S_ERDAT-HIGH'.
            screen-required = '1'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      
      ************************************************************************
      * Report Format                   報表格式
      ************************************************************************
      TOP-OF-PAGE.
      
      END-OF-PAGE.
      
      ************************************************************************
      * Main Process                    主要邏輯
      ************************************************************************
      START-OF-SELECTION.
      
        "顯示容器
        CALL SCREEN 0200.
      
      END-OF-SELECTION.
      
      *&---------------------------------------------------------------------*
      *& Module STATUS_0200 OUTPUT
      *&---------------------------------------------------------------------*
      *&
      *&---------------------------------------------------------------------*
      MODULE status_0200 OUTPUT.
        SET PF-STATUS '0200'.
        SET TITLEBAR '001'.
      ENDMODULE.
      
      *&---------------------------------------------------------------------*
      *& Module INIT_ALV_0200 OUTPUT
      *&---------------------------------------------------------------------*
      *&
      *&---------------------------------------------------------------------*
      MODULE init_alv_0200 OUTPUT.
      
        "初始化對象
        PERFORM frm_init_object.
        "構建ALV的欄位
        PERFORM frm_create_field.
        "構建數據
        PERFORM frm_create_data.
        "顯示數據
        PERFORM frm_display_data.
        "合并
        PERFORM frm_merge_data.
        "樣式
        PERFORM frm_set_style.
        "顯示數據
        go_alv_grid->z_display( ).
      ENDMODULE.
      
      *&---------------------------------------------------------------------*
      *&      Module  USER_COMMAND_0200  INPUT
      *&---------------------------------------------------------------------*
      *       text
      *----------------------------------------------------------------------*
      MODULE user_command_0200 INPUT.
      
        cl_gui_cfw=>dispatch( ).
      
        CASE ok_code.
          WHEN 'BACK'.
            SET SCREEN 0. LEAVE SCREEN.
        ENDCASE.
      ENDMODULE.
      
      *&---------------------------------------------------------------------*
      *& Form FRM_INIT_OBJECT
      *&---------------------------------------------------------------------*
      *& text
      *&---------------------------------------------------------------------*
      *& -->  p1        text
      *& <--  p2        text
      *&---------------------------------------------------------------------*
      FORM frm_init_object .
      
        IF go_custom_container IS INITIAL.
      
          CREATE OBJECT go_custom_container
            EXPORTING
              container_name = gv_container.
      
          CREATE OBJECT go_alv_grid
            EXPORTING
              i_parent = go_custom_container.
        ENDIF.
      
      ENDFORM.
      
      *&---------------------------------------------------------------------*
      *& Form FRM_CREATE_FIELD
      *&---------------------------------------------------------------------*
      *& text
      *&---------------------------------------------------------------------*
      *& -->  p1        text
      *& <--  p2        text
      *&---------------------------------------------------------------------*
      FORM frm_create_field .
      
        DATA: ls_fieldcat TYPE lvc_s_fcat,
              lv_count(2) TYPE n.
      
        DO 16 TIMES.
      
          lv_count = sy-index.
      
          "欄位顯示順序
          ls_fieldcat-col_pos    = lv_count.
      
          "內表欄位
          ls_fieldcat-fieldname  = 'FIELD' && lv_count.
      
          APPEND ls_fieldcat TO gt_fieldcat.
          CLEAR ls_fieldcat.
        ENDDO.
      
      
      ENDFORM.
      *&---------------------------------------------------------------------*
      *& Form FRM_CREATE_DATA
      *&---------------------------------------------------------------------*
      *& text
      *&---------------------------------------------------------------------*
      *& -->  p1        text
      *& <--  p2        text
      *&---------------------------------------------------------------------*
      FORM frm_create_data .
      
      
        DATA: ls_account TYPE ty_account,
              lv_num TYPE n LENGTH 5.
      
        "空行數據,用于客戶標題合并
        APPEND ls_account TO gt_account.
        CLEAR ls_account.
      
        ls_account-field01 = '客戶'.
        ls_account-field02 = '訂單'.
        ls_account-field03 = '建立時間'.
        ls_account-field04 = '金額'.
        ls_account-field05 = '幣別'.
        ls_account-field06 = '匹配'.
        ls_account-field07 = '訂單'.
        ls_account-field08 = '出貨單'.
        ls_account-field09 = '金額'.
        ls_account-field10 = '幣別'.
        ls_account-field11 = '匹配'.
        ls_account-field12 = '交易ID'.
        ls_account-field13 = '交易狀態'.
        ls_account-field14 = '交易時間'.
        ls_account-field15 = '金額'.
        ls_account-field16 = '幣別'.
        APPEND ls_account TO gt_account.
        CLEAR ls_account.
      
        DO 10 TIMES.
          ADD 1 TO lv_num.
          ls_account-field01 = '客戶A'.
          ls_account-field02 = 'EC' && '00000' && lv_num.
          ls_account-field03 = '2023/06/09'.
          ls_account-field04 = '100'.
          ls_account-field05 = 'CNY'.
          ls_account-field06 = icon_led_green.
          ls_account-field07 = '20000' && lv_num.
          ls_account-field08 = '62000' && lv_num.
          ls_account-field09 = '100'.
          ls_account-field10 = 'CNY'.
          IF lv_num > 8.
            ls_account-field11 = icon_led_red.
          ELSE.
            ls_account-field11 = icon_led_green.
          ENDIF.
          ls_account-field12 = '20230610' && lv_num.
          ls_account-field13 = '已到賬'.
          ls_account-field14 = '2023/06/10'.
          IF lv_num > 8.
            ls_account-field15 = '90'.
          ELSE.
            ls_account-field15 = '100'.
          ENDIF.
          ls_account-field16 = 'CNY'.
          APPEND ls_account TO gt_account.
          CLEAR ls_account.
        ENDDO.
      
      
      ENDFORM.
      
      *&---------------------------------------------------------------------*
      *& Form FRM_DISPLAY_DATA
      *&---------------------------------------------------------------------*
      *& text
      *&---------------------------------------------------------------------*
      *& -->  p1        text
      *& <--  p2        text
      *&---------------------------------------------------------------------*
      FORM frm_display_data .
      
        "內表字段名稱
        gs_layout-stylefname = 'CELL'.
      
        "隱藏列標題
        gs_layout-no_headers = 'X'.
      
        "欄位最適寬度
        gs_layout-cwidth_opt = 'X'.
      
        "隱藏工具欄
        gs_layout-no_toolbar = 'X'.
      
        "解決多表頭ALV行數據有限制的問題
        CALL METHOD go_alv_grid->set_ready_for_input
          EXPORTING
            i_ready_for_input = 1.
      
        "顯示數據
        CALL METHOD go_alv_grid->set_table_for_first_display
          EXPORTING
            is_variant                    = gs_variant
            i_save                        = gv_save
            is_layout                     = gs_layout
          CHANGING
            it_fieldcatalog               = gt_fieldcat
            it_outtab                     = gt_account
          EXCEPTIONS
            invalid_parameter_combination = 1
            program_error                 = 2
            too_many_lines                = 3
            OTHERS                        = 4.
      
      ENDFORM.
      
      *&---------------------------------------------------------------------*
      *& Form FRM_MERGE_DATA
      *&---------------------------------------------------------------------*
      *& text
      *&---------------------------------------------------------------------*
      *& -->  p1        text
      *& <--  p2        text
      *&---------------------------------------------------------------------*
      FORM frm_merge_data .
      
        "合并客戶標題
        gs_col_merge-col_id    = 1.
        gs_col_merge-outputlen = 2.
        APPEND gs_col_merge TO gt_col_merge.
        CLEAR gs_col_merge.
      
        CALL METHOD go_alv_grid->z_set_merge_vert
          EXPORTING
            row           = 1
            value         = '客戶'
          CHANGING
            tab_col_merge = gt_col_merge.
      
        CLEAR gt_col_merge.
      
        "合并商城標題
        gs_col_merge-col_id    = 2.
        gs_col_merge-outputlen = 5.
        APPEND gs_col_merge TO gt_col_merge.
        CLEAR gs_col_merge.
      
        CALL METHOD go_alv_grid->z_set_merge_horiz
          EXPORTING
            row           = 1
            value         = '商城'
          CHANGING
            tab_col_merge = gt_col_merge.
      
        CLEAR gt_col_merge.
      
        "合并SAP標題
        gs_col_merge-col_id    = 7.
        gs_col_merge-outputlen = 10.
        APPEND gs_col_merge TO gt_col_merge.
        CLEAR gs_col_merge.
      
        CALL METHOD go_alv_grid->z_set_merge_horiz
          EXPORTING
            row           = 1
            value         = 'SAP'
          CHANGING
            tab_col_merge = gt_col_merge.
      
        CLEAR gt_col_merge.
      
        "合并支付寶標題
        gs_col_merge-col_id    = 12.
        gs_col_merge-outputlen = 16.
        APPEND gs_col_merge TO gt_col_merge.
        CLEAR gs_col_merge.
      
        CALL METHOD go_alv_grid->z_set_merge_horiz
          EXPORTING
            row           = 1
            value         = '支付寶'
          CHANGING
            tab_col_merge = gt_col_merge.
      
        CLEAR gt_col_merge.
      
        "固定標題
        go_alv_grid->z_set_fixed_col_row( EXPORTING col = 0 row = 2 ).
      
      ENDFORM.
      
      *&---------------------------------------------------------------------*
      *& Form FRM_SET_STYLE
      *&---------------------------------------------------------------------*
      *& text
      *&---------------------------------------------------------------------*
      *& -->  p1        text
      *& <--  p2        text
      *&---------------------------------------------------------------------*
      FORM frm_set_style .
      
        "客戶標題、商城標題、SAP標題、支付寶標題設置粗體和居中
        gs_style-style = alv_style_font_bold + alv_style_align_center_center.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            row   = 1
            col   = 1
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            row   = 1
            col   = 2
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            row   = 1
            col   = 7
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            row   = 1
            col   = 12
            style = gs_style-style.
      
        CLEAR gs_style.
      
        "商城列樣式(第2列到第5列)
        gs_style-style = alv_style_color_heading.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 2
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 3
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 4
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 5
            style = gs_style-style.
      
        CLEAR gs_style.
      
        "SAP列樣式(第7列到第10列)
        gs_style-style = alv_style_color_group.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 7
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 8
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 9
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 10
            style = gs_style-style.
      
        CLEAR gs_style.
      
        "支付寶列樣式(第12列到第16列)
        gs_style-style = alv_style_color_total.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 12
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 13
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 14
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 15
            style = gs_style-style.
      
        CALL METHOD go_alv_grid->z_set_cell_style
          EXPORTING
            col   = 16
            style = gs_style-style.
      
        CLEAR gs_style.
      ENDFORM.

      屏幕:

      PROCESS BEFORE OUTPUT.
        MODULE status_0200.
        MODULE init_alv_0200.
      
      PROCESS AFTER INPUT.
        MODULE user_command_0200.

       

      posted @ 2023-06-09 16:21  鯨與海  閱讀(3535)  評論(4)    收藏  舉報
      主站蜘蛛池模板: 欧美国产综合欧美视频| 日韩精品人妻黄色一级片| 九九热视频在线精品18| xx性欧美肥妇精品久久久久久| 国产精品 亚洲一区二区三区| 亚洲精品漫画一二三区| 无锡市| 成人伊人青草久久综合网| 日本亚洲一区二区精品| 麻豆tv入口在线看| 国产精品一区二区久久岳| 女人的天堂A国产在线观看| 麻豆国产传媒精品视频| 2020年最新国产精品正在播放| 人人爽天天碰天天躁夜夜躁| 欧美亚洲综合成人a∨在线| 国产国产久热这里只有精品| 成人亚欧欧美激情在线观看| 疯狂做受xxxx高潮欧美日本| 亚洲黄色一级片在线观看| 亚洲综合无码AV在线观看| 亚洲人成电影网站色mp4| 亚洲成a人无码av波多野| 国产成人精品一区二区| 日韩中文字幕有码av| 亚洲日韩亚洲另类激情文学 | 黑人玩弄人妻中文在线| 国产精品国产三级国产专| 成人特黄特色毛片免费看| 国产黄色一区二区三区四区| 另类国产精品一区二区| 亚洲一区二区偷拍精品| 久久99精品久久99日本| 亚洲欧美人成人让影院| 久久天堂综合亚洲伊人HD妓女| 国产精品先锋资源在线看| 久久精品亚洲精品国产色婷| 91青青草视频在线观看| 九九热在线精品视频免费| 国产成人精品无码免费看夜聊软件| 在线观看精品日本一区二|