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

📄 logon_un.pas

📁 布林电话收费管理系统
💻 PAS
字号:
unit logon_un;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, bsSkinBoxCtrls, StdCtrls, bsSkinCtrls, Mask, ExtCtrls,
  BusinessSkinForm, bsMessages,StrUtils,DateUtils;

type
  Tlogon = class(TForm)
    bsBusinessSkinForm1: TbsBusinessSkinForm;
    bsSkinGroupBox1: TbsSkinGroupBox;
    Image1: TImage;
    bsSkinPanel1: TbsSkinPanel;
    bsSkinXFormButton1: TbsSkinXFormButton;
    bsSkinXFormButton2: TbsSkinXFormButton;
    bsSkinEdit1: TbsSkinEdit;
    bsSkinStdLabel1: TbsSkinStdLabel;
    bsSkinStdLabel2: TbsSkinStdLabel;
    bsSkinEdit2: TbsSkinEdit;
    bsSkinStdLabel3: TbsSkinStdLabel;
    bsSkinMaskEdit1: TbsSkinMaskEdit;
    bsSkinMessage1: TbsSkinMessage;
    procedure bsSkinXFormButton1Click(Sender: TObject);
    procedure bsSkinXFormButton2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure bsSkinEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure bsSkinEdit1Exit(Sender: TObject);
    procedure bsSkinMaskEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  logon: Tlogon;

implementation
  uses dm_un,main_un,globe;
{$R *.dfm}

procedure Tlogon.bsSkinXFormButton1Click(Sender: TObject);
var
 mm_date:tdatetime;
begin
  DM:=TDM.Create(NIL);
  with dm do
   begin
    q_a.Close;
    q_a.SQL.Clear;
    q_a.SQL.Add('select * from tuser where USER_ID=:id and USER_PASS=:pass');
    q_a.Parameters.ParamByName('id').Value:=trim(bsskinedit1.Text);
    q_a.Parameters.ParamByName('pass').Value:=trim(bsskinmaskedit1.Text);
    q_a.Prepared;
    q_a.Open;
   end;
  if dm.q_a.RECORDCOUNT>0 then
   begin
    with dm do
    begin
     q_b.Close;
     q_b.SQL.Clear;
     q_b.SQL.Add('update tuser set USER_LOG_TIME=:sj1 where user_id=:user_id1');
     q_b.Parameters.ParamByName('sj1').Value:=now;
     q_b.Parameters.ParamByName('user_id1').Value:= dm.q_a.FieldValues ['user_id'];
     q_b.Prepared;
     q_b.ExecSQL;
     q_c.Close;
     q_c.SQL.Clear;
     q_c.SQL.Add('select * from system_set') ;
     q_c.Prepared;
     q_c.Open;
    end;
    self.ModalResult:=mryes;
    user_name:=dm.q_a.FieldValues ['user_name'];
    user_pass:=dm.q_a.FieldValues ['user_pass'];
    user_qx:=dm.q_a.FieldValues ['user_qx'];
    user_id:= dm.q_a.FieldValues ['user_id'];
   if dm.q_c.Recordset.RecordCount >0 then
    begin
     system_dw:=dm.q_c.FieldValues ['sys_name'];
     sys_end_date:=dm.q_c.FieldValues ['sys_end'];
     sys_end:=datetostr(dm.q_c.FieldValues ['sys_end_date']);
    if not varisnull(dm.q_c.FieldValues ['sys_memo2']) then
     system_ime:=dm.q_c.FieldValues ['sys_memo2']
    else
     bsskinmessage1.MessageDlg('还没有进行系统输入法设置,请到系统设置中进行设置!',mtinformation,[mbok],0);  
     SYS_OPER:='登录';

     if sys_end_date=trim(inttostr(dayof(now))) then

       //如果今天是结帐日,那么更换系统中的结帐日期
        with dm do
          begin
           q_e.Close;
           q_e.SQL.Clear;
           q_e.SQL.Add('update system_set set sys_end_date=:end_date ') ;
           q_e.Parameters.ParamByName('end_date').Value:=date;
           q_e.Prepared;
           q_e.ExecSQL;
          end
      else
       //如果今天不是结帐日,进行日期的比较,从而算出当前的日期是不是已过过了结帐日
        begin
         if abs(monthof(date)-monthof(dm.q_c.FieldValues ['sys_end_date']))>=0 then
          begin
           if (dayof(date)-strtoint(sys_end_date))>0 then
               begin
                mm_date:=date;
                while dayof(dateof(mm_date))-strtoint(sys_end_date)<>0 do mm_date:=mm_date-1;
                   with dm do
                      begin
                       q_e.Close;
                       q_e.SQL.Clear;
                       q_e.SQL.Add('update system_set set sys_end_date=:end_date ') ;
                       q_e.Parameters.ParamByName('end_date').Value:=datetostr(mm_date);
                       q_e.Prepared;
                       q_e.ExecSQL;
                     end ;
               end;
        with dm do
              begin
               q_c.Close;
               q_c.SQL.Clear;
               q_c.SQL.Add('select * from system_set') ;
               q_c.Prepared;
               q_c.Open;
              end;

          if (monthof(date)-monthof(dm.q_c.FieldValues ['sys_end_date']))>0 then
              begin
                mm_date:=dm.q_c.FieldValues ['sys_end_date'];
                while monthof(date)-monthof(dateof(mm_date))>1 do mm_date:=dateof(mm_date)+1;
                while strtoint(sys_end_date)-dayof(dateof(mm_date))<>0 do mm_date:=dateof(mm_date)+1;
                    with dm do
                      begin
                       q_e.Close;
                       q_e.SQL.Clear;
                       q_e.SQL.Add('update system_set set sys_end_date=:end_date ') ;
                       q_e.Parameters.ParamByName('end_date').Value:=datetostr(mm_date);
                       q_e.Prepared;
                       q_e.ExecSQL;
                     end
               end;
           end;
         end;
     dm.q_c.Close;
     dm.q_c.Prepared;
     dm.q_c.Open;
     system_dw:=dm.q_c.FieldValues ['sys_name'];
     sys_end_date:=dm.q_c.FieldValues ['sys_end'];
     sys_end:=datetostr(dm.q_c.FieldValues ['sys_end_date']);
     writetolog('0.00');
     end
   else
     bsskinmessage1.MessageDlg('系统还没有进行单位及结帐日的设置...请进入系统后到<设置>菜单进行相关的设置!!',mtinformation,[mbok],0);
   end
  else
   begin
     BSSKINMESSAGE1.MessageDlg('用户名或密码有误,请检查..',mterror,[mbyes],0);
     BSSKINEDIT1.SetFocus;
   end;
