项目五 设计水暖热量收费系统 课件(共89张PPT) -《SQL Server 2008数据库管理与开发》同步教学(华南理工大学出版社)

资源下载
  1. 二一教育资源

项目五 设计水暖热量收费系统 课件(共89张PPT) -《SQL Server 2008数据库管理与开发》同步教学(华南理工大学出版社)

资源简介

(共89张PPT)
项目五 设计水暖热量收费系统
本项目主要介绍利用SQL Server 2008数据库系统的相关知识实际水暖热量收费系统,在实际操作中帮助读者掌握SQL Server 2008数据库的应用。
目录
任务
利用SQL Server数据系统验证程序的准确性








任务:利用SQL数据库系统验证程序的准确性
准备知识
课程设计的目的和意义
系统分析与设计
数据库设计与实现
1.










1. 课程设计的目的和意义
我国北方的大部分城市冬天都采取集中供暖制度,按照住房面积收缴取暖费。但是这种收费方式存在着很大的弊病,比如客厅和厨房晚上是没有人居住的,所以并不需要供暖。按照现在的供暖方式,客厅和厨房在晚上也是进行供暖的,这样就浪费了大量的热量。还有就是即使整个住房都没有人住,但是冬天也照样要按照住房面积交纳取暖费。致使许多居民对这种收费方式很不满意,也给供热公司的工作造成很大的麻烦。
国家建设部2000年发布了《民用建筑节能管理规定》,从2000年10月起,所有利用集中供热的新建住宅,“推行温度调节和户用热量计量装置,实行供热计量收费”。
小提示:
2.







2. 系统分析与设计
目前已有许多城市的供暖收费制度已经改革为按使用热量收费,大家的节能意识都有很大提高。上班前关掉家里的供暖阀门,下班后再打开,晚上休息后关掉客厅和厨房的供暖阀门。不仅为国家节约大量的燃煤,居民也节省了不少的取暖费。
因此为了适应新的供暖制度,一套新的供暖管理及收费软件也相应而生。这是一套相当庞大的系统,包括管理、控制、抄表、收费等等多个子系统,我们这里不可能全面的讲解。所以我们以收费子系统为例,简化的讲解一下实际的应用。
2.







2. 系统分析与设计
(1)功能描述
1)住户信息登记。包括住户的联系人姓名、电话、当前剩余热量、当前状态、住房信息、用户类型等。
2)住户预购热量。即住户预缴纳一定的费用进行热量购买。
3)住房信息登记。登记住户住房的信息,包括小区信息、楼号、单元号、门牌号、或其他地址、热量表编号等。
4)热量收费标准设置。即定制每千卡热量的单价。可以根据用户类型的不同定制不同的收费标准。
5)住户热量结算。每天跟据住户使用的热量和住户的剩余热量进行结算,即用住户昨天的剩余热量减去当天使用的热量等到今天的剩余热量,如果剩余热量为负数则置用户为欠费状态;如果剩余热量低于预定阀值,则置用户为预警用户等等。
6)预警阀值设定。根据住户平均的天消耗热量设定预警阀值。
7)小区信息登记。
8)预警用户统计。对已经进入预警阀值的用户进行查询统计,然后进行预交费通知,避免用户由于未能及时交费造成热量表关闭阀门。
2.







2. 系统分析与设计
(2)功能模块设计
根据功能描述,热量收费系统可以分为3大模块,每个模块都提供了更具体的功能。热量收费系统的功能模块图如图所示。
系统功能模块图
3.








3. 数据库设计与实现
(1)数据库需求设计
根据系统功能模块图中的具体功能,我们对数据库需求进行设计。
1)住户信息,住户编号、联系人姓名、联系人电话、联系人手机、用户类型、当前状态、剩余热量、住房编号、收费标准
2)住房信息,小区编号、住房编号、楼号、单元号、门牌号、其他地址、热量表编号、当前读值、当前状态、是否更新
3)热表抄表记录,热量表编号、当前读值、抄表时间
4)预购热量信息,住户编号、收费标准、预购热量值、收费金额、优惠金额、交费日期
5)结算记录,计算日期,住户编号、住房编号、热量表编号、上次读值、当前读值、结算值。
6)热表更换记录,住房编号、拆除表编号、替换表编号
7)收费标准,收费标准编号、收费标准、制定日期、当前状态、用户类型
8)预警阀值信息,阀值编号、天平均消耗、阀值系数、制定日期、当前状态
9)用户类型,住户类型编号、住户类型,比如一般住户、商业住户、五保住户等等,住户类型不同其收费标准也不相同。
10)小区信息,小区编号、小区名称
3.








