版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、題 目: 客戶信息管理系統(tǒng) 專 業(yè): .nte網(wǎng)頁1班學號: 1303110112姓 名: 劉冰濤 指導教師: 胡迎久 21、 設計題目客戶信息管理系統(tǒng)2、 設計目的和要求目的:利用Visual Basic和Access實現(xiàn)客戶信息管理系統(tǒng)。要求:使系統(tǒng)能運行正確,完成基本的功能如客戶類型的增加、刪除、查詢和修改等。3、 設計內(nèi)容(包括設計思路、設計實現(xiàn))3.1需求分析客戶信息系統(tǒng)需要完成的功能有:客戶類型的建立與維護,包括客戶類型的新建、修改和刪除等。客戶信息的輸入,詳細全面記錄并管理客戶信息和聯(lián)系人信息,客戶信息包括客戶的基本信息,一般的通訊方式及客戶其他信息,如愛好、禁忌、生日等。客戶信
2、息的修改和刪除,包括啟動與取消客戶的生日提醒等。方便實用的數(shù)據(jù)查詢功能,根據(jù)不同條件查詢客戶,可以查看客戶信息。3.2 總體設計本系統(tǒng)采用三層結(jié)構(gòu)設計,即程序邏輯結(jié)構(gòu)分為用戶界面層、業(yè)務邏輯處理層和數(shù)據(jù)存儲層。三層在實際的物理結(jié)構(gòu)上也是獨立的,業(yè)務邏輯處理層采用ActiveX DLL實現(xiàn),用戶界面與業(yè)務邏輯分離,系統(tǒng)的安全性、可維護性、重要性和擴展性都大大提高。本系統(tǒng)也采用面向?qū)ο蟮脑O計,系統(tǒng)中將客戶類型、客戶等都封裝成相應的類,同時每個類都有自己對應的集合類,從而再次提高了對數(shù)據(jù)庫操作系統(tǒng)的安全性和程序的可擴展性。根據(jù)對系統(tǒng)功能的分析,我們可以把系統(tǒng)劃分成客戶類型管理模塊、客戶管理模塊和提醒
3、管理模塊。系統(tǒng)的物理結(jié)構(gòu)也分為三層,即用戶界面、組件和數(shù)據(jù)庫。3.3 程序界面及核心代碼3.1需求分析客戶信息系統(tǒng)需要完成的功能有:1、客戶類型的建立與維護,包括客戶類型的新建、修改和刪除等。2、客戶信息的輸入,客戶信息包括客戶的基本信息,一般的通訊方式及客戶其他信息,如愛好、禁忌、生日等。3、客戶信息的修改和刪除,包括啟動與取消客戶的生日提醒等。4、根據(jù)不同條件查詢客戶,可以查看客戶信息。3.2概念設計本系統(tǒng)采用三層結(jié)構(gòu)設計,即程序邏輯結(jié)構(gòu)分為用戶界面層、業(yè)務邏輯處理層和數(shù)據(jù)存儲層。三層在實際的物理結(jié)構(gòu)上也是獨立的,業(yè)務邏輯處理層采用ActiveX DLL實現(xiàn),用戶界面與業(yè)務邏輯分離,系統(tǒng)的
4、安全性、可維護性、重要性和擴展性都大大提高。本系統(tǒng)也采用面向?qū)ο蟮脑O計,系統(tǒng)中將客戶類型、客戶等都封裝成相應的類,同時每個類都有自己對應的集合類,從而再次提高了對數(shù)據(jù)庫操作系統(tǒng)的安全性和程序的可擴展性。根據(jù)對系統(tǒng)功能的分析,我們可以把系統(tǒng)劃分成客戶類型管理模塊、客戶管理模塊和提醒管理模塊。系統(tǒng)的物理結(jié)構(gòu)也分為三層,即用戶界面、組件和數(shù)據(jù)庫。系統(tǒng)功能模塊圖各實體間關(guān)系的E-R圖客戶類型信息實體E-R圖客戶信息實體E-R圖3.3邏輯設計(1)模式轉(zhuǎn)換(E/R to Relational)ClientType表:ClientInfo表:Cooperate表:WarnType表:Warning表:(2
5、)模式規(guī)范化ClientType表、ClientInfo表、Cooperate表、WarnType表、Warning表均已經(jīng)為BCNF范式(3)完整性約束設計實體完整性約束:ClientType表主鍵為TypeId ClientInfo表主鍵為ClientId Cooperate表主鍵為CooperateId WarnType表主鍵為WTypeId Warning表主鍵為WarnId參照完整性約束:Cooperate表的ClientId參照ClientInfo表主鍵ClientId Warning表的TypeId參照ClientType表主鍵TypeId(4)外模式設計建立了一張Client視
6、圖,用于顯示每位客戶的合作、提醒信息,語句如下:Create view Clientasselect CooperateId,ClientId,WarnId,ClientId,TypeName,Namefrom ClientType,ClientInfo,Cooperate,Warningwhere Cooperate.ClientId=ClientInfo.ClientId and Warning.TypeId=ClientType.TypeId(5)典型應用設計客戶類型管理模塊:添加客戶類型,修改客戶類型,刪除客戶類型客戶管理模塊:客戶信息管理,客戶評價管理,客戶合作管理提醒管理模塊:查看
7、今日提醒,提醒設置管理3.4物理設計內(nèi)模式設計:主要包括索引、散列、簇集設計ClientType表:索引字段為TypeId,索引表達式為TypeId,索引類型為主索引ClientInfo表:索引字段為ClientId,索引表達式為ClientId,索引類型為主索引Cooperate表:索引字段為CooperateId,索引表達式為CooperateId,索引類型為主索引WarnType表:索引字段為WTypeId,索引表達式為WTypeId,索引類型為主索引Warning表:索引字段為WarnId,索引表達式為WarnId,索引類型為主索引3.5系統(tǒng)實現(xiàn) 主要模塊及其核心代碼如下:(1)客戶類
8、型管理模塊:添加客戶類型界面:核心代碼:Public Function AddNew(Optional strName As String = "", _ Optional lngSuperID As Long = -1) As gxcAddNewIf ExistByName("ClientType", "TypeName", strName) Then AddNew = DuplicateName_AddNew Exit Function End IfIf lngSuperID <> 0 Then If ExistByI
9、D("ClientType", "TypeId", lngSuperID) = False Then AddNew = SuperNotExist Exit Function End If End IfIf strName <> "" Then Me.TypeName = strName If lngSuperID <> -1 Then Me.SuperID = lngSuperID ' Dim strSQL As String Dim ErrMsg As String strSQL = "I
10、NSERT INTO ClientType(SuperId, TypeName) " strSQL = strSQL & " VALUES(" & lngSuperID strSQL = strSQL & ",'" & strName & "'" strSQL = strSQL & ")" If RunSql(strSQL, ErrMsg) Then Me.ID = MaxID("ClientType", "Ty
11、peId") AddNew = AddNewOK Else AddNew = AddNewFail End IfEnd Function(2)客戶管理模塊:客戶信息管理模塊:添加客戶界面:核心代碼:Public Function AddNew(Optional ByVal strName As String = "", _ Optional ByVal intAge As Integer = 0, _ Optional varSex As gxcSex = -1, _ Optional lngTypeId As Long = 0) As Boolean On Er
12、ror Resume Next'如果參數(shù)為缺省值,即未傳入,則直接調(diào)用類中的參數(shù),否則調(diào)用傳入的參數(shù) If strName <> "" Then Me.Name = strName If intAge <> 0 Then Me.Age = intAge If varSex <> -1 Then Me.Sex = varSex If lngTypeId <> 0 Then Me.TypeID = lngTypeId Dim strSQL As String g_Conn.BeginTrans '開始一個事務,以免
13、費得到的ID值已被其它客戶端所使用 '此處調(diào)用NextID方法,得到該類對應的數(shù)據(jù)表的下一個ID,即最大ID+1 Me.ID = NextID("ClientInfo", "ClientId") Me.TypeName = GetValueByID("ClientType", "TypeId", Me.TypeID, "TypeName") '構(gòu)造SQL語句,注意需調(diào)用RealString去除字符串中的單引號,以及一些SQL語法的關(guān)鍵詞加 strSQL = "Inser
14、t into ClientInfo(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 & "
15、 Likes, Hate, Remark, Importance, Friendly, Satisfaction) " strSQL = strSQL & " VALUES(" strSQL = strSQL & "'" & RealString(mvarName) & "'," '客戶名稱 strSQL = strSQL & mvarAge & "," '客戶年齡 strSQL = strSQL & mvarSex
16、& "," '性別 strSQL = strSQL & mvarTypeId & "," '客戶類型Id strSQL = strSQL & "'" & RealString(mvarMobile) & "'," '手機 strSQL = strSQL & "'" & RealString(mvarEmail) & "'," 'E-mail
17、strSQL = strSQL & "'" & RealString(mvarOfficePhone) & "'," '辦公室電話 strSQL = strSQL & "'" & RealString(mvarHomePhone) & "'," '宅電 strSQL = strSQL & "'" & RealString(mvarFax) & "',&
18、quot; '傳真 strSQL = strSQL & "'" & RealString(mvarHomeAdr) & "'," '家庭住址 strSQL = strSQL & "'" & RealString(mvarMailAdr) & "'," '通訊地址 strSQL = strSQL & "'" & RealString(mvarZipCode) &
19、"'," '郵編 strSQL = strSQL & "'" & mvarBirthday & "'," '生日 strSQL = strSQL & mvarBirthdayWarn & "," '是不啟用生日提醒 strSQL = strSQL & "'" & RealString(mvarWork) & "'," '職業(yè) strSQL =
20、 strSQL & "'" & RealString(mvarPosition) & "'," '職位 strSQL = strSQL & "'" & RealString(mvarCompany) & "'," '公司 strSQL = strSQL & "'" & RealString(mvarCompanySite) & "',"
21、39;公司網(wǎng)址 strSQL = strSQL & "'" & RealString(mvarSelfSite) & "'," '個人網(wǎng)址 strSQL = strSQL & "'" & RealString(mvarLikes) & "'," '喜好 strSQL = strSQL & "'" & RealString(mvarHate) & "',
22、" '厭惡 strSQL = strSQL & "'" & RealString(mvarRemark) & "'," '備注 strSQL = strSQL & mvarImportance & "," '重要度 strSQL = strSQL & mvarFriendly & "," '友好度 strSQL = strSQL & mvarSatisfaction '滿意度 strSQ
23、L = strSQL & ")" '執(zhí)行SQL語句,并提交事務 g_Conn.Execute strSQL g_Conn.CommitTrans '如果發(fā)生錯誤,則返回FALSE,表示未成功添加 AddNew = (Err.Number = 0)End Function查找客戶界面:核心代碼:'按條件查找客戶,以集合類的方式返回Public Function Find(Optional ByVal lngID As Long = 0, _ Optional ByVal strName As String = "", _ O
24、ptional ByVal lngTypeId As Long = 0) As CClients '構(gòu)造查詢SQL Dim strSQL As String strSQL = "Select ClientInfo.*,ClientType.TypeName from ClientInfo left outer join ClientType " strSQL = strSQL & " ON ClientType.TypeID=ClientInfo.TypeID Where " If lngID <> 0 Then strSQL
25、 = strSQL & "ClientInfo.ClientID=" & lngID & " and " '如果是按名稱查詢,則采用“包含”的查詢方法 If strName <> "" Then strSQL = strSQL & "ClientInfo.Name like '%" & RealString(strName) & "%' and " End If If lngTypeId <> 0 T
26、hen strSQL = strSQL & "ClientInfo.TypeID=" & lngTypeId & " and " End If strSQL = strSQL & "ClientInfo.ClientId>0" On Error Resume Next '將查詢結(jié)果加入集合類 Dim rs As Recordset Set rs = g_Conn.Execute(strSQL) Dim i As Long Dim objClient As cClient For i = 1
27、 To rs.RecordCount Set objClient = New cClient With objClient .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").V
28、alue) .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) .Zip
29、Code = 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").
30、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 = r
31、s("Friendly").Value .Satisfaction = rs("Satisfaction").Value End With Me.Add objClient Set objClient = Nothing rs.MoveNext Next i Set rs = Nothing Set Find = Me Err.ClearEnd Function客戶評價管理模塊:客戶合作管理模塊:添加合作信息界面:核心代碼:Public Function AddNew(Optional datDate As Date = #1/1/1900#, _ Op
32、tional lngClientId As Long = -1, _ Optional intSatify As Integer = -1, _ Optional strRemark As String = "") As gxcAddNew Public Function AddNew(Optional datDate As Date = #1/1/1900#, _ Optional lngClientId As Long = -1, _ Optional intSatify As Integer = -1, _ Optional strRemark As String =
33、 "") As gxcAddNewIf lngClientId <> -1 Then Me.ClientID = lngClientId If intSatify <> -1 Then Me.Satisfaction = intSatify '上級合作信息的ID If strRemark <> "" Then Me.Remark = strRemark If datDate <> #1/1/1900# Then Me.CooperateDate = datDate Dim strSQL As Str
34、ing Dim ErrMsg As String strSQL = "INSERT INTO Cooperate(ClientId, Date, Satisfaction, Remark) " strSQL = strSQL & " VALUES(" & Me.ClientID strSQL = strSQL & ",'" & Me.CooperateDate & "'" strSQL = strSQL & "," & Me
35、.Satisfaction strSQL = strSQL & ",'" & RealString(Me.Remark) & "'" strSQL = strSQL & ")" If RunSql(strSQL, ErrMsg) Then Me.ID = MaxID("Cooperate", "CooperateId") AddNew = AddNewOK Else AddNew = AddNewFail End If End Function(3
36、)提醒管理模塊:查看今日提醒界面:核心代碼:Option ExplicitPrivate mvarID As Long '提醒信息IDPrivate mvarTypeId As Long '提醒類型IDPrivate mvarTypeName As String '提醒類型名稱Private mvarClientId As Long '提醒客戶IDPrivate mvarClientName As String '提醒客戶名稱Private mvarMsg As String '提醒顯示消息Private mvarShowDate As Date
37、 '提醒顯示時間Private mvarBirthdayWarn As Boolean '是否啟用生日提醒'啟用生日提醒Public Property Let ShowBirthdayWarn(ByVal vData As Boolean) mvarBirthdayWarn = vData Dim strSQL As String If mvarBirthdayWarn Then strSQL = " SELECT * FROM Warning WHERE ClientId = " _ & Me.ClientID & " AND TypeId = " & BirthdayWarn Dim rs As Recordset Set rs = g_Conn.Execute(strSQL) I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公寓托管維修合同范本
- 個人律師聘用合同范本
- 出售龍鳳公寓合同范例
- 凍蝦仁銷售合同范本
- 再生橡膠的物理性能測試技術(shù)考核試卷
- 固體飲料的消費者健康意識調(diào)查考核試卷
- 公路工程施工合同范本
- 化工設備安全生產(chǎn)法律法規(guī)考核試卷
- 小學一年級數(shù)學一年級算術(shù)題
- 企業(yè)包裝采購合同范本
- 電子線檢驗標準
- 建筑施工安全員理論考核試題與答案
- 人教版七年級歷史下冊教學計劃(及進度表)
- 建筑工程節(jié)后復工自查表
- 華萊士標準化體系
- 快捷smt全自動物料倉儲方案
- keysight眼圖和抖動噪聲基礎(chǔ)知識與測量方法
- TPU材料項目可行性研究報告寫作參考范文
- 試用期考核合格證明表
- 鍋爐補給水陰陽混床操作步序表
- 2005年第4季度北京住房租賃指導價格
評論
0/150
提交評論