日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ALV中动态内表+行转化为列

發(fā)布時(shí)間:2025/3/20 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ALV中动态内表+行转化为列 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(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'. "自動(dòng)刷新
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 使用指針動(dòng)態(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'. "自動(dòng)刷新
*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.

總結(jié)

以上是生活随笔為你收集整理的ALV中动态内表+行转化为列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品在线免费 | 麻豆偷拍| 国产愉拍| 国产六区| 美女屁股眼视频免费 | 国内激情 | 免费国产在线视频 | 免费在线国产精品 | 日韩乱淫 | 97精品| 久久久久国产精品区片区无码 | 亚洲特黄 | 日韩色图视频 | 已满18岁免费观看电视连续剧 | 九九夜 | 婷婷五月综合久久中文字幕 | 久久久久久av无码免费看大片 | 黄色免费大片 | 一区二区韩国 | 17c在线视频 | 亚洲三级在线观看 | 久久精品www人人爽人人 | 国产福利一区二区视频 | 日韩av首页 | 亚洲综合免费 | 久久久久无码精品国产sm果冻 | av二区在线 | 伊人999| 免费色站 | 日韩在线观看视频一区 | 国产美女永久免费 | 天天摸天天看 | 色偷偷五月天 | 欧美黄色短视频 | 国产精品自拍视频一区 | 日本黄色免费看 | 青青草成人免费视频 | 在线能看的av网站 | 国产黄色大片 | av中文字幕网 | 在线观看免费黄色 | 五月婷婷丁香网 | 亚洲第一视频在线观看 | 在线播放成人av | 樱空桃在线观看 | 亚洲精品小视频 | 久久亚洲aⅴ无码精品 | 色诱av | 午夜影院h| 男男做的视频 | 色成人综合 | 福利影院av | 免费看一级一片 | 亚洲成人网在线观看 | 天天插夜夜操 | 婷婷啪啪 | 一级片久久久 | 伊人网在线视频观看 | 欧美黄色特级视频 | 少妇视频网站 | 激情小说视频在线 | 亚洲视频手机在线观看 | 丁香婷婷九月 | 伊人网av在线| 中文字幕日韩三级 | 韩日欧美 | 日韩一区二区三区四区 | 四虎影视大全 | 国产又大又硬又粗 | 91av官网 | 玖草在线 | 欧美色图在线播放 | 亚洲av网址在线 | 久操热| 在线国产区| 在线免费一区二区 | 国产精品无码专区av在线播放 | 亚洲视频国产视频 | 国产主播精品在线 | 热久久精品 | a级网站在线观看 | 欧美影院一区二区 | 成人va在线观看 | 男人午夜影院 | 国产91大片| 欧美不卡视频在线观看 | 激情综合网五月 | 久久综合久久综合久久 | 久草色视频 | 天天av天天爽 | 久久精品国产一区二区电影 | 尤物一区 | 二区三区偷拍浴室洗澡视频 | 天堂网91 | 超碰综合在线 | 激情视频区 | 久久这里都是精品 | 日日干日日射 | 性欧美日本|