*&---------------------------------------------------------------------*
*& Report ZMMR102
*&---------------------------------------------------------------------*
*& Author : NathanSun
*& Create Date : 2019-06-27
*& Program Type : Report
*& Description : 对帐确认函
*&---------------------------------------------------------------------*
REPORT ZSDR002.
*&---------------------------------------------------------------------*
*& 包含 YN_TEST02_TOP
*&---------------------------------------------------------------------*
TABLES:LIKP,EKKO,VBAP,VBRK,VBPA.
TYPE-POOLS:SLIS.
"定义ALV输出所需变量
DATA: S_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
TYPES: BEGIN OF GTS_DATA_HEAD,
CKBOX TYPE C, "选择列
ZDZQJ TYPE DATS, "对账期间日期
ZBITI TYPE CHAR30, "标题
VBELN TYPE VBRK-VBELN, "开票凭证
KUNRG TYPE VBRK-KUNRG, "客户
NAME1 TYPE KNA1-NAME1, "客户名称
ZDZRN TYPE CHAR30, "对账人
ZLXDH TYPE CHAR30, "联系电话
ZCZDH TYPE CHAR30, "传真电话
ZDZYX TYPE CHAR30, "电子邮箱
BUKRS TYPE VBRK-BUKRS, "公司代码
BUTXT TYPE T001-BUTXT, "公司代码或公司的名称
ZTERM TYPE VBRK-ZTERM, "付款条件代码
TEXT1 TYPE T052U-TEXT1, "收付条款的自解释
ZDQRQ TYPE DATS, "到期日
END OF GTS_DATA_HEAD.
TYPES: BEGIN OF GTS_DATA_ITEM,
ITEM TYPE CHAR10, "序号
VBELN TYPE VBRP-VBELN, "开票凭证
POSNR TYPE VBRP-POSNR, "开票项目
KUNRG TYPE VBRK-KUNRG, "客户编号
MATNR TYPE VBRP-MATNR, "物料编号
WADAT_IST TYPE LIKP-WADAT_IST, "DN过账日期
VGBEL TYPE VBRP-VGBEL, "送货单号
AUBEL TYPE VBRP-AUBEL, "销售凭证
MEINS TYPE VBRP-MEINS, "单位
FKIMG TYPE VBRP-FKIMG, "数量
ZVSDJ TYPE VBRP-NETWR, "单价(不含税)
NETWR TYPE VBRP-NETWR, "金额(不含税)
ZSHLV TYPE CHAR20, "税率
MWSBP TYPE VBRP-MWSBP, "税额
ZHSJE TYPE VBRP-NETWR, "金额(含税)
END OF GTS_DATA_ITEM.
DATA: GT_DATA TYPE TABLE OF GTS_DATA_HEAD WITH HEADER LINE.
DATA: GT_DATA_A TYPE TABLE OF GTS_DATA_HEAD WITH HEADER LINE.
DATA: GT_DATA_IT TYPE TABLE OF GTS_DATA_ITEM WITH HEADER LINE.
DATA: GT_DATA_IT_A TYPE TABLE OF GTS_DATA_ITEM WITH HEADER LINE.
DATA: GT_DATA_IT_B TYPE TABLE OF GTS_DATA_ITEM WITH HEADER LINE.
DATA: LV_NETJE TYPE VBRP-NETWR.
DATA: LV_NETSE TYPE VBRP-NETWR.
DATA: LV_NETHS TYPE VBRP-NETWR.
DATA: LV_HEAD TYPE CHAR40.
DATA: GV_TOP TYPE SDYDO_TEXT_ELEMENT.
DATA: GV_SPRAS TYPE SPRAS.
DATA: ADDRNUMBER TYPE AD_ADDRNUM .
DATA: COUNTRY TYPE LAND1 .
DATA: LV_ITEM TYPE CHAR10.
DATA: LV_ITEM1 TYPE STRING.
*导出EXCEL所用到变量
TYPE-POOLS OLE2 .
DATA: V_EXCEL TYPE OLE2_OBJECT,
V_SHEET TYPE OLE2_OBJECT,
V_BOOK TYPE OLE2_OBJECT,
V_CELL TYPE OLE2_OBJECT.
DATA: V_SHEET_NUMBER TYPE I.
DATA LV_NM TYPE N .
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS: P_BUKRS LIKE VBRK-BUKRS MODIF ID C1 OBLIGATORY. "公司
SELECT-OPTIONS: S_FKDAT FOR VBRK-FKDAT MODIF ID C1 OBLIGATORY. "对账日期
SELECT-OPTIONS: S_KUNRG FOR VBRK-KUNRG MODIF ID C1. "客户编码
PARAMETERS: P_ZDZRQ LIKE VBRK-FKDAT MODIF ID C1 OBLIGATORY. "对账期间日期
SELECTION-SCREEN END OF BLOCK B1.
*&---------------------------------------------------------------------*
*& 包含 YN_TEST02_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form SCREEN_SETTING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM SCREEN_SETTING .
* AUTHORITY-CHECK OBJECT 'M_MATE_WRK'
* ID 'WERKS' FIELD P_WERKS.
* IF SY-SUBRC <> 0.
* MESSAGE '您没有工厂:'&& P_WERKS && ' 的权限!' TYPE 'E' .
* ENDIF.
IF S_FKDAT-HIGH IS INITIAL.
MESSAGE '请输入对账日期的上限!' TYPE 'E' .
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FOM_GETDATA .
CLEAR GT_DATA[] .
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_DATA[] FROM VBRK
WHERE BUKRS = P_BUKRS
.
LOOP AT GT_DATA.
GT_DATA-ZBITI = P_ZDZRQ(4) && '年' && P_ZDZRQ+4(2) && '月对帐确认函' .
CLEAR GT_DATA-KUNRG .
SELECT SINGLE KUNNR INTO GT_DATA-KUNRG FROM VBPA
WHERE VBPA~VBELN = GT_DATA-VBELN
AND VBPA~PARVW = 'AG'
.
SELECT SINGLE NAME1 INTO GT_DATA-NAME1 FROM KNA1
WHERE KUNNR = GT_DATA-KUNRG
.
SELECT SINGLE BUTXT INTO GT_DATA-BUTXT FROM T001
WHERE BUKRS = GT_DATA-BUKRS
.
GT_DATA-ZDZRN = '陈婷'.
GT_DATA-ZLXDH = '021-3957-5538'.
GT_DATA-ZDZYX = 'Rong.Zhou@brose.com'.
GT_DATA-BUTXT = GT_DATA-BUTXT .
GT_DATA-ZDQRQ = SY-DATUM .
SELECT SINGLE TEXT1 INTO GT_DATA-TEXT1 FROM T052U
WHERE ZTERM = GT_DATA-ZTERM
.
MODIFY GT_DATA .
CLEAR GT_DATA .
ENDLOOP.
DELETE GT_DATA[] WHERE KUNRG NOT IN S_KUNRG .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_create_xsl
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_CREATE_XSL .
DATA: L_NAME LIKE WWWDATATAB,
L_MIME LIKE W3MIME OCCURS 10,
L_FILENAME TYPE STRING,
L_PATH TYPE STRING,
L_FULLPATH TYPE STRING,
L_ROW TYPE I,
L_COL TYPE I,
L_TITLE TYPE STRING.
L_TITLE = '对帐确认函'.
L_NAME-OBJID = 'ZSDR002'. " 模板
L_NAME-RELID = 'MI'.
L_NAME-TEXT = SY-TITLE.
CALL FUNCTION 'WWWDATA_IMPORT'
EXPORTING
KEY = L_NAME
TABLES
* HTML =
MIME = L_MIME
EXCEPTIONS
WRONG_OBJECT_TYPE = 1
IMPORT_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = L_TITLE
DEFAULT_EXTENSION = 'xls'
DEFAULT_FILE_NAME = L_TITLE
FILE_FILTER = '(电子表格EXCEL)'
CHANGING
FILENAME = L_FILENAME
PATH = L_PATH
FULLPATH = L_FULLPATH
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
STOP.
ENDIF.
*弹出窗口选择导出路径
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = L_FULLPATH
FILETYPE = 'BIN'
TABLES
DATA_TAB = L_MIME.
*--打开excel模板
PERFORM FRM_OPEN_EXCEL USING L_FULLPATH.
*--打开excel第一个sheet
V_SHEET_NUMBER = 1.
PERFORM FRM_OPEN_EXCEL_SHEET USING V_SHEET_NUMBER.
*锁定单元格然后赋值
*--写EXCEL FILE的内容
L_ROW = 1.
L_COL = 1.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-ZBITI.
L_ROW = 2.
L_COL = 2.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-NAME1.
L_ROW = 3.
L_COL = 2.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-ZDZRN.
L_ROW = 4.
L_COL = 2.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-ZLXDH.
L_ROW = 5.
L_COL = 2.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-ZCZDH.
L_ROW = 6.
L_COL = 2.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-ZDZYX.
L_ROW = 2.
L_COL = 10.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-BUTXT.
L_ROW = 4.
L_COL = 10.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-TEXT1.
L_ROW = 5.
L_COL = 10.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-ZDQRQ.
CLEAR LV_HEAD .
LV_HEAD = '对账期间:' && S_FKDAT-LOW(4) && '年' && S_FKDAT-LOW+4(2) && '月' && S_FKDAT-LOW+6(2) && '日至' &&
S_FKDAT-HIGH(4) && '年' && S_FKDAT-HIGH+4(2) && '月' && S_FKDAT-HIGH+6(2) && '日' .
L_ROW = 9.
L_COL = 1.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL LV_HEAD.
L_ROW = 9.
L_COL = 10.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL '币种:CNY'.
CLEAR GT_DATA_IT[] .
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_DATA_IT[] FROM VBRP
WHERE VBELN = GT_DATA_A-VBELN
.
SORT GT_DATA_IT[] BY VBELN MATNR .
GT_DATA_IT_A[] = GT_DATA_IT[] .
DELETE ADJACENT DUPLICATES FROM GT_DATA_IT[] COMPARING VBELN MATNR.
CLEAR LV_NETJE .
CLEAR LV_NETSE .
CLEAR LV_NETHS .
LOOP AT GT_DATA_IT.
CLEAR GT_DATA_IT-NETWR .
CLEAR GT_DATA_IT-FKIMG .
LOOP AT GT_DATA_IT_A WHERE VBELN = GT_DATA_IT-VBELN AND MATNR = GT_DATA_IT-MATNR.
GT_DATA_IT-NETWR = GT_DATA_IT-NETWR + GT_DATA_IT_A-NETWR .
GT_DATA_IT-FKIMG = GT_DATA_IT-FKIMG + GT_DATA_IT_A-FKIMG .
CLEAR GT_DATA_IT_A .
ENDLOOP.
SELECT SINGLE KUNNR INTO GT_DATA_IT-KUNRG FROM VBPA
WHERE VBPA~VBELN = GT_DATA_IT-VBELN
AND VBPA~PARVW = 'AG'
.
SELECT SINGLE WADAT_IST INTO GT_DATA_IT-WADAT_IST FROM LIKP
WHERE LIKP~VBELN = GT_DATA_IT-VGBEL
.
IF GT_DATA_IT-FKIMG <> 0.
GT_DATA_IT-ZVSDJ = GT_DATA_IT-NETWR / GT_DATA_IT-FKIMG .
ENDIF.
GT_DATA_IT-ZSHLV = '13%'.
GT_DATA_IT-ZHSJE = GT_DATA_IT-NETWR + GT_DATA_IT-MWSBP .
LV_NETJE = LV_NETJE + GT_DATA_IT-NETWR .
LV_NETSE = LV_NETSE + GT_DATA_IT-MWSBP .
LV_NETHS = LV_NETHS + GT_DATA_IT-ZHSJE .
MODIFY GT_DATA_IT.
CLEAR GT_DATA_IT .
ENDLOOP.
DELETE GT_DATA_IT WHERE WADAT_IST NOT IN S_FKDAT .
CLEAR LV_ITEM .
LOOP AT GT_DATA_IT.
ADD 1 TO LV_ITEM .
L_ROW = SY-TABIX + 10.
L_COL = 1.
GT_DATA_IT-ITEM = LV_ITEM .
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-ITEM.
L_COL = 2.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-KUNRG.
L_COL = 3.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-MATNR.
L_COL = 4.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-WADAT_IST.
L_COL = 5.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-VGBEL.
L_COL = 6.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-AUBEL.
L_COL = 7.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-MEINS.
L_COL = 8.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-FKIMG.
L_COL = 9.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-ZVSDJ.
L_COL = 10.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-NETWR.
L_COL = 11.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-ZSHLV.
L_COL = 12.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-MWSBP.
L_COL = 13.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_IT-ZHSJE.
CLEAR GT_DATA_IT .
ENDLOOP.
ADD 2 TO L_ROW .
L_COL = 7.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL '合计:'.
L_COL = 10.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL LV_NETJE.
L_COL = 12.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL LV_NETSE.
L_COL = 13.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL LV_NETHS.
ADD 1 TO L_ROW .
L_COL = 1.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL '制表人:'.
L_COL = 2.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL GT_DATA_A-ZDZRN.
L_COL = 3.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL '制表日期:'.
L_COL = 4.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL SY-DATUM.
L_COL = 9.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL '客户确认:'.
ADD 3 TO L_ROW .
L_COL = 1.
PERFORM FRM_WRITE_CELL USING L_ROW L_COL '注:退货/少料请用负数表示。 '.
* 关闭EXCEL
PERFORM FRM_SAVE_EXCEL USING L_FULLPATH.
ENDFORM. " frm_create_xsl
*&---------------------------------------------------------------------*
*& Form FRM_OPEN_EXCEL
*&---------------------------------------------------------------------*
* -->P_L_FULLPATH Local excel file full path
*----------------------------------------------------------------------*
FORM FRM_OPEN_EXCEL USING PA_PATH.
CREATE OBJECT V_EXCEL 'Excel.Application'.
CALL METHOD OF V_EXCEL 'Workbooks' = V_BOOK.
CALL METHOD OF V_BOOK 'Open' = V_BOOK
EXPORTING #1 = PA_PATH.
IF SY-SUBRC <> 0.
MESSAGE E001(00) WITH 'Open file failed!'.
STOP.
ENDIF.
ENDFORM. " FRM_OPEN_EXCEL
*&---------------------------------------------------------------------*
*& Form FRM_OPEN_EXCEL_SHEET
*&---------------------------------------------------------------------*
* -->P_V_SHEET_NUMBER sheet number
*----------------------------------------------------------------------*
FORM FRM_OPEN_EXCEL_SHEET USING PA_SHEET_NUMBER.
SET PROPERTY OF V_EXCEL 'Visible' = 1.
CALL METHOD OF V_BOOK 'Sheets' = V_SHEET
EXPORTING #1 = PA_SHEET_NUMBER.
ENDFORM. " FRM_OPEN_EXCEL_SHEET
*&---------------------------------------------------------------------*
*& Form FRM_WRITE_CELL
*&---------------------------------------------------------------------*
* -->P_L_ROW number of row
* -->P_L_COL number of collum
* -->P_L_VAL cell value
*----------------------------------------------------------------------*
FORM FRM_WRITE_CELL USING PA_ROW
PA_COL
PA_VAL.
CALL METHOD OF V_SHEET 'Cells' = V_CELL
EXPORTING #1 = PA_ROW
#2 = PA_COL.
SET PROPERTY OF V_CELL 'Value' = PA_VAL.
ENDFORM. " FRM_WRITE_CELL
*&---------------------------------------------------------------------*
*& Form FRM_SAVE_EXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_L_FULLPATH text
*----------------------------------------------------------------------*
FORM FRM_SAVE_EXCEL USING PA_FULLPATH.
SET PROPERTY OF V_EXCEL 'DisplayAlerts' = 0.
CALL METHOD OF V_BOOK 'SAVEAS'
EXPORTING
#1 = PA_FULLPATH.
CALL METHOD OF V_BOOK 'Exit' = V_BOOK.
FREE OBJECT V_EXCEL.
ENDFORM. " FRM_SAVE_EXCEL
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_DISPLAY .
CLEAR S_LAYOUT.
S_LAYOUT-ZEBRA = 'X'.
* S_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
* s_layout-box_fieldname = 'BOX'.
PERFORM FRM_FILL_FIELD .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT = S_LAYOUT
IT_FIELDCAT = GT_FIELDCAT
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
TABLES
T_OUTTAB = GT_DATA[].
ENDFORM.
FORM FRM_FILL_FIELD .
DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DEFINE FILL_FIELD.
WA_FIELDCAT-FIELDNAME = &1.
WA_FIELDCAT-SELTEXT_L = &2.
IF WA_FIELDCAT-FIELDNAME = 'CKBOX' .
WA_FIELDCAT-OUTPUTLEN = '6'.
WA_FIELDCAT-CHECKBOX = 'X'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
IF WA_FIELDCAT-FIELDNAME = 'ZDQRQ' .
WA_FIELDCAT-REF_TABNAME = 'ZDQR'.
WA_FIELDCAT-REF_FIELDNAME = 'ZDQR'.
WA_FIELDCAT-OUTPUTLEN = '12'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF.
IF WA_FIELDCAT-FIELDNAME = 'PLNBEZ'
OR WA_FIELDCAT-FIELDNAME = 'MATNR' .
WA_FIELDCAT-REF_TABNAME = 'MARA'.
WA_FIELDCAT-REF_FIELDNAME = 'MATNR'.
ENDIF.
IF WA_FIELDCAT-FIELDNAME = 'VBELN'
OR WA_FIELDCAT-FIELDNAME = 'KUNRG'
.
WA_FIELDCAT-OUTPUTLEN = '12'.
ENDIF.
IF WA_FIELDCAT-FIELDNAME = 'NAME1'
.
WA_FIELDCAT-OUTPUTLEN = '40'.
ENDIF.
IF WA_FIELDCAT-FIELDNAME = 'ZDZRN'
OR WA_FIELDCAT-FIELDNAME = 'ZLXDH'
OR WA_FIELDCAT-FIELDNAME = 'ZCZDH'
OR WA_FIELDCAT-FIELDNAME = 'ZDZYX'
.
WA_FIELDCAT-OUTPUTLEN = '30'.
WA_FIELDCAT-EDIT = 'X'.
ENDIF .
APPEND WA_FIELDCAT TO GT_FIELDCAT.
CLEAR WA_FIELDCAT.
END-OF-DEFINITION.
FILL_FIELD :
'CKBOX' '选择列',
'VBELN' '开票凭证',
'KUNRG' '客户编号',
'NAME1' '客户名称',
'ZDZRN' '对账人' ,
'ZLXDH' '联系电话',
'ZCZDH' '传真电话',
'ZDZYX' '电子邮箱',
'ZDQRQ' '到期日' .
ENDFORM.
FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM.
FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM
IS_SELFIELD TYPE SLIS_SELFIELD.
DATA: REF TYPE REF TO CL_GUI_ALV_GRID.
DATA : LV_STABLE TYPE LVC_S_STBL. "刷新稳定性
LV_STABLE-ROW = '1'.
LV_STABLE-COL = '1'.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF.
CALL METHOD REF->CHECK_CHANGED_DATA.
CASE I_UCOMM.
WHEN 'PRINT'."点击打印
WHEN 'ALL'.
LOOP AT GT_DATA.
GT_DATA-CKBOX = 'X' .
MODIFY GT_DATA .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'SAL'.
LOOP AT GT_DATA.
GT_DATA-CKBOX = '' .
MODIFY GT_DATA .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'EXCEL_OUT'.
GT_DATA_A[] = GT_DATA[] .
DELETE GT_DATA_A[] WHERE CKBOX IS INITIAL .
IF GT_DATA_A[] IS NOT INITIAL.
CLEAR LV_NM .
LV_NM = LINES( GT_DATA_A[] ) .
IF LV_NM > 1 .
MESSAGE 'EXCEL导出功能仅支持单条凭证!' TYPE 'S'DISPLAY LIKE 'E' .
ELSE .
CLEAR GT_DATA_A .
READ TABLE GT_DATA_A INDEX 1 .
PERFORM FRM_CREATE_XSL.
ENDIF.
ELSE .
MESSAGE '您还没有选择任何条目!' TYPE 'S'DISPLAY LIKE 'W' .
ENDIF.
ENDCASE.
CALL METHOD REF->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE = LV_STABLE.
ENDFORM.
AT SELECTION-SCREEN.
PERFORM SCREEN_SETTING.
START-OF-SELECTION.
PERFORM FOM_GETDATA .
PERFORM FRM_DISPLAY.
ABAP开发笔记-对帐确认函
最新推荐文章于 2024-04-08 10:06:23 发布