- Trong cac du an SAP khi co nhu
cau ve viec xuat du lieu tu SAP ra dinh dang excel, thong
thuong chung ta co the thong qua tcode SE11, SE16...de load du
lieu roi su dung tinh nang 'Export to spreedsheet' co san cua cac tcode nay de
xuat ra excel. Ngoai ra cung co kha nhieu cac chuong trinh phat trien
cua cong dong ABAPer, dac biet la bo ung dung ABAP2XLSX co the thuc hien hau
nhu moi yeu cau khi lam viec voi excel.
- Nhuoc diem cua viec thuc hien qua SE11 la
khi phai thao tac voi nhieu bang hoac bang co nhieu du lieu thi kha
ton thao tac va mat nhieu thoi gian cho doi; ABAP2XLSX doi hoi
ban su dung SAPLINK de cai dat va tao ra kha nhieu object ma co the se kho
duoc chap nhan o cac he thong yeu cau bao mat cao. Duoi day toi xin dua ra
giai phap xuat du lieu mot cach don gian, su dung cac class chuan cua ALV ma
ban co the su dung bat cu luc nao.
- Chuong trinh nay co the viet duoi dang
function module, subroutine hoac method cua class... tuy theo nhu cau cua cac
ban. Buoc doc du lieu (SELECT) cung tuy theo tung nhu cau cu the nen o day toi
se trich dan phan core cua chuong trinh, con input nhu the nao thi tuy cac ban.
1. Chuyen doi du lieu lay duoc ( duoi
dang internal table ) thanh ALV:
TRY.
CL_SALV_TABLE=>FACTORY(
IMPORTING
R_SALV_TABLE = DATA(LR_TABLE)
CHANGING
T_TABLE = LT_TAB ). " internal table chua du lieu
CATCH CX_SALV_MSG .
EXIT.
ENDTRY.
CL_SALV_TABLE=>FACTORY(
IMPORTING
R_SALV_TABLE = DATA(LR_TABLE)
CHANGING
T_TABLE = LT_TAB ). " internal table chua du lieu
CATCH CX_SALV_MSG .
EXIT.
ENDTRY.
2. Chuyen doi ALV
sang dinh dang XSTRING:
LT_FCAT = CL_SALV_CONTROLLER_METADATA=>GET_LVC_FIELDCATALOG(
R_COLUMNS = LR_TABLE->GET_COLUMNS( )
R_AGGREGATIONS = LR_TABLE->GET_AGGREGATIONS( ) ).
LR_RESULT = CL_SALV_EX_UTIL=>FACTORY_RESULT_DATA_TABLE(
R_DATA = REF #( LT_TAB )
T_FIELDCATALOG = LT_FCAT ).
CL_SALV_BS_LEX=>EXPORT_FROM_RESULT_DATA_TABLE(
EXPORTING
IS_FORMAT = IF_SALV_BS_LEX_FORMAT=>MC_FORMAT_XLSX
IR_RESULT_DATA_TABLE = LR_RESULT
IMPORTING
ER_RESULT_FILE = DATA(LR_XSTRING) ).
CATCH CX_SALV_UNEXPECTED_PARAM_VALUE .
EXIT.
ENDTRY.
O day format xlsx duoc dinh nghia o interface IF_SALV_LEX_FORMAT co the co cac gia tri la MHTML, CSV, XLSX...
3. Sau khi chuyen doi sang dinh dang
xstring, cac ban co the xuat khi chay online ( su dung GUI_DOWNLOAD )
hoac chay offline ( su dung cau lenh OPEN DATA SET...). Duoi day toi thuc
hien tai du lieu xuong PC (chay online).
DATA(LS_XML_CHOICE) = VALUE IF_SALV_BS_XML=>S_TYPE_XML_CHOICE(
KEY = 31
FRONTEND = CL_ALV_BDS=>MC_XLSX_FRONTEND
VERSION = 02
XML_TYPE = IF_SALV_BS_XML=>C_TYPE_XLSX
GUI_TYPE = CL_SALV_EXPORT_XML_DIALOG=>C_GUI_TYPE_EXCEL ).
CL_SALV_EXPORT_XML_DIALOG=>DOWNLOAD(
EXPORTING
S_XML_CHOICE = LS_XML_CHOICE
XML = LR_XSTRING ).
KEY = 31
FRONTEND = CL_ALV_BDS=>MC_XLSX_FRONTEND
VERSION = 02
XML_TYPE = IF_SALV_BS_XML=>C_TYPE_XLSX
GUI_TYPE = CL_SALV_EXPORT_XML_DIALOG=>C_GUI_TYPE_EXCEL ).
CL_SALV_EXPORT_XML_DIALOG=>DOWNLOAD(
EXPORTING
S_XML_CHOICE = LS_XML_CHOICE
XML = LR_XSTRING ).
Tren day
la cac buoc chinh trong chuong trinh xuat du lieu tu SAP ra file
excel .
Comments
Post a Comment