3. 数据库设计与实现
(2)数据库表的设计
1)住户信息表(Customers)
住户类型的不同,其收费标准也不同,具体的值可以设置,比如一般住户、商业住户、五保住户等等。
当前状态表示当前住户处于的状态:正常、预警、欠费、注销。
字段名称 数据类型 可否为空 说明
CustomerNo int Identity (1, 1) NOT NULL 住户编号
LinkmanName Varchar(20) NOT NULL 联系人姓名
PhoneNo Varchar(20) NULL 电话
MobileNo Varchaar(20) NULL 手机
CustomerTypeNo Int NOT NULL 用户类型编号
CustomerState Varchar(10) NOT NULL 当前状态
Surplus Int NOT NULL 剩余热量
RoomNo Int NOT NULL 住房编号
ChargeNo Int NOT NULL 收费标准
住户信息表
3.








3. 数据库设计与实现
2)住房信息(Room)
住房信息的楼号、单元号、门牌号为一组信息,其他地址为一组信息,这两组信息只能有一组为空,我们通过触发器来维护这两组数据的完整性。
住房信息表
字段名称 数据类型 可否为空 说明
RegionNo Int NOT NULL 小区编号
RoomNo Int Identity (1, 1) NOT NULL 住房编号
BuildingNo Varchar(10) NULL 楼号
CellNo Varchar(10) NULL 单元号
HouseNo Varchar(10) NULL 门牌号
OtherAddr Varchar(50) NULL 其他地址
HeaterNo Int NOT NULL 热表编号
CurrentNumber Int NOT NULL 当前读值
CurrentState Varchar(10) NOT NULL 当前状态
ForUpdate Varchar(1) NOT NULL 是否更新
3.








3. 数据库设计与实现
3)热表抄表记录(HeaterRecorder)
热表抄表记录是每次抄表巡检系统依次读取网络中每一块热表当前的标值,实际应用中每天进行一次抄表,当然这个时间是可以设定的,抄表记录是住户结算的依据。
热表抄表记录
字段名称 数据类型 可否为空 说明
HeaterNo Int NOT NULL 热表编号
CurrentNumber Int NOT NULL 当前读值
RecordTime Datetime NOT NULL 抄表时间
3.








3. 数据库设计与实现
4)预购热量信息(BuyHeat)
预购热量信息
字段名称 数据类型 可否为空 说明
CustomerNo Int NOT NULL 住户编号
CharegNo Int NOT NULL 收费标准
BuyHeat Int NOT NULL 预购热量
Money Int NOT NULL 收费金额
ReduceMoney Int NOT NULL 优惠金额
PayTime Datetime NOT NULL 交费日前
3.








3. 数据库设计与实现
5)结算记录(Reckoning)
结算操作一般为每天晚上进行,在每天抄表完成之后进行计算。
结算记录
字段名称 数据类型 可否为空 说明
ReckoningTime Datetime NOT NULL 结算时间
CustomerNo Int NOT NULL 住户编号
RoomNo Int NOT NULL 住房编号
HeaterNo Int NOT NULL 热表编号
PreviousNumber Int NOT NULL 上次读值
CurrentNumber Int NOT NULL 当前读值
ReckoningNumber Int NOT NULL 结算值
3.








3. 数据库设计与实现
6)热表更换记录(HeaterInstead)
热表更换记录
字段名称 数据类型 可否为空 说明
RoomNo Int NOT NULL 住房编号
UninstallHeaterNo Int NOT NULL 拆除表编号
InstallHeaterNo Int NOT NULL 替换表编号
CurrentNumber Int NOT NULL 替换表读值
3.








