📄 sys_accessctrl1.pas
字号:
I:integer;
begin
inherited;
with AdoQry_tmp do
begin
S1:=' select Dept.DeptCode,operator.EmployeeCode+'' ''+Employee.EmployeeName as operatorB'+
' from operator'+
' join Employee on operator.EmployeeCode=Employee.EmployeeCode'+
' join Dept on Employee.DeptCode=Dept.DeptCode'+
' where operator.OperatorUsable=1 and Employee.DeptCode='+QuotedStr(GetCode(Lstbx_Dept.Items.Strings[Lstbx_Dept.ItemIndex]));
Close;
sql.clear;
sql.Add(S1);
open;
First;
Frm_Sys_AccessCtrl1.Lstbx_Employee.Items.clear;
while not eof do
begin
for i:=0 to AdoQry_tmp.RecordCount-1 do
begin
Frm_Sys_AccessCtrl1.Lstbx_Employee.Items.Strings[i]:=fieldbyname('operatorB').asstring;
next;
end;
end;
end;
if AdoQry_Main.Active then AdoQry_Main.Close;
end;
procedure TFrm_Sys_AccessCtrl1.ReformSysMenuAccessCtrl(operatorCode1:string);
var
CreateStr,GetNoCtrl:string;
sUpdate:string;
I:integer;
begin
with AdoQry_Tmp1 do
begin
CreateStr:=' select EmployeeCode='+QuotedStr(operatorCode1)+
' ,SysMenuID,CANAccess=0'+
' into #TMpSysMenuAccessCtrl'+
' from SysMenu';
Close;
SQL.clear;
SQL.Add(CreateStr);
Prepared;
ExecSQL;
GetNoCtrl:=' select #TMpSysMenuAccessCtrl.EmployeeCode,'+
' #TMpSysMenuAccessCtrl.SysMenuID,'+
' #TMpSysMenuAccessCtrl.CANAccess'+
' from #TMpSysMenuAccessCtrl'+
' where #TMpSysMenuAccessCtrl.SysMenuID not in'+
' (select SysMenuid from SysMenuAccessCtrl where EmployeeCode='+QuotedStr(operatorCode1)+')';
Close;
SQL.clear;
SQL.Add(GetNoCtrl);
Open;
First;
sUpdate:='';
while not Eof do
begin
for i:=0 to RecordCount-1 do
begin
sUpdate:=sUpdate+
' insert into SysMenuAccessCtrl(EmployeeCode,SysMenuID,CANAccess) '+
' Values('+QuotedStr(operatorCode1)+','+
fieldbyname('SysMenuID').asstring+',0) ';
next;
end;
end;
end;
with AdoQry_tmp do
begin
Close;
SQL.clear;
SQL.Add(sUpdate);
Prepared;
ExecSQL
end;
end;
procedure TFrm_Sys_AccessCtrl1.GetTotalRecord(operatorCode1,SysModuleCode1:string);
var
sSQL:string;
begin
sSQL:='';
sSQL:=sSQL+ 'select SysMenuAccessCtrl.EmployeeCode,'+
' Employee.EmployeeName,'+
' SysMenuAccessCtrl.SysMenuID,'+
' SysMenu.SysMenuCode,'+
' SysMenu.SysMenuName,'+
' SysMenu.SysMenuCode+'' ''+SysMenu.SysMenuName as SysMenuB,'+
' SysMenu.SysModuleCode,'+
' Sysmodule.SysmoduleName,'+
' SysMenu.SysModuleCode+'' ''+Sysmodule.SysmoduleName as SysmoduleB,'+
' SysMenuAccessCtrl.CANAccess'+
' from SysMenuAccessCtrl'+
' join Employee on SysMenuAccessCtrl.EmployeeCode=Employee.EmployeeCode'+
' join SysMenu on SysMenuAccessCtrl.SysMenuID=SysMenu.SysMenuid'+
' join Sysmodule on SysMenu.SysModuleCode=Sysmodule.SysModuleCode'+
' where SysMenuAccessCtrl.EmployeeCode='+QuotedStr(operatorCode1);
if SysModuleCode1<>''then
sSQL:=sSQL+ 'and SysMenu.SysModuleCode='+QuotedStr(SysModuleCode1);
if Condition<>'' then
sSQL:=sSQL+ ' and ' + Condition;
sSQL:=sSQL+' Order by SysMenu.SysModuleCode,SysMenu.SysMenuCode';
with AdoQry_Main do
begin
Close;
SQL.clear;
SQL.Add(sSQL);
Open;
end;
end;
procedure TFrm_Sys_AccessCtrl1.DeleteTmptable;
begin
with AdoQry_tmp do
begin
Close;
SQL.clear;
SQL.Add('drop table #tMpSysMenuAccessCtrl ');
Prepared;
ExecSQL;
end;
end;
procedure TFrm_Sys_AccessCtrl1.DBGridEhTitleClick(Column: TColumnEh);
var
UpdateSQL:string;
begin
EmployeeCondition:=Lstbx_Employee.Items[Lstbx_Employee.ItemIndex];
EmployeeCondition:=getCode(EmployeeCondition);
if Lstbx_Module.Itemindex=0 then ModuleCondition:=''
else
begin
ModuleCondition:=Lstbx_Module.Items[Lstbx_Module.Itemindex];
if ModuleCondition<>'' then ModuleCondition:=getCode(ModuleCondition);
end;
If Trim(Column.Title.Caption)<>'权限' Then
Abort;
If AdoQry_Main.RecordCount=0 Then
Abort;
UpdateSQL:=' ';
If Not Flag Then
begin
UpdateSQL:=' update SysMenuAccessCtrl set CANAccess=1'+
' where EmployeeCode='+QuotedStr(EmployeeCondition);
if Trim(ModuleCondition)<>'' then
UpdateSQL:=UpdateSQL+' and SysMenuid in'+
' (select SysMenuid from SysMenu where SysModuleCode='+
Quotedstr(ModuleCondition)+')';
end
Else
begin
UpdateSQL:=' update SysMenuAccessCtrl set CANAccess=0'+
' where EmployeeCode='+QuotedStr(EmployeeCondition);
if Trim(ModuleCondition)<>'' then
UpdateSQL:=UpdateSQL+' and SysMenuid in'+
' (select SysMenuid from SysMenu where SysModuleCode='+
Quotedstr(ModuleCondition)+')';
end;
if Trim(UpdateSQL)<>'' then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add(UpdateSQL);
Prepared;
ExecSQL;
end;
end;
Flag:=Not Flag;
GetTotalRecord(EmployeeCondition,ModuleCondition);
end;
procedure TFrm_Sys_AccessCtrl1.FormActivate(Sender: TObject);
begin
inherited;
Flag:=False;
end;
procedure TFrm_Sys_AccessCtrl1.GetSysModuleAccessCtrl(EmployCode:String);
var
sSQL:string;
UpdateSQL:string;
begin
with AdoQry_tmp do
begin
sSQL:=' select SysModuleCode from Sysmodule'+
' where SysModuleCode not in'+
' (select SysModuleCode from SysModuleAccessCtrl where EmployeeCode='+
Quotedstr(EmployCode)+')';
Close;
SQL.clear;
SQL.Add(sSQL);
Open;
end;
AdoQry_tmp.First;
UpdateSQL:=' ';
with AdoQry_tmp1 do
begin
While Not AdoQry_tmp.Eof Do
begin
UpdateSQL:=UpdateSQL+'insert into SysModuleAccessCtrl (EmployeeCode,SysModuleCode) Values('+
Quotedstr(EmployCode)+','+Quotedstr(AdoQry_tmp.fieldbyname('SysModuleCode').AsString)+') ';
AdoQry_tmp.Next;
end;
Close;
SQL.clear;
SQL.Add(UpdateSQL);
Prepared;
ExecSQL;
end;
end;
procedure TFrm_Sys_AccessCtrl1.Act_FilterExecute(Sender: TObject);
var
sModule:string;
begin
selectfromsql:='select SysMenuAccessCtrl.EmployeeCode,'+
' Employee.EmployeeName,'+
' SysMenuAccessCtrl.SysMenuID,'+
' SysMenu.SysMenuCode,'+
' SysMenu.SysMenuName,'+
' SysMenu.SysMenuCode+'' ''+SysMenu.SysMenuName as SysMenuB,'+
' SysMenu.SysModuleCode,'+
' Sysmodule.SysmoduleName,'+
' SysMenu.SysModuleCode+'' ''+Sysmodule.SysmoduleName as SysmoduleB,'+
' SysMenuAccessCtrl.CANAccess'+
' from SysMenuAccessCtrl'+
' join Employee on SysMenuAccessCtrl.EmployeeCode=Employee.EmployeeCode'+
' join SysMenu on SysMenuAccessCtrl.SysMenuID=SysMenu.SysMenuid'+
' join Sysmodule on SysMenu.SysModuleCode=Sysmodule.SysModuleCode';
if Lstbx_Employee.ItemIndex>-1 then
ConditionUserDefine:= ' SysMenuAccessCtrl.EmployeeCode='+
QuotedStr(GetCode(Lstbx_Employee.Items.Strings[Lstbx_Employee.ItemIndex]));
if (Lstbx_Module.ItemIndex<>0)and(Lstbx_Module.ItemIndex>-1) then
ConditionUserDefine:=ConditionUserDefine+' and SysMenu.SysModuleCode='+
QuotedStr(GetCode(Lstbx_Module.Items.Strings[Lstbx_Module.ItemIndex]));
inherited;
sModule:=AdoQry_Main.fieldbyname('SysModuleCode').asstring;
Frm_Sys_AccessCtrl1_C.GetStation(sModule,Lstbx_Module);
end;
procedure TFrm_Sys_AccessCtrl1.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Sys_AccessCtrl1:=nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -