客戶關(guān)系管理系統(tǒng)畢業(yè)論文_第1頁
客戶關(guān)系管理系統(tǒng)畢業(yè)論文_第2頁
客戶關(guān)系管理系統(tǒng)畢業(yè)論文_第3頁
客戶關(guān)系管理系統(tǒng)畢業(yè)論文_第4頁
客戶關(guān)系管理系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、摘 要在對目前市面上的客戶管理系統(tǒng)(crm)的廣泛調(diào)查和研究之后,發(fā)現(xiàn)很多市面上的客戶管理系統(tǒng)大多都是以產(chǎn)品為中心,忽略了客戶管理中最重要的部分客戶關(guān)系。隨著市場經(jīng)濟的不斷發(fā)展,客戶管理的重要性體現(xiàn)的越發(fā)明顯。企業(yè)要想生存發(fā)展,就必須與與之息息相關(guān)的客戶建立起良好的關(guān)系,不斷發(fā)展新客戶,以企業(yè)高質(zhì)量的產(chǎn)品、優(yōu)質(zhì)的服務、良好的資信吸引新客戶;經(jīng)常維系與老客戶的關(guān)系,以規(guī)范的客戶管理方式、溫馨的客戶關(guān)懷、高效的客戶服務來提升老客戶的忠誠度。由此,客戶管理系統(tǒng)應運而生。關(guān)鍵詞 crm,客戶關(guān)系管理系統(tǒng),vb,數(shù)據(jù)庫目 錄摘 要4目 錄5前 言61 系統(tǒng)分析71.1 需求分析71.2 可行性分析72

2、總體設(shè)計82.1 項目規(guī)劃82.2系統(tǒng)功能結(jié)構(gòu)圖93 系統(tǒng)設(shè)計103.1 設(shè)計目標103.2 開發(fā)及運行環(huán)境103.3 數(shù)據(jù)庫設(shè)計113.3.1數(shù)據(jù)庫概要說明113.3.2 數(shù)據(jù)表結(jié)構(gòu)114 主要功能模塊設(shè)計124.1公共模塊設(shè)計(mdl_link模塊)124.2 主窗體設(shè)計134.2.1窗體設(shè)計134.2.2代碼設(shè)計164.3 客戶呼叫中心184.3.1 窗體設(shè)計184.3.2 代碼設(shè)計204.4 客戶投訴214.4.1窗體設(shè)計224.4.2代碼設(shè)計224.5 客戶投訴滿意程度分析244.5.1窗體設(shè)計244.5.2代碼設(shè)計254.6 客戶信息查詢264.6.1窗體設(shè)計265 總 結(jié)28致

3、謝29參考文獻30附錄1 數(shù)據(jù)表31附錄236前 言在全球一體化、企業(yè)互動和以internet為核心的時代,企業(yè)面臨著如何發(fā)展?jié)撛诳蛻?,如何將社會關(guān)系資源變?yōu)槠髽I(yè)的銷售和發(fā)展資源的一系列難辦棘手的問題。在上述背景下,客戶管理系統(tǒng)應運而生。本系統(tǒng)本著把握客戶多樣化和個性化的特點;以最快的速度響應客戶需求;吸引新客戶,留住老客戶為原則。即從過去的以產(chǎn)品(product-centric)為中心的管理策略轉(zhuǎn)向以客戶為中心的(customer-centric)管理理念。系統(tǒng)旨在改善企業(yè)與客戶之間的關(guān)系,建立新型的運營機制。本系統(tǒng)以企業(yè)級的整體客戶管理為解決方案,幫助企業(yè)建立統(tǒng)一的客戶資源、拓展銷售渠道、

4、尋求最佳市場方式、規(guī)范企業(yè)銷售流程、提供科學分析方法,建立持久的客戶體系。其大容量客戶數(shù)據(jù)處理能力,讓您的企業(yè)從多渠道收集信息,快速發(fā)現(xiàn)核心客戶和潛在伙伴,進而給企業(yè)帶來無限的利潤。以客戶為中心的理念在國外興起于20世紀50年代,當時很多企業(yè)寄希望于通過改進技術(shù)、壓縮生產(chǎn)周期、改善內(nèi)部資源管理來提高生產(chǎn)增長率和利潤,但事實上見效甚微。這樣企業(yè)開始從強調(diào)降低經(jīng)營成本的供應方發(fā)展策略轉(zhuǎn)向了需求方策略。所謂需求方策略就是指與客戶聯(lián)系更加緊密,從客戶關(guān)系方面挖掘新能源的策略,crm應運而生。所不同的是,現(xiàn)在計算機可以幫助人們實現(xiàn)這些看似并不復雜而實際操作起來非常繁瑣的工作。試想一下,當我們需要查找一個

