Notes與Office的介面 (轉)

worldblog發表於2007-12-10
Notes與Office的介面 (轉)[@more@]

 

Notes與的介面

  本文Notes與Office的介面介紹了Notes 與 Office的三種介面的編制,它們可實現將Notes資料引入 Office程式中,實現在Notes中較難實現的標籤列印、表格列印以及修訂顯示等功能。
利用“合併”功能
  Word的郵件合併功能可以將資料來源的資料與主文件的資料合併,主要用於生成標籤和信封等具有固定格式的文件。我們可以利用這個功能,將 Notes中的資料引出,生成固定格式的文件,如:圖書的小標籤、信封列印等。
  步驟如下:

建立郵件合併所需的資料來源文件模板(.dot)和主文件模板(Main.dot)。
在Notes資料庫中,建立檢視、表單,將Source.dot、Main.dot作為附件附加到表單中,供後面的程式此模板生成文件。
透過Script實現用Notes文件內容生成Word文件。下面是源程式的主要部分,該程式在Notes中點選“列印”按鈕,或在操作選單中選擇“列印”時:
  ①啟動WORD。 Set wordapp=Get(“",“Word.Application.8") If Isempty(wordapp) Then Set wordapp = CreateObject(“Word.Application.8") If Isempty(wordapp) Then Messagebox “請先WORD 97。",0+64,“列印" Exit Sub End If End If

 
  ②產生資料來源。

  Call wordapp.documents.add
  Set WordSourceDoc= wordapp.activedocument
  Set ion=wordapp.selection
  Call WordSourceDoc.Tables.Add
  (wordapp.selection.Range,2, 25)
  Call selection.TypeText (“圖書名稱")
  Call  Selection.MoveRight(12)
  Call selection.TypeText (“圖書編號")
  Call  Selection.MoveRight(12)
  Call selection.TypeText (“購入日期")
  Call  Selection.MoveRight(12)
  ……………
  成資料來源表頭
 
  Set CurDoc = uidoc.Document
  Call selection.TypeText (CurDoc.Title(0))
  Call  Selection.MoveRight(12)
  Call selection.TypeText (CurDoc.Code(0))
  Call  Selection.MoveRight(12)
 Call selection.TypeText (CurDoc.Date(0))
  Call  Selection.MoveRight(12)
  ……………
  Notes文件中的資料填入資料來源表中
  FileName$=“c:圖書資料來源.doc"
  Call WordSourceDoc.SaveAs (“c: 圖書資料來源.Doc") 
存資料來源檔案

  ③產生郵件合併主文件。

  Set view=Cur.GetView(“圖書列印")
 Set tspzdoc=view.GetDocumentByKey(CurDoc.P_type(0),True)
  If tslxpzdoc Is Nothing Then
Messagebox “找不到配置文件,請重新生成
"+key+“編輯配置文件。",0+64,“檢測配置文件"
  Exit Sub
  End If
  Set ts_label=tspzdoc.GetAttachment(“圖書標籤.dot")
  If ts_label Is Nothing Then
  Messagebox “配置文件中找不到WORD"
  Exit Sub
  End If
  FileName$=“c: 圖書標籤.dot"
  Call ts_label.ExtractFile(FileName$)
  WordApp.Documents.Open (“C: 圖書標籤.dot")

  ④執行郵件合併。

 With WordApp.ActiveDocument. Merge
  .Destination =0
  .Execute
  End With
  Call  wordapp.Documents(“圖書標籤.dot").Close (0,0,False)
  Call  wordapp.Documents(“圖書資料來源.doc").Close (0,0,False)

利用Word表格實現介面
  表格在日常辦公中經常用到,用Notes表單或檢視列印表格,不僅格式簡單,而且不夠美觀,很難滿足需要。此時可將Notes資料庫文件引出,利用Word生成表格。
  步驟如下:

建立表格文件模板,如:科技檔案案卷目錄.dot。
在Notes資料庫中,建立檢視、表單,表單中包括每頁表格的行數、列印的起始行和列,還包括一個RTF域,將文件模板引入這個RTF域,生成文件。
Script程式設計實現用Notes文件內容生成Word文件。下面是源程式的主要部分,該程式在 Notes中點選“列印”按鈕,或在操作選單中選擇“列印”時執行。
  ①獲得列印設定以及列印模板。

  Set doc = docs.Getfirstdocument
  If doc Is Nothing Then
  Msgbox “沒有選中列印文件",
  Mb_Ok+Mb_IconStop,“停止"
  Exit Sub
  End If
Set Worddoc = ExtractWord(“科技檔案案卷目錄.")
If Worddoc Is Nothing Then Exit Sub
得列印模板文件
  Num_BeginH=Worddoc .Num_BeginH(0)
  Num_BeginL=Worddoc.Num_BeginL(0)
  Num_HS = Worddoc.Num_HS(0)
  得列印設定,依次為開始行、開始列、每頁列印行數

  ②啟動Word,根據Notes文件提供的表格模板生成Word 文件。

Set Tempdoc = CreateObject(“Word.Document.8")
Set Wordapp = Tempdoc.Application
Set Worsic = Wordapp.WordBasic
WordBasic.FileNew Worddoc.Txt_PathName(0)

  ③將Notes資料庫的內容引入生成的Word文件中,生成固定格式的表格。

  Items = Worddoc.Txt_Items
  Pageno = 1
  Row = 1
  While Not(doc Is Nothing)
  If Row = 1 Then
  If Pageno = 1 Then
 Set Table = Wordapp.ActiveDocument.Tables(1)
  WordBasic.EditSelectAll
  Wordbasic.Editcopy
  Table. Cell(Num_BeginH,Num_BeginL).Select
  Else
wordapp.Selection.MoveRight 1,2
  Wordbasic.InsertPagebreak
  WordBasic.EditPaste
Set WordSelection = Wordapp.Selection
  WordSelection.Delete 1,1
 Set Table = Wordapp.ActiveDocument.Tables(Pageno)
 Table.Cell(Num_BeginH, Num_BeginL).select
  End If
  Else
  End If
  For i = 0 To Ubound(Items)
 InsertStr =doc.GetItemvalue(Items(i))
  Wordbasic.insert Cstr(InsertStr(0))
  End If
  If i = Ubound(Items) And Row = Num_HS Then
  Else
  Wordbasic.NextCell 
  End If
  Next
  Row = Row + 1
  If Row > Num_HS Then
  Row = 1
  Pageno = Pageno +1
  End If
  Wend
  WordBasic.Appshow
  Wordapp.tate = 1
End Sub

利用Word“修訂”功能 實現修改痕跡保留功能
  在辦公自動化必需的公文子系統中,發文流程必然涉及到正文的修改。根據檔案工作的要求,修改的原稿必需保留,這就要求發文正文的修改痕跡必需保留。要在Notes中做到這一點是非常困難的。在Word中包含一個修訂功能,如果啟用了修訂功能, Word 將使用修訂標記來標記修訂。文件審閱完畢之後,可以根據不同的文字顏色區分出不同審閱者所做的修改。
  步驟如下:

  1. 建立一個Word文件,文件中包含以下宏。

  ①檢視痕跡。

Sub 檢視痕跡()
  With ActiveDocument
  .TrackRevisions = False 
   記對指定文件的修改
  .PrintRevisions = True
  列印文件的同時列印修訂標記
  .ShowRevisions = True 
 螢幕上顯示對指定文件的修訂
  End With
End Sub

  ②不檢視痕跡。

Sub 不檢視痕跡()
  With ActiveDocument
  .TrackRevisions = False
  .PrintRevisions = False
  .ShowRevisions = False
  End With
End Sub

  ③儲存退出。

Sub 儲存退出()
  ActiveDocument.Save
  ActiveDocument.Close
End Sub

  2.將該文件作為在表單中建立,注意將其顯示為圖表形式。

  3.將Notes中的名轉入Word中,以便生成標註。該程式可在資料庫的PostOpen事件中觸發,主要程式如下。

  Dim Wordapp As Variant
 Set Wordapp = CreateObject(“Word.Document.8")
  If Wordapp.Application.UserName
  < > Session.CommonUserName Then
Wordapp.Application.UserName =
  Session.CommonUserName
置Word使用者名稱
  End If
End Function
 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990826/,如需轉載,請註明出處,否則將追究法律責任。

相關文章