作是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compounddocument),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。
动态链接库(DLL)
VisualBasic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C++或汇编语言编写的程序加入到VisualBasic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能
第三章系统设计
3.1业务流程图
根据该小区物业管理的特点和该小区的实际情况,物业管理系统流程如下图所示。
交水电气费、
房屋签约业主入户水电气读表物业管理
申请装修填写收费通知单
系统主要功能包括
4.系统登录:包括用户登录,修改密码,添加用户,退出系统。
5.基本资料:包括住户资料和财产资料
6.物业管理:包括物业设备,仪表数据,停车场管理,收费管理,住户投诉,住户报修管理,设备维修管理等.
7.数据报表统计:包括物业设备,仪表数据统计,收费统计,信户投诉统计,信户报修统计,设备维修统计等.
3.2数据库设计
根据该公司业务情况和行业特点,本系统采用了ACCESS数据库,数据库名称为XiaoQuGuanLi,包含以下几个表:报修表(BaoXiu),Client表,Emp表,Equipment表,Gas表,House表,Park表,Power表,Repair表,Tousu表,UserTable表,Water表,WuyeFee表,YiBiaoFee表.
现将各表的结构说明如下:
3.3系统的详细设计
主程序界面设计
3.4其他窗体设计
(因本设计涉及的窗体比较多,故我们只选取有代表性的窗体加以重点描述)
3.4.1系统登陆界面设计
如图所示,新建一个窗体,在窗体中添加二个Lable控件,二个TextBox控件,二个commandButton控件,设置其属性。然后添加程序代码。
其中登录按钮的源码如下:
PrivateSubcmdLogin_Click()
'首先检查用户是否输入了用户名和密码
IftxtUser.Text=""Then
MsgBox"请输入用户名!",vbOKOnly+vbInformation,"注意"
txtUser.SetFocus
ExitSub
ElseIftxtPwd.Text=""Then
MsgBox"请输入密码!",vbOKOnly+vbInformation,"注意"
txtPwd.SetFocus
ExitSub
EndIf
DimsqluserAsString
'构造查询该用户名和密码的sql语句
sqluser="select*fromUserTablewhereUsername='"&txtUser.Text_
&"'andPassword='"&txtPwd.Text&"'"
rs_user.CursorLocation=adUseClient
'打开数据游标
rs_user.Opensqluser,conn,adOpenKeyset,adLockPessimistic
Ifrs_user.EOF=TrueThen
MsgBox"用户名或密码不正确!",vbOKOnly+vbInformation,"注意"
rs_user.Close
'清空txtUser和txtPwd文本框
txtUser.Text=""
txtPwd.Text=""
ExitSub
Else
'还需使其他菜单可用
MDIfrmMain.mnAddUser.Enabled=True
MDIfrmMain.mnBasicData.Enabled=True
MDIfrmMain.mnWuYe.Enabled=True
MDIfrmMain.mnDataTg.Enabled=True
'提示用户登录成功并关闭游标和登录窗口
MsgBox"登录成功!",vbOKOnly+vbInformation,"注意"
rs_user.Close
UnloadMe
EndIf
EndSub
3.4.2基本资料模块的设计
同理窗体中的控件的添加比较直接,参照登录窗体的设计,并添加相关代码.其中重点分析按钮源码如下:。
添加按钮的代码:
PrivateSubcmdAdd_Click()
'设置除保存和取消按钮外的其他按钮不可用
cmdAdd.Enabled=False
cmdEdit.Enabled=False
cmdDel.Enabled=False
cmdSave.Enabled=True
cmdCancel.Enabled=True
cmdFirst.Enabled=False
cmdPrev.Enabled=False
cmdNext.Enabled=False
cmdLast.Enabled=False
cmdQuery.Enabled=False
'需要清空所有text框,并且设置它们可写
Fori=0To14
Text1(i).Text=""
Text1(i).Enabled=True
Nexti
Combo1.Enabled=True
'add变量用于保存时判断是从添加还是修改后保存
add=1
Text1(0).SetFocus
Text1(13).Text=Date
EndSub
修改按钮的源码:
PrivateSubcmdEdit_Click()
'设置除保存和取消按钮外的其他按钮不可用
cmdAdd.Enabled=False
cmdEdit.Enabled=False
cmdDel.Enabled=False
cmdSave.Enabled=True
cmdCancel.Enabled=True
cmdFirst.Enabled=False
cmdPrev.Enabled=False
cmdNext.Enabled=False
cmdLast.Enabled=False
cmdQuery.Enabled=False
'需要设置除主键之外的text框可写
Fori=1To14
Text1(i).Enabled=True
Nexti
Combo1.Enabled=True
add=0
EndSub
删除按钮的源码如下:
PrivateSubcmdDel_Click()
'当单击删除记录时,需要弹出一个提示框,警告用户
DimanswerAsString
answer=MsgBox("确定要删除吗?",vbYesNo,"")
'确实删除
Ifanswer=vbYesThen
rs_client.Delete'删除当前记录
rs_client.Update'更新删除
MsgBox"成功删除!",vbOKOnly+vbExclamation,""
Else
ExitSub
EndIf
'删除之后,显示总信息条数需要减1
Text2.Text=Val(Text2.Text)-1
'删除当前记录后,需要显示下一条记录,如果删除的是最后一条记录,则显示上一条记录
'先移动rs_client记录到后一条
rs_client.MoveNext
Ifrs_client.EOFThen
rs_client.MovePrevious
'如果没有到记录首则显示改记录
IfNotrs_client.BOFThen
Fori=0To14
Text1(i).Text=rs_client.Fields(i)
Nexti
Ifrs_client.Fields(15)="男"Then
Combo1.ListIndex=0
Else
Combo1.ListIndex=1
EndIf
'如果到记录首,则表格已经为空,置所有text框显示为空
ElseIfrs_client.BOFThen
Fori=0To14
Text1(i).Text=""
Nexti
EndIf
'如果删除的不是首尾记录,则显示当前记录即可
Else
Fori=0To14
Text1(i).Text=rs_client.Fields(i)
Nexti
Ifrs_client.Fields(15)="男"Then
Combo1.ListIndex=0
Else
Combo1.ListIndex=1
EndIf
EndIf
EndSub
保存按钮的源码如下:
PrivateSubcmdSave_Click()
'检测数据是否完整
IfText1(0).Text=""Then
MsgBox"住户编号不可为空!",vbOKOnly+vbInformation,"注意"
Text1(0).SetFocus
ExitSub
ElseIfText1(1).Text=""Then
MsgBox"物业地址不可为空!",vbOKOnly+vbInformation,"注意"
Text1(1).SetFocus
ExitSub
ElseIfText1(3).Text=""OrIsNumeric(Text1(3).Text)=FalseThen
MsgBox"建筑面积应为数字!",vbOKOnly+vbInformation,"注意"
Text1(3).SetFocus
ExitSub
ElseIfText1(4).Text=""OrIsNumeric(Text1(4).Text)=FalseThen
MsgBox"使用面积应为数字!",vbOKOnly+vbInformation,"注意"
Text1(4).SetFocus
ExitSub
ElseIfText1(5).Text=""Then
MsgBox"业主姓名不可为空!",vbOKOnly+vbInformation,"注意"
Text1(5).SetFocus
ExitSub
ElseIfIsDate(Text1(13).Text)=FalseThen
MsgBox"入住日期书写不对,应为2000-1-1这样的格式!",vbOKOnly+vbInformation,"注意"
Text1(13).SetFocus
ExitSub
ElseIfNotText1(14).Text=""AndIsDate(Text1(14).Text)=FalseThen
MsgBox"迁出时间应为空或2000-1-1这样的格式!",vbOKOnly+vbInformation,"注意"
Text1(14).SetFocus
ExitSub
EndIf
'添加数据后保存
Ifadd=1Then
'检测住户编号这个
上一篇:
VB小区物业管理系统(论文和程序)
下一篇:
PDA与全站仪的数据通信技术论文