客户信息管理系统_第1页
客户信息管理系统_第2页
客户信息管理系统_第3页
客户信息管理系统_第4页
客户信息管理系统_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

题目:客户信息管理系统专业:.nte网页1班学号:1303110112*■*-名:刘冰涛指导教师:胡迎久1、 设计题目客户信息管理系统2、 设计目的和要求目的:利用VisualBasic和Access实现客户信息管理系统。要求:使系统能运行正确,完成基本的功能如客户类型的增加、删除、查询和修改等。3、 设计内容(包括设计思路、设计实现)3.1需求分析客户信息系统需要完成的功能有:客户类型的建立与维护,包括客户类型的新建、修改和删除等。客户信息的输入,详细全面记录并管理客户信息和联系人信息,客户信息包括客户的基本信息,一般的通讯方式及客户其他信息,如爱好、禁忌、生日等。客户信息的修改和删除,包括启动与取消客户的生日提醒等。方便实用的数据查询功能,根据不同条件查询客户,可以查看客户信息。3.2总体设计本系统采用三层结构设计,即程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。三层在实际的物理结构上也是独立的,业务逻辑处理层采用ActiveXDLL实现,用户界面与业务逻辑分离,系统的安全性、可维护性、重要性和扩展性都大大提高。本系统也采用面向对象的设计,系统中将客户类型、客户等都封装成相应的类,同时每个类都有自己对应的集合类,从而再次提高了对数据库操作系统的安全性和程序的可扩展性。根据对系统功能的分析,我们可以把系统划分成客户类型管理模块、客户管理模块和提醒管理模块。系统的物理结构也分为三层,即用户界面、组件和数据库。3.3程序界面及核心代码3.1需求分析客户信息系统需要完成的功能有:1、 客户类型的建立与维护,包括客户类型的新建、修改和删除等。2、 客户信息的输入,客户信息包括客户的基本信息,一般的通讯方式及客户其他信息,如爱好、禁忌、生日等。3、 客户信息的修改和删除,包括启动与取消客户的生日提醒等。4、 根据不同条件查询客户,可以查看客户信息。3.2概念设计

