產(chǎn)品故障信息管理系統(tǒng)介紹(doc 36頁(yè)).doc_第1頁(yè)
產(chǎn)品故障信息管理系統(tǒng)介紹(doc 36頁(yè)).doc_第2頁(yè)
產(chǎn)品故障信息管理系統(tǒng)介紹(doc 36頁(yè)).doc_第3頁(yè)
產(chǎn)品故障信息管理系統(tǒng)介紹(doc 36頁(yè)).doc_第4頁(yè)
產(chǎn)品故障信息管理系統(tǒng)介紹(doc 36頁(yè)).doc_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

產(chǎn)品故障信息管理系統(tǒng)內(nèi)容摘要本文介紹了如何使用Visual C+ 6.0編程制作彩色電視機(jī)故障信息共享系統(tǒng),實(shí)現(xiàn)信息管理共享的自動(dòng)化。由此實(shí)現(xiàn)了信息的增加、刪除、修改、查看等功能,并且進(jìn)而實(shí)現(xiàn)信息的安全管理,使信息的管理更加人性化,規(guī)范化。從而提高故障排除效率,提高信息利用率,有助于進(jìn)一步提高生產(chǎn)效率。關(guān)鍵詞: 信息管理 信息共享 故障 數(shù)據(jù)庫(kù)AbstractThe main work of this paper is introduce how to use Visual C+6.0programming a Color TV Malfunction-Information In-Common System, achieve the auto-manage of the Malfunction-Information. According these, this system achieves the informations function of add,delete,edit and view, it also get the information managed safety, so the management of the information will be more humanity & normalize. Thereby, it can improve the efficiency of the malfunctions elimination, enhance the exploitation of the information, and also help improving the efficiency of the produce by a large step.Key words: Information management Information sharesADO目 錄前 言Visual C+是Microsoft公司開(kāi)發(fā)的基于Windows操作系統(tǒng)的編程工具,它采用一種巧妙的方法將Windows的編程復(fù)雜性封裝起來(lái),編程者可以比較輕松地進(jìn)行Windows應(yīng)用程序的設(shè)計(jì)。Visual C+ 6.0繼承了以前版本的優(yōu)點(diǎn),為用戶(hù)提供了更為友好的可視化開(kāi)發(fā)環(huán)境,是當(dāng)今程序員首選的開(kāi)發(fā)工具。它在編程的深入性、運(yùn)行的快速性等方面具有很強(qiáng)的功能。隨著社會(huì)的飛速發(fā)展,信息管理系統(tǒng)已廣泛地運(yùn)用于各行各業(yè)。信息在企業(yè)生產(chǎn)經(jīng)營(yíng)中扮演著越來(lái)越重要的角色。企業(yè)內(nèi)部和外部之間的信息變得越來(lái)越頻繁,方式越來(lái)越復(fù)雜,信息量日益增大,速度越來(lái)越快,絲毫不亞于企業(yè)的物質(zhì)、能量交流,信息流在企業(yè)系統(tǒng)中所占份額逐漸上升。這樣一來(lái),企業(yè)信息管理才應(yīng)運(yùn)而生,成為企業(yè)管理的重要組成部分。企業(yè)信息管理的產(chǎn)生是企業(yè)管理發(fā)展到一定階段的必然產(chǎn)物,是企業(yè)管理發(fā)展史上的劃時(shí)代的進(jìn)步。故障信息管理,一般是指設(shè)備或系統(tǒng)在使用中喪失或降低其規(guī)定的功能。故障管理,其目的是保證設(shè)備經(jīng)常處于完好狀態(tài),嚴(yán)格控制設(shè)備的故障發(fā)生,降低故障率,減少維修費(fèi)用,延長(zhǎng)設(shè)備的使用壽命。 而信息化建設(shè)對(duì)企業(yè)來(lái)說(shuō)無(wú)疑已經(jīng)成為企業(yè)在現(xiàn)代競(jìng)爭(zhēng)社會(huì)中立足的重要因素。而從中國(guó)大陸企業(yè)現(xiàn)狀來(lái)看,大部分企業(yè)的信息化建設(shè)都是依靠專(zhuān)業(yè)化軟件公司。毋庸置疑,對(duì)于大規(guī)模的管理系統(tǒng),例如CRM(Client Relation Manager),ERP(Enterprise Resource Plan)等,使用專(zhuān)業(yè)軟件公司開(kāi)發(fā)的產(chǎn)品,功能相對(duì)齊全,安全級(jí)別也相對(duì)較高。但對(duì)于企業(yè)內(nèi)部小范圍內(nèi)所需的一些小系統(tǒng)而言,如也依靠此種方式,勢(shì)必會(huì)產(chǎn)生無(wú)謂的成本流失。鑒于這種形式,借助這次畢業(yè)設(shè)計(jì)的機(jī)會(huì),在指導(dǎo)老師的幫助下,經(jīng)過(guò)一段時(shí)間的努力,開(kāi)發(fā)出了這套彩電共享系統(tǒng)。本系統(tǒng)主要用于對(duì)已有故障信息進(jìn)行更高效的管理,提高信息的利用率,改變了以往煩瑣的查找,大大提高了故障的排除速度及正確率,對(duì)進(jìn)一步提高生產(chǎn)效率具有十分重要的意義。 下面我們將按照軟件工程學(xué)思想,對(duì)整個(gè)系統(tǒng)制作過(guò)程做個(gè)一般性闡述。1.系統(tǒng)設(shè)計(jì)1.1目標(biāo)設(shè)計(jì)通過(guò)一個(gè)彩電故障信息共享系統(tǒng),使生產(chǎn)工程部的故障處理工作系統(tǒng)化,規(guī)范化,自動(dòng)化,從而達(dá)到提高故障排除效率,提高信息利用率的目的。1.2開(kāi)發(fā)設(shè)計(jì)思想l 盡量采用生產(chǎn)工程部現(xiàn)有的軟硬件環(huán)境及齊全的故障信息,從而達(dá)到充分利用現(xiàn)有資源,提高系統(tǒng)開(kāi)發(fā)水平和應(yīng)用效果的目的。l 系統(tǒng)應(yīng)符合生產(chǎn)工程部資料管理規(guī)范,符合普通員工操作的規(guī)范,達(dá)到操作過(guò)程中的直觀、方便、實(shí)用、安全等要求。l 系統(tǒng)采用Visual C+環(huán)境,用ADO(ActiveX Data Objects)數(shù)據(jù)訪問(wèn)方式,采用Microsoft Access 2000作為數(shù)據(jù)源,使整個(gè)系統(tǒng)易于使用及維護(hù)。l 系統(tǒng)采用模塊化程序設(shè)計(jì)方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開(kāi)發(fā)的技術(shù)維護(hù)人員補(bǔ)充、維護(hù)。l 系統(tǒng)應(yīng)具備數(shù)據(jù)維護(hù)功能,及時(shí)根據(jù)數(shù)據(jù)變化進(jìn)行添加、刪除、修改、查詢(xún)等操作,并加入擁護(hù)權(quán)限功能,使系統(tǒng)更加安全1.3功能分析本系統(tǒng)功能分析是在系統(tǒng)開(kāi)發(fā)總體任務(wù)的基礎(chǔ)上完成的,本系統(tǒng)需要完成的功能如下:l 故障信息的輸入、查詢(xún)、修改、刪除l 故障信息的打印l 系統(tǒng)用戶(hù)管理,權(quán)限管理1.4功能模塊設(shè)計(jì)在系統(tǒng)功能分析的基礎(chǔ)上,考慮Visual C+程序編制的特點(diǎn),得到圖1所示的系統(tǒng)功能模塊圖。信息查詢(xún)權(quán)限驗(yàn)證信息變動(dòng)信息數(shù)據(jù)刪除信息修改信息增加新信息管理員信息管理打印管理系統(tǒng)管理權(quán)限用戶(hù)刪除增加修改查詢(xún)彩電故障信息共享系統(tǒng) 圖1系統(tǒng)功能模塊圖圖2數(shù)據(jù)流程圖2.數(shù)字庫(kù)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的好壞將直接影響到系統(tǒng)的效率以及實(shí)現(xiàn)的效果。好的數(shù)據(jù)庫(kù)結(jié)構(gòu)會(huì)減少數(shù)據(jù)庫(kù)的存儲(chǔ)量、冗余度,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應(yīng)速度,簡(jiǎn)化基于數(shù)據(jù)庫(kù)的應(yīng)用程序的實(shí)現(xiàn)方法等。2.1數(shù)據(jù)庫(kù)需求分析在仔細(xì)研究資料管理過(guò)程的基礎(chǔ)上,歸納出系統(tǒng)的數(shù)據(jù)流程圖如上圖2所示,所有數(shù)據(jù)均由管理員輸入管理。根據(jù)圖2的數(shù)據(jù)流程圖,可得到所須設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:l 故障信息,包括的數(shù)據(jù)項(xiàng)有顯象管、機(jī)芯、機(jī)殼、器件、技術(shù)員、時(shí)間、其他、信息名、具體內(nèi)容等。l 權(quán)限驗(yàn)證,包括的數(shù)據(jù)項(xiàng)有用戶(hù)名、密碼等。由上分析,為此需要有2個(gè)數(shù)據(jù)表分別用來(lái)存放故障信息的用戶(hù)信息。這兩個(gè)數(shù)據(jù)表均用Access 2000實(shí)現(xiàn)。Access中的設(shè)計(jì)視圖如圖3、圖4所示,其中數(shù)據(jù)類(lèi)型根據(jù)具體的數(shù)據(jù)字段來(lái)設(shè)置。圖3 info1視圖圖4 login視圖2.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)在分析需求的基礎(chǔ)上,我們得到整個(gè)系統(tǒng)的E-R圖如圖5所示。3.創(chuàng)建應(yīng)用程序本彩電故障信息共享系統(tǒng)采用Visual C+ 6.0的ADO方法開(kāi)發(fā)。工程創(chuàng)建具體步驟如下:打開(kāi)Visual C+后,選擇菜單“File/New”中的“Project”選項(xiàng)卡中的“MFC AppWizard exe”,設(shè)置工程名字為“CaidianGuzhang”,選擇存儲(chǔ)位置,單擊“OK”。創(chuàng)建一個(gè)單文檔應(yīng)用程序,在Step1中,選擇“Single Document”,然后單擊“Next”按扭,進(jìn)入“Step 2 of 6”。一直單擊“Next”按扭,直到進(jìn)入“Step 6 of 6”。因?yàn)闉榱四苁箶?shù)據(jù)更直觀,我們采用列表形式,所以需要在本步驟中,選擇CCaidianGuzhangView類(lèi)的Base Class(基類(lèi))為ClistView。然后單擊“Finish”,最后將出現(xiàn)確認(rèn)窗口,如圖6所示,檢查無(wú)誤后,單擊“確定”,即可完成工程創(chuàng)建。圖6 確認(rèn)為了使程序能支持ADO數(shù)據(jù)庫(kù)對(duì)象,應(yīng)該在頭文件stdafx.h(預(yù)編譯頭文件)中加入#import c:Program FilesCommon FilesSystemadomsado15.dll rename_namespace(AdoNS) rename(EOF,adoEOF)using namespace AdoNS; 導(dǎo)入ADO庫(kù)并在主程序入口:BOOL CCaidianGuzhangApp:InitInstance()中加入AfxOleInit();初始化COM環(huán)境。ADO (ActiveX Data Objects)是Microsoft開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的面向?qū)ο蟮男陆涌冢枋隽塑浖写嫒《喾N數(shù)據(jù)源的統(tǒng)一接口,并提供了實(shí)現(xiàn)ADO模型的COM組件,使得不同程序設(shè)計(jì)語(yǔ)言均可使用ADO。在NET Framework的System.Data命名空間中定義這些類(lèi)-這些類(lèi)表示到數(shù)據(jù)庫(kù)的連接、數(shù)據(jù)庫(kù)中的表,和表中所包含的數(shù)據(jù)類(lèi)型。更廣義地講,ADO.NET就是Microsoft最新的數(shù)據(jù)訪問(wèn)策略。其主要的優(yōu)點(diǎn)是靈活,易于使用、速度快、內(nèi)存支出少和磁盤(pán)遺跡小,簡(jiǎn)化了操作。ADO類(lèi)的定義是作為一種資源存儲(chǔ)在ADO DLL(msado15.dll)中,在其內(nèi)部稱(chēng)為類(lèi)型庫(kù)。類(lèi)型庫(kù)描述了自治接口,以及C使用的COM vtable接口。當(dāng)使用import指令時(shí),在運(yùn)行時(shí)Visual C需要從ADO DLL中讀取這個(gè)類(lèi)型庫(kù),并以此創(chuàng)建一組C頭文件。ADO庫(kù)包含三個(gè)智能指針:_ConnectionPtr、_CommandPtr和_RecordsetPtr。_ConnectionPtr通常被用來(lái)創(chuàng)建一個(gè)數(shù)據(jù)連接或執(zhí)行一條不返回任何結(jié)果的SQL語(yǔ)句,如一個(gè)存儲(chǔ)過(guò)程。_CommandPtr返回一個(gè)記錄集。它提供了一種簡(jiǎn)單的方法來(lái)執(zhí)行返回記錄集的存儲(chǔ)過(guò)程和SQL語(yǔ)句。在使用_CommandPtr接口時(shí),可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用連接串。 _RecordsetPtr是一個(gè)記錄集對(duì)象。與以上兩種對(duì)象相比,它對(duì)記錄集提供了更多的控制功能,如記錄鎖定、游標(biāo)控制等。4.數(shù)據(jù)庫(kù)操作準(zhǔn)備由于本系統(tǒng)使用的是ADO方式訪問(wèn)數(shù)據(jù)庫(kù),因此可以使用從視表到記錄集的映射。為了編程便捷,可以為數(shù)據(jù)庫(kù)中的每個(gè)表映射一個(gè)記錄集類(lèi)(從CDaoRecordSet類(lèi)繼承)。映射關(guān)系如下表1所示。表1 記錄集映射關(guān)系表格(視圖)對(duì)應(yīng)記錄集Info1CDataSetloginCLoginSetCDaoRecordSet封裝了ADO記錄集對(duì)象,用于管理一個(gè)來(lái)自表定義(基礎(chǔ)表)或查詢(xún)定義的記錄集合。CDaoRecordSet對(duì)象有三種使用的原型,分別為table-type(基于單個(gè)數(shù)據(jù)表)、dynaset-type(基于組合查詢(xún))、snapshot-type(基于組合查詢(xún)的靜態(tài)拷貝)。對(duì)記錄集的映射有兩種方法:第一種是直接從CDaoRecordSet類(lèi)創(chuàng)建記錄集,并且動(dòng)態(tài)綁定記錄字段;第二種是使用ClassWizard創(chuàng)建CDaoRecordSet類(lèi)的派生類(lèi),并利用DFX機(jī)制記錄數(shù)據(jù)與記錄集字段數(shù)據(jù)成員之間的映射。在本系統(tǒng)中,我首先使用第二種方法,方法是在ClassWizard中單擊“New Class”,進(jìn)入下一窗口,設(shè)置類(lèi)名為“CDataSet”,選擇Base Class(基類(lèi))為CDaoRecordSet,然后單擊“OK”,進(jìn)入“Database Option”窗口,選中“ADO”,按瀏覽按鈕后,選擇需要映射的文件(此處為info1.mdb),具體過(guò)程如圖7所示。最后在彈 圖7 選擇ADO數(shù)據(jù)庫(kù)文件出的Select Database Table(數(shù)據(jù)表選擇對(duì)話框)中選中要映射的表名(在此為info1)。單擊“OK”即可。同樣的方法,建立類(lèi)“CloginSet”,映射的表名為login。但是此種方法把數(shù)據(jù)庫(kù)訪問(wèn)路徑給固定了,我們可以從以下Visual C+自行建立的函數(shù)看出。CString CDataSet:GetDefaultDBName()return _T(D:visualMSDev98MyProjectsxiahuainfo1.mdb);為了能使系統(tǒng)在各個(gè)環(huán)境下都可正常運(yùn)行,需要修改此函數(shù),使數(shù)據(jù)庫(kù)實(shí)現(xiàn)動(dòng)態(tài)鏈接,修改后的函數(shù)程序如下:CString CDataSet:GetDefaultDBName()char path50;CString m_strDatabaseName;:GetCurrentDirectory(50,path); /得到當(dāng)前應(yīng)用程序所在的路徑strcat(path,);m_strDatabaseName=_T(path);m_strDatabaseName+=info1.mdb; /將所對(duì)應(yīng)文件改成所要的數(shù)據(jù)庫(kù)名return m_strDatabaseName; /返回?cái)?shù)據(jù)庫(kù)所在的完整路徑同樣的,我們也必須修改CLoginSet:GetDefaultDBName()函數(shù)。因?yàn)槠鋬?nèi)部程序與CDataSet:GetDefaultDBName()相同,所以我們就不再此列出。5.功能模塊的創(chuàng)建 在鏈接了數(shù)據(jù)庫(kù)后,接下來(lái)我們就可以開(kāi)始進(jìn)行各功能模塊的創(chuàng)建。5.1系統(tǒng)主體窗體的創(chuàng)建在我們按照VC+的AppWizard創(chuàng)建完工程后,為了使主窗口框架更適合整個(gè)系統(tǒng)的操作,我們有必要進(jìn)行修改,重新創(chuàng)建。5.1.1主菜單的創(chuàng)建在WorkSpase中選擇ResourseView,然后雙擊Menu文件夾,再雙擊IDR_MAINFRAME選項(xiàng),單擊右邊窗口中“幫助”旁邊的虛線框,在雙擊或按回車(chē)鍵,就會(huì)出現(xiàn)“Menu Item Properties”對(duì)話框,在這個(gè)對(duì)話框中輸入菜單項(xiàng)的內(nèi)容,如圖8所示。圖8設(shè)置一級(jí)菜單二級(jí)菜單的設(shè)置基本上都和圖8相同,只是必須設(shè)置ID。按照這種方法,最終創(chuàng)建出如表2所示的菜單結(jié)構(gòu)。表2 菜單結(jié)構(gòu)菜單名稱(chēng)ID文件.打印ID_FILE_PRINT.打印預(yù)覽ID_FILE_PRINT_PREVIEW.打印設(shè)置ID_FILE_PRINT_SETUP.最近文件ID_FILE_MRU_FILE1.退出ID_APP_EXIT查看.工具欄ID_VIEW_TOOLBAR.狀態(tài)欄ID_VIEW_STATUS_BAR信息管理.查詢(xún)記錄ID_RECORD_SEARCH.添加記錄ID_RECORD_ADD.查看記錄ID_RECORD_VIEW.刪除記錄ID_RECORD_DEL.更改記錄ID_RECORD_EDIT權(quán)限管理.添加用戶(hù)ID_USER_ADD.更改密碼ID_PASSWARD_EDIT.刪除用戶(hù)ID_USER_DEL幫助.關(guān)于xiahua 1.0ID_APP_ABOUT5.1.2右鍵菜單的創(chuàng)建為了實(shí)現(xiàn)操作的方便、快捷,我們?cè)诔绦蛑屑尤肓擞益I菜單。在VC的主菜單中,按“Project”“New Project”“Components and Controls Gallery”即可進(jìn)入“Components and Controls Gallery”對(duì)話框,然后再打開(kāi)Visual C+ Components文件,再選擇“Pop-up Menu”,單擊“insert”,隨后在跳出的對(duì)話框中選擇“CxiahuaView”,最后單擊“OK”。完成后,需要對(duì)其進(jìn)行編輯。單擊WorkSpase中的ResourseView,在Menu文件夾中選擇CG_IDR_POPUP_MAIN_FRAME,之后邊可在右邊窗口對(duì)其進(jìn)行編輯。編輯方法與主菜單相同,其中各項(xiàng)的ID分別對(duì)應(yīng)相應(yīng)的菜單項(xiàng),對(duì)應(yīng)關(guān)系如表3所示。表3 右鍵菜單對(duì)應(yīng)的菜單項(xiàng)ID菜單名稱(chēng)ID查看記錄ID_RECORD_VIEW添加記錄ID_RECORD_ADD刪除記錄ID_RECORD_DEL更改記錄ID_RECORD_EDIT5.1.3工具欄的創(chuàng)建在WorkSpase中選擇ResourseView,然后雙擊Toolbar文件夾,再雙擊IDR_MAINFRAM選項(xiàng),就可以利用工具條編輯器(Toolbar Editor)編輯右邊的工具條。本系統(tǒng)創(chuàng)建的工具條如圖9所示。其中各按鈕的ID分別對(duì)應(yīng)相應(yīng)的菜單項(xiàng),按從做到右的順序?qū)?yīng)的菜單項(xiàng)ID如表4所示。表4工具條對(duì)應(yīng)的菜單項(xiàng)ID次序ID1ID_FILE_PRINT2ID_RECORD_ADD3ID_RECORD_DEL4ID_RECORD_SEARCH5ID_RECORD_ALL6ID_APP_ABOUT(注:其中第5個(gè)是顯示全部數(shù)據(jù),實(shí)現(xiàn)刷新功能,在菜單中沒(méi)有)5.1.4數(shù)據(jù)顯示與表格控件的創(chuàng)建因?yàn)镃xiahuaView是從ClistView繼承的,所以創(chuàng)建完工程后,就已經(jīng)有表格控件存在。而我們目的就是使控件上的顯示更符合系統(tǒng)的使用,所以我們有必要對(duì)初試界面也就是對(duì)CXiahuaView:OnInitialUpdate()函數(shù)進(jìn)行修改,修改后的函數(shù)如下:void CXiahuaView:OnInitialUpdate()CListView:OnInitialUpdate();/ TODO: You may populate your ListView with items by directly accessingCListCtrl &ctl=GetListCtrl();ctl.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL);ctl.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);/設(shè)置窗體類(lèi)型/初始化m_pSet指針,m_pSet原型為CDataSet* m_pSetm_pSet=&GetDocument()-m_dataSet;/初始化m_pLset指針,m_pLset原型為CLoginSet* m_pLsetm_pLset=&GetDocument()-m_dataLset; if(m_pSet-IsOpen()m_pSet-Close();m_pSet-Open(); /打開(kāi)數(shù)據(jù)庫(kù) GetDocument()-SetTitle(彩電故障信息共享系統(tǒng)); /設(shè)置標(biāo)題CString str;/以下是設(shè)置控件按鈕顯示字符str.LoadString(IDS_SERIAL);ctl.InsertColumn(0,str);ctl.InsertColumn(1,顯象管); ctl.InsertColumn(2,機(jī)芯);ctl.InsertColumn(3,機(jī)殼);ctl.InsertColumn(4,器件);ctl.InsertColumn(5,技術(shù)員);ctl.InsertColumn(6,時(shí)間);ctl.InsertColumn(7,其他);ctl.InsertColumn(8,信息名);ctl.InsertColumn(9,具體內(nèi)容);m_bIsAsc=TRUE;m_bIsShowAll=TRUE;ShowTableData(); /調(diào)用顯示數(shù)據(jù)函數(shù),顯示數(shù)據(jù)接下來(lái)就是要編寫(xiě)ShowTableData()函數(shù)。程序如下:void CXiahuaView:ShowTableData() CListCtrl &ctl=GetListCtrl();ctl.DeleteAllItems(); /刪除所有已顯示內(nèi)容m_pSet-MoveFirst(); /將m_pSet指針指向首條記錄int i=0;int ColWidth10=0;while(!m_pSet-IsEOF() /如果沒(méi)有到達(dá)數(shù)據(jù)末尾,則顯示數(shù)據(jù) /設(shè)置各數(shù)據(jù)項(xiàng)的顯示寬度f(wàn)or(int j=0;jMoveFirst(); /將m_pSet指針再指向首條記錄,便于下次操作到此,我們完成了主體框架的制作,主窗口如圖9所示。圖9 主窗口5.2系統(tǒng)用戶(hù)權(quán)限管理模塊的創(chuàng)建為了數(shù)據(jù)庫(kù)使用的安全,必須對(duì)數(shù)據(jù)庫(kù)的各種操作實(shí)行權(quán)限管理。只有管理員允許的人員才有權(quán)力使用。允許的用戶(hù)和密碼都預(yù)先存在數(shù)據(jù)庫(kù)中,本系統(tǒng)中為login表。權(quán)限管理模塊主要實(shí)現(xiàn)如下功能:l 添加用戶(hù)l 更改密碼l 刪除用戶(hù)l 用戶(hù)登錄(權(quán)限驗(yàn)證)5.2.1添加用戶(hù)對(duì)話框的創(chuàng)建 在ResourseView中,右擊Dialog,選擇Insert Dialog,便可在右邊窗口中編輯對(duì)話框。完成的對(duì)話框如圖10所示。對(duì)話框中各種非靜態(tài)文本控件的屬性見(jiàn)表5。 圖10 添加用戶(hù)對(duì)話框 圖11密碼修改對(duì)話框表5添加用戶(hù)對(duì)話框中各控件的屬性設(shè)置控件ID用戶(hù)名Edit BoxIDC_USER密碼Edit BoxIDC_PSWD確認(rèn)密碼Edit BoxIDC_COMPSWD對(duì)話框編輯完成后,雙擊該對(duì)話框,進(jìn)入New Class對(duì)話框,取此登記對(duì)話框的類(lèi)名為CAddUser。然后在MFC ClassWizard中選擇Class name為CXiahuaView,Object IDs為“ID_USER_ADD”,Messages為“COMMAND”,單擊Add Function按鈕,取系統(tǒng)默認(rèn)的函數(shù)名,再單擊Edit Code按鈕,即可進(jìn)入代碼編輯器對(duì)函數(shù)CXiahuaView:OnUserAdd()進(jìn)行編輯。此函數(shù)代碼如下:void CXiahuaView:OnUserAdd() / TODO: Add your command handler code hereCLoginSet *m_daorecordset=new CLoginSet(&pDatabase);/初始化連接數(shù)據(jù)庫(kù)指針 CString strSQL;if(adiministrator()=0) /管理員權(quán)限驗(yàn)證,失敗返回return; else /成功進(jìn)入增加用戶(hù)窗口 CAddUser adduser;/進(jìn)入增加用戶(hù)窗口 if(adduser.DoModal()=IDCANCEL) return; else m_daorecordset-Close();strSQL.Format(select * from login where user=%s,adduser.m_strUser); m_daorecordset-Open(AFX_DAO_USE_DEFAULT_TYPE,strSQL); if(m_daorecordset-GetRecordCount()!=0)AfxMessageBox(_T( 對(duì)不起!n+adduser.m_strUser+已經(jīng)存在,請(qǐng)嘗試用其他名字!),MB_ICONEXCLAMATION);elseif(adduser.m_strPswd.Compare(adduser.m_strCompswd)!=0) AfxMessageBox(_T(兩遍新密碼輸入不一致!n請(qǐng)重輸!),MB_ICONEXCLAMATION); else 5.2.2更改密碼對(duì)話框的創(chuàng)建更改密碼對(duì)話框的創(chuàng)建與添加用戶(hù)對(duì)話框的創(chuàng)建基本相同,完成后的對(duì)話框如圖11所示。對(duì)話框中各種非靜態(tài)文本控件的屬性見(jiàn)表6。表6 修改密碼對(duì)話框中各控件的屬性設(shè)置控件ID用戶(hù)名Edit BoxIDC_USER原密碼Edit BoxIDC_FORMERPS新密碼Edit BoxIDC_NEWPS確認(rèn)Edit BoxIDC_CONFIRPS同樣方法,取此密碼對(duì)話框的類(lèi)名為CModPswd。執(zhí)行此對(duì)話框的函數(shù)為CXiahuaView:OnPasswardEdit(),實(shí)現(xiàn)密碼修改功能的程序代碼如下:void CXiahuaView:OnPasswardEdit() / TODO: Add your command handler code hereUpdateData(TRUE);COleVariant var;CModPswd modpswd;if(modpswd.DoModal()=IDCANCEL)return;else CLoginSet *m_daorecordset=new CLoginSet(&pDatabase);CString strSQL;CString str1;strSQL.Format(select * from login where user=%s,modpswd.m_strUser);m_daorecordset-Open(AFX_DAO_USE_DEFAULT_TYPE,strSQL);if(m_daorecordset-GetRecordCount()=0) AfxMessageBox(_T(無(wú)此用戶(hù)!n請(qǐng)向管理員咨詢(xún)),MB_ICONEXCLAMATION);m_daorecordset-Close();OnPasswardEdit(); else m_daorecordset-Close();/先關(guān)閉,以便以后再次打開(kāi)記錄集體對(duì)象 strSQL.Format(select * from login where user=%s and passward=%s, modpswd. m_strUser,modpswd.m_strFormerps); m_daorecordset-Open(AFX_DAO_USE_DEFAULT_TYPE,strSQL); if(m_daorecordset-GetRecordCount()=0) AfxMessageBox(_T(密碼錯(cuò)誤!n請(qǐng)注意大小寫(xiě)),MB_ICONEXCLAMATION); else if(modpswd.m_strNewps.Compare(modpswd.m_strConfirps)!=0) AfxMessageBox(_T(兩遍新密碼輸入不一致!n 請(qǐng)重輸!), MB_ICONEX CLAMATION); modpswd.m_strNewps.Empty(); modpswd.m_strConfirps.Empty(); UpdateData(FALSE); else m_daorecordset-Edit();/使記錄集可編輯 m_daorecordset-m_passward=modpswd.m_strNewps; m_daorecordset-Update();/修改后刷新 AfxMessageBox(_T(密碼修改成功!n請(qǐng)記住新密碼!),MB_ICONEXCLAMATION); 5.2.3刪除用戶(hù)對(duì)話框的創(chuàng)建創(chuàng)建方法同上,完成后的對(duì)話框如圖12所示。對(duì)話框中各種非靜態(tài)文本控件的屬性見(jiàn)表7。取此刪除用戶(hù)對(duì)話框的類(lèi)名為CDelUser。執(zhí)行此對(duì)話框功能的函數(shù)為CXiahuaView:OnUserDel(),代碼如下:表7 刪除用戶(hù)對(duì)話框中各控件的屬性設(shè)置控件IDEdit BoxIDC_USER 圖12刪除用戶(hù)對(duì)話框 圖13用戶(hù)登錄對(duì)話框void CXiahuaView:OnUserDel() / TODO: Add your command handler code hereCLoginSet *m_daorecordset=new CLoginSet(&pDatabase); CString strSQL;CString user;user.Format(administrator);if(adiministrator()=0)/管理員權(quán)限驗(yàn)證,失敗返回return;elseCDelUser deluser;/成功。調(diào)入刪除用戶(hù)窗口if(deluser.DoModal()=IDCANCEL) return; else if(deluser.m_strUser.Compare(user)=0) AfxMessageBox(_T( 對(duì)不起!n不允許刪除管理員),MB_ICONEXCLAMATION);else CString str1;str1.Format(%s,deluser.m_strUser); if(AfxMessageBox(確定要?jiǎng)h除+str1+嗎?,MB_YESNO|MB_ICONEXCLAMATION)=IDYES) strSQL.Format(delete from login where user=%s,deluser.m_strUser); pDatabase.Execute(strSQL);5.2.4用戶(hù)登錄對(duì)話框的創(chuàng)建創(chuàng)建方法同上,完成后的對(duì)話框如圖13所示。對(duì)話框中各種非靜態(tài)文本控件的屬性見(jiàn)表8。取此刪除用戶(hù)對(duì)話框的類(lèi)名為CloginDlg。表8 修改密碼對(duì)話框中各控件的屬性設(shè)置控件ID用戶(hù)名Edit BoxIDC_USER密碼Edit BoxIDC_PASS5.3信息管理模塊的創(chuàng)建故障信息在管理中需要進(jìn)行各種不同的操作,信息管理模塊主要實(shí)現(xiàn)如下功能:l 查看記錄l 查詢(xún)記錄l 添加記錄l 刪除記錄l 修改記錄5.3.1添加記錄對(duì)話框的創(chuàng)建 在ResourseView中,右擊Dialog,選擇Insert Dialog,便可在右邊窗口中編輯對(duì)話框。完成的對(duì)話框如圖14所示。對(duì)話框中各種非靜態(tài)文本控件的屬性見(jiàn)表9。表9信息登記對(duì)話框中各控件的屬性設(shè)置控件ID顯象管Edit BoxIDC_CRT機(jī)芯Edit BoxIDC_CLIPS機(jī)殼Edit BoxIDC_CASE器件Edit BoxIDC_DEVICE技術(shù)員Edit BoxIDC_WORKOR時(shí)間Date Time PickerIDC_DATE其他Edit BoxIDC_OTHER信息名Edit BoxIDC_INFO具體內(nèi)容Edit BoxIDC_CONTENT 圖14 信息登記對(duì)話框?qū)υ捒蚓庉嬐瓿珊螅p擊該對(duì)話框,進(jìn)入New Class對(duì)話框,取此登記對(duì)話框的類(lèi)名為CInfoDlg。然后在MFC ClassWizard中選擇Class name為CXiahuaView,Object IDs為“ID_RECORD_ADD”,Messages為“COMMAND”,單擊Add Function按鈕,再單擊Edit Code按鈕,即可編輯執(zhí)行添加信息功能的函數(shù),程序如下:void CXiahuaView:OnRecordAdd() / TODO: Add your command handler code hereif(memberright()=0) /系統(tǒng)用戶(hù)驗(yàn)證,失敗返回return;else CInfoDlg addDlg; /成功進(jìn)入增加窗口 if(addDlg.DoModal()=IDOK) CString crt; crt=addDlg.m_strCrt; if(addDlg.m_strInfo.IsEmpty() AfxMessageBox(_T(為保證數(shù)據(jù)的有效性,n請(qǐng)確定您已輸入有效信息),MB_ICONEXCLAMATION); OnRecordAdd(); addDlg.m_strCrt=crt; else addDlg.m_strCrt.TrimLeft( ); /去除各選項(xiàng)左右無(wú)效空格字符 addDlg.m_strCrt.TrimRight( ); addDlg.m_strCase.TrimLeft( ); m_pSet-AddNew(); /增加數(shù)據(jù) m_pSet-m_crt=addDlg.m_strCrt; m_pSet-m_info=addDlg.m_strInfo; m_pSet-m_case=addDlg.m_strCase; m_pSet-m_date=addDlg.m_strDate; m_pSet-m_device=addDlg.m_strDevice; m_pSet-m_clips=addDlg.m_strClips; m_pSet-m_content=addDlg.m_strContent; m_pSet-m_other=addDlg.m_strOther; m_pSet-m_workor=addDlg.m_strWorkor; m_pSet-Update(); Sort(m_bIsAsc); ShowTableData();5.3.2查詢(xún)記錄對(duì)話框的創(chuàng)建查詢(xún)記錄對(duì)話框與添加記錄對(duì)話框的創(chuàng)建方法相似,只是起省略了具體內(nèi)容這一項(xiàng)。各控件的屬性也與添加記錄對(duì)話框相同。該對(duì)話框的類(lèi)名為CrecordSearch,其所對(duì)應(yīng)的實(shí)現(xiàn)查詢(xún)記錄功能函數(shù)為CXiahuaView:OnRecordSearch(),該函數(shù)實(shí)現(xiàn)代碼如下:void CXiahuaView:OnRecordSearch() / TODO: Add your command handler code hereCRecordSearch search;CString str;if(search.DoModal()=IDCANCEL)return;elseASSERT(m_pSet-CanRestart();search.m_strCrt.MakeLower();m_bIsShowAll=FALSE;CDaoFieldInfo fieldInfo;if(!search.m_strCrt.IsEmpty() fieldInfo.m_strName=顯象管; m_pSet-m_strFilter=fieldInfo.m_strName+ = +search.m_strCrt+; m_pSet-Requery();else if(!search.m_strClips.IsEmpty() fieldInfo.m_strName=機(jī)芯; m_pSet-m_strFilter=fieldInfo.m_strName+ = +search.m_strClips+; m_pSet-Requery();else if(!search.m_strCase.IsEmpty()elseAfxMessageBox(_T(請(qǐng)輸入顯象管型號(hào)),MB_ICONEXCLAMATION);OnRecordSearch();ShowTableData();5.3.3修改記錄對(duì)話框的創(chuàng)建修改記錄對(duì)話框的創(chuàng)建與增加記錄對(duì)話框的創(chuàng)建相似,其界面和各控件的屬性與添加記錄對(duì)話框相同,只是其對(duì)應(yīng)的類(lèi)名為CrecordEdit。實(shí)現(xiàn)修改記錄功能函數(shù)為CXiahuaView:OnRecordEdit(),以下是其完整代碼。void CXiahuaView:OnRecordEdit() / TODO: Add your command handler code hereif(memberright()=0)return;else CListCtrl &ctl=GetListCtrl(); POSITION pos=ctl.GetFirstSelectedItemPosition(); if(pos=NULL) AfxMessageBox(_T(沒(méi)有選中記錄),MB_ICONEXCLAMATION); else 5.3.4查看記錄對(duì)話框的創(chuàng)建此對(duì)話框的創(chuàng)建與上大同小異,這里略去。5.4打印預(yù)覽模塊的創(chuàng)建在以上實(shí)現(xiàn)了各模塊后,基本上一完成了對(duì)數(shù)據(jù)的完整操作,為了能更好的實(shí)現(xiàn)數(shù)據(jù)信息在現(xiàn)實(shí)中的多方位使用,有必要對(duì)系統(tǒng)實(shí)現(xiàn)按照生產(chǎn)工程部的資料管理規(guī)范的打印功能。實(shí)現(xiàn)該打印功能,主要是編輯OnPrint函數(shù)。具體代碼如下:void CXiahuaView:OnPrint(CDC* pDC, CPrintInfo* pInfo) / TODO: Add your specialized code here and/or call the base classpDC-SetMapMode(MM_LOENGLISH);CXiahuaDoc* pDoc=GetDocument();ASSERT_VALID(pDoc);clrRef=0X00000000;oPen.CreatePen(PS_SOLID,2,clrRef);pDC-SelectObject(&oPen);clrRef=0X00C000C0;oBrush.CreateSolidBrush(clrRef);pDC-SelectObject(&oBrush);oHeadFont.CreatePointFont(160,Areal,pDC);pDC-SelectObject(&oHeadFont);pDC-SetBkMode(TRANSPARENT);CListCtrl &ctl=GetListCtrl();POSITION pos=ctl.GetFirstSelectedItemPosition();if(pos=NULL)AfxMessageBox(_T(沒(méi)有選中記錄),MB_ICONEXCLAMATION);return;else 6. Windows Sockets規(guī)范簡(jiǎn)介Windows Sockets規(guī)范以U.C. Be

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論