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

📄 login.cpp

📁 人事管理系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Login.h"        //登录窗体头文件
#include "Person.h"       //主窗体头文件
#include "Pass_Pope_Modify.h" //修改密码、权限窗体头文件
#include "Crypt.cpp"      //加密、解密程序文件

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TF_Login *F_Login;
//---------------------------------------------------------------------------
__fastcall TF_Login::TF_Login(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TF_Login::BitBtn1Click(TObject *Sender)
{   /*****登录按钮点击事件******/
    if(Edit1->Text.IsEmpty()){       //用户工号输入框为空判断
      ShowMessage("请输入用户工号");
      Edit1->SetFocus();             //焦点仍在工号输入框中
      }
    else{                            //以下代码判断用户的合法性和权限
    ADOQ_Login->Close();
    ADOQ_Login->SQL->Clear();        //清除SQL语句
    ADOQ_Login->SQL->Add("SELECT * FROM Person_User"); //增加SQL语句
    ADOQ_Login->SQL->Add("WHERE User_ID=:ID");  //条件为用户工号等于输入工号,设置一个参数ID
    ADOQ_Login->Parameters->ParamByName("ID")->Value = Edit1->Text; //参数ID赋值
    ADOQ_Login->Open();              //执行Add的SQL语句
      if(ADOQ_Login->RecordCount!=1||ADOQ_Login->FieldByName("User_Password")->AsString.SubString(1,E_Password->Text.Length())!=Encrypt(E_Password->Text)){ //如果用户工号或密码不对则提示密码错
           //另外AnsiString.Trim()函数可以去掉后面的空格,原字符串保持不变,上句可以使用此函数
        if(ADOQ_Login->RecordCount != 1){
          ShowMessage("用户工号不存在,请您重新输入");
          Edit1->SetFocus();
        }
        if(Encrypt(E_Password->Text) != ADOQ_Login->FieldByName("User_Password")->AsString.SubString(1,E_Password->Text.Length())){
          AnsiString str=ADOQ_Login->FieldByName("User_Password")->AsString;
          ShowMessage("用户密码不正确,请您重新输入");
          E_Password->SetFocus();
        }
       }
      else{
        if(ADOQ_Login->FieldByName("User_Popedom")->AsString.SubString(1,13) == "Administrator"){ //管理员权限判断
        F_Main->MainMenu->Items->Items[0]->Items[1]->Enabled = true; //允许"用户注册"
        F_Main->BB_Registry->Enabled = true;
        F_Main->MainMenu->Items->Items[0]->Items[3]->Enabled = true; //允许"修改权限"
        F_PP_Modi->CheckBox2->Enabled = true;
        F_Main->TB_Pass_Modity->Enabled = true;
        F_Main->TB_Rele_Modify->Enabled = true;
        }
        if(ADOQ_Login->FieldByName("User_Popedom")->AsString.SubString(1,4) == "User"){ //客户权限判断
        F_Main->MainMenu->Items->Items[0]->Items[1]->Enabled = false; //禁止"用户注册"
        F_Main->BB_Registry->Enabled = false;
        F_Main->MainMenu->Items->Items[0]->Items[3]->Enabled = false; //禁止"修改权限"
        F_PP_Modi->CheckBox2->Enabled = false;
        F_Main->TB_Pass_Modity->Enabled = false;
        F_Main->TB_Rele_Modify->Enabled = false;
        }
        F_Login->Close(); //关闭用户登录窗口
      }
    }
}
//---------------------------------------------------------------------------
void __fastcall TF_Login::BitBtn2Click(TObject *Sender)
{
    /*****取消按钮点击事件******/
    F_Login->Close();          //关闭窗口
    Application->Terminate();  //中止程序运行
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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