第33页 共53页
end else begin
MessageBox(Handle, '没有记录可修改!', '提示信息', MB_ICONINFORMATION or MB_OK); exit; end; end;
编辑或增加完数据后,就需要保存这些数据,保存数据通过单击“保存”按钮来实现。在保存按钮的实现过程里,我们需要完成以下工作:对存入数据表的字段值进行有效性检查,例如客户编号不能为空等,否则出现提示框如图6.4所示;判断表的主关键字是否重复;保存编辑或更新的数据到数据库中,对于录入的数据集保存后,同时提示“是否继续增加记录”,提示框如图6.5所示:
图6.4 编号不能为空提示框 图6.5 继续增加提示框
对数据集的删除,可以通过单击“删除”按钮来实现。在删除实现过程中,首先判断是否有记录可删除,然后还将弹出删除确认对话框。如图6.6所示:
图6.6 删除提示框 当用户查询到符合条件的信息后,如果单击“刷新”按钮,会恢复到原始状态,就是对界面进行初始化操作,调用FormShow方法,具体代码如下:
procedure Tlhouse_infof.FormShow(Sender: TObject); begin
if canmodified = False then begin
SB_insert.Enabled := False; SB_delete.Enabled := False; end;
CDS_house_info.close;
第34页 共53页
CDS_house_info.CommandText :=
'select * from house_info order by built_time desc'; CDS_house_info.Open;
StatusBar_foot.Panels[0].Text := ''; dmf.InitFormView(self, false);
Shape_Rented.Brush.Color := COLOR_RENTED; Shape_Sold.Brush.Color := COLOR_SOLD; end;
6.2.2 此模块遇到的问题及解决方法
在设计房屋信息模块中,在点“编辑”按钮后查看基本信息,为方便用户进行查看,涉及到翻页,解决方法是通过输入数据界面的上下页切换实现函数,根据其浏览界面的数据显示出来。代码如下:
procedure Tldhouse_infof.SelectFun(sText: string); begin
CDS_house_info.Close;
CDS_house_info.CommandText := 'select * from house_info where id=''' + lhouse_infof.CDS_house_info.FieldByName('id').AsString + '''';
CDS_house_info.Open; CDS_house_info.edit;
//判断数据集是否包含插入、编辑、删除的记录,而提示是否需保存 CDS_house_info.CheckBrowseMode; //提交数据 if CDS_house_info.ChangeCount > 0 then begin
//包含插入、编辑、删除的记录,进行退出前处理(提示)
MessageBox(Handle, '数据已编辑,请先保存。', '提示信息', MB_ICONINFORMATION or MB_OK);
exit; end;
if sText = 'First' then
lhouse_infof.CDS_house_info.first else if sText = 'Prior' then
lhouse_infof.CDS_house_info.Prior else if sText = 'Next' then
lhouse_infof.CDS_house_info.Next else
lhouse_infof.CDS_house_info.Last; if lhouse_infof.CDS_house_info.Bof then begin
SB_first.Enabled := false; SB_previous.Enabled := false;
第35页 共53页
end else begin
SB_first.Enabled := True; SB_previous.Enabled := True; end;
if lhouse_infof.CDS_house_info.eof then begin
SB_next.Enabled := false; SB_last.Enabled := false; end else begin
SB_next.Enabled := True; SB_last.Enabled := True; end; end;
第36页 共53页
7 信息查询模块设计
7.1 信息查询模块的体系结构设计
7.1.1 信息查询模块功能简介
信息查询模块主要包括五部分:日常信息发布查询、售/租房信息查询、求租/购房信息查询。日常信息模块主要是中介公司日常信息或关于房产一些政策的发布录入。求租,求购房信息模块主要是对需求客户需求信息的录入发布。租房/售房信息查询模块中包括数据的查看、查询、刷新等操作。当信息很多时,就可以通过查询按钮很方便的查询到某一条记录。在进行查询操作时,用户可以同时查询一个条件,也可以查询两个、三个最多四个条件,如果设置了多个查询条件时,还可以设定各条件之间的关系是\并且\还是\或者\,选择\并且\就意味着要同时满足多个条件,选择\或者\则只需满足其一即可。设定完查询条件后,点击\确定\按钮,则浏览界面上会显示出来满足查询条件的所有记录。 7.1.2 信息查询模块功能图
信息查询 日常信息查询 租房信息查询 售房信息查询 求租房信息查求购房信息查图7.1 信息查询模块功能图
7.1.3 信息查询模块流程图
查询 查询界面 选择条件 条件1 条件2 条件3 条件4 确定 是 组合查询 显示查询结果 浏览界面 否 图7.2 信息查询模块流程图
第37页 共53页
7.2 信息查询模块的详细设计
7.2.1 日常信息查询子模块设计
日常信息查询子模块主要是对中介公司具体业务情况,具体公司情况等日常信息的管理及查询。操作员可以进行录入、删除、编辑操作,普通用户可以进行查看、查询。对数据库的操作,与基本信息设计相似,在此不再重复。日常信息查询子模块图如7.3所示:
图7.3 日常信息查询界面 7.2.2 租房信息查询子模块设计
此界面的主要功能是实现所有租房信息的发布浏览查询,在房屋信息模块中的发布显示在此界面,普通用户可以自主查询租房信息,普通用户看到的界面与系统管理员和操作员看到的界面有所不同,在界面初始化时候,通过判断用户信息表中的用户角色,显示的按钮有所不同,如果是普通用户,则SB_delete.Visible := false,并设置按钮的Left属性,实现了对浏览界面的不同操作。
在点“编辑”按钮时候,我们通过语句CDS_load.fieldbyname('user_role').asstring = '普通浏览用户',判断用户角色,如果IS Insert=false,显示ldrent_housesf,如图7.4所示。否则显示ldrent_housesfbf窗体,如图7.5所示。
图7.4 租房信息发布界面