建立全域物件:
class GetUser
{
public:
GetUserInfo(AnsiString userid);
String szQXList; //權限串列
String szUserID; //用戶ID
String szUserName; //用戶名
String szPassWord; //密碼
String szRole; //角色
};
extern PACKAGE GetUser UserInfo; //全域物件
獲取用戶資訊:
GetUser::GetUserInfo(AnsiString userid)
{
data = new TDataModule2(NULL);
String SQL = "select 用戶編號,姓名,密碼,權限組ID,權限組名稱 from 用戶清單 where 用戶編號 = " + userid;
data->FDQuery1->Connection = data->FDConnection1;
data->FDQuery1->Open(SQL);
this->szUserName = data->FDQuery1->FieldByName("姓名")->AsString;
this->szUserID = data->FDQuery1->FieldByName("用戶編號")->AsString;
this->szPassWord = data->FDQuery1->FieldByName("密碼")->AsString;
this->szRole = data->FDQuery1->FieldByName("權限組名稱")->AsString;
String SQLQX = "SELECT [權限串列] FROM [jxcbook].[dbo].[權限組串列] where [權限組ID] = " + data->FDQuery1->FieldByName("權限組ID")->AsString;
data->FDQuery1->Open(SQLQX);
this->szQXList = data->FDQuery1->FieldByName("權限串列")->AsString;
delete data;
}
權限系結:
加入一個TActionList組件,創建Action,將Tag屬性設定與權限表只的權限ID一一對應,如果Tag的值包含在權限串列中,則表示有權限打開,
bool TForm1::GetRole(String nTag)
{
String aa = UserInfo.szQXList;
if(aa.Pos(nTag))
return true;
else
return false;
判斷是否有權限:
void __fastcall TForm1::ActionList1Update(TBasicAction *Action, bool &Handled)
{
//
TAction *pAction = (TAction *) Action;
switch(pAction->Tag)
{
case 1:
pAction->Enabled = this->GetRole("1");
Handled = true;
break;
case 2:
pAction->Enabled = this->GetRole("2");
Handled = true;
break;
case 3:
pAction->Enabled = this->GetRole("3");
Handled = true;
break;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402705.html
標籤:其他
上一篇:計算機課程設計SSH高校學生選課系統【代碼講解+安裝除錯+檔案指導】
下一篇:JAVA基礎知識(一)
