📄 frm_roomu.pas
字号:
unit frm_roomU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frm_infoU, DB, StdCtrls, Grids, DBGrids,Control_roomU,ClassesU,
Control_houseU,ADODB;
type
Tfrm_room = class(Tfrm_info)
Label1: TLabel;
Label2: TLabel;
edt_roomNo: TEdit;
Label3: TLabel;
edt_capability: TEdit;
Label4: TLabel;
edt_fee: TEdit;
Label5: TLabel;
edt_tel: TEdit;
Label6: TLabel;
Memo_remark: TMemo;
cbx_houseNo: TComboBox;
Label7: TLabel;
cbx_houseNo_s: TComboBox;
Label8: TLabel;
edt_roomNo_s: TEdit;
btn_search: TButton;
procedure FormShow(Sender: TObject);
procedure DBGrid_infoCellClick(Column: TColumn);
procedure btn_addClick(Sender: TObject);
procedure edt_capabilityKeyPress(Sender: TObject; var Key: Char);
procedure edt_feeKeyPress(Sender: TObject; var Key: Char);
procedure btn_editClick(Sender: TObject);
procedure btn_delClick(Sender: TObject);
procedure cbx_houseNo_sChange(Sender: TObject);
procedure btn_searchClick(Sender: TObject);
private
{ Private declarations }
public
//填充数据
procedure FillData;
//填充数据byHouseID;
procedure FillDataByHouseID(houseID:string);
//填充公寓号
procedure FillHouseID;
//填充查找用公寓号
procedure FillHouseIDForSearch;
end;
var
frm_room: Tfrm_room;
implementation
{$R *.dfm}
procedure Tfrm_room.FillDataByHouseID(houseID:string);
begin
self.DataSource_info.DataSet:=GetRoomArrayByHouseID(houseID);
self.DBGrid_info.Columns[0].Visible :=false;
end;
procedure Tfrm_room.FillHouseIDForSearch;
var
ADOQuery:TADOQuery;
begin
ADOQuery:=TADOQuery.Create(nil); //创建空数据集
ADOQuery:=Control_houseU.GetHouseArray; //得到公寓信息数据集
if ADOQuery.RecordCount<1 then
begin
ADOQuery:=nil;
exit;
end;
self.cbx_houseNo_s.Items.Clear;
self.cbx_houseNo_s.Items.Add('全部');
while(not ADOQuery.Eof) do
begin
self.cbx_houseNo_s.Items.Add(ADOQuery.FieldValues['公寓号']);
ADOQuery.Next;
end;
self.cbx_houseNo_s.ItemIndex:=0;
ADOQuery:=nil;
end;
procedure Tfrm_room.FillHouseID;
var
ADOQuery:TADOQuery;
begin
ADOQuery:=TADOQuery.Create(nil); //创建空数据集
ADOQuery:=Control_houseU.GetHouseArray; //得到公寓信息数据集
//判断数据集是否为空,若空则退出
if ADOQuery.RecordCount<1 then
begin
ADOQuery:=nil;
exit;
end;
self.cbx_houseNo.Items.Clear;
//将数据集中的内容循环写入ComboBox
while(not ADOQuery.Eof) do
begin
self.cbx_houseNo.Items.Add(ADOQuery.FieldValues['公寓号']);
ADOQuery.Next;
end;
self.cbx_houseNo.ItemIndex:=0;
ADOQuery:=nil;
end;
procedure Tfrm_room.FillData;
begin
DataSource_info.DataSet:=Control_roomU.GetRoomArray;
self.DBGrid_info.Columns[0].Visible :=false;
end;
procedure Tfrm_room.FormShow(Sender: TObject);
begin
inherited;
FillData;
FillHouseIDForSearch;
end;
procedure Tfrm_room.DBGrid_infoCellClick(Column: TColumn);
begin
if self.DBGrid_info.Fields[0].IsNull then
exit;
self.edt_roomNo.Tag:=self.DBGrid_info.Fields[0].Value;//保存id
self.edt_roomNo.Text :=self.DBGrid_info.Fields[1].Value;
self.edt_capability.Text:=inttostr(self.DBGrid_info.Fields[2].Value);
self.edt_fee.Text:=floattostr(self.DBGrid_info.Fields[3].Value);
self.edt_tel.Text:=self.DBGrid_info.Fields[4].Value;
self.cbx_houseNo.Text:=self.DBGrid_info.Fields[5].Value;
self.Memo_remark.Text:=self.DBGrid_info.Fields[6].Value;
inherited;
end;
procedure Tfrm_room.btn_addClick(Sender: TObject);
begin
inherited;
self.edt_roomNo.Tag:=0;
self.edt_roomNo.Text :='';
self.edt_capability.Text:='8';
self.edt_fee.Text:='100';
self.edt_tel.Text:='';
self.cbx_houseNo.Text:='';
self.Memo_remark.Text:='';
FillHouseID;
end;
procedure Tfrm_room.edt_capabilityKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if not((key in ['0'..'9',#8,#13])) then
key:=#0;
end;
procedure Tfrm_room.edt_feeKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if not((key in ['0'..'9',#8,#13,#46])) then
key:=#0;
end;
procedure Tfrm_room.btn_editClick(Sender: TObject);
var
s:string;
begin
if self.btn_edit.Caption='修改' then
begin
if edt_roomNo.Text ='' then
begin
MessageBox(Handle, '没有可以修改的数据!', '信息', MB_ICONEXCLAMATION);
exit;
end
else
begin
s:=self.cbx_houseNo.Text;
FillHouseID;
self.cbx_houseNo.Text:=s;
self.cbx_houseNo.SetFocus;
end;
end;
inherited;
end;
procedure Tfrm_room.btn_delClick(Sender: TObject);
var
room:Troom;
begin
if(self.btn_del.Caption='删除') then
begin
if MessageBox(Handle, '您确定要删除该寝室信息', '信息',
MB_ICONQUESTION or MB_OKCANCEL) = IDOK then
begin
Control_roomU.Delroom(self.edt_roomNo.Tag);
FillData;
if self.DBGrid_info.Fields[0].IsNull then
exit;
self.edt_roomNo.Tag:=self.DBGrid_info.Fields[0].Value;//保存id
self.edt_roomNo.Text :=self.DBGrid_info.Fields[1].Value;
self.edt_capability.Text:=inttostr(self.DBGrid_info.Fields[2].Value);
self.edt_fee.Text:=floattostr(self.DBGrid_info.Fields[3].Value);
self.edt_tel.Text:=self.DBGrid_info.Fields[4].Value;
self.cbx_houseNo.Text:=self.DBGrid_info.Fields[5].Value;
self.Memo_remark.Text:=self.DBGrid_info.Fields[6].Value;
end;
end;
if(self.btn_del.Caption='保存') then
begin
if((edt_roomNo.Text='') or (edt_capability.Text='')
or (edt_fee.Text='') or (self.cbx_houseNo.Text='')) then
begin
MessageBox(Handle, '内容填写不正确!', '信息', MB_ICONEXCLAMATION);
exit;
end;
//查找是否存在重复
room:=Troom.Create;
room:=GetroomByroomNo(trim(edt_RoomNo.Text),self.cbx_houseNo.Text);
if(room<>nil) then
begin
if(room.id<>edt_roomNo.Tag) then
begin
MessageBox(Handle, '寝室号已经存在,请重新设置!', '信息', MB_ICONEXCLAMATION);
exit;
end;
end;
room:=Troom.Create;
room.id:=edt_roomNo.Tag;
room.roomID:=trim(edt_roomNo.Text);
room.capability :=strtoint(trim(edt_capability.Text));
room.fee :=strtofloat(trim(edt_fee.Text));
room.tel :=self.edt_tel.Text;
room.HouseID:=self.cbx_houseNo.Text;
room.remark:=self.Memo_remark.Text;
if(Control_roomU.Editroom(room)) then
begin
MessageBox(Handle, '修改成功!', '信息', MB_ICONASTERISK);
//刷新内容
FillData;
end
else
begin
MessageBox(Handle, '修改失败!', '信息', MB_ICONEXCLAMATION);
exit;
end;
end;
if(self.btn_del.Caption='确定') then
begin
if((edt_roomNo.Text='') or (edt_capability.Text='')
or (edt_fee.Text='') or (self.cbx_houseNo.Text='')) then
begin
MessageBox(Handle, '内容填写不正确!', '信息', MB_ICONEXCLAMATION);
exit;
end;
//查找是否存在重复
if (GetroomByroomNo(trim(edt_RoomNo.Text),self.cbx_houseNo.Text))<>nil then
begin
MessageBox(Handle, '公寓号已经存在,请重新设置!', '信息', MB_ICONEXCLAMATION);
exit;
end;
room:=Troom.Create;
room.id:=edt_roomNo.Tag;
room.roomID:=trim(edt_roomNo.Text);
room.capability :=strtoint(trim(edt_capability.Text));
room.fee :=strtofloat(trim(edt_fee.Text));
room.tel :=self.edt_tel.Text;
room.HouseID:=self.cbx_houseNo.Text;
room.remark:=self.Memo_remark.Text;
if(Control_roomU.Addroom(room)) then
begin
MessageBox(Handle, '添加成功!', '信息', MB_ICONASTERISK);
self.edt_roomNo.Tag:=0;
self.edt_roomNo.Text :='';
self.edt_capability.Text:='8';
self.edt_fee.Text:='100';
self.edt_tel.Text:='';
self.cbx_houseNo.Text:='';
self.Memo_remark.Text:='';
//刷新内容
FillData;
end
else
begin
MessageBox(Handle, '添加失败!', '信息', MB_ICONEXCLAMATION);
exit;
end;
end;
inherited;
end;
procedure Tfrm_room.cbx_houseNo_sChange(Sender: TObject);
begin
inherited;
if(self.cbx_houseNo_s.Text='全部') then
begin
self.FillData;
end
else
begin
FillDataByHouseID(self.cbx_houseNo_s.Text);
end;
self.edt_roomNo_s.Text:='';
end;
procedure Tfrm_room.btn_searchClick(Sender: TObject);
var
houseNo,roomNo:string;
begin
if(self.cbx_houseNo_s.Text='全部') then
houseNo:=''
else
houseNo:=self.cbx_houseNo_s.Text;
if trim(self.edt_roomNo_s.Text)='' then
begin
MessageBox(Handle, '请输入要查找的寝室号!', '信息', MB_ICONEXCLAMATION);
exit;
end;
roomNo:= trim(self.edt_roomNo_s.Text);
self.DataSource_info.DataSet:=GetRoomByRoomNoForSearch(roomNo,houseNo);
self.DBGrid_info.Columns[0].Visible :=false;
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -