📄 addcardf.pas
字号:
unit addcardF;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Buttons, ExtCtrls, DB, ADODB, Grids, DBGrids;
type
Taddcard = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
Label1: TLabel;
Edit3: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
Edit1: TEdit;
RadioButton2: TRadioButton;
Edit2: TEdit;
BitBtn3: TBitBtn;
DataSource1: TDataSource;
ADOTable1: TADOTable;
GroupBox2: TGroupBox;
Edit4: TEdit;
ADOQuery1: TADOQuery;
Label2: TLabel;
Edit5: TEdit;
Label3: TLabel;
Edit6: TEdit;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
procedure BitBtn3Click(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure RadioButton1KeyPress(Sender: TObject; var Key: Char);
procedure RadioButton2KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit6KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
//学号,姓名,出生年月,性别,专业,年级字段
studno,name,bornyear,man,clas,major,grade:string;
procedure clear(); //定义输入框信息函数clear();
end;
var
addcard: Taddcard;
implementation
{$R *.dfm}
uses mainF;
//清除输入框信息函数clear();
procedure Taddcard.clear;
begin
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
edit6.Clear;
radiobutton1.Checked:=false;
radiobutton2.Checked:=false;
end;
//**********显示总共卡记录数**************
procedure Taddcard.DataSource1DataChange(Sender: TObject; Field: TField);
begin
edit4.Text:=inttostr(adotable1.RecordCount);
end;
//**********搜索学生信息******************
procedure Taddcard.BitBtn3Click(Sender: TObject);
begin
if (trim(edit1.Text)='')and (trim(edit2.Text)='') then
begin
MessageDlg(' 请输入查询条件! ',mtWarning,[mbOk], 0);
exit;
end;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from '+adotable1.TableName);
if radiobutton1.Checked then
begin
//按学号查询
adoquery1.SQL.Add('where('+radiobutton1.Caption+' like ''%'+trim(edit1.Text)+'%'')');
edit1.SetFocus;
edit2.Clear;
end
else
begin
//按姓名查询
adoquery1.SQL.Add('where('+radiobutton2.Caption+' like ''%'+edit2.Text+'%'')');
edit2.SetFocus;
edit1.Clear;
end;
adoquery1.Open;
studno:=trim(adoquery1.fieldByName('学号').AsString);
name:=trim(adoquery1.fieldByName('姓名').AsString);
clas:=trim(adoquery1.fieldByName('班级').AsString);
man:=trim(adoquery1.fieldByName('性别').AsString);
grade:=trim(adoquery1.fieldByName('年级').AsString);
major:=trim(adoquery1.fieldByName('专业').AsString);
//将查询得到的数据通过复制到数据库中
adotable1.Clone(adoquery1,ltUnspecified);
adoquery1.Close;
end;
//退出本窗口
procedure Taddcard.BitBtn2Click(Sender: TObject);
begin
clear();
close;
end;
//***********办理新卡***************
procedure Taddcard.BitBtn1Click(Sender: TObject);
var
cardno,cardpassw,money,date,tempcard,tempno:string;
begin
cardno:=trim(edit3.Text);
cardpassw:=trim(edit5.Text);
money:=trim(edit6.Text);
date:=datetostr(now);
//要求用户输入基本信息
if cardno='' then
begin
MessageDlg(' 请输入新卡号! ',mtWarning,[mbOk], 0);
edit3.SetFocus;
exit;
end;
if cardpassw='' then
begin
MessageDlg(' 请为新卡确定密码! ',mtWarning,[mbOk], 0);
edit5.SetFocus;
exit;
end;
if money='' then
begin
MessageDlg(' 请输入要充入的金额! ',mtWarning,[mbOk], 0);
edit6.SetFocus;
exit;
end;
//查询是否已经存在此卡号,如是则要求另输入一新卡号
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.Add('select * from 卡用户信息 where 卡号='''+cardno+'''');
adoquery3.Open;
tempcard:=trim(adoquery3.fieldByName('卡号').AsString);
adoquery3.Close;
//查询该生是否已经办理了卡,不允许一人多卡
adoquery2.Close;
adoquery2.SQL.Clear;
if radiobutton1.Checked then
adoquery2.SQL.Add('select * from 卡用户信息 where 学号='''+trim(edit1.Text)+'''')
else
adoquery2.SQL.Add('select * from 卡用户信息 where 姓名='''+trim(edit2.Text)+'''');
adoquery2.Open;
tempno:=trim(adoquery2.fieldByName('学号').AsString);
adoquery2.Close;
if tempno<>'' then
begin
MessageDlg(' 该生已经办理了餐卡! ',mtWarning,[mbOk], 0);
exit;
end;
if tempcard<>'' then
begin
MessageDlg(' 已经存在此卡号,请重新输入新卡号! ',mtWarning,[mbOk], 0);
edit3.SetFocus;
exit;
end;
//在卡用户信息表中添加新卡记录
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into 卡用户信息(卡号,学号,姓名,性别,年级,专业,班级,办卡日期) values ('''+cardno+''','''+studno+''','''+name+''','''+man+''','''+grade+''','''+major+''','''+clas+''','''+date+''')');
adoquery1.Open;
adoquery1.Close;
//在卡信息表中添加新记录
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('insert into 卡信息(卡号,密码,学号,金额,状态) values ('''+cardno+''','''+cardpassw+''','''+studno+''','''+money+''',''正常'')');
adoquery2.ExecSQL;
adoquery2.Close;
MessageDlg(' 新卡办理成功! ',mtInformation,[mbOk], 0);
end;
//******选择查询条件后按回车跳 到查询条件输入框********
procedure Taddcard.RadioButton1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then //回车光标移到EDIT1
edit1.SetFocus;
end;
//********输入完查询条件后按回车执行查询功能**********
procedure Taddcard.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bitbtn3.Click;
end;
//***********选择按姓名查询时按回车跳到查询条件输入框*******
procedure Taddcard.RadioButton2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edit2.SetFocus;
end;
// ***********输入完查询条件之后按回车执行查询功能********
procedure Taddcard.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bitbtn3.Click;
end;
//**********输入完卡号按回车跳到密码输入框********
procedure Taddcard.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edit5.SetFocus;
end;
//***********输入完密码后按回车跳到充值金额输入框******
procedure Taddcard.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edit6.SetFocus;
end;
//***********输入完充值金额后按回车执行增加新卡功能*******
procedure Taddcard.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Bitbtn1.Click;
end;
//**********新打开窗口时清空各个输入框信息**********
procedure Taddcard.FormCreate(Sender: TObject);
begin
clear();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -