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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OLE报表下载

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OLE报表下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

*&—————————————————————————–?
& Report ZRSD0005.?
&?
&——————————————————————————?
& Report to display overdue ratio of delivery of supply?
&——————————————————————————

& Modifications :?
& Date | Programmer | Change request | Description?
& | | Initial Implementation?*?
&——————————————————————————?
REPORT ZRSD0005.?
TABLES:VBEP,?
KNA1,?
LIKP,?
LIPS,?
VBAP,?
ADRC,?
VBAK,?
SSCRFIELDS.?
DATA: FIELDCATALOG1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,?
FIELDCATALOG2 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,?
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,?
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,?
IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,?
GD_REPID LIKE SY-REPID,?
GD_PRNTPARAMS TYPE SLIS_PRINT_ALV.?
DATA:BEGIN OF ITAB_OK OCCURS 0,?
BOX TYPE C,?
KUNNR LIKE VBPA-KUNNR,?
NAME1 LIKE KNA1-NAME1,?
ADRNR LIKE KNA1-ADRNR,?
REGION LIKE ADRC-REGION,?
BEZEI1 TYPE CHAR50, ”?
CITYC LIKE KNA1-CITYC, ”?
BEZEI2 TYPE CHAR50, ”?
BSTDK LIKE VBKD-BSTDK, ”?
VBELN LIKE VBAK-VBELN, ”?
BSTKD LIKE VBKD-BSTKD, ”?
IHREZ LIKE VBKD-IHREZ, ”?
BSTKD_E LIKE VBKD-BSTKD_E, ”?
KZWI2 LIKE VBAP-KZWI2, ”?
KZWI1 TYPE VBAP-KZWI1,?
DMBTR LIKE BSEG-DMBTR, ”?
ZCHAR1(30) TYPE C, ”?
ZCHAR2 TYPE C, ”?
ZCHAR3 TYPE N, ”?
ZMESS TYPE STRING,?
AUART LIKE VBAK-AUART,?
ZMENG LIKE VBAP-ZMENG,?
MATNR LIKE VBAP-MATNR,?
END OF ITAB_OK.?
*定義讀入EXCEL的內表?
DATA GT_EXCEL TYPE KCDE_INTERN_STRUC OCCURS 0 WITH HEADER LINE.?
INCLUDE OLE2INCL.?
DATA: EXCEL TYPE OLE2_OBJECT,?
BOOKS TYPE OLE2_OBJECT,?
SHEET TYPE OLE2_OBJECT,?
CELL TYPE OLE2_OBJECT.?
********************模板下載相關定義*************?
*定義變量?
DATA: GC_FILENAME LIKE RLGRAP-FILENAME,?
GC_PATH LIKE RLGRAP-FILENAME,?
GC_FULLPATH LIKE RLGRAP-FILENAME.?
DATA:L_NAME TYPE STRING .?
DATA:L_USER_ACTION TYPE I.?
DATA:L_FILE TYPE STRING .?
“DATA:P_FILE LIKE RLGRAP-FILENAME .?
DATA:G_FILE LIKE RLGRAP-FILENAME.?
DATA:RETURN TYPE TABLE OF BAPIRET2 WITH HEADER LINE,?
ORDER_ITEM_IN TYPE TABLE OF BAPISDITM WITH HEADER LINE,?
ORDER_ITEM_INX TYPE TABLE OF BAPISDITMX WITH HEADER LINE,?
PARTNERS TYPE TABLE OF BAPIPARNR WITH HEADER LINE,?
PARTNERCHANGES TYPE TABLE OF BAPIPARNRC WITH HEADER LINE,?
PARTNERADDRESSES TYPE TABLE OF BAPIADDR1 WITH HEADER LINE,?
SCHEDULE_LINES TYPE TABLE OF BAPISCHDL WITH HEADER LINE,?
SCHEDULE_LINESX TYPE TABLE OF BAPISCHDLX WITH HEADER LINE,?
ORDER_TEXT TYPE TABLE OF BAPISDTEXT WITH HEADER LINE,?
CONDITIONS_IN TYPE TABLE OF BAPICOND WITH HEADER LINE,?
CONDITIONS_INX TYPE TABLE OF BAPICONDX WITH HEADER LINE,?
SALESDOCUMENT LIKE BAPIVBELN-VBELN,?
ORDER_HEADER_IN TYPE BAPISDH1,?
ORDER_HEADER_INX TYPE BAPISDH1X.

DATA : BDCDATA_ITAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.?
DATA : MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.?
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-BL1.?
SELECT-OPTIONS:S_ERDAT FOR KNA1-ERDAT MODIF ID M1,?
S_KUNNR FOR LIKP-KUNNR MODIF ID M1,?
S_REGION FOR ADRC-REGION MODIF ID M1,?
S_CITYC FOR KNA1-CITYC MODIF ID M1.?
PARAMETERS:P_FILE LIKE RLGRAP-FILENAME MODIF ID M2 .?
SELECTION-SCREEN END OF BLOCK BL1.?
SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-BL2.?
PARAMETERS:R1 RADIOBUTTON GROUP G1 USER-COMMAND RCOMM DEFAULT ‘X’,?
R2 RADIOBUTTON GROUP G1.?
SELECTION-SCREEN END OF BLOCK BL2.?
SELECTION-SCREEN FUNCTION KEY 1. “制作一個下載按鈕?
*———————————————————————–?
* INITIALIZE PARAMETER TO DEFAULT VALUE *?
*———————————————————————–?
INITIALIZATION.?
SSCRFIELDS-FUNCTXT_01 = ‘模板下載’. “設置按鈕的默認名字

AT SELECTION-SCREEN.?
“下載模板到本地(模板通過SMW0上傳)?
CASE SSCRFIELDS-UCOMM. “判斷按鈕的功能代碼 當為FC01時 就是前臺點擊了默認模板下載按鈕。?
WHEN ‘FC01’.”模板下載按鈕?
L_NAME = ‘保單信息批量修改’.

CALL FUNCTION ‘GUI_FILE_SAVE_DIALOG’?
EXPORTING?
DEFAULT_FILE_NAME = L_NAME?
IMPORTING?
FULLPATH = L_FILE?
USER_ACTION = L_USER_ACTION.

IF L_USER_ACTION = 0.?
PERFORM FM_DOWN_MODEL USING ‘ZRSD0005’ L_FILE.?
WRITE: ‘模板下載成功!’.?
ENDIF.?
WHEN OTHERS.?
ENDCASE.

AT SELECTION-SCREEN OUTPUT.?
PERFORM SUB_MODIFY_SCREEN.


  • AT SELECTION-SCREEN?

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.?
PERFORM FRM_OPEN_FILE.

END-OF-SELECTION.?
PERFORM GET_DATA.?
PERFORM OUTPUT_DATA.

FORM GET_DATA.?
DATA:BEGIN OF LT_VBAK OCCURS 0,?
VBELN TYPE VBAK-VBELN,?
AUART TYPE VBAK-AUART,?
AUGRU TYPE VBAK-AUGRU,?
END OF LT_VBAK.?
DATA:BEGIN OF LT_VBPA OCCURS 0,?
VBELN TYPE VBPA-VBELN,?
POSNR TYPE VBPA-POSNR,?
KUNNR TYPE VBPA-KUNNR,?
END OF LT_VBPA.?
DATA:BEGIN OF LT_KNA1 OCCURS 0,?
KUNNR TYPE KNA1-KUNNR,?
NAME1 TYPE KNA1-NAME1,?
REGIO TYPE KNA1-REGIO,?
CITYC TYPE KNA1-CITYC,?
END OF LT_KNA1.?
DATA:BEGIN OF LT_VBAP OCCURS 0,?
VBELN TYPE VBAP-VBELN,?
POSNR TYPE VBAP-POSNR,?
KZWI2 TYPE VBAP-KZWI2,?
KZWI1 TYPE VBAP-KZWI1,?
KWMENG TYPE VBAP-KWMENG,?
MATNR TYPE VBAP-MATNR,?
END OF LT_VBAP.?
DATA:BEGIN OF LT_VBKD OCCURS 0,?
VBELN TYPE VBKD-VBELN,?
POSNR TYPE VBKD-POSNR,?
BSTDK TYPE VBKD-BSTDK,?
BSTKD TYPE VBKD-BSTKD,?
IHREZ TYPE VBKD-IHREZ,?
BSTKD_E TYPE VBKD-BSTKD_E,?
END OF LT_VBKD.?
IF R1 = ‘X’.

SELECT VBELN AUART AUGRUINTO CORRESPONDING FIELDS OF TABLE LT_VBAKFROM VBAKWHERE ERDAT IN S_ERDATAND AUART IN ('ZOR2','ZRE2')AND AUGRU IN ('','Z07')AND FAKSK = ''AND KUNNR IN S_KUNNR.SELECT VBPA~VBELN VBPA~POSNR KUNNRINTO CORRESPONDING FIELDS OF TABLE LT_VBPAFROM VBPAINNER JOIN VBUPON VBPA~VBELN = VBUP~VBELN

* AND VBPA~POSNR = VBUP~POSNR?
WHERE VBPA~PARVW = ‘RG’?
AND VBUP~FKSAA = ‘A’.?
* AND VBPA~KUNNR IN S_KUNNR.

SELECT KUNNR NAME1 REGIO CITYCINTO CORRESPONDING FIELDS OF TABLE LT_KNA1FROM KNA1WHERE KUNNR IN S_KUNNRAND REGIO IN S_REGIONAND CITYC IN S_CITYC.SELECT VBELN POSNR KZWI2 KZWI1 KWMENG MATNRINTO CORRESPONDING FIELDS OF TABLE LT_VBAPFROM VBAPWHERE ABGRU = ''AND FAKSP = ''.SELECT VBELN POSNR BSTDK BSTKD BSTKD_E IHREZINTO CORRESPONDING FIELDS OF TABLE LT_VBKDFROM VBKDWHERE POSNR = '000010'. SORT LT_VBAK BY VBELN AUART AUGRU.SORT LT_VBPA BY KUNNR.SORT LT_KNA1 BY KUNNR.SORT LT_VBAP BY VBELN.SORT LT_VBKD BY VBELN. LOOP AT LT_VBPA.CLEAR LT_VBAK.READ TABLE LT_VBAK WITH KEY VBELN = LT_VBPA-VBELN AUART = 'ZOR2' AUGRU = '' BINARY SEARCH.IF SY-SUBRC = 0.ITAB_OK-VBELN = LT_VBAK-VBELN.ITAB_OK-AUART = LT_VBAK-AUART.ITAB_OK-KUNNR = LT_VBPA-KUNNR.CLEAR LT_KNA1.READ TABLE LT_KNA1 WITH KEY KUNNR = LT_VBPA-KUNNR BINARY SEARCH.IF SY-SUBRC = 0.ITAB_OK-NAME1 = LT_KNA1-NAME1.ITAB_OK-REGION = LT_KNA1-REGIO.ITAB_OK-CITYC = LT_KNA1-CITYC.CLEAR LT_VBAP.READ TABLE LT_VBAP WITH KEY VBELN = LT_VBPA-VBELN BINARY SEARCH." POSNR = LT_VBPA-POSNRIF SY-SUBRC = 0 AND LT_VBAP-KZWI1 > 0.ITAB_OK-KZWI2 = LT_VBAP-KZWI2.ITAB_OK-KZWI1 = LT_VBAP-KZWI1.ITAB_OK-ZMENG = LT_VBAP-KWMENG.ITAB_OK-MATNR = LT_VBAP-MATNR.CLEAR LT_VBKD.READ TABLE LT_VBKD WITH KEY VBELN = LT_VBPA-VBELN BINARY SEARCH.IF SY-SUBRC = 0.ITAB_OK-BSTDK = LT_VBKD-BSTDK.ITAB_OK-BSTKD = LT_VBKD-BSTKD.ITAB_OK-BSTKD_E = LT_VBKD-BSTKD_E.ITAB_OK-IHREZ = LT_VBKD-IHREZ.APPEND ITAB_OK.CLEAR ITAB_OK.ENDIF.ENDIF.ENDIF.ENDIF.CLEAR LT_VBAK.READ TABLE LT_VBAK WITH KEY VBELN = LT_VBPA-VBELN AUART = 'ZRE2' AUGRU = 'Z07' BINARY SEARCH.IF SY-SUBRC = 0.ITAB_OK-VBELN = LT_VBAK-VBELN.ITAB_OK-AUART = LT_VBAK-AUART.ITAB_OK-KUNNR = LT_VBPA-KUNNR.CLEAR LT_KNA1.READ TABLE LT_KNA1 WITH KEY KUNNR = LT_VBPA-KUNNR BINARY SEARCH.IF SY-SUBRC = 0.ITAB_OK-NAME1 = LT_KNA1-NAME1.ITAB_OK-REGION = LT_KNA1-REGIO.ITAB_OK-CITYC = LT_KNA1-CITYC.CLEAR LT_VBAP.READ TABLE LT_VBAP WITH KEY VBELN = LT_VBPA-VBELN BINARY SEARCH."POSNR = LT_VBPA-POSNRIF SY-SUBRC = 0. "AND LT_VBAP-KZWI1 < 0.ITAB_OK-KZWI2 = LT_VBAP-KZWI2.ITAB_OK-KZWI1 = LT_VBAP-KZWI1.ITAB_OK-ZMENG = LT_VBAP-KWMENG.ITAB_OK-MATNR = LT_VBAP-MATNR.CLEAR LT_VBKD.READ TABLE LT_VBKD WITH KEY VBELN = LT_VBPA-VBELN BINARY SEARCH.IF SY-SUBRC = 0.ITAB_OK-BSTDK = LT_VBKD-BSTDK.ITAB_OK-BSTKD = LT_VBKD-BSTKD.ITAB_OK-BSTKD_E = LT_VBKD-BSTKD_E.ITAB_OK-IHREZ = LT_VBKD-IHREZ.APPEND ITAB_OK.CLEAR ITAB_OK.ENDIF.ENDIF.ENDIF.ENDIF.CLEAR LT_VBPA. ENDLOOP.LOOP AT ITAB_OK.ITAB_OK-BOX = 'X'.IF ITAB_OK-AUART = 'ZRE2'.ITAB_OK-KZWI1 = -1 * ITAB_OK-KZWI1.ENDIF.IF ITAB_OK-REGION IS NOT INITIAL.SELECT SINGLE BEZEI INTO ITAB_OK-BEZEI1 FROM T005UWHERE SPRAS = SY-LANGUAND LAND1 = 'CN'AND BLAND = ITAB_OK-REGION.CONCATENATE ITAB_OK-REGION ITAB_OK-BEZEI1 INTO ITAB_OK-BEZEI1.ENDIF.IF ITAB_OK-REGION IS NOT INITIAL AND ITAB_OK-CITYC IS NOT INITIAL.SELECT SINGLE BEZEI INTO ITAB_OK-BEZEI2 FROM T005HWHERE SPRAS = SY-LANGUAND LAND1 = 'CN'AND REGIO = ITAB_OK-REGIONAND CITYC = ITAB_OK-CITYC.CONCATENATE ITAB_OK-CITYC ITAB_OK-BEZEI2 INTO ITAB_OK-BEZEI2.ENDIF.MODIFY ITAB_OK.CLEAR ITAB_OK. ENDLOOP.

ELSE.?
CALL FUNCTION ‘KCD_EXCEL_OLE_TO_INT_CONVERT’?
EXPORTING?
FILENAME = P_FILE?
I_BEGIN_COL = 1?
I_BEGIN_ROW = 4?
I_END_COL = 13?
I_END_ROW = 65535?
TABLES?
INTERN = GT_EXCEL[]?
EXCEPTIONS?
INCONSISTENT_PARAMETERS = 1?
UPLOAD_OLE = 2?
OTHERS = 3.

IF SY-SUBRC <> 0.MESSAGE '打開文件錯誤,請檢查文件,確保關閉文件!' TYPE 'E'.STOP. ENDIF. LOOP AT GT_EXCEL.CASE GT_EXCEL-COL.WHEN '001'.WRITE GT_EXCEL-VALUE TO ITAB_OK-KUNNR.WHEN '002'.WRITE GT_EXCEL-VALUE TO ITAB_OK-NAME1.WHEN '003'.WRITE GT_EXCEL-VALUE TO ITAB_OK-BEZEI1.WHEN '004'.WRITE GT_EXCEL-VALUE TO ITAB_OK-BEZEI2.WHEN '005'.CONCATENATE GT_EXCEL-VALUE+0(4) GT_EXCEL-VALUE+5(2) GT_EXCEL-VALUE+8(2) INTO ITAB_OK-BSTDK.WHEN '006'.WRITE GT_EXCEL-VALUE TO ITAB_OK-VBELN.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGINPUT = ITAB_OK-VBELNIMPORTINGOUTPUT = ITAB_OK-VBELN.WHEN '007'.WRITE GT_EXCEL-VALUE TO ITAB_OK-BSTKD.WHEN '008'.WRITE GT_EXCEL-VALUE TO ITAB_OK-IHREZ.WHEN '009'.WRITE GT_EXCEL-VALUE TO ITAB_OK-BSTKD_E.WHEN '010'.ITAB_OK-KZWI2 = GT_EXCEL-VALUE.WHEN '011'.ITAB_OK-KZWI1 = GT_EXCEL-VALUE.WHEN '012'.ITAB_OK-DMBTR = GT_EXCEL-VALUE.WHEN '013'.WRITE GT_EXCEL-VALUE TO ITAB_OK-ZCHAR1.

* WHEN ‘014’.?
* WRITE GT_EXCEL-VALUE TO ITAB_OK-ZCHAR2.?
* WHEN ‘015’.?
* WRITE GT_EXCEL-VALUE TO ITAB_OK-ZCHAR3.?
ENDCASE.?
AT END OF ROW.?
ITAB_OK-BOX = ‘X’.?
APPEND ITAB_OK.?
CLEAR ITAB_OK.?
ENDAT.?
ENDLOOP.?
ENDIF.?
ENDFORM.?
FORM OUTPUT_DATA .?
GD_REPID = SY-REPID.?
PERFORM BUILD_FIELDCATALOG .?
IF ITAB_OK[] IS INITIAL.?
MESSAGE ‘沒有交貨數據,謝謝’ TYPE ‘I’ DISPLAY LIKE ‘E’.?
RETURN.?
ENDIF.?
GD_LAYOUT-COLWIDTH_OPTIMIZE = ‘X’.?
GD_LAYOUT-ZEBRA = ‘X’.?
GD_LAYOUT-BOX_FIELDNAME = ‘BOX’.?
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’?
EXPORTING?
I_CALLBACK_PROGRAM = GD_REPID?
I_CALLBACK_USER_COMMAND = ‘USER_COMMAND’?
I_CALLBACK_HTML_TOP_OF_PAGE = ‘ALV_TOP_OF_PAGE’?
IS_LAYOUT = GD_LAYOUT?
IT_FIELDCAT = FIELDCATALOG1[]?
I_SAVE = ‘X’?
IT_SORT = IT_SORT[]?
I_CALLBACK_PF_STATUS_SET = ‘SET_PF’?
TABLES?
T_OUTTAB = ITAB_OK?
EXCEPTIONS?
PROGRAM_ERROR = 1?
OTHERS = 2.?
IF SY-SUBRC <> 0.?
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO?
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.?
ENDIF.?
ENDFORM.?
FORM BUILD_FIELDCATALOG .?
* Macro definition?
DEFINE M_FIELDCAT1.?
FIELDCATALOG1-FIELDNAME = &1.?
FIELDCATALOG1-SELTEXT_M = &2.?
FIELDCATALOG1-checkbox = &3.?
FIELDCATALOG1-edit = &4.?
FIELDCATALOG1-input = &5.?
FIELDCATALOG1-no_zero = &6.?
APPEND FIELDCATALOG1.?
END-OF-DEFINITION.

ENDFORM. “BUILD_FIELDCATALOG?
FORM ALV_TOP_OF_PAGE USING CL_DD TYPE REF TO CL_DD_DOCUMENT.?
*form alv_top_of_page using cl_dd type ref to cl_dd_document.?
DATA: M_P TYPE I.?
DATA: M_BUFF TYPE STRING,?
M_BUFF1 TYPE STRING.?
M_BUFF = ‘’.?
CALL METHOD CL_DD->HTML_INSERT?
EXPORTING?
CONTENTS = M_BUFF?
CHANGING?
POSITION = M_P.?
M_BUFF = ‘

保單信息批量修改

’.?
M_BUFF1 = ‘

版本號:1.0

’.?
CALL METHOD CL_DD->HTML_INSERT?
EXPORTING?
CONTENTS = M_BUFF?
CHANGING?
POSITION = M_P.?
CALL METHOD CL_DD->HTML_INSERT?
EXPORTING?
CONTENTS = M_BUFF1?
CHANGING?
POSITION = M_P.?
ENDFORM. ” frm_alvheader?
FORM SET_PF USING EXTAB TYPE SLIS_T_EXTAB.?
*通過SE41,拷貝程序SAPLSLVC_FULLSCREEN的狀態STANDARD_FULLSCREEN過來?
IF R1 = ‘X’.?
DATA FCODE TYPE TABLE OF SY-UCOMM.?
APPEND ‘DELETE’ TO FCODE.?
APPEND ‘SAVE’ TO FCODE.?
SET PF-STATUS ‘LIST_ALV001’ EXCLUDING FCODE.?
ELSE.?
SET PF-STATUS ‘LIST_ALV001’ EXCLUDING ‘POST’.?
ENDIF.?
ENDFORM. “set_pf?
FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM?
IS_SELFIELD TYPE SLIS_SELFIELD.?
DATA: LR_GRID TYPE REF TO CL_GUI_ALV_GRID,?
XML TYPE STRING,?
L_CHAR TYPE STRING.?
CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’?
IMPORTING?
E_GRID = LR_GRID.?
CALL METHOD LR_GRID->CHECK_CHANGED_DATA.?
IS_SELFIELD-REFRESH = ‘X’. “#EC CALLED?
CASE I_UCOMM.?
WHEN ‘&IC1’. ” Pick?
READ TABLE ITAB_OK INDEX IS_SELFIELD-TABINDEX.?
SET PARAMETER ID ‘AUN’ FIELD ITAB_OK-VBELN.?
CALL TRANSACTION ‘VA03’ AND SKIP FIRST SCREEN.?
WHEN ‘ALL’.?
ITAB_OK-BOX = ‘X’.?
MODIFY ITAB_OK TRANSPORTING BOX WHERE BOX = ”.?
WHEN ‘SAL’.?
ITAB_OK-BOX = ”.?
MODIFY ITAB_OK TRANSPORTING BOX WHERE BOX = ‘X’.?
WHEN ‘POST’.?
PERFORM OUT_TO_EXCEL.?
WHEN ‘SAVE’.?
PERFORM CHANGE_SO.?
WHEN ‘DELETE’.?
PERFORM FRM_DELETE_SO.?
ENDCASE.?
ENDFORM.?
**?
FORM BDCTABLE_APPEND USING VALUE(P_DYNBEGIN)?
VALUE(P_NAME)?
VALUE(P_VALUE).?
IF P_DYNBEGIN = ’ ‘.?
BDCDATA_ITAB-FNAM = P_NAME.?
BDCDATA_ITAB-FVAL = P_VALUE.?
ELSE.?
BDCDATA_ITAB-DYNBEGIN = P_DYNBEGIN.?
BDCDATA_ITAB-PROGRAM = P_NAME.?
BDCDATA_ITAB-DYNPRO = P_VALUE.?
ENDIF.?
APPEND BDCDATA_ITAB.?
CLEAR BDCDATA_ITAB.?
ENDFORM. ” BDCTABLE_APPEND

FORM SUB_DOWNLOAD_TEMPLATE USING P_OBJID LIKE WWWDATATAB-OBJID P_DEST LIKE RLGRAP-FILENAME. “sapb-sappfad.?
DATA:LO_OBJDATA LIKE WWWDATATAB,?
LO_MIME LIKE W3MIME,?
LS_DESTINATION LIKE RLGRAP-FILENAME,?
LS_OBJNAM TYPE STRING,?
LI_RC LIKE SY-SUBRC,?
LS_ERRTXT TYPE STRING.?
CONCATENATE P_OBJID ‘.XLS’ INTO LS_OBJNAM.?
CONDENSE LS_OBJNAM NO-GAPS.?
SELECT SINGLE RELID OBJID FROM WWWDATA INTO CORRESPONDING FIELDS OF LO_OBJDATA WHERE SRTF2 = 0 AND RELID = ‘MI’ AND OBJID = P_OBJID.

IF SY-SUBRC NE 0 OR LO_OBJDATA-OBJID EQ SPACE.?
CONCATENATE ‘模板文件:’ LS_OBJNAM ‘不存在,請在TCODE:SMW0進行加載。’ INTO LS_ERRTXT.?
MESSAGE E600(ZDEV) WITH LS_ERRTXT.?
ENDIF.

LS_DESTINATION = P_DEST.?
CALL FUNCTION ‘DOWNLOAD_WEB_OBJECT’?
EXPORTING?
KEY = LO_OBJDATA?
DESTINATION = LS_DESTINATION?
IMPORTING?
RC = LI_RC.?
IF LI_RC NE 0.?
CONCATENATE ‘模板文件:’ LS_OBJNAM ‘下載失敗’ INTO LS_ERRTXT.?
MESSAGE E600(ZDEV) WITH LS_ERRTXT.?
ENDIF.?
ENDFORM. “sub_download_template