5、客戶的電話號碼時,只需敲幾下鍵盤,就可以看到客戶的詳細資料(包括姓名、公司名稱、電話、e-mail等),所有這些都是一個完善的客戶管理系統(tǒng)所能完成的。 1 系統(tǒng)分析1.1 需求分析根據(jù)市場的需求,要求系統(tǒng)具有以下功能:q 由于該系統(tǒng)的使用對象較多,要求有嚴密的權(quán)限管理。q 具有數(shù)據(jù)備份及數(shù)據(jù)恢復的功能,確保系統(tǒng)的安全性。q 方便的全方位的數(shù)據(jù)查詢。q 強大的報表打印功能。q 在相應的權(quán)限下,可以刪除或修改數(shù)據(jù)。1.2 可行性分析隨著科技的發(fā)展,競爭也越發(fā)激烈、殘酷,企業(yè)傳統(tǒng)的管理方式對于現(xiàn)今社會的競爭已明顯感覺到力不從心。客戶作為市場的最大資源,已成為市場營銷核心,誰爭取到了最多的客戶,誰就取

6、的了最大的成功,對客戶的把握將最終決定企業(yè)的命運。客戶關(guān)系管理系統(tǒng)正是在這種需求下經(jīng)過深入的市場調(diào)研和專家系統(tǒng)化的指導應運而生。系統(tǒng)具有完善的基礎(chǔ)信息維護和客戶信息維護,強大的數(shù)據(jù)查詢及圖表分析功能,基本能夠滿足中小型企業(yè)的需要。2 總體設(shè)計2.1 項目規(guī)劃客戶管理系統(tǒng)是一個非常有特點的管理軟件,系統(tǒng)由基礎(chǔ)信息維護、客戶信息維護、客戶服務、信息查詢、數(shù)據(jù)管理、輔助工具、系統(tǒng)管理和幫助信息等幾個功能模塊組成,規(guī)劃系統(tǒng)功能模塊如下:q 基礎(chǔ)信息維護模塊基礎(chǔ)信息維護模塊主要包括區(qū)域信息設(shè)置、企業(yè)性質(zhì)設(shè)置、企業(yè)類型設(shè)置、企業(yè)資信設(shè)置、客戶級別設(shè)置和客戶滿意程度設(shè)置6部分。q 客戶信息維護模塊客戶信息維

7、護模塊主要包括客戶信息、聯(lián)系人信息、業(yè)務往來、客戶呼叫中心和發(fā)送郵件5個部分。q 客戶服務模塊客戶服務模塊主要包括客戶反饋、客戶投訴、客戶反饋滿意程度分析和客戶投訴滿意程度分析4個部分。q 信息查詢模塊信息查詢模塊主要包括客戶信息查詢、聯(lián)系人信息查詢、客戶反饋滿意程度查詢、客戶投訴滿意程度查詢、客戶反饋查詢、客戶投訴查詢和國內(nèi)城市區(qū)號郵編查詢7個部分。q 數(shù)據(jù)管理模塊數(shù)據(jù)管理模塊主要包括客戶信封打印、客戶信息列表、聯(lián)系人信息列表和省份郵編信息打印4個部分。q 輔助工具模塊輔助工具模塊包括調(diào)用word、調(diào)用excel、計算器、登錄internet和工作業(yè)務備忘5個部分。q 系統(tǒng)管理模塊系統(tǒng)管理模

8、塊主要包括操作員設(shè)置、密碼修改、權(quán)限設(shè)置、系統(tǒng)數(shù)據(jù)清理、數(shù)據(jù)備份與恢復5個部分。q 幫助信息模塊幫助信息模塊主要包括本單位信息、關(guān)于、幫助等3個部分。2.2系統(tǒng)功能結(jié)構(gòu)圖圖1 客戶管理系統(tǒng)功能結(jié)構(gòu)圖3 系統(tǒng)設(shè)計3.1 設(shè)計目標本系統(tǒng)是根據(jù)中小企業(yè)的實際需求而開發(fā)的,完全能夠?qū)崿F(xiàn)企業(yè)對客戶的自動化管理,通過本系統(tǒng)可以達到以下目標:q 系統(tǒng)運行穩(wěn)定,安全可靠。q 界面設(shè)計美觀,人機交互界面友好。q 信息查詢靈活、方便、快捷、準確,數(shù)據(jù)存儲安全可靠。q 滿足鍵盤和鼠標的雙重操作,完全支持回車鍵。q 采用多種方式查詢數(shù)據(jù)。q 操作員可以隨時修改自己的口令。q 對用戶輸入的數(shù)據(jù),系統(tǒng)進行嚴格的數(shù)據(jù)檢驗,

9、盡可能排除人為的錯誤。q 數(shù)據(jù)保密性強,為每個用戶設(shè)置相應的權(quán)限級別。q 強大的圖表分析功能。q 收錄了全國各省市縣的郵政編碼及區(qū)號信息等二千多條記錄。q 不僅采用了傳統(tǒng)的數(shù)據(jù)報表打印方式,還可以向word中打印輸出。3.2 開發(fā)及運行環(huán)境系統(tǒng)開發(fā)平臺:visual basic 6.0數(shù)據(jù)庫管理系統(tǒng)軟件:sql server 2000運行平臺:windows xp/windows 2000/windows 98分辨率:最佳效果 800*6003.3 數(shù)據(jù)庫設(shè)計本系統(tǒng)采用sql server 2000 數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名為db_client,數(shù)據(jù)庫db_client中包括18個數(shù)據(jù)表。下面分別

10、給出數(shù)據(jù)庫概要說明和數(shù)據(jù)表的結(jié)構(gòu)。3.3.1數(shù)據(jù)庫概要說明如圖2所示的即為本系統(tǒng)中數(shù)據(jù)庫中的數(shù)據(jù)表的樹形結(jié)構(gòu)圖,該數(shù)據(jù)表樹型結(jié)構(gòu)圖包含系統(tǒng)所有數(shù)據(jù)表??梢郧逦胤磻獢?shù)據(jù)庫信息。圖2 數(shù)據(jù)庫概要說明3.3.2 數(shù)據(jù)表結(jié)構(gòu)由于篇幅所限,關(guān)于數(shù)據(jù)庫中的數(shù)據(jù)表請參見附錄二4 主要功能模塊設(shè)計4.1公共模塊設(shè)計(mdl_link模塊)通過使用模塊可以減少程序的代碼量。在本系統(tǒng)中,將通用的代碼(如:數(shù)據(jù)庫連接、toolbar控件的按鈕設(shè)置代碼以及公共的全局變量等)都集中放置在一個數(shù)據(jù)模塊mdl_link中,節(jié)省了代碼量,提高了編程效率。數(shù)據(jù)模塊mdl_link中定義的公共變量如下所示:public pub

11、licstr as string 定義公共變量用于adodc控件的數(shù)據(jù)連接,使程序模塊化public sql as string 定義字符變量存儲sql語句public tb as string 存儲數(shù)據(jù)表名稱public province as string 存儲省份名稱public myflag as boolean 標識數(shù)據(jù)模塊mdl_link中提供連接數(shù)據(jù)庫的程序代碼如下所示:數(shù)據(jù)連接模塊public function cnn() as adodb.connection 定義函數(shù) set cnn = new adodb.connection 打開數(shù)據(jù)連接cnn.open provide

12、r=sqloledb.1;persist security info=false;user id=sa;initial catalog=db_client publicstr = provider=sqloledb.1;persist security info=false;user id=sa;initial catalog=db_clientend function 數(shù)據(jù)模塊mdl_link中關(guān)于toolbar控件設(shè)置按鈕狀態(tài)的通用代碼如下所示:定義設(shè)置toolbar控件上按鈕狀態(tài)的函數(shù) public function tlbstate(tlb as toolbar, state as b

13、oolean) with tlb if state = true then 如果狀態(tài)變量為true .buttons(1).enabled = false : .buttons(2).enabled = false .buttons(3).enabled = false .buttons(6).enabled = false .buttons(4).enabled = true .buttons(5).enabled = true else 如果狀態(tài)變量為false .buttons(1).enabled = true .buttons(2).enabled = true .buttons(3

14、).enabled = true .buttons(6).enabled = true .buttons(4).enabled = false .buttons(5).enabled = false end if end withend function4.2 主窗體設(shè)計主窗體是顯示系統(tǒng)主要操作功能的面板,在系統(tǒng)主窗體的狀態(tài)欄中,可以顯示網(wǎng)址、當前的操作員、當前系統(tǒng)的日期、時間等信息,還可以通過菜單或單擊窗體左側(cè)的樹狀列表以及右側(cè)的功能列表來控制其他功能子窗體,并且根據(jù)不同的操作員賦予相應的操作權(quán)限。系統(tǒng)主窗體的運行結(jié)果如圖3所示。圖3 系統(tǒng)主窗體的運行結(jié)果4.2.1窗體設(shè)計(1)在“工程”中

15、新建一個窗體,將窗體的“名稱”設(shè)置為frm_main,maxbutton屬性設(shè)置為false,caption屬性設(shè)置為“客戶管理系統(tǒng)”,startupposition屬性設(shè)置為2-屏幕中心。(2)利用vb提供的菜單編輯器設(shè)計菜單。從“工具”菜單上,選取“菜單編輯器”命令即可打開菜單編輯器,也可以在“工具欄”上單擊【菜單編輯器】按鈕。用菜單編輯器可以創(chuàng)建應用程序的菜單,在已有的菜單上可以增加新的菜單項,或者修改和刪除已有的菜單和菜單項。通過菜單編輯器建立的菜單如圖3所示,在菜單編輯器對話框中設(shè)計菜單時的界面如圖4所示。| 圖4 菜單編輯器本系統(tǒng)的菜單設(shè)置如圖5所示。圖5 客戶管理系統(tǒng)菜單設(shè)置(3

16、)向窗體上添加1個控件,設(shè)置其align屬性設(shè)置為1-vbaligntop(默認設(shè)置)。1個imagelist控件,并將其與toolbar控件相連,同時添加按鈕和圖片。(4)將toolbar控件與imagelist控件相連。(5)向窗體上添加1個treeview控件并將其與imagelist控件連接。(6)向窗體中添加1個statusbar控件,在statusbar控件上單擊鼠標右鍵選擇“屬性”,在彈出的屬性頁對話框中選擇“窗格”選項卡,如圖6所示,在圖中單擊【插入窗格】按鈕,可以在statusbar控件中添加窗格,同時可以設(shè)置添加后窗格的文本內(nèi)容、工具欄提示文本信息和寬度等信息,如果想刪除窗

17、格,則通過“索引”旁邊的箭頭,選中要刪除的窗格,然后單擊【刪除窗格】按鈕即可刪除。圖6 設(shè)置statusbar控件中的窗格(7)向窗體上添加listview控件。4.2.2代碼設(shè)計通過主窗體當中的菜單項,可以控制系統(tǒng)中各個子窗體,現(xiàn)以“輔助工具”菜單為例,介紹調(diào)用系統(tǒng)子窗體的代碼。private sub menu6_click(index as integer)select case index 輔助工具case 0 調(diào)用word shellexecute me.hwnd, open, winword.exe, , 1, 5case 1 調(diào)用excel shellexecute me.hwnd

18、, open, excel.exe, , 1, 5case 2 調(diào)用計算器 shellexecute me.hwnd, open, calc.exe, , 1, 5case 3 登錄internet shellexecute me.hwnd, open, , 1, 1, 5case 5 工作備忘 load frm_fzgj_gzbw frm_fzgj_gzbw.show 1end selectend sub在窗體啟動的時候,首先查看工作備忘表(tb_client_gzbw)中是否有要提醒的信息,如果有,則提示相應的信息,否則直接加載窗體。其實現(xiàn)的關(guān)鍵代碼下:dim rs1 as new ado

19、db.recordset 定義數(shù)據(jù)集對象打開數(shù)據(jù)連接 rs1.open select * from tb_client_gzbw where gzbw_txrq= + str(date) + , cnn, adopenkeysetif rs1.recordcount 0 then 如果記錄數(shù)大于零 if msgbox(今日重要工作: & trim(rs1.fields(gzbw_bt) & ,是否查看詳細信息?, 4, 信息提示) = vbyes then 將sql語句賦給sql變量 sql = select * from tb_client_gzbw where gzbw_txrq= + s

20、tr(date) + 顯示工作備忘窗體 load frm_fzgj_gzbw frm_fzgj_gzbw.show 1 end ifend ifrs1.close 關(guān)閉數(shù)據(jù)對象在程序運行時,可通過單擊toolbar控件上的按鈕,來調(diào)用相應的子功能窗體,實現(xiàn)增加、刪除、修改和查找功能。其實現(xiàn)的代碼如下:private sub toolbar1_buttonclick(byval button as mscomctllib.button)select case button.indexcase 1 load frm_khxxwh_kh 調(diào)用客戶信息窗體 frm_khxxwh_kh.show 1ca

21、se 2 load frm_khxxwh_lxr 調(diào)用聯(lián)系人信息窗體 frm_khxxwh_lxr.show 1case 3 load frm_khxxwh_yjfs 調(diào)用發(fā)送郵件窗體 frm_khxxwh_yjfs.show 1case 4 load frm_xxcx_khxxcx 調(diào)用客戶信息查詢窗體 frm_xxcx_khxxcx.show 1case 7 end 關(guān)閉退出end selectend sub在程序運行時,當用鼠標單擊treeview控件中的節(jié)點時,在右邊的listview控件中就可以顯示該節(jié)點下的相應的子功能圖標。該功能的實現(xiàn)是通過在treeview1控件的nodecli

22、ck事件實現(xiàn)的。下面以“基礎(chǔ)信息維護”菜單為例介紹其主要實現(xiàn)的方法。 if treeview1.selecteditem.key = 基礎(chǔ)信息維護 then listview1.listitems.clear 清除listview中的項目 向listview控件中添加項目并設(shè)置圖片 set itmx = listview1.listitems.add(, , 區(qū)域信息設(shè)置, 3) set itmx = listview1.listitems.add(, , 企業(yè)性質(zhì)設(shè)置, 4) set itmx = listview1.listitems.add(, , 企業(yè)類型設(shè)置, 6) set itmx

23、 = listview1.listitems.add(, , 企業(yè)資信設(shè)置, 5) set itmx = listview1.listitems.add(, , 客戶級別設(shè)置, 7) set itmx = listview1.listitems.add(, , 客戶滿意程度設(shè)置, 8) exit sub 退出本事件 end if在程序運行時,statusbar控件中的時間顯示的是當前系統(tǒng)的時間,并跟隨系統(tǒng)時間發(fā)生變化。其實現(xiàn)方式是:向窗體中添加時鐘控件,并將其enabled屬性設(shè)置為true,interval屬性設(shè)置為60。并添加如下的代碼:private sub timer1_timer()

24、 顯示系統(tǒng)時間 frm_main.statusbar1.panels(3).text = format(date, long date) + format(now, hh點mm分ss秒)end sub4.3 客戶呼叫中心客戶呼叫中心是客戶管理系統(tǒng)中比較重要的部分,是企業(yè)利用現(xiàn)代通信手段集中處理與客戶交互過程的機構(gòu)。在客戶呼叫中心中能夠根據(jù)客戶的電話號碼可以顯示該客戶簡單的信息,同時可以呼叫該客戶,并可查詢該號碼客戶的詳細信息,以及聯(lián)系人的相關(guān)信息。在程序運行時,單擊“客戶信息維護”主菜單下的“客戶呼叫中心”子菜單,系統(tǒng)將調(diào)用“客戶呼叫中心”窗體?!翱蛻艉艚兄行摹贝绑w的運行結(jié)果如圖7所示。圖7

25、客戶呼叫中心窗體的運行結(jié)果4.3.1 窗體設(shè)計(1)在“工程”中新建一個窗體,將窗體的“名稱”設(shè)置為frm_khxxwh_hjzx,maxbutton屬性設(shè)置為false。caption屬性設(shè)置為“客戶呼叫中心”。(2)向窗體上添加1個frame控件,設(shè)置其caption屬性為空,在窗體中用于標識分組,使窗體顯得規(guī)整。并向其中添加1個label控件,將該標簽控件的caption屬性設(shè)置為“請輸入或選擇客戶公司電話”。(3)向窗體上添加1個combobox控件,設(shè)置其“名稱”屬性為cbx_khdh,text屬性為cbx_khdh,style屬性為0dropdown combo。該控件用于顯示客戶

26、的公司電話。(4)向窗體上添加2個frame控件,分別設(shè)置其caption屬性值為“客戶簡單信息”和空,并向其中添加若干label控件。(5)向窗體上添加若干textbox控件,并將其設(shè)置為控件數(shù)組。(6)向窗體中添加1個mscomm控件,由于該控件屬于activex控件,在使用之前必須從“部件”對話框中添加到工具箱。添加方法如下:在“工程”/“部件”對話框中勾選“microsoft comm control 6.0”列表項,如圖8所示。單擊【確定】按鈕之后即可將mscomm控件添加到工具箱當中。圖8 添加mscomm控件(7)在窗體上添加4個commandbutton控件,分別將其“名稱”屬

27、性和caption屬性設(shè)置為cmd_hj和“開始呼叫”、cmd_kh和“客戶詳細信息”、cmd_lxr和“聯(lián)系人信息”、cmd_exit和“退出”。其擺放位置如圖9所示。圖9 客戶呼叫中心窗體的設(shè)計界面4.3.2 代碼設(shè)計在窗體加載時,向cbx_khdh組合框中添加客戶電話,當用戶在該文本框中選擇相應的項目時,在下面的“客戶簡單信息”框架中就可以顯示出相應的信息,其實現(xiàn)的代碼如下:private sub form_load()dim rs1 as new adodb.recordset 定義數(shù)據(jù)集對象rs1.open select * from tb_khxx , cnn, adopenkey

28、set 打開數(shù)據(jù)連接if rs1.recordcount 0 then 如果記錄數(shù)大于零 for i = 0 to rs1.recordcount - 1 從零開始到記錄總數(shù)減1作循環(huán) cbx_khdh.additem trim(rs1.fields(khxx_gsdh) 向cbx_khdb組合框中添加數(shù)據(jù)項目 rs1.movenext 數(shù)據(jù)對象向下移動一條記錄 next i 循環(huán)加一 if cbx_khdh.listcount 0 then 如果cbx_khdh中的數(shù)據(jù)項目數(shù)不為零 cbx_khdh.listindex = 0 在cbx_khdh中顯示第一條數(shù)據(jù)項 else 否則 cbx_k

29、hdh.text = 請選擇 顯示“請選擇”信息 end ifend ifrs1.close 關(guān)閉數(shù)據(jù)集對象end sub根據(jù)公司的電話號碼,單擊【開始呼叫】按鈕,可以呼叫該用戶。如下面的代碼所示:private sub cmd_hj_click() 開始呼叫if cbx_khdh.text = then 如果組合框為空msgbox 請您輸入電話號碼!, vbinformation, 客戶管理系統(tǒng)cbx_khdh.setfocus 將焦點設(shè)置在組合框上else 否則mscomm1.commport = 1 設(shè)置通信端口號mscomm1.settings = 4800,n,8,1 設(shè)置波特率、奇

30、偶校驗位、數(shù)據(jù)位和停止位參數(shù)mscomm1.portopen = truemscomm1.output = atdt & cbx_khdh.text & vbcrmsgbox 請聽電話!, vbpuestion, 客戶管理系統(tǒng)mscomm1.portopen = falseend ifend sub單擊【客戶詳細信息】按鈕,可以調(diào)用“客戶信息”窗體。通過定義的公共字符變量sql,可以在調(diào)用“客戶信息”窗體時,直接顯示該客戶的信息。其實現(xiàn)的關(guān)鍵代碼如下:private sub cmd_kh_click() 調(diào)用客戶詳細信息dim rs3 as new adodb.recordset 定義數(shù)據(jù)集變

31、量打開數(shù)據(jù)對象rs3.open select * from tb_khxx where khxx_gsdh= + cbx_khdh.text + , cnn, adopenkeysetif rs3.recordcount 0 then 如果數(shù)據(jù)記錄大于零 sql = select * from tb_khxx where khxx_gsdh= + cbx_khdh.text + 將sql語句賦給sql字符變量 load frm_khxxwh_kh 調(diào)用客戶信息窗體 frm_khxxwh_kh.show 1end ifend sub在本窗體關(guān)閉前,將sql變量清空,避免對其他窗體造成影響。其實現(xiàn)

32、代碼如下:private sub form_queryunload(cancel as integer, unloadmode as integer)sql = 清空sql變量end sub4.4 客戶投訴客戶投訴是企業(yè)了解客戶意見的重要手段之一。在本系統(tǒng)中用戶可以通過點擊客戶服務菜單下的客戶投訴子菜單,進入到客戶投訴窗體中。該窗體具有對客戶投訴信息進行增加、刪除、修改和查找的功能,并可以通過單擊datagrid控件來瀏覽客戶投訴信息??蛻敉对V窗體的運行結(jié)果如圖13所示。圖13 客戶投訴窗體的運行結(jié)果4.4.1窗體設(shè)計(1)在“工程”中新建一個窗體,將窗體的“名稱”設(shè)置為frm_khfw_kh

33、ts,caption屬性設(shè)置為“客戶投訴”,maxbutton屬性設(shè)置為false。(2)向窗體上添加1個toolbar控件,1個imagelist控件,并將兩個控件相連。(3)向窗體上添加2個combobox控件,將控件的style屬性設(shè)置為0dropdown combo?!懊Q”屬性分別設(shè)置為cbx_khmc和cbx_myd,分別用于存儲客戶名稱和客戶滿意度信息。(4)向窗體上添加1個dtpicker控件,“名稱”屬性設(shè)置為dtp_tsrq,用于顯示客戶投訴日期。(5)向窗體上添加1個ado控件和1個datagrid控件,設(shè)置datagrid控件的“名稱”為dgr_khts,datasou

34、rce屬性設(shè)置為adodc1,allowupdate屬性設(shè)置為false。adodc1控件的recordsource屬性設(shè)置為tb_client_khts,commandtype屬性設(shè)置為2adcmdtable,visible屬性設(shè)置為false。其中ado控件用于連接客戶投訴表,datagrid控件用于顯示客戶投訴表中的數(shù)據(jù)信息。(6)向窗體上添加若干個label控件和textbox控件,并設(shè)置textbox控件為控件名為text1的控件數(shù)組。4.4.2代碼設(shè)計在“客戶投訴”窗體加載的時候,首先建立數(shù)據(jù)連接,然后調(diào)用自定義過程來設(shè)置數(shù)據(jù)表的表頭。并將客戶名稱和客戶滿意度信息添加到combob

35、ox控件中,并設(shè)置其顯示第一條記錄。其實現(xiàn)的關(guān)鍵代碼如下:private sub form_load() adodc1.connectionstring = publicstr 連接數(shù)據(jù)庫 call dgr_title 調(diào)用本模塊中的過程 tlbstate toolbar1, false 調(diào)用公共模塊中的自定義過程 dim rs2 as new adodb.recordset 定義數(shù)據(jù)集對象 rs2.open select * from tb_khxx , cnn, adopenkeyset 建立數(shù)據(jù)連接 if rs2.recordcount 0 then 如果記錄數(shù)大于零 for i = 0

36、 to rs2.recordcount - 1 從零到記錄數(shù)減1作循環(huán) cbx_khmc.additem trim(rs2.fields(khxx_mc) 向添加cbx_khmc中添加數(shù)據(jù)項 rs2.movenext 數(shù)據(jù)記錄移至下一條 next i 循環(huán)加一 end if if cbx_khmc.listcount = 0 then 如果cbx_khmc中的數(shù)據(jù)項為0 cbx_khmc.text = 顯示空 else 否則 cbx_khmc.listindex = 0 顯示第一條記錄 end if rs2.close 關(guān)閉記錄集 dim rs3 as new adodb.recordset

37、rs3.open select * from tb_client_khmyd , cnn, adopenkeyset if rs3.recordcount 0 then for i = 0 to rs3.recordcount - 1 cbx_myd.additem trim(rs3.fields(khmyd_myd) 向cbx_myd中添加數(shù)據(jù)項 rs3.movenext next i end if if cbx_myd.listcount = 0 then cbx_myd.text = else cbx_myd.listindex = 0 end if rs3.close call vie

38、w_data 調(diào)用本模塊中的子定義過程顯示數(shù)據(jù)信息 for i = 0 to text1.ubound text1(i).enabled = false next i dtp_tsrq.value = date: cbx_khmc.enabled = false : cbx_myd.enabled = false : dtp_tsrq.enabled = falseend sub本系統(tǒng)中的數(shù)據(jù)庫采用的是英文字段,因此在數(shù)據(jù)表顯示的時候,將會顯示英文字段,所以,在程序運行時,當遇到用于顯示數(shù)據(jù)信息的時候,先調(diào)用自定義過程,設(shè)置datagrid控件中的表頭為中文,自定義過程的代碼如下:sub dg

39、r_title() 設(shè)置datagrid控件的標題dgr_khts.columns(0).caption = 客戶投訴編號 : dgr_khts.columns(1).caption = 企業(yè)名稱dgr_khts.columns(2).caption = 投訴人 : dgr_khts.columns(3).caption = 投訴主題dgr_khts.columns(4).caption = 投訴內(nèi)容 : dgr_khts.columns(5).caption = 投訴日期dgr_khts.columns(6).caption = 處理辦法 : dgr_khts.columns(7).capt

40、ion = 客戶滿意度dgr_khts.columns(8).caption = 投訴受理人 : dgr_khts.columns(9).caption = 備注信息end sub在本窗體中將數(shù)據(jù)信息顯示定義為自定義過程,在顯示數(shù)據(jù)信息時,調(diào)用自定義過程,這樣可避免同樣的代碼重復編寫,提高程序代碼的可重用性。數(shù)據(jù)信息顯示自定義過程的關(guān)鍵代碼如下:sub view_data() if adodc1.recordset.recordcount 0 then text1(0).text = dgr_khts.columns(0) : cbx_khmc.text = dgr_khts.columns(

41、1) text1(1).text = dgr_khts.columns(2) : text1(2).text = dgr_khts.columns(3) text1(3).text = dgr_khts.columns(4) : dtp_tsrq.value = dgr_khts.columns(5) text1(4).text = dgr_khts.columns(6) : cbx_myd.text = dgr_khts.columns(7) text1(5).text = dgr_khts.columns(8) : text1(6).text = dgr_khts.columns(9) e

42、nd ifend sub4.5 客戶投訴滿意程度分析“客戶投訴滿意程度分析”窗體可以根據(jù)客戶投訴的滿意程度,以不同的形式(條形、線形、三維、列表)顯示客戶對投訴處理的滿意程度。在程序運行時,單擊“客戶服務”主菜單下的“客戶投訴滿意程度分析”子菜單,即可進入到“客戶投訴滿意程度分析”窗體中。該窗體的運行結(jié)果如圖14所示。圖14 客戶滿意程度分析運行結(jié)果4.5.1窗體設(shè)計(1)在“工程”中新建一個窗體,將窗體的“名稱”設(shè)置為frm_khfw_tsmydfx,caption屬性設(shè)置為“客戶投訴滿意程度分析”,maxbutton屬性設(shè)置為false。(2)向窗體中添加1個mschart控件,由于該控件

43、屬于activex控件,在使用之前必須從“部件”對話框中添加到工具箱。添加方法如下:在“工程”/“部件”對話框中勾選“microsoft chart control 6.0 (sp4)”列表項,單擊【確定】按鈕之后即可將mschart控件添加到工具箱當中。mschart控件用于圖形顯示分析結(jié)果。(3)向窗體中添加1個datagrid控件和1個ado控件,設(shè)置datagrid控件的“名稱”屬性為dgr_mydfx,設(shè)置caption屬性為“客戶滿意程度分析表”,datasource屬性為adodc1。commandtype屬性設(shè)置為2adcmdtable,adodc1的recordsorce屬性

44、設(shè)置為tb_client_mydtj, visible屬性設(shè)置為false。其中ado控件用于連接滿意度統(tǒng)計表,datagrid控件用于顯示滿意度統(tǒng)計信息。(4)向窗體上添加5個commandbutton控件。4.5.2代碼設(shè)計在窗體加載時,統(tǒng)計客戶投訴表中的數(shù)據(jù)信息,并根據(jù)客戶滿意度設(shè)置表中的滿意度級別,將相應的滿意度級別和該級別的數(shù)量統(tǒng)計并添加到滿意度統(tǒng)計表中,根據(jù)該表中的數(shù)據(jù)信息在mschart控件或datagrid控件中顯示相應的信息。private sub form_load()adodc1.connectionstring = publicstr 數(shù)據(jù)連接清空滿意度統(tǒng)計數(shù)據(jù)表中的數(shù)

45、據(jù)信息cnn.execute delete tb_client_mydtj select * from tb_client_mydtjrs1.open select * from tb_client_khmyd, cnn, adopenkeyset 打開數(shù)據(jù)連接if rs1.recordcount 0 then 如果記錄數(shù)大于零 s1 = rs1.recordcount 將記錄數(shù)賦給變量s1 for i = 0 to rs1.recordcount - 1 從零到記錄總數(shù)減一作循環(huán) mystr = rs1.fields(khmyd_myd) 將字段khmyd_myd中的記錄賦給mystr變量

46、打開數(shù)據(jù)集對象,查看滿意程度為mystr變量中存儲的字符串的記錄數(shù)量rs2.open select * from tb_client_khts where khts_khmyd= + mystr + , cnn, adopenkeyset if rs2.recordcount = 0 then 如果記錄數(shù)大于等于零 rs3.open select * from tb_client_mydtj, cnn, adopenkeyset, adlockoptimistic 打開數(shù)據(jù)集對象 向tb_client_mydtj表中添加數(shù)據(jù)記錄 rs3.addnew 添加一條新記錄 rs3.fields(my

47、dtj_myd) = mystr 將mystr賦給mydtj_myd字段 rs3.fields(mydtj_sl) = rs2.recordcount 將該滿意程度的記錄數(shù)賦給mydtj_sl字段 rs3.update 刷新 rs3.close 關(guān)閉數(shù)據(jù)集對象 end if rs2.close 關(guān)閉數(shù)據(jù)集對象 rs1.movenext 記錄加一 next i 循環(huán)加一end ifrs1.close 關(guān)閉數(shù)據(jù)集對象打開tb_client_mydtj表的數(shù)據(jù)集對象rs4.open select * from tb_client_mydtj order by mydtj_sl desc, cnn,

48、adopenkeysetif rs4.recordcount 0 then 如果記錄數(shù)大于零 redim arrvalues(1 to s1, 1 to 2) 定義動態(tài)數(shù)組 for i = 1 to s1 給數(shù)組賦值 arrvalues(i, 1) = & rs4!mydtj_myd arrvalues(i, 2) = rs4!mydtj_sl rs4.movenext next i mschart1.chartdata = arrvalues 圖表顯示數(shù)據(jù) mschart1.title = 客戶滿意度分析圖 設(shè)置圖表名稱 mschart1.title.vtfont.size = 15 rs4

49、.close 關(guān)閉數(shù)據(jù)集對象 end ifadodc1.refresh 刷新adodc控件set dgr_mydfx.datasource = adodc1 設(shè)置datagrid的datasource屬性 call dgr_title 調(diào)用自定義程序設(shè)置datagrid控件中的數(shù)據(jù)表表頭dgr_mydfx.visible = false datagrid控件不可見cmd_tx_click 執(zhí)行條形顯示事件end sub4.6 客戶信息查詢在“客戶信息查詢”窗體中,用戶可以根據(jù)客戶信息(tb_khxx)表中的任何關(guān)鍵字及查詢條件,查詢客戶的相關(guān)信息。單擊“信息查詢”菜單下的“客戶信息查詢”子菜單

50、,即可進入到客戶信息查詢窗體中,該窗體的運行結(jié)果如圖15所示。圖15 客戶信息查詢窗體運行結(jié)果4.6.1窗體設(shè)計(1)在“工程”中新建一個窗體,將窗體的“名稱”設(shè)置為frm_xxcx_khxxcx,caption屬性設(shè)置為“客戶信息查詢”,maxbutton屬性設(shè)置為false。(2)向窗體上添加2個combobox控件,設(shè)置其“名稱”分別為cbx_field和cbx_oper,分別用于存儲查詢的字段名和查詢方式。(3)向窗體中添加1個datagrid控件和1個ado控件,設(shè)置datagrid控件的“名稱”為dgr_kh,datasource屬性為adodc1。adodc1的recordsou

51、rce屬性設(shè)置為select * from tb_khxx order by khxx_id,visible屬性設(shè)置為false。其中datagrid控件用于顯示客戶表中的數(shù)據(jù)信息,ado控件用于連接客戶信息表。5 總 結(jié)此次畢業(yè)設(shè)計,經(jīng)過了經(jīng)過了幾個月時間的vb程序開發(fā),在指導老師的幫助下,完成了此次畢業(yè)設(shè)計。它是我從學校走向社會開始從事軟件設(shè)計開發(fā),科學實驗和科學研究的初步嘗試。在這短短的一段時間中,我對sql語言、sql server2000 和vb語言有了更深入的了解,我不僅鞏固了以前在課堂上學到的基礎(chǔ)專業(yè)知識,比如vb的圖形界面設(shè)計。也更進一步學到了較為具體的專業(yè)知識,比如,軟件的設(shè)計流程,c/s模式的程序開發(fā)等。也讓我明白到要實現(xiàn)一個好的系統(tǒng),團隊的合作和協(xié)作是十分重要的。這些知識對于我來說是一筆寶貴的財富。通過此次畢業(yè)設(shè)計也讓我感受到先進的科學技術(shù)給我們的生活帶來的方便、效率和財富。這次畢業(yè)設(shè)計我完成了,所有程序編寫,完成率數(shù)據(jù)庫的設(shè)計。由于以前沒能真正使用過數(shù)據(jù)庫進行大型的設(shè)計,本次設(shè)計難免會有不足之處,比如數(shù)據(jù)庫的不完善,

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論