1、Delphi + SQL Server2000房地产信息治理系统的设计与开发(课本) 盘算分院短学期课本(2)2房地产信息治理系统的设计与开发【摘要】该系统为满足中小衡宇销售公司业务治理的需要,凭据一般的房产销售治理业务流程,通过模块化设计,能够对楼盘、楼房、衡宇、客户信息,衡宇销售情况及员产业绩等多种信息进行全方位治理。系统由底子信息、衡宇销售、统计报表和系统设置等四大模块组成。每个大的模块又由多个分模块组成,好比,衡宇销售模块中又包罗衡宇销售治理、客户资料治理、销售收款治理和客户退款治理等,能够满足衡宇销售业务各个环节的需要。系统的报表生成东西和阐发东西使衡宇销售情况和公司员工的业绩一目了
2、然。系统的设置模块除了密码等通例设置外,另有权限设置,差别权限的人员进入差别操纵模块,使数据具有保密性。系统使用Delphi 7.0和SQL Server数据库为开发平台,系统具有很好的宁静性。该系统还具有操纵界面友好、使用方便、维护简朴等显著特点,是中小房产企业治理销售业务的有力东西。 48浙江大学都会学院结业论文Error! No text of specified style in document.目录Delphi + SQL Server20001第1章 提要1房地产信息治理系统的功效结构图:11.1.2 底子信息治理1第2章 数据库设计3房地产信息治理系统数据库的表3楼盘根本信息表
3、的字段42.1.2 楼房信息表的字段52.1.3 衡宇信息表的字段5客户信息表的字段52.1.2 系统流程图6第3章 主窗体设计7主窗体界面设计7 主窗体界面设计提要7 主窗体界面详细设计83.2 主窗体的第一次代码设计153.3 数据模块设计16第4章 登录模块设计21 登录模块的窗体设计21 登录窗口样式21 登录模块的数据控件23 登录模块代码设计24第5章 功效模块设计305.1 房型资料录入模块设计30 在dm窗体中添加数据控件305.1.2 窗体详细设计315.1.3 房型资料录入窗体的代码设计325.2 楼盘楼房资料录入模块的设计395.2.1 做好连接数据表的准备405.2.2
4、 楼盘楼房资料录入模块的界面设计425.2.3 楼房资料录入模块的设计44第6章 数据统计报表的设计456.1 数据统计报表设计概述45参考文献46附录47浙江大学都会学院结业论文Error! No text of specified style in document.图目录图2.2 系统流程图6图3.1 主窗体页面7图3.2 一级菜单设计图8图3.3 【衡宇销售治理】的二级菜单设计图9图3.4 其余三项菜单的二级菜单设计图9图3.5 菜单的详细内容10图3.6 设置image控件的”picture”属性以载入配景图10图3.7 载入配景图后的样式11图3.8 将StausBar1控件分成三
5、段12图3.9 状态条第三段显示系统时间13图3.10 设计好的东西栏14图3.11 设置快捷键的Layout属性14图3.12 选择DataModule窗体16图3.13 DataModule窗体中的连接控件17图3.14 fdc_conn控件的Connection属性17图3.15 数据库连接乐成18图4.2 设置DBLookupCombobox1控件的属性22图4-3 为登录窗体访问数据库要求的数据控件23图4-4 登录用的用户表24图4-5 登录窗口29图4-6 预先窜放在f_user表的信息29图5.1 编辑CommandText属性30图5.2 编辑CommandText属性31图
6、5-3 设计好的房型资料录入窗体32图5-4 房型资料录入窗体初始化时的三个事件33三个事件的详细代码:33图5-4 编译好的房型资料录入窗体35图5-5 开始录入房型资料36图5-5 楼盘楼房资料录入模块运行结果39图5-5 楼房资料录入模块运行结果40图5-6 CommandText Editor窗口41图5-7 新添访问f_house和f_build表的数据控件42图5-8 楼盘楼房资料录入界面43浙江大学都会学院结业论文Error! No text of specified style in document.表目录表数据库的表3表2 楼盘根本信息表f_build 的字段4表5 客户信
7、息表f_customer 的字段5房地产信息治理系统的设计与开发 第1章 提要第1章 提要房地产信息治理系统的功效结构图: 房地产信息治理系统的功效许多,系统大而庞大,设计起来非常繁琐,尤其是销售部门,相互关联的部门许多,窗口套窗口。所以在设计之前,要把模块之间的干系梳理清除。系统由底子信息、衡宇销售、统计报表和系统设置四个大的功效模块组成。 图1-1 房地产信息治理系统功效结构图 底子信息治理衡宇销售治理系统的底子信息中,关于楼房的信息有楼盘(即我们平时所说的小区)、楼房(即该小区中的第几号楼)、和衡宇(即户)三层底子资料。首先是要创建一个楼盘(小区)的资料,即数据库中的f_build表(楼
8、盘根本信息表),一个实用化的楼盘根本信息表有23项内容,比力庞大。接下来是创建每一座楼的根本信息,即数据库中f_house表(楼房根本信息),表中的明细也有15项之多。关于楼房的第三项根本数据是具体到每一户,就是数据库中的f_room(衡宇信息表),动手设计之前,一定要牢记这三张表。别的另有公司员工信息、客户信息等。房地产信息治理系统的设计与开发附录第2章 数据库设计房地产信息治理系统数据库的表用SQL Server2000创建数据库,取名为.数据库一共有30张表,表名见表1:表数据库的表 表名称 功效描述f_appertain_house隶属房产f_build楼盘根本信息f_buy_fact
9、or客户购置因素信息表f_buy_will客户购置意向f_customer客户信息f_customer_change客户调换信息f_customwer_return退房信息表f_customer_work客户事情信息f_employees员工信息表f_family_structure家庭结构f_house楼房根本信息f_house_aspect楼房朝向信息表f_house_type楼房类型f_house_structure楼房结构f_mode房型根本信息表f_pay_item付款项目表f_pay_mode支付方法表f_pay_plan付款摆设f_post岗亭表f_price_reflect代价
10、反应表f_require_area需求面积f_require_floor需求楼层f_room_mode需求房型f_room衡宇信息表f_room_format衡宇格式表f_room_pay衡宇付款f_standard装修及设备尺度f_tube_net网管资料f_sys_company公司信息f_user用户资料在上述的30张表中,最重要的是下列三表,楼盘楼房衡宇。1. f_build 楼盘根本信息。就是记载一个新建楼盘,即“小区”的所有信息;2. f_house 楼房根本信息。一个楼盘下面有多栋楼房,该表记载楼房信息。3. f_room 衡宇根本信息。每栋楼房有多个户数,该表记载每户的信息。楼
11、盘根本信息表的字段表2 楼盘根本信息表f_build 的字段字段名称字段类型主键允许为空默认值功效描述楼盘编号Varchar(20)是标识一个楼盘楼盘名称Varchar(20) 是地理位置Varchar(20)是占地面积Varchar(20) 是修建面积Varchar(20)是修建占地面积Varchar(20) 是门路广场占地面积Varchar(20)是修建密度Varchar(20) 是容积率numeric(9)是绿化面积varchar(20) 是绿化率numeric(9)是开发日期datetime(8) 是time_default楼房数量numeric(9)是车位数numeric(9) 是衡
12、宇数量numeric(9)是出售数量numeric(9) 是预定命量numeric(9)是出售未审核数量numeric(9) 是未出售数量numeric(9)是楼盘备注varchar(20) 是建档人员varchar(20)是建档日期datetime(8) 是time_default楼盘图片image是2.1.2 楼房信息表的字段楼房信息表f_house的字段如表3所示。 衡宇信息表的字段楼房信息表f_house的字段如表4所示。2.1.4客户信息表的字段表5列出的是客户信息表的字段。客户信息表也是本系统的重要数据表。表5 客户信息表f_customer 的字段字段名称字段类型主键允许为空默认
13、值功效描述客户编号Numeric(9)是客户名称Varchar(10) 是性别Varchar(2)是年龄Varchar(3) 是职业Varchar(16)是身份证号码Varchar(23) 是邮编Varchar(10)是联系方法varchar(15) 是事情单位varchar(40)是联系地点varchar(40) 是家庭结构varchar(16)是需求面积varchar(16) 是需求楼层varchar(11)是需求房型varchar(10) 是购置意向varchar(10)是代价反应varchar(10) 是支付方法varchar(10)是考虑因素varchar(10) 是信息来源varc
14、har(10)是购房数量numeric(9) 是购房金额float(8)是已付金额float(8) 是未付金额float(8)是备注varchar(100)建档人员varchar(10)建档日期datetime(8)修改人员varchar(8)修他日期datetime(8)2.1.2 系统流程图图2.2 系统流程图 第3章 主窗体设计主窗体界面设计 主窗体界面设计提要主界面首要任务是要通过主菜单给用户提供调用各功效模块的选择,因此设计菜单是主窗体设计的第一步。另外,与主菜单相配合的是东西条的设计。东西条上放了许多使用频率高的快捷键,以提高使用者的操纵速度。另外,在主菜单的最下方有一个状态栏,该
15、栏用于显示系统的当前状态,例如当前的操纵员和系统时间等。主窗体运行的结果如图3-1所示。状态条东西条主菜单图3.1 主窗体页面3.1.2 主窗体界面详细设计1. 启动Delphi 开发平台,将自转动出的窗体设为主窗体,并命名。主窗体的name属性:mainform;主窗体的单位文件名:mainunit.pas;工程文件名:fdcbuilding.prj。1)主菜单设计向主窗体中拖放一个主菜单控件,使用它的默认名:Mainmenu1。在Mainmenu1 上按右键,从弹出的窗体中,选择“Menu Designer”以设计主菜单。主菜单的第一级有【衡宇销售治理】、【数据统计报表】、【根本资料录入】
16、、【系统设置】和【资助】等5项。具体内容如图3-1所示。这条线(分开符)是在Caption属性中输入英文状态下的“-”号二级菜单一级菜单图3.2 一级菜单设计图2)设计二级菜单在Menu Designer 中凭据图3.2 中的标识完成【衡宇销售治理】菜单的二级菜单的设计。选择热键接着输入二级菜单名先输入一级菜单名 图3.3 【衡宇销售治理】的二级菜单设计图接下来分别设计【数据统计表表】、【根本资料录入】、【系统设置】和【资助】菜单的二级菜单。设计好的二级菜单如图3-4所示。 图3.4 其余三项菜单的二级菜单设计图至于【资助】菜单的二级菜单只有“关于”和“资助 F2” 这2项。我们可以展开Del
17、phi 设计平台左上角的“object treeview”视窗检察主窗体“MainForm”的全部菜单内容,如图3-5所示。 这是分开符图3.5 菜单的详细内容3) 主窗体配景设计在主窗体(MainForm)中放入一个“image控件”,在它的“picture”属性中载入一张生存在本工程文件目下(根目录)的图片作为配景图。图3.6 设置image控件的”picture”属性以载入配景图定时器图3.7 载入配景图后的样式4) 主窗体的状态栏控件设计在主窗体的最下方添加TStatusBar(在控件栏的Win32页)组件,该组件用来显示主窗体运行时的状态,用默认名“StausBar1”。将Staus
18、Bar1分成三个区域,分别是StatusPanel1、StatusPanel2和StatusPanel3。第一个区域显示公司名称,第二个区域显示当前的操纵员,第三个区域显示系统时间。为此,要在主窗体中添加一个时间控件。这些功效的实现是靠代码完成的,稍后介绍这些代码。将状态条分段的操纵要领是:在StausBar1 控件上按鼠标右键,弹出“” 编辑窗,在该编辑窗上面按右键,选择弹出窗的“Add”,将StatusBar1分成三段,分别是0-STatusPanel1、1-STatusPanel1、2-STatusPanel1。然后在其“Width”属性中设置每一段的宽度,如图3-8 所示。设置第一段的
19、宽度为150每选择一次Add就会增加一段图 将StausBar1控件分成三段5) 状态栏的代码设计为了在状态栏的第一段中显示目前登录者的姓名,首先在主窗体的“public”域中声明一个UserName的字符串变量:publicname:string;username:string;为了在状态栏的第三段中显示目前的系统时间,要在主窗体中添加一个时间控件,双击主窗体中的定时器控件,在弹出的代码编写器中编写如下代码:procedure Tmainform.Timer1Timer(Sender: TObject);beginMainform.StatusBar1.Panels2.Text :=现在时间
20、: +datetimetostr(now);end;编译后就可以在状态条的第三段看到系统时间,如图3-9所示:东西栏显示系统时间图3.9 状态条第三段显示系统时间6) 主窗体东西栏的设计在主窗体中添加一个东西栏,东西栏上安排若干个快件键,以提供某些快速操纵。添加东西栏的操纵要领是:1. 从Win32页中拖放一个ToolBar1 控件到主窗体中。设置Align属性(对齐)为alNone;设置DragKind属性为dkDock。2. 从Additional 页中拖放10个SpeedButton按钮到ToolBar1上。这些SpeedButton按钮作为东西栏的快捷键;3. 给每个按钮添加上相应的图
21、标和文字。为了能给这些SpeedButton按钮添加上图标,首先要准备好图标(素材),并将他们存放在一个专门的文件夹中,然后在主窗体中添加一个ImageList 控件,使用默认名ImageList1。选择SpeedButton1,通过它的Glyph 属性添加上为它准备好的图标,并从它的Caption 属性中输入中文名。设计好的东西栏ToolBar1如图3-10所示:图3.10 设计好的东西栏A实现快捷键图标在上、文字在下的要领:如下图所示,先选中ToolBar上的一个快捷键,将它的Layout属性设置为blGlyphTop就可以了。把该键的Layout属性设置为blGlyphTop被选中的快捷
22、键 图3.11 设置快捷键的Layout属性7) 主窗体东西栏的拖曳东西栏不一定始终停靠在一个个牢固的地方,而是随时可以变更地方,这就要用到控件的拖曳技能。ToolBar1的Align属性设置为:alNone,即不牢固位置;ToolBar1的DranKInd属性设置为:dkDock;在主窗体的最下方添加一个Panel1组件,它的Heigh属性设为1;Align属性设为alBottem;Docksite设为True步伐的相关代码:procedure TMainForm.FormCreate(Sender: TObject);begin toolbar1.Hide;end;procedure TM
23、ainForm.ToolBar1StartDock(Sender: TObject; var DragObject: TDragDockObject);begin panel1.Height:=1;end;procedure TMainForm.Panel1DockDrop(Sender: TObject; Source: TDragDockObject; X, Y: Integer);begin panel1.Height:=toolbar1.Height;end;3.2 主窗体的第一次代码设计主窗体的界面设计好后,着手编写主窗体初始化的三段代码,以便先让它空转起来。1)procedure
24、FormShow(Sender: TObject);2)procedure FormCreate(Sender: TObject);3)procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); /按下F功效键所执行的功效4)为了在编译完成后能退出步伐,可先编写主菜单“【系统设置】”中的“退出系统”项的代码:procedure TMainForm.N27Click(Sender: TObject); /退出系统菜单begin Close;end;由于内容较多,代码就不一一列出,具体的代码请拜见步伐设计部门
25、。同时要在主窗口的代码编辑窗口的public处设立如下变量,以备后用:public modelr,buildlr,comlr,emplr,sale,gather,plan,payreturn, saler,house,custpay,cust,custfx,user1,databack:boolean; name:string; username:string; 数据模块设计在Delphi的数据库应用步伐设计中,数据库与SQL Server 办事器的连接是通过数据模块(Data Module)来实现的。从菜单“File” | “New” | “Other” ,弹出选择“Data Module”
26、模版窗口,从该窗体中点选Data Module 项,如图3-12所示。点选Data Module图3.12 选择DataModule窗体窗体名:dm;单位文件名:dmunit.pac;Caption:dm。记着:主窗体和接下来完成的登录窗体都要“as”!在新生成的Data Module窗体中,从“ADO”组件页中拖放连接数据库的“Connection” 组件,将其Name属性设为“fdc_conn”,再从“DataAceess”页中拖放一个“DataSource”控件将其Name属性设为“dsuser”,并给数据模版(窗体)命名为“dm” ,单位文件生存为:“dmunit.pas” 。设计好的
27、数据模块如图3-13所示。这些是登录页面访问f_User表所需的控件DataSource控件图3.13 DataModule窗体中的连接控件我们接纳ADO数据库连接技能。设置fdc_conn控件的Connection属性,以实现连接FDC.mdb数据库。按下图首先选择提供步伐“Microsoft OLE DB for SQL Server”,然后按右边所谓图示填写数据库所在的办事器名和将要连接的数据库“FDC”,最后确认数据库连接乐成。要连接的数据库名选择办事器选择提供步伐 图 fdc_conn控件的Connection属性 图3.15 数据库连接乐成接下来在“dm”窗体中逐次添加以下数据控件
28、:1) userdataSet 控件属性设置: Connection fdc_conn CommandText 点击 背面的,弹出下面的编辑窗体:选择左边的f_user表后,在这里书写select *from f_user 代码2) usertable 控件,这是ADO页的表控件,取名为:usertableUsertable的属性设置: 要连接到fdc_conn控件 要指定它要访问的数据表:f_user表。4)duser控件,这是一个datasource 控件,与usertable配套使用。duser控件的属性设置:指定它的DataSet5) duserdataset 这是一个DataSour
29、ce控件(在DataAccess页),取名为duserdataset,表现与前一个userdataset控件配套使用。duserdataset属性设置:指定它的DataSet 属性6) 另外放了两个控件,这是查询用的,其中控件要设置Connection属性:,DataSource1没有属性设置。注意:该Datamodule 即dm 窗体没有事件,也就是说demunit.pas 中不消编写代码。第4章 登录模块设计4.1 登录模块的窗体设计步伐的启动画面消失后,将弹出登录窗体,用户通过输入用户名和密码就可以进入系统,然后凭据用户权限打开相应的模块。用户登录的作用是掩护应用步伐中的相关资料,以防备
30、无关人员对步伐信息的肆意破坏。当进入步伐后,用户只能凭据用户拥有的权限对步伐中的相关模块进行相应的操纵。为了防备无关人员在数据库中获取用户信息,而对应用步伐进行操纵,可以先对用户名和密码进行再加密后存入数据库中,这样用户名和密码就不太容易被偷取,使应用步伐变得越发宁静。当没有输入用户名和密码时,步伐会提示“请输入正确的用户名和密码”,当用户名或,密码错误时,系统会提示:“对不起,没有这个用户名”或“密码错误”,系统重新回到登录窗口。一个用户最多允许输入三次用户名和密码,凌驾三次,系统将退出。 4.1.1 登录窗口样式 登录窗体的一般样式如图4-1。 图4.1 登录窗体结构图窗体中的控件及其名称
31、:窗体中用到的图片要事先准备好,生存在工程文件的根目录下。要注意的是,用户名背面的输入框接纳的控件是位于DataControls页的DBLookupCombobox1。用它可以从下拉列表框中选择已经生存在User数据表中的用户,不必每次输入用户名。读取User表中的“用户名称”字段DBLookupCombobox1的属性设置图4-2所示:数据模块中的一个名为“dsuser”的Datasource控件 外形设置 图4.2 设置DBLookupCombobox1控件的属性 登录模块的数据控件登录窗体中输入用户名和密码之后,点击键,步伐代码就去访问“FDC.mdf” 数据库中的“ User” 数据表
32、,通过函数()将输入的用户名和密码与User 表中生存的数据是否一致。如果一致,步伐就打开主窗体,供登录者进行所需的操纵;不然会弹出提示框,要你输入正确的用户名和密码,并且最多只能连续输入三次,若三次都不乐成,那么步伐就退出。为了能够实现这些功效,我们必须在数据模块(DataModule)中安排如下数据控件:DataSource控件它的DataSet属性:UserDataSet ADODataSet控件它的CommandText属性:select * from f_user表控件,它的TableName属性:f_user图4-3 为登录窗体访问数据库要求的数据控件登录系统时既要查抄用户名是否存
33、在,还要验证密码是否正确,并且还要获取用户的权限供背面窗体调用。用户名、密码和用户权限存储在f_user表中,字段名有用户编号、用户名称、和用户密码以及用户权限等多项,拜见图4-4:代表用户有权进行房型录入操纵图4-4 登录用的用户表4.1.3 登录模块代码设计登录模块的主要步伐代码如下:unit loginunit;private Private declarations public times:integer; /设置一个盘算登录次数的参数 Public declarations end;var loginform: Tloginform;implementationuses dmuni
34、t, mainunit; /登录窗口要与数据模块窗体和主窗体相关联$R *.dfmprocedure Tloginform.DBLookupComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); /当点击用户名输入框时执行的行动begin if key=13 then /按下回车键 edit1.SetFocus ;end;procedure Tloginform.DBLookupComboBox1Enter(Sender: TObject);begin dblookupcombobox1.Color:=clcr
35、eam;end;procedure Tloginform.DBLookupComboBox1Exit(Sender: TObject);begin dblookupcombobox1.Color:=clskyblue;end;procedure Tloginform.Edit1Enter(Sender: TObject);begin edit1.Color:=clcream; /Edit1是密码输入框end;procedure Tloginform.Edit1Exit(Sender: TObject);begin edit1.Color:=clskyblue;end;procedure Tlo
36、ginform.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if key=13 then bitbtn1.SetFocus ;end;procedure Tloginform.BitBtn1Click(Sender: TObject); /按下键begin if dm.usertable.RecordCount=0 then begin Mainform.Username:=超等用户; mainform.StatusBar1.Panels1.Text:=操纵员: +mainform.usernam
37、e; mainform.modelr:=true;主窗体的状态条 mainform.buildlr:=true; mainform.emplr:=true; lr:=true; mainform.sale:=true; mainform.gather:=true; mainform.cust:=true;主窗体中的那些菜单因为登录的是“超等用户”所有的菜单都是可操纵的 mainform.plan:=true; mainform.payreturn:=true; mainform.saler:=true; mainform.house:=true; mainform.custpay:=true;
38、 mainform.custfx:=true; mainform.user1:=true; mainform.databack:=true; dm.usertable.Active:=false; close; end else begin if edit1.Texttrim(dm.usertable.FieldValues用户密码) then begin times:=times+1; /登录次数+1 if times3 then begin messagebox(self.Handle,用户名称或用户密码不正确,请重新输入,提示信息,mb_iconinformation); edit1.S
39、etFocus ; end else begin messagebox(self.Handle,您已经三次输入不正确,请退出,提示信息,mb_iconinformation); application.Terminate ; end; end else begin Mainform.Username:=dblookupcombobox1.text; mainform.StatusBar1.Panels1.Text:=操纵员: +mainform.username; mainform.modelr:=dm.usertable.FieldValues房型录入; mainform.buildlr:=
40、dm.usertable.FieldValues楼盘楼房录入; mainform.emplr:=dm.usertable.FieldValues员人为料录入; lr:=dm.usertable.FieldValues公司资料录入; mainform.sale:=dm.usertable.FieldValues衡宇销售治理; mainform.gather:=dm.usertable.FieldValues收款治理; mainform.cust:=dm.usertable.FieldValues客户资料治理; mainform.plan:=dm.usertable.FieldValues收款摆设
41、查询; mainform.payreturn:=dm.usertable.FieldValues给客户退款治理; mainform.saler:=dm.usertable.FieldValues销售代表统计; mainform.house:=dm.usertable.FieldValues楼房销售统计; mainform.custpay:=dm.usertable.FieldValues客户购订收款统计; mainform.custfx:=dm.usertable.FieldValues客户数据阐发; mainform.user1:=dm.usertable.FieldValues用户治理; mainform.databack:=dm.usertable.FieldValues数据备份与规复; mainform.name:=dm.usertable.FieldValues用户名称; dm.usertable.Active:=false; close; end; end;end;procedure Tloginfo
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100