📄 huifeifrm.pas
字号:
unit HuifeiFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, DB, ADODB;
type
TFrmHuifei = class(TForm)
Image1: TImage;
GroupBox1: TGroupBox;
Label1: TLabel;
edMem_ID: TEdit;
pnMen_Name: TPanel;
Panel3: TPanel;
Label6: TLabel;
edIncome: TEdit;
Label7: TLabel;
lbreturn: TLabel;
Label9: TLabel;
Panel1: TPanel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Panel2: TPanel;
lbMem_Class: TLabel;
Label2: TLabel;
lbMoney: TLabel;
Label3: TLabel;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure InitForm(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure edMem_IDKeyPress(Sender: TObject; var Key: Char);
procedure edIncomeKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmHuifei: TFrmHuifei;
implementation
uses MainFrm, Msg01Frm;
{$R *.dfm}
procedure TFrmHuifei.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FrmHuifei.Free;
FrmMain.sp2 := False;
end;
procedure TFrmHuifei.InitForm(Sender: TObject);
begin
RadioButton1.Checked := True;
edMem_ID.Clear;
pnMen_Name.Caption := '';
Panel2.Visible := False;
Panel3.Visible := False;
edIncome.Clear;
lbReturn.Caption :='';
end;
procedure TFrmHuifei.FormCreate(Sender: TObject);
begin
InitForm(Sender);
end;
procedure TFrmHuifei.RadioButton2Click(Sender: TObject);
begin
Panel2.Visible := False;
Panel3.Visible := False;
edMem_ID.SetFocus;
end;
procedure TFrmHuifei.RadioButton1Click(Sender: TObject);
begin
InitForm(Sender);
Panel3.Visible := True;
edMem_ID.SetFocus;
end;
procedure TFrmHuifei.edMem_IDKeyPress(Sender: TObject; var Key: Char);
var
MemClass : String;
MemMoney : String;
begin
if key = #13 then
begin
if Length(Trim(edMem_ID.Text))< 5 then
begin
Application.MessageBox('卡号输入错误,请核查!','错误',MB_ICONWARNING+MB_OK);
edMem_ID.SetFocus;
edMem_ID.SelectAll;
Exit;
end;
if RadioButton2.Checked then
begin //执行退还押金操作
//if Length(Trim(edMem_ID.Text)) <> 5 then
//begin
// Application.MessageBox('非租借卡,无法执行退费!','错误',MB_ICONWARNING+MB_OK);
// edMem_ID.SetFocus;
// edMem_ID.SelectAll;
// Exit;
//end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From BorrowInfo Where User_ID = '''+edMem_ID.Text+''' and Yes_No = ''0''';
ADOQuery1.Open;
if ADOQuery1.Eof and ADOQuery1.Bof then //判断是否有租赁的光盘未归还
begin //退费
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text := 'Select * From Income Where User_ID = '''+edMem_ID.Text+''' and State = ''0''';
ADOQuery2.Open;
if ADOQuery2.Bof and ADOQuery2.Eof then
begin
Application.MessageBox('非租借卡或是该卡不在使用中,无法执行退费!','错误',MB_ICONWARNING+MB_OK);
edMem_ID.SetFocus;
edMem_ID.SelectAll;
Exit;
end;
ADOQuery2.Edit;
ADOQuery2.FieldByName('State').AsString := '1';
ADOQuery2.Post;
ADOQuery2.Append;
ADOQuery2.FieldByName('Date_Time').AsDateTime := Date();
ADOQuery2.FieldByName('Class_In').AsString := '押金';
ADOQuery2.FieldByName('User_ID').AsString := edMem_ID.Text;
ADOQuery2.FieldByName('Money_out').AsFloat := 50;
ADOQuery2.Post;
Application.MessageBox('押金退还成功!', '成功',MB_OK+MB_ICONINFORMATION);
edMem_ID.Clear;
end
else
begin //信息提示有租借的光盘未归还
Application.CreateForm(TFrmMsg01, FrmMsg01);
FrmMsg01.Showmodal;
end;
end
else
begin //执行收取会费、押金操作
if Length(Trim(edMem_ID.Text))=5 then
begin //非会员缴付押金
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text := 'Select * From Income Where User_ID = '''+edMem_ID.Text+''' and State = ''0''';
ADOQuery2.Open;
if ADOQuery2.RecordCount <> 0 then
begin
Application.MessageBox('租借卡在使用中,无需缴付押金!','错误',MB_ICONWARNING+MB_OK);
edMem_ID.SetFocus;
edMem_ID.SelectAll;
Exit;
end;
Panel2.Visible := True;
lbMem_Class.Caption := '';
Label2.Caption := '租借卡押金';
lbMoney.Caption := '50';
Label3.Caption := '元';
Panel3.Visible := True;
edIncome.SetFocus;
end
else
begin //进一步判断会员类别,会员缴付会费
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From MemberInfo Where Mem_ID = '''+edMem_ID.Text+'''';
ADOQuery1.Open;
if ADOQuery1.Eof and ADOQuery1.Bof then
begin
Application.MessageBox('还没有该会员的信息,无法执行会费缴付!','错误',MB_ICONWARNING+MB_OK);
edMem_ID.SetFocus;
edMem_ID.SelectAll;
pnMen_Name.Caption := '';
Panel2.Visible := False;
Panel3.Visible := False;
edIncome.Clear;
lbReturn.Caption :='';
Exit;
end;
if Copy(edMem_ID.Text,1,1)='A' then
begin
MemClass := 'A';
MemMoney := '100';
end
else
begin
MemClass := 'B';
MemMoney := '60';
end;
pnMen_Name.Caption := ADOQuery1.FieldByName('Men_Name').AsString;
Panel2.Visible := True;
lbMem_Class.Caption := MemClass;
Label2.Caption := '类会员,会费';
lbMoney.Caption := MemMoney;
Label3.Caption := '元/年';
Panel3.Visible := True;
edIncome.SetFocus;
end;
end;
end;
end;
procedure TFrmHuifei.edIncomeKeyPress(Sender: TObject; var Key: Char);
begin
if (key <>#8) and (key <> #13) and (key<'0') or (key>'9') then
Key := Chr(0);
if Key = #13 then
begin
if Trim(edIncome.Text) = '' then
begin
Application.MessageBox('请输入实收金额!','错误',MB_ICONWARNING+MB_OK);
edIncome.SetFocus;
edIncome.SelectAll;
Exit;
end;
if StrToInt(edIncome.Text)< StrToInt(lbMoney.Caption) then
begin
Application.MessageBox('输入实收金额错误!','错误',MB_ICONWARNING+MB_OK);
edIncome.SetFocus;
edIncome.SelectAll;
Exit;
end;
lbReturn.Caption := '';
lbReturn.Caption := IntToStr(StrToInt(edIncome.Text)-StrToInt(lbMoney.Caption));
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From Income';
ADOQuery1.Open;
ADOQuery1.Append;
ADOQuery1.FieldByName('Date_Time').AsDateTime := Date();
if Length(Trim(edMem_ID.Text))=5 then
begin
ADOQuery1.FieldByName('Class_In').AsString := '押金';
ADOQuery1.FieldByName('State').AsString := '0';
end
else
ADOQuery1.FieldByName('Class_In').AsString := '会费';
ADOQuery1.FieldByName('User_ID').AsString := edMem_ID.Text;
ADOQuery1.FieldByName('Money_In').AsFloat := StrToFloat(lbMoney.Caption);
ADOQuery1.Post;
if Length(Trim(edMem_ID.Text))=6 then //对于会员还需改变其有效期
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From MemberInfo Where Mem_ID = '''+edMem_ID.Text+'''';
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.FieldByName('Deadline').AsDateTime := ADOQuery1.FieldByName('Deadline').AsDateTime+365;
ADOQuery1.Post;
end;
Application.MessageBox('缴费操作完成!', '成功',MB_OK+MB_ICONINFORMATION);
InitForm(Sender);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -