企业管理软件设计开发部门维护系统设计文档_第1页
企业管理软件设计开发部门维护系统设计文档_第2页
企业管理软件设计开发部门维护系统设计文档_第3页
企业管理软件设计开发部门维护系统设计文档_第4页
企业管理软件设计开发部门维护系统设计文档_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、企业管理软件设计开发(部门维护系统)设计文档设计者:罗红亮时间:2009-5-6目录1 系统介绍31.1 软件操作流程图3 1.2 VB 下方法调用流程图4 2 数据库操作部分52.1 数据库连接52.2 VB 下对数据库操作语句(提取、插入、删除等)53 部门数据编辑操作部分63.1 在选中部门下添加部门信息63.2 修改选中部门信息73.3 删除选中部门信息84 部门信息保存操作部分105 关于该系统115.1 系统所存在的不足116 设计总结121前言1.1软件操作流程图图1.1 软件图形界面系统界面文件/连接数据库点击TreeView控件下欲操作部门编号编辑/添加部门信息编辑/修改部门

2、信息编辑/删除选中部门信息图1.2 软件操作流程图1.2 VB 下方法调用流程视图BMWHFm_ConnectSQL.ShowFm_miAdd.ShowFm_miDelete.ShowFm_miAbout.ShowFm_miModify.ShowConnectSQL()CommBOk_Click()CommBOk_Click()CommBOk_Click()CommBOk_Click()BMWH.Form_Load()BMWH.Form_Load()BMWH.Form_Load()BMWH.Form_Load()BMWH.Form_Load()miSave图1.3 方法调用流程图2 数据库操作

3、部分2.1数据库连接在软件打开时界面所有控件内容为空,通过 “文件/连接数据库” 从数据库下载数据到TreeView控件和MSFlexGrid控件,从而有如图1.1所示的效果。连接数据库通过如下配置实现:Public conn As Variant '定义数据库连接字符Public rs As Variant '定义创建Recordset 对象 Set conn = New ADODB.Connection Set rs = New ADODB.Recordset Set rs1 = New ADODB.Recordset conn.ConnectionString = &qu

4、ot;Driver=sql server;server=USER-EF373E3BAF;uid=sa;pwd=123456;database=BMDB" conn.ConnectionTimeout = 30 conn.Open在连接数据库前首先要在VB菜单中“工程/引用”从中选择 microsoft activeX Data objects 2.6 library和 microsoft activeX Data objects recordset 2.8 library两个组件,这是在连接数据前所必做的工作。目的要为接下来定义ADO的连接对象做好准备。2.2 VB 下对数据库操作语

5、句(提取、插入、删除等)提取语句:rs.Open "select * from BMDM", conn, adOpenStatic, adLockReadOnly, adCmdText插入语句:sql = "insert into BMDM(表元素) values (待插入值)"conn.Execute (sql) '执行上面的sql语句删除语句:sql = "delete from BMDM where 条件表达式" conn.Execute (sql)3 部门数据编辑操作部分3.1在选中部门下添加部门信息部分程序如下:判断

6、部门编号在组织机构中是否有同编号处理代码:rs.Open "select * from BMDM", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF If txt5 = "0000" Then BMID_Flag = True End If If txt5 = rs("BMID") Then BMID_Flag = True End If rs.MoveNext Wend rs.Close判断部门名称在同级下是否同名处理代码:rs.Open "se

7、lect BMMC from BMDM where SJBMID='" & BMWH.TV_Select & "'", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF If txt6 = rs("BMMC") Then BMMC_Flag = True End If rs.MoveNext Wendrs.Close做插入处理部分代码:If BMID_Flag = True Then MsgBox "部门编号在组织机构中有同编号

8、的同名冲突,请重设!", vbOKOnly, "冲突提示" txt(5).Text = "" txt(5).SetFocus BMID_Flag = False Else If BMMC_Flag = True Then MsgBox "部门名称与同级目录下部门名称有同名冲突,请重设!", vbOKOnly, "冲突提示" txt(6).Text = "" txt(6).SetFocus BMMC_Flag = False Else If txt5 = "" The

9、n MsgBox "部门编号不能为空,请设置!", vbOKOnly, "非空提示" txt(5).SetFocus Else If txt6 = "" Then MsgBox "部门名称不能为空,请设置!", vbOKOnly, "非空提示" txt(6).SetFocus Else sql = "insert into BMDM(BMID,BMMC,BZ,SJBM,SJBMID) values ('" & txt5 & "' ,

10、'" & txt6 & "','" & txt7 & "','" & txt8 & "','" & txt9 & "')" conn.Execute (sql) txt(5).Text = "" txt(6).Text = "" txt(7).Text = "" MsgBox "部门已经成功添加!",

