皖能集团Internet/Intranet应用系统
2016-10-01 01:04
导读:计算机应用论文论文,皖能集团Internet/Intranet应用系统论文样本,在线游览或下载,科教论文网海量论文供你参考:摘要:通过皖能集团的Internet/Intranet系统的实际案例,介绍了在基于Lotus Notes/
摘要:通过皖能集团的Internet/Intranet系统的实际案例,介绍了在基于Lotus Notes/Domino系统中最为关键的几项技术:全流程定义技术、关系数据库的接口、Microsoft Word接口和刊物的完美显示。
关键词:群件平台 流程定义 接口技术
随着“政府上网”工程的全面启动、信息化的进一步和电子商务的需求增强,建立一整套机综合系统对集团是一种迫切需求。根据当前技术发展趋势,我们采用Internet/Intranet体系模式构造皖能集团的综合应用网络系统,实现对外信息发布和内部的全面办公和业务管理功能,这对实施有效监控、加强信息沟通、提高运行效率和优化产业、资本结构,发挥公司整体效益起到十分重要的作用。
一、网络系统结构
根据皖能集团Internet/Intranet系统的应用需求,从网络系统应用和安全的角度出发,内网至少布置2台Windows NT服务器,作为应用服务器、邮件服务器和备份服务器,提供内部办公自动化和业务数据处理的应用。外网布置2台Windows NT服务器,其中一台
图1 皖能集团Internet/Intranet网络体系结构
配置Domino R5 服务器,作为外部Web服务器,建立皖能(集团)公司的站点,并借助内置的POP3服务器以实现Notes邮件系统和Internet邮件系统的无缝连接,提供信息发布、信息交换和电子邮件等服务;另外一台作为代理服务器,提供内部用户访问Internet服务和防火墙的安全措施。
如图1所示,内部Web服务器接入到主干交换机上,外部服务器应放在代理服务器之外,在代理服务器上插入两块网卡,一块网卡和内部局域网相连,一块网卡和省信息网相连,它们之间通过代理服务器进行隔离。同时由路由器实现广域网与局域网的互联,实现通过互联网数据传输的路径选择及网络地址解析,并在路由器上构造外防火墙(IP包过滤)。
二、系统功能
(转载自http://zw.NSEaC.com科教作文网)
皖能集团Internet/Intranet系统构架于业界领先的群件系统Lotus Notes/Domino R5之上,充分利用了Notes/Domino的强大功能,集电子邮件、工作流处理、多媒体文档应用和Web信息发布为一体,开通了电子邮件、电子日历、个人资料、公文处理、档案管理、资料管理、领导活动、人事管理、项目管理、公司动态、组织机构、皖能视窗、政策法规、综合信息、工作探讨、电子公告板等二十多项应用模块。
皖能集团Internet/Intranet系统功能分为两大部分:
1. Internet Web站点(www.wenergy.com.cn) 和邮件系统(mail.wenergy.com. cn),由于篇幅关系,在此不做详细介绍。
2. 皖能集团办公自动化系统
三、关键技术创新和实现
1. 全流程定义技术
公文运转是工作流程最直接、最充分的体现,它贯穿收文处理、发文处理和签报处理的每个环节。虽然在发文处理过程中,一般都有拟稿、核稿、审核、会签、签发、登记、分发、归档等基本环节,实际上对每个部门、或每一类文件的流程都是不同的。所以在应用系统,应使其每个模块的流程是完全可以由用户根据实际情况灵活定义,流程的定义、跟踪是公文运转系统的关键技术,该系统实现了开放的全流程定义技术,可以适应实际应用过程中的各种需求。
全流程定义技术包括标准流程的定义、引入、修改和控制等,在此主要介绍三个:
1) 如何自动引入标准流程,通过Postopen事件调用引入标准流程的函数:
Sub SetDefault(doc As NotesDocument)
… …
Set db = session.CurrentDatabase
Set view = db.GetView( "FlowByNo" )
Set Stepdoc = view.GetFirstDocument
If Not Stepdoc Is Nothing n
Call Stepdoc.CopyAllItems(doc,True)
Call doc.RemoveItem("ReadLists")
Call doc.RemoveItem("ExplainV")
Call doc.RemoveItem("FlowNo")
Call doc.RemoveItem("flowName")
doc.StepNumC=Stepdoc.StepNumC(0)
(科教作文网http://zw.ΝsΕAc.Com编辑整理)
doc.StepNum=Stepdoc.StepNum(0)
doc.StepName_1=Stepdoc.StepName_1(0)
doc.StepMan_1=Stepdoc.StepMan_1(0)
doc.StepReturn_1=Stepdoc.StepReturn_1(0)
doc.StepDay_1=Stepdoc.StepDay_1(0)
… …
End If
End Sub
2) 标准流程的修改,将分解为插入步骤、删除步骤。如果理解了插入步骤,就容易实现删除步骤。插入步骤的函数是:
Sub Click(Source As Button)
… …
Set uidoc = workspace.CurrentDocument
Set doc=uidoc.Document
LastNo=uidoc.document.StepNum(0) + 1
doc.StepNum=LastNo
doc.StepNumC= Cstr(LastNo)
Call uidoc.Refreshhideformulas()
If nFieldNo=0 Then Exit Sub
For %i=LastNo To nFieldNo+1 Step -1
Call ReplaceItemsValue(doc, %i, %i-1)
Next
Call uidoc.FieldClear( "StepName_"+Cstr(nFieldNo))
Call uidoc.FieldClear( "StepMan_"+Cstr(nFieldNo))
Call uidoc.FieldClear( "StepDay_"+Cstr(nFieldNo))
nFieldNo=nFieldNo+1
End Sub
3) 流程的控制是最复杂的,通过一系列函数实现,在这里介绍其主函数,让读者可以了解其实现的思路。
Sub Click(Source As Button)
… …
Set uidoc = workspace.CurrentDocument
Set doc=uidoc.Document
'取流程信息
Call InitializeStepInfo(doc )
If gbIsFinished=False Then '如果当前不是最后一步
If 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()
'如果当前是签发状态,修改文件的表单,使文件的大部分域变成不可编辑
(科教作文网http://zw.ΝsΕAc.com发布) 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) n
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)
(科教范文网http://fw.NSEAC.com编辑发布) … …
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 WordDoc
.TrackRevisions = True
(科教作文网http://zw.ΝsΕAc.com发布) .PrintRevisions = False
.ShowRevisions = True
End With
4. 刊物的完美显示
电子刊物是办公系统中常见的模块,如何使用户查阅方便、显示美观是实现该模块的要点。简单的办法是一个页面(窗口)完整显示目录,然后点击某篇文章,在新的页面(窗口)显示。但这种界面不直观、不够友好。在《皖能视窗》系统中,我们采用两帧结构先分别显示杂志封面和期号;当用户点击某期号时,再用两帧结构分别显示目录和文章。后者的处理是有一定的难度。
先建立一个页面,这个页面包含显示期号目录的视图。必须通过目标框架的设定,才能将它引导到显示目录和文章内容的帧结构集。从一个视图跳到另外一个视图的关键,是建立一个过渡的表单,这个表单通过所嵌入视图设置“显示单个分类”属性,以起着链接的作用。通过下面结构图来描述更为清楚些:
四、结束语
该系统除了上述特点之外,系统具有标准、规范和完整的文书、和项目档案功能,具有良好的界面,将Notes客户端的功能和浏览器Web功能有机结合成一个整体, 同时提供适时的帮助功能。