本系统米用三层结构设计,即程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。三层在实际的物理结构上也是独立的,业务逻辑处理层采用ActiveXDLL实现,用户界面与业务逻辑分离,系统的安全性、可维护性、重要性和扩展性都大大提高。本系统也采用面向对象的设计,系统中将客户类型、客户等都封装成相应的类,同时每个类都有自己对应的集合类,从而再次提高了对数据库操作系统的安全性和程序的可扩展性。根据对系统功能的分析,我们可以把系统划分成客户类型管理模块、客户管理模块和提醒管理模块。系统的物理结构也分为三层,即用户界面、组件和数据库。客户管理系统客户类型管理模块客户管理模块提醒管理模块客户类型管理模块客户管理模块提醒管理模块添加客户类型修改客户类型删除客户类型客户信息管理客户评价管理客户合作管理查看今日提醒提醒设置管理修改客户信息删除客户信息查看客户信息查找客户信息添加合作记录修改合作记录删除会议记录添加定时管理修改定时管理删除定时管理查看定时管理添加客户类型修改客户类型删除客户类型客户信息管理客户评价管理客户合作管理查看今日提醒提醒设置管理修改客户信息删除客户信息查看客户信息查找客户信息添加合作记录修改合作记录删除会议记录添加定时管理修改定时管理删除定时管理查看定时管理系统功能模块图1评价信息提醒信息合作信息客户类型1评价信息提醒信息合作信息客户类型各实体间关系的E-R图客户类型类型名称类型名称客户类型信息实体E-R图客户类型信息实体E-R图客户客户名称 客户电话客户性别……[客户E-mail客户信息实体E-R图13.3逻辑设计(1)模式转换13.3逻辑设计(1)模式转换键话主电—室增名别龄日公机M电涕姓性年生办手传宅ClientId自动编号Name文富'SexAge蜡,I-*?1Birthday日曲时间Offi:cePhoneMobile国本FaxHomeFhone加k数据类型自动编号|3WarnType字E房标数据类型自动编号|3WarnType字E房标^TypeName提醒类型编号提醴类型名称Cooperate表:1Coo-perate-,字段名荔数据类型U^Coioperateld自动编号主键达递增ClientId数字客户m外码Date日朗《时间合作日期LSatisfa'Ction教字;■两息度(0-2551:Remark备注备注(3)完整性约束设计实体完整性约束:参照完整性约束:(3)完整性约束设计实体完整性约束:参照完整性约束:.Warning字段名祢数据类型Warnld自动编号主键,理增ClientId客户ID,为0时表示全体客户ShowDate提屋显示日期TypeId提醒类型卜码Msg提醒消息Warning表:(2)模式规范化ClientType表、ClientInfo表、Cooperate表、WarnType表、Warning表均已经为BCNF范式ClientType表主键为TypeIdClientInfo表主键为ClientIdCooperate表主键为CooperateIdWarnType表主键为WTypeIdWarning表主键为WarnIdCooperate表的ClientId参照ClientInfo表主键ClientIdWarning表的TypeId参照ClientType表主键TypeId(4)外模式设计建立了一张Client视图,用于显示每位客户的合作、提醒信息,语句如下:CreateviewClientasselectCooperateId,ClientId,WarnId,ClientId,TypeName,NamefromClientType,ClientInfo,Cooperate,WarningwhereCooperate.ClientId=ClientInfo.ClientIdandWarning.TypeId=ClientType.TypeId

(5)典型应用设计客户类型管理模块:添加客户类型,修改客户类型,删除客户类型客户管理模块:客户信息管理,客户评价管理,客户合作管理提醒管理模块:查看今日提醒,提醒设置管理3.4物理设计内模式设计:主要包括索引、散列、簇集设计ClientType表:索引字段为TypeId,索引表达式为TypeId,索引类型为主索引ClientInfo表:索引字段为ClientId,索引表达式为ClientId,索引类型为主索引Cooperate表:索引字段为CooperateId,索引表达式为CooperateId,索引类型为主索引WarnType表:索引字段为WTypeId,索引表达式为WTypeId,索引类型为主索引Warning表:索引字段为WarnId,索引表达式为WarnId,索引类型为主索引3.5系统实现主要模块及其核心代码如下:(1)客户类型管理模块:添加客户类型界面:核心代码:PublicFunctionAddNew(OptionalstrNameAsString=〃〃,_核心代码:PublicFunctionAddNew(OptionalstrNameAsString=〃〃,_OptionallngSuperIDAsLong=-1)AsgxcAddNewIfExistByName(〃ClientType〃,"TypeName",strName)ThenAddNew=DuplicateName_AddNewExitFunctionEndIfIflngSuperID<>0ThenIfExistByID("ClientType","TypeId",lngSuperID)=FalseThenAddNew=SuperNotExistExitFunctionEndIfEndIfIfstrName<>""ThenMe.TypeName=strNameIflngSuperID<>-1ThenMe.SuperID=lngSuperID'DimstrSQLAsStringDimErrMsgAsStringstrSQLstrSQLstrSQLstrSQL"INSERTINTOClientType(SuperId,TypeName)〃strSQL&〃VALUES。'&lngSuperIDstrSQL&〃,'〃&strName&〃'〃strSQL&〃)〃IfRunSql(strSQL,ErrMsg)ThenMe.ID=MaxID(〃ClientType〃,"Typeld")AddNew=AddNewOKElseAddNew=AddNewFailEndIfEndFunction(2)客户管理模块:客户信息管理模块:添加客户界面:核心代码:PublicFunctionAddNew(OptionalByValstrNameAsString="",_OptionalByValintAgeAsInteger=0,_OptionalvarSexAsgxcSex=-1,_OptionallngTypeIdAsLong=0)AsBooleanOnErrorResumeNext'如果参数为缺省值,即未传入,则直接调用类中的参数,否则调用传入的参数IfstrName<>""ThenMe.Name=strNameIfintAge<>0ThenMe.Age=intAgeIfvarSex<>-1ThenMe.Sex=varSexIflngTypeId<>0ThenMe.TypeID=lngTypeIdDimstrSQLAsStringgConn.BeginTrans

'开始一个事务,以免费得到的ID值已被其它客户端所使用'此处调用NextID方法,得到该类对应的数据表的下一个ID,即最大ID+1Me.ID=NextID("ClientInfo”,"ClientId")Me.TypeName=GetValueByID("ClientType”,"TypeId",Me.TypeID,"TypeName")'构造SQL语句,注意需调用RealString去除字符串中的单引号,以及一些SQL语法的关键词加口strSQL="InsertintoClientInfo([Name],Age,Sex,TypeId,Mobile,Email,OfficePhone,"strSQL=strSQL&"HomePhone,Fax,HomeAddress,MailAddress,ZipCode,Birthday,"strSQL=strSQL&"BirthdayWarn,[Work],[Position],Company,CompanySite,SelfSite,"strSQL=strSQL&"Likes,Hate,Remark,Importance,Friendly,strSQL=strSQL&"VALUES("Satisfaction)"strSQL=strSQL&"'"&RealString(mvarName)&"',"'客户名称strSQL=strSQL&mvarAge&”,"'客户年龄strSQL=strSQL&mvarSex&”,"'性别strSQL=strSQL&mvarTypeId&”,"'客户类型IdstrSQL=strSQL&"'"&RealString(mvarMobile)&"',"'手机strSQL=strSQL&"'"&RealString(mvarEmail)&"',",E-mailstrSQL=strSQL&"'"&RealString(mvarOfficePhone)&"',"'办公室电话strSQL=strSQL&"'"&RealString(mvarHomePhone)&"',"'宅电strSQL=strSQL&"'"&RealString(mvarFax)&"',"'传真strSQL=strSQL&"'"&RealString(mvarHomeAdr)&"',"'家庭住址strSQL=strSQL&"'"&RealString(mvarMailAdr)&"',"'通讯地址strSQL=strSQL&"'"&RealString(mvarZipCode)&"',"'邮编strSQL=strSQL&"'"&mvarBirthday&"',"'生日strSQL=strSQL&mvarBirthdayWarn&”,"'是不启用生日提醒strSQL=strSQL&"'"&RealString(mvarWork)&"',"'职业strSQL=strSQL&"'"&RealString(mvarPosition)&"',"'职位strSQL=strSQL&"'"&RealString(mvarCompany)&"',"'公司strSQL=strSQL&"'"&RealString(mvarCompanySite)&"',"'公司网址strSQL=strSQL&"'"&RealString(mvarSelfSite)&"',"'个人网址strSQL=strSQL&"'"&RealString(mvarLikes)&"',"'喜好strSQL=strSQL&"'"&RealString(mvarHate)&"',"'厌恶strSQL=strSQL&"'"&RealString(mvarRemark)&"',"'备注strSQL=strSQL&mvarImportance&”,"'重要度strSQL=strSQL&mvarFriendly&”,"'友好度strSQL=strSQL&mvarSatisfactionstrSQL=strSQL&")"'执行SQL语句,并提交事务g_Conn.ExecutestrSQLg_Conn.CommitTrans'如果发生错误,则返回FALSE,表示未成功添加AddNew=(Err.Number=0)EndFunction满意度查找客户界面:核心代码:'按条件查找客户,以集合类的方式返回PublicFunctionFind(OptionalByVallngIDAsLong=0,_OptionalByValstrNameAsString=〃〃,_OptionalByVallngTypeldAsLong=0)AsCClients'构造查询SQLDimstrSQLAsStringstrSQL="SelectClientInfo.*,ClientType.TypeNamefromClientinfoleftouterjoinClientType〃strSQL=strSQL&〃ONClientType.TypeID=ClientInfo.TypeIDWhere〃IflngID<>0ThenstrSQL=strSQL&〃ClientInfo.ClientID=〃&lngID&〃and〃'如果是按名称查询,则采用“包含”的查询方法IfstrName<>〃〃ThenstrSQL=strSQL&"ClientInfo.Namelike'%〃&RealString(strName)&〃%'and〃EndIfIflngTypeId<>0ThenstrSQL=strSQL&〃ClientInfo.TypeID=〃&lngTypeId&〃and〃EndIfstrSQL=strSQL&〃ClientInfo.ClientId〉0〃OnErrorResumeNext'将查询结果加入集合类DimrsAsRecordsetSetrs=g_Conn.Execute(strSQL)DimiAsLongDimobjClientAscClientFori=1Tors.RecordCountSetobjClient=NewcClientWithobjClient.ID=rs("ClientID").Value.Name=Trim(rs("Name").Value).TypeName=Trim(rs("TypeName").Value).TypeID=rs("TypeID").Value.Sex=rs("Sex").Value.Mobile=Trim(rs("Mobile").Value).Email=Trim(rs("Email").Value).OfficePhone=Trim(rs("OfficePhone").Value).HomePhone=Trim(rs("HomePhone").Value).Fax=Trim(rs("Fax").Value).HomeAdr=Trim(rs("HomeAddress").Value).MailAdr=Trim(rs("MailAddress").Value).ZipCode=Trim(rs("ZipCode").Value).Birthday=rs("Birthday").Value.Age=rs("Age").Value.BirthdayWarn=rs("BirthdayWarn").Value.Work=Trim(rs("Work").Value).Position=Trim(rs("Position").Value).Company=Trim(rs("Company").Value).CompanySite=Trim(rs("CompanySite").Value).SelfSite=Trim(rs("SelfSite").Value).Likes=Trim(rs("Likes").Value).Hate=Trim(rs("Hate").Value).Remark=Trim(rs("Remark").Value).Importance=rs("Importance").Value.Friendly=rs("Friendly").Value.Satisfaction=rs("Satisfaction").ValueEndWithMe.AddobjClientSetobjClient=Nothingrs.MoveNextNextiSetrs=NothingSetFind=MeErr.ClearEndFunction

PublicFunctionAddNew(OptionalOptionalOptionalOptionalAddNew(OptionaldatDateAsDateOptionalOptionalOptionaldatDateAsDate=#1/1/1900#,_lngClientIdAsLong=-1,_intSatifyAsInteger=-1,_strRemarkAsString="")AsgxcAddNewPublicFunction=#1/1/1900#,_lngClientIdAsLong=-1,_intSatifyAsInteger=-1,_strRemarkAsString="")AsgxcAddNewIfIngClientId<>-1ThenMe.ClientID=IngClientIdIfintSatify<>-1ThenMe.Satisfaction=intSatify'上级合作信息的IDIfstrRemark<>〃〃ThenMe.Remark=strRemarkIfdatDate<>#1/1/1900#ThenMe.CooperateDate=datDateDimstrSQLAsStringDimErrMsgAsStringstrSQL="INSERTINTOCooperate(ClientId,[Date],Satisfaction,Remark)strSQL=strSQL&〃VALUES(〃&Me.ClientIDstrSQL=strSQL&〃,’〃&Me.CooperateDate&〃’〃strSQL=strSQL&〃,〃&Me.SatisfactionstrSQL=strSQL&〃,’〃&RealString(Me.Remark)&〃’〃strSQL=strSQL&〃)〃IfRunSql(strSQL,ErrMsg)ThenMe.ID=MaxID(〃Cooperate〃,"CooperateId")AddNew=AddNewOKElseAddNew=AddNewFailEndIfEndFunction(3)提醒管理模块:查看今日提醒界面:核心代码:OptionExplicit

PrivatemvarlDAsLongPrivatemvarTypeldAsLongPrivatemvarTypeNameAsStringPrivatemvarClientIdAsLongPrivatemvarClientNameAsStringPrivatemvarMsgAsStringPrivatemvarShowDateAsDate'提醒信息ID'提醒类型'提醒信息ID'提醒类型ID'提醒类型名称'提醒客户ID'提醒客户名称'提醒显示消息'提醒显示时间'启用生日提醒PublicPropertyLetShowBirthdayWarn(ByValvDataAsBoolean)mvarBirthdayWarn=vDataDimstrSQLAsStringIfmvarBirthdayWarnThenstrSQLSELECT*FROMWarningWHEREClientId="_strSQL&Me.ClientID&"ANDTypeId="&BirthdayWarnDimrsAsRecordsetSetrs=g_Conn.Execute(strSQL)Ifrs.RecordCount=0ThenAddNewMe.ShowDate,Me.ClientID,1,"今天是"&Me.ClientName&"的生日,请做好

温馨提示

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

评论

0/150

提交评论