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

📄 unit8.pas

📁 宿舍管理系统
💻 PAS
字号:
unit Unit8;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls,Unit2, DB, ADODB, ExtCtrls;

type
  TForm8 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ComboBox1: TComboBox;
    SpeedButton1: TSpeedButton;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    Image1: TImage;
    Memo1: TMemo;
    ComboBox2: TComboBox;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit8KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure Edit7KeyPress(Sender: TObject; var Key: Char);
    procedure Memo1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form8: TForm8;

implementation
uses Unit9;
{$R *.dfm}

procedure TForm8.BitBtn2Click(Sender: TObject);
begin
Close;
end;
                   //提交学生信息
procedure TForm8.BitBtn1Click(Sender: TObject);
var
Query :TADOQuery;
flag :integer;
begin
flag :=0;
if Edit1.Text ='' then
  begin
    MessageBox(handle,'学号不能为空!','警告',MB_OK+MB_ICONWARNING);
    Edit1.SetFocus ;
    exit;
  end;

if Edit2.Text ='' then
  begin
    MessageBox(handle,'姓名不能为空!','警告',MB_OK+MB_ICONWARNING);
    Edit2.SetFocus ;
    exit;
  end;

if  ComboBox2.Text ='' then
  begin
    MessageBox(handle,'性别不能为空!','警告',MB_OK+MB_ICONWARNING);
    ComboBox2.SetFocus ;
    exit;
  end;

if Edit4.Text ='' then
  begin
    MessageBox(handle,'班级不能为空!','警告',MB_OK+MB_ICONWARNING);
    Edit4.SetFocus ;
    exit;
  end;

if Edit7.Text ='' then
  begin
    MessageBox(handle,'寝室号不能为空!','警告',MB_OK+MB_ICONWARNING);
    Edit7.SetFocus ;
    exit;
  end;

if ComboBox1.Text ='' then
  begin
    MessageBox(handle,'系别不能为空!','警告',MB_OK+MB_ICONWARNING);
    ComboBox1.SetFocus ;
    exit;
  end;

ADOQuery1.Connection :=DataModule2.ADOConnection1 ;
ADOQuery2.Connection :=DataModule2.ADOConnection1 ;

ADOQuery1.Close ;              //检查系统中是否存在该学号的学生了
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Text :='select 学号 from 学生信息表 where 学号='''+Edit1.Text+'''';
ADOQuery1.Prepared ;
ADOQuery1.Open ;
if not ADOQuery1.IsEmpty then
  begin
    MessageBox(handle,'已存在该学号的学生了!','警告',MB_OK+MB_ICONWARNING);
    Edit1.SetFocus ;
    exit;
  end;


ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.text :='select 应住人数,实住人数,居住性别 from 寝室表 where 寝室号='''+Edit7.Text+'''';
ADOQuery1.Open ;
if ADOQuery1.IsEmpty  then
  begin
    MessageBox(handle,'没有该寝室号!','警告',MB_OK+MB_ICONINFORMATION);
    Edit7.SetFocus ;
    exit;
  end;

if ADOQuery1.FieldByName('居住性别').AsString <>trim(ComboBox2.Text) then      //确定该寝室的居住性别与该生的性别相同否
  begin
    MessageBox(handle,'该生不能住该寝室,因为居住性别与该生性别不同!','警告',MB_OK+MB_ICONINFORMATION);
    ComboBox2.SelectAll;
    exit;
  end;
if ADOQuery1.FieldByName('应住人数').AsString =ADOQuery1.FieldByName('实住人数').AsString then
  begin
    MessageBox(handle,'该寝室已住满!','警告',MB_OK+MB_ICONINFORMATION);        //确定该寝室已满否
    Edit7.SetFocus ;
    exit;
  end;
if StrToInt(ADOQuery1.FieldByName('应住人数').AsString)-StrToInt(ADOQuery1.FieldByName('实住人数').AsString)=1 then
  begin
    flag :=1;                                                       //寝室还只能住一个人时,设一个标识
  end;

Query :=TADOQuery.Create(self);
Query.Connection :=DataModule2.ADOConnection1 ;
Query.SQL.Clear ;
if flag=1 then                 //新增了一个人后,决定状态是否已满
  begin
    Query.SQL.Text :='update 寝室表 set 实住人数=(实住人数+1),状态=:A where 寝室号=:B';
    Query.Parameters.ParamByName('A').Value :='已满';
    Query.Parameters.ParamByName('B').Value :=trim(Edit7.Text );
    Query.Prepared;
  end
else
  begin
    Query.SQL.Text :='update 寝室表 set 实住人数=(实住人数+1) where 寝室号=:B';
    Query.Parameters.ParamByName('B').Value :=trim(Edit7.Text );
    Query.Prepared ;
  end;


ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.text :='select * from 学生信息表';
ADOQuery1.Open ;
                                        //添加信息到学生信息表中
ADOQuery1.Append ;
ADOQuery1.FieldByName ('学号').AsString :=trim(Edit1.Text );
ADOQuery1.FieldByName('姓名').AsString :=trim(Edit2.Text );
ADOQuery1.FieldByName('性别').AsString :=trim(ComboBox2.Text );
ADOQuery1.FieldByName('系别').AsString :=trim(Combobox1.Text );
ADOQuery1.FieldByName('班级').AsString :=trim(Edit4.Text );
ADOQuery1.FieldByName('电话').AsString  :=trim(Edit5.Text );
ADOQuery1.FieldByName('政治面貌').AsString :=trim(Edit6.Text );
ADOQuery1.FieldByName('备注').AsString :=Memo1.Text ;
ADOQuery1.Prepared ;


ADOQuery2.Close ;
ADOQuery2.SQL.Clear ;
ADOQuery2.SQL.text :='select * from 学生寝室表';
ADOQuery2.Open ;
                                    //添加信息到学生寝室表中
ADOQuery2.Append ;
ADOQuery2.FieldByName ('学号').AsString :=trim(Edit1.Text );
ADOQuery2.FieldByName('姓名').AsString :=trim(Edit2.Text );
ADOQuery2.FieldByName('寝室号').AsString :=trim(Edit7.Text );
ADOQuery2.FieldByName('床位').AsInteger :=StrToInt(trim(Edit8.Text));
ADOQuery2.Prepared ;
try
  DataModule2.ADOConnection1.BeginTrans;          //事务提交
  ADOQuery1.Post ;
  ADOQuery2.Post ;
  Query.ExecSQL ;
  DataModule2.ADOConnection1.CommitTrans ;
  MessageBox(handle,'学生信息录入成功!','提示',MB_OK+MB_ICONINFORMATION);
except
  DataModule2.ADOConnection1.RollbackTrans ;             //提交失败,事务回滚
  MessageBox(handle,'学生信息录入失败!','提示',MB_OK+MB_ICONWARNING);
 end;
Query.close;
Query.free;

end;
                              //调出寝室查询窗口
procedure TForm8.SpeedButton1Click(Sender: TObject);
begin
Application.CreateForm(TForm9,Form9);
Form9.ShowModal;
Form9.Free ;

end;
                               //限制电话号码字符的输入
procedure TForm8.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
    begin
     Edit6.SetFocus ;
     exit;
    end;

if not(Key in ['0'..'9','-',#8]) then
  begin
     MessageBox(handle,'电话号码只能输入数字和(-)号','警告',MB_OK+MB_ICONWARNING);
    Key :=#0;
  end;
end;
                        //限制床位号的输入字符
procedure TForm8.Edit8KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
    begin
     Memo1.SetFocus ;
     exit;
    end;

if not(Key in ['0'..'9',#8]) then
  begin
     MessageBox(handle,'床位号只能输入数字','警告',MB_OK+MB_ICONWARNING);
    Key :=#0;
  end; 
end;

procedure TForm8.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
      Edit2.SetFocus ;
    end;

end;

procedure TForm8.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
      ComboBox2.SetFocus ;
      ComboBox2.DroppedDown:=true;
    end;

end;

procedure TForm8.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
     Edit4.SetFocus ;
    end;


end;

procedure TForm8.ComboBox2KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
      ComboBox1.SetFocus ;
      ComboBox1.DroppedDown:=true;
    end;
end;

procedure TForm8.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
     Edit5.SetFocus ;
    end;
end;

procedure TForm8.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
     Edit7.SetFocus ;
    end;
end;

procedure TForm8.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
     Edit8.SetFocus ;
    end;
end;

procedure TForm8.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
     BitBtn1.Click;
    end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -