久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

ABAP使用OLE方法總結

時間:2019-05-12 12:17:55下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《ABAP使用OLE方法總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《ABAP使用OLE方法總結》。

第一篇:ABAP使用OLE方法總結

SAP ABAP OLE 操作EXCEL小結

ABAP直接操作EXCEL實現數據處理。這里是用OLE實現操作EXCEL的。現在還有

DOI操作EXCEL等方法。以后用到再做介紹。此處不是直接生成EXCEL文件,而是從

服務器已經上傳的EXCEL模板中下載模板然后打開修改實現數據保存。也可以直接創建

新的EXCEL文件往里面傳遞數據并設置格式。這里不做介紹。

1.采用模板文件實現。上傳EXCEL模板

T-code:SMW0 WebRFC 的二進制數據 包:MI

點擊

模板數據保存在系統表www.tmdps.cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4.IF lc_fullpath = “".MESSAGE ”不能打開excel“ TYPE ”E“.ENDIF.IF sy-subrc = 0.p_dest = lc_fullpath.* 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.*檢查表wwwdata中是否存在所指定的模板文件

IF sy-subrc NE 0 OR lo_objdata-objid EQ space.“如果不存在,則給出錯誤提示

CONCATENATE ”模板文件“ ls_objnam ”不存在“ INTO ls_errtxt.MESSAGE ls_errtxt TYPE ”I“.ENDIF.ls_destination = p_dest.”保存路徑

*如果存在,調用DOWNLOAD_WEB_OBJECT 函數下載模板到路徑下

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 ls_errtxt TYPE ”E“.ENDIF.fname = ls_destination.ENDIF.ENDFORM.”fm_excel

3.下載完模板后,打開模板文件,填入數據

CREATE OBJECT excel “EXCEL.APPLICATION”.“Create EXCEL OBJECT IF sy-subrc NE 0.EXIT.ENDIF.SET PROPERTY OF excel ”Visible“ = 0.”1/0 是否顯示EXCEL

CALL METHOD OF excel “Workbooks” = workbook.CALL METHOD OF workbook “Open” EXPORTING #1 = fname..“打開上面下載路徑下的excel文件

CALL METHOD OF excel ”Sheets“ = sheet EXPORTING #1 = 1.CALL METHOD OF sheet ”Select“.CALL METHOD OF sheet ”ACTIVATE“.“sheet 激活

SET PROPERTY OF sheet ”NAME“ = sheetname.“設定sheet名稱

*此處假設內表itab 中已經存在需要寫入excel中的數據

*并且假如從模板的第7行開始插入數據

LOOP AT itab INTO wa.tab = wa-tabix + 6.*在excel中插入一行

PERFORM excel_row_insert USING sheet tab 1.*填充所插入行的每個單元格的數據

PERFORM fill_range USING tab 1 wa-t01.PERFORM fill_range USING tab 2 wa-t02.PERFORM fill_range USING tab 3 wa-t03.PERFORM fill_range USING tab 4 wa-t04.PERFORM fill_range USING tab 5 wa-t05.PERFORM fill_range USING tab 6 wa-t06.ENDLOOP.*設置EXCEL中所插入的數據行邊框線格式為黑色有邊框

bod = tab.CONDENSE bod NO-GAPS.CONCATENATE ”A6:F“ bod INTO bod.PERFORM borderrange USING excel bod.PERFORM sub_excel_save.”保存excel數據

*&-------* *& Form sub_excel_save *&-------* * text *--------* FORM sub_excel_save.GET PROPERTY OF excel “ActiveSheet” = sheet.“獲取活動SHEET

FREE OBJECT sheet.FREE OBJECT workbook.GET PROPERTY OF excel “ActiveWorkbook” = workbook.CALL METHOD OF workbook “SAVE”.SET PROPERTY OF excel “Visible” = 1.“是否顯示EXCEL 此處顯示不退出

* SET PROPERTY OF excel ”Visible“ = 1.* CALL METHOD OF workbook ”CLOSE“.* CALL METHOD OF excel ”QUIT“.注釋部分為不顯示直接退出

FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT excel.ENDFORM.”save_book

*&-------* *& 向excel中的指定行插入N行

*&-------* FORM excel_row_insert USING lcobj_sheet lc_row lc_count.DATA lc_range TYPE ole2_object.DATA h_borders TYPE ole2_object.DO lc_count TIMES.CALL METHOD OF lcobj_sheet “Rows” = lc_range EXPORTING #1 = 6.CALL METHOD OF lc_range “Copy”.“COPY第6行插入一個新行

CALL METHOD OF lcobj_sheet “Rows” = lc_range EXPORTING #1 = lc_row.CALL METHOD OF lc_range “Insert”.CALL METHOD OF lc_range “ClearContents”.“是否需要清空Cell ENDDO.ENDFORM.”excel_row_insert

*&-------* *& Form fill_range *&-------* * text 填充EXCEL 單元格

*--------* *-->VALUE(F_ROW)text *-->VALUE(F_COL)text *-->VALUE(F_VALUE)text *--------* FORM fill_range USING value(f_row)value(f_col)value(f_value).DATA: row TYPE i, col TYPE i.row = f_row.col = f_col.CALL METHOD OF excel “CELLS” = cell EXPORTING #1 = row #2 = col.SET PROPERTY OF cell “VALUE” = f_value.ENDFORM.“fill_range