FORM FILL_CELL USING P_I?
P_J?
P_VAL.?
CALL METHOD OF EXCEL ‘CELLS’ = CELL?
EXPORTING?
#1 = P_I?
#2 = P_J.?
SET PROPERTY OF CELL ‘VALUE’ = P_VAL.

ENDFORM. ” FILL_CELL?
&———————————————————————?
*& Form OUT_TO_EXCEL?
&———————————————————————?
* text?
———————————————————————-?
* –> p1 text?
* <– p2 text?
———————————————————————-?
FORM OUT_TO_EXCEL .?
DATA:NUM(5) TYPE N,?
L_CHAR TYPE STRING.?
CALL FUNCTION ‘WS_FILENAME_GET’?
EXPORTING?
DEF_FILENAME = ‘保單信息批量修改’?
MASK = ‘,.xls,.XLS.’?
MODE = ‘S’?
TITLE = ‘保存模板’?
IMPORTING?
FILENAME = G_FILE?
EXCEPTIONS?
INV_WINSYS = 1?
NO_BATCH = 2?
SELECTION_CANCEL = 3?
SELECTION_ERROR = 4?
OTHERS = 5.

IF G_FILE NE ’ ‘. “sy-subrc = 0.?
PERFORM SUB_DOWNLOAD_TEMPLATE USING ‘ZRSD0005’ G_FILE.?
P_FILE = G_FILE.?
ENDIF.

CREATE OBJECT EXCEL ‘EXCEL.APPLICATION’.?
CALL METHOD OF EXCEL ‘WORKBOOKS’ = BOOKS.?
CALL METHOD OF BOOKS ‘OPEN’?
EXPORTING?
#1 = P_FILE.?
CALL METHOD OF EXCEL ‘WORKSHEETS’ = SHEET?
EXPORTING?
#1 = 1.?
CALL METHOD OF SHEET ‘ACTIVATE’.?
CALL METHOD OF EXCEL ‘CELLS’ = CELL?
EXPORTING?
#1 = 1?
#2 = 1.?
CONCATENATE ‘信息導出日期:’ SY-DATUM+0(4) ‘年’ SY-DATUM+4(2) ‘月’ SY-DATUM+6(2) ‘日’?
INTO L_CHAR.?
PERFORM FILL_CELL USING 2 1 L_CHAR.?
NUM = 3.?
LOOP AT ITAB_OK WHERE BOX = ‘X’.?
NUM = NUM + 1.?
PERFORM FILL_CELL USING NUM 1 ITAB_OK-KUNNR.?
PERFORM FILL_CELL USING NUM 2 ITAB_OK-NAME1.?
PERFORM FILL_CELL USING NUM 3 ITAB_OK-BEZEI1.?
PERFORM FILL_CELL USING NUM 4 ITAB_OK-BEZEI2.?
IF ITAB_OK-BSTDK IS NOT INITIAL.?
PERFORM FILL_CELL USING NUM 5 ITAB_OK-BSTDK.?
ENDIF.?
PERFORM FILL_CELL USING NUM 6 ITAB_OK-VBELN.?
PERFORM FILL_CELL USING NUM 7 ITAB_OK-BSTKD.?
PERFORM FILL_CELL USING NUM 8 ITAB_OK-IHREZ.?
PERFORM FILL_CELL USING NUM 9 ITAB_OK-BSTKD_E.?
PERFORM FILL_CELL USING NUM 10 ITAB_OK-KZWI2.?
PERFORM FILL_CELL USING NUM 11 ITAB_OK-KZWI1.?
ENDLOOP.?
SET PROPERTY OF EXCEL ‘VISIBLE’ = 1.?
ENDFORM.?
&———————————————————————?
*& Form SUB_MODIFY_SCREEN?
&———————————————————————?
* text?
———————————————————————-?
* –> p1 text?
* <– p2 text?
———————————————————————-?
FORM SUB_MODIFY_SCREEN .?
LOOP AT SCREEN.?
IF R1 IS NOT INITIAL.?
IF SCREEN-GROUP1 = ‘M2’.?
SCREEN-INPUT = 0.?
SCREEN-INVISIBLE = 1.?
ENDIF.?
MODIFY SCREEN.?
ELSE.?
IF SCREEN-GROUP1 = ‘M1’.?
SCREEN-INPUT = 0.?
SCREEN-INVISIBLE = 1.?
ENDIF.?
MODIFY SCREEN.?
ENDIF.?
ENDLOOP.?
ENDFORM.?
&———————————————————————?
*& Form FRM_OPEN_FILE?
&———————————————————————?
* text?
———————————————————————-?
* –> p1 text?
* <– p2 text?
———————————————————————-?
FORM FRM_OPEN_FILE .?
CALL FUNCTION ‘WS_FILENAME_GET’?
EXPORTING?
DEF_FILENAME = SPACE?
DEF_PATH = P_FILE?
MASK = ”?
MODE = ‘O’?
TITLE = ‘查找導入信息文件’?
IMPORTING?
FILENAME = P_FILE?
EXCEPTIONS?
SELECTION_CANCEL = 0.?
ENDFORM.?
&———————————————————————?
*& Form CHANGE_SO?
&———————————————————————?
* text?
———————————————————————-?
* –> p1 text?
* <– p2 text?
———————————————————————-?
FORM CHANGE_SO .

LOOP AT ITAB_OK WHERE BOX = ‘X’.?
SELECT SINGLE MATNR KWMENG MEINS INTO (ITAB_OK-MATNR,ITAB_OK-ZMENG,ORDER_ITEM_IN-TARGET_QU) FROM VBAP?
WHERE VBELN = ITAB_OK-VBELN?
AND POSNR = ‘000010’.

IF ITAB_OK-DMBTR <> ''.

**新增 ZPR1?
ORDER_HEADER_INX-UPDATEFLAG = ‘U’.?
CONDITIONS_IN-ITM_NUMBER = ‘000010’.?
CONDITIONS_IN-COND_TYPE = ‘ZPR1’.?
CONDITIONS_IN-COND_ST_NO = ‘011’.?
CONDITIONS_IN-COND_COUNT = ‘01’.?
CONDITIONS_IN-COND_VALUE = ITAB_OK-DMBTR / 10.?
CONDITIONS_IN-COND_UPDAT = ‘X’.?
APPEND CONDITIONS_IN.?
CLEAR CONDITIONS_IN.

