📄 unit8.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 + -