公司有一个流程,申请人需要在ERP维护工作流中确认他提交的一个ERP维护单数据中心文员是否在ERP中维护正确。申请人往往需要打开ERP和LOTUS才能核对,比较浪费时间,而且维护的内容很有可能在ERP的好几个地方查看,才能一一核对,很浪费时间,可不可以在申请人确认处增加一个按钮,确认人在LOTUS中就可以把ERP中对应数据拉取过来,申请人直接对比核对,这样不就很方便么。
查了下资料,VB可以用ADODB直接访问数据库,LS又和VB很相似,因为之前没研究过,就先在VB中做了下试验,结果成功了,以下是VB的代码
- PrivateSubCommand1_Click()
- DimcnAsADODB.Connection
- DimrsAsADODB.Recordset
- DimsqlStrAsString
- Setcn=NewADODB.Connection
- Setrs=NewADODB.Recordset
- cn.ConnectionString="Provider=SQLOLEDB.1;Password=xxxxxxx;PersistSecurityInfo=True;UserID=sa;InitialCatalog=数据库名称;DataSource=10.1.1.x"'数据连接字符串
- sqlStr="selectitemnamefromoitmwhereitemcode='"&Text1.Text&"'"
- cn.Open
- rs.OpensqlStr,cn
- IfNotrs.EOFThen
- 'MsgBoxrs.Fields("itemname")
- Text2.Text=rs.Fields("itemname")
- Else
- MsgBox"对不起,不存在该编码"
- EndIf
- rs.Close
- cn.Close
- EndSub
这样成功了,在LS中就很简单啦!
模拟情况为研发部(申请人)提交维护ERP中某一个项目代码对应的项目名称,数据中心也维护了,现在申请人确认处,申请人只要点一下按钮,自动把ERP中现在该编码对应的项目名称给拉取过来,以方便申请人核对。
以下为在LS的代码。
- SubClick(SourceAsButton)
- DimSessionAsNotesSession
- DimDBAsNotesDatabase
- DimViewAsNotesView
- DimCurDocAsNotesDocument
- DimuidocAsNotesUIDocument
- DimWsAsNewNotesUIWorkspace
- '定义ADO对象变量,供SQL用
- DimConnectAsVariant
- DimADOCommandAsVariant
- DimRecordSetAsVariant
- OnErrorGotoErrorHandle
- SetSession=NewNotessession
- SetDB=Session.CurrentDatabase
- SetDoc=Session.DocumentContext
- SetUidoc=Ws.CurrentDocument
- SetCurdoc=Uidoc.Document
- SetConnect=CreateObject("ADODB.Connection")'创建ADO连接对象
- SetRecordset=CreateObject("ADODB.Recordset")'创建返回结果集对象
- '取得SQL服务器的IP地址
- SQLSERVER="10.1.1.x"
- '要连接的SQL库
- SQLDB="数据库名称"
- 'SQL用户名
- SQLUID="sa"
- 'SQL密码
- SQLPWD="xxxxxxx"
- '与SQL服务器连接的语句
- ConnectionString=|Driver={SQLSERVER};SERVER=|+SQLSERVER+|;DATABASE=|+SQLDB+|;UID=|+SQLUID+|;PWD=|+SQLPWD+|;|
- Connect.OpenConnectionString'创建SQL连接
- IfConnect.State<>1Then
- Msgbox"连接中断,请稍后再试!"
- ExitSub
- EndIf
- Query="SELECTPrjnameFROMOPRJwhereprjcode='"&Curdoc.Prjcode(0)&"'"
- RecordSet.OpenQuery,Connect'执行SQL语句并返回结果
- '从SQL读取主表信息
- IfNotRecordset.EofThen
- Curdoc.Prjname=RecordSet.Fields("Prjname").Value
- Else
- Msgbox"对不起,不存在该编码"
- EndIf
- CallRecordset.Close'关闭结果集
- CallConnect.close'关闭SQL连接
- ExitSub
- ErrorHandle:
- MsgboxStr(Erl())+Error()
- EndSub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。