3. 数据库设计与实现
7)收费标准(ChargeNo)
收费标准是根据不同的住户类型决定的,不同的住户类型其收费标准是不一样的。当前状态表示该收费标准是否可用,不可用的收费标准在登记住户时是不出现的。
收费标准
字段名称 数据类型 可否为空 说明
ChargeNo Int Identity (1, 1) NOT NULL 收费标准编号
Charge Int NOT NULL 收费标准
InsertTime Datetime NOT NULL 制定日期
InUse Varchar(1) NOT NULL 当前状态
CustomerTypeNo Int NOT NULL 住户类型
3.








3. 数据库设计与实现
8)预警阀值信息(Forecast)
预警阀值用于每天的结算操作,结算操作会根据每个住户的剩余热量和预警阀值设定住户是否属于预警住户,第二天操作员可以统计预警住户,使用电话通知系统或者短信平台对该住户进行通知。
预警阀值信息
字段名称 数据类型 可否为空 说明
ForecastNo Int Identity (1, 1) NOT NULL 预警阀值编号
DayAverage Int NOT NULL 日平均消耗值
Quotiety int NOT NULL 系数
InsertTime Datetime NOT NULL 制定日期
InUse Varchar(1) NOT NULL 当前状态
3.








3. 数据库设计与实现
9)住户类型(CustomerType)
住户类型
字段名称 数据类型 可否为空 说明
CustomerTypeNo Int Identity (1, 1) NOT NULL 住户类型编号
CustomerType Varchar(20) NOT NULL 住户类型
3.








3. 数据库设计与实现
10 )小区信息(Region)
小区信息
字段名称 数据类型 可否为空 说明
RegionNo Int Identity (1, 1) NOT NULL 小区编号
RegionName Varchar(20) NOT NULL 小区名称
3.