11、 vbOKOnly, "OK" BMWH.Form_Load Unload Me End If End If End IfEnd If先判断整个组织机构中是否有同编号,如果有则将存在同编号标志BMID_Flag置为True,然后再判断同级下是否有同部门名称,如果有则将同部门名称标志置BMMC_Flag置为True。接下来就根据标志位的取值做部门的插入操作。3.2修改选中部门信息做修改处理部分代码:If BMID_Flag = True Then MsgBox "部门编号在组织机构中有同编号的同名冲突,请重设!", vbOKOnly, "冲突提示

12、" Txt(5).Text = txt5 Txt(5).SetFocus BMID_Flag = False Else If BMMC_Flag = True Then MsgBox "部门名称与同级目录下部门名称有同名冲突,请重设!", vbOKOnly, "冲突提示" Txt(6).Text = txt6 Txt(6).SetFocus BMMC_Flag = False Else If txt5 = "" Then MsgBox "部门编号不能为空,请设置!", vbOKOnly, "非空

13、提示" Txt(5).SetFocus Else If txt6 = "" Then MsgBox "部门名称不能为空,请设置!", vbOKOnly, "非空提示" Txt(6).SetFocus Else 'sql = "update BMDM set BMID='" & txt5 & "',BMMC='" & txt6 & "',BZ='" & txt7 & &qu

14、ot;' where BMID='" & txt5 & "'" rs.Open "select * from BMDM where SJBMID='" & Txt(0).Text & "'", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF '将其子部门的 SJBMID 对应的修改成修改项 txt0 = rs("BMID") txt1 = rs(&q

15、uot;BMMC") txt2 = rs("BZ") txt3 = rs("SJBM") txt4 = txt5 sql = "delete from BMDM where BMID='" & txt0 & "'" conn.Execute (sql) sql = "insert into BMDM(BMID,BMMC,BZ,SJBM,SJBMID) values ('" & txt0 & "' , '&

16、quot; & txt1 & "','" & txt2 & "','" & txt3 & "','" & txt4 & "')" conn.Execute (sql) rs.MoveNext Wend rs.Close sql = "delete from BMDM where BMID='" & Txt(0).Text & "'&qu

17、ot; conn.Execute (sql) sql = "insert into BMDM(BMID,BMMC,BZ,SJBM,SJBMID) values ('" & Txt(5).Text & "' , '" & Txt(6).Text & "','" & Txt(7).Text & "','" & Txt(8).Text & "','" & Tx

18、t(9).Text & "')" conn.Execute (sql) BMWH.Form_Load MsgBox "部门已经成功修改!", vbOKOnly, "OK" Unload Me End If End If End IfEnd If在做修改操作之前也和插入操作一样要做组织机构是否有同编号判断和同级下是否有同部门名称判断,然后再依据判断得到的标志位进行修改操作。3.3删除选中部门信息做删除处理部分代码:将确定待删除的数据以数组的形式存储下来:rs.Open "select BMID from BMD

19、M where SJBMID='" & txt1 & "'", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF I = I + 1 ReDim Preserve DelSQL(I) DelSQL(I - 1) = rs("BMID") rs.MoveNext Wend rs.Closen = I I = 1 '从第二个数据开始遍历 While I < n rs.Open "select BMID from BMD

20、M where SJBMID='" & DelSQL(I) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF n = n + 1 ReDim Preserve DelSQL(n) '数据再次加载 DelSQL(n - 1) = rs("BMID") rs.MoveNext Wend rs.Close I = I + 1 Wend做删除处理部分代码:While I < n sql = "delete f

21、rom BMDM where BMID='" & DelSQL(I) & "'" '逐个删除记录 conn.Execute (sql) I = I + 1 Wend其实在做这一块的时候最重要的是要加载选中部门的下级部门信息,然后再做级联删除,完成这一块所用到的一个处理方法是通过数组多次加载来实现。具体做法是先将数组的第一个数据保存为当前获取的部门编号信息,然后通过遍历数组中的部门编号信息从数据库中查找到上级部门编号与当前遍历到的数组中编号相匹配的部门信息,然后扩大数组空间,将查找到的匹配的部门编号信息再加载到数组中,直到数据

22、库遍历结束,这样所有待删除的信息也就全部加载到数组中了,然后要做的工作就是逐个删除与数组中编号相同的数据库信息了。4 部门信息保存操作部分做保存处理部分代码:rs.Open "select * from BMDM", conn, adOpenStatic, adLockReadOnly, adCmdText CommD.CancelError = True On Error GoTo ErrHandle ' "取消"异常处理 CommD.FileName = "BMWH" CommD.DefaultExt = "BM

23、WH" CommD.Filter = "(*.doc)|*.doc" CommD.InitDir = "C:Documents and SettingsAll UsersDocuments" CommD.Action = 2 Open CommD.FileName For Output As #1 While Not rs.EOF Print #1, "部门编号: ", rs("BMID") Print #1, "部门名称: ", rs("BMMC") Print #1, "备注: ", rs("BZ") Prin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论