1、房地产信息管理系统的设计与开发二一 年 三 月 十 日房地产信息管理系统的设计与开发【摘要】该系统为满足中小房屋销售公司业务管理的需要,按照一般的房产销售管理业务流程,通过模块化设计,能够对楼盘、楼房、房屋、客户信息,房屋销售情况及员工业绩等多种信息进行全方位管理。系统由基础信息、房屋销售、统计报表和系统设置等四大模块组成。每个大的模块又由多个分模块组成,比如,房屋销售模块中又包括房屋销售管理、客户资料管理、销售收款管理和客户退款管理等,能够满足房屋销售业务各个环节的需要。系统的报表生成工具和分析工具使房屋销售情况和公司员工的业绩一目了然。系统的设置模块除了密码等常规设置外,还有权限设置,不同
2、权限的人员进入不同操作模块,使数据具有保密性。系统使用Delphi 7.0和SQL Server数据库为开发平台,系统具有很好的安全性。该系统还具有操作界面友好、使用方便、维护简单等显著特点,是中小房产企业管理销售业务的有力工具。【关键词】商品房销售管理系统,SQL Sever 2000数据库,Delhpi 7.0,毕业论文 The Design and Development of human resources management system 【Abstract】 单击此处添加外文摘要,内容应与中文摘要一致【Key Words】 单击此处添加外文关键词,单击此处添加外文关键词,单击此处
3、添加外文关键词,单击此处添加外文关键词,单击此处添加外文关键词 目录第1章 概要11.1房地产信息管理系统的功能结构图:11.1.211.2 研究的基本内容11.2.1 基本框架21.2.2 研究的重点及要解决的关键问题2第2章 数据库设计32.1房地产信息管理系统数据库的表32.1.1楼盘基本信息表的字段42.1.1客户信息表的字段52.1.2 系统流程图62.2 系统开发使用的技术62.2.1 单击此处添加条标题62.2.2 单击此处添加条标题6第3章 主窗体设计73.1主窗体设计概要73.1.1 主窗体详细设计83.2 数据模块设计15第4章 登录模块设计184.1 登录模块的窗体设计1
4、84.1.1 登录窗口样式185.1.2 登录模块的数据控件194.1.2 登录模块代码设计205.1.3 编译成功后的登录窗口23第5章 功能模块设计255.1 房型资料录入模块设计255.1.1 在dm窗体中添加数据控件255.1.2 窗体详细设计265.1.3 房型资料录入窗体的代码设计275.2 楼盘楼房资料录入模块的设计325.2.1 做好连接数据表的准备335.2.2 楼盘楼房资料录入模块的界面设计355.2.3 楼房资料录入模块的设计375.2.4 单击此处添加条标题385.2 单击此处添加节标题385.2.1 单击此处添加条标题385.2.2 单击此处添加条标题38第6章 制作
5、系统的安装程序396.1 InstallShield概述396.1.1 单击此处添加条标题396.1.2 单击此处添加条标题406.1.3 单击此处添加条标题406.2 单击此处添加节标题406.2.1 单击此处添加条标题406.2.2 单击此处添加条标题40结论42参考文献43附录46致谢47图目录图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 将St
6、ausBar1控件分成三段12图3.9 状态条第三段显示系统时间13图3.10 设计好的工具栏14图3.12 选择DataModule窗体15图3.13 DataModule窗体中的连接控件16图3.14 fdc_conn控件的Connection属性16图3.15 数据库连接成功16图4.2 设置DBLookupCombobox1控件的属性19图4-3 为登录窗体访问数据库要求的数据控件20图4-4 登录用的用户表20图4-5 登录窗口24图5.1 编辑CommandText属性25图5.2 编辑CommandText属性26图5-3 设计好的房型资料录入窗体27图5-4 编译好的房型资料录
7、入窗体28图5-5 开始录入房型资料28图5.1 单击此处添加图标题31图6.1 单击此处添加图标题32表目录表3.1 人员基本资料表(JBZL)7表3.2 简历信息表(JLXX)7表4.1 单击此处添加表标题10表5.1 单击此处添加表标题12表6.1 单击此处添加表标题14第1章 概要1.1房地产信息管理系统的功能结构图: 房地产信息管理系统的功能很多,系统大而复杂,设计起来非常繁琐,尤其是销售部分,相互关联的部分很多,窗口套窗口。所以在设计之前,要把模块之间的关系梳理清除。系统由基础信息、房屋销售、统计报表和系统设置四个大的功能模块组成。 图1-1 房地产信息管理系统功能结构图1.1.2
8、 基础信息管理房屋销售管理系统的基础信息中,关于楼房的信息有楼盘(即我们平时所说的小区)、楼房(即该小区中的第几号楼)、和房屋(即户)三层基础资料。首先是要建立一个楼盘(小区)的资料,即数据库中的f_build表(楼盘基本信息表),一个实用化的楼盘基本信息表有23项内容,比较复杂。接下来是建立每一座楼的基本信息,即数据库中f_house表(楼房基本信息),表中的明细也有15项之多。关于楼房的第三项基本数据是具体到每一户,就是数据库中的f_room(房屋信息表),动手设计之前,一定要牢记这三张表。此外还有公司员工信息、客户信息等。第2章 数据库设计2.1房地产信息管理系统数据库的表用SQL Se
9、rver2000创建数据库,取名为fdc.mdf.数据库一共有30张表,表名见表1:表1 fdc.mdf数据库的表 表名称 功能描述f_appertain_house附属房产f_build楼盘基本信息f_buy_factor客户购买因素信息表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_ty
10、pe楼房类型f_house_structure楼房结构f_mode房型基本信息表f_pay_item付款项目表f_pay_mode支付方式表f_pay_plan付款安排f_post岗位表f_price_reflect价格反映表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_bu
11、ild 楼盘基本信息。就是记录一个新建楼盘,即“小区”的所有信息;2. f_house 楼房基本信息。一个楼盘下面有多栋楼房,该表记录楼房信息。3. f_room 房屋基本信息。每栋楼房有多个户数,该表记录每户的信息。2.1.1楼盘基本信息表的字段表2 楼盘基本信息表f_build 的字段字段名称字段类型主键允许为空默认值功能描述楼盘编号Varchar(20)是标识一个楼盘楼盘名称Varchar(20) 是地理位置Varchar(20)是占地面积Varchar(20) 是建筑面积Varchar(20)是建筑占地面积Varchar(20) 是道路广场占地面积Varchar(20)是建筑密度Var
12、char(20) 是容积率numeric(9)是绿化面积varchar(20) 是绿化率numeric(9)是开发日期datetime(8) 是time_default楼房数量numeric(9)是车位数numeric(9) 是房屋数量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所
13、示。2.1.3 房屋信息表的字段楼房信息表f_house的字段如表4所示。2.1.4客户信息表的字段表5列出的是客户信息表的字段。客户信息表也是本系统的重要数据表。表5 客户信息表f_customer 的字段字段名称字段类型主键允许为空默认值功能描述客户编号Numeric(9)是客户名称Varchar(10) 是性别Varchar(2)是年龄Varchar(3) 是职业Varchar(16)是身份证号码Varchar(23) 是邮编Varchar(10)是联系方式varchar(15) 是工作单位varchar(40)是联系地址varchar(40) 是家庭结构varchar(16)是需求面积
14、varchar(16) 是需求楼层varchar(11)是需求房型varchar(10) 是购买意向varchar(10)是价格反映varchar(10) 是支付方式varchar(10)是考虑因素varchar(10) 是信息来源varchar(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章 主窗体设计3.1主窗体界面设计3.
15、1.1 主窗体界面设计概要主界面首要任务是要通过主菜单给用户提供调用各功能模块的选择,因此设计菜单是主窗体设计的第一步。另外,与主菜单相配合的是工具条的设计。工具条上放了许多使用频率高的快捷键,以提高使用者的操作速度。另外,在主菜单的最下方有一个状态栏,该栏用于显示系统的当前状态,例如当前的操作员和系统时间等。主窗体运行的结果如图3-1所示。状态条工具条主菜单图3.1 主窗体页面3.1.2 主窗体界面详细设计1. 启动Delphi 开发平台,将自动弹出的窗体设为主窗体,并命名。主窗体的name属性:mainform;主窗体的单元文件名:mainunit.pas;工程文件名:fdcbuildin
16、g.prj。1)主菜单设计向主窗体中拖放一个主菜单控件,使用它的默认名:Mainmenu1。在Mainmenu1 上按右键,从弹出的窗体中,选择“Menu Designer”以设计主菜单。主菜单的第一级有【房屋销售管理】、【数据统计报表】、【基本资料录入】、【系统设置】和【帮助】等5项。具体内容如图3-1所示。这条线(分隔符)是在Caption属性中输入英文状态下的“-”号二级菜单一级菜单图3.2 一级菜单设计图2)设计二级菜单在Menu Designer 中按照图3.2 中的标识完成【房屋销售管理】菜单的二级菜单的设计。选择热键接着输入二级菜单名先输入一级菜单名 图3.3 【房屋销售管理】的
17、二级菜单设计图接下来分别设计【数据统计表表】、【基本资料录入】、【系统设置】和【帮助】菜单的二级菜单。设计好的二级菜单如图3-4所示。 图3.4 其余三项菜单的二级菜单设计图至于【帮助】菜单的二级菜单只有“关于”和“帮助 F2” 这2项。我们可以展开Delphi 设计平台左上角的“object treeview”视窗查看主窗体“MainForm”的全部菜单内容,如图3-5所示。 这是分隔符图3.5 菜单的详细内容3) 主窗体背景设计在主窗体(MainForm)中放入一个“image控件”,在它的“picture”属性中载入一张保存在本工程文件目下(根目录)的图片作为背景图。图3.6 设置ima
18、ge控件的”picture”属性以载入背景图定时器图3.7 载入背景图后的样式4) 主窗体的状态栏控件设计在主窗体的最下方添加TStatusBar(在控件栏的Win32页)组件,该组件用来显示主窗体运行时的状态,用默认名“StausBar1”。将StausBar1分成三个区域,分别是StatusPanel1、StatusPanel2和StatusPanel3。第一个区域显示公司名称,第二个区域显示当前的操作员,第三个区域显示系统时间。为此,要在主窗体中添加一个时间控件。这些功能的实现是靠代码完成的,稍后介绍这些代码。将状态条分段的操作方法是:在StausBar1 控件上按鼠标右键,弹出“Edi
19、ting StatusBar1.Panels” 编辑窗,在该编辑窗上面按右键,选择弹出窗的“Add”,将StatusBar1分成三段,分别是0-STatusPanel1、1-STatusPanel1、2-STatusPanel1。然后在其“Width”属性中设置每一段的宽度,如图3-8 所示。设置第一段的宽度为150每选择一次Add就会增加一段图3.8 将StausBar1控件分成三段5) 状态栏的代码设计为了在状态栏的第一段中显示目前登录者的姓名,首先在主窗体的“public”域中声明一个UserName的字符串变量:publicname:string;username:string;为了在
20、状态栏的第三段中显示目前的系统时间,要在主窗体中添加一个时间控件,双击主窗体中的定时器控件,在弹出的代码编写器中编写如下代码:procedure Tmainform.Timer1Timer(Sender: TObject);beginMainform.StatusBar1.Panels2.Text :=现在时间: +datetimetostr(now);end;编译后就可以在状态条的第三段看到系统时间,如图3-9所示:工具栏显示系统时间图3.9 状态条第三段显示系统时间6) 主窗体工具栏的设计在主窗体中添加一个工具栏,工具栏上放置若干个快件键,以提供某些快速操作。添加工具栏的操作方法是:1.
21、从Win32页中拖放一个ToolBar1 控件到主窗体中。设置Align属性(对齐)为alNone;设置DragKind属性为dkDock。2. 从Additional 页中拖放10个SpeedButton按钮到ToolBar1上。这些SpeedButton按钮作为工具栏的快捷键;3. 给每个按钮添加上相应的图标和文字。为了能给这些SpeedButton按钮添加上图标,首先要准备好图标(素材),并将他们存放在一个专门的文件夹中,然后在主窗体中添加一个ImageList 控件,使用默认名ImageList1。选择SpeedButton1,通过它的Glyph 属性添加上为它准备好的图标,并从它的C
22、aption 属性中输入中文名。设计好的工具栏ToolBar1如图3-10所示:图3.10 设计好的工具栏7) 主窗体工具栏的拖曳工具栏不一定始终停靠在一个个固定的地方,而是随时可以变换地方,这就要用到控件的拖曳技术。ToolBar1的Align属性设置为:alNone,即不固定位置;ToolBar1的DranKInd属性设置为:dkDock;在主窗体的最下方添加一个Panel1组件,它的Heigh属性设为1;Align属性设为alBottem;Docksite设为True程序的相关代码:procedure TMainForm.FormCreate(Sender: TObject);begin
23、 toolbar1.Hide;end;procedure TMainForm.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 主窗体的第一次代码设计主窗体的界面设计好后,着手编写主窗体
24、初始化的三段代码,以便先让它空转起来。1)procedure 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;3.3 数据模块设计在Delphi的数据库应用程序设计中,数据库与SQL Server 服务器的连接是通过数据模块(Data Module)来实现的。从菜单“File” |
26、“New” | “Other” ,弹出选择“Data Module”模版窗口,从该窗体中点选Data Module 项,如图3-12所示。点选Data Module图3.12 选择DataModule窗体在新生成的Data Module窗体中,从“ADO”组件页中拖放连接数据库的“Connection” 组件,将其Name属性设为“fdc_conn”,再从“DataAceess”页中拖放一个“DataSource”控件将其Name属性设为“dsuser”,并给数据模版(窗体)命名为“dm” ,单元文件保存为:“dmunit.pas” 。设计好的数据模块如图3-13所示。这些是登录页面访问f_U
27、ser表所需的控件DataSource控件图3.13 DataModule窗体中的连接控件我们采用ADO数据库连接技术。设置fdc_conn控件的Connection属性,以实现连接FDC.mdb数据库。按下图首先选择提供程序“Microsoft OLE DB for SQL Server”,然后按右边所谓图示填写数据库所在的服务器名和将要连接的数据库“FDC”,最后确认数据库连接成功。要连接的数据库名选择服务器选择提供程序 图3.14 fdc_conn控件的Connection属性 图3.15 数据库连接成功在以后的设计中将在“dm”窗体中逐次添加其他数据控件。第4章 登录模块设计4.1 登
28、录模块的窗体设计程序的启动画面消失后,将弹出登录窗体,用户通过输入用户名和密码就可以进入系统,然后根据用户权限打开相应的模块。用户登录的作用是保护应用程序中的相关资料,以防止无关人员对程序信息的肆意破坏。当进入程序后,用户只能根据用户拥有的权限对程序中的相关模块进行相应的操作。为了防止无关人员在数据库中获取用户信息,而对应用程序进行操作,可以先对用户名和密码进行再加密后存入数据库中,这样用户名和密码就不太容易被盗取,使应用程序变得更加安全。当没有输入用户名和密码时,程序会提示“请输入正确的用户名和密码”,当用户名或,密码错误时,系统会提示:“对不起,没有这个用户名”或“密码错误”,系统重新回到
29、登录窗口。一个用户最多允许输入三次用户名和密码,超过三次,系统将退出。 4.1.1 登录窗口样式 登录窗体的一般样式如图4-1。 图4.1 登录窗体布局图窗体中用到的图片要事先准备好,保存在工程文件的根目录下。要注意的是,用户名后面的输入框采用的控件是位于DataControls页的DBLookupCombobox1。用它可以从下拉列表框中选择已经保存在User数据表中的用户,不必每次输入用户名。读取User表中的“用户名称”字段DBLookupCombobox1的属性设置图4-2所示:数据模块中的一个名为“dsuser”的Datasource控件 外形设置 图4.2 设置DBLookupCo
30、mbobox1控件的属性5.1.2 登录模块的数据控件登录窗体中输入用户名和密码之后,点击键,程序代码就去访问“FDC.mdf” 数据库中的“ User” 数据表,通过函数()将输入的用户名和密码与User 表中保存的数据是否一致。如果一致,程序就打开主窗体,供登录者进行所需的操作;否则会弹出提示框,要你输入正确的用户名和密码,而且最多只能连续输入三次,若三次都不成功,那么程序就退出。为了能够实现这些功能,我们必须在数据模块(DataModule)中放置如下数据控件:DataSource控件它的DataSet属性:UserDataSet ADODataSet控件它的CommandText属性:
31、select * from f_user表控件,它的TableName属性:f_user图4-3 为登录窗体访问数据库要求的数据控件4.1.2 登录模块代码设计登录系统时既要检查用户名是否存在,还要验证密码是否正确,而且还要获取用户的权限供后面窗体调用。用户名、密码和用户权限存储在f_user表中,字段名有用户编号、用户名称、和用户密码以及用户权限等多项,参见图4-4:代表用户有权进行房型录入操作图4-4 登录用的用户表检验通过后,程序进入主窗体。登录模块的主要程序代码如下:unit loginunit;private Private declarations public times:int
32、eger; /设置一个计算登录次数的参数 Public declarations end;var loginform: Tloginform;implementationuses dmunit, mainunit; /登录窗口要与数据模块窗体和主窗体相关联$R *.dfmprocedure Tloginform.DBLookupComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); /当点击用户名输入框时执行的动作begin if key=13 then /按下回车键 edit1.SetFocus ;end;p
33、rocedure Tloginform.DBLookupComboBox1Enter(Sender: TObject);begin dblookupcombobox1.Color:=clcream;end;procedure Tloginform.DBLookupComboBox1Exit(Sender: TObject);begin dblookupcombobox1.Color:=clskyblue;end;procedure Tloginform.Edit1Enter(Sender: TObject);begin edit1.Color:=clcream; /Edit1是密码输入框end
34、;procedure Tloginform.Edit1Exit(Sender: TObject);begin edit1.Color:=clskyblue;end;procedure Tloginform.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
35、=0 then begin Mainform.Username:=超级用户; mainform.StatusBar1.Panels1.Text:=操作员: +mainform.username; mainform.modelr:=true;主窗体的状态条 mainform.buildlr:=true; mainform.emplr:=true; lr:=true; mainform.sale:=true; mainform.gather:=true; mainform.cust:=true;主窗体中的那些菜单因为登录的是“超级用户”所有的菜单都是可操作的 mainform.plan:=true
36、; mainform.payreturn:=true; mainform.saler:=true; mainform.house:=true; mainform.custpay:=true; 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 i
37、f times3 then begin messagebox(self.Handle,用户名称或用户密码不正确,请重新输入,提示信息,mb_iconinformation); edit1.SetFocus ; end else begin messagebox(self.Handle,您已经三次输入不正确,请退出,提示信息,mb_iconinformation); application.Terminate ; end; end else begin Mainform.Username:=dblookupcombobox1.text; mainform.StatusBar1.Panels1.T
38、ext:=操作员: +mainform.username; mainform.modelr:=dm.usertable.FieldValues房型录入; mainform.buildlr:=dm.usertable.FieldValues楼盘楼房录入; mainform.emplr:=dm.usertable.FieldValues员工资料录入; lr:=dm.usertable.FieldValues公司资料录入; mainform.sale:=dm.usertable.FieldValues房屋销售管理; mainform.gather:=dm.usertable.FieldValues收
39、款管理; mainform.cust:=dm.usertable.FieldValues客户资料管理; mainform.plan:=dm.usertable.FieldValues收款安排查询; mainform.payreturn:=dm.usertable.FieldValues给客户退款管理; mainform.saler:=dm.usertable.FieldValues销售代表统计; mainform.house:=dm.usertable.FieldValues楼房销售统计; mainform.custpay:=dm.usertable.FieldValues客户购订收款统计;
40、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 Tloginform.FormCreate(Sender: TObject);begin dm.us
41、ertable.Open; times:=0;end;procedure Tloginform.FormClose(Sender: TObject; var Action: TCloseAction);begin dm.usertable.Active:=false;end;procedure Tloginform.FormShow(Sender: TObject);begin DBLookupComboBox1.SetFocus ;end;procedure Tloginform.BitBtn2Click(Sender: TObject);begin application.Terminate ;end;end.5.1.3 编译成功后的登录窗口运行后的登录窗口如图4-5所示。 图4-5 登录窗口输入事先存放在用户表f_user中的用户名和密码,就可以进到主窗体。图4-
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100