Word自動化撤銷 重做功能

2022-04-10 06:33:44 字數 1216 閱讀 6631

功能需求:

在監督監理專案的word報告模組中,要求實現對word檔案內容操作的撤銷、重做功能。

實施方案:

採用備忘錄模式實現。

要點一:備忘錄模式

應用程式在每次操作之後都改變了他的狀態。也就是說乙個應用程式一旦被操作,它的狀態就會被改變。如果要撤消到以前的狀態,在應用程式執行的時候,我們必須儲存它的狀態。為了支援重做,我們還必須從當前的狀態回到下乙個狀態。

為了實現撤消儲存應用程式的狀態以前的狀態,為了實現重做儲存應用程式的狀態下一狀態。解決方案就是維護應用程式的狀態來實現撤銷/重做。在實現中使用可兩個棧。乙個存放撤消操作的狀態,另外乙個存放重做操作的狀態。執行撤消操作,撤消堆疊彈出 ,就能得到應用程式的前乙個狀態。執行重做操作,重做堆疊彈出,獲取下乙個狀態。然後用它們來設定應用程式的狀態。

所以,為了實現撤銷、重做操作,關鍵問題就在於如何儲存和維護應用程式執行中的各種狀態。

要點二:採用複製到clipboard的物件作為操作狀態進行記錄

這一點與最初的想法不同。改變想法的主要原因是:interop.word下封裝的com物件,沒有提供對序列化的支援,從而不能通過深度複製的辦法儲存操作狀態。

使用狀態的關鍵點:

(1)       實時記錄狀態。

每做一次工具欄上按鈕的操作後,都將整個文件的內容選中,複製到剪貼簿;

再由剪貼簿獲得rtf格式的字串資料(rtf——>string);

包裝成memoto物件後,對該物件進行深度複製(序列化/反序列化),得到字串資料的副本(string——>memoto物件—>memoto物件副本);

將該副本儲存在撤銷棧中。

(2)       撤銷操作。

刪除當前文件的所有內容;

撤銷棧彈棧,獲取前一狀態對應的包裝物件(memoto物件——>string);

由該物件取回前一狀態對應的rtf格式的字串資料,在借助剪貼簿,存為剪貼上採用rtf格式的資料(string——>rtf);

從剪貼簿上將內容複製待文件中,這樣便實現了對前一狀態的還原。

(3)重做操作。

與(2)同,此處從略。

功能測試自動化

重複性測試 準確性問題 效率問題等。測試用例的設計 介面和使用者體驗測試 正確性的檢查。1.在進行專案的自動化測試之前,先要考慮以下5個方面 1 功能測試自動化類類似軟體開發過程 2 功能自動化測試是個長期過程 3 確保功能測試自動化的資源,包括人員和技能 4 循序漸進的開展自動化測試 5 確保功能...

SQL Server 自動化功能

為了保證安全,資料庫每天都要備份很多次,如果讓人來按時按點的進行備份,是很不現實的。這時,我們可以通過sql server 自動化的功能來完成資料庫的備份操作。自動化功能包括 了解了自動化的功能,接下來我們了解一下自動化管理元素都有哪些。自動化管理元素 使用自動化過程中,會使用警報將錯誤的操作資訊報...

Python資料自動化 word批量生成

最近檢視了好多關於怎麼自動化生成word的文章 主要用兩個包 python docx和python docx template import docx如果想學習可以按順序看這幾篇文章。python docx中文文件使用小結 python docx製作word文件詳細使用說明 推薦 用 python ...