CONDITIONS_INX-ITM_NUMBER = '000010'.CONDITIONS_INX-COND_ST_NO = '011'.CONDITIONS_INX-COND_COUNT = '01'.CONDITIONS_INX-COND_TYPE = 'ZPR1'.CONDITIONS_INX-COND_VALUE = 'X'.CONDITIONS_INX-UPDATEFLAG = 'U'.APPEND CONDITIONS_INX.CLEAR CONDITIONS_INX." AT END OF VBELN.PERFORM MODIFY USING ITAB_OK-VBELN." ENDAT. ENDIF. IF ITAB_OK-ZCHAR1 <> ''.ORDER_HEADER_INX-UPDATEFLAG = 'U'.ORDER_ITEM_IN-ITM_NUMBER = '000010'.ORDER_ITEM_IN-MATERIAL = ITAB_OK-MATNR.ORDER_ITEM_IN-TARGET_QTY = ITAB_OK-ZMENG." ORDER_ITEM_IN-TARGET_QU = ITAB_OK-ZMENG.ORDER_ITEM_IN-PLANT = 'HBGS'.ORDER_ITEM_IN-REF_1 = ITAB_OK-ZCHAR1.APPEND ORDER_ITEM_IN.CLEAR ORDER_ITEM_IN.ORDER_ITEM_INX-ITM_NUMBER = '000010'.ORDER_ITEM_INX-REF_1 = 'X'.ORDER_ITEM_INX-MATERIAL = 'X'.ORDER_ITEM_INX-TARGET_QTY = 'X'.ORDER_ITEM_INX-TARGET_QU = 'X'.ORDER_ITEM_INX-TARGET_QU = 'X'.ORDER_ITEM_INX-PLANT = 'X'.ORDER_ITEM_INX-UPDATEFLAG = 'U'.APPEND ORDER_ITEM_INX.CLEAR ORDER_ITEM_INX." AT END OF VBELN.PERFORM MODIFY USING ITAB_OK-VBELN." ENDAT. ENDIF.

ENDLOOP.?
ENDFORM.?
&———————————————————————?
*& Form MODIFY?
&———————————————————————?
* text?
———————————————————————-?
* –>P_ITAB_OK_VBELN text?
———————————————————————-?
FORM MODIFY USING P_VBELN.?
CALL FUNCTION ‘BAPI_SALESORDER_CHANGE’?
EXPORTING?
SALESDOCUMENT = P_VBELN?
ORDER_HEADER_IN = ORDER_HEADER_IN?
ORDER_HEADER_INX = ORDER_HEADER_INX?
* SIMULATION =?
* BEHAVE_WHEN_ERROR = ’ ’?
* INT_NUMBER_ASSIGNMENT = ’ ’?
* LOGIC_SWITCH =?
* NO_STATUS_BUF_INIT = ’ ’?
TABLES?
RETURN = RETURN?
ORDER_ITEM_IN = ORDER_ITEM_IN?
ORDER_ITEM_INX = ORDER_ITEM_INX?
CONDITIONS_IN = CONDITIONS_IN?
CONDITIONS_INX = CONDITIONS_INX.?
READ TABLE RETURN WITH KEY TYPE = ‘E’.?
IF SY-SUBRC = 0.?
ITAB_OK-ZMESS = RETURN-MESSAGE.?
CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.?
ELSE.?
ITAB_OK-ZMESS = ‘更改成功!’.?
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’?
EXPORTING?
WAIT = ‘X’.?
ENDIF.?
MODIFY ITAB_OK TRANSPORTING ZMESS WHERE VBELN = P_VBELN.


IF RETURN[] IS NOT INITIAL.?
DATA: BAL_S_LOG TYPE BAL_S_LOG.?
BAL_S_LOG-OBJECT = ‘ZRSD0005’.?
BAL_S_LOG-SUBOBJECT = ‘ZMOD_SO’.?
** define callback routine?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITP = SY-REPID.?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITF = ‘CALLBACK_LOG_DETAIL’.?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITT = ”.?
BAL_S_LOG-EXTNUMBER = ‘MOFIDY_SO’.?
CALL FUNCTION ‘ZMESSAGE’?
EXPORTING?
BAL_S_LOG = BAL_S_LOG?
TABLES?
RETURN = RETURN.?
ENDIF.?
CLEAR: ORDER_HEADER_IN,?
ORDER_HEADER_INX.?
REFRESH : RETURN,?
ORDER_ITEM_IN,?
ORDER_ITEM_INX,?
PARTNERS,?
SCHEDULE_LINES,?
SCHEDULE_LINESX,?
CONDITIONS_IN.?
ENDFORM.

FORM CANCEL_BILLING USING P_VBELN.?
DATA: DOCUMENT_DATA_IN TYPE TABLE OF BAPIKOMFK WITH HEADER LINE,?
RETURNLOG_OUT TYPE TABLE OF BAPIRETURN1 WITH HEADER LINE,?
L_VBELN TYPE VBRK-VBELN.

SELECT SINGLE VBRK~VBELN INTO L_VBELN FROM VBRK?
INNER JOIN VBFA ON VBFA~VBELN = VBRK~VBELN?
WHERE VBFA~VBELV = P_VBELN?
AND VBRK~FKSTO = ”?
AND VBRK~SFAKN = ”.?
PERFORM BDCTABLE_APPEND USING:?
‘X’ ‘SAPMV60A’ ‘0102’,?
’ ’ ‘KOMFK-VBELN(01)’ L_VBELN,?
’ ’ ‘BDC_OKCODE’ ‘=SICH’.?
CALL TRANSACTION ‘VF11’ USING BDCDATA_ITAB?
MODE ‘E’?
UPDATE ‘S’?
MESSAGES INTO MESSTAB.?
FREE BDCDATA_ITAB.

MODIFY ITAB_OK TRANSPORTING ZMESS WHERE VBELN = P_VBELN.?
LOOP AT MESSTAB.?
RETURN-TYPE = MESSTAB-MSGTYP.?
RETURN-ID = MESSTAB-MSGID.?
RETURN-NUMBER = ‘001’ .?
RETURN-MESSAGE = ‘沖銷成功!’.?
RETURN-LOG_MSG_NO = MESSTAB-MSGNR.?
RETURN-MESSAGE_V1 = MESSTAB-MSGV1.?
RETURN-MESSAGE_V2 = MESSTAB-MSGV2.?
RETURN-MESSAGE_V3 = MESSTAB-MSGV3.?
RETURN-MESSAGE_V4 = MESSTAB-MSGV4.?
APPEND RETURN.?
CLEAR RETURN.?
ENDLOOP.


