login.pas

来自「人事管理程序源码」· PAS 代码 · 共 224 行

PAS
224
字号
unit login;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, ComCtrls, Buttons,DateUtils,ADODB;

type
  TForm_login = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Panel2: TPanel;
    xtrq: TDateTimePicker;
    cx_MM: TEdit;
    cx_czy: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Box_mm: TComboBox;
    procedure BitBtn2Click(Sender: TObject);
    procedure cx_czyKeyPress(Sender: TObject; var Key: Char);
    procedure cx_MMKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure xs_dwmc;
    procedure save_czjl;
    function jm(num:integer):string;
    function pm(num_str:string):integer;

  private
    { Private declarations }
  public
    { Public declarations }
      login_OK,czrybm,czryxm,czymm:string;
      xtdqrq:Tdate;
  end;

var
  Form_login: TForm_login;

implementation

uses U_gzda_dm, U_main;

{$R *.DFM}

procedure TForm_login.BitBtn2Click(Sender: TObject);
begin
  login_OK:='no';
  close;
end;

procedure TForm_login.cx_czyKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then cx_mm.SetFocus ;
end;

procedure TForm_login.cx_MMKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then bitbtn1.SetFocus ;
end;

procedure TForm_login.FormShow(Sender: TObject);
begin
  with gzda_dm.ADODataSet1 do begin
    if active then active:=false;
    commandtext:='select * from czryBM order by bm';
    open;
    first;
    cx_czy.Items.Clear;
    box_mm.Items.Clear;
    while not eof do begin
      cx_czy.Items.Add(fieldbyname('xm').asstring);
      box_mm.Items.Add(fieldbyname('bm').asstring+'.'+fieldbyname('mm').asstring);
      next;
    end;
    cx_czy.ItemIndex:=1;
    close;
  end;
  cx_czy.SetFocus;

end;

procedure TForm_login.BitBtn1Click(Sender: TObject);
var
  s_index:integer;
  mm:string;
begin
  s_index:=cx_czy.ItemIndex;
  czrybm:=copy(box_mm.Items.Strings[s_index],1,3);
  czryxm:=cx_czy.Text;
  czymm:=cx_mm.text;
  if czryxm='' then
     begin
       showmessage('请选择操作员!!');
       cx_czy.SetFocus ;
       abort;
     end;
  mm:=trim(copy(box_mm.Items.Strings[s_index],5,length(box_mm.Items.Strings[s_index])-3));
  if mm=cx_mm.Text then
     begin
       login_OK:='ok';
       xs_dwmc;
       save_czjl;
     end
  else
     begin
       showmessage('操作员密码输入不正确,请重新输入!!');
       cx_mm.Text :='';
       cx_mm.refresh;
       cx_mm.SetFocus ;
       abort;
     end;
  close;
end;

procedure TForm_login.save_czjl;
var
  yxcs:integer;
begin
  with gzda_dm.ADODataSet_cx do begin //记录进入数据
    if active then active:=false;
    commandtext:='select * from czyjl where (year(jrsj)=:nian) order by xh';
    Parameters.ParamByName('nian').Value:=yearof(now);
    open;
    append;
    fieldbyname('czyxm').AsString:=czryxm;
    fieldbyname('jrsj').AsDateTime:=now;
    post;
    UpdateBatch(arCurrent);
    close;
  end;
  with gzda_dm.ADODataSet_cx do begin //记录进入数据
    if active then active:=false;
    commandtext:='select * from xtsz';
    open;
    first;
    edit;
    fieldbyname('mmc').AsString:=jm(pm(fieldbyname('mmc').AsString)-1);
    post;
    UpdateBatch(arCurrent);
  end;
end;

procedure TForm_login.FormActivate(Sender: TObject);
begin
  xtrq.Date:=now;
end;

procedure TForm_login.xs_dwmc;
begin
  with gzda_dm.ADODataSet10 do begin
    if active then active:=false;
    commandtext:='select  sj.bh,sj.mc,sj.fzsjxmbh from fzsj sj,fzsjxm xm where (sj.fzsjxmbh=xm.fzsjxmbh) and (xm.mc=:cx_mc) order by sj.bh';
    Parameters.ParamByName('cx_mc').Value:='软件使用单位';
    open;
    Form_main.StatusBar1.Panels[0].Text:='单位:'+fieldbyname('mc').AsString;
    first;
    close;
  end;
end;

function TForm_login.pm(num_str:string):integer;
var
  i,j:integer;
begin
  try
    i:=strtoint(copy(num_str,4,2));
  except
    i:=8;
  end;
  try
    j:=strtoint(copy(num_str,9,2));
  except
    j:=3;
  end;
  pm:=i*99+j;
end;

function TForm_login.jm(num:integer):string;
var
  r1,r2:extended;
  r1_str,r2_str:string;
  i,j:integer;
  i_str,j_str:string;
begin
   i:=num div 99;  //商
   if i<10 then
      i_str:='0'+inttostr(i)
   else
      i_str:=inttostr(i);
   j:=num mod 99; //余数
   if j<10 then
      j_str:='0'+inttostr(j)
   else
      j_str:=inttostr(j);
   r1:=int(99+Random(0)*1000);
   r2:=int(99+Random(0)*1000);
   if r1<10 then
      r1_str:='00'+floattostr(r1)
   else
      if r1<100 then
         r1_str:='0'+floattostr(r1)
      else
         if r1<1000 then
            r1_str:=floattostr(r1);

   if r2<10 then
      r2_str:='00'+floattostr(r2)
   else
      if r2<100 then
         r2_str:='0'+floattostr(r2)
      else
         if r2<1000 then
            r2_str:=floattostr(r2);

   jm:=r1_str+i_str+r2_str+j_str;
end;

end.

⌨️ 快捷键说明

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