




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
摘要根據(jù)目前一些小企業(yè)的特點,本系統(tǒng)旨在建立一個完成訪客資料的記錄和查詢的客戶管理系統(tǒng),它可以理解為是目前流行的客戶關系管理系統(tǒng)的一個子系統(tǒng)。論文在介紹了課題的來源和系統(tǒng)設計背景的基礎上展開了系統(tǒng)設計過程的說明。首先講述了系統(tǒng)的總體設計,主要論述面向對象的三層C/S架構的設計、系統(tǒng)功能模塊的劃分、系統(tǒng)結構設計。接著介紹了系統(tǒng)數(shù)據(jù)庫的設計,包括數(shù)據(jù)庫需求分析、數(shù)據(jù)庫概念結構設計等,然后詳細介紹了客戶管理系統(tǒng)詳細設計,包括系統(tǒng)組件設計,主界面設置,客戶信息管理對話框代碼設計、添加客戶信息、修改客戶信息、刪除客戶信息、查看客戶信息、查找客戶等設計內容。最后簡要介紹了軟件測試,包括測試的目的與任務以及調試中需要注意事項的。關鍵詞:客戶管理,VB,ACCESS,系統(tǒng)設計
AbstractSomeareinthelightofatpresentpeanutscharacteristic,thissystemaimsatbuildingthatcustomermanagementsystem,itareunderstandableforbeingatpresentpopularCustomerRelationshipManagementsystemonebuildofpreciswriterandinquiryaccomplishingthevisitordatasystem.Thesystemhavingspreadoutonthesisbasisdesigningbackgroundinsourceandsystemhavingintroducedaproblem'sdesignstheprocessexplanation.Thepopulationhavinggivenanaccountofsystem'sfirstdesigns,design,systemfunctiondiscussingbegearedtotheneedsofmarriagepartnerthreelayersofC/Sframe'smainlyhavenothemodulepartition,systemphysicaldesign.Andthenproceedtohaveintroducedsystemdatabasedesign,includedatabaseneedanalysis,databaseconceptphysicaldesignetc.,haveintroducedthatthecustomermanagessystemdetaileddesign,themoduledesigns,thehostinterfaceinterposes,thecustomerinformationadministrationconversationframecodedesigns,addingcustomerinformation,revisingcustomerinformation,deletingcustomerinformation,checkingcustomerinformation,seekingacustomerandsoondesignscontentincludingsystemdetailedly.Brieffinalthetestinghavingintroducedasoftware,thepurposeincludingatestingneedmattersneedingattention'swiththemissionanddebuggingmiddle.Keywords:Thecustomermanages,VB,ACCESS,systemdesignthat
目錄TOC\o\h\z\u摘要 IAbstract II目錄 III第1章概述 11.1課題來源 11.2開發(fā)環(huán)境簡介 21.2.1VB概述 21.2.2ACCESS2003數(shù)據(jù)庫簡介 31.3本文所做的工作 4第2章系統(tǒng)總體設計 62.1系統(tǒng)功能分析 62.2系統(tǒng)設計要求 62.3系統(tǒng)設計 72.3.1面向對象的三層C/S架構的設計 72.3.2系統(tǒng)功能模塊劃分 82.3.3系統(tǒng)結構設計 8第3章系統(tǒng)數(shù)據(jù)庫設計 103.1數(shù)據(jù)庫需求分析 103.2數(shù)據(jù)庫概念結構設計 113.3數(shù)據(jù)庫邏輯結構設計 123.4數(shù)據(jù)庫的生成與配置 14第4章系統(tǒng)詳細設計 154.1組件設計 154.1.1客戶管理事務處理事件的創(chuàng)建 154.1.2在工程中加入自定義枚舉 154.1.3創(chuàng)建組件的公共模塊 174.2客戶管理主界面設置 184.2.1設計主窗體控件布局 184.2.2圖片列表的關鍵字設置 194.2.3給工具條添加按鈕 194.2.4 添加菜單 204.3主界面編輯狀態(tài)預覽 214.4客戶信息管理模塊 214.4.1客戶信息管理對話框界面設計 214.4.2客戶信息管理對話框代碼設計 254.4.3添加客戶信息 294.4.4修改客戶信息 294.4.5刪除客戶信息 304.4.6查看客戶信息 314.4.7查找客戶 32第5章軟件測試 335.1測試的目的與任務 335.2測試的方法 335.3系統(tǒng)的調試與注意事項 345.4系統(tǒng)的編譯與發(fā)行 35總結 36參考文獻 37致謝 38第1章概述1.1課題來源客戶關系管理(CustomerRelationshipManagementCRM)起源于80年代初提出的“接觸管理”(ContactManagement),即專門收集整理客戶與公司聯(lián)系的所有信息以達到了解客戶的目的。而我們所做的客戶管理系統(tǒng)是客戶關系管理系統(tǒng)中的一部分。到90年代初期則演變成為包括電話服務中心與支援資料分析的客戶服務。經歷了二十多年的不斷發(fā)展,客戶關系管理不斷演變發(fā)展并趨向于成熟,最終形成了一套完整的管理理論體系。目前隨著Internet帶來的巨大商機,電子商務變得越來越成熟,基于網絡辦公己經取得了更寬更廣的應用。所以,基于B/S模式的CRM研究與應用更具有特別的意義。傳統(tǒng)CRM系統(tǒng)的研究和應用都是基于C/S模式,即客戶機/服務器的結構模式,再加上郵件處理系統(tǒng),在企業(yè)網的內部進行實施和應用。這樣的系統(tǒng)需要在客戶端安裝相應的客戶端應用程序,服務器端也要安裝服務器應用程序。隨著Internet的廣泛應用,C/S模式逐漸暴露出很多不足的地方,比如,部署程序復雜,系統(tǒng)升級困難,可擴展性差。相反,B/S模式的系統(tǒng)有許多優(yōu)點:1)應用范圍廣泛??梢院碗娮由虅章?lián)系起來,在全球范圍內進行相關的業(yè)務處理。2)辦公方式簡捷,方便。只要能上網,就能進行業(yè)務處理。3)安裝,使用方便,可擴展性強。只須安裝服務器端應用程序,不需要安裝客戶端程序。所以,進行基于B/S模式的CRM系統(tǒng)研究與應用,可以使公司客戶快速、方便、及時地查詢公司最新的各種信息,處理與公司的業(yè)務。這對公司管理客戶關系,促進業(yè)務處理,提高經濟效益,都有重大意義。目前商用的CRM產品很多,企業(yè)著手進行CRM實施的過程中,多數(shù)以失敗或者不理想而告終,主要原因在于系統(tǒng)不適合企業(yè)自身的需要,并且對于中小企業(yè)來說一個完全意義上CRM系統(tǒng)似沒有必要的,他們使用CRM系統(tǒng)也主要就是使用其中的客戶管理和聯(lián)系等基本功能,因此我們認為自己動手開發(fā)一個適合企業(yè)特點的客戶管理系統(tǒng)具有重要的現(xiàn)實意義。1.2開發(fā)環(huán)境簡介根據(jù)我們當前的知識水平,我們選用了MicrosoftVisualBasic6.0作為前臺的開發(fā)工具,用ACCESS2003作為后臺支持數(shù)據(jù)庫,通過VB6.0的數(shù)據(jù)庫控件來連接ACCESS2003中并對其編程來實現(xiàn)各種功能。,因為ACCESS與VisualBasic用的同為MicrosoftJet數(shù)據(jù)庫引擎,有著最好的兼容性。1.2.1VB概述VisualBasic(以下簡稱VB)的前身是QBASIC,語言基礎是BASIC。自從微軟推出VB后,便成為了程序開發(fā)人員的首選工具。據(jù)統(tǒng)計,僅在數(shù)據(jù)庫系統(tǒng)開發(fā)領域,VB就占了90%的份額。VB是基于對象的可視化程序開發(fā)工具,它的優(yōu)點在于能夠快捷、簡易地建立Windows應用程序。1998年8月,微軟推出了VB6.0的版本,進一步加強了部件開發(fā)的功能。以適用人員來分,可有以下三個版本:1.標準版針對一般程序設計人員,適合普通應用系統(tǒng)的開發(fā)。2.專業(yè)版針對專業(yè)程序開發(fā)人員,它在標準版的基礎上提供了對數(shù)據(jù)庫和Internet的支持。3.企業(yè)版適用于專為企業(yè)設計應用軟件的程序開發(fā)人員。使用VB不需要追求完美的算法和精密的邏輯,而只要充分發(fā)揮你的想象力和創(chuàng)造力,就能利用VB開發(fā)出各種實用的軟件了,不論是小游戲還是大型的客戶端/服務器端應用程序,都變得非常簡單??梢暬幊痰囊粋€突出特點就是其開發(fā)環(huán)境就像一個百寶箱,很多功能都集成在其之中,這就是IDE(IntegratedDevelopmentEnvironment),即集成開發(fā)環(huán)境。IDE是指在相應的開發(fā)平臺中集成了編輯器、編譯連接工具、控件器箱輔助工具。例如在VB的集成開發(fā)環(huán)境中就包括了以下一些主要元素:工具欄、工具箱、工程管理器窗口、屬性窗口、窗體設計器、代碼編輯器窗口等;和VB類似,Delphi的IDE中具有主控制窗體、對象查看窗口和窗體設計器。同時IDE的設置是很靈活的,開發(fā)人員可以按照自己的編程習慣來配置IDE。從簡單的文本文件到各種復雜的關系型數(shù)據(jù)庫,數(shù)據(jù)庫應用程序需要面對各種各樣的數(shù)據(jù)源。Visualbasic6.0提供ADO(ActiveDataObjects)作為應用程序和OLE-DB連接的橋梁ADO,即Active數(shù)據(jù)對象(ActiveDataObjects):實際是一種提供訪問各種數(shù)據(jù)類型的連接機制。ADO設計為一種極簡單的格式,通過ODBC的方法同數(shù)據(jù)庫接口相連。用戶可以使用任何一種ODBC數(shù)據(jù)源,即不僅適合于SQLServer、Oracle、Access等數(shù)據(jù)庫應用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)文件。ADO是基于OLE-DB之上的技術,因此ADO通過其內部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。Microsoft在VisualBasic6.0以后的版本都集成了ADO。它與以前VisualBasic的DAO、RDO相比有了很大的提高。DAO(DataAccessObjects)即數(shù)據(jù)訪問對象,是一種面向對象的界面接口。通過DAO/Jet功能可以訪問ISAM數(shù)據(jù)庫,使用DAO/ODBCDirect功能可以實現(xiàn)遠程RDO功能。RDO(RemoteDataObjects)即遠程數(shù)據(jù)對象,為使用代碼來創(chuàng)建和操作一個遠程ODBC數(shù)據(jù)庫系統(tǒng)的各個部件提供了一個框架。RDO是ODBCAPI的一個淺層界面接口,是專為訪問遠程ODBC關系數(shù)據(jù)源而設計的。ADO集中了DAO和RDO的優(yōu)點,可以通過簡單的編程實現(xiàn)和各種數(shù)據(jù)結構進行連接。使用ADO的目的是進入數(shù)據(jù)源,使得修改、更新數(shù)據(jù)成為可能。ADO提供一系列的類和對象來完成各種操作。1.2.2ACCESS2003數(shù)據(jù)庫簡介過去的一些數(shù)據(jù)庫軟件,在操作上、數(shù)據(jù)庫建立、維護等等,都相當復雜且不易使用,但是在具備了窗口的GUI(圖形用戶界面)特性的ACCESS數(shù)據(jù)庫推出之后,數(shù)據(jù)庫的建立不再是困難的事情,我們可以在PC上簡單而快速的建立出一套符合自己的數(shù)據(jù)庫。不但如此,在ACCESS2003推出以后,我們發(fā)現(xiàn)數(shù)據(jù)庫的建立更加的快速,但是功能卻更加強大,用戶不用再去記憶那一大堆的文件名稱,或是為數(shù)據(jù)庫的文件管理大費周章,通過ACCESS的人性化管理接口把數(shù)據(jù)庫的管理整理,便于維護;此外,在報表的制作上也是相當容易的,完全的視覺開發(fā)向導設計,讓人使用起來很舒服。但是美中不足的是ACCESS對于主從式結構的安全性管理不足,由于ACCESS可以快速的通過ODBC連接到數(shù)據(jù)庫服務器上(DatabaseServer),并瀏覽所有表格或是相關對象轉成HTML。基本上,ACCESS對建立一個數(shù)據(jù)庫所具備的每一個對象,其中包括了表、查詢、窗體、報表、宏、模塊。其功能分別敘述如下:表對象打開已經存在的表格、對已存在的表格字段數(shù)據(jù)進行修改、新建表格。查詢對象可以用直接拖放的方式,建立表格之間的關聯(lián)與對應關系,自動產生SQL語法查詢出我們想要的數(shù)據(jù)。窗體設計對象可以設計用戶接口,用來輸入并處理數(shù)據(jù)。報表對象利用視圖向導的開發(fā)方式,簡單、快速的建立出需求報表或標簽。宏對象提供許多的宏功能,您可以把這樣的宏連接到窗體設計中的任一個對象,以達成一些復雜的功能。模塊對象撰寫VB的程序模塊,處理較復雜的問題與需求,該功能是采用事件驅動的模式,類似VB的處理方式。1.3本文所做的工作本文主要針對客戶管理系統(tǒng)的設計過程做一個詳細的說明,論文共分五章:第一章,概述,主要介紹了課題的來源,并簡單介紹了系統(tǒng)開發(fā)環(huán)境VB與ACCESS2003數(shù)據(jù)庫的特點。第二章,系統(tǒng)總體設計,論及了系統(tǒng)功能分析、系統(tǒng)設計要求、系統(tǒng)設計。其中最主要的是講述系統(tǒng)設計,它主要論述面向對象的三層C/S架構的設計、系統(tǒng)功能沒模塊的劃分、系統(tǒng)結構設計。第三章,系統(tǒng)數(shù)據(jù)庫設計,包括數(shù)據(jù)庫需求分析、數(shù)據(jù)庫概念結構設計等。第四章,系統(tǒng)詳細設計,首先介紹了組件設計,客戶信息管理對話框界面設計、客戶信息管理對話框代碼設計、添加客戶信息、修改客戶信息、刪除客戶信息、查看客戶信息、查找客戶。第五章,軟件測試,主要介紹測試的目的與任務以及調試中需要注意事項的。最后對整個設計工作作了一個總結。
第2章系統(tǒng)總體設計2.1系統(tǒng)功能分析以客戶為中心的理念在國外興起于20世紀50年代,當時很多企業(yè)寄望于通過改進技術、壓縮生產周期、改善內部資源管理來提高生產增長率和利潤,但事實上見效甚微。這樣企業(yè)開始從強調降低經營成本的供應方發(fā)展策略轉向了需求方策略。所謂需求方策略,就是指與客戶聯(lián)系更緊密,從客戶關系方面挖掘新能源的策略,CRM應運而生。所不同的是,現(xiàn)在計算機可以幫助人們實現(xiàn)這些看似并不復雜而實際操作起來非常繁瑣的工作。試想一下,當我們需要查找一個客戶的電話號碼時,只需要敲幾下鍵盤,就可以看到客戶的詳細資料(包括姓名、公司名稱、電話、E-mail,甚至包括合作歷史記錄),還有,當客戶的生日快到時,軟件可以提醒您是該客戶寄出賀卡的時候了。所有的這些,正是一個完善的客戶管理系統(tǒng)的功能所在。本系統(tǒng)設計的是一個面向企業(yè)或面向個人的客戶管理系統(tǒng)。系統(tǒng)開發(fā)的總體任務是實現(xiàn)與客戶相關的各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)主要完成的功能有:●客戶類型的建立與維護,包括客戶類型的新建、修改和刪除等?!窨蛻粜畔⒌妮斎耄蛻粜畔蛻舻幕拘畔?、一般的通訊方式及客戶其他信息,如愛好、禁忌、生日等。●客戶信息的修改與刪除,包括啟動與取消客戶的生日提醒等。●根據(jù)不同條件查詢客戶,可以查看客戶信息。●與客戶合作記錄的信息維護,包括合作記錄的添加、修改和刪除等?!窨蛻粼u價管理,包括客戶的重要度、友好度、滿意度的設定與查看?!窨蛻羰录嵝眩ǘ〞r約會提醒和生日提醒兩種?!窨蛻籼嵝研畔⒕S護,包括添加、修改和刪除提醒信息。2.2系統(tǒng)設計要求根據(jù)小型客戶管理系統(tǒng)的特點,該系統(tǒng)應該具有如下設計需求:三層結構設計:本系統(tǒng)采用三層結構設計,即程序邏輯結構分為用戶界面層、業(yè)務邏輯處理層和數(shù)據(jù)存儲層。三層在實際的物理結構上也是獨立的,業(yè)務邏輯處理層采用ActiveXDLL實現(xiàn),用戶界面與業(yè)務邏輯分離,系統(tǒng)的安全性、可維護性、重用性和擴展性都大大提高。面向對象設計:系統(tǒng)中將客戶類型、客戶等都封裝成相應的類,同時每個類都有自己對應的集合類,從而再次提高了對數(shù)據(jù)庫操作的安全性和程序的可擴展性。人性化設計:系統(tǒng)不僅僅是一個客戶信息的管理軟件,它更具有人性化的生日提醒,極具實用性的合作記錄,以及對客戶的重要度、友好度、滿意度評價等。盡可能使用現(xiàn)有資源:目的當然是為了提高軟件開發(fā)的效率,在本系統(tǒng)中主要體現(xiàn)為使用VB應用程序向導來創(chuàng)建應用程序,向導可以為我們生成很多有用的代碼和一個總體框架,本系統(tǒng)在向導中選擇的是“資源管理器樣式”,這就是為什么系統(tǒng)的主界面很像資源管理器的原因了。另外,讀者也許已經注意到了,系統(tǒng)的今日提醒界面與某些程序的“每日一帖”或“日積月累”對話框十分相似,事實上它正是用VB窗體模板中的“日積月累”對話框實現(xiàn)的。2.3系統(tǒng)設計現(xiàn)在首先從系統(tǒng)設計思想角度來介紹客戶管理系統(tǒng)的總體設計,然后講述本客戶管理系統(tǒng)的功能模塊設計與結構設計。2.3.1面向對象的三層C/S架構的設計本系統(tǒng)采用三層架構設計,它的工作原理如圖2.1所示。用戶界面層業(yè)務處理層數(shù)據(jù)存儲層用戶界面層業(yè)務處理層數(shù)據(jù)存儲層IUnkown給出客戶ID,要查看組織SQL語句,查詢客戶信息數(shù)據(jù)庫返回客戶對象,返回查詢結果內部有客戶信息數(shù)據(jù)庫客戶管理組件客戶管理組件客戶管理系統(tǒng)操作界面圖2.1三層架構的工作原理圖圖2.1C/S架構工作原理圖2.3.2系統(tǒng)功能模塊劃分根據(jù)上述的系統(tǒng)功能分析,可以得出圖中2.2所示的系統(tǒng)功能模塊圖。從圖中可以看出系統(tǒng)包括客戶類型管理模塊、客戶管理模塊和提醒管理模塊,在客戶管理模塊中,又包括客戶信息管理、客戶評價管理和客戶合作管理3部分??梢姡蛻羰窍到y(tǒng)的核心,其他模塊都是以客戶為中心并為其他服務的。客戶管理系統(tǒng)客戶管理系統(tǒng)客戶類型管理模塊客戶管理系統(tǒng)提醒管理模塊添加客戶類型修改客戶類型刪除客戶類型客戶信息管理客戶評價管理客戶合作管理查看今日提醒提醒設置管理查看定時管理刪除定時管理修改定時管理添加定時管理刪除合作記錄修改合作記錄添加合作記錄查找客戶信息查看客戶信息刪除客戶信息修改客戶信息圖2.2系統(tǒng)功能模塊圖2.3.3系統(tǒng)結構設計根據(jù)面向對象和三層結構的設計思想,可得出如圖2.3所示的系統(tǒng)結構設計圖。從圖中可以看出系統(tǒng)的物理結構也分為三層,即用戶界面、組件和數(shù)據(jù)庫。客戶管理系統(tǒng)客戶管理系統(tǒng)客戶管理界面客戶管理組件數(shù)據(jù)庫客戶類型相關界面客戶信息相關界面合作信息相關界面客戶類型管理客戶信息管理合作信息管理提醒信息管理公共模塊提醒信息集合類提醒信息類合作信息集合類客戶合作信息類客戶信息集合類客戶信息類客戶類型集合類客戶類型類公共模塊提醒信息相關界面枚舉定義類圖2.3系統(tǒng)結構設計圖
第3章系統(tǒng)數(shù)據(jù)庫設計數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結構設計的好壞將直接影響應用系統(tǒng)的效率及實現(xiàn)的效果。合理的數(shù)據(jù)庫結構設計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整性和一致性。設計數(shù)據(jù)庫系統(tǒng)時應該首先充分了解用戶各個方面的需求,包括現(xiàn)有的及將來可能增加的需求。數(shù)據(jù)庫設計一般包括數(shù)據(jù)庫需求分析,數(shù)據(jù)庫概念結構設計,數(shù)據(jù)庫邏輯結構設計。3.1數(shù)據(jù)庫需求分析用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結構能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結構及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設計打下基礎。通過上述系統(tǒng)功能的分析,針對一般客戶管理信息系統(tǒng)的需求,以下便是的需求信息:客戶類型存在上下級關系。客戶必須屬于一個客戶類型。如果一個客戶類型存在客戶,或存在下級客戶類型,則該類型不可刪除??蛻粼u價與客戶一一對應??蛻艉献餍畔⒈仨毰c某一個客戶相關。提醒可以針對某一個客戶,也可以針對全部客戶??蛻粜畔?、合作信息、提醒信息要可以添加、修改、刪除、瀏覽、查看??蛻艨梢园磶追N常用的信息查詢。經過上述系統(tǒng)功能分析和需求總結,考慮到將來功能上的擴展,設計的數(shù)據(jù)項和數(shù)據(jù)結構如下:客戶類型信息,包括的數(shù)據(jù)項有:客戶類型編號、上級客戶類型編號、客戶類型名稱等。包括的數(shù)據(jù)項有:客戶基本信息、客戶其他聯(lián)系方式、客戶其他信息幾方面??蛻艋拘畔蛻艟幪枴⒖蛻粜彰?、性別、手機、E-mail等;客戶其他聯(lián)系方式包括辦公室電話、家庭住址、郵編等;客戶其他信息包括客戶公司網站、客戶喜好、禁忌等??蛻粼u價信息,包括重要度、友好度、滿意度等??蛻艉献餍畔?,包括合作編號、合作客戶、合作時間、合作內容等。提醒信息,包括提醒編號、提醒對象、提醒時間、提醒內容等。在上面的需求分析、數(shù)據(jù)結構設計、數(shù)據(jù)項分析的基礎上,下面可以開始數(shù)據(jù)庫概念結構設計了。3.2數(shù)據(jù)庫概念結構設計得到上面的數(shù)據(jù)項和數(shù)據(jù)結構以后,就可以設計出能夠滿足用戶需求的各種實體,以及它們之間的關系,為后面的邏輯結構設計打下基礎。這些實體包含各種具體信息,通過相互之間的作用形成數(shù)據(jù)的流動。本實例根據(jù)上面的設計規(guī)劃出的實體有:客戶類型信息實體、客戶信息實體、提醒信息實體、評價信息實體、合作信息實體。每一個實體都是現(xiàn)實中實際存在的對象的抽象,每兩個或兩個以上的實體之間可能存在某種關系。下面分別給出各個實體的E-R(Entity-Relation)圖。各實體之間關系的E-R圖如圖3.1所示,客戶類型信息實體E-R圖如圖3.2所示,客戶類型信息實體E-R圖如圖3.3所示,合作信息實體E-R圖如圖3.4所示,提醒信息實體E-R圖如圖3.5所示,評價信息實體E-R圖如圖3.6所示??蛻纛愋涂蛻纛愋涂蛻籼嵝言u價合作提醒信息評價信息合作信息圖3.1各實體之間關系的E-R圖客戶類型客戶類型客戶類型名稱上級類型客戶名稱客戶性別客戶E-mail客戶電話圖3.2客戶類型信息實體圖.圖3.3客戶信息實體圖E-R圖提醒信息提醒信息提醒編號提醒顯示時間提醒類型顯示時間合作信息合作編號合作時間滿意度合作內容圖3.4合作信息實體E-R圖圖3.5提醒信息實體E-R圖評價信息評價信息友好度滿意度重要度圖3.6評價信息實體E-R圖3.3數(shù)據(jù)庫邏輯結構設計數(shù)據(jù)庫的概念結構設計完畢后,現(xiàn)在可以將上面的數(shù)據(jù)庫概念結構轉化為某種數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結構。根據(jù)客戶管理系統(tǒng)使用情況的不同,可以采用Acess數(shù)據(jù)庫或SQLServer2000數(shù)據(jù)庫。從系統(tǒng)移植方便性角度考慮,我們采用了Access數(shù)據(jù)庫。客戶管理系統(tǒng)數(shù)據(jù)庫中各個表的設計結果如表3.1~表3.5所示。表3.1為客戶信息表,因為與客戶評價表主鍵相同,可以合并為一張表。表3.1客戶信息表(ClientInfo)列表數(shù)據(jù)類型字段大小默認值說明ClientId自動編號長整型是“”遞增,主鍵Name文本20是0姓名Sex數(shù)字字節(jié)是0性別Age數(shù)字字節(jié)是年齡Birthday日期/時間短日期是“”生日OfficePhone文本15是“”辦公室電話Mobile文本15是“”手機Fax文本15是“”傳真HomePhone文本15是“”宅電Work文本50是“”職業(yè)Position文本30是““職位Email文本20是“”郵件HomeAddress文本50是“”住址MailAddress文本50是“”通訊地址ZipCode文本8是“”郵編SelfSite文本30是“”個人網站Company文本50是“”就職單位CompanySite文本30是“”公司網站Likes備注是“未知”喜好Hate備注是“未知”厭惡TypeId數(shù)字長整型是0客戶類型IDRemark備注是“”備注BirthdayWarn是/否是FalseImportance數(shù)字整型是50重要度(0-255)Friendly數(shù)字整型是50友好度(0-255)Satisfaction數(shù)字整型是50滿意度(0-255)表3.2 客戶類型信息表(ClienType)列表數(shù)據(jù)類型字段大小必填字段默認值說明TypeId自動編號長整型是遞增,主鍵SuperId數(shù)字長整型是0上級類型IDTypeName文本20否“”客戶類型名表3.3合作信息表(Cooperate)列表數(shù)據(jù)類型字段大小默認值說明CooperateId自動編號長整型是主鍵,遞增ClientId數(shù)字長整型是客戶ID,外碼Date日期/時間短日期是#1900-1-1#合作日期Satefaction數(shù)字整型是50滿意度(0-255)Remark備注是“”備注表3.4提醒信息表(Warning)列表數(shù)據(jù)類型字段大小必填字段默認值說明WarnId自動編號長整型是主鍵,遞增ClientId數(shù)字長整型是0客戶ID,為0時表時全體客戶ShowDate日期/時間短日期是#1900-1-1#提醒顯示日期TypeId數(shù)字整型是1提醒類型Id,外碼Msg備注是“”提醒消息表3.5提醒類型信息表(WarnType)列表數(shù)據(jù)類型字段大小必填字段默認值說明WTypeId自動編號字節(jié)是提醒類型編號WtypeName文本30是“定時提醒”提醒類型名稱3.4數(shù)據(jù)庫的生成與配置經過前面的需求分析和概念結構設計以后,得到數(shù)據(jù)庫的邏輯結構。下面在Acess數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)表,本系統(tǒng)的數(shù)據(jù)庫文件名定為“ManageClient.mdb”,這里需要注意數(shù)據(jù)庫的權限問題,即:(1)去掉數(shù)據(jù)庫文件和所在文件夾的只讀屬性。(2)如果是NTFS分區(qū),則要給適當?shù)挠脩籼砑訖嘞?,一般,簡單的解決辦法是給它的Everyone用戶添加完全控制權限。
第4章系統(tǒng)詳細設計后臺數(shù)據(jù)庫結構的設計工作完成以后,可以進入系統(tǒng)的詳細設計環(huán)節(jié)。客戶管理事務處理組件用來處理客戶管理系統(tǒng)中的業(yè)務邏輯,既負責與界面進行數(shù)據(jù)傳遞,同時也要將界面端的請求應用業(yè)務邏輯之后對數(shù)據(jù)庫進行操作。4.1組件設計客戶管理事務處理組件包括以下功能:(1)客戶類型信息管理;(2)客戶信息管理;(3)業(yè)務合作信息管理;(4)客戶提醒信息管理。4.1.1客戶管理事務處理事件的創(chuàng)建為了給客戶管理事件創(chuàng)建組件,我們新建了ActiveXDLL工程,加入對ADO的引用,設置的工程的關鍵屬性如下:工程類型為ActiveXDLL,啟動對象為SubMain,工程名稱為ClientManagerCom。4.1.2在工程中加入自定義枚舉新建工程時自動生成的類型名稱設為CPublic,此類沒有別的具體意義,主要功能是保存一些自定義的枚舉類型,這些枚舉類型在以后其他各類中要經常用到,同時這個類的實現(xiàn)沒有技術難度,根據(jù)需要我們定義了以下枚舉:OptionExplicit'該類無實際意義,只為保存一些自定義枚舉'自定義枚舉,用于表示性別PublicEnumgxcSexMale=0Female=1EndEnum'連接數(shù)據(jù)庫的類型PublicEnumgxcDBTypeDBAccess=0DBSQLServer=1EndEnum'以下枚舉用于“客戶類型”對象的操作,用于表示客戶類型刪除結果的枚舉PublicEnumgxcDeleteDeleteOK=0DeleteFail=1'未知原因導致不能刪除DeleteSubExists=2'由于存在子類型,因此不能刪除DeleteClientExists=3'該客戶類型存在客戶,不能刪除EndEnum'用于表示客戶類型更新結果的枚舉PublicEnumgxcUpdateUpdateOK=0UpdateFail=1DuplicateName_Update=2'名字不可重復RecordNotExist=3'當前更新的記錄不存在EndEnum'用于表示客戶類型新增結果的枚舉PublicEnumgxcAddNewAddNewOK=0AddNewFail=1DuplicateName_AddNew=2'名字不可重復SuperNotExist=3'指定的上級客戶類型的ID不存在EndEnum'用于提醒類別設置PublicEnumgxcWarnTypeBirthdayWarn=1'生日提醒CommonWarn=2'定時提醒EndEnum'用于對話框顯示類別設置PublicEnumgxcViewTypevtadd=0'添加信息vtModify=1'修改信息vtInfo=2'查看信息EndEnum4.1.3創(chuàng)建組件的公共模塊在工程中添加一個模塊,命名為mdlpublic,此模塊有兩個功能:用來連接數(shù)據(jù)庫及相關的初始化操作。存放在對數(shù)據(jù)庫的操作過程中可能用到的一些公共函數(shù)。添加全局變量我們加入兩個全局變量,它們的名稱和功能如下:Publicg_Connection‘用于全局的數(shù)據(jù)連接Publicg_DBPathAsString‘如果是Access數(shù)據(jù)庫,記錄下數(shù)據(jù)庫的路徑SubMain()過程—啟動對象手動加入SubMain()過程,這個就是剛才在工程屬性設置里指定的啟動對象。在這個過程中,完成ActiveXDLL的初始化工作。在SubMain()中的ConnecToDatabase函數(shù)時功能是用來連接到數(shù)據(jù)庫,下面來看它的實現(xiàn)方法。ConnecToDatabase函數(shù)——與數(shù)據(jù)庫建立連接功能:根據(jù)傳入?yún)?shù)是DBAccess還是DBSQLSever來決定連接到Access數(shù)據(jù)庫還是SQLSever數(shù)據(jù)庫。參數(shù)設計:gxcDBType類型,參見CPublic類中的枚舉定義。返回值:Boolean類型,True表示成功,F(xiàn)alse表示失敗。設計思路:根據(jù)傳入?yún)?shù)組織不同的連接字符串,然后打開數(shù)據(jù)庫連接。現(xiàn)在,在mblPublic模塊中連接數(shù)據(jù)庫的功能已經實現(xiàn),下面添加在數(shù)據(jù)庫操作時比較常用的一些函數(shù)。RealString——替換字符串的單引號在用SQL語言存儲字符型數(shù)據(jù)時,單引號成為我們最大的天敵,如果在字符串中存在單引號,則可能會意外截斷字符,造成SQL語法錯誤。解決辦法是用兩個單引號來表示一個單引號。MaxID——替換字符串的單引號MaxID函數(shù)用來獲取表中當前主鍵的最大值,這個函數(shù)用于在數(shù)據(jù)庫中添新記錄后,立即獲取剛才添加記錄的主鍵值。ExistByID——判斷記錄是否存在ExistByID函數(shù)用于給定一條記錄的ID號后,查看數(shù)據(jù)庫中是否存在此記錄。GetValueByID——根據(jù)主鍵名獲取某以字段的值這個函數(shù)根據(jù)輸入的ID來查找對應的記錄,如果找到一條記錄,則根據(jù)輸入的字段名返回對應值。比如知道客戶ID后,可以調用此函數(shù)來獲取客戶名。4.2客戶管理主界面設置4.2.1設計主窗體控件布局為了對主界面的設計,首先我們對主窗體的控件的屬性,圖片列表的關鍵字,工具條的按鈕等做了些設置。按表4.1所示的設置為主窗體添加控件(已有控件只需設置屬性即可)。表4.1主窗體及其控件屬性的設置控件名稱屬性屬性取值功能frmMain(Form)Caption客戶管理系統(tǒng)系統(tǒng)主窗體imlViewSIcon(LisView)ImageHeight16樹形控件和列表框小圖標所使用的圖片ImageWidth16imlViewBIcon(ImageList)ImageHeight32列表框大圖標和工具條所使用的圖片ImageWidth32tbToolBar(ToolBar)AlignvbAlignBottom主窗體中的工具條StyletbrFlatTextAlignmenttbrTextAlignBottomImageListimlViewBIcontvTreeView(TreeView)LineStletvwRootLines顯示客戶類型樹Style7ImageListimlViewSIconlvListView(ListView)FullRowSlelctTrue顯示客戶列表GridLinesTrueViewlvwReportIconimlViewBIconSmallIconimlViewSIcon4.2.2圖片列表的關鍵字設置按上述給窗體添加完控件并設置屬性后,下面是對系統(tǒng)中要用到的圖片做的初始化設置。對兩個ImageList的圖片選擇不做限制,但要求:imlViewSIcon必須包“group”、“group2”、“boy”、“girl”、“sboy”、“sgirl”等關鍵字;imlViewSIcon必須包括“boy”、“girl”、“bboy”、“bgirl”、“group”、“add”、“modify”、“del”“info”、“search”、“warn”、“setting”、“IstView”、“exit”等關鍵字。4.2.3給工具條添加按鈕為了使用的方便,我們在工具條中設計了一下常用的按鈕。具體設計細節(jié)見表4.2-4.4所示:表4.2工具條按鈕的設置按鈕標題關鍵字樣式圖像客戶類型tbnClientType5-tbrDropdowngroup3-tbrSeperator添加客戶tbnAddClient0-tbrDefualtadd修改客戶tbnModifyClient0-tbrDefualtmodify刪除客戶tbnDelClient0-tbrDefualtdel客戶信息TbnClientInfo0-tbrDefualtinfo查找客戶tbnSearchClient0-tbrDefualtsearch3-tbrSeperator今日提醒tbnWarn0-tbrDefualtwarn提醒設置tbnWarnsetting0-tbrDefaultsettingtbnViewStyle3-tbrSeperator顯示方式tbnViewStyle5-tbrDropdownIstView3-tbrSeperator退出系統(tǒng)tbnExit0-tbrDefault表4.3客戶類型按鈕的按鈕菜單設計文本關鍵字添加客戶類型tbnAddClientType修改客戶類型tbnModifyClientType刪除客戶類型tbnDelClientType表4.4顯示方式按鈕的按鈕菜單設計文本關鍵字大圖標大圖標小圖標小圖標列表列表詳細資料詳細資料添加菜單下面是主界面編輯的最后一步,在主界面的界面設計模式下,打開“菜單編輯器”對話框,按照表4.5所示的設置為主界面添加菜單,其他屬性取值默認值。表4.5主界面菜單設置標題名稱級別系統(tǒng)管理mnuAdmin1&X退出系統(tǒng)mnuExit2客戶類型管理mnuClientType1&A添加客戶類型mnuAddClientType2&M修改客戶類型mnuModifyClientType2&D刪除客戶類型mnuDelClientType2客戶管理mnuClient1&A添加客戶mnuAddClient2&M修改客戶mnuModifyClient2&D刪除客戶mnuDelClient2mnuSplit12&S查找客戶mnuSearchClient2MnuSplit22&I查看客戶詳細資料mnuClientInfo2提醒管理mnuWarning1&T查看今日提醒mnuShowWarn2MnuSplitter32&S查看提醒設置mnuWarnSetting24.3主界面編輯狀態(tài)預覽按照以上的要求設置后,主界面frmMain的設計如圖4.1所示。圖4.1客戶管理系統(tǒng)主界面設計視圖4.4客戶信息管理模塊此系統(tǒng)是由我們小組的三位同學共同組合成的,本人是負責客戶信息管理這個模塊,以下是本人對這個模塊具體的如何實現(xiàn)??蛻粜畔⒐芾砟K實現(xiàn)以下的功能:(1)添加客戶信息;(2)修改客戶信息;(3)刪除客戶信息(5)查找客戶信息;(6)查看客戶信息。在本系統(tǒng)中,客戶的關鍵信息是用列表控件顯示在主窗體的右側的,但客戶信息的添加、修改、查看都需要新的窗口來支持,因為這幾個窗口的控件布局完全相同,所以只需要設計一個對話框,在對話框內設一個標志來標識是哪種狀態(tài)即可。下面首先對這個對話框進行界面設計。4.4.1客戶信息管理對話框界面設計1.初步設計客戶信息管理對話框添加一個對話框窗體,并向對話框中添加控件并設計屬性,具體設計如表4.6。表4.6客戶信息管理對話框中控件設置控件名稱屬性屬性取值功能frmClient(Form)Caption客戶信息管理客戶信息管理對話框cmdModifyInfo(ListView)Caption修改由查看狀態(tài)轉入修改狀態(tài)的按鈕SSTabClientStypel0-ssStyleTabbedDialog分頁顯示客戶信息TabOrientation0-ssTabOrientationTop再對SSTab控件添加4個選項卡(即屬性頁),選項卡標題分別設置為:“客戶基本信息”、“客戶其他信息”、“合作記錄”、“客戶評價”。2.創(chuàng)建客戶基本信息屬性頁按表4.7所示的設置向客戶基本信息屬性頁添加控件并設置屬性。表4.7客戶基本信息屬性頁控件設置控件名稱屬性屬性取值功能frabaseInfo(Frame)Caption必填信息必填信息容器fracomInfo(Frame)Caption其他通訊方式其他通訊方式cboSex(ComboBox)Style2-DropdownList客戶性別組合框List男女cboClientType(ComboBox)Style2-DropdownList客戶類型組合框控件布局完畢后,客戶基本信息對話框的設計界面如圖4.2所示。圖4.2客戶基本信息對話框設計界面3.創(chuàng)建客戶其他信息屬性頁按表4.8所示的設置向客戶其他信息屬性頁添加控件并設置屬性。表4.8“客戶其他信息”屬性頁控件設置控件名稱屬性屬性取值功能txtLikes(TestBox)MultiLineTrue客戶喜好txtHte(TestBox)ScrollBars2-Vertical客戶厭惡txtRemark(TestBox)MaxLength255客戶備注控件布局完畢后,客戶其他信息屬性頁設計界面如圖4.3所示。圖4-3客戶其他信息屬性頁設計界面4.創(chuàng)建客戶合作記錄屬性頁按表4.9所示的設置為客戶合作記錄屬性頁添加控件。表4.9客戶合作記錄屬性頁控件設置控件名稱屬性屬性取值功能fraCoop(Frame)Caption合作記錄合作信息容器lvListView(ListView)FullRowSelectTrue顯示合作記錄列表GridLinesTrueViewIvwReportcmdAdd(CommandButton)Caption添加客戶喜好cmdModify(TestBox)Caption修改客戶喜好cmdDel(TestBox)Caption刪除客戶喜好cmdCoopInfo(TestBox)Caption查看客戶喜好控件布局完畢后,客戶合作記錄屬性頁設計界面如圖4.4所示。圖4.4客戶合作記錄屬性頁設計界面5.創(chuàng)建客戶評價屬性頁按表4-10所示的設置再客戶評價屬性頁添加控件??丶Q屬性屬性取值功能fraScore(Frame)Caption客戶評價客戶評價容器SldImportance(Slider)sldFriendly(Slider)sldSatisfaction(Slider)Max255重要度友好度滿意度Value50TickStyle3-sldNoTicks客戶評價屬性頁設計界面如圖4.5所示。圖4.5客戶評價屬性頁設計界面現(xiàn)在,客戶信息管理對話框的全部界面已設計完畢。4.4.2客戶信息管理對話框代碼設計添加成員變量進入客戶信息管理對話框的代碼編輯模式,添加如下的成員變量:PrivateokAsBoolean‘確定按了oK還是cancel按鈕PrivatemvarViewTypeAsgxcViewType‘顯示類新,即表示當前是添加、查看、修改PrivateobjClientAscClient‘存儲客戶信息對象PrivatemvarBirthdayWarnAsBoolean‘標實是否啟用生日提醒添加屬性‘顯示類型,即表示當前是添加、查看、修改PublicPropertyGetViewType()AsgxcViewTypeViewType=mvarViewTypeEndProperty‘標識是否啟用生日提醒PublicPropertyGetShowBirthdayWarn()AsBooleanShowBirthdayWarn=mvarBirthdayWarnEndProperty添加方法SetStatus函數(shù)——設置對話框狀態(tài)功能:設置對話框的顯示狀態(tài),并指定控件的默認值。參數(shù)設計:無。設計思想:設置控件默認值->根據(jù)對話框狀態(tài)設置控件顯示狀態(tài)。根據(jù)以上思想,可以編寫出類似以下的代碼。SetStatus函數(shù)的實現(xiàn)過程'根據(jù)對話框的顯示方式來確定顯示的數(shù)據(jù)PrivateSubSetStatus()DimctlAsControlDimintBorderStyleAsIntegerDimlngbkColorAsLongDimboolLockedAsBoolean'默認的文本框風格設置intBorderStyle=1'3DlngbkColor=&H80000009boolLocked=FalseOKButton.Visible=TrueCancelButton.Caption="取消"cmdModifyInfo.Visible=FalseSetDefaultValueSelectCasemvarViewTypeCasevtadd'添加客戶'操作按鈕可用性設置cmdModify.Enabled=FalsecmdAdd.Enabled=FalsecmdDel.Enabled=FalsecmdCoopInfo.Enabled=FalseOKButton.Caption="確定"Me.Caption="添加客戶"CasevtModify'修改客戶信息OKButton.Caption="保存"Me.Caption="修改客戶信息"CasevtInfo'查看客戶信息'只讀的文本框風格設置intBorderStyle=0'3DlngbkColor=&H8000000FboolLocked=TruecmdModifyInfo.Visible=TrueOKButton.Visible=FalseCancelButton.Caption="關閉"Me.Caption="查看客戶信息"CaseElseEndSelect'根據(jù)顯示狀態(tài)不同設置文本框風格ForEachctlInControlsIf(TypeOfctlIsTextBox)Thenctl.BorderStyle=intBorderStylectl.BackColor=lngbkColorctl.Locked=boolLockedElseIf(TypeOfctlIsComboBox)Or_(TypeOfctlIsDTPicker)Or_(TypeOfctlIsCheckBox)Or_(TypeOfctlIsSlider)Thenctl.Enabled=NotboolLockedEndIfNextEndSubSaveValue過程——保存用戶輸入數(shù)據(jù)功能:將輸入信息保存到客戶信息對象中,以便通過RetriveClient函數(shù)傳出。設計思路:這個過程沒有太復雜的技巧或原理,只需要將控件中的信息報訊到客戶信息對象ojbClient中。根據(jù)以上思想,編寫類似以下的代碼。SaveValue過程PrivateSubSaveValue()WithobjClient.Name=Trim(txtName.Text)'客戶名稱.Age=Val(txtAge.Text)'客戶年齡.Sex=IIf(cboSex.ListIndex=0,Male,Female)'性別.TypeID=cboClientType.ItemData(cboClientType.ListIndex)'客戶類型Id.Mobile=Trim(txtMobile.Text)'手機.Email=Trim(txtEmail.Text)'E-mail.OfficePhone=Trim(txtOfficePhone.Text)'辦公室電話.HomePhone=Trim(txtHomePhone.Text)'宅電.Fax=Trim(txtFax.Text)'傳真.HomeAdr=Trim(txtHomeAdr.Text)'家庭住址.MailAdr=Trim(txtMailAdr.Text)'通訊地址.ZipCode=Trim(txtZipCode.Text)'郵編.Birthday=dtpBirthday.Value'生日.BirthdayWarn=chkBirthdayWarn.Value'是不啟用生日提醒.Work=Trim(txtWork.Text)'職業(yè).Position=Trim(txtPosition.Text)'職位.Company=Trim(txtCompany.Text)'公司.CompanySite=Trim(txtCompanySite.Text)'公司網址.SelfSite=Trim(txtSelfSite.Text)'個人網址.Likes=Trim(txtLikes.Text)'喜好.Hate=Trim(txtHate.Text)'厭惡.Remark=Trim(txtRemark.Text)'備注.Importance=sldImportance.Value'重要度.Friendly=sldFriendly.Value'友好度.Satisfaction=sldSatisfaction.Value'滿意度EndWithmvarBirthdayWarn=IIf(chkBirthdayWarn.Value=0,False,True)EndSub4.4.3添加客戶信息在客戶信息管理對話框frmClient中關于客戶信息管理的代碼編寫完畢后,可以回到主窗體frmMain中為客戶管理的具體操作添加處理函數(shù)了。設計思想:調用客戶信息管理窗體frmClien->接收用戶輸入信息->調用CClient.AddNew->顯示操作結果。代碼如下:'添加客戶PrivateSubAddClient()DimobjClientAscClient'顯示添加客戶對話框并獲取數(shù)據(jù)IffrmClient.RetriveClient(objClient,vtadd,GetID(tvTreeView.SelectedItem.Key))_=FalseThenExitSub'更新數(shù)據(jù)庫IfobjClient.AddNew=TrueThenAddClientToLvwobjClient,lvListView,FalseElseMsgBox"錯誤"EndIfEndSub4.4.4修改客戶信息設計思想:獲取選中的客戶信息->調用添加客戶信息對話框frnClient顯示數(shù)據(jù)->接收用戶輸入->調用CClient.Update->顯示操作結果。實現(xiàn)代碼如下:'修改客戶信息PrivateSubModifyClient()DimobjClientAscClientDimobjWarnAsNewCWarning'從客戶列表中獲取選中客戶信息IfGetClientFromControl(lvListView,objClient)=FalseThenExitSub'顯示修改客戶信息對話框IffrmClient.RetriveClient(objClient,vtModify)=FalseThenExitSub'更新數(shù)據(jù)庫IfobjClient.Update=TrueThenobjWarn.ClientID=objClient.IDobjWarn.ShowDate=objClient.Birthday'如果選擇生日提醒,則在數(shù)據(jù)庫中加入提醒規(guī)則objWarn.ShowBirthdayWarn=frmClient.ShowBirthdayWarnRefreshListViewElseMsgBox"錯誤"EndIfSetobjWarn=NothingSetobjClient=Nothing4.4.5刪除客戶信息通過在frmMaind的代碼中加入過程DelClient來實現(xiàn)客戶信息的刪除。設計思想:提示確認->獲取選中的客戶信息->調用CClient.Delete->顯示結果。實現(xiàn)代碼如下:'刪除客戶PrivateSubDelClient()DimobjClientAscClientIfMsgBox("確定要刪除客戶嗎?",vbQuestion+vbYesNo+vbDefaultButton2)=vbNoThenExitSub'從客戶列表中獲取選中的客戶信息IfGetClientFromControl(lvListView,objClient)=FalseThenExitSub'從數(shù)據(jù)庫中刪除客戶,并從界面中也刪除IfobjClient.Delete=TrueThenlvListView.ListItems.Remove(lvListView.SelectedItem.Index)ElseMsgBox"錯誤"EndIfEndSub4.4.6查看客戶信息通過在frmMaind的代碼中加入過程ClientInfo來實現(xiàn)客戶信息的瀏覽功能。設計思想:獲取選中的客戶信息->調用添加客戶信息窗體frnClient顯示數(shù)據(jù)->如果轉到了修改狀態(tài),則調用CClient.Update->顯示操作結果。實現(xiàn)代碼如下:'查看客戶信息PrivateSubClientInfo()DimobjClientAscClientDimobjWarnAsNewCWarning'獲取客戶列表中選擇項的客戶信息IfGetClientFromControl(Me.lvListView,objClient)=FalseThenExitSub'顯示客戶信息界面IffrmClient.RetriveClient(objClient,vtInfo)=FalseThenExitSub'如果在查看客戶信息時選擇修改信息,則進一步保存修改內容IffrmClient.ViewType=vtModifyThenIfobjClient.Update=TrueThenobjWarn.ClientID=objClient.IDobjWarn.ShowDate=objClient.BirthdayobjWarn.ShowBirthdayWarn=frmClient.ShowBirthdayWarnRefreshListViewElseMsgBox"錯誤"EndIfEndIfSetobjWarn=NothingSetobjClient=NothingEndSub4.4.7查找客戶設計思想:調用查找客戶對話框frnSearch->取得查找條件->調用CClient.Find->顯示結果。實現(xiàn)代碼如下:'查找客戶PrivateSubSearchClient()DimobjClientsAsNewCClients'顯示查詢對話框IffrmSearch.RetriveSearch()=FalseThenExitSub'返回查詢結果objClients.Find,frmSearch.SearchName,frmSearch.TypeID'將查詢結果顯示到客戶列表中ClientsToListviewobjClients,lvListViewEndSub
第5章軟件測試測試是軟件開發(fā)時期的最后一個階段,也是軟件質量保證中至關重要的一個環(huán)節(jié)。5.1測試的目的與任務測試的真正目的是“為了發(fā)現(xiàn)程序中的錯誤”。這和某些人通常想象的“測試是為了表明程序是正確的”,“成功的測試是沒有發(fā)現(xiàn)錯誤的測試”等等是完全相反的。正確認識測試的目標是十分重要的,測試目標決定了測試方案的設計。如果為了表明程序是正確的而進行測試,就會設計一些不易暴露錯誤的測試方案;相反,如果測試是為了發(fā)現(xiàn)程序中的錯誤,就會力求設計出最能暴露錯誤的測試方案。5.2測試的方法測試任何產品都有兩種方法:如果已經知道了產品應該具有的功能,可以通過測試來檢驗是否每個功能都能正常使用;如果知道產品內部工作過程,可以通過測試來檢驗產品內部動作是否按照規(guī)格說明書的規(guī)定正常進行。前一個方法成為黑盒測試,后一個方法稱為白盒測試法。對于軟件測試而言,黑盒測試法把程序看成一個黑盒子,完全不考慮程序的內部結構和處理過程。也就是說,黑盒測試是在程序接口進行的測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆中建七局秋季校園招聘正式啟動“七”待有你共建未來筆試參考題庫附帶答案詳解
- 個人經營借款合同范本
- 動車輪椅租賃合同范本
- 產品代銷售合同范本
- mcn商務推廣合同范本
- 借款續(xù)約合同范本
- 傳媒行業(yè)培訓合同范本
- 武侯衛(wèi)生間補漏施工方案
- 保利地產施工合同范本
- 專利免責合同范例
- 《駱駝祥子》通讀指導手冊
- 股東會會議系列文件(通知、議程、簽到表、表決票、決議)
- 非法占用農田建房舉報信范文
- 伐樹工程施工合同范本
- 數(shù)據(jù)挖掘(第2版)PPT全套完整教學課件
- 工程開工報告(5篇)
- 配電箱試驗項目
- 運動技能學習與控制課件第一章運動技能學習與控制概述
- 溫室大棚花卉苗圃采暖方案空氣源熱泵
- BEC商務英語高級考試歷年真題
- 初二地理中考復習備考策略與計劃
評論
0/150
提交評論