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

📄 huifeifrm.pas

📁 该系统实现了对DVD租赁过程的管理,功能完善,方便实用.
💻 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 + -