*&-------* *& Form borderrange *&-------* * text:設置EXCEL中所插入的數據行邊框線格式

*--------* *-->LCOBJ_EXCEL text *-->RANGE text *--------* FORM borderrange USING lcobj_excel range.DATA: lc_cell TYPE ole2_object , lc_borders TYPE ole2_object.CALL METHOD OF lcobj_excel ”RANGE“ = lc_cell EXPORTING #1 = range.DO 4 TIMES.CALL METHOD OF lc_cell ”BORDERS“ = lc_borders

EXPORTING #1 = sy-index.SET PROPERTY OF lc_borders ”LineStyle“ = ”1“.SET PROPERTY OF lc_borders ”WEIGHT“ = 2.”4=max SET PROPERTY OF lc_borders “ColorIndex” = “1”.ENDDO.FREE OBJECT lc_borders.FREE OBJECT lc_cell.ENDFORM."borderrange

暫時只用到了這么多,還有ABAP設置EXCEL字體,對齊方式等功能。什么時候用到了再

做研究。希望對大家有所幫助。

第二篇:SAP ABAP OLE操作EXCEL小結

ABAP直接操作EXCEL實現數據處理。這里是用OLE實現操作EXCEL的。現在還有 DOI操作EXCEL等方法。以后用到再做介紹。此處不是直接生成EXCEL文件,而是從 服務器已經上傳的EXCEL模板中下載模板然后打開修改實現數據保存。也可以直接創建 新的EXCEL文件往里面傳遞數據并設置格式。這里不做介紹。

1.采用模板文件實現。上傳EXCEL模板 T-code:SMW0

注意選擇的是binary data(對于EXCEL模版上傳)如果是HTML上傳,對于存于www.tmdps.cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4.IF lc_fullpath = ''.MESSAGE '不能打開excel' TYPE 'E'.ENDIF.IF sy-subrc = 0.p_dest = lc_fullpath.* 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.“先嘗試取一下,接著檢查是否取到制定模版問件 *檢查表wwwdata中是否存在所指定的模板文件

IF sy-subrc NE 0 OR lo_objdata-objid EQ space.“如果不存在,則給出錯誤提示

CONCATENATE '模板文件' ls_objnam '不存在' INTO ls_errtxt.MESSAGE ls_errtxt TYPE 'I'.ENDIF.ls_destination = p_dest.”保存路徑

*如果存在,調用DOWNLOAD_WEB_OBJECT 函數下載模板到路徑下

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 ls_errtxt TYPE 'E'.ENDIF.fname = ls_destination.ENDIF.ENDFORM.“fm_excel

3.下載完模板后,打開模板文件,填入數據 DATA: EXCEL TYPE ole2_object, WORKBOOK TYPE ole2_object, SHEET TYPE ole2_object.CREATE OBJECT excel 'EXCEL.APPLICATION'.”Create EXCEL OBJECT IF sy-subrc NE 0.EXIT.ENDIF.SET PROPERTY OF excel 'Visible' = 0.“1/0 是否顯示EXCEL CALL METHOD OF excel 'Workbooks' = workbook.CALL METHOD OF workbook 'Open' EXPORTING #1 = fname..”打開上面下載路徑下的excel文件

CALL METHOD OF excel 'Sheets' = sheet EXPORTING #1 = 1.CALL METHOD OF sheet 'Select'.CALL METHOD OF sheet 'ACTIVATE'.“sheet 激活 DATA SHEETNAME TYPE STRING.SHEETNAME = 'TESTTESTTEST'.SET PROPERTY OF sheet 'NAME' = sheetname.“設定sheet名稱 *此處假設內表itab 中已經存在需要寫入excel中的數據 *并且假如從模板的第7行開始插入數據 DATA ITAB LIKE STANDARD TABLE OF SFLIGHT.DATA WA LIKE SFLIGHT.DATA: TAB TYPE I,BOD(5)TYPE C.SELECT * INTO TABLE ITAB FROM SFLIGHT UP TO 8 ROWS.LOOP AT itab INTO wa.tab = sy-tabix + 6.*在excel中插入一行

PERFORM excel_row_insert USING sheet tab 1.*填充所插入行的每個單元格的數據

PERFORM fill_range USING tab 1 wa-t01.PERFORM fill_range USING tab 2 wa-t02.PERFORM fill_range USING tab 3 wa-t03.PERFORM fill_range USING tab 4 wa-t04.PERFORM fill_range USING tab 5 wa-t05.PERFORM fill_range USING tab 6 wa-t06.ENDLOOP.*設置EXCEL中所插入的數據行邊框線格式為黑色有邊框

bod = tab.CONDENSE bod NO-GAPS.CONCATENATE 'A6:F' bod INTO bod.PERFORM borderrange USING excel bod.PERFORM sub_excel_save.“保存excel數據

*&-------* *& Form sub_excel_save *&-------* * text *--------* FORM sub_excel_save.GET PROPERTY OF excel 'ActiveSheet' = sheet.“獲取活動SHEET FREE OBJECT sheet.FREE OBJECT workbook.GET PROPERTY OF excel 'ActiveWorkbook' = workbook.CALL METHOD OF workbook 'SAVE'.SET PROPERTY OF excel 'Visible' = 1.”是否顯示EXCEL 此處顯示不退出 * SET PROPERTY OF excel 'Visible' = 1.* CALL METHOD OF workbook 'CLOSE'.* CALL METHOD OF excel 'QUIT'.注釋部分為不顯示直接退出 FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT excel.ENDFORM.“save_book

