乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      【轉(zhuǎn)】ALV中動態(tài)內(nèi)表+行轉(zhuǎn)化為列

       taewon 2012-07-25

      轉(zhuǎn)換為:
      REPORT z_barry_test_fieldsymols .
      TYPE-POOLS: slis.
      TABLES: mseg,mkpf.
      DATA: gd_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: sla TYPE slis_layout_alv ,
            ivariant LIKE disvariant,
            i_repid LIKE sy-repid ,
            i_excluding TYPE slis_t_extab.
      TYPES: BEGIN OF ty_sum ,
              werks LIKE mseg-werks ,
              matnr LIKE mseg-matnr ,
              lgort LIKE mseg-lgort ,
              bwart LIKE mseg-bwart ,
              menge LIKE mseg-menge ,
            END OF ty_sum.
      DATA : itab TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
      DATA : hs_sum TYPE HASHED TABLE OF ty_sum
             WITH UNIQUE KEY werks matnr lgort bwart WITH HEADER LINE .
      DATA : itab_sum TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
      DATA: BEGIN OF itab_out OCCURS 0,
              werks LIKE mseg-werks ,
              matnr LIKE mseg-matnr ,
              lgort LIKE mseg-lgort ,
              menge01 TYPE i        ,
              menge02 TYPE i        ,
              menge03 TYPE i        ,
              menge04 TYPE i        ,
              menge05 TYPE i        ,
              menge06 TYPE i        ,
              menge07 TYPE i        ,
              menge08 TYPE i        ,
              menge09 TYPE i        ,
              menge10 TYPE i        ,
              menge11 TYPE i        ,
              menge12 TYPE i        ,
              menge13 TYPE i        ,
              menge14 TYPE i        ,
              menge15 TYPE i        ,
              menge16 TYPE i        ,
              menge17 TYPE i        ,
              menge18 TYPE i        ,
              menge19 TYPE i        ,
              menge20 TYPE i        ,
              menge21 TYPE i        ,
              menge22 TYPE i        ,
              menge23 TYPE i        ,
              menge24 TYPE i        ,
              menge25 TYPE i        ,
              menge26 TYPE i        ,
              line_sum TYPE i       ,
            END OF itab_out.
      TYPES: BEGIN OF ty_bwart ,
              bwart LIKE mseg-bwart ,
            END OF ty_bwart.
      DATA : hs_bwart TYPE HASHED TABLE OF ty_bwart
             WITH UNIQUE KEY bwart WITH HEADER LINE .
      DATA : itab_bwart TYPE STANDARD TABLE OF ty_bwart WITH HEADER LINE .
      FIELD-SYMBOLS: <f_fs1> ,
                     <f_fs2>.
      DATA: max_count TYPE i .
      SELECT-OPTIONS: s_mblnr FOR mseg-mblnr ,
                      s_budat FOR mkpf-budat .
      PARAMETERS:     p_sum AS CHECKBOX .
      START-OF-SELECTION.
      PERFORM getdata.
      PERFORM fixdata.
      IF p_sum = 'X'.
          PERFORM outdata.
      ELSE.
          PERFORM outdata2.
      ENDIF.
      *&---------------------------------------------------------------------*
      *&      Form GETDATA
      *&---------------------------------------------------------------------*
      FORM getdata.
      SELECT werks matnr lgort bwart menge INTO TABLE itab
      FROM mkpf INNER JOIN mseg ON mkpf~mblnr = mseg~mblnr AND
                                     mkpf~mjahr = mseg~mjahr
      WHERE mkpf~mblnr IN s_mblnr AND
              mkpf~budat IN s_budat .
      ENDFORM.                    " GETDATA
      *&---------------------------------------------------------------------*
      *&      Form FIXDATA
      *&---------------------------------------------------------------------*
      FORM fixdata.
      DATA: index LIKE sy-tabix .
      LOOP AT itab.
          hs_sum = itab.
          COLLECT hs_sum.
          hs_bwart = itab-bwart .
          COLLECT hs_bwart.
      ENDLOOP.
      SORT hs_bwart.
      itab_bwart[] = hs_bwart[].
      itab_sum[] = hs_sum[].
      LOOP AT itab_sum.
          itab_out-werks = itab_sum-werks .
          itab_out-matnr = itab_sum-matnr .
          itab_out-lgort = itab_sum-lgort .
          READ TABLE itab_bwart WITH KEY bwart = itab_sum-bwart .
          index = sy-tabix + 3.
          ASSIGN COMPONENT index OF STRUCTURE itab_out TO <f_fs1>.
          <f_fs1> = itab_sum-menge.
          itab_out-line_sum = itab_sum-menge.
          COLLECT itab_out.
          CLEAR itab_out.
      ENDLOOP.
      ENDFORM.                    " FIXDATA
      *&---------------------------------------------------------------------*
      *&      Form outdata
      *&---------------------------------------------------------------------*
      FORM outdata.
      PERFORM fieldcat_init .
      sla-colwidth_optimize = 'X'.
      sla-zebra             = 'X'.
      i_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
             EXPORTING
                  i_callback_program      = i_repid
                  it_fieldcat             = gd_fieldcat[]
                  i_save                  = 'A'
                  is_variant              = ivariant
                  is_layout               = sla
                  it_excluding            = i_excluding
                  i_callback_user_command = 'USER_COMMAND'
             TABLES
                  t_outtab                = itab_sum
             EXCEPTIONS
                  program_error           = 1
                  OTHERS                  = 2.
      ENDFORM.                    " outdata
      *---------------------------------------------------------------------*
      *       FORM fieldcat_init                                            *
      *---------------------------------------------------------------------*
      FORM fieldcat_init .
      PERFORM frm_catlg_set USING: 'WERKS'     'WERKS' 'X' ,
                                     'MATNR'     'MATNR' 'X' ,
                                     'LGORT'     'LGORT' 'X' ,
                                     'BWART'     'BWART' 'X' ,
                                     'MENGE'     'MENGE' '' .
      ENDFORM.                    "fieldcat_init
      *---------------------------------------------------------------------*
      *       FORM frm_catlg_set                                            *
      *---------------------------------------------------------------------*
      FORM frm_catlg_set USING p_field
                               p_text
                               p_key.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      ls_fieldcat-fieldname     = p_field.
      ls_fieldcat-seltext_l     = p_text.
      ls_fieldcat-key           = p_key.
      IF p_field = 'LINE_SUM'.
          ls_fieldcat-emphasize = 'C700'.
      ENDIF.
      APPEND ls_fieldcat TO gd_fieldcat .
      CLEAR ls_fieldcat .
      ENDFORM.                    "frm_catlg_set
      *&--------------------------------------------------------------------*
      *&      Form user_command
      *&--------------------------------------------------------------------*
      FORM user_command USING r_ucomm LIKE sy-ucomm
                          rs_selfield TYPE slis_selfield.
      READ TABLE itab INDEX rs_selfield-tabindex.
      CASE r_ucomm.
          WHEN '&IC1'. "雙擊
          WHEN 'EXIT'.
            LEAVE PROGRAM.
      ENDCASE.
      rs_selfield-refresh = 'X'. "自動刷新
      ENDFORM. "user_com
      *---------------------------------------------------------------------*
      *       FORM outdata2                                                 *
      *---------------------------------------------------------------------*
      FORM outdata2.
      PERFORM fieldcat_init2 .
      sla-colwidth_optimize = 'X'.
      sla-zebra             = 'X'.
      i_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
             EXPORTING
                  i_callback_program      = i_repid
                  it_fieldcat             = gd_fieldcat[]
                  i_save                  = 'A'
                  is_variant              = ivariant
                  is_layout               = sla
                  it_excluding            = i_excluding
                  i_callback_user_command = 'USER_COMMAND'
             TABLES
                  t_outtab                = itab_out
             EXCEPTIONS
                  program_error           = 1
                  OTHERS                  = 2.
      ENDFORM.                    " outdata
      *---------------------------------------------------------------------*
      *       FORM fieldcat_init2                                           *
      *---------------------------------------------------------------------*
      FORM fieldcat_init2 .
      DATA: c(2) TYPE n ,
              txt(20) TYPE c .
      PERFORM frm_catlg_set USING: 'WERKS'   'WERKS' 'X' ,
                                     'MATNR'   'MATNR' 'X' ,
                                     'LGORT'   'LGORT' 'X' .
      LOOP AT hs_bwart .
          c = c + 1.
          CONCATENATE 'MENGE' c INTO txt.
          PERFORM frm_catlg_set USING: txt hs_bwart-bwart '' .
      ENDLOOP.
      PERFORM frm_catlg_set USING: 'LINE_SUM' 'SUM' '' .
      ENDFORM.                    "fieldcat_init
      使用指針動態(tài)生成內(nèi)表的方法:
      REPORT z_barry_test_fieldsymols .
      TYPE-POOLS: slis.
      TABLES: mseg,mkpf.
      DATA: gd_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: sla TYPE slis_layout_alv ,
            ivariant LIKE disvariant,
            i_repid LIKE sy-repid ,
            i_excluding TYPE slis_t_extab.
      TYPES: BEGIN OF ty_sum ,
              werks LIKE mseg-werks ,
              matnr LIKE mseg-matnr ,
              lgort LIKE mseg-lgort ,
              bwart LIKE mseg-bwart ,
              menge LIKE mseg-menge ,
            END OF ty_sum.
      DATA : itab TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
      DATA : hs_sum TYPE HASHED TABLE OF ty_sum
             WITH UNIQUE KEY werks matnr lgort bwart WITH HEADER LINE .
      DATA : itab_sum TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
      TYPES: BEGIN OF ty_bwart ,
              bwart LIKE mseg-bwart ,
            END OF ty_bwart.
      DATA : hs_bwart TYPE HASHED TABLE OF ty_bwart
             WITH UNIQUE KEY bwart WITH HEADER LINE .
      DATA : itab_bwart TYPE STANDARD TABLE OF ty_bwart WITH HEADER LINE .
      FIELD-SYMBOLS: <f_fs1> ,
                     <f_out> TYPE STANDARD TABLE ,
                     <f_out_wa> .
      DATA: max_count TYPE i ,
            dy_out    TYPE REF TO data ,
            dy_out_wa TYPE REF TO data,
            xfc       TYPE lvc_s_fcat,
            ifc       TYPE lvc_t_fcat.
      DATA: c(2) TYPE n ,
            txt(20) TYPE c .

      SELECT-OPTIONS: s_mblnr FOR mseg-mblnr ,
                      s_budat FOR mkpf-budat .
      PARAMETERS:     p_sum AS CHECKBOX .
      START-OF-SELECTION.
      PERFORM getdata.
      PERFORM fixdata.
      IF p_sum = 'X'.
          PERFORM outdata.
      ELSE.
          PERFORM outdata2.
      ENDIF.
      *&---------------------------------------------------------------------*
      *&      Form GETDATA
      *&---------------------------------------------------------------------*
      FORM getdata.
      SELECT werks matnr lgort bwart menge INTO TABLE itab
      FROM mkpf INNER JOIN mseg ON mkpf~mblnr = mseg~mblnr AND
                                     mkpf~mjahr = mseg~mjahr
      WHERE mkpf~mblnr IN s_mblnr AND
              mkpf~budat IN s_budat .
      ENDFORM.                    " GETDATA
      *&---------------------------------------------------------------------*
      *&      Form FIXDATA
      *&---------------------------------------------------------------------*
      FORM fixdata.
      DATA: index LIKE sy-tabix .
      LOOP AT itab.
          hs_sum = itab.
          COLLECT hs_sum.
          hs_bwart = itab-bwart .
          COLLECT hs_bwart.
      ENDLOOP.
      SORT hs_bwart.
      itab_bwart[] = hs_bwart[].
      itab_sum[] = hs_sum[].
      PERFORM creat_itab_out.
      LOOP AT itab_sum.
          ASSIGN COMPONENT 'WERKS' OF STRUCTURE <f_out_wa> TO <f_fs1>.
          <f_fs1> = itab_sum-werks.
          ASSIGN COMPONENT 'MATNR' OF STRUCTURE <f_out_wa> TO <f_fs1>.
          <f_fs1> = itab_sum-matnr.
          ASSIGN COMPONENT 'LGORT' OF STRUCTURE <f_out_wa> TO <f_fs1>.
          <f_fs1> = itab_sum-lgort.
          READ TABLE itab_bwart WITH KEY bwart = itab_sum-bwart .
          index = sy-tabix + 3.
          ASSIGN COMPONENT index OF STRUCTURE <f_out_wa> TO <f_fs1>.
          <f_fs1> = itab_sum-menge.
          ASSIGN COMPONENT 'LINE_SUM' OF STRUCTURE <f_out_wa> TO <f_fs1>.
          <f_fs1> = itab_sum-menge.
          COLLECT <f_out_wa> INTO <f_out> .
          CLEAR <f_out_wa>.
      ENDLOOP.
      ENDFORM.                    " FIXDATA
      *&---------------------------------------------------------------------*
      *&      Form outdata
      *&---------------------------------------------------------------------*
      FORM outdata.
      PERFORM fieldcat_init .
      sla-colwidth_optimize = 'X'.
      sla-zebra             = 'X'.
      i_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
             EXPORTING
                  i_callback_program      = i_repid
                  it_fieldcat             = gd_fieldcat[]
                  i_save                  = 'A'
                  is_variant              = ivariant
                  is_layout               = sla
                  it_excluding            = i_excluding
      *            i_callback_user_command = 'USER_COMMAND'
             TABLES
                  t_outtab                = itab_sum
             EXCEPTIONS
                  program_error           = 1
                  OTHERS                  = 2.
      ENDFORM.                    " outdata
      *---------------------------------------------------------------------*
      *       FORM fieldcat_init                                            *
      *---------------------------------------------------------------------*
      FORM fieldcat_init .
      PERFORM frm_catlg_set USING: 'WERKS'     'WERKS' 'X' ,
                                     'MATNR'     'MATNR' 'X' ,
                                     'LGORT'     'LGORT' 'X' ,
                                     'BWART'     'BWART' '' ,
                                     'MENGE'     'MENGE' '' .
      ENDFORM.                    "fieldcat_init
      *---------------------------------------------------------------------*
      *       FORM frm_catlg_set                                            *
      *---------------------------------------------------------------------*
      FORM frm_catlg_set USING p_field
                               p_text
                               p_key.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      ls_fieldcat-fieldname     = p_field.
      ls_fieldcat-seltext_l     = p_text.
      ls_fieldcat-key           = p_key.
      IF p_field = 'LINE_SUM'.
          ls_fieldcat-emphasize = 'C700'.
      ENDIF.
      APPEND ls_fieldcat TO gd_fieldcat .
      CLEAR ls_fieldcat .
      ENDFORM.                    "frm_catlg_set
      *&--------------------------------------------------------------------*
      *&      Form user_command
      *&--------------------------------------------------------------------*
      *FORM user_command USING r_ucomm LIKE sy-ucomm
      *                    rs_selfield TYPE slis_selfield.
      * READ TABLE itab INDEX rs_selfield-tabindex.
      * CASE r_ucomm.
      *    WHEN '&IC1'. "雙擊
      *
      *    WHEN 'EXIT'.
      *      LEAVE PROGRAM.
      * ENDCASE.
      ** rs_selfield-refresh = 'X'. "自動刷新
      *ENDFORM. "user_com
      *---------------------------------------------------------------------*
      *       FORM outdata2                                                 *
      *---------------------------------------------------------------------*
      FORM outdata2.
      PERFORM fieldcat_init2 .
      sla-colwidth_optimize = 'X'.
      sla-zebra             = 'X'.
      i_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
             EXPORTING
                  i_callback_program      = i_repid
                  it_fieldcat             = gd_fieldcat[]
                  i_save                  = 'A'
                  is_variant              = ivariant
                  is_layout               = sla
                  it_excluding            = i_excluding
             TABLES
                  t_outtab                = <f_out>
             EXCEPTIONS
                  program_error           = 1
                  OTHERS                  = 2.
      ENDFORM.                    " outdata
      *---------------------------------------------------------------------*
      *       FORM fieldcat_init2                                           *
      *---------------------------------------------------------------------*
      FORM fieldcat_init2 .
      CLEAR c .
      PERFORM frm_catlg_set USING: 'WERKS'   'WERKS' 'X' ,
                                     'MATNR'   'MATNR' 'X' ,
                                     'LGORT'   'LGORT' 'X' .
      LOOP AT hs_bwart .
          c = c + 1.
          CONCATENATE 'MENGE' c INTO txt.
          PERFORM frm_catlg_set USING: txt hs_bwart-bwart '' .
      ENDLOOP.
      PERFORM frm_catlg_set USING: 'LINE_SUM' 'SUM' '' .
      ENDFORM.                    "fieldcat_init
      *---------------------------------------------------------------------*
      *       FORM creat_itab_out                                           *
      *---------------------------------------------------------------------*
      FORM creat_itab_out.
      CLEAR c.
      PERFORM build_itab_stru USING: 'WERKS' 'MSEG' 'WERKS' ,
                                       'MATNR' 'MSEG' 'MATNR' ,
                                       'LGORT' 'MSEG' 'LGORT' .
      LOOP AT hs_bwart.
          c = c + 1.
          CONCATENATE 'MENGE' c INTO txt.
          PERFORM build_itab_stru USING: txt 'MSEG' 'MENGE' .
      ENDLOOP.
      PERFORM build_itab_stru USING: 'LINE_SUM' 'MSEG' 'MENGE' .
      CALL METHOD cl_alv_table_create=>create_dynamic_table
                     EXPORTING
                        it_fieldcatalog = ifc
                     IMPORTING
                        ep_table        = dy_out.
      ASSIGN dy_out->* TO <f_out>.
      CREATE DATA dy_out_wa LIKE LINE OF <f_out>.
      ASSIGN dy_out_wa->* TO <f_out_wa>.
      ENDFORM.
      *---------------------------------------------------------------------*
      *       FORM build_itab_stru                                          *
      *---------------------------------------------------------------------*
      FORM build_itab_stru USING fdname ref_t ref_f.
      xfc-fieldname = fdname .
      xfc-ref_table = ref_t.
      xfc-ref_field = ref_f.
      APPEND xfc TO ifc.
      ENDFORM.

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約