⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frm_roomu.pas

📁 学生公寓管理系统 很好的设计 呵呵 绝对很好
💻 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 + -