*&-------* *& 向excel中的指定行插入N行

*&-------* FORM excel_row_insert USING lcobj_sheet lc_row lc_count.DATA lc_range TYPE ole2_object.DATA h_borders TYPE ole2_object.DO lc_count TIMES.CALL METHOD OF lcobj_sheet 'Rows' = lc_range EXPORTING #1 = 6.CALL METHOD OF lc_range 'Copy'.“COPY第6行插入一個新行

CALL METHOD OF lcobj_sheet 'Rows' = lc_range EXPORTING #1 = lc_row.CALL METHOD OF lc_range 'Insert'.CALL METHOD OF lc_range 'ClearContents'.”是否需要清空Cell ENDDO.ENDFORM.“excel_row_insert *&-------* *& Form fill_range *&-------* * text 填充EXCEL 單元格

*--------* *-->VALUE(F_ROW)text *-->VALUE(F_COL)text *-->VALUE(F_VALUE)text *--------* FORM fill_range USING value(f_row)value(f_col)value(f_value).DATA: row TYPE i, col TYPE i.row = f_row.col = f_col.CALL METHOD OF excel 'CELLS' = cell EXPORTING #1 = row #2 = col.SET PROPERTY OF cell 'VALUE' = f_value.ENDFORM.”fill_range *&-------* *& Form borderrange *&-------* * text:設置EXCEL中所插入的數據行邊框線格式 *--------* *-->LCOBJ_EXCEL text *-->RANGE text *--------* FORM borderrange USING lcobj_excel range.DATA: lc_cell TYPE ole2_object , lc_borders TYPE ole2_object.CALL METHOD OF lcobj_excel 'RANGE' = lc_cell EXPORTING #1 = range.DO 4 TIMES.CALL METHOD OF lc_cell 'BORDERS' = lc_borders EXPORTING #1 = sy-index.SET PROPERTY OF lc_borders 'LineStyle' = '1'.SET PROPERTY OF lc_borders 'WEIGHT' = 2.“4=max SET PROPERTY OF lc_borders 'ColorIndex' = '1'.ENDDO.FREE OBJECT lc_borders.FREE OBJECT lc_cell.ENDFORM.”borderrange

暫時只用到了這么多,還有ABAP設置EXCEL字體,對齊方式等功能。什么時候用到了再 做研究。希望對大家有所幫助。

第三篇:ABAP知識總結

一. SAP在企業中的策略

On premise(前提)(知識庫—資源流程)完全面向對象的概念,通過面向服務的架構,解決核心業務。

On demand 通過創新進行功能的擴展并集成在業務的整個流程里。

On device(產品策略)通過擴展消費者的需求,以提供滿足消費者的策略,擴展SAP 的功能。

這三項完美結合,能確保數據的聯系性和流程的完整結合。并通過多層應用對流程進行管理。

二. Sap 提供各種產品類型給不同規模的公司。

三. Sap business suite 提供適應不同企業需求的解決方案,還擁有大量針對特定行業的功能。Sap netweaver 的知識庫:

核心應用(ERP/SRM/SCM)——工業應用——補充應用——SAP 應用的增強包

四. Applications 和 components

不同的應用可以包含相同的組件。

Components(sap ECC= sap central component)五. 逐步釋放給廣大用戶使用:

Beta 測試版——釋放給用戶(restricted)——無限制的釋放給用戶

六. 業務的生命周期(維護策略):

主流維護(從限制到非限制)——擴展的維護——客戶自定義的維護 七. Sap netweaver的層次和主要功能: 應用架構

三個維度,三個集成:共三層

人的集成(多渠道—portal門戶和collaboration協作)——信息集成(主數據、知識、業務)——流程集成 第四層:這三種集成的應用平臺為java和abap 數據庫和系統 DB、OS 八.

1、Sap netweaver 應用服務提供了:多級架構;可靠的運行環境(java和abap);很高的擴展性;操作系統和數據庫獨立;方便擴展環境;支持多種協議;對執行企業流程有高的安全標準。、2、外部系統:表現層(支持多種用戶接口,GUI 和browser)

應用層(支持多種操作系統)

數據庫層(支持多種數據庫)

3、應用層——dispatcher,通過分發器對表現層直接進行控制

通過ICM(內部通訊)控制

九、/n 退出當前

/nxxxx直接訪問xxxx /n打開overview of sessions /oxxxx打開一個新的頁面并訪問xxxx /nend 關閉窗口,有提示信息 /nex 直接關閉 /i 刪除當前窗口

十、AS(應用服務器)中ABAP Processes:三種

1.B/S

Message server(MS):處理信息在位于AS ABAP的分布式的觸發器之間。每個SAP系統只配置一次MS

2.gateway(GW):在SAP 系統之間或者在SAP 系統與外部應用系統之間進行交流。每個GW有一個觸發器

3.C/S

Internet communication manager(ICM):與SAP系統的交流利用web 協議(protocol),比如HTTP,ICM收到用戶請求并傳給SAP系統。可以配置一個最大的ICM給每個應用服務器

十一、用戶傳輸請求的過程

表現層(GUI):將屏幕上的GUI圖像展現給用戶,再將其轉化為內部的格式傳遞給AS ABAP 系統。