end;

procedure Tlogon.bsSkinXFormButton2Click(Sender: TObject);
begin
self.ModalResult:=mrcancel;
end;

procedure Tlogon.FormShow(Sender: TObject);
begin
  TRY
   BEGIN
    dm:=tdm.Create(nil);
    DM.sj.Connected :=TRUE;
   END
  except
   BEGIN
     BSSKINMESSAGE1.MessageDlg('不能连接到系统数据库...请检查数据库是否正常'+chr(13)+'系统将退出....',mterror,[mbyes],0);
   //  bsskinxformbutton2.OnClick(sender);
   //  self.ModalResult:=mrcancel;
    application.Terminate;
   //  dm:=tdm.Create(nil);
   // dm.sj.Connected:=true;
   END;
   end;
end;
procedure Tlogon.bsSkinEdit1KeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
  bsskinmaskedit1.SetFocus;
end;

procedure Tlogon.bsSkinEdit1Exit(Sender: TObject);
begin
 with dm do
  begin
   q_a.Close;
   q_a.SQL.Clear;
   q_a.SQL.Add('select * from tuser where user_id=:tmpid');
   q_a.Parameters.ParamByName('tmpid').Value:=trim(bsskinedit1.Text);
   q_a.Prepared;
   q_a.Open;
  end;
 if dm.q_a.Recordset.RecordCount >0 then
  bsskinedit2.Text:=dm.q_a.FieldValues['user_name']
 else
  begin
   BSSKINMESSAGE1.MessageDlg('输入的工号不存在,请重新输入。',mterror,[mbyes],0);
   bsskinedit1.Text:='';
   bsskinedit1.SetFocus;
  end;

end;

procedure Tlogon.bsSkinMaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
  bsskinxformbutton1click(nil);
 if key=#27 then
   application.Terminate;

end;

procedure Tlogon.FormKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#27 then
  application.Terminate;
end;

end.

⌨️ 快捷键说明

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