f gstrNextMan="" Then Msgbox Err_No_Transactor,,"无办理人" Exit Sub End If If gstrIsSponsor="否" And gstrIsCurrentReturn="是" Then If Messagebox( "文件返回给"+gstrNextMan+"?" ,1,"完成") =2 Then Exit Sub Else If Messagebox(gstrNextMan+"进行"+gstrNextStep+"?" ,1,"完成") =2 Then Exit Sub End If Call DeleteMailDoc(gstrCurrentMan,doc.MailID(0)) '删除通知邮件 Call AdjustWorkFlow(doc) '调整办理人、办理步骤等 Call SendDocLink(doc,doc.CurrentTransactor(0),"待办:") '给下一办理人发送通知邮件 Call doc.ComputeWithForm( False, False ) '备份批示意见 doc.NotionBak=doc.GetItemValue(doc.NotionName(0))(0) doc.Notion="" Call uidoc.Save() '如果当前是签发状态,修改文件的表单,使文件的大部分域变成不可编辑 If (gstrCurrentRole="签发" And gstrIsSponsor="否") Then doc.Form="Subscribe" End If Call doc.Save(True,True) Else '如果当前是最后一步 If Messagebox( "确定要将此文件办结?" ,1,"完成") =2 Then Exit Sub Call DeleteMailDoc(gstrCurrentMan,doc.MailID(0)) Call AdjustWorkFlow(doc) doc.CurrentTransactor="" '清除读者域 Call doc.Save(True,True) Call CopyDocToFileDB(doc) '在文件库中创建该文件的拷贝 End If doc.SaveOptions = "0" Call uidoc.Close() Call workspace.ViewRefresh End Sub 2. 关系数据库的接口 我们在人事系统中,将考勤机的数据自动读入内Notes应用系统,进行员工考勤的有效管理。通过ODBC实现,首先在客户端控制面板正确设置ODBC的连接,然后在操作的(Options)声明 Uselsx "*LSXODBC" , 然后实现其具体的数据转换。 例如: Sub Click(Source As Button) Dim con As New ODBCConnection Dim qry As New ODBCQuery Dim result As New ODBCResultset … … Dim dataSource, datatab, deptstr As String Set db=session.currentdatabase Dim n As New notesname(session.username) dataSource = "delphi" DepartNo= Inputbox$("请输入部门编码, 如01", "DepartNo?") timeV = Inputbox$("请输入年月, 如200001", "timeV?") datatab= "c:/lhkq/kqtz"+timeV+".db" If con.ConnectTo(dataSource) Then i=1 Set qry.Connection = con datatab="SELECT * FROM "+datatab++" where Bmbh = '"+DepartNo+"'" Messagebox "Connect to " & dataSource + " -> " & datatab qry.SQL = datatab Set result.Query = qry Call result.Execute Call Result.FirstRow Do flagV= result.getvalue(21) DeptV= result.getvalue(5) If result.getvalue("Kqjg")<>"Rest" And result.getvalue(5)= DepartNo Then Set newdoc=New NotesDocument(db) newdoc.form="WorkRecorder" Call newdoc.ComputeWithForm( False, False ) newdoc.Day=result.getvalue(2) newdoc.DeptNum= DeptV newdoc.JobName=result.getvalue(6) newdoc.Read1= result.getvalue(8) … … lable1: Set view1=db.getview("BMAP") BM=newdoc.DeptNum(0) Set doc1=view1.getdocumentbykey(BM) If Not(doc1 Is Nothing) Then Set item=newdoc.GetFirstItem("reader") newdoc.department=doc1.department(0) deptstr=Cstr(newdoc.department(0)) Call item.AppendToTextList(deptstr) Call item.CopyItemToDocument(newdoc, "reader") Else Goto lable2 End If … … Call newdoc.save(True,True) End If Call result.NextRow() Loop Until result.IsEndOfData End If Call workspace.ViewRefresh End Sub 3. Microsoft Word的接口 Microsoft Word是常用的字处理工具,而且它具有批注、修改留痕等非常有用的功能,所以在发文、签报两个系统中我们解决了和Microsoft Word接口问题,使系统的实用性有了进一步提高。 首先在发文、签报中创建Word的OLE对象,然后进行处理。 1) 由Entering事件激发创建一个OLE的Word文档: Set WordDoc=uidoc.GetObject("wdTextDoc") Call uidoc.GotoField( "Text" ) Set WordDoc=uidoc.CreateObject("wdTextDoc", "Word.Document") 2)在创建Word文档时,要隐藏Word界面中的工具栏和标尺、设置标志和复制用户已建立的模板文件。 '隐藏Word界面中的工具栏和标尺 Set wdCommandBars=WordDoc.CommandBars For i%=1 To 10 wdCommandBars(i%).Visible=False Next WordDoc.ActiveWindow.DisplayRulers=False WordDoc.ActiveWindow.DisplayVerticalScrollBar =True WordDoc.ActiveWindow.DisplayHorizontalScrollBar =True '设置标志 Set doc=uidoc.Document Call doc.ReplaceItemValue("IsWordText",1) Call uidoc.Refreshhideformulas() '复制模板文件 Dim sWordDotFile As String sWordDotFile=uidoc.Document.DotFile(0) If sWordDotFile<>"" Then Call CopyWordDot(sWordDotFile,WordDoc ) End If 2) 增加批注、修订功能 ’批注 Call WordDoc.Comments.Add (WordDoc.Application.Selection.Range) ’修订功能 Set WordDoc=uidoc.GetObject("wdTextDoc") With Wo 上一页 [1] [2] [3] 下一页
Tags:
|