unit21.pas

来自「停车厂管理系统 麻雀虽小 但是五脏齐全」· PAS 代码 · 共 351 行

PAS
351
字号
unit Unit21;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, Buttons, DB, ADODB;

type
  Ttckbl = class(TForm)
    Label14: TLabel;
    edcardid: TEdit;
    Label15: TLabel;
    edmoney: TEdit;
    Label16: TLabel;
    userclass: TComboBox;
    bsstopcard: TBitBtn;
    Label18: TLabel;
    dbedit1: TEdit;
    Label17: TLabel;
    dbedit2: TEdit;
    Label19: TLabel;
    dbcombobox1: TComboBox;
    Label20: TLabel;
    dbedit3: TEdit;
    Label21: TLabel;
    dbedit4: TEdit;
    Label22: TLabel;
    dbedit5: TEdit;
    Label23: TLabel;
    DBGrid5: TDBGrid;
    Label24: TLabel;
    DBGrid4: TDBGrid;
    adot_card: TADOTable;
    adoq_car: TADOQuery;
    adot_customers: TADOTable;
    ds_customers: TDataSource;
    ds_card: TDataSource;
    adoq_recharge: TADOQuery;
    Label8: TLabel;
    ShFenId: TEdit;
    BitBtn1: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure edcardidExit(Sender: TObject);
    procedure edmoneyKeyPress(Sender: TObject; var Key: Char);
    procedure edcardidKeyPress(Sender: TObject; var Key: Char);
    procedure userclassChange(Sender: TObject);
    procedure bsstopcardClick(Sender: TObject);
    procedure dbedit4KeyPress(Sender: TObject; var Key: Char);
    procedure dbedit1Exit(Sender: TObject);
    procedure dbedit3KeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormResize(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  tckbl: Ttckbl;
  FormOldWid:Integer;

implementation

uses Unit17, Unit1, Unit2, Unit11;

{$R *.dfm}

procedure clearface();
begin
  with tckbl do
  begin
    edcardid.Clear;
    edmoney.Clear;
    dbedit1.Clear;
    dbedit1.Enabled:=false;
    dbedit2.Clear;
     dbedit2.Enabled:=false;
     dbedit3.Clear;
     dbedit3.Enabled:=false;
     dbedit4.Clear;
     dbedit4.Enabled:=false;
     dbedit5.Clear;
     dbedit5.Enabled:=false;
     dbcombobox1.Enabled:=false;
     shfenid.Clear;
     shfenid.Enabled:=false;
    adot_customers.Close;
    adot_customers.Filtered:=false;
    adot_customers.Open;  //打开客户信息表
    adot_customers.First;
    adot_card.Open;   //打开停车卡表
    adoq_car.Close;
    adoq_car.SQL.Clear;
    adoq_car.SQL.Add('select customerclass from customerclass');
    adoq_car.Open;
    adoq_car.First;
    userclass.Items.Clear;
    while(not adoq_car.Eof) do
    begin
      userclass.Items.Add(adoq_car.Fields[0].AsString);
       adoq_car.Next;
    end ;
  end;
end;

procedure Ttckbl.FormShow(Sender: TObject);
begin
  FormOldWid:=self.Width;
end;

procedure Ttckbl.edcardidExit(Sender: TObject);
begin
 if edcardid.Text<>'' then //如果卡号为空则才可以修改用户信息
  else
   begin
   adot_customers.First;
   end
end;

procedure Ttckbl.edmoneyKeyPress(Sender: TObject; var Key: Char);
begin
    if not(key in['0'..'9',#008]) then
    begin
      key:=#0;
     end
end;

procedure Ttckbl.edcardidKeyPress(Sender: TObject; var Key: Char);
begin
  if not(key in['0'..'9','a'..'z',#008]) then
    begin
      key:=#0;
     end
end;

procedure Ttckbl.userclassChange(Sender: TObject);
begin
   if trim(userclass.Text)='临时用户' then
     begin
     dbedit1.Enabled:=false;
     dbedit2.Enabled:=false;
     dbedit3.Enabled:=false;
     dbedit4.Enabled:=false;
     dbedit5.Enabled:=false;
     dbcombobox1.Enabled:=false
    //*****************临时用户不用填写用户信息
     end
     else
     begin
     dbedit1.Enabled:=true;
     dbedit2.Enabled:=true;
     dbedit3.Enabled:=true;
     dbedit4.Enabled:=true;
     dbedit5.Enabled:=true;
     shfenid.Enabled:=true;
     dbcombobox1.Enabled:=true;
     adot_customers.Open;
     adot_customers.Last;
     adot_customers.Append;
     dbedit1.ReadOnly:=false;
     end
end;

procedure Ttckbl.bsstopcardClick(Sender: TObject);
begin
 if trim(edcardid.Text)='' then
   begin
     edcardid.SetFocus;
     showmessage('对不起!卡号不能为空');
   end
 else if trim(edmoney.Text)='' then
    begin
      edmoney.SetFocus;
      showmessage('对不起!预存金额不能为空');
    end
 else if trim(userclass.Text)='' then
    begin
     userclass.SetFocus;
     showmessage('对不起!请选择用户类型');
    end
 else
    begin  // 1

        adot_card.Open;
        if adot_card.Locate('cardid',edcardid.Text,[locaseInsensitive]) then
        begin
        edcardid.SetFocus;
        edcardid.Clear;
        showmessage('该卡号已在使用中,请换个卡号!');
        end
        else
         begin
      if (trim(userclass.text)<>'临时用户') then
         begin  //2
                  if trim(dbedit1.Text)='' then
                    begin
                       dbedit1.SetFocus;
                       showmessage('对不起!请输入用户ID');
                    end
                  else if trim(dbedit2.Text)='' then
                    begin
                       dbedit2.SetFocus;
                       showmessage('对不起!请输入用户姓名');
                    end
                  else if trim(dbedit4.Text)='' then
                    begin
                      dbedit4.SetFocus;
                      showmessage('对不起!请输入联系电话');
                    end
                  else if trim(shfenid.Text)='' then
                    begin
                      shfenid.SetFocus;
                      showmessage('对不起!请输入身份证号');
                    end
                  else
                    begin
                    adot_card.Open;
                    adot_card.Edit;
                    adot_card.AppendRecord([trim(edcardid.Text),trim(edmoney.Text),trim(userclass.Text)]);
                  //**********************插入一个停车卡记录
                    adot_customers.Open;
                    adot_customers.Edit;
                    adot_customers.AppendRecord([trim(dbedit1.Text),trim(edcardid.Text),trim(dbedit2.Text),trim(shfenid.Text),trim(dbcombobox1.Text),trim(dbedit3.Text),trim(dbedit4.Text),trim(dbedit5.Text)]);
  //                  adot_customers.Post;
                    showmessage('停车卡办理成功');

                    with form17 do
                    begin
                      qrlabel4.Caption:=trim(edcardid.Text);
                      qrlabel6.Caption:=trim(edmoney.Text);
                      qrlabel8.Caption:=trim(userclass.Text);
                      qrlabel11.Caption:=trim(dbedit1.Text);
                      qrlabel13.Caption:=trim(dbedit2.Text);
                      qrlabel15.Caption:=trim(dbcombobox1.Text);
                      qrlabel17.Caption:=trim(dbedit3.Text);
                      qrlabel19.Caption:=trim(dbedit4.Text);
                      qrlabel21.Caption:=trim(dbedit5.Text);
                      qrlabel25.Caption:=trim(user);
                      QRLabel26.Caption:=trim(shfenid.Text);
                      quickrep1.Print;
                    end;  //打印办卡信息给客户

                    adoq_recharge.Close;
                    adoq_recharge.SQL.Clear;
                    adoq_recharge.SQL.Add('insert into recharge(cardid,money,chargetime,statues,opname) values(:cardid,:money,:chargetime,1,:opname)');
                    adoq_recharge.Parameters.ParamByName('cardid').Value:=trim(edcardid.Text);
                    adoq_recharge.Parameters.ParamByName('money').Value:=strtofloat(trim(edmoney.Text));
                    adoq_recharge.Parameters.ParamByName('chargetime').Value:=now;
                    adoq_recharge.Parameters.ParamByName('opname').Value:=trim(user);
                    adoq_recharge.ExecSQL;   //把收费金额记录起来供查询 statues为1表示为非临时用户
                    userclass.ItemIndex:=-1;
                  //**********************插入客户信息
                   clearface();
                    end ;
         end
      else
         begin
          //*************临时用户只插入停车卡记录,不用插入客户信息
           adot_card.Open;
           adot_card.Edit;
           adot_card.AppendRecord([edcardid.Text,edmoney.Text,userclass.Text]);
           showmessage('停车卡办理成功');
           adoq_recharge.Close;
           adoq_recharge.SQL.Clear;
           adoq_recharge.SQL.Add('insert into recharge(cardid,money,chargetime,statues,opname) values(:cardid,:money,:chargetime,0,:opname)');
           adoq_recharge.Parameters.ParamByName('cardid').Value:=trim(edcardid.Text);
           adoq_recharge.Parameters.ParamByName('money').Value:=strtofloat(trim(edmoney.Text));
           adoq_recharge.Parameters.ParamByName('chargetime').Value:=now;
           adoq_recharge.Parameters.ParamByName('opname').Value:=trim(user);
           adoq_recharge.ExecSQL;   //把收费金额记录起来供查询statues为0表示为临时用户
//           dbedit1.Enabled:=false;
           clearface();
         end;
       end;
    end ;
  end ;

procedure Ttckbl.dbedit4KeyPress(Sender: TObject; var Key: Char);
begin
    if not(key in['0'..'9',#008]) then
    begin
      key:=#0;
     end
end;

procedure Ttckbl.dbedit1Exit(Sender: TObject);
begin
     adoq_car.Close;
     adoq_car.SQL.Clear;
     adoq_car.SQL.Add('select useid from customers where useid=:useid') ;
     adoq_car.Parameters.ParamByName('useid').Value:=dbedit1.Text;
     adoq_car.Open;
     if  not adoq_car.IsEmpty then
     begin
     showmessage('该用户ID已经被使用,请换个用户ID');
     dbedit1.SetFocus;
     dbedit1.Clear;
     end;
end;

procedure Ttckbl.dbedit3KeyPress(Sender: TObject; var Key: Char);
begin
 if not(key in['0'..'9',#008]) then
    begin
      key:=#0;
     end
end;

procedure Ttckbl.FormClose(Sender: TObject; var Action: TCloseAction);
begin
tckbl:=nil;
Action:=caFree;
end;

procedure Ttckbl.FormResize(Sender: TObject);
begin
    if FormOldWid>0 then
    begin
     ScaleBy(self.Width,FormOldWid);
     FormOldWid:=self.Width;
    end ;
end;

procedure Ttckbl.FormActivate(Sender: TObject);
begin
  clearface();
end;

procedure Ttckbl.BitBtn1Click(Sender: TObject);
begin
  if trim(edcardid.text)<>'' then
  begin
    if not adot_card.Locate('cardid',trim(edcardid.Text),[locaseinsensitive]) then
    begin
      messagebox(handle,'没找到您查询的卡号,请确认卡号正确','系统提示',mb_ok+mb_iconinformation);
      edcardid.SetFocus;
    end ;
  end
  else
  begin
     messagebox(handle,'卡号不能为空,请输入要查询的卡号','系统提示',mb_ok+mb_iconinformation);
     edcardid.SetFocus;
  end;
end;

end.

⌨️ 快捷键说明

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