自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在PB中實(shí)現(xiàn)Word內(nèi)容的替換

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
隨著技術(shù)的發(fā)展進(jìn)步,數(shù)據(jù)庫(kù)性能有了很大程度的提高,在PB中可以實(shí)現(xiàn)WORD內(nèi)容的替換,本本文將為大家介紹實(shí)現(xiàn)在PB中實(shí)現(xiàn)Word內(nèi)容的替換的方法步驟。

導(dǎo)讀:本文介紹一種在Power Builder(以下簡(jiǎn)稱為PB)中利用OLE把數(shù)據(jù)庫(kù)中的數(shù)據(jù)傳送到Word文檔的方法。通過(guò)這種方法,用戶可以根據(jù)需求而改變內(nèi)容,以Word方式打印結(jié)果文檔。例如,在處理學(xué)生成績(jī)時(shí),如果要將每個(gè)學(xué)生的成績(jī)報(bào)告生成Word文檔,不同的學(xué)生只改變姓名、學(xué)號(hào)和年度等數(shù)據(jù),其他的格式不改變。只要從學(xué)生成績(jī)數(shù)據(jù)庫(kù)中調(diào)出特定數(shù)據(jù),插入或替換到已經(jīng)制作好的Word模版中,即可解決問(wèn)題??梢?jiàn)這樣就能很大程度上簡(jiǎn)便操作。下面就是實(shí)現(xiàn)WORD轉(zhuǎn)換的步驟。

一、創(chuàng)建Word模版文檔

  Word模板文檔的創(chuàng)建根據(jù)用戶的要求進(jìn)行,在固定的內(nèi)容輸入完成后,將需要變換內(nèi)容(例如姓名、年度、系別和證書(shū)編號(hào)等)的位置輸入“student_name”、“student_year”、“department”以及“student_id”等編碼。注意: 盡量使用英文來(lái)表示這些變量,目的是避免某些漢字相同而造成的誤替換。

  在需要?jiǎng)討B(tài)改變內(nèi)容的位置,不需要輸入文字,可以通過(guò)插入書(shū)簽的方法實(shí)現(xiàn),具體操作如下。首先,選擇在Word中,選擇“插入”*“書(shū)簽”,彈出“書(shū)簽”對(duì)話框(如圖1所示)。在“書(shū)簽名”文本框中輸入書(shū)簽名稱后,點(diǎn)擊“添加”按鈕,即在當(dāng)前光標(biāo)位置上增加了一個(gè)書(shū)簽。假設(shè)我們?cè)黾恿?個(gè)書(shū)簽,分別是 name、year、department以及id,分別代表姓名、年度、系別以及證書(shū)編號(hào)。

 

 

二、PB實(shí)現(xiàn)方法

  在窗體中新建一OLE控件,在彈出的“insert object”屬性窗口的“create new tab”選項(xiàng)卡中選擇“Microsoft Word 文檔”選項(xiàng),點(diǎn)擊“OK”按鈕后將該控件放在窗體中適當(dāng)位置,PB系統(tǒng)會(huì)自動(dòng)出現(xiàn)Microsoft Word應(yīng)用程序。將控件命名為“OLE_Word”,并創(chuàng)建“打開(kāi)文件”、“替換數(shù)據(jù)”和“存盤”按鈕,編寫(xiě)如下代碼。

1.打開(kāi)文件

string docname, named
integer value
value = getfileopenname("Select File",docname, named,
"DOC","Doc Files (*.DOC),*.DOC")
if value = 1 THEN
// 將模版文件另存為實(shí)際操作文件(程序略)
if ole_Word.open(docname)=0 then
ole_Word.activate(inplace!)
end if
end if

  這里使用“GetFileOpenName”函數(shù)讓用戶自行選擇文件,實(shí)際應(yīng)用時(shí)可以進(jìn)行條件的限定。注意: 需要將模版文件另存為實(shí)際操作文件后再打開(kāi),不能直接操作模版文件。打開(kāi)文件參數(shù)有2種,其中“inplace”表示在PB程序內(nèi)部窗口調(diào)用Word,部分提供Word的功能菜單; 另一種參數(shù)是“offsite”,表示PB程序外啟動(dòng)Word應(yīng)用程序,提供Word的所有功能菜單。簡(jiǎn)單的演示文檔如圖2所示。

 

 

2.插入或替換操作

(1)替換數(shù)據(jù)法

string ls_find_string,ls_replace_string
//取數(shù)據(jù)庫(kù)中數(shù)據(jù)賦值變量ls_replace_string(程序略)
ls_find_string = "student_name"
ls_replace_string = “張某” ole_Word.object.application.Selection.find.Execute(ls_find_string,false,true,
false,false,false,true,1,true,ls_replace_string,2)
//替換student_year,department,student_id的程序與替換student_name相同,略

其運(yùn)行結(jié)果如圖3所示。

 

 

(2)插入數(shù)據(jù)法

  除了使用查找替換方式,您還可以使用書(shū)簽方式來(lái)實(shí)現(xiàn)上述操作。
string ls_name,ls_year,department,ls_id
//取數(shù)據(jù)庫(kù)中數(shù)據(jù)賦值變量ls_name,ls_year,department,ls_id(程序略)
IF ole_Word.object.application.ActiveDocument.Bookmarks.Exists(“name”) THEN
ole_Word.object.application.activedocument.bookmarks.item(“name”).select
//定位書(shū)簽name
ole_Word.object.application.selection.typetext(ls_name)
//插入值
for i = 1 to 10
//消除非法字符
ole_Word.object.application.Selection.TypeBackspace()
next
ELSE//錯(cuò)誤提示
END IF
//定位書(shū)簽year,department,id一樣,略

注意事項(xiàng):

1.一定要判斷書(shū)簽是否存在,如果書(shū)簽不存在,進(jìn)行以上操作將導(dǎo)致系統(tǒng)錯(cuò)誤。
2.因?yàn)闈h字雙字節(jié)問(wèn)題,PB 6.5中每插入一個(gè)漢字后會(huì)在后面產(chǎn)生一非法字符,需要判斷漢字個(gè)數(shù)來(lái)決定調(diào)用“TypeBackspace()”的次數(shù)。上面涉及的10次循環(huán)次數(shù)是舉例說(shuō)明,實(shí)際編程要使用變量替代。
  上面的2種方法各有利弊,插入數(shù)據(jù)方式設(shè)計(jì)思想簡(jiǎn)單,操作容易,控制也比較方便,但不適合多處插入同一內(nèi)容,并且需要?jiǎng)h除產(chǎn)生的非法字符; 而替換方式只調(diào)用一個(gè)函數(shù),可以搜索整個(gè)文檔替換同一內(nèi)容,并不產(chǎn)生非法字符,但有可能替換掉不該替換的內(nèi)容,但是涉及的參數(shù)太多,不易記住。

3.存盤

ole_Word.save()
ole_Word.clear()

注: 上述代碼在Windows 98 + Power builder 6.5中測(cè)試通過(guò)

按照上文中介紹的步驟進(jìn)行操作,就能實(shí)現(xiàn)在PB中實(shí)現(xiàn)Word內(nèi)容的替換,給大家的工作帶來(lái)很多方便,希望上文中講到的內(nèi)容對(duì)大家能夠有所幫助。
 

【編輯推薦】

  1. WordPress的18條必備SQL操作語(yǔ)句
  2. PB內(nèi)置Oracle數(shù)據(jù)庫(kù)接口的使用方法
  3. PB應(yīng)用ODBC訪問(wèn)不同數(shù)據(jù)庫(kù)

 

責(zé)任編輯:迎迎 來(lái)源: 希賽網(wǎng)
相關(guān)推薦

2009-08-25 18:16:34

.NET操作Word

2009-09-01 13:25:25

C#Word文檔替換

2023-10-08 07:40:29

2009-07-27 09:20:13

替換Sys.ServiASP.NET

2010-03-02 09:38:16

Java熱替換

2009-12-25 16:54:47

ADSL接入網(wǎng)

2021-08-11 08:35:38

Word文件開(kāi)發(fā)代碼

2009-07-09 16:12:53

WeblogicJDBC

2020-06-23 14:51:13

JavaScript字符字符串

2009-09-01 11:21:02

C#讀取word內(nèi)容

2009-07-01 09:17:36

對(duì)象比較Java

2009-06-26 16:21:22

Oracle自動(dòng)增長(zhǎng)Hibernate

2021-11-26 10:08:57

鴻蒙HarmonyOS應(yīng)用

2025-02-12 00:35:24

WinForm框架工具

2024-01-29 00:57:20

GuavaJava拷貝

2009-12-28 17:17:52

WPF導(dǎo)航

2009-11-26 17:16:38

PHP函數(shù)str_re

2009-09-11 08:47:03

Linux系統(tǒng)批量替換文件Linux

2009-03-23 10:32:47

SQLServer數(shù)據(jù)庫(kù)數(shù)據(jù)類型

2024-09-11 16:43:40

C#Word編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)