3. 数据库设计与实现
(3)数据库表的实现
创建以上数据表的SQL语句如下:
--住户信息表表
CREATE TABLE [dbo].[Customers] (
[CustomerNo] [int] IDENTITY (1, 1) NOT NULL ,
[LinkManName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[PhoneNo] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[MobileNo] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[CustomerTypeNo] [int] NOT NULL ,
[CustomerState] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL NOT NULL ,
[Surplus] [int] NOT NULL ,
[RoomNo] [int] NOT NULL ,
[ChargeNo] [int] NOT NULL
)
3.








3. 数据库设计与实现
--住房信息
CREATE TABLE [dbo].[Room] (
[RegionNo] [int] NOT NULL ,
[RoomNo] [int] IDENTITY (1, 1) NOT NULL ,
[BuildingNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[CellNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[HouseNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[OtherAddr] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[HeaterNo] [int] NOT NULL ,
[CurrentNumber] [int] NOT NULL ,
[CurrentState] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ForUpdate] [varchar] (1) COLLATE Chinese_PRC_CI_AS NOT NULL
)
3.








3. 数据库设计与实现
--热表抄表记录
CREATE TABLE [dbo].[HeaterRecorder] (
[HeaterNo] [int] NOT NULL ,
[CurrentNumber] [int] NOT NULL ,
[RecordTime] [datetime] NOT NULL
)
3.








3. 数据库设计与实现
--预购热量信息
CREATE TABLE [dbo].[BuyHeat] (
[CustomerNo] [int] NOT NULL ,
[CharegNo] [int] NOT NULL ,
[BuyHeat] [int] NOT NULL ,
[Money] [int] NOT NULL ,
[ReduceMoney] [int] NULL ,
[PayTime] [datetime] NOT NULL
)
3.








3. 数据库设计与实现
--结算记录
CREATE TABLE [dbo].[Reckoning] (
[ReckoningTime] [datetime] NOT NULL ,
[CustomerNo] [int] NOT NULL ,
[RoomNo] [int] NOT NULL ,
[HeaterNo] [int] NOT NULL ,
[PreviousNumber] [int] NOT NULL ,
[CurrentNumber] [int] NOT NULL ,
[ReckoningNumber] [int] NOT NULL
)
3.








3. 数据库设计与实现
--热表更换记录
CREATE TABLE [dbo].[HeaterInstead] (
[RoomNo] [int] NOT NULL ,
[UninstallHeaterNo] [int] NOT NULL ,
[InstallHeaterNo] [int] NOT NULL ,
[CurrentNumber] [int] NOT NULL
)
3.








3. 数据库设计与实现
--收费标准
CREATE TABLE [dbo].[ChargeNo] (
[CustomerTypeNo] [int] NOT NULL ,
[ChargeNo] [int] IDENTITY (1, 1) NOT NULL ,
[Charge] [int] NOT NULL ,
[InsertTime] [datetime] NOT NULL ,
[InUse] [varchar] (1) COLLATE Chinese_PRC_CI_AS NOT NULL
)
3.








3. 数据库设计与实现
--预警阀值信息
CREATE TABLE [dbo].[Forecast] (
[ForecastNo] [int] IDENTITY (1, 1) NOT NULL ,
[DayAverage] [int] NOT NULL ,
[Quotiety] [int] NOT NULL ,
[InsertTime] [datetime] NOT NULL ,
[InUse] [varchar] (1) COLLATE Chinese_PRC_CI_AS NOT NULL
)
3.








3. 数据库设计与实现
--住户类型
CREATE TABLE [dbo].[CustomerType] (
[CustomerTypeNo] [int] IDENTITY (1, 1) NOT NULL ,
[CustomerType] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL
)
3.








3. 数据库设计与实现
--小区信息
CREATE TABLE [dbo].[Region] (
[RegionNo] [int] IDENTITY (1, 1) NOT NULL ,
[RegionName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL
)
运行查询分析器t,进入“连接到SQLserver 登录”页面,有两种登陆模式,用户可以根据自己SQL安装时的情况,选择登陆登录成功后,在页面的编辑区域输入上述SQL语句,单击F5键,即可创建这些数据表。
3.








3. 数据库设计与实现
(4)数据库存储过程的实现
登记住户信息存储过程完成住户信息的登记,包括住户姓名、联系电话、联系手机、住户类型、住房编号、收费标准。
登记预购热量存储过程完成了住户预购热量记录,包括住户编号、收费标准、预购热量、应收金额、优惠金额、预购日期。
3.








3. 数据库设计与实现
(4)系统界面的实现
完成系统分析后、做好数据库的设计和实现后,接下来就可以进行热量收费系统的界面设计和编码了。
1)创建应用程序
①主界面的设计
运行Delphi,打开Delphi主页面后,会自动生成一个Form,我们就从这个页面开始我们的程序设计。
要注意!
电压跟随器是同相比例运算的特殊情况,输入电阻大,输出电阻小。在电路中作用与分立元件的射极输出器相同,但是电压跟随性能好。
要注意!
主页面共分为4部分。上部分是菜单和快捷键部分,包括住户管理、住房管理和系统设置。左边是住户查询区,分为按小区查询和详细查询两种查询方式。右边的上部分是查询住户的信息浏览框,通过左面的小区查询或者详细查询,将查询的住户信息在列表框中展示出来。左下部分是住户预购热量区,通过在左上选中某个住户可以在预购热量区进行热量预购。
3.








3. 数据库设计与实现
如图所示。
程序主界面
3.








3. 数据库设计与实现
②菜单设计
系统菜单一共分为3大项,分别为住户管理、住房管理和系统设置,每个菜单项下面又有各自的子菜单。
下表列出了主菜单和各个子菜单的名称及其相应处理函数或过程。
菜单设计
主菜单项 名称 子菜单项 名称 函数或过程
住户管理 M_CustomersManager 登记住户信息 NNewCustomer NNewCustomerClick
每天结算 NRcekoning NRcekoningClick
预警住户统计 NForecastCustomers NForecastCustomersClick
住房管理 M_RoomManager 住房信息登记 NNewRoom NNewRoomClick
更换热表 NChangeHeater NChangeHeaterClick
住户类型设置 M_SystemSetting 住户类型设置 NCustomerType NCustomerTypeClick
收费标准制定 NChargeStandard NChargeStandardClick
预警阀值设置 NForecast NForecastClick
分片小区登记 NRegionManager NRegionManagerClick
3.








3. 数据库设计与实现
下图为设计效果图。
菜单设计
3.








3. 数据库设计与实现
③查询部分的设计
查询部分提供了两种查询方式:按小区查询和详细查询。我们在前面的数据库设计时已经提到,为了便于住户信息的管理和查询统计,将住户按小区进行分片。这里的小区查询就是以小区为关键字进行住户的查询统计,当然这种查询方法的查询结果面积比较大,不易于准确定位,但是便于浏览小区的所有住户情况。详细查询提供了准确定位的查询方法。
小提示:
可以按照小区、
联系人姓名、联系人电话、联系人手机、住户类型、
住户状态等信息进行精确的定位。
3.








3. 数据库设计与实现
下表列出了该部分的控件、控件类型、控件ID及相关函数或事件。
控件类型 ID 函数或事件 属性及说明
TListView LV_Region LV_RegionSelectItem 按小区名称进行住户查询
TLabel TLabel1 小区名称标签
TLabel TLabel2 联系人姓名标签
TLabel TLabel3 联系人电话标签
TLabel TLabel4 联系人手机标签
TLabel TLabel5 住户类型标签
TLabel TLabel6 住户状态标签
TEdit E_region 小区名称编辑框
TEdit E_LinkMan 联系人姓名编辑框
TEdit E_LinkPhone 联系人电话编辑框
TEdit E_LinkMobile 联系人手机编辑框
TEdit CB_CustomerType 住户类型下拉列表
TEdit CB_CustomerState 住户状态下拉列表
TButton Btn_search Btn_searchClick 按详细条件进行住户查找
查询界面资源列表
3.








3. 数据库设计与实现
下面为两个查询页框的设计效果图。
分区查询、详细查询界面
3.








3. 数据库设计与实现
④住户信息浏览及预购热量
住户信息浏览框展示住户查询结果的信息,通过选择某个住户后,在下面的预购热量页框里进行热量预购操作。
住户信息浏览及预购热量资源列表
控件类型 ID 函数或事件 属性及说明
TListView LV_customers LV_customersSelectItem 选择住户进行交费
TLabel Label7 预购热量标签
TLabel Label8 应交金额标签
TLabel Label9 优惠金额标签
TEdit E_buyHeat 预购热量编辑框
TEdit E_money 应交金额编辑框
TEdit E_ReduceMoney 优惠金额编辑框
TButton B_Charge B_ChargeClick 进行交费
3.








3. 数据库设计与实现
下图为设计效果图。
住户浏览及预购热量设计
3.








3. 数据库设计与实现
⑤部分代码
//登记住户信息
procedure THeaterForm.NNewCustomerClick(Sender: TObject);
begin
Form_newcustomer.showmodal;
end;
//每天结算
procedure THeaterForm.NRcekoningClick(Sender: TObject);
begin
Form_reckoning.showmodal;
end;
3.








3. 数据库设计与实现
//预警住户统计
procedure THeaterForm.NForecastCustomersClick(Sender: TObject);
begin
Form_Forecast.showmodal;
end;
//住房信息登记
procedure THeaterForm.NNewRoomClick(Sender: TObject);
begin
Form_NewRoom.showmodal;
end;
3.








3. 数据库设计与实现
//更换热表
procedure THeaterForm.NChangeHeaterClick(Sender: TObject);
begin
Form_changeHeater.showmodal;
end;
//住户类型设置
procedure THeaterForm.NCustomerTypeClick(Sender: TObject);
begin
Form_CustomerType.showmodal;
end;
//收费标准设置
procedure THeaterForm.NChargeStandardClick(Sender: TObject);
begin
Form_ChargeStandard.showmodal;
end;
3.








3. 数据库设计与实现
//预警阀值设置
procedure THeaterForm.NForecastClick(Sender: TObject);
begin
Form_forecastSetting.showmodal;
end;
//分片小区登记
procedure THeaterForm.NRegionManagerClick(Sender: TObject);
begin
Form_Region.showmodal;
end;
3.








3. 数据库设计与实现
2)创建数据库连接
在设计到数据库操作之前,我们要先设计相关的数据库操作。我们在系统中把所有关于数据的操作放到DataModule中。打开File菜单,选择New。
DataModule对话框
3.








3. 数据库设计与实现
delphi会自动生成一个Data Module页面,我们选择用ADO连进行连接和操作SQLServer2008。
DataModule设计
3.








3. 数据库设计与实现
我们在Data Module页面里面放置一个ADOConnection1用来连接数据,一个ADOTable1用来展示数据库表,一个ADOQuery1用来执行查询和修改,一个ADOStoredProc1用来执行数据库存储过程。
DataModule资源列表
控件类型 ID 变量或函数 属性及说明
TDataModule TDataModule1 DataModuleCreate 初始化数据库连接
TADOConnection ADOConnection1 AfterDisconnect BeforeDisconnect 数据连接完成后
数据库连接断开前
TADOTable ADOTable1 暂时不考虑
TADOQuery ADOQuery1 暂时不考虑
TADOStoredProc ADOStoredProc1 暂时不考虑
3.








3. 数据库设计与实现
3)登记住户信息设计
登记住户信息模块完成了对所有集中供暖住户信息的登记。在登记住户的同时要登记住户住房编号,住房编号是我们已经登记完成的住房的编号,所以在进行住户登记之前一定要先登记上住房信息。
住户登记后,住户的状态为正常住户,但是这时住户的预购热量为0,所以住户在登记完自己的信息之后要进行预购热量。
小提示:
3.








3. 数据库设计与实现
登记住户信息的界面的设计效果如图。
登记住户信息
3.








3. 数据库设计与实现
其中使用的控件类型、ID、变量或函数、属性及说明如下所示。
登记住户信息
控件类型 ID 变量或函数 属性及说明
TForm Form_newcustomer FormShow 主窗体
TComboBox ComboBox3 ComboBox3Change 选择小区下拉列表
TBevel Bevel1 无 分隔线
TGroupBox GroupBox1 无 选择住房信息分组框
TListView ListView1 无 住房信息列表
TGroupBox GroupBox2 无 登记住户信息分组框
TLabel Label1 无 住户姓名标签
T Label Label2 无 联系电话标签
3.








3. 数据库设计与实现
住户登记资源列表
TLabel Label3 无 联系手机标签
TLabel Label4 无 住户类型标签
TLabel Label5 无 选择小区标签
TLabel Label6 无 收费标准标签
TLabel Label5 无 住房编号标签
TEdit Edit1 无 住户姓名编辑框
TEdit Edit2 无 联系电话编辑框
TEdit Edit3 无 联系手机编辑框
TComboBox ComboBox1 ComboBox1Change 住户类型下拉列表
TComboBox ComboBox2 无 收费标准下拉列表
TButton Button1 Button1Click 登记按钮
TButton Button2 Button2Click 退出按钮
结算也不一定是每天都进行一次,可以每周或者每半个月等时间间隔来进行结算。
小提示
3.








3. 数据库设计与实现
(5)每天结算
每天结算完成住户热量结算功能。结算操作可以对系统中的所有住户进行结算,也可以安装输入的查询条件,先进行查询,然后对查询结果进行结算。
每天结算界面设计
3.








3. 数据库设计与实现
进入该功能界面后,默认情况下全部结算复选框是被选中的,也就是说默认情况下是进行全部结算的。此时下面住户查询区的编辑框和按钮是不可用状态,当取消全部结算后,查询区的编辑框和按钮变为可用状态。
其中使用的控件类型、ID、变量或函数、属性及说明如下表所示。
每天结算资源列表
控件类型 ID 变量或函数 属性及说明
TLabel Label1 小区名称标签
TLabel Label2 住户姓名标签
TLabel Label3 联系人电话标签
TLabel Label4 联系人手机标签
TLabel Label5 住户地址标签
TEdit Edit1 小区名称编辑框
TEdit Edit2 住户姓名编辑框
TEdit Edit3 联系人电话编辑框
TEdit Edit4 联系人手机编辑框
TEdit Edit5 住户地址辑框
TCheckBox CheckBox1 全部结算复选框
TBevel Bevel1 分割线
TButton Button1 结算按钮
TButton Button2 查询按钮
TListView ListView1 查询住户列表框
在结算功能中共有两种结算方式,第一种是把系统中所有的住户全部进行结算,第二种是对查询结果的住户进行结算。共调用了两种不同的结算过程。
注:
3.








3. 数据库设计与实现
(6)预警住户统计
预警住户统计模块可以按分片小区把即将欠费的用户统计出来。
预警住户统计界面设计
知识链接
可以进行电话通知或者上门收费服务,避免住户在不知情的情况下造成欠费,影响住户的取暖。
3.








3. 数据库设计与实现
通过在小区名称下拉列表中选择要进行统计的小区名称,然后按查询按钮进行查询。小区中所有处于预警状态的住户全部在下面的住户列表框中显示出来。
其中使用的控件类型、ID、变量或函数、属性及说明如下所示。
预警住户资源列表
控件类型 ID 变量或函数 属性及说明
TForm Form_Forecast FormShow 主窗体
TLabel Label1 小区名称标签
TComboBox ComboBox1 小区名称下拉列表
TButton Button1 Button1Click 查询按钮
TBevel Bevel1 分割线
TListView ListView1 住户列表框
3.








3. 数据库设计与实现
(7)住房信息登记
住房信息登记功能完成所有住房信息的登记入库。登记住房的同时也将该住房的热表信息登记入库,包括热表的编号和热表的当前读值。
住房信息登记
3.








3. 数据库设计与实现
其中使用的控件类型、ID、变量或函数、属性及说明如下所示。
住房登记资源列表
控件类型 ID 变量或函数 属性及说明
TForm Form_NewRoom FormShow 主窗体
TLabel Label1 小区名称标签
TLabel Label2 楼栋编号标签
TLabel Label3 单元编号标签
TLabel Label4 门牌编号标签
TLabel Label5 热表编号标签
TLabel Label6 当前读值标签
TLabel Label7 其他地址标签
TBevel Bevel1 分割线
T ComboBox ComboBox1 ComboBox1Change 小区名称下拉列表
TEdit Edit1 楼栋编号编辑框
TEdit Edit2 单元编号编辑框
TEdit Edit3 门牌编号编辑框
TEdit Edit4 热表编号编辑框
TEdit Edit5 当前读值编辑框
TEdit Edit6 其他地址编辑框
TButton Button1 Button1Click 登记按钮
TGroupBox GroupBox1 分组框
T ListView ListView1 住房信息列表
在小区名称下拉列表中选择住房所在的小区的同时下面的小区住房信息列表框会查询出该小区的所有已有住房信息。
小提示:
3.








3. 数据库设计与实现
(8)更换热表
当住房内的热表发生故障时,我们要及时进行更换。一般来说热表的故障有自动关阀门、打不开阀门、自动开阀门、关不上阀门、不计量热量或在关闭阀门的情况下也进行热量累加等等。更换热表功能的界面设计效果图如下所示。
图5-12更换热表界面设计
3.








3. 数据库设计与实现
其中使用的控件类型、ID、变量或函数、属性及说明如下所示。
更换热表资源列表
控件类型 ID 变量或函数 属性及说明
TForm Form_changeHeater FormShow 主窗体
TLabel Label1 小区名称标签
TLabel Label2 更换热表标签
TLabel Label3 当前读值标签
TBevel Bevel1 分割线
T ComboBox ComboBox1 ComboBox1Change 小区名称下拉列表
TListView ListView1 小区住房信息列表
TEdit Edit1 更换热表编辑框
TEdit Edit2 当前读值编辑框
TButton1 Button1 Button1Click 更换按钮
热表更换操作调用数据库的存储过程InsertHeaterInstead来完成住房热表编号的更换,当前读值得修改,以及更换表的抄表记录的生成。
小提示
3.








3. 数据库设计与实现
(9)住户类型设计
不同的住户类型其收费标准是不一样的,比如军烈属用户、商用户、特殊照顾用户,就是类似五保用户等等。住户类型功能就是完成这些住户类型的登记。
住户类型设置模块的界面设计效果图如下所示。
住户类型设置界面设计
3.








3. 数据库设计与实现
其中使用的控件类型、ID、变量或函数、属性及说明如下所示。
住户类型设置资源列表
控件类型 ID 变量或函数 属性及说明
TForm Form_CustomerType FormShow 主窗体
TLabel Label1 住户类型名称标签
T Edit Edit1 住户类型名称编辑框
TButton Button1 Button1Click 登记按钮
TBevel Bevel1 分割线
TListView ListView1 住户类型列表框
3.








3. 数据库设计与实现
(10)收费标准设置
收费标准设置根据不同的住户类型设置不同的收费标准。此模块中首先要选择住户类型,然后对该住户类型进行收费标准登记,在选择住户类型的同时,该住户类型的所有收费标准都会显示在收费列表中。
收费标准设置界面设计
3.








3. 数据库设计与实现
其中使用的控件类型、ID、变量或函数、属性及说明如下所示。
收费标准设置资源列表
控件类型 ID 变量或函数 属性及说明
TForm Form_ChargeStandard FormShow 主窗体
TLabel Label1 住户类型标签
T ComboBox ComboBox1 ComboBox1Change 住户类型下拉列表
TLabel Label2 收费标准标签
TEdit Edit1 收费标准编辑框
TLabel Label3 单位标签
TButton Button1 Button1Click 登记按钮
TBevel Bevel1 分割线
TListView ListView1 收费标准列表框
在登记住户信息模块里面也涉及到过根据住户类型获取该住户类型的收费标准,只不过添加到了下拉列表框中。而此处是添加到列表框中。
知识拓展:
3.








3. 数据库设计与实现
(11)预警阀值设置
预警阀值设置功能用来设置住户热量结算预警阀值的大小,其中日平均消耗值是来自整个系统的其他子系统。我们在此设置一个系数值,就形成了热量结算阀值。
预警阀值设置界面设计
3.








3. 数据库设计与实现
其中使用的控件类型、ID、变量或函数、属性及说明如下所示。
预警阀值设置资源列表
控件类型 ID 变量或函数 属性及说明
TForm Form_forecastSetting FormShow 主窗体
TLabel Label1 日平均消耗值标签
TLabel Label2 千卡标签
TLabel Label3 乘以系数标签
TLabel Label4 天标签
TEdit Edit1 日平均消耗编辑框
TSpinEdit SpinEdit1 乘以系数微调框
TButton Button1 Button1Click 登记按钮
TBevel Bevel1 分割线
TListView ListView1 预警阀值列表框
3.








3. 数据库设计与实现
(12)分片小区设置
我们在前面已经提过,为了便于对住户和住房信息的管理,对住房按照小区分片进行登记和管理。分片小区设置模块完成对管理城市中各个小区的登记。只有登记了小区,才能进行住房登记。在前面我们也提到只有登记了住房信息才能登记住户信息。
预警阀值设置资源列表
3.








3. 数据库设计与实现
其中使用的控件类型、ID、变量或函数、属性及说明如下所示。
小区登记资源列表
控件类型 ID 变量或函数 属性及说明
TForm Form_Region FormShow 主窗体
TLabel Label1 小区名称标签
TEdit Edit1 小区名称编辑框
TButton Button1 Button1Click 登记按钮
TBevel Bevel1 分割线
TListView ListView1 小区列表框










任务实施
小王是唐山市某小区热力站的工作人员,在冬天来临之际,热力站需要对小区进行统一供暖。为此,小王设计了一组程序来收取居民的取暖费。为了保证工作质量,小王决定对此程序进行验证。
任务:验证收费系统的准确性
任务分析:
理解牢记!
SQL Server的数据系统非常庞大,可以进行不同程序、系统的设计及验证,因此,小王决定使用SQL Server的相关知识来完成此任务。
任务:验证收费系统的准确性
验证收费系统的准确性
任务
实施
通过以精心的设计和程序编码,完成程序的调试好,最后预览程序的运行结果,按照如下的操作步骤验证所写程序的准确性和完整性。
1)主界面如下所示,从系统菜单可以看出,水暖热量收费系统的主要功能为住户管理、住房管理和系统设置等。
主界面
2)登记小区。系统最先进行的是登记小区。
登记小区
3)登记住户类型,不同的住户类型其收费标准是不一样的,所以需要在如下所示的窗口中登记住户类型。
登记住户类型
4)设置收费标准,不同的住户类型其收费标准是不一样的。
收费标准设置
5)预警阀值设置。预警阈值设置如图所示。
预警阀值设置
6)登记住房信息,上面信息的设置完成之后就可以登记住房信息了。
住房信息登记
7)住户信息登记。最后要完成的就是住户信息的登记,因为在登记住户信息时需要小区信息,选择住户类型、收费标准。
住户信息登记
8)详细查找,登记完一些住户信息之后,我们就可以通过小区查找或详细查找进行查询操作,下面我们示范一下详细查找。
详细查找
9)登记“查找”按钮,进行查询,右边的住户信息列表就会显示出该住户的信息。
详细查找结果




项目五 设计水暖热量收费系统
重点难点
课程设计的目的和意义
设计管理系统
重点
难点

展开更多......

收起↑

资源预览