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

📄 consumemodelf.pas

📁 用delphi和sql server编写的校园IC卡管理系统。
💻 PAS
字号:
unit consumemodelF;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, Mask, DBCtrls, StdCtrls, ComCtrls, ToolWin, Buttons,
  ExtCtrls, DB, ADODB;

type
  Tconsumemodel = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit2: TEdit;
    StringGrid1: TStringGrid;
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    procedure BitBtn3Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    no:string;    //学号信息
    procedure stringclear();  //定义清空信息函数clear();
    procedure clear();

  end;

var
  consumemodel: Tconsumemodel;

implementation

{$R *.dfm}
uses mainF;
//***********清空信息函数clear()**********
procedure Tconsumemodel.clear;
begin
edit1.Clear;
edit2.Clear;
dbedit1.Clear;
dbedit2.Clear;
end;
//*********清空stringgrid中的信息********
procedure Tconsumemodel.stringclear;
var
column,row:integer;
begin
for column:=1 to 2 do
  for row:=0 to 3 do
   stringgrid1.Cells[row,column]:='';
  end;

//************退出窗口并清空信息***********
procedure Tconsumemodel.BitBtn3Click(Sender: TObject);
begin
clear();
close;
end;
//*************按回车鍵执行显示用户卡信息(姓名,余额)********
procedure Tconsumemodel.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 卡用户信息 where 卡号='''+trim(edit1.Text)+'''');
adoquery1.Open;
if (adoquery1.fieldbyname('姓名').AsString)='' then
begin
MessageDlg('  没有这个卡号!  ',mtWarning,[mbOk], 0);
edit1.SetFocus;
exit;
end;

DBedit1.Clear;
dbedit2.Clear;
DBedit1.Text:=adoquery1.fieldbyname('姓名').AsString;
no:=adoquery1.fieldbyname('学号').AsString;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 卡信息 where 卡号='''+trim(edit1.Text)+'''');
adoquery1.Open;
DBedit2.Text:=adoquery1.fieldbyname('金额').AsString;
adoquery1.Close;
end;
end;
//************刷卡消费***********
procedure Tconsumemodel.BitBtn1Click(Sender: TObject);
var
money,money1,state:string; //金额,卡状态
begin
//记录用户消费
if (trim(edit2.Text)='') then
begin
messagedlg('没有确定消费金额!',mtWarning,[mbOK],0);
edit2.SetFocus;
exit;
end;
adoquery2.Close;
adoquery2.SQL.Clear;
//判断余额是否足够
adoquery2.SQL.Add('select * from 卡信息 where 卡号='''+trim(edit1.Text)+'''');
adoquery2.Open;
state:=trim(adoquery2.fieldbyname('状态').AsString);

if (state<>'正常') then
begin
messagedlg('此卡已经挂失!',mtWarning,[mbOK],0);
exit;
end;

money1:=adoquery2.fieldbyname('金额').AsString;
adoquery2.close;
if ((strtofloat(money1)-strtofloat(trim(edit2.Text)))<0) then
begin
messagedlg('余额不足! 请充卡。',mtInformation,[mbOK],0);
exit;
end;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into 用户消费(卡号,学号,消费金额,消费日期) values ('''+trim(edit1.Text)+''','''+no+''','''+trim(edit2.Text)+''','''+datetostr(now)+''')');
adoquery1.ExecSQL;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 卡信息 where 学号='''+no+'''');
adoquery1.Open;
money:=adoquery1.fieldbyname('金额').AsString;
money:=floattostr(strtofloat(money)-strtofloat(trim(edit2.Text)));

//在用户IC卡上扣上相应金额
adoquery1.Close;
adoquery1.SQL.Clear;
//在用户IC卡上扣上相应金额
adoquery1.SQL.Add('update 卡信息 set 金额='''+money+''' where 学号='''+no+'''');
adoquery1.ExecSQL;
adoquery1.close;
//显示刷卡记录
stringclear();
stringgrid1.Cells[0,1]:=edit1.Text;
stringgrid1.Cells[1,1]:=dbedit1.Text;
stringgrid1.Cells[2,1]:=edit2.Text;
stringgrid1.Cells[3,1]:=datetostr(now);
MessageDlg('  刷卡成功!  ',mtInformation,[mbOk], 0);
//清空余额,刷卡金额信息
dbedit2.Clear;
edit2.Clear;
end;
//********设置stringgrid属性**********
procedure Tconsumemodel.FormCreate(Sender: TObject);
begin
stringgrid1.Cells[0,0]:='卡号';
stringgrid1.ColWidths[0]:=50;
stringgrid1.Cells[1,0]:='姓名';
stringgrid1.ColWidths[0]:=50;
stringgrid1.Cells[2,0]:='            消费金额';
stringgrid1.ColWidths[0]:=60;
stringgrid1.Cells[3,0]:='            消费日期';
stringgrid1.ColWidths[0]:=60;
clear();

end;
//****************退出并清除信息**********
procedure Tconsumemodel.BitBtn2Click(Sender: TObject);
begin
clear();
stringclear();
close;
end;

end.

⌨️ 快捷键说明

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