IF RETURN[] IS NOT INITIAL.?
DATA: BAL_S_LOG TYPE BAL_S_LOG.?
BAL_S_LOG-OBJECT = ‘ZRSD0005’.?
BAL_S_LOG-SUBOBJECT = ‘ZCAN_BILL’.?
** define callback routine?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITP = SY-REPID.?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITF = ‘CALLBACK_LOG_DETAIL’.?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITT = ”.?
BAL_S_LOG-EXTNUMBER = ‘ZCAN_BILL’.?
CALL FUNCTION ‘ZMESSAGE’?
EXPORTING?
BAL_S_LOG = BAL_S_LOG?
TABLES?
RETURN = RETURN.?
ENDIF.?
REFRESH:BDCDATA_ITAB,RETURN,MESSTAB.?
ENDFORM.

FORM CREATE_SO USING P_ITAB LIKE LINE OF ITAB_OK.?
DATA:ORDER_HEADER_IN TYPE BAPISDHD1,?
ORDER_HEADER_INX TYPE BAPISDHD1X.?
**抬頭?
SELECT SINGLE BSTKD BSTKD_E INTO (ORDER_HEADER_IN-PURCH_NO_C,ORDER_HEADER_IN-PURCH_NO_S)?
FROM VBKD?
WHERE VBELN = P_ITAB-VBELN.

SELECT SINGLE VKORG VTWEG SPART INTO (ORDER_HEADER_IN-SALES_ORG,ORDER_HEADER_IN-DISTR_CHAN,ORDER_HEADER_IN-DIVISION)?
FROM VBAK?
WHERE VBELN = P_ITAB-VBELN.?
ORDER_HEADER_IN-DOC_TYPE = ‘ZRE2’.?
ORDER_HEADER_IN-ORD_REASON = ‘Z07’.

ORDER_HEADER_INX-PURCH_NO_C = ‘X’.?
ORDER_HEADER_INX-PURCH_NO_S = ‘X’.?
ORDER_HEADER_INX-SALES_ORG = ‘X’.?
ORDER_HEADER_INX-DISTR_CHAN = ‘X’.?
ORDER_HEADER_INX-DIVISION = ‘X’.?
ORDER_HEADER_INX-DOC_TYPE = ‘X’.?
ORDER_HEADER_INX-ORD_REASON = ‘X’.?
ORDER_HEADER_INX-UPDATEFLAG = ‘I’.?
**項目?
ORDER_ITEM_IN-ITM_NUMBER = ‘000010’.?
ORDER_ITEM_IN-MATERIAL = ‘000000000000300003’.?
ORDER_ITEM_IN-PLANT = ‘HBGS’.?
ORDER_ITEM_IN-TARGET_QTY = 1.?
SELECT SINGLE BSTKD_E INTO ORDER_ITEM_IN-PURCH_NO_S?
FROM VBKD?
WHERE VBELN = P_ITAB-VBELN?
AND POSNR = ‘000010’.?
APPEND ORDER_ITEM_IN.?
CLEAR ORDER_ITEM_IN.

ORDER_ITEM_INX-ITM_NUMBER = ‘000010’.?
ORDER_ITEM_INX-UPDATEFLAG = ‘I’.?
ORDER_ITEM_INX-MATERIAL = ‘X’.?
ORDER_ITEM_INX-PLANT = ‘X’.?
ORDER_ITEM_INX-TARGET_QTY = ‘X’.?
ORDER_ITEM_INX-PURCH_NO_S = ‘X’.?
APPEND ORDER_ITEM_INX.?
CLEAR ORDER_ITEM_INX.?
**計劃行?
SCHEDULE_LINES-ITM_NUMBER = ‘000010’.?
SCHEDULE_LINES-REQ_DATE = SY-DATUM.?
SCHEDULE_LINES-REQ_QTY = 1.?
APPEND SCHEDULE_LINES.?
CLEAR SCHEDULE_LINES.

SCHEDULE_LINESX-ITM_NUMBER = ‘000010’.?
SCHEDULE_LINESX-REQ_DATE = ‘X’.?
SCHEDULE_LINESX-REQ_QTY = ‘X’.?
SCHEDULE_LINESX-UPDATEFLAG = ‘I’.?
APPEND SCHEDULE_LINESX.?
CLEAR SCHEDULE_LINESX.?
*條件?
CONDITIONS_IN-ITM_NUMBER = ‘000010’.?
CONDITIONS_IN-COND_TYPE = ‘ZPR1’.?
IF ITAB_OK-ZCHAR3 = 4.?
CONDITIONS_IN-COND_VALUE = P_ITAB-KZWI1 / 20.?
ELSE.?
CONDITIONS_IN-COND_VALUE = P_ITAB-KZWI1 / 10.?
ENDIF.?
CONDITIONS_IN-COND_UPDAT = ”.?
APPEND CONDITIONS_IN.?
CLEAR CONDITIONS_IN.

CONDITIONS_INX-ITM_NUMBER = ‘000010’.?
CONDITIONS_INX-COND_TYPE = ‘ZPR1’.?
CONDITIONS_INX-COND_VALUE = ‘X’.?
CONDITIONS_INX-UPDATEFLAG = ‘I’.?
APPEND CONDITIONS_INX.?
CLEAR CONDITIONS_INX.?
*合作伙伴?
SELECT PARVW KUNNR INTO (PARTNERS-PARTN_ROLE,PARTNERS-PARTN_NUMB)?
FROM VBPA?
WHERE VBELN = P_ITAB-VBELN.?
APPEND PARTNERS.?
ENDSELECT.?
CALL FUNCTION ‘BAPI_CUSTOMERRETURN_CREATE’?
EXPORTING?
* SALESDOCUMENTIN =?
RETURN_HEADER_IN = ORDER_HEADER_IN?
RETURN_HEADER_INX = ORDER_HEADER_INX?
IMPORTING?
SALESDOCUMENT = SALESDOCUMENT?
TABLES?
RETURN = RETURN?
RETURN_ITEMS_IN = ORDER_ITEM_IN?
RETURN_ITEMS_INX = ORDER_ITEM_INX?
RETURN_PARTNERS = PARTNERS?
RETURN_SCHEDULES_IN = SCHEDULE_LINES?
RETURN_SCHEDULES_INX = SCHEDULE_LINESX?
RETURN_CONDITIONS_IN = CONDITIONS_IN?
” ORDER_CONDITIONS_INX = CONDITIONS_INX?
.?
READ TABLE RETURN WITH KEY TYPE = ‘E’.?
IF SY-SUBRC = 0.?
ITAB_OK-ZMESS = RETURN-MESSAGE.?
CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.?
ELSE.?
ITAB_OK-ZMESS = ‘更改成功!’.?
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’?
EXPORTING?
WAIT = ‘X’.?
ENDIF.?
MODIFY ITAB_OK TRANSPORTING ZMESS WHERE VBELN = P_ITAB-VBELN.