應用層:觸發器將用戶所有請求排列,遵循先進先出的原則。處理用戶請求必須從abap數據庫中讀取數據。當一個工作流程完成,結果就會通過觸發器返回給SAP GUI,SAP GUI通過對數據的編譯然后向用戶輸出屏幕。這個階段被稱為buffer(緩存),經常被讀取的數據通過緩存,可直接被讀取,不用每次讀取數據庫中的。幫助加速處理用戶請求。

數據庫層:每一項工作流程都和ABAP數據庫直接相連 問題?應用層和數據庫層之間如何進行數據的傳輸? ABAP 編譯器通過專門的語言(OPEN SQL)訪問數據庫接口,DB interface 再通過Native SQL語言訪問數據庫層,或者直接在緩存中讀取 ABAP 編譯器直接通過Native SQL語言對數據庫層進行訪問

十二、PBO和 PAI

十三、業務流程中的數據同步:

1、SAP系統中的CRM獲得訂單信息,并將其傳輸到ERP的后端backend

2、格式化數據成相同類型的數據

3、通過遠程調用RFC 技術實現

4、傳輸類型,每隔六十秒同步一次

5、在網上提供產品和服務 P135問題?

1. 哪些接口或交流選項是SAP 所支持的? HTTP;SMTP;RFC;BAPIs 2. BAPIs 的作用?

Requst data from an sap system

Pass data to an sap system

Access business processes in SAP system 在程序中用字典元素定義數據對象

DATA mycarried TYPE s_carr_id.獲得一個數據對象(變量)的類型指明在data element里是

DATA myconnid TYPE sbc400focc-connid.獲得一個數據對象(變量)有相同的類型的結構體是sbc400focc-connid.PARAMENTERS_pa_carr TYPE spfli-carrid.獲得一個域自動出現在屏上和spfli-carrid的變量類型相同。

DATA wa_focc TYPE sbc400fccc.其中data wa_focc type sbc400focc.是定義一個結構體,定義結構體的命名規 則通常是以wa_開頭加上變量名,代表是一個結構體變量。

獲得一個和結構體sbc400fccc有相同類型的結構體變量。

DATA wa_spfli TYPE spfli.data wa_spfli type spfli.是用來定義一個透明表。

獲得與spfli表中一行具有相同類型的結構體變量。

第四篇:ABAP學習總結

SAP學習總結 信管0911

楊釧

2011-12-2

SAP學習總結

立談之間,來集團參加ERP項目已近四個月,通過集團ERP項目組精心組織的培訓,經過自己的努力學習,我對ERP的認識有了很大程度的轉變。從一開始的不了解,帶著對很多專業名詞及模塊功能的疑問,到現在融入到ERP項目組后,被SAP龐大的功能所震撼;從一開始認為SAP僅僅是一種應用軟件,跟其他公司的ERP差不多,到現在深刻的地體會到SAP在企業管理中的重要位置;從一開始對SAP可能帶來的不便以及人力、財力、時間成本產生抵觸情緒,到現在對SAP產生依賴心理。這些對SAP認識的轉變,讓我意識到作為一名關鍵用戶和信息人員,為確保ERP的上線成功,應該如何發揮自身的作用。

5月9日,初步接觸到了SAP軟件。五月份到七月份我初步學習SAP中ABAP語言,起初感覺這跟平時學校學習的語言差不多,但是接觸的越久,我就越深深 的震撼ABAP語言的嚴謹性,以及ABAP編輯語言在SAP中的重要的位置,對其他工作模塊工作有非常重要的影響。通過這段時間ABAP語言的學習后,我進入技術組協助技術組中的各位老師,解決些小問題。工作一段時間之后,我才發覺,ERP前期項目的工作量大大超乎我的想像,它的重要性也讓人感到緊張。在每天的工作中,大家加班加點,熱火朝天的討論業務流程問題,以及程序代碼如何實現業務需求,有時候為了一個觀點不同而爭論不休,有時候又為達成共識而言歡高興。大家良好的溝通交流,讓我們這些初識者更積極主動地參與進來。

在技術組組工作了近兩周之后,為了讓我們全面認識SAP,從而更深入地開展工作,ERP項目組辦公室組織人員進行了為期一周的SAP開發語言ABAP的培訓。對于我們來說,掌握ABAP編程語言是深入理解SAP軟件知識要領的敲門磚。通過對ABAP的學習,我對SAP的后臺有了更進一步的了解,也為下一步深入接觸實際操作打下了基礎。在BASIS組織的講座和培訓中,我對BASIS有了一定了解,意識到ABAP對做好SAP系統的后臺規劃、安裝、配置、管理、監控、維護、調優等工作的重要性。通過此次培訓,大家對SAP有了些許的初步了解,對應該做好哪些工作有了初步的認識。

接下來說說,近半年我所學到的一些ABAP知識,報表顯示ALV ALV是系統的一種網格的顯示方式,這種方式帶有匯總排序篩選等功能,ALV格式的數據是以單元格為單位顯示,不象一般的寫屏方式拷出來或是導出成文件不同列的內容粘在一塊,這種方式便于數據導出來放在電子表格里進行加工.ALV: abap list view / Sap list view,在SAP報表數據輸出使用最廣泛的技術基于GUI,在展現層處理

操作簡單

較強的標準功能。排序、過濾、計算等

有三個版本的技術實現Function->grid->OM

BDC技術

首先簡單解釋一下BDC(Batch Data Conversion):

