电表管理系统论文.docx
《电表管理系统论文.docx》由会员分享,可在线阅读,更多相关《电表管理系统论文.docx(54页珍藏版)》请在冰豆网上搜索。
电表管理系统论文
摘要
传统的电费管理都是由工作人员手工查表,抄表完成的,其中要完成用户电费的收取,每月抄度,用户购电情况查询,以及列出欠费用户的信息名单,之类的信息.其工作强度大,工作流程繁琐,由于工作人员的不细心,将会造成电费收支的出错也是经常发生的.鉴于以上原因我们有必要开发一种帮作电费管理人员的软件系统,可以完成检查用户用电情况,每月抄度,信息录入以及基本数据维护的各项功能.本系统采用visualbasic6.0与微软Access数据库方式.界面尽量做到人性化,数据维护方面做到可靠安全.
关键字:
电费管理,visualbasic,Access,数据库
Abstract
ElectricityfromthetraditionalmanagementstaffareartisanalChabiao,meterreadingcompleted,whichshouldbecompletedbytheusersofelectricitypermonthpenaltyforuserstobuyelectricityenquiries,andalistofuserinformationchannelslistsuchinformation.Itswork-intensive,cumbersomeworkflow,becausestaffarenotcareful.wouldresultinthetariffrevenueisrecurringmistakes.Giventheabovereasonsweneedtodevelopamanagementsoftwaretohelpmakeelectricitysystem,theusercancompletetheinspectionofelectricitymonthlycopieddegrees,Informationincludesbasicdataandthemaintenancefunction.withthesystemusingvisualbasicMicrosoftAccess6.0database.asfaraspossiblehumanizationinterface,datamaintenancetoreliablesecurity.
keyword:
tariffmanagement,visualbasic,Access,thedatabase
摘要…………………………………………………………………………1
Abstract………………………………………………………………………2
第一章引言…………………………………………………………………4
1.1课题背景……………………………………………………………………4
1.2系统简介……………………………………………………………………5
第二章系统的分析……………………………………………………………6
2.1系统开发的目标和思想……………………………………………………6
2.2系统的可行性分析…………………………………………………………8
第三章系统的设计……………………………………………………………18
3.1系统的功能结构设计………………………………………………………18
3.2系统的数据库设计
3.3界面设计与代码设计……………………………………………………………………23
…………………………………………………………24
结束语………………………………………………………………………………46
致谢…………………………………………………………………………………47
参考文献……………………………………………………………………………48
第一章引言
1.1课题背景
传统的电费管理都是由工作人员手工查表,抄表完成的,其中要完成用户电费的收取,每月抄度,用户购电情况查询,以及列出欠费用户的信息名单,之类的信息.其工作强度大,工作流程繁琐,由于工作人员的不细心,将会造成电费收支的出错也是经常发生的.鉴于以上原因我们有必要开发一种帮作电费管理人员的软件系统,可以完成检查用户用电情况,每月抄度,信息录入以及基本数据维护的各项功能.本系统采用visualbasic6.0与微软Access数据库方式.界面尽量做到人性化,数据维护方面做到可靠安全.
1.2系统简介
本系统主要由以下几大功能模块组成:
一.用户交费:
(交纳电费,本日小节)
二.本月抄度:
(单户抄度多户抄度)
三.资料导出(全部清单,欠费清单)
四.数据查询(电费查询与统计,用户欠费查询)
五.信息录入(资料录入,资料修改,资料删除)
六.系统数据维护(数据备份,数据恢复)
七.基本数据维护(用户类型维护,操作员维护)
八.帮助
九.退出
第二章系统的分析
2.1系统开发的目标和思想
本系统主要服务于电费管理人员的日常工作.设计思路主要参照工作人员抄表,记录资料,资料管理,信息录入等方面的工作流程展开的.
2.2系统的可行性分析
本系统采用visualbasic6.0与微软的access作为数据库结合.在系统编写上具有可行性.
经济方面:
本系统可以服务电厂,电费管理单位,为企业节省人力开支.
社会方面:
服务于大众,方便抄表人员工作,可靠方便.
第三章系统的设计
3.1系统的功能结构设计
3.2系统的数据库设计
1.用户类型表:
字段名称
数据类型
说明
ATypeID
自动编号
AType
文本
电费类型
UNITPRICE
货币
Adate
日期/时间
电费设置日期
2.密码表:
字段名称
数据类型
姓名
文本
操作权限
文本
密码
文本
3.MaxID表:
字段名称
数据说明
TableName
文本
MaxID
数字
3.3界面设计与代码设计
1.用户登陆界面设计:
3.4界面设计与代码设计
用户登陆界面代码分析:
PrivateSubCommand1_Click()
DimrstpchardAsNewADODB.Recordset
DimreHardAsString
DimgetidAsString
reHard=GetpcHard(getid)
rstpchard.Open"select*fromgetpchard",gCnn,adOpenKeyset,adLockBatchOptimistic
Ifrstpchard.RecordCount=0Then
rstpchard.AddNew
rstpchard.Fields(0)=reHard
rstpchard.UpdateBatchadAffectCurrent
Else
IfTrim(reHard)<>Trim(rstpchard.Fields(0))Then
MsgBox"对不起,使用不合法请与开发者联系!
",vbInformation
End
EndIf
EndIf
IfCheck1.Value=1Then
Setrec=NewADODB.Recordset
rec.Open"select*from记住密码",gCnn,3,3
rec("标记")="1"
IfCombo2.Text<>""Then
rec("姓名")=Combo2.Text
Else
rec("姓名")=""
EndIf
IfCombo1.Text<>""Then
rec("权限")=Combo1.Text
Else
rec("权限")=""
EndIf
IfText2.Text<>""Then
rec("密码")=Text2.Text
Else
rec("密码")=""
EndIf
rec.Update
rec.Close
Else
Setrec=NewADODB.Recordset
rec.Open"select*from记住密码",gCnn,3,3
rec("标记")="0"
rec.Update
rec.Close
EndIf
Dimrec1AsADODB.Recordset
Setrec1=NewADODB.Recordset
rec1.Open"select*from登录人员",gCnn,3,3
Setrec=NewADODB.Recordset
rec.Open"select*from密码表where姓名='"&Combo2.Text&"'and操作权限='"&Combo1.Text&"'and密码='"&Text2.Text&"'",gCnn,3,3
Ifrec.EOF=FalseThen
Ifrec("操作权限")<>"管理员"Then
'FRMMAIN.XZCK.Enabled=False
MDIme.mczy.Enabled=False
MDIme.xtwh.Enabled=False
MDIme.del.Enabled=False
'FRMMAIN.DJGL.Enabled=False
'FRMMAIN.delte.Enabled=False
Else
'Me.XZCK.Enabled=True
MDIme.mczy.Enabled=True
MDIme.xtwh.Enabled=True
CreateNewKeyHKEY_CURRENT_USER,"ZhiYuanTechnologe"
SetKeyValueHKEY_CURRENT_USER,"ZhiYuanTechnologe","UserName",dlj,REG_SZ
SetKeyValueHKEY_CURRENT_USER,"ZhiYuanTechnologe","PassWord",dlj,REG_SZ
'FRMMAIN.DJGL.Enabled=True
'FRMMAIN.delte.Enabled=True
EndIf
rec1("姓名")=Combo2.Text
rec1.Update
rec1.Close
Me.Hide
Guser=Combo2.Text
MDIme.Show
Else
MsgBox"权限或密码不正确,请重试!
",vbInformation
EndIf
rec.Close
EndSub
PrivateSubCommand11_Click()
EndSub
PrivateSubCommand2_Click()
Combo2.Text=""
Text2.Text=""
Combo1.Text=""
EndSub
PrivateSubCommand3_Click()
End
EndSub
PrivateSubCommand4_Click()
Me.Hide
FRMMMXG.Show1
EndSub
PrivateSubForm_Activate()
Text2.Text=""
Combo1.Text=""
Combo2.Text=""
Setrec=NewADODB.Recordset
rec.Open"select*from记住密码",gCnn,3,3
Ifrec("标记")="0"Orrec("标记")="1"Then
Check1.Value=rec("标记")
EndIf
rec.Close
Setrec=NewADODB.Recordset
rec.Open"select*from记住密码",gCnn,3,3
Ifrec("标记")=1Then
Combo2.Text=rec("姓名")
Combo1.Text=rec("权限")
Text2.Text=rec("密码")
EndIf
rec.Close
Command1.SetFocus
EndSub
PrivateSubForm_Load()
gCnn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:
databasepassword="&DbPassword&";DataSource="&_
App.Path&"\data\dbdb.mdb;PersistSecurityInfo=False"
gCnn.CursorLocation=adUseClient
gCnn.Open
Setrec=NewADODB.Recordset
rec.Open"selectdistinct姓名from密码表",gCnn,3,3
WithCombo2
DoUntilrec.EOF
.AddItemrec("姓名")
rec.MoveNext
Loop
EndWith
rec.Close
Setrec=Nothing
EndSub
PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)
Cancel=True
SelectCaseMsgBox("此操作将退出本系统,继续吗?
",vbYesNo,"警告")
CasevbYes
Cancel=False
End
CaseElse
Cancel=True
EndSelect
EndSub
2.主界面设计:
主界面代码设计:
PrivateSuballlm_Click()
frmList.qfFlg=False
frmList.Show
EndSub
PrivateSubbackup_Click()
frmbeifen.Show
EndSub
PrivateSubbenrixiaojie_Click()
frmCount.Show
EndSub
PrivateSubCommand1_Click()
frameFee.Visible=False
EndSub
PrivateSubcmdQuery_Click()
DimrstAsNewADODB.Recordset
rst.Open"select*frompanelinfowhereholder='"&Me.txtUser&"'anddelflag<>true",gCnn,adOpenStatic,adLockBatchOptimistic
Ifrst.RecordCount<>0Then
dcvalue.Text=rst.Fields
(2)
txtUserName(0)=rst.Fields
(1)
txtUserName
(1)=rst.Fields!
nowecount
txtUserName
(2)=rst.Fields!
cendcode
dtpwdate.Value=rst.Fields(4)
txtUserName(3)=Format(rst.Fields!
lMoney,"###0.00")
txtUserName(4)=Format(rst.Fields!
bmoney,"###0.00")
txtUserName(6)=Format(rst.Fields!
lsFee,"###0.00")
'txtUserName(5)=txtUserName
(1)*rst.Fields!
lMoney*(rst.Fields!
lightScale/100)+txtUserName
(1)*txtUserName(4)*(1-rst.Fields!
lightScale/100)
txtUserName(5)=Format(txtUserName
(1)*rst.Fields!
lMoney*(rst.Fields!
lightScale/100)+rst.Fields!
nowecount*rst.Fields!
bmoney*(1-rst.Fields!
lightScale/100),"###0.00")
txtUserName(8)=rst.Fields(9)
txtUserName(7)=Format(Val(txtUserName(5))+Val(txtUserName(6)),"####0.00")
dcNum.Text=rst.Fields
(1)
Else
MsgBox"没有查询到数据!
",vbInformation
EndIf
rst.Close
Setrst=Nothing
EndSub
PrivateSubdcNum_Click(AreaAsInteger)
DimrstAsNewADODB.Recordset
rst.Open"select*frompanelinfowhereholderid='"&dcNum.Text&"'anddelflag<>true",gCnn,adOpenKeyset,adLockBatchOptimistic
IfNotrst.EOFThen
dcvalue.Text=rst.Fields
(2)
txtUserName(0)=rst.Fields
(1)
txtUserName
(1)=rst.Fields!
nowecount
txtUserName
(2)=rst.Fields!
cendcode
dtpwdate.Value=rst.Fields(4)
txtUserName(3)=Format(rst.Fields!
lMoney,"###0.00")
txtUserName(4)=Format(rst.Fields!
bmoney,"###0.00")
txtUserName(6)=Format(rst.Fields(8),"####0.00")
txtUserName(5)=Format(txtUserName
(1)*txtUserName(3)*(rst.Fields!
lightScale/100)+txtUserName
(1)*txtUserName(4)*(1-rst.Fields!
lightScale/100),"####0.00")
txtUserName(8)=rst.Fields(9)
txtUserName(7)=Format(Val(txtUserName(5))+Val(txtUserName(6)),"####0.00")
EndIf
rst.Close
EndSub
PrivateSubdcvalue_Click(AreaAsInteger)
DimrstAsNewADODB.Recordset
rst.Open"select*frompanelinfowhereholderid='"&dcvalue.BoundText&"'anddelflag<>true",gCnn,adOpenStatic,adLockBatchOptimistic
IfNotrst.EOFThen
dcvalue.Text=rst.Fields
(2)
txtUserName(0)=rst.Fields
(1)
txtUserName
(1)=rst.Fields!
nowecount
txtUserName
(2)=rst.Fields!
cendcode
dtpwdate.Value=rst.Fields(4)
txtUserName(3)=Format(rst.Fields!
lMoney,"###0.00")
txtUserName(4)=Format(rst.Fields!
bmoney,"###0.00")
txtUserName(6)=Format(rst.Fields!
lsFee,"###0.00")
'txtUserName(5)=txtUserName
(1)*rst.Fields!
lMoney*(rst.Fields!
lightScale/100)+txtUserName
(1)*txtUserName(4)*(1-rst.Fields!
lightScale/100)
txtUserName(5)=Format(txtUserName
(1)*rst.Fields!
lMoney*(rst.Fields!
lightScale/100)+rst.Fields!
nowecount*rst.Fields!
bmoney*(1-rst.Fields!
lightScale/100),"###0.00")
txtUserName(8)=rst.Fields(9)
txtUserName(7)=Format(Val(txtUserName(5))+Val(txtUserName(6)),"####0.00")
dcNum.Text=rst.Fields
(1)
EndIf
rst.Close
Setrst=Nothing
EndSub
PrivateSubdcvalue_KeyPress(KeyAsciiAsInteger)
KeyAscii=0
EndSub
PrivateSubdel_Click()
frmdel.Show
EndSub
PrivateSubdhcb_Click()
usrcopyP.Show
EndSub
PrivateSubdhcp_Click()
frmCopyP.Show
EndSub
PrivateSubduohu_Click()
frmCuifei.muser1=2
frmCuifei.Show
EndSub
PrivateSubedit_Click()
frmEdit.Show
EndSub