国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 技術開發 > 正文

PB編程使用Word的一種方法

2023-06-15 12:15:00
字體:
來源:轉載
供稿:網友

本文介紹了在PowerBuilder(PB)中通過OleObject來訪問Word的一種方法。

1、引言

在編程的時候,常常需要訪問Word文檔。除了使用DDE之外,PowerBuilder還有一種操作Word的方式,就是通過OLEObjcet和OLEControl。

OLEObject是不可視的OLE對象,而OLEControl則是可視的窗口控件。由于OLEObject較后者更靈活方便,如果不是必須在窗口上顯示Word文檔內容,使用前者是更好的選擇。

程序開發員在使用OLE連接Word文檔的時候,常常遇到這樣兩個問題:

第一:如果某文檔已經打開,再使用程序調用的時候,會產生程序運行錯誤;

第二:經常發現創建的WinWord.exe進程沒有能夠正常終止。

2、 分析

下面我們來分析這兩個錯誤產生的原因。

對于第一個錯誤,往往是由于使用OLEObjectVar.ConnectToObject(“<FileName>”)的時候,<FileName>這個文件已經打開了。此時使用ConnectToObject會造成錯誤。

對于第二個錯誤,一般是使用 OLEObjectVar.ConnectToNewObject (“Word. Application”) 創建了新的Winword.exe進程,但是沒有執行關閉這個新的應用的操作。

3、解決

經過分析,我們可以確定了如何解決PB調用Word的程序的問題。

(1)打開文檔

首先,我們使用<OLEObjectVar>.ConnectToObject(“<WordFileName>”)來打開一個空Word文檔。打開成功后,使用<OLEObjectVar>.Application獲得對Word.Application的引用并設置Applicatin.Visible=TRUE,并關閉剛才打開的空文檔;

然后,使用Word.Application的Open方法打開要使用的文檔。

這樣的方法打開文檔,如果當前有正在運行的Windows.exe進程,就不必打開新的進程,而是使用當前的進程,并且可以成功地對當前的進程獲得引用。

(2)關閉文檔

首先,我們關閉程序打開的使用的文檔;

然后判斷Application是否還有其他的打開的文檔。如果沒有其他打開的文檔,則調用Application的Quit方法,讓Application退出,結束Winword.exe的程序進程。如果確定以后還經常的調用Word,也可以不關閉Winword.exe的進程,這樣可以每次很快的打開Word的文檔。

4、注意事項

由于通過OLEObject調用Word等Office有許多限制。盡管這個方法能夠解決許多問題,但是還是有許多需要特別注意的地方

第一,使用ConnectToObject連接的文檔,不能被鎖定(比如被以前的進程打開,或者被當作模板新建立了一個文檔,都可能鎖定),否則將會產生未知錯誤(返回值-9);

第二,對Document的各種操作,要保證Word.Application.Visible=TRUE,否則調用可能會產生程序錯誤。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北流市| 嵩明县| 乌审旗| 道孚县| 临沂市| 湘西| 赤水市| 伊宁市| 亳州市| 田阳县| 玛曲县| 紫阳县| 玉溪市| 玉环县| 宽甸| 内乡县| 湾仔区| 湖南省| 高淳县| 那坡县| 景洪市| 伊金霍洛旗| 江西省| 耿马| 保山市| 收藏| 瑞安市| 涡阳县| 卓资县| 麟游县| 龙州县| 云霄县| 海城市| 香格里拉县| 团风县| 河间市| 砀山县| 武城县| 西峡县| 嵊泗县| 永丰县|