IF RETURN[] IS NOT INITIAL.?
DATA: BAL_S_LOG TYPE BAL_S_LOG.?
BAL_S_LOG-OBJECT = ‘ZRSD0005’.?
BAL_S_LOG-SUBOBJECT = ‘ZBD_RTSO’.?
** define callback routine?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITP = SY-REPID.?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITF = ‘CALLBACK_LOG_DETAIL’.?
BAL_S_LOG-PARAMS-CALLBACK-USEREXITT = ”.?
BAL_S_LOG-EXTNUMBER = ‘ZBD_RTSO’.?
CALL FUNCTION ‘ZMESSAGE’?
EXPORTING?
BAL_S_LOG = BAL_S_LOG?
TABLES?
RETURN = RETURN.?
ENDIF.?
CLEAR: ORDER_HEADER_IN,?
ORDER_HEADER_INX.?
REFRESH : RETURN,?
ORDER_ITEM_IN,?
ORDER_ITEM_INX,?
PARTNERS,?
SCHEDULE_LINES,?
SCHEDULE_LINESX,?
CONDITIONS_IN.?
ENDFORM.?
&———————————————————————?
*& Form FM_DOWN_MODEL?
&———————————————————————?
* text?
———————————————————————-?
* –>P_0441 text?
* –>P_L_FILE text?
———————————————————————-?
FORM FM_DOWN_MODEL USING EXCEL_NAME EXCEL_NAME1.?
DATA:LO_OBJDATA LIKE WWWDATATAB,?
LO_MIME LIKE W3MIME,?
LS_DESTINATION LIKE RLGRAP-FILENAME,?
LS_OBJNAM TYPE STRING,?
LI_RC LIKE SY-SUBRC,?
LS_ERRTXT TYPE STRING.?
DATA:P_OBJID TYPE WWWDATATAB-OBJID,?
P_DEST LIKE SAPB-SAPPFAD.?
CONCATENATE EXCEL_NAME1 ‘.xls’ INTO GC_FULLPATH.?
P_OBJID = EXCEL_NAME.?
IF SY-SUBRC = 0.?
CONCATENATE P_OBJID ‘.XLS’ INTO LS_OBJNAM.?
CONDENSE LS_OBJNAM NO-GAPS.?
SELECT SINGLE RELID OBJID INTO CORRESPONDING FIELDS OF LO_OBJDATA?
FROM WWWDATA WHERE SRTF2 = 0 AND RELID = ‘MI’ AND OBJID = P_OBJID.?
IF SY-SUBRC NE 0 OR LO_OBJDATA-OBJID EQ SPACE.?
CONCATENATE ‘模板文件’ LS_OBJNAM ‘不存在,請用TCODE:SMWO進行加載’ INTO LS_ERRTXT.?
MESSAGE LS_ERRTXT TYPE ‘I’.?
ENDIF.?
CALL FUNCTION ‘DOWNLOAD_WEB_OBJECT’?
EXPORTING?
KEY = LO_OBJDATA?
DESTINATION = GC_FULLPATH ” ‘C:\Temp\test************.xls’ .?
IMPORTING?
RC = LI_RC.?
IF LI_RC NE 0.?
CONCATENATE ‘模板文件:’ LS_OBJNAM ‘下載失敗’ INTO LS_ERRTXT.?
MESSAGE LS_ERRTXT TYPE ‘E’.?
ELSEIF LI_RC EQ 0.?
MESSAGE ‘模板下載成功’ TYPE ‘S’.?
ENDIF.?
ENDIF.?
ENDFORM.?
&———————————————————————?
*& Form FRM_DELETE_SO?
&———————————————————————?
* text?
———————————————————————-?
* –> p1 text?
* <– p2 text?
———————————————————————-?
FORM FRM_DELETE_SO .?
DATA:LV_VBELN TYPE BAPIVBELN-VBELN.?
DATA:ORDER_HEADER_INX TYPE BAPISDH1X.?
DATA:RETURN TYPE TABLE OF BAPIRET2 WITH HEADER LINE.?
DATA: L_ANSWER(1) TYPE C.?
READ TABLE ITAB_OK WITH KEY BOX = ‘X’.?
IF SY-SUBRC <> 0.?
MESSAGE ‘請選擇需要刪除的行!’ TYPE ‘E’.?
ELSE.?
CALL FUNCTION ‘POPUP_TO_CONFIRM’?
EXPORTING?
TITLEBAR = ‘刪除’?
TEXT_QUESTION = ‘是否要刪除該內容?’?
DEFAULT_BUTTON = ‘2’?
DISPLAY_CANCEL_BUTTON = ‘X’?
IMPORTING?
ANSWER = L_ANSWER?
EXCEPTIONS?
TEXT_NOT_FOUND = 1?
OTHERS = 2.?
IF L_ANSWER = ‘1’.?
LOOP AT ITAB_OK WHERE BOX = ‘X’.?
LV_VBELN = ITAB_OK-VBELN.?
ORDER_HEADER_INX-UPDATEFLAG = ‘D’.?
CALL FUNCTION ‘BAPI_SALESORDER_CHANGE’?
EXPORTING?
SALESDOCUMENT = LV_VBELN?
ORDER_HEADER_INX = ORDER_HEADER_INX?
TABLES?
RETURN = RETURN.?
READ TABLE RETURN WITH KEY TYPE = ‘E’.?
IF SY-SUBRC = 0.?
SORT RETURN BY ID NUMBER.DELETE ADJACENT DUPLICATES FROM RETURN COMPARING ID NUMBER.?
LOOP AT RETURN.?
CONCATENATE RETURN-MESSAGE ‘;’ ITAB_OK-ZMESS INTO ITAB_OK-ZMESS.?
ENDLOOP.?
CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.?
ELSE.?
ITAB_OK-ZMESS = ‘刪除成功!’.?
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’?
EXPORTING?
WAIT = ‘X’.?
ENDIF.?
MODIFY ITAB_OK TRANSPORTING ZMESS WHERE VBELN = ITAB_OK-VBELN.?
ENDLOOP.?
ENDIF.?
ENDIF.?
ENDFORM.

總結

以上是生活随笔為你收集整理的OLE报表下载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。