📄 unstud.~pas
字号:
unit UnStud;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ComCtrls, ToolWin, Menus, ExtCtrls, Grids, DBGrids, DB,
ADODB, StdCtrls, Mask, DBCtrls, Buttons;
type
TFm_Student = class(TForm)
Image1: TImage;
Shape1: TShape;
Btn_Add: TBitBtn;
Btn_Modify: TBitBtn;
Btn_Delete: TBitBtn;
Btn_Query: TBitBtn;
Btn_Browse: TBitBtn;
Btn_Print: TBitBtn;
Shape2: TShape;
Btn_OK: TBitBtn;
Btn_Cancel: TBitBtn;
Label10: TLabel;
Lb_Count: TLabel;
Label11: TLabel;
DBGrid1: TDBGrid;
ADOQY2: TADOQuery;
Shape3: TShape;
Label1: TLabel;
DBEdit1: TDBEdit;
DS: TDataSource;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
Label7: TLabel;
DBEdit9: TDBEdit;
Label8: TLabel;
DBEdit7: TDBEdit;
Label9: TLabel;
DBEdit8: TDBEdit;
Label12: TLabel;
DBEdit10: TDBEdit;
DBNavigator1: TDBNavigator;
ADOQY2DSDesigner1: TWideStringField;
ADOQY2DSDesigner2: TWideStringField;
ADOQY2DSDesigner3: TWideStringField;
ADOQY2DSDesigner4: TWideStringField;
ADOQY2DSDesigner5: TWideStringField;
ADOQY2DSDesigner6: TWideStringField;
ADOQY2DSDesigner7: TWideStringField;
ADOQY2DSDesigner8: TWideStringField;
ADOQY2DSDesigner9: TWideStringField;
ADOQY2DSDesigner10: TWideStringField;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure Btn_BrowseClick(Sender: TObject);
procedure Btn_DeleteClick(Sender: TObject);
procedure Btn_AddClick(Sender: TObject);
procedure Btn_OKClick(Sender: TObject);
procedure Btn_QueryClick(Sender: TObject);
procedure Btn_ModifyClick(Sender: TObject);
procedure Btn_CancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
function init:boolean;
{ Public declarations }
end;
var
Fm_Student: TFm_Student;
Flag:Integer;//用于标识操作的属性(1:新增,2:修改,3:查询)
edtid,edName,edsex,edMidyear,edLiner,edTime,EdMail,edtelep,EdDwelling,edremark:string;//分别用于存放各种名
implementation
uses UnDB, UnStudent;
{$R *.dfm}
function TFm_Student.init; //初始化
begin
init:=false;
if Application.FindComponent('Fm_Student')=nil then
Application.CreateForm(TFm_Student,Fm_Student);
init:=true;
end;
procedure TFm_Student.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if (messagedlg('真的要退出班级管理吗?',mtconfirmation,[mbok,mbcancel],0)=mrok)
then
canclose:=true
else
canclose:=false;
end;
procedure TFm_Student.FormCreate(Sender: TObject);
begin
//连接数据库
ds.DataSet.Active:=true;
ADOQY2.Active:=true;
ADOQY2.Close;
ADOQY2.SQL.Clear;
ADOQY2.SQL.Add('select * from student_Info where 1<>1');
ADOQY2.Open;
//初始化各文本框不能使用
Dbedit1.Enabled:=false;
Dbedit2.Enabled:=false;
Dbedit3.Enabled:=false;
Dbedit4.Enabled:=false;
Dbedit5.Enabled:=false;
Dbedit6.Enabled:=false;
Dbedit7.Enabled:=false;
Dbedit8.Enabled:=false;
Dbedit9.Enabled:=false;
Dbedit10.Enabled:=false;
//总记录数置0
LB_Count.Caption :=IntToStr(ADOQY2.RecordCount);
end;
procedure TFm_Student.Btn_BrowseClick(Sender: TObject);
begin
ADOQY2.Close;
ADOQY2.SQL.Clear;
ADOQY2.SQL.Add('select * from student_Info order by 学号');
ADOQY2.Open;
if ADOQY2.RecordCount=0 then
begin
showmessage('班级表信息为空! ');
Btn_Add.SetFocus;
end;
Btn_OK.Enabled:=false;
Btn_Cancel.Enabled:=false;
//总记录数
LB_Count.Caption :=IntToStr(ADOQY2.RecordCount);
end;
procedure TFm_Student.Btn_DeleteClick(Sender: TObject);
begin
if ADOQY2.RecordCount=0 then
begin
showmessage('记录为空,请选择要删除的班级信息!');
Btn_Browse.SetFocus;
end
else begin
if messagedlg('是否真的要删除此记录!',mtwarning,[mbyes,mbno],0)=mrno then
//取消删除
begin
Btn_Add.SetFocus;
exit;
end
//删除记录
else begin
ADOQY2.Open;
ADOQY2.Delete;
Btn_Delete.SetFocus;
end;
ADOQY2.Close;
ADOQY2.SQL.Clear;
ADOQY2.SQL.Text:='select * from student_Info order by 学号';
ADOQY2.Open;
if (ADOQY2.RecordCount<=0) then
begin
showmessage('班级信息记录已空! ');
Btn_Add.SetFocus;
end
else begin
ADOQY2.First;
end;
end;
//总记录数
LB_Count.Caption :=IntToStr(ADOQY2.RecordCount);
end;
procedure TFm_Student.Btn_AddClick(Sender: TObject);
begin
//设置各输入框的可用性
Dbedit1.Enabled:=true;
Dbedit2.Enabled:=true;
Dbedit3.Enabled:=true;
Dbedit4.Enabled:=true;
Dbedit5.Enabled:=true;
Dbedit6.Enabled:=true;
Dbedit7.Enabled:=true;
Dbedit8.Enabled:=true;
Dbedit9.Enabled:=true;
Dbedit10.Enabled:=true;
//使数据集成为插入状态
ADOQY2.Insert;
//1:标识进行新增操作
Flag:=1;
Btn_OK.Enabled:=true;
Btn_Cancel.Enabled:=true;
//总记录数
LB_Count.Caption :=IntToStr(ADOQY2.RecordCount);
Dbedit1.SetFocus;
end;
procedure TFm_Student.Btn_OKClick(Sender: TObject);
begin
//1:标识进行新增操作
if Flag=1 then
begin
if Dbedit2.Text='' then
begin
showmessage('姓名不能为空,请输入姓名 !');
Dbedit1.SetFocus;
end
else begin
ADOQY2.Append;
//初始化各文本框不能使用
Dbedit1.Enabled:=false;
Dbedit2.Enabled:=false;
Dbedit3.Enabled:=false;
Dbedit4.Enabled:=false;
Dbedit5.Enabled:=false;
Dbedit6.Enabled:=false;
Dbedit7.Enabled:=false;
Dbedit8.Enabled:=false;
Dbedit9.Enabled:=false;
Dbedit10.Enabled:=false;
//设置各按钮的可用性
Btn_Add.Enabled:=true;
Btn_Modify.Enabled:=true;
Btn_Delete.Enabled:=true;
Btn_Query.Enabled:=true;
Btn_Browse.Enabled:=true;
Btn_Print.Enabled:=true;
Btn_OK.Enabled:=false;
Btn_Cancel.Enabled:=false;
Btn_Add.SetFocus;
//总记录数
LB_Count.Caption :=IntToStr(ADOQY2.RecordCount);
end;
end
//2:标识进行修改操作
else if Flag=2 then
begin
if ((dbedit1.Text='') or (dbedit2.Text='') or (dbedit3.Text='') or (dbedit4.Text='') or (dbedit5.Text='') or (dbedit6.Text='') or (dbedit7.Text='') or (dbedit8.Text='') ) then
begin
showmessage('所修改不能为空,请重新输入!');
dbedit1.SetFocus;
end
else begin
ADOQY2.Post;
showmessage('修改成功!');
//初始化各文本框不能使用
Dbedit1.Enabled:=false;
Dbedit2.Enabled:=false;
Dbedit3.Enabled:=false;
Dbedit4.Enabled:=false;
Dbedit5.Enabled:=false;
Dbedit6.Enabled:=false;
Dbedit7.Enabled:=false;
Dbedit8.Enabled:=false;
Dbedit9.Enabled:=false;
Dbedit10.Enabled:=false;
//设置各按钮的可用性
Btn_Add.Enabled:=true;
Btn_Modify.Enabled:=true;
Btn_Delete.Enabled:=true;
Btn_Query.Enabled:=true;
Btn_Browse.Enabled:=true;
Btn_Print.Enabled:=true;
Btn_OK.Enabled:=false;
Btn_Cancel.Enabled:=false;
Btn_Modify.SetFocus;
//总记录数
LB_Count.Caption :=IntToStr(ADOQY2.RecordCount);
end;
end
//3:标识进行查询操作
else if flag = 3 then
begin
edtid:=dbedit1.Text;
edName:=dbedit2.Text;
edsex:=dbedit3.Text;
edMidyear:=dbedit4.Text;
edLiner:=dbedit5.Text;
edTime:=dbedit6.Text;
EdMail:=dbedit7.Text;
edtelep:=dbedit8.Text;
EdDwelling:=dbedit9.Text;
edremark:=dbedit10.Text;
ADOQY2.Close;
ADOQY2.SQL.Clear;
ADOQY2.SQL.Add('select * from student_Info ');
// 学号不为空
if edtid<>'' then
begin
ADOQY2.SQL.Add('where 学号='''+edtid+'''');
//姓名不为空
if edName<>'' then
begin
ADOQY2.SQL.Add('where 姓名='''+edName+'''');
end;
//性别不为空
if edsex<>'' then
begin
ADOQY2.SQL.Add('where 性别='''+edsex+'''');
end;
//出生年月不为空
if edMidyear<>'' then
begin
ADOQY2.SQL.Add('where 出生年月='''+edMidyear+'''');
end;
//班号不为空
if edLiner<>'' then
begin
ADOQY2.SQL.Add('where 班号='''+edLiner+'''');
end;
//入学时间不为空
if edTime<>'' then
begin
ADOQY2.SQL.Add('where 入学时间='''+edTime+'''');
end;
//邮政编码不为空
if EdMail<>'' then
begin
ADOQY2.SQL.Add('where 邮政编码='''+EdMail+'''');
end;
//联系电话不为空
if edtelep<>'' then
begin
ADOQY2.SQL.Add('where 联系电话='''+edtelep+'''');
end;
//家庭住址不为空
if EdDwelling<>'' then
begin
ADOQY2.SQL.Add('where 家庭住址='''+EdDwelling+'''');
end;
//备注不为空
if edremark<>'' then
begin
ADOQY2.SQL.Add('where 备注='''+edremark+'''');
end;
end
//姓名不为空
else if edName<>'' then
begin
ADOQY2.SQL.Add('where 姓名='''+edName+'''');
//性别不为空
if edsex<>'' then
begin
ADOQY2.SQL.Add('where 性别='''+edsex+'''');
end;
//出生年月不为空
if edMidyear<>'' then
begin
ADOQY2.SQL.Add('where 出生年月='''+edMidyear+'''');
end;
//班号不为空
if edLiner<>'' then
begin
ADOQY2.SQL.Add('where 班号='''+edLiner+'''');
end;
//入学时间不为空
if edTime<>'' then
begin
ADOQY2.SQL.Add('where 入学时间='''+edTime+'''');
end;
//邮政编码不为空
if EdMail<>'' then
begin
ADOQY2.SQL.Add('where 邮政编码='''+EdMail+'''');
end;
//联系电话不为空
if edtelep<>'' then
begin
ADOQY2.SQL.Add('where 联系电话='''+edtelep+'''');
end;
//家庭住址不为空
if EdDwelling<>'' then
begin
ADOQY2.SQL.Add('where 家庭住址='''+EdDwelling+'''');
end;
//备注不为空
if edremark<>'' then
begin
ADOQY2.SQL.Add('where 备注='''+edremark+'''');
end;
end
//性别不为空
else if edsex<>'' then
begin
ADOQY2.SQL.Add('where 性别='''+edsex+'''');
//出生年月不为空
if edMidyear<>'' then
begin
ADOQY2.SQL.Add('where 出生年月='''+edMidyear+'''');
end;
//班号不为空
if edLiner<>'' then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -