




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
產(chǎn)品故障信息管理系統(tǒng)內(nèi)容摘要本文介紹了如何使用Visual C+ 6.0編程制作彩色電視機(jī)故障信息共享系統(tǒng),實現(xiàn)信息管理共享的自動化。由此實現(xiàn)了信息的增加、刪除、修改、查看等功能,并且進(jìn)而實現(xiàn)信息的安全管理,使信息的管理更加人性化,規(guī)范化。從而提高故障排除效率,提高信息利用率,有助于進(jìn)一步提高生產(chǎn)效率。關(guān)鍵詞: 信息管理 信息共享 故障 數(shù)據(jù)庫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公司開發(fā)的基于Windows操作系統(tǒng)的編程工具,它采用一種巧妙的方法將Windows的編程復(fù)雜性封裝起來,編程者可以比較輕松地進(jìn)行Windows應(yīng)用程序的設(shè)計。Visual C+ 6.0繼承了以前版本的優(yōu)點(diǎn),為用戶提供了更為友好的可視化開發(fā)環(huán)境,是當(dāng)今程序員首選的開發(fā)工具。它在編程的深入性、運(yùn)行的快速性等方面具有很強(qiáng)的功能。隨著社會的飛速發(fā)展,信息管理系統(tǒng)已廣泛地運(yùn)用于各行各業(yè)。信息在企業(yè)生產(chǎn)經(jīng)營中扮演著越來越重要的角色。企業(yè)內(nèi)部和外部之間的信息變得越來越頻繁,方式越來越復(fù)雜,信息量日益增大,速度越來越快,絲毫不亞于企業(yè)的物質(zhì)、能量交流,信息流在企業(yè)系統(tǒng)中所占份額逐漸上升。這樣一來,企業(yè)信息管理才應(yīng)運(yùn)而生,成為企業(yè)管理的重要組成部分。企業(yè)信息管理的產(chǎn)生是企業(yè)管理發(fā)展到一定階段的必然產(chǎn)物,是企業(yè)管理發(fā)展史上的劃時代的進(jìn)步。故障信息管理,一般是指設(shè)備或系統(tǒng)在使用中喪失或降低其規(guī)定的功能。故障管理,其目的是保證設(shè)備經(jīng)常處于完好狀態(tài),嚴(yán)格控制設(shè)備的故障發(fā)生,降低故障率,減少維修費(fèi)用,延長設(shè)備的使用壽命。 而信息化建設(shè)對企業(yè)來說無疑已經(jīng)成為企業(yè)在現(xiàn)代競爭社會中立足的重要因素。而從中國大陸企業(yè)現(xiàn)狀來看,大部分企業(yè)的信息化建設(shè)都是依靠專業(yè)化軟件公司。毋庸置疑,對于大規(guī)模的管理系統(tǒng),例如CRM(Client Relation Manager),ERP(Enterprise Resource Plan)等,使用專業(yè)軟件公司開發(fā)的產(chǎn)品,功能相對齊全,安全級別也相對較高。但對于企業(yè)內(nèi)部小范圍內(nèi)所需的一些小系統(tǒng)而言,如也依靠此種方式,勢必會產(chǎn)生無謂的成本流失。鑒于這種形式,借助這次畢業(yè)設(shè)計的機(jī)會,在指導(dǎo)老師的幫助下,經(jīng)過一段時間的努力,開發(fā)出了這套彩電共享系統(tǒng)。本系統(tǒng)主要用于對已有故障信息進(jìn)行更高效的管理,提高信息的利用率,改變了以往煩瑣的查找,大大提高了故障的排除速度及正確率,對進(jìn)一步提高生產(chǎn)效率具有十分重要的意義。 下面我們將按照軟件工程學(xué)思想,對整個系統(tǒng)制作過程做個一般性闡述。1.系統(tǒng)設(shè)計1.1目標(biāo)設(shè)計通過一個彩電故障信息共享系統(tǒng),使生產(chǎn)工程部的故障處理工作系統(tǒng)化,規(guī)范化,自動化,從而達(dá)到提高故障排除效率,提高信息利用率的目的。1.2開發(fā)設(shè)計思想l 盡量采用生產(chǎn)工程部現(xiàn)有的軟硬件環(huán)境及齊全的故障信息,從而達(dá)到充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。l 系統(tǒng)應(yīng)符合生產(chǎn)工程部資料管理規(guī)范,符合普通員工操作的規(guī)范,達(dá)到操作過程中的直觀、方便、實用、安全等要求。l 系統(tǒng)采用Visual C+環(huán)境,用ADO(ActiveX Data Objects)數(shù)據(jù)訪問方式,采用Microsoft Access 2000作為數(shù)據(jù)源,使整個系統(tǒng)易于使用及維護(hù)。l 系統(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充、維護(hù)。l 系統(tǒng)應(yīng)具備數(shù)據(jù)維護(hù)功能,及時根據(jù)數(shù)據(jù)變化進(jìn)行添加、刪除、修改、查詢等操作,并加入擁護(hù)權(quán)限功能,使系統(tǒng)更加安全1.3功能分析本系統(tǒng)功能分析是在系統(tǒng)開發(fā)總體任務(wù)的基礎(chǔ)上完成的,本系統(tǒng)需要完成的功能如下:l 故障信息的輸入、查詢、修改、刪除l 故障信息的打印l 系統(tǒng)用戶管理,權(quán)限管理1.4功能模塊設(shè)計在系統(tǒng)功能分析的基礎(chǔ)上,考慮Visual C+程序編制的特點(diǎn),得到圖1所示的系統(tǒng)功能模塊圖。信息查詢權(quán)限驗證信息變動信息數(shù)據(jù)刪除信息修改信息增加新信息管理員信息管理打印管理系統(tǒng)管理權(quán)限用戶刪除增加修改查詢彩電故障信息共享系統(tǒng) 圖1系統(tǒng)功能模塊圖圖2數(shù)據(jù)流程圖2.數(shù)字庫設(shè)計數(shù)據(jù)結(jié)構(gòu)的好壞將直接影響到系統(tǒng)的效率以及實現(xiàn)的效果。好的數(shù)據(jù)庫結(jié)構(gòu)會減少數(shù)據(jù)庫的存儲量、冗余度,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應(yīng)速度,簡化基于數(shù)據(jù)庫的應(yīng)用程序的實現(xiàn)方法等。2.1數(shù)據(jù)庫需求分析在仔細(xì)研究資料管理過程的基礎(chǔ)上,歸納出系統(tǒng)的數(shù)據(jù)流程圖如上圖2所示,所有數(shù)據(jù)均由管理員輸入管理。根據(jù)圖2的數(shù)據(jù)流程圖,可得到所須設(shè)計的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下:l 故障信息,包括的數(shù)據(jù)項有顯象管、機(jī)芯、機(jī)殼、器件、技術(shù)員、時間、其他、信息名、具體內(nèi)容等。l 權(quán)限驗證,包括的數(shù)據(jù)項有用戶名、密碼等。由上分析,為此需要有2個數(shù)據(jù)表分別用來存放故障信息的用戶信息。這兩個數(shù)據(jù)表均用Access 2000實現(xiàn)。Access中的設(shè)計視圖如圖3、圖4所示,其中數(shù)據(jù)類型根據(jù)具體的數(shù)據(jù)字段來設(shè)置。圖3 info1視圖圖4 login視圖2.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計在分析需求的基礎(chǔ)上,我們得到整個系統(tǒng)的E-R圖如圖5所示。3.創(chuàng)建應(yīng)用程序本彩電故障信息共享系統(tǒng)采用Visual C+ 6.0的ADO方法開發(fā)。工程創(chuàng)建具體步驟如下:打開Visual C+后,選擇菜單“File/New”中的“Project”選項卡中的“MFC AppWizard exe”,設(shè)置工程名字為“CaidianGuzhang”,選擇存儲位置,單擊“OK”。創(chuàng)建一個單文檔應(yīng)用程序,在Step1中,選擇“Single Document”,然后單擊“Next”按扭,進(jìn)入“Step 2 of 6”。一直單擊“Next”按扭,直到進(jìn)入“Step 6 of 6”。因為為了能使數(shù)據(jù)更直觀,我們采用列表形式,所以需要在本步驟中,選擇CCaidianGuzhangView類的Base Class(基類)為ClistView。然后單擊“Finish”,最后將出現(xiàn)確認(rèn)窗口,如圖6所示,檢查無誤后,單擊“確定”,即可完成工程創(chuàng)建。圖6 確認(rèn)為了使程序能支持ADO數(shù)據(jù)庫對象,應(yīng)該在頭文件stdafx.h(預(yù)編譯頭文件)中加入#import c:Program FilesCommon FilesSystemadomsado15.dll rename_namespace(AdoNS) rename(EOF,adoEOF)using namespace AdoNS; 導(dǎo)入ADO庫并在主程序入口:BOOL CCaidianGuzhangApp:InitInstance()中加入AfxOleInit();初始化COM環(huán)境。ADO (ActiveX Data Objects)是Microsoft開發(fā)數(shù)據(jù)庫應(yīng)用程序的面向?qū)ο蟮男陆涌?,描述了軟件中存取多種數(shù)據(jù)源的統(tǒng)一接口,并提供了實現(xiàn)ADO模型的COM組件,使得不同程序設(shè)計語言均可使用ADO。在NET Framework的System.Data命名空間中定義這些類-這些類表示到數(shù)據(jù)庫的連接、數(shù)據(jù)庫中的表,和表中所包含的數(shù)據(jù)類型。更廣義地講,ADO.NET就是Microsoft最新的數(shù)據(jù)訪問策略。其主要的優(yōu)點(diǎn)是靈活,易于使用、速度快、內(nèi)存支出少和磁盤遺跡小,簡化了操作。ADO類的定義是作為一種資源存儲在ADO DLL(msado15.dll)中,在其內(nèi)部稱為類型庫。類型庫描述了自治接口,以及C使用的COM vtable接口。當(dāng)使用import指令時,在運(yùn)行時Visual C需要從ADO DLL中讀取這個類型庫,并以此創(chuàng)建一組C頭文件。ADO庫包含三個智能指針:_ConnectionPtr、_CommandPtr和_RecordsetPtr。_ConnectionPtr通常被用來創(chuàng)建一個數(shù)據(jù)連接或執(zhí)行一條不返回任何結(jié)果的SQL語句,如一個存儲過程。_CommandPtr返回一個記錄集。它提供了一種簡單的方法來執(zhí)行返回記錄集的存儲過程和SQL語句。在使用_CommandPtr接口時,可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用連接串。 _RecordsetPtr是一個記錄集對象。與以上兩種對象相比,它對記錄集提供了更多的控制功能,如記錄鎖定、游標(biāo)控制等。4.數(shù)據(jù)庫操作準(zhǔn)備由于本系統(tǒng)使用的是ADO方式訪問數(shù)據(jù)庫,因此可以使用從視表到記錄集的映射。為了編程便捷,可以為數(shù)據(jù)庫中的每個表映射一個記錄集類(從CDaoRecordSet類繼承)。映射關(guān)系如下表1所示。表1 記錄集映射關(guān)系表格(視圖)對應(yīng)記錄集Info1CDataSetloginCLoginSetCDaoRecordSet封裝了ADO記錄集對象,用于管理一個來自表定義(基礎(chǔ)表)或查詢定義的記錄集合。CDaoRecordSet對象有三種使用的原型,分別為table-type(基于單個數(shù)據(jù)表)、dynaset-type(基于組合查詢)、snapshot-type(基于組合查詢的靜態(tài)拷貝)。對記錄集的映射有兩種方法:第一種是直接從CDaoRecordSet類創(chuàng)建記錄集,并且動態(tài)綁定記錄字段;第二種是使用ClassWizard創(chuàng)建CDaoRecordSet類的派生類,并利用DFX機(jī)制記錄數(shù)據(jù)與記錄集字段數(shù)據(jù)成員之間的映射。在本系統(tǒng)中,我首先使用第二種方法,方法是在ClassWizard中單擊“New Class”,進(jìn)入下一窗口,設(shè)置類名為“CDataSet”,選擇Base Class(基類)為CDaoRecordSet,然后單擊“OK”,進(jìn)入“Database Option”窗口,選中“ADO”,按瀏覽按鈕后,選擇需要映射的文件(此處為info1.mdb),具體過程如圖7所示。最后在彈 圖7 選擇ADO數(shù)據(jù)庫文件出的Select Database Table(數(shù)據(jù)表選擇對話框)中選中要映射的表名(在此為info1)。單擊“OK”即可。同樣的方法,建立類“CloginSet”,映射的表名為login。但是此種方法把數(shù)據(jù)庫訪問路徑給固定了,我們可以從以下Visual C+自行建立的函數(shù)看出。CString CDataSet:GetDefaultDBName()return _T(D:visualMSDev98MyProjectsxiahuainfo1.mdb);為了能使系統(tǒng)在各個環(huán)境下都可正常運(yùn)行,需要修改此函數(shù),使數(shù)據(jù)庫實現(xiàn)動態(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; /將所對應(yīng)文件改成所要的數(shù)據(jù)庫名return m_strDatabaseName; /返回數(shù)據(jù)庫所在的完整路徑同樣的,我們也必須修改CLoginSet:GetDefaultDBName()函數(shù)。因為其內(nèi)部程序與CDataSet:GetDefaultDBName()相同,所以我們就不再此列出。5.功能模塊的創(chuàng)建 在鏈接了數(shù)據(jù)庫后,接下來我們就可以開始進(jìn)行各功能模塊的創(chuàng)建。5.1系統(tǒng)主體窗體的創(chuàng)建在我們按照VC+的AppWizard創(chuàng)建完工程后,為了使主窗口框架更適合整個系統(tǒng)的操作,我們有必要進(jìn)行修改,重新創(chuàng)建。5.1.1主菜單的創(chuàng)建在WorkSpase中選擇ResourseView,然后雙擊Menu文件夾,再雙擊IDR_MAINFRAME選項,單擊右邊窗口中“幫助”旁邊的虛線框,在雙擊或按回車鍵,就會出現(xiàn)“Menu Item Properties”對話框,在這個對話框中輸入菜單項的內(nèi)容,如圖8所示。圖8設(shè)置一級菜單二級菜單的設(shè)置基本上都和圖8相同,只是必須設(shè)置ID。按照這種方法,最終創(chuàng)建出如表2所示的菜單結(jié)構(gòu)。表2 菜單結(jié)構(gòu)菜單名稱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信息管理.查詢記錄ID_RECORD_SEARCH.添加記錄ID_RECORD_ADD.查看記錄ID_RECORD_VIEW.刪除記錄ID_RECORD_DEL.更改記錄ID_RECORD_EDIT權(quán)限管理.添加用戶ID_USER_ADD.更改密碼ID_PASSWARD_EDIT.刪除用戶ID_USER_DEL幫助.關(guān)于xiahua 1.0ID_APP_ABOUT5.1.2右鍵菜單的創(chuàng)建為了實現(xiàn)操作的方便、快捷,我們在程序中加入了右鍵菜單。在VC的主菜單中,按“Project”“New Project”“Components and Controls Gallery”即可進(jìn)入“Components and Controls Gallery”對話框,然后再打開Visual C+ Components文件,再選擇“Pop-up Menu”,單擊“insert”,隨后在跳出的對話框中選擇“CxiahuaView”,最后單擊“OK”。完成后,需要對其進(jìn)行編輯。單擊WorkSpase中的ResourseView,在Menu文件夾中選擇CG_IDR_POPUP_MAIN_FRAME,之后邊可在右邊窗口對其進(jìn)行編輯。編輯方法與主菜單相同,其中各項的ID分別對應(yīng)相應(yīng)的菜單項,對應(yīng)關(guān)系如表3所示。表3 右鍵菜單對應(yīng)的菜單項ID菜單名稱ID查看記錄ID_RECORD_VIEW添加記錄ID_RECORD_ADD刪除記錄ID_RECORD_DEL更改記錄ID_RECORD_EDIT5.1.3工具欄的創(chuàng)建在WorkSpase中選擇ResourseView,然后雙擊Toolbar文件夾,再雙擊IDR_MAINFRAM選項,就可以利用工具條編輯器(Toolbar Editor)編輯右邊的工具條。本系統(tǒng)創(chuàng)建的工具條如圖9所示。其中各按鈕的ID分別對應(yīng)相應(yīng)的菜單項,按從做到右的順序?qū)?yīng)的菜單項ID如表4所示。表4工具條對應(yīng)的菜單項ID次序ID1ID_FILE_PRINT2ID_RECORD_ADD3ID_RECORD_DEL4ID_RECORD_SEARCH5ID_RECORD_ALL6ID_APP_ABOUT(注:其中第5個是顯示全部數(shù)據(jù),實現(xiàn)刷新功能,在菜單中沒有)5.1.4數(shù)據(jù)顯示與表格控件的創(chuàng)建因為CxiahuaView是從ClistView繼承的,所以創(chuàng)建完工程后,就已經(jīng)有表格控件存在。而我們目的就是使控件上的顯示更符合系統(tǒng)的使用,所以我們有必要對初試界面也就是對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è)置窗體類型/初始化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(); /打開數(shù)據(jù)庫 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,時間);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ù)接下來就是要編寫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() /如果沒有到達(dá)數(shù)據(jù)末尾,則顯示數(shù)據(jù) /設(shè)置各數(shù)據(jù)項的顯示寬度for(int j=0;jMoveFirst(); /將m_pSet指針再指向首條記錄,便于下次操作到此,我們完成了主體框架的制作,主窗口如圖9所示。圖9 主窗口5.2系統(tǒng)用戶權(quán)限管理模塊的創(chuàng)建為了數(shù)據(jù)庫使用的安全,必須對數(shù)據(jù)庫的各種操作實行權(quán)限管理。只有管理員允許的人員才有權(quán)力使用。允許的用戶和密碼都預(yù)先存在數(shù)據(jù)庫中,本系統(tǒng)中為login表。權(quán)限管理模塊主要實現(xiàn)如下功能:l 添加用戶l 更改密碼l 刪除用戶l 用戶登錄(權(quán)限驗證)5.2.1添加用戶對話框的創(chuàng)建 在ResourseView中,右擊Dialog,選擇Insert Dialog,便可在右邊窗口中編輯對話框。完成的對話框如圖10所示。對話框中各種非靜態(tài)文本控件的屬性見表5。 圖10 添加用戶對話框 圖11密碼修改對話框表5添加用戶對話框中各控件的屬性設(shè)置控件ID用戶名Edit BoxIDC_USER密碼Edit BoxIDC_PSWD確認(rèn)密碼Edit BoxIDC_COMPSWD對話框編輯完成后,雙擊該對話框,進(jìn)入New Class對話框,取此登記對話框的類名為CAddUser。然后在MFC ClassWizard中選擇Class name為CXiahuaView,Object IDs為“ID_USER_ADD”,Messages為“COMMAND”,單擊Add Function按鈕,取系統(tǒng)默認(rèn)的函數(shù)名,再單擊Edit Code按鈕,即可進(jìn)入代碼編輯器對函數(shù)CXiahuaView:OnUserAdd()進(jìn)行編輯。此函數(shù)代碼如下:void CXiahuaView:OnUserAdd() / TODO: Add your command handler code hereCLoginSet *m_daorecordset=new CLoginSet(&pDatabase);/初始化連接數(shù)據(jù)庫指針 CString strSQL;if(adiministrator()=0) /管理員權(quán)限驗證,失敗返回return; else /成功進(jìn)入增加用戶窗口 CAddUser adduser;/進(jìn)入增加用戶窗口 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( 對不起!n+adduser.m_strUser+已經(jīng)存在,請嘗試用其他名字!),MB_ICONEXCLAMATION);elseif(adduser.m_strPswd.Compare(adduser.m_strCompswd)!=0) AfxMessageBox(_T(兩遍新密碼輸入不一致!n請重輸!),MB_ICONEXCLAMATION); else 5.2.2更改密碼對話框的創(chuàng)建更改密碼對話框的創(chuàng)建與添加用戶對話框的創(chuàng)建基本相同,完成后的對話框如圖11所示。對話框中各種非靜態(tài)文本控件的屬性見表6。表6 修改密碼對話框中各控件的屬性設(shè)置控件ID用戶名Edit BoxIDC_USER原密碼Edit BoxIDC_FORMERPS新密碼Edit BoxIDC_NEWPS確認(rèn)Edit BoxIDC_CONFIRPS同樣方法,取此密碼對話框的類名為CModPswd。執(zhí)行此對話框的函數(shù)為CXiahuaView:OnPasswardEdit(),實現(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(無此用戶!n請向管理員咨詢),MB_ICONEXCLAMATION);m_daorecordset-Close();OnPasswardEdit(); else m_daorecordset-Close();/先關(guān)閉,以便以后再次打開記錄集體對象 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(密碼錯誤!n請注意大小寫),MB_ICONEXCLAMATION); else if(modpswd.m_strNewps.Compare(modpswd.m_strConfirps)!=0) AfxMessageBox(_T(兩遍新密碼輸入不一致!n 請重輸!), 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請記住新密碼!),MB_ICONEXCLAMATION); 5.2.3刪除用戶對話框的創(chuàng)建創(chuàng)建方法同上,完成后的對話框如圖12所示。對話框中各種非靜態(tài)文本控件的屬性見表7。取此刪除用戶對話框的類名為CDelUser。執(zhí)行此對話框功能的函數(shù)為CXiahuaView:OnUserDel(),代碼如下:表7 刪除用戶對話框中各控件的屬性設(shè)置控件IDEdit BoxIDC_USER 圖12刪除用戶對話框 圖13用戶登錄對話框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)限驗證,失敗返回return;elseCDelUser deluser;/成功。調(diào)入刪除用戶窗口if(deluser.DoModal()=IDCANCEL) return; else if(deluser.m_strUser.Compare(user)=0) AfxMessageBox(_T( 對不起!n不允許刪除管理員),MB_ICONEXCLAMATION);else CString str1;str1.Format(%s,deluser.m_strUser); if(AfxMessageBox(確定要刪除+str1+嗎?,MB_YESNO|MB_ICONEXCLAMATION)=IDYES) strSQL.Format(delete from login where user=%s,deluser.m_strUser); pDatabase.Execute(strSQL);5.2.4用戶登錄對話框的創(chuàng)建創(chuàng)建方法同上,完成后的對話框如圖13所示。對話框中各種非靜態(tài)文本控件的屬性見表8。取此刪除用戶對話框的類名為CloginDlg。表8 修改密碼對話框中各控件的屬性設(shè)置控件ID用戶名Edit BoxIDC_USER密碼Edit BoxIDC_PASS5.3信息管理模塊的創(chuàng)建故障信息在管理中需要進(jìn)行各種不同的操作,信息管理模塊主要實現(xiàn)如下功能:l 查看記錄l 查詢記錄l 添加記錄l 刪除記錄l 修改記錄5.3.1添加記錄對話框的創(chuàng)建 在ResourseView中,右擊Dialog,選擇Insert Dialog,便可在右邊窗口中編輯對話框。完成的對話框如圖14所示。對話框中各種非靜態(tài)文本控件的屬性見表9。表9信息登記對話框中各控件的屬性設(shè)置控件ID顯象管Edit BoxIDC_CRT機(jī)芯Edit BoxIDC_CLIPS機(jī)殼Edit BoxIDC_CASE器件Edit BoxIDC_DEVICE技術(shù)員Edit BoxIDC_WORKOR時間Date Time PickerIDC_DATE其他Edit BoxIDC_OTHER信息名Edit BoxIDC_INFO具體內(nèi)容Edit BoxIDC_CONTENT 圖14 信息登記對話框?qū)υ捒蚓庉嬐瓿珊?,雙擊該對話框,進(jìn)入New Class對話框,取此登記對話框的類名為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)用戶驗證,失敗返回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請確定您已輸入有效信息),MB_ICONEXCLAMATION); OnRecordAdd(); addDlg.m_strCrt=crt; else addDlg.m_strCrt.TrimLeft( ); /去除各選項左右無效空格字符 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查詢記錄對話框的創(chuàng)建查詢記錄對話框與添加記錄對話框的創(chuàng)建方法相似,只是起省略了具體內(nèi)容這一項。各控件的屬性也與添加記錄對話框相同。該對話框的類名為CrecordSearch,其所對應(yīng)的實現(xiàn)查詢記錄功能函數(shù)為CXiahuaView:OnRecordSearch(),該函數(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(請輸入顯象管型號),MB_ICONEXCLAMATION);OnRecordSearch();ShowTableData();5.3.3修改記錄對話框的創(chuàng)建修改記錄對話框的創(chuàng)建與增加記錄對話框的創(chuàng)建相似,其界面和各控件的屬性與添加記錄對話框相同,只是其對應(yīng)的類名為CrecordEdit。實現(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(沒有選中記錄),MB_ICONEXCLAMATION); else 5.3.4查看記錄對話框的創(chuàng)建此對話框的創(chuàng)建與上大同小異,這里略去。5.4打印預(yù)覽模塊的創(chuàng)建在以上實現(xiàn)了各模塊后,基本上一完成了對數(shù)據(jù)的完整操作,為了能更好的實現(xiàn)數(shù)據(jù)信息在現(xiàn)實中的多方位使用,有必要對系統(tǒng)實現(xiàn)按照生產(chǎn)工程部的資料管理規(guī)范的打印功能。實現(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(沒有選中記錄),MB_ICONEXCLAMATION);return;else 6. Windows Sockets規(guī)范簡介Windows Sockets規(guī)范以U.C. Be
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度合同管理崗位職責(zé)及考核評價體系合同
- 二零二五年度一手房買賣合同解除及補(bǔ)償協(xié)議書
- 二零二五年度叉車安全操作規(guī)范協(xié)議及安全責(zé)任追究辦法
- 2025年度生物科技項目出資入股合同
- 二零二五年度門窗行業(yè)技術(shù)培訓(xùn)與咨詢服務(wù)合同協(xié)議
- 政府臨時工合同工2025年度勞動合同履行與監(jiān)督協(xié)議
- 二零二五年度新能源債權(quán)轉(zhuǎn)讓與項目合作合同
- 二零二五年度人工智能研發(fā)團(tuán)隊勞動集體合同(人工智能應(yīng)用)
- 教師教育教學(xué)質(zhì)量評估合作協(xié)議2025年度范本
- 2025年度高校畢業(yè)生就業(yè)見習(xí)基地協(xié)議
- 2024-2025學(xué)年六年級上學(xué)期數(shù)學(xué)第三單元3.1-搭積木比賽(教案)
- DeepSeek從入門到精通
- 植保機(jī)械技術(shù)培訓(xùn)課件
- 人工智能賦能職業(yè)教育高質(zhì)量發(fā)展研究
- 2024年水利工程建設(shè)行業(yè)市場發(fā)展監(jiān)測及投資潛力預(yù)測報告
- 崗位職責(zé)心得體會(2篇)
- 高中地理興趣小組活動方案
- 立案委托書撰寫指南讓法律更簡單3篇
- 機(jī)械設(shè)計基礎(chǔ) 課件 01機(jī)械設(shè)計概論
- 基于大數(shù)據(jù)的消費(fèi)趨勢預(yù)測與分析報告
- 高三地理一輪復(fù)習(xí)+課件+第三部分+4.4國際合作
評論
0/150
提交評論