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

📄 door.pas

📁 会展条码票务管理、门禁、印刷、现场制证(摄像、登记、印刷)、总控中心、接待管理、展位管理
💻 PAS
字号:
unit door;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BusinessSkinForm, DBCtrls, StdCtrls, xpGroupBox, bsSkinCtrls,
  bsdbctrls, RzPanel, xpEdit, xpBitBtn, xpCombo, xpButton, ExtCtrls,
  RzSplit, ComCtrls, xpPages, RzCmboBx, RzGroupBar, xpWindow, xpPanel,
  bsDialogs, DB, ADODB, RzBorder, RzBckgnd, jpeg, RzButton, RzRadChk,
  bsSkinBoxCtrls, RzEdit, Grids, DBGrids, MPlayer,mmsystem;

type
  Tdoorerform = class(TForm)
    bsBusinessSkinForm1: TbsBusinessSkinForm;
    RzGroupBar1: TRzGroupBar;
    RzGroup1: TRzGroup;
    RzGroup2: TRzGroup;
    RzPanel1: TRzPanel;
    RzBackground2: TRzBackground;
    Image1: TImage;
    RzLEDDisplay2: TRzLEDDisplay;
    ry1: TADOQuery;
    ADOConnection1: TADOConnection;
    Edit1: TxpEdit;
    rySc1: TDataSource;
    RzPanel2: TRzPanel;
    bsSkinDBImage1: TbsSkinDBImage;
    Image2: TImage;
    bsSkinLabel6: TbsSkinLabel;
    bsSkinLabel12: TbsSkinLabel;
    bsSkinLabel13: TbsSkinLabel;
    bsSkinLabel14: TbsSkinLabel;
    bsSkinLabel15: TbsSkinLabel;
    bsSkinLabel16: TbsSkinLabel;
    bsSkinLabel17: TbsSkinLabel;
    bsSkinLabel18: TbsSkinLabel;
    bsSkinLabel19: TbsSkinLabel;
    bsSkinLabel20: TbsSkinLabel;
    bsSkinDBText1: TbsSkinDBText;
    bsSkinDBText2: TbsSkinDBText;
    bsSkinDBText3: TbsSkinDBText;
    bsSkinDBText4: TbsSkinDBText;
    bsSkinDBText5: TbsSkinDBText;
    bsSkinDBText6: TbsSkinDBText;
    bsSkinDBText7: TbsSkinDBText;
    bsSkinDBText8: TbsSkinDBText;
    bsSkinDBText9: TbsSkinDBText;
    bsSkinDBText15: TbsSkinDBText;
    Radio2: TRzRadioButton;
    ComboBox1: TComboBox;
    Radio1: TRzRadioButton;
    info: TADOQuery;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    doincomm: TADOCommand;
    dooutCom: TADOCommand;
    Timer1: TTimer;
    countrs: TADOQuery;
    countrsrs: TIntegerField;
    opendoorCom: TADOCommand;
    closedoor: TADOCommand;
    ry1guest_id: TStringField;
    ry1guest_name: TStringField;
    ry1xb: TStringField;
    ry1gj: TStringField;
    ry1co_name: TStringField;
    ry1address: TStringField;
    ry1lx: TStringField;
    ry1md: TStringField;
    ry1zj_name: TStringField;
    ry1zj_no: TStringField;
    ry1photo: TBlobField;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    procedure doin(var gst_id:string);
  public
    { Public declarations }
  end;

var
  doorerform: Tdoorerform;
  instr:string;
  bimg1,bimg2,bimg3:timage;

implementation

{$R *.dfm}

procedure Tdoorerform.doin(var gst_id:string);
begin
//showmessage(instr);
ry1.Close;
ry1.Parameters.ParamByName('g_id').Value:=instr;
ry1.Open;
if ry1.IsEmpty then
  begin
   //警报
//   BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
   PlaySound(pchar('.\malfound.wav'),application.Handle,SND_ASYNC) ;
     image1.Picture.Bitmap:=bimg1.Picture.Bitmap;
   showmessage('无此人记录!请核查!');

  end else
  begin
   if radio1.Checked then
     begin
      image1.Picture.Bitmap:=bimg3.Picture.Bitmap;
      //记录为已进入
     TRY
      PlaySound(pchar('.\ready.wav'),application.Handle,SND_ASYNC) ;
      doincomm.Parameters.ParamByName('gstid').Value:=trim(instr);
      doincomm.Parameters.ParamByName('door_no').Value:=copy(combobox1.Text,1,2);
      doincomm.Execute;
     EXCEPT
      beep;
      image1.Picture.Bitmap:=bimg1.Picture.Bitmap;
       PlaySound(pchar('.\malfound.wav'),application.Handle,SND_ASYNC) ;
      SHOWMESSAGE('该人员已经进场,请核查!');
      END;
     end else
     begin
     dooutcom.Parameters.ParamByName('gstid').Value:=trim(instr);
     dooutcom.Execute;
     PlaySound(pchar('.\ready.wav'),application.Handle,SND_ASYNC) ;
     end;
  end;
edit1.Text:='';
edit1.SetFocus;
end;

procedure Tdoorerform.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
image1.Picture.Bitmap:=bimg2.Picture.Bitmap;
if (key=#122)  and (length(trim(edit1.text))=1) then
begin
edit1.Text:='';
beep;
edit1.Text:='';
combobox1.SetFocus;
end;
if edit1.Text='00' then begin radio1.Checked:=true;edit1.Text:='';edit1.SetFocus;end;
if edit1.Text='11' then begin radio2.Checked:=true;edit1.Text:='';edit1.SetFocus;end;
if length(trim(edit1.Text+key))=10 then
begin
if combobox1.Text<>'' then
begin
instr:=trim(edit1.Text+key);
key:=#0;
doin(instr);
end else BEGIN EDIT1.Text:='';SHOwMESSAGE('请选择门号后重新扫描该证件!');key:=#0;END;

end;


end;

procedure Tdoorerform.FormCreate(Sender: TObject);
begin
instr:='';
bimg1:=TImage.Create(self);
bimg2:=TImage.Create(self);
bimg3:=TImage.Create(self);
bimg1.Picture.LoadFromFile('.\red.bmp');
bimg2.Picture.LoadFromFile('.\he.bmp');
bimg3.Picture.LoadFromFile('.\green.bmp');

end;

procedure Tdoorerform.ComboBox1Change(Sender: TObject);
begin
try
opendoorcom.Parameters.ParamByName('doorname').Value :=trim(combobox1.Text);
opendoorcom.Execute;
EDIT1.Enabled:=TruE;
edit1.Text:='';
COMBOBOX1.Enabled:=FALSE;
edit1.SetFocus;
except
showmessage('该门号已被他人占用,请更换!');
end;
end;

procedure Tdoorerform.Timer1Timer(Sender: TObject);
begin
  countrs.Active :=true;
  rzleddisplay2.Caption:=countrsrs.AsString;
  countrs.Active :=false;
  info.Active :=false;
  info.Active :=true;
  info.Last;
end;

procedure Tdoorerform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
closedoor.Parameters.ParamByName('door').Value:=trim(combobox1.Text );
closedoor.Execute;
end;

procedure Tdoorerform.ComboBox1KeyPress(Sender: TObject; var Key: Char);
 begin
    if not (key  in ['0'..'9',#8,#13]) then
      begin
         key:=#0;
         beep;
         ShowMessage('请选择数字输入值!');
      end;
 end;
end.

⌨️ 快捷键说明

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