版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄
任務(wù)利用SQLServer數(shù)據(jù)系統(tǒng)驗證程序的準確性驗證程序的準確性任務(wù):利用SQL數(shù)據(jù)庫系統(tǒng)驗證程序的準確性準備知識課程設(shè)計的目的和意義系統(tǒng)分析與設(shè)計數(shù)據(jù)庫設(shè)計與實現(xiàn)1.課程設(shè)計的目的和意義1.課程設(shè)計的目的和意義我國北方的大部分城市冬天都采取集中供暖制度,按照住房面積收繳取暖費。但是這種收費方式存在著很大的弊病,比如客廳和廚房晚上是沒有人居住的,所以并不需要供暖。按照現(xiàn)在的供暖方式,客廳和廚房在晚上也是進行供暖的,這樣就浪費了大量的熱量。還有就是即使整個住房都沒有人住,但是冬天也照樣要按照住房面積交納取暖費。致使許多居民對這種收費方式很不滿意,也給供熱公司的工作造成很大的麻煩。國家建設(shè)部2000年發(fā)布了《民用建筑節(jié)能管理規(guī)定》,從2000年10月起,所有利用集中供熱的新建住宅,“推行溫度調(diào)節(jié)和戶用熱量計量裝置,實行供熱計量收費”。小提示:2.系統(tǒng)分析與設(shè)計2.系統(tǒng)分析與設(shè)計目前已有許多城市的供暖收費制度已經(jīng)改革為按使用熱量收費,大家的節(jié)能意識都有很大提高。上班前關(guān)掉家里的供暖閥門,下班后再打開,晚上休息后關(guān)掉客廳和廚房的供暖閥門。不僅為國家節(jié)約大量的燃煤,居民也節(jié)省了不少的取暖費。因此為了適應(yīng)新的供暖制度,一套新的供暖管理及收費軟件也相應(yīng)而生。這是一套相當龐大的系統(tǒng),包括管理、控制、抄表、收費等等多個子系統(tǒng),我們這里不可能全面的講解。所以我們以收費子系統(tǒng)為例,簡化的講解一下實際的應(yīng)用。2.系統(tǒng)分析與設(shè)計2.系統(tǒng)分析與設(shè)計(1)功能描述1)住戶信息登記。包括住戶的聯(lián)系人姓名、電話、當前剩余熱量、當前狀態(tài)、住房信息、用戶類型等。2)住戶預(yù)購熱量。即住戶預(yù)繳納一定的費用進行熱量購買。3)住房信息登記。登記住戶住房的信息,包括小區(qū)信息、樓號、單元號、門牌號、或其他地址、熱量表編號等。4)熱量收費標準設(shè)置。即定制每千卡熱量的單價。可以根據(jù)用戶類型的不同定制不同的收費標準。5)住戶熱量結(jié)算。每天跟據(jù)住戶使用的熱量和住戶的剩余熱量進行結(jié)算,即用住戶昨天的剩余熱量減去當天使用的熱量等到今天的剩余熱量,如果剩余熱量為負數(shù)則置用戶為欠費狀態(tài);如果剩余熱量低于預(yù)定閥值,則置用戶為預(yù)警用戶等等。6)預(yù)警閥值設(shè)定。根據(jù)住戶平均的天消耗熱量設(shè)定預(yù)警閥值。7)小區(qū)信息登記。8)預(yù)警用戶統(tǒng)計。對已經(jīng)進入預(yù)警閥值的用戶進行查詢統(tǒng)計,然后進行預(yù)交費通知,避免用戶由于未能及時交費造成熱量表關(guān)閉閥門。2.系統(tǒng)分析與設(shè)計2.系統(tǒng)分析與設(shè)計(2)功能模塊設(shè)計根據(jù)功能描述,熱量收費系統(tǒng)可以分為3大模塊,每個模塊都提供了更具體的功能。熱量收費系統(tǒng)的功能模塊圖如圖所示。系統(tǒng)功能模塊圖3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(1)數(shù)據(jù)庫需求設(shè)計根據(jù)系統(tǒng)功能模塊圖中的具體功能,我們對數(shù)據(jù)庫需求進行設(shè)計。1)住戶信息,住戶編號、聯(lián)系人姓名、聯(lián)系人電話、聯(lián)系人手機、用戶類型、當前狀態(tài)、剩余熱量、住房編號、收費標準2)住房信息,小區(qū)編號、住房編號、樓號、單元號、門牌號、其他地址、熱量表編號、當前讀值、當前狀態(tài)、是否更新3)熱表抄表記錄,熱量表編號、當前讀值、抄表時間4)預(yù)購熱量信息,住戶編號、收費標準、預(yù)購熱量值、收費金額、優(yōu)惠金額、交費日期5)結(jié)算記錄,計算日期,住戶編號、住房編號、熱量表編號、上次讀值、當前讀值、結(jié)算值。6)熱表更換記錄,住房編號、拆除表編號、替換表編號7)收費標準,收費標準編號、收費標準、制定日期、當前狀態(tài)、用戶類型8)預(yù)警閥值信息,閥值編號、天平均消耗、閥值系數(shù)、制定日期、當前狀態(tài)9)用戶類型,住戶類型編號、住戶類型,比如一般住戶、商業(yè)住戶、五保住戶等等,住戶類型不同其收費標準也不相同。10)小區(qū)信息,小區(qū)編號、小區(qū)名稱3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(2)數(shù)據(jù)庫表的設(shè)計1)住戶信息表(Customers)住戶類型的不同,其收費標準也不同,具體的值可以設(shè)置,比如一般住戶、商業(yè)住戶、五保住戶等等。當前狀態(tài)表示當前住戶處于的狀態(tài):正常、預(yù)警、欠費、注銷。字段名稱數(shù)據(jù)類型可否為空說明CustomerNointIdentity(1,1)NOTNULL住戶編號LinkmanNameVarchar(20)NOTNULL聯(lián)系人姓名PhoneNoVarchar(20)NULL電話MobileNoVarchaar(20)NULL手機CustomerTypeNoIntNOTNULL用戶類型編號CustomerStateVarchar(10)NOTNULL當前狀態(tài)SurplusIntNOTNULL剩余熱量RoomNoIntNOTNULL住房編號ChargeNoIntNOTNULL收費標準住戶信息表3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)2)住房信息(Room)住房信息的樓號、單元號、門牌號為一組信息,其他地址為一組信息,這兩組信息只能有一組為空,我們通過觸發(fā)器來維護這兩組數(shù)據(jù)的完整性。住房信息表字段名稱數(shù)據(jù)類型可否為空說明RegionNoIntNOTNULL小區(qū)編號RoomNoIntIdentity(1,1)NOTNULL住房編號BuildingNoVarchar(10)NULL樓號CellNoVarchar(10)NULL單元號HouseNoVarchar(10)NULL門牌號OtherAddrVarchar(50)NULL其他地址HeaterNoIntNOTNULL熱表編號CurrentNumberIntNOTNULL當前讀值CurrentStateVarchar(10)NOTNULL當前狀態(tài)ForUpdateVarchar(1)NOTNULL是否更新3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3)熱表抄表記錄(HeaterRecorder)熱表抄表記錄是每次抄表巡檢系統(tǒng)依次讀取網(wǎng)絡(luò)中每一塊熱表當前的標值,實際應(yīng)用中每天進行一次抄表,當然這個時間是可以設(shè)定的,抄表記錄是住戶結(jié)算的依據(jù)。熱表抄表記錄字段名稱數(shù)據(jù)類型可否為空說明HeaterNoIntNOTNULL熱表編號CurrentNumberIntNOTNULL當前讀值RecordTimeDatetimeNOTNULL抄表時間3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)4)預(yù)購熱量信息(BuyHeat)預(yù)購熱量信息字段名稱數(shù)據(jù)類型可否為空說明CustomerNoIntNOTNULL住戶編號CharegNoIntNOTNULL收費標準BuyHeatIntNOTNULL預(yù)購熱量MoneyIntNOTNULL收費金額ReduceMoneyIntNOTNULL優(yōu)惠金額PayTimeDatetimeNOTNULL交費日前3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)5)結(jié)算記錄(Reckoning)結(jié)算操作一般為每天晚上進行,在每天抄表完成之后進行計算。結(jié)算記錄字段名稱數(shù)據(jù)類型可否為空說明ReckoningTimeDatetimeNOTNULL結(jié)算時間CustomerNoIntNOTNULL住戶編號RoomNoIntNOTNULL住房編號HeaterNoIntNOTNULL熱表編號PreviousNumberIntNOTNULL上次讀值CurrentNumberIntNOTNULL當前讀值ReckoningNumberIntNOTNULL結(jié)算值3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)6)熱表更換記錄(HeaterInstead)熱表更換記錄字段名稱數(shù)據(jù)類型可否為空說明RoomNoIntNOTNULL住房編號UninstallHeaterNoIntNOTNULL拆除表編號InstallHeaterNoIntNOTNULL替換表編號CurrentNumberIntNOTNULL替換表讀值3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)7)收費標準(ChargeNo)收費標準是根據(jù)不同的住戶類型決定的,不同的住戶類型其收費標準是不一樣的。當前狀態(tài)表示該收費標準是否可用,不可用的收費標準在登記住戶時是不出現(xiàn)的。收費標準字段名稱數(shù)據(jù)類型可否為空說明ChargeNoIntIdentity(1,1)NOTNULL收費標準編號ChargeIntNOTNULL收費標準InsertTimeDatetimeNOTNULL制定日期InUseVarchar(1)NOTNULL當前狀態(tài)CustomerTypeNoIntNOTNULL住戶類型3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)8)預(yù)警閥值信息(Forecast)預(yù)警閥值用于每天的結(jié)算操作,結(jié)算操作會根據(jù)每個住戶的剩余熱量和預(yù)警閥值設(shè)定住戶是否屬于預(yù)警住戶,第二天操作員可以統(tǒng)計預(yù)警住戶,使用電話通知系統(tǒng)或者短信平臺對該住戶進行通知。預(yù)警閥值信息字段名稱數(shù)據(jù)類型可否為空說明ForecastNoIntIdentity(1,1)NOTNULL預(yù)警閥值編號DayAverageIntNOTNULL日平均消耗值QuotietyintNOTNULL系數(shù)InsertTimeDatetimeNOTNULL制定日期InUseVarchar(1)NOTNULL當前狀態(tài)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)9)住戶類型(CustomerType)住戶類型字段名稱數(shù)據(jù)類型可否為空說明CustomerTypeNoIntIdentity(1,1)NOTNULL住戶類型編號CustomerTypeVarchar(20)NOTNULL住戶類型3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)10)小區(qū)信息(Region)小區(qū)信息字段名稱數(shù)據(jù)類型可否為空說明RegionNoIntIdentity(1,1)NOTNULL小區(qū)編號RegionNameVarchar(20)NOTNULL小區(qū)名稱3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(3)數(shù)據(jù)庫表的實現(xiàn)創(chuàng)建以上數(shù)據(jù)表的SQL語句如下:--住戶信息表表CREATETABLE[dbo].[Customers]( [CustomerNo][int]IDENTITY(1,1)NOTNULL, [LinkManName][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL, [PhoneNo][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [MobileNo][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [CustomerTypeNo][int]NOTNULL, [CustomerState][varchar](10)COLLATEChinese_PRC_CI_ASNULLNOTNULL, [Surplus][int]NOTNULL, [RoomNo][int]NOTNULL, [ChargeNo][int]NOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--住房信息CREATETABLE[dbo].[Room]( [RegionNo][int]NOTNULL, [RoomNo][int]IDENTITY(1,1)NOTNULL, [BuildingNo][varchar](10)COLLATEChinese_PRC_CI_ASNULL, [CellNo][varchar](10)COLLATEChinese_PRC_CI_ASNULL, [HouseNo][varchar](10)COLLATEChinese_PRC_CI_ASNULL, [OtherAddr][varchar](50)COLLATEChinese_PRC_CI_ASNULL, [HeaterNo][int]NOTNULL, [CurrentNumber][int]NOTNULL, [CurrentState][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL, [ForUpdate][varchar](1)COLLATEChinese_PRC_CI_ASNOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--熱表抄表記錄CREATETABLE[dbo].[HeaterRecorder]( [HeaterNo][int]NOTNULL, [CurrentNumber][int]NOTNULL, [RecordTime][datetime]NOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--預(yù)購熱量信息CREATETABLE[dbo].[BuyHeat]( [CustomerNo][int]NOTNULL, [CharegNo][int]NOTNULL, [BuyHeat][int]NOTNULL, [Money][int]NOTNULL, [ReduceMoney][int]NULL, [PayTime][datetime]NOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--結(jié)算記錄CREATETABLE[dbo].[Reckoning]( [ReckoningTime][datetime]NOTNULL, [CustomerNo][int]NOTNULL, [RoomNo][int]NOTNULL, [HeaterNo][int]NOTNULL, [PreviousNumber][int]NOTNULL, [CurrentNumber][int]NOTNULL, [ReckoningNumber][int]NOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--熱表更換記錄CREATETABLE[dbo].[HeaterInstead]( [RoomNo][int]NOTNULL, [UninstallHeaterNo][int]NOTNULL, [InstallHeaterNo][int]NOTNULL, [CurrentNumber][int]NOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--收費標準CREATETABLE[dbo].[ChargeNo]( [CustomerTypeNo][int]NOTNULL, [ChargeNo][int]IDENTITY(1,1)NOTNULL, [Charge][int]NOTNULL, [InsertTime][datetime]NOTNULL, [InUse][varchar](1)COLLATEChinese_PRC_CI_ASNOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--預(yù)警閥值信息CREATETABLE[dbo].[Forecast]( [ForecastNo][int]IDENTITY(1,1)NOTNULL, [DayAverage][int]NOTNULL, [Quotiety][int]NOTNULL, [InsertTime][datetime]NOTNULL, [InUse][varchar](1)COLLATEChinese_PRC_CI_ASNOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--住戶類型CREATETABLE[dbo].[CustomerType]( [CustomerTypeNo][int]IDENTITY(1,1)NOTNULL, [CustomerType][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)--小區(qū)信息CREATETABLE[dbo].[Region]( [RegionNo][int]IDENTITY(1,1)NOTNULL, [RegionName][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL)運行查詢分析器t,進入“連接到SQLserver登錄”頁面,有兩種登陸模式,用戶可以根據(jù)自己SQL安裝時的情況,選擇登陸登錄成功后,在頁面的編輯區(qū)域輸入上述SQL語句,單擊F5鍵,即可創(chuàng)建這些數(shù)據(jù)表。3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(4)數(shù)據(jù)庫存儲過程的實現(xiàn)登記住戶信息存儲過程完成住戶信息的登記,包括住戶姓名、聯(lián)系電話、聯(lián)系手機、住戶類型、住房編號、收費標準。登記預(yù)購熱量存儲過程完成了住戶預(yù)購熱量記錄,包括住戶編號、收費標準、預(yù)購熱量、應(yīng)收金額、優(yōu)惠金額、預(yù)購日期。3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(4)系統(tǒng)界面的實現(xiàn)完成系統(tǒng)分析后、做好數(shù)據(jù)庫的設(shè)計和實現(xiàn)后,接下來就可以進行熱量收費系統(tǒng)的界面設(shè)計和編碼了。1)創(chuàng)建應(yīng)用程序①主界面的設(shè)計運行Delphi,打開Delphi主頁面后,會自動生成一個Form,我們就從這個頁面開始我們的程序設(shè)計。要注意!電壓跟隨器是同相比例運算的特殊情況,輸入電阻大,輸出電阻小。在電路中作用與分立元件的射極輸出器相同,但是電壓跟隨性能好。要注意!主頁面共分為4部分。上部分是菜單和快捷鍵部分,包括住戶管理、住房管理和系統(tǒng)設(shè)置。左邊是住戶查詢區(qū),分為按小區(qū)查詢和詳細查詢兩種查詢方式。右邊的上部分是查詢住戶的信息瀏覽框,通過左面的小區(qū)查詢或者詳細查詢,將查詢的住戶信息在列表框中展示出來。左下部分是住戶預(yù)購熱量區(qū),通過在左上選中某個住戶可以在預(yù)購熱量區(qū)進行熱量預(yù)購。3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)如圖所示。程序主界面3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)②菜單設(shè)計系統(tǒng)菜單一共分為3大項,分別為住戶管理、住房管理和系統(tǒng)設(shè)置,每個菜單項下面又有各自的子菜單。下表列出了主菜單和各個子菜單的名稱及其相應(yīng)處理函數(shù)或過程。菜單設(shè)計主菜單項名稱子菜單項名稱函數(shù)或過程住戶管理M_CustomersManager登記住戶信息NNewCustomerNNewCustomerClick每天結(jié)算NRcekoningNRcekoningClick預(yù)警住戶統(tǒng)計NForecastCustomersNForecastCustomersClick住房管理M_RoomManager住房信息登記NNewRoomNNewRoomClick更換熱表NChangeHeaterNChangeHeaterClick住戶類型設(shè)置M_SystemSetting住戶類型設(shè)置NCustomerTypeNCustomerTypeClick收費標準制定NChargeStandardNChargeStandardClick預(yù)警閥值設(shè)置NForecastNForecastClick分片小區(qū)登記NRegionManagerNRegionManagerClick3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)下圖為設(shè)計效果圖。菜單設(shè)計3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)③查詢部分的設(shè)計查詢部分提供了兩種查詢方式:按小區(qū)查詢和詳細查詢。我們在前面的數(shù)據(jù)庫設(shè)計時已經(jīng)提到,為了便于住戶信息的管理和查詢統(tǒng)計,將住戶按小區(qū)進行分片。這里的小區(qū)查詢就是以小區(qū)為關(guān)鍵字進行住戶的查詢統(tǒng)計,當然這種查詢方法的查詢結(jié)果面積比較大,不易于準確定位,但是便于瀏覽小區(qū)的所有住戶情況。詳細查詢提供了準確定位的查詢方法。小提示:可以按照小區(qū)、聯(lián)系人姓名、聯(lián)系人電話、聯(lián)系人手機、住戶類型、住戶狀態(tài)等信息進行精確的定位。3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)下表列出了該部分的控件、控件類型、控件ID及相關(guān)函數(shù)或事件。控件類型ID函數(shù)或事件屬性及說明TListViewLV_RegionLV_RegionSelectItem按小區(qū)名稱進行住戶查詢TLabelTLabel1小區(qū)名稱標簽TLabelTLabel2聯(lián)系人姓名標簽TLabelTLabel3聯(lián)系人電話標簽TLabelTLabel4聯(lián)系人手機標簽TLabelTLabel5住戶類型標簽TLabelTLabel6住戶狀態(tài)標簽TEditE_region小區(qū)名稱編輯框TEditE_LinkMan聯(lián)系人姓名編輯框TEditE_LinkPhone聯(lián)系人電話編輯框TEditE_LinkMobile聯(lián)系人手機編輯框TEditCB_CustomerType住戶類型下拉列表TEditCB_CustomerState住戶狀態(tài)下拉列表TButtonBtn_searchBtn_searchClick按詳細條件進行住戶查找查詢界面資源列表3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)下面為兩個查詢頁框的設(shè)計效果圖。分區(qū)查詢、詳細查詢界面3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)④住戶信息瀏覽及預(yù)購熱量住戶信息瀏覽框展示住戶查詢結(jié)果的信息,通過選擇某個住戶后,在下面的預(yù)購熱量頁框里進行熱量預(yù)購操作。住戶信息瀏覽及預(yù)購熱量資源列表控件類型ID函數(shù)或事件屬性及說明TListViewLV_customersLV_customersSelectItem選擇住戶進行交費TLabelLabel7預(yù)購熱量標簽TLabelLabel8應(yīng)交金額標簽TLabelLabel9優(yōu)惠金額標簽TEditE_buyHeat預(yù)購熱量編輯框TEditE_money應(yīng)交金額編輯框TEditE_ReduceMoney優(yōu)惠金額編輯框TButtonB_ChargeB_ChargeClick進行交費3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)下圖為設(shè)計效果圖。住戶瀏覽及預(yù)購熱量設(shè)計3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)⑤部分代碼//登記住戶信息procedureTHeaterForm.NNewCustomerClick(Sender:TObject);beginForm_newcustomer.showmodal;end;//每天結(jié)算procedureTHeaterForm.NRcekoningClick(Sender:TObject);beginForm_reckoning.showmodal;end;3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)//預(yù)警住戶統(tǒng)計procedureTHeaterForm.NForecastCustomersClick(Sender:TObject);beginForm_Forecast.showmodal;end;//住房信息登記procedureTHeaterForm.NNewRoomClick(Sender:TObject);beginForm_NewRoom.showmodal;end;3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)//更換熱表procedureTHeaterForm.NChangeHeaterClick(Sender:TObject);beginForm_changeHeater.showmodal;end;//住戶類型設(shè)置procedureTHeaterForm.NCustomerTypeClick(Sender:TObject);beginForm_CustomerType.showmodal;end;//收費標準設(shè)置procedureTHeaterForm.NChargeStandardClick(Sender:TObject);beginForm_ChargeStandard.showmodal;end;3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)//預(yù)警閥值設(shè)置procedureTHeaterForm.NForecastClick(Sender:TObject);beginForm_forecastSetting.showmodal;end;//分片小區(qū)登記procedureTHeaterForm.NRegionManagerClick(Sender:TObject);beginForm_Region.showmodal;end;3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)2)創(chuàng)建數(shù)據(jù)庫連接在設(shè)計到數(shù)據(jù)庫操作之前,我們要先設(shè)計相關(guān)的數(shù)據(jù)庫操作。我們在系統(tǒng)中把所有關(guān)于數(shù)據(jù)的操作放到DataModule中。打開File菜單,選擇New。DataModule對話框3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)delphi會自動生成一個DataModule頁面,我們選擇用ADO連進行連接和操作SQLServer2019。DataModule設(shè)計3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)我們在DataModule頁面里面放置一個ADOConnection1用來連接數(shù)據(jù),一個ADOTable1用來展示數(shù)據(jù)庫表,一個ADOQuery1用來執(zhí)行查詢和修改,一個ADOStoredProc1用來執(zhí)行數(shù)據(jù)庫存儲過程。DataModule資源列表控件類型ID變量或函數(shù)屬性及說明TDataModuleTDataModule1DataModuleCreate初始化數(shù)據(jù)庫連接TADOConnectionADOConnection1AfterDisconnectBeforeDisconnect數(shù)據(jù)連接完成后數(shù)據(jù)庫連接斷開前TADOTableADOTable1暫時不考慮TADOQueryADOQuery1暫時不考慮TADOStoredProcADOStoredProc1暫時不考慮3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)
3)登記住戶信息設(shè)計登記住戶信息模塊完成了對所有集中供暖住戶信息的登記。在登記住戶的同時要登記住戶住房編號,住房編號是我們已經(jīng)登記完成的住房的編號,所以在進行住戶登記之前一定要先登記上住房信息。住戶登記后,住戶的狀態(tài)為正常住戶,但是這時住戶的預(yù)購熱量為0,所以住戶在登記完自己的信息之后要進行預(yù)購熱量。小提示:3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)登記住戶信息的界面的設(shè)計效果如圖。登記住戶信息3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)其中使用的控件類型、ID、變量或函數(shù)、屬性及說明如下所示。登記住戶信息控件類型ID變量或函數(shù)屬性及說明TFormForm_newcustomerFormShow主窗體TComboBoxComboBox3ComboBox3Change選擇小區(qū)下拉列表TBevelBevel1無分隔線TGroupBoxGroupBox1無選擇住房信息分組框TListViewListView1無住房信息列表TGroupBoxGroupBox2無登記住戶信息分組框TLabelLabel1無住戶姓名標簽TLabelLabel2無聯(lián)系電話標簽3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)住戶登記資源列表TLabelLabel3無聯(lián)系手機標簽TLabelLabel4無住戶類型標簽TLabelLabel5無選擇小區(qū)標簽TLabelLabel6無收費標準標簽TLabelLabel5無住房編號標簽TEditEdit1無住戶姓名編輯框TEditEdit2無聯(lián)系電話編輯框TEditEdit3無聯(lián)系手機編輯框TComboBoxComboBox1ComboBox1Change住戶類型下拉列表TComboBoxComboBox2無收費標準下拉列表TButtonButton1Button1Click登記按鈕TButtonButton2Button2Click退出按鈕結(jié)算也不一定是每天都進行一次,可以每周或者每半個月等時間間隔來進行結(jié)算。小提示3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(5)每天結(jié)算每天結(jié)算完成住戶熱量結(jié)算功能。結(jié)算操作可以對系統(tǒng)中的所有住戶進行結(jié)算,也可以安裝輸入的查詢條件,先進行查詢,然后對查詢結(jié)果進行結(jié)算。每天結(jié)算界面設(shè)計3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)進入該功能界面后,默認情況下全部結(jié)算復(fù)選框是被選中的,也就是說默認情況下是進行全部結(jié)算的。此時下面住戶查詢區(qū)的編輯框和按鈕是不可用狀態(tài),當取消全部結(jié)算后,查詢區(qū)的編輯框和按鈕變?yōu)榭捎脿顟B(tài)。其中使用的控件類型、ID、變量或函數(shù)、屬性及說明如下表所示。每天結(jié)算資源列表控件類型ID變量或函數(shù)屬性及說明TLabelLabel1小區(qū)名稱標簽TLabelLabel2住戶姓名標簽TLabelLabel3聯(lián)系人電話標簽TLabelLabel4聯(lián)系人手機標簽TLabelLabel5住戶地址標簽TEditEdit1小區(qū)名稱編輯框TEditEdit2住戶姓名編輯框TEditEdit3聯(lián)系人電話編輯框TEditEdit4聯(lián)系人手機編輯框TEditEdit5住戶地址輯框TCheckBoxCheckBox1全部結(jié)算復(fù)選框TBevelBevel1分割線TButtonButton1結(jié)算按鈕TButtonButton2查詢按鈕TListViewListView1查詢住戶列表框在結(jié)算功能中共有兩種結(jié)算方式,第一種是把系統(tǒng)中所有的住戶全部進行結(jié)算,第二種是對查詢結(jié)果的住戶進行結(jié)算。共調(diào)用了兩種不同的結(jié)算過程。注:3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(6)預(yù)警住戶統(tǒng)計預(yù)警住戶統(tǒng)計模塊可以按分片小區(qū)把即將欠費的用戶統(tǒng)計出來。預(yù)警住戶統(tǒng)計界面設(shè)計知識鏈接可以進行電話通知或者上門收費服務(wù),避免住戶在不知情的情況下造成欠費,影響住戶的取暖。3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)通過在小區(qū)名稱下拉列表中選擇要進行統(tǒng)計的小區(qū)名稱,然后按查詢按鈕進行查詢。小區(qū)中所有處于預(yù)警狀態(tài)的住戶全部在下面的住戶列表框中顯示出來。其中使用的控件類型、ID、變量或函數(shù)、屬性及說明如下所示。預(yù)警住戶資源列表控件類型ID變量或函數(shù)屬性及說明TFormForm_ForecastFormShow主窗體TLabelLabel1小區(qū)名稱標簽TComboBoxComboBox1小區(qū)名稱下拉列表TButtonButton1Button1Click查詢按鈕TBevelBevel1分割線TListViewListView1住戶列表框3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(7)住房信息登記住房信息登記功能完成所有住房信息的登記入庫。登記住房的同時也將該住房的熱表信息登記入庫,包括熱表的編號和熱表的當前讀值。住房信息登記3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)其中使用的控件類型、ID、變量或函數(shù)、屬性及說明如下所示。住房登記資源列表控件類型ID變量或函數(shù)屬性及說明TFormForm_NewRoomFormShow主窗體TLabelLabel1小區(qū)名稱標簽TLabelLabel2樓棟編號標簽TLabelLabel3單元編號標簽TLabelLabel4門牌編號標簽TLabelLabel5熱表編號標簽TLabelLabel6當前讀值標簽TLabelLabel7其他地址標簽TBevelBevel1分割線TComboBoxComboBox1ComboBox1Change小區(qū)名稱下拉列表TEditEdit1樓棟編號編輯框TEditEdit2單元編號編輯框TEditEdit3門牌編號編輯框TEditEdit4熱表編號編輯框TEditEdit5當前讀值編輯框TEditEdit6其他地址編輯框TButtonButton1Button1Click登記按鈕TGroupBoxGroupBox1分組框TListViewListView1住房信息列表在小區(qū)名稱下拉列表中選擇住房所在的小區(qū)的同時下面的小區(qū)住房信息列表框會查詢出該小區(qū)的所有已有住房信息。小提示:3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(8)更換熱表當住房內(nèi)的熱表發(fā)生故障時,我們要及時進行更換。一般來說熱表的故障有自動關(guān)閥門、打不開閥門、自動開閥門、關(guān)不上閥門、不計量熱量或在關(guān)閉閥門的情況下也進行熱量累加等等。更換熱表功能的界面設(shè)計效果圖如下所示。圖5-12更換熱表界面設(shè)計3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)其中使用的控件類型、ID、變量或函數(shù)、屬性及說明如下所示。更換熱表資源列表控件類型ID變量或函數(shù)屬性及說明TFormForm_changeHeaterFormShow主窗體TLabelLabel1小區(qū)名稱標簽TLabelLabel2更換熱表標簽TLabelLabel3當前讀值標簽TBevelBevel1分割線TComboBoxComboBox1ComboBox1Change小區(qū)名稱下拉列表TListViewListView1小區(qū)住房信息列表TEditEdit1更換熱表編輯框TEditEdit2當前讀值編輯框TButton1Button1Button1Click更換按鈕熱表更換操作調(diào)用數(shù)據(jù)庫的存儲過程InsertHeaterInstead來完成住房熱表編號的更換,當前讀值得修改,以及更換表的抄表記錄的生成。小提示3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(9)住戶類型設(shè)計不同的住戶類型其收費標準是不一樣的,比如軍烈屬用戶、商用戶、特殊照顧用戶,就是類似五保用戶等等。住戶類型功能就是完成這些住戶類型的登記。住戶類型設(shè)置模塊的界面設(shè)計效果圖如下所示。住戶類型設(shè)置界面設(shè)計3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)其中使用的控件類型、ID、變量或函數(shù)、屬性及說明如下所示。住戶類型設(shè)置資源列表控件類型ID變量或函數(shù)屬性及說明TFormForm_CustomerTypeFormShow主窗體TLabelLabel1住戶類型名稱標簽TEditEdit1住戶類型名稱編輯框TButtonButton1Button1Click登記按鈕TBevelBevel1分割線TListViewListView1住戶類型列表框3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)(10)收費標準設(shè)置收費標準設(shè)置根據(jù)不同的住戶類型設(shè)置不同的收費標準。此模塊中首先要選擇住戶類型,然后對該住戶類型進行收費標準登記,在選擇住戶類型的同時,該住戶類型的所有收費標準都會顯示在收費列表中。收費標準設(shè)置界面設(shè)計3.數(shù)據(jù)庫設(shè)計與實現(xiàn)3.數(shù)據(jù)庫設(shè)計與實現(xiàn)其中使用的控件類型、ID、變量或函數(shù)、屬性及說明如下所示。收費標準設(shè)置資源列表控件類型ID變量或函數(shù)屬性及說明TFormForm_ChargeStandardFormShow主窗體TLabelLabel1住戶類型標簽TComboBoxComboBox1ComboBox1Change住戶類型下拉列表TLabelLabel2收費標準標簽TEditEdit1收費標準編輯框TLabelLabel3單位標簽TButtonButton1Button1Click登
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019湘美版 高中美術(shù) 選擇性必修5 工藝《第二單元 印染工藝》大單元整體教學(xué)設(shè)計2020課標
- 2024屆貴州省平壩縣新啟航教育高三第二次適應(yīng)性(模擬)檢測試題數(shù)學(xué)試題
- 2024屆廣東省重點名校高三下期1月月考數(shù)學(xué)試題
- 餐館服務(wù)員勞務(wù)合同
- 材料供應(yīng)合同協(xié)議
- 病情免責(zé)協(xié)議書
- 北京市勞動合同法實施細則全文
- 期末 試題 -2024-2025學(xué)年人教PEP版英語六年級上冊 (含答案)
- 湖北省孝感市漢川市2024-2025學(xué)年九年級上學(xué)期期中歷史試題
- 鋁壓延加工材相關(guān)行業(yè)投資規(guī)劃報告范本
- 藝術(shù)哲學(xué):美是如何誕生的學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 廣西科普傳播中心招考高頻難、易錯點500題模擬試題附帶答案詳解
- 關(guān)于體育健身的調(diào)查問卷
- 2024年重慶市高考地理真題(解析版)
- 建立校園欺凌案發(fā)與處理的記錄系統(tǒng)
- 2024年江蘇省南通市中考英語試卷(含答案解析)
- 案例一動植物細胞模型制作課件人教版生物七年級上冊
- 2024下半年江蘇無錫市屬國企業(yè)招聘111人高頻500題難、易錯點模擬試題附帶答案詳解
- 2024年秋季新人教版八年級上冊物理全冊教案(2024年新教材)
- 2024年新華師大版七年級上冊數(shù)學(xué)教學(xué)課件 第2章 整式及其加減 2.4 整式的加減 2.合并同類項
- 2024年安徽省地勘行業(yè)職業(yè)技能大賽(地質(zhì)調(diào)查員)考試題庫(含答案)
評論
0/150
提交評論