ABAP ALV展示时将内表转换成为XML格式
使用方法CL_SALV_EX_UTIL=>FACTORY_RESULT_DATA_TABLE以及CL_SALV_BS_TT_UTIL=>IF_SALV_BS_TT_UTIL~TRANSFORM可以将ALV展示的内表转换成XML格式,熟悉ABAP开发的各位朋友应该对传入的参数都不陌生,其中FIELDCATLG和DATA属于必输项,其他内容按需填入即可。这边推荐使用函数LVC_FIELDCATALOG_MERGE获取结构的FIELDCATLOG。
LR_RESULT_DATA = CL_SALV_EX_UTIL=>FACTORY_RESULT_DATA_TABLE( T_SELECTED_ROWS = LT_SEL_ROWS T_SELECTED_COLUMNS = LT_SEL_COLS T_SELECTED_CELLS = LT_SEL_CELLS R_DATA = LR_DATA S_LAYOUT = LS_LAYOUT T_FIELDCATALOG = IT_FIELDCATELOG[] T_SORT = LT_SORT T_FILTER = LT_FILTER T_HYPERLINKS = LT_HYPERLINKS S_CURRENT_CELL = LS_CURRENT_CELL HYPERLINK_ENTRY_COLUMN = HYPERLINK_ENTRY_COLUMN DROPDOWN_ENTRY_COLUMN = DROPDOWN_ENTRY_COLUMN R_TOP_OF_LIST = LR_TOP_OF_LIST R_END_OF_LIST = LR_END_OF_LIST T_DROPDOWN_VALUES = LT_DROPDOWN_VALUES ). CASE CL_SALV_BS_A_XML_BASE=>GET_VERSION( ). WHEN IF_SALV_BS_XML=>VERSION_25. L_VERSION = IF_SALV_BS_XML=>VERSION_25. WHEN IF_SALV_BS_XML=>VERSION_26. L_VERSION = IF_SALV_BS_XML=>VERSION_26. ENDCASE. XML_FLAVOUR = IF_SALV_BS_C_TT=>C_TT_XML_FLAVOUR_EXPORT. LS_XML_CHOICE-XML_TYPE = '04'. CALL METHOD CL_SALV_BS_TT_UTIL=>IF_SALV_BS_TT_UTIL~TRANSFORM EXPORTING XML_TYPE = LS_XML_CHOICE-XML_TYPE XML_VERSION = L_VERSION R_RESULT_DATA = LR_RESULT_DATA XML_FLAVOUR = XML_FLAVOUR GUI_TYPE = IF_SALV_BS_XML=>C_GUI_TYPE_GUI IMPORTING XML = XML.
获取之后可以使用函数组SCMS_CONV内的转换函数转成各种其他格式