在SAP系統里,由于某種原因,可能需要重復輸入數據,(數據不同,但是操作是相同的,典型的情形就是切換系統的時候,舊系統的數據需要導入SAP),大致過程不外乎是這樣: 輸入一個t-code,進入一個某個屏幕,然后輸入一個值(有時還要加上一些附加的checkbox選項等),點執行或者確定按鈕,進入另一個屏幕,在某些字段輸入值(`也可能是標注checkbox選中或者不選中)或者修改這些字段里的值。

然后按“Eneter”??

最后按“SAVE”??,一條記錄完成了,繼續下一條,如此循環

等等ABAP技術,每當接觸ABAP學習ABAP的新知識,都感覺很震撼,ABAP語言的邏輯性真的很強。

在SAP的學習過程中,我認識到只有系統地學習財務模塊、人資模塊、生產模塊和物資模塊才能對整個ERP系統功能和SAP的關鍵設置有整體的了解。不僅僅如此,系統學習這些模塊知識,對ABAP語言的學習和程序報表的開發都有很大的用處的。雖然過去了半年,但是我并沒有覺得是在浪費時間,反而覺得比在學校學的還要多,覺得很充實,讓我找到了前進的目標。

第五篇:OLE對EXCEL操作總結

方法用例

*&-------* *& 本程序總結了常用的ABAP對EXCEL的操作,包括如下子例程 *& 方法名 方法說明 *&(1)create_excel 創建excel *&(2)insert_row 插入行 *&(3)fill_cell 填充單元格 *&(4)columnwidth 調整列寬 *&(5)create_sheet 創建sheet *&(6)copy_sheet_all sheet復制 *&(7)copy_sheet_area sheet區域復制 *&(8)copy_cells 復制單元格

*&(9)range_borders 邊框粗細 *&(10)row_color 行顏色 *&(11)preview_excel 預覽 *&(12)free_object 釋放對象 *&(13)close_excel 關閉excel *&(14)download_excel_fromserver 從服務器下載excel模板(進入模板事務代碼SMW0)

*&(15)open_excel_hide 隱蔽打開excel *&(16)open_excel 打開excel *&(17)open_excel_sheet 打開指定的excel的sheet *&(18)open_excel_by_sheet 打開sheet *&(19)select_range 選擇范圍 *&(20)clear_data 清除數據 *&(21)merge_cells 合并單元格 *&(22)process_indcator 進度指示 *&(23)delete_row 刪除行 *&(24)add_comment 添加注釋 *&(25)hide_columns 隱藏列 *&(26)delete_columns 刪除列 *&(27)hide_row 隱藏行 * 保護工作區 lock_unlock_excel :未完成 * 保護整個工作表 lock_sheet : 未完成

*& 本示例程序作為ABAP對EXCEL操作的參考,可以根據需要做適當的調整 *&-------* REPORT zdealexcel.TYPE-POOLS ole2.TABLES sscrfields.DEFINE m_message.case sy-subrc.when '0'.when others.message e000(zmeg)with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.endcase.END-OF-DEFINITION.DATA: application TYPE ole2_object, “excel object workbook TYPE ole2_object, ”excel workbook objcet sheet TYPE ole2_object, “workbook sheet object columns TYPE ole2_object, ”sheet col objcet rows TYPE ole2_object, “sheet row objcet range TYPE ole2_object, ”range range1 TYPE ole2_object, “range1 font TYPE ole2_object, ”font cell TYPE ole2_object, “cell cell1 TYPE ole2_object, ”cell1 sheet1 TYPE ole2_object, “workbook sheet object borders TYPE ole2_object.”borders

DATA: index TYPE i VALUE 0.*定義模板下載到本地保存的全名稱

DATA: p_down_file LIKE sapb-sappfad.“定義模板下載到本地保存的全名稱

*演示excel操作

SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN: PUSHBUTTON 01(12)but0 USER-COMMAND cli0, PUSHBUTTON 20(15)but2 USER-COMMAND cli2.SELECTION-SCREEN END OF LINE.*導入數據塊

SELECTION-SCREEN BEGIN OF BLOCK status2 WITH FRAME TITLE text-f02.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(20)text-002.PARAMETERS: p_file LIKE rlgrap-filename.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK status2.*導出數據塊

SELECTION-SCREEN BEGIN OF BLOCK status3 WITH FRAME TITLE text-f03.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(20)text-003.PARAMETERS: p_down LIKE rlgrap-filename.SELECTION-SCREEN: PUSHBUTTON 75(20)but1 USER-COMMAND cli1.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK status3.INITIALIZATION.CREATE OBJECT application 'excel.APPLICATION'.but0 = '演示excel操作'.”初始化導出button顯示名稱 but1 = '導出'.“初始化導出button顯示名稱 but2 = '從模板導出excel'.”從模板導出excel

*-------------------------設置文件上載-------------------------AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_path = p_file mask = ',*.*.' mode = 'O' title = text-f01 IMPORTING filename = p_file EXCEPTIONS inv_winsys = 1 no_batch = 2 selection_cancel = 3 selection_error = 4 OTHERS = 5.CHECK sy-subrc = 0 AND NOT p_file IS INITIAL.*-------------------------設置文件下載-------------------------AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_down.CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_path = p_down mask = ',*.xls,*.xls.' mode = 'S' title = text-f02 IMPORTING filename = p_down EXCEPTIONS inv_winsys = 1 no_batch = 2 selection_cancel = 3 selection_error = 4 OTHERS = 5.CHECK sy-subrc = 0 AND NOT p_down IS INITIAL.* AT SELECTION-SCREEN.IF sscrfields-ucomm EQ 'CLI1'.IF p_down IS INITIAL.MESSAGE e804(zdev).ELSE.p_down_file = p_down.PERFORM download_excel_fromserver USING 'ZHRI0004' p_down_file.“下載模板到本地

MESSAGE i600(zdev)WITH '模板導出成功'.ENDIF.ELSEIF sscrfields-ucomm EQ 'ONLI'.IF p_file IS INITIAL.MESSAGE e803(zdev).ENDIF.ELSEIF sscrfields-ucomm EQ 'CLI0'.PERFORM demo_forms.ELSEIF sscrfields-ucomm EQ 'CLI2'.PERFORM demo_forms_server USING p_file.ENDIF.START-OF-SELECTION.PERFORM open_excel_hide USING p_file.PERFORM close_excel.PERFORM open_excel USING p_file.PERFORM close_excel.PERFORM open_excel_sheet USING 'sheet2' p_file.DO 10 TIMES.PERFORM insert_row USING 1.PERFORM fill_cell USING 1 1 0 'e'.PERFORM fill_cell USING 1 2 0 'f'.PERFORM fill_cell USING 1 3 0 'g'.index = index + 1.ENDDO.PERFORM close_excel.PERFORM free_object.*&-------* *& Form demo_forms_server *&-------* * 從SMW0下載excel模板

*--------* *-->P_FILE excel本地路徑

*--------* FORM demo_forms_server USING p_file.p_down_file = p_file.PERFORM process_indcator USING '程序正在下載模板' 0.PERFORM download_excel_fromserver USING 'ZHRI0004' p_down_file.PERFORM process_indcator USING '程序正在初始化OLE控件' 0.PERFORM process_indcator USING '程序正在打開excel文檔' 0.PERFORM open_excel_sheet USING '處分處罰信息批導入' p_file.DO 10 TIMES.PERFORM insert_row USING 5.PERFORM fill_cell USING 5 1 0 'e'.PERFORM fill_cell USING 5 2 0 'f'.PERFORM fill_cell USING 5 3 0 'g'.index = index + 1.ENDDO.PERFORM clear_data USING 1 6 2 7.PERFORM merge_cells USING 1 6 2 7.PERFORM add_comment USING 8 1 'OK'.PERFORM close_excel.PERFORM free_object.ENDFORM.”demo_forms_server

*&-------* *& Form demo_forms *&-------* * 演示用form *--------* FORM demo_forms.PERFORM create_excel.DO 10 TIMES.PERFORM insert_row USING 1.PERFORM fill_cell USING 1 1 0 'a'.PERFORM fill_cell USING 1 2 0 'b'.PERFORM fill_cell USING 1 3 0 'c'.index = index + 1.ENDDO.PERFORM columnwidth USING 'A:C' ''.PERFORM create_sheet.PERFORM create_sheet.PERFORM copy_sheet_all.PERFORM copy_sheet_area.PERFORM copy_cells.PERFORM range_borders.PERFORM row_color USING 1.PERFORM preview_excel.PERFORM del_sheet USING 'sheet2'.PERFORM free_object.ENDFORM.“demo_forms

*&-------* *&(1)Form create_excel *&-------* * 創建excel *--------* FORM create_excel.IF sy-subrc <> 0.MESSAGE 'EXCEL ERROR' TYPE 'S' DISPLAY LIKE 'E'.STOP.ENDIF.CALL METHOD OF application 'WORKBOOKS' = workbook.SET PROPERTY OF application 'VISIBLE' = 1.SET PROPERTY OF application 'SHEETSINNEWWORKBOOK' = 1.CALL METHOD OF workbook 'ADD' = sheet.CALL METHOD OF sheet 'ACTIVE'.ENDFORM.”create_excel

*&-------* *&(2)Form insert_row *&-------* * 根據行號插入一行

*--------* *-->I_ROW 行號

*--------* FORM insert_row USING i_row.CALL METHOD OF application 'ROWS' = rows EXPORTING #1 = i_row.CALL METHOD OF rows 'INSERT'.ENDFORM.“insert_row

*&-------* *&(3)Form fill_cell *&-------* * 填充單元格

*--------* *-->I_ROW 行號 *-->I_COL 列號 *-->BOLD 是否加粗 *-->P_VALUE 值

*--------* FORM fill_cell USING i_row i_col bold p_value.CALL METHOD OF application 'CELLS' = cell EXPORTING #1 = i_row #2 = i_col.SET PROPERTY OF cell 'VALUE' = p_value.SET PROPERTY OF cell 'HORIZONTALALIGNMENT' = 2.GET PROPERTY OF cell 'FONT' = font.SET PROPERTY OF font 'BOLD' = bold.SET PROPERTY OF font 'COLORINDEX' = 41.CALL METHOD OF cell 'BORDERS' = borders EXPORTING #1 = '2'.SET PROPERTY OF borders 'LINESTYLE' = '0'.SET PROPERTY OF borders 'WEIGHT' = 0.ENDFORM.”fill_cell

*&-------* *&(4)Form columnwidth *&-------* * 設置列寬為自動或是固定值

*--------* *-->COLNUM 列號,可以為單個列或是多個列 *-->WIDTH 列寬值

*--------* FORM columnwidth USING colnum width.CALL METHOD OF application 'COLUMNS' = columns EXPORTING #1 = colnum.IF width = ''.CALL METHOD OF columns 'AutoFit'.ELSE.SET PROPERTY OF columns 'COLUMNWIDTH' = width.ENDIF.ENDFORM.“columnwidth

*&-------* *&(5)Form create_sheet *&-------* * 創建sheet *--------* FORM create_sheet.CALL METHOD OF application 'sheets' = sheet.CALL METHOD OF sheet 'ADD'.ENDFORM.”create_sheet

*&-------* *&(6)Form copy_sheet_all *&-------* * 復制sheet全部內容到另一個sheet *--------* FORM copy_sheet_all.CALL METHOD OF application 'Sheets' = sheet EXPORTING #1 = 'Sheet1'.CALL METHOD OF sheet 'Cells' = cell.CALL METHOD OF cell 'copy'.CALL METHOD OF application 'Sheets' = sheet EXPORTING #1 = 'Sheet3'.CALL METHOD OF application 'Range' = range EXPORTING #1 = 'A1'.CALL METHOD OF range 'PasteSpecial'.ENDFORM.“copy_sheet_all

*&-------* *&(7)Form copy_sheet_area *&-------* * 復制sheet部分內容到另一個sheet *--------* FORM copy_sheet_area.CALL METHOD OF application 'Sheets' = sheet EXPORTING #1 = 'Sheet1'.CALL METHOD OF sheet 'Range' = range EXPORTING #1 = 'A1' #2 = 'B10'.CALL METHOD OF range 'copy'.CALL METHOD OF application 'Sheets' = sheet1 EXPORTING #1 = 'Sheet2'.CALL METHOD OF sheet1 'Range' = range1 EXPORTING #1 = 'A1' #2 = 'B10'.CALL METHOD OF range1 'PasteSpecial'.ENDFORM.”copy_sheet_area

*&-------* *&(8)Form copy_cells *&-------* * 在一個sheet內復制單元格

*--------* FORM copy_cells.CALL METHOD OF application 'Sheets' = sheet EXPORTING #1 = 'Sheet1'.CALL METHOD OF sheet 'Range' = range EXPORTING #1 = 'A1' #2 = 'B10'.CALL METHOD OF range 'copy'.CALL METHOD OF sheet 'Range' = range1 EXPORTING #1 = 'A12' #2 = 'B22'.CALL METHOD OF range1 'PasteSpecial'.ENDFORM.“copy_cells

*&-------* *&(9)Form range_borders *&-------* * 指定range加邊框

*--------* FORM range_borders.CALL METHOD OF application 'Range' = range EXPORTING #1 = 'A1' #2 = 'B10'.CALL METHOD OF range 'BORDERS' = borders.SET PROPERTY OF borders 'LINESTYLE' = 1.SET PROPERTY OF borders 'WEIGHT' = 10.ENDFORM.”range_borders

*&-------* *&(10)Form row_color *&-------* * 設定行背景色

*--------* *-->I_ROW 行號

*--------* FORM row_color USING i_row.CALL METHOD OF application 'ROWS' = rows EXPORTING #1 = i_row.GET PROPERTY OF rows 'Interior' = font.SET PROPERTY OF font 'ColorIndex' = '10'.ENDFORM.“row_color *&-------* *&(11)Form preview_excel *&-------* * 預覽excel *--------* FORM preview_excel.SET PROPERTY OF application 'VISIBLE' = 1.CALL METHOD OF sheet 'PRINTPREVIEW'.* m_message.ENDFORM.”preview_excel

*&-------* *&(12)Form free_object *&-------* * 釋放object *--------* FORM free_object.FREE OBJECT font.FREE OBJECT range.FREE OBJECT range1.FREE OBJECT columns.FREE OBJECT rows.FREE OBJECT cell.FREE OBJECT cell1.FREE OBJECT sheet1.FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT application.ENDFORM.“free_object

*&-------* *&(13)Form close_excel *&-------* * 關閉excel并保存

*--------* FORM close_excel.CALL METHOD OF workbook 'Save'.CALL METHOD OF workbook 'Close' EXPORTING #1 = 0.CALL METHOD OF application 'Quit'.ENDFORM.”close_excel

*&-------* *&(14)Form download_excel_fromserver *&-------* * 從服務器下載excel模板

*--------* *-->P_OBJID 模板名稱 *-->P_DEST 存檔路徑

*--------* FORM download_excel_fromserver USING p_objid LIKE www.tmdps.cnment *&-------* * 添加注釋

*--------* *-->I_ROW 行號 *-->I_COL 列號 *-->P_TEXT 注釋內容

*--------* FORM add_comment USING i_row i_col p_text.CALL METHOD OF application 'Cells' = cell EXPORTING #1 = i_row #2 = i_col.CALL METHOD OF cell 'AddComment' = cell1.CALL METHOD OF cell1 'Text' EXPORTING #1 = p_text.CALL METHOD OF cell1 'Shape' = font.SET PROPERTY OF font 'Width' = '20'.SET PROPERTY OF font 'Height' = '20'.ENDFORM.“add_comment

*&-------* *&(25)Form hide_columns *&-------* * 隱藏列

*--------* *-->COLNUM 輸入列號

*--------* FORM hide_columns USING colnum.CALL METHOD OF application 'COLUMNS' = columns EXPORTING #1 = colnum.SET PROPERTY OF columns 'Hidden' = 'true'.ENDFORM.”hide_columns

*&-------* *&(26)Form delete_columns *&-------* * 刪除列

*--------* *-->COLNUM 輸入列號

*--------* FORM delete_columns USING colnum.CALL METHOD OF application 'COLUMNS' = columns EXPORTING #1 = colnum.CALL METHOD OF columns 'DELETE'.ENDFORM.“delete_columns

*&-------* *&(27)Form hide_row *&-------* * 隱藏行

*--------* *-->I_ROW 輸入行號

*--------* FORM hide_row USING i_row.CALL METHOD OF application 'ROWS' = rows EXPORTING #1 = i_row.SET PROPERTY OF rows 'Hidden' = 'true'.ENDFORM.”hide_row 2 注意事項 2.1 Sheet名稱

Sheet名為中文時,在調用sheet對象時往往會調用不到,用英文字母不存在該問題。2.2 釋放對象

程序結束時需要釋放對象,否則Excel有可能無法關閉。釋放對象代碼如下: FORM free_object.FREE OBJECT font.FREE OBJECT range.FREE OBJECT range1.FREE OBJECT columns.FREE OBJECT rows.FREE OBJECT cell.FREE OBJECT cell1.FREE OBJECT sheet1.FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT application.ENDFORM.

下載ABAP使用OLE方法總結word格式文檔
下載ABAP使用OLE方法總結.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    ABAP中使用TABLE CONTROL 顯示數據以及操作要點小結:

    TABLE CONTROL操作要點小結 1.屏幕號:100 2.在屏幕100中應用table control *聲明control T1應用于屏幕100 CONTROLS T1 TYPE TABLEVIEW USING SCREEN 100. “T1代表自定義......

    總結正確使用化妝品的方法

    總結正確使用化妝品的方法 好的化妝品,使用效果不當,只能達到60分的效果。選對了化妝品,也要用正確的方法使用,才能達到滿分的效果。現在以Lara style化妝品為例來逐一說明使用......

    德爾福產品-蓄電池使用及保養方法總結

    德爾福蓄電池使用及保養方法總結 目前大部分轎車已將普通蓄電池改為免維護蓄電池,很多車主認為,這種免維護蓄電池不用自己再做保養,這種觀點是不是正確呢? 其實呀,免維護蓄電池和......

    釣魚使用魚竿的方法技巧總結

    曦晴魚竿網 www.tmdps.cn qtekc 釣魚的方法技巧總結 多年的釣魚經驗來看,夏季早晚是釣魚的最佳時機,一般可在早晨的4點到上午的10點,下午的5點到晚11點還是可以釣得不......

    《如何使用面試工具和方法?》

    HR 法律工作手冊環球國際人才網共 6 頁第1 頁【知識講解】招聘面試是HR經理的一項重要工作內容,每個成功的經理人都必須具備高超的招聘面試技巧,使合適的人在合適的崗位上,創造......

    合理使用除草劑方法交流

    在園林工作中,科學使用化學除草,不僅可以有效防除雜草同時可節省大量除草工時,提高工作效率。除草劑的種類繁多,在分類上,根據使用方法分為莖葉處理劑和土壤封閉處理劑;根據其作用......

    水產飼料使用成本分析方法

    水產飼料使用成本分析方法 魚類食物來源有兩大類:一類是天然餌料,一類是人工按魚類營養需要生產的配合飼料。在目前大規模養殖條件下,人工配合飼料已成為飼養魚類生長所需營養......

    認識鍵盤和使用鍵盤的方法

    認識鍵盤和使用鍵盤的方法 1、鍵盤簡介 如果把電腦顯示器比作手機的屏幕,那么鍵盤可以比作手機的按鍵,它是電腦重要的輸入設備之一。鍵盤包括主鍵盤區、功能鍵區、編輯鍵區、......

主站蜘蛛池模板: 日本欧美久久久久免费播放网| 亚洲中文字幕无码av正片| 久久视频在线视频精品| 亚洲国产成人精品综合av| 欧美亚洲国产片在线播放| 无码爆乳超乳中文字幕在线| 国产极品粉嫩泬免费观看| 久久人人爽人人爽人人片av东京热| 亚洲欧美日韩在线码| 中文字幕日韩一区二区不卡| 国产 麻豆 日韩 欧美 久久| 午夜精品久久久久久久无码| 亚洲精品国产成人99久久6| 亚洲日韩乱码一区二区三区四区| 中文字幕人妻偷伦在线视频| 国产中年熟女高潮大集合| 亚洲韩欧美第25集完整版| 蜜桃视频无码区在线观看| 97性无码区免费| 欧美特黄特色三级视频在线观看| 亚洲精品乱码久久久久久蜜桃图片| 欧美精品中文字幕在线视| 亚洲国产精品久久久久秋霞1| 亚洲色偷偷综合亚洲av伊人| 囯精品人妻无码一区二区三区99| 99久久免费只有精品国产| 色偷偷亚洲男人本色| 亚洲av无码av制服丝袜在线| 777奇米四色成人影视色区| 色两性网欧美| 韩国精品福利一区二区三区| 99久久国语露脸精品国产色| 伊人久久精品无码麻豆一区| 亚洲 高清 成人 动漫| 人妻体体内射精一区二区| 国产精品天天在线午夜更新| 色综合久久蜜芽国产精品| 亚洲人成色在线观看| 一本色道av久久精品+网站| 97人妻碰碰视频免费上线| 国产性生大片免费观看性|