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

📄 security.pas

📁 pasa人力资源考勤管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
            end;
         end;
         Query1.sql.add('Insert into sys03012 select '''+adopasswordno.asstring+''','''+menuname(menu,parent,subparent)+''',0,0,0,0 ');
     end;
     if Query1.SQL.Text<>'' then
    // query1.sql.savetofile('d:\help.sql');
     Query1.ExecSQL;
    adosecurit.DisableControls;
     adosecurit.close;
     adosecurit.open;
     adosecurit.EnableControls;
   end;
end;

procedure TFormsecurity.FindClick(Sender: TObject);
begin
  if assigned(formcanfind) then  formcanfind.close;
  findrecorder(adosecurit,'Adosecurit','view_menu');
end;

procedure TFormsecurity.DBGrid2TitleClick(Column: TColumn);
var dbs:Tdbgridsort;
begin
  dbs:=Tdbgridsort.create;
  dbs.sort(column,adopassword,f);
  dbs.free;
end;

//当用户按修改按钮时,在listbox中弹出原有的菜单权限,让user修改,
//然后,按存盘即可
procedure TFormsecurity.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
var menuname:string;
begin
  case button of
   nbedit:if not adosecurit.eof then
          begin
            listbox4.items.clear;
            adosecurit.first;
            while not adosecurit.eof do
            begin
              menuname:=adosecurit.fieldbyname('menuparentbig').asstring;       //第一层菜单项
              if length(adosecurit.fieldbyname('menusubparentbig').asstring)>1 then    //第二层菜单项
                menuname:=menuname+'-'+adosecurit.fieldbyname('menusubparentbig').asstring;
              if length(menuname)>1 then
                menuname:=menuname+'-'+adosecurit.fieldbyname('menucaptionbig').asstring    // //第三层菜单项
              else
                menuname:=adosecurit.fieldbyname('menucaptionbig').asstring;
              Listbox4.Items.add(menuname);
              Adosecurit.next;
            end;
            adosecurit.first;
          end;
  end;
end;

function TFormsecurity.menuname(menun, parentmenu,
  subparentmenu: string): string;
var i,j,k:integer;
begin
    with formmain do
    begin
      if trim(parentmenu)='' then
      begin
       for i:=0 to MainMenu1.items.count-1 do
           if mainmenu1.items[i].caption=menun then
           begin
              result:=mainmenu1.items[i].name;
              exit;
           end;
      end
      else if trim(subparentmenu)='' then
      begin
       for i:=0 to mainmenu1.items.count-1 do
           if mainmenu1.items[i].Caption=parentmenu then
              for j:=0 to mainmenu1.items[i].Count-1 do
                  if mainmenu1.items[i].items[j].caption=menun then
                  begin
                     result:=mainmenu1.items[i].items[j].name;
                     exit;
                  end;
      end
      else
      begin
         for i:=0 to mainmenu1.items.count-1 do
           if mainmenu1.items[i].Caption=parentmenu then
             for j:=0 to mainmenu1.items[i].Count-1 do
               if mainmenu1.items[i].items[j].caption=subparentmenu then
                  for k:=0 to mainmenu1.items[i].Items[j].Count-1 do
                    if mainmenu1.items[i].items[j].Items[k].caption=menun then
                    begin
                       result:=mainmenu1.items[i].items[j].items[k].name;
                       exit;
                    end;
      end;
    end;
end;

procedure TFormsecurity.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=VK_F1 then
      begin
      Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
      application.HelpJump('SHM_CONTENTS0055');
    end;
end;

procedure Tformsecurity.menuitem(pos:integer;menuname:string;Var two:integer);
var i:integer;
begin
  with formmain do
  begin
    if mainmenu1.items[pos].Count>0 then
       for i:=0 to mainmenu1.items[pos].count-1 do
       if mainmenu1.items[pos].items[i].Caption=menuname then
          two:=i;
  end;
end;

procedure TFormsecurity.ADOpasswordBeforeDelete(DataSet: TDataSet);
begin
   datamod.Query1.close;
   datamod.Query1.sql.text:='Delete from sys03012 where no='''+adopasswordno.asstring+''' ';
   datamod.Query1.execsql;
end;

procedure TFormsecurity.ADOpasswordBeforePost(DataSet: TDataSet);
begin
  if IsRight(self,Dataset)=false then
  begin
     showmessage('对不起,你的权限不够!');
     abort;
  end;
  adopasswordpassword.asstring:=addpassword(adopasswordpassword.asstring);
end;

procedure TFormsecurity.ADOpasswordnoChange(Sender: TField);
begin
  if adopassword.state=dsedit then
  begin
    datamod.Query1.Close;
    datamod.Query1.Sql.Text:='Update sys03012 set no='''+(Sender as TField).newvalue+''' where no='''+(Sender as TField).oldvalue+''' ';
    datamod.Query1.execsql;
  end;
end;

procedure TFormsecurity.ADOsecuritBeforePost(DataSet: TDataSet);
begin
  if IsRight(self,Dataset)=false then
  begin
     showmessage('对不起,你的权限不够!');
     abort;
  end;
end;

procedure TFormsecurity.ToolButton1Click(Sender: TObject);
begin

//  ADOpassword.open;
  adosecurit.close;
  adosecurit.DataSource:=DSpassword;
  adosecurit.commandtext:='select no, menucaptionbig, menuparentbig, menusubparentbig, R_Add, '+
                          'R_Edit, R_Del, R_Print from view_menu where no=:no ';
  adosecurit.open;
  adosecurit.first;
  while not  adosecurit.Eof do
  begin
    adosecurit.DisableControls;
    adosecurit.edit;
    ADOsecuritR_Add.AsBoolean:=true;
    ADOsecuritR_Edit.AsBoolean:=true;
    ADOsecuritR_Del.AsBoolean:=true;
    ADOsecuritR_Print.AsBoolean:=true;
    adosecurit.next;
    adosecurit.EnableControls;
  end;
end;
procedure TFormsecurity.N3Click(Sender: TObject);
begin
ToolButton1Click(sender);
end;
procedure TFormsecurity.ToolButton3Click(Sender: TObject);
begin
  adosecurit.DisableControls;
  adosecurit.edit;
  ADOsecuritR_Add.AsBoolean:=true;
  ADOsecuritR_Edit.AsBoolean:=true;
  ADOsecuritR_Del.AsBoolean:=true;
  ADOsecuritR_Print.AsBoolean:=true;
  adosecurit.next;
  adosecurit.EnableControls;
end;

procedure TFormsecurity.N4Click(Sender: TObject);
begin
ToolButton3Click(sender);
end;

procedure TFormsecurity.N5Click(Sender: TObject);
begin
  n5.Checked:=not n5.Checked ;
  if n5.Checked=true then
  begin
    adosecurit.First;
    while not  adosecurit.Eof do
    begin
      adosecurit.DisableControls;
      adosecurit.edit;
      ADOsecuritR_Add.AsBoolean:=true;
      adosecurit.next;
      adosecurit.EnableControls;
    end;
  end
  else
  begin
    adosecurit.First;
    while not  adosecurit.Eof do
  begin
    adosecurit.DisableControls;
    adosecurit.edit;
    ADOsecuritR_Add.AsBoolean:=false;
    adosecurit.next;
    adosecurit.EnableControls;
  end;
end;
end;

procedure TFormsecurity.N6Click(Sender: TObject);
begin
    n6.Checked:=not n6.Checked ;
  if n6.Checked=true then
  begin
    adosecurit.First;
    while not  adosecurit.Eof do
    begin
      adosecurit.DisableControls;
      adosecurit.edit;
      ADOsecuritR_Edit.AsBoolean:=true;
      adosecurit.next;
      adosecurit.EnableControls;
    end;
  end
  else
  begin
    adosecurit.First;
    while not  adosecurit.Eof do
    begin
      adosecurit.DisableControls;
      adosecurit.edit;
      ADOsecuritR_Edit.AsBoolean:=false;
      adosecurit.next;
      adosecurit.EnableControls;
    end;
  end;
end;
procedure TFormsecurity.N7Click(Sender: TObject);
begin
  n7.Checked:=not n7.Checked ;
  if n7.Checked=true then
  begin
    adosecurit.First;
    while not  adosecurit.Eof do
    begin
      adosecurit.DisableControls;
      adosecurit.edit;
      ADOsecuritR_Del.AsBoolean:=true;
      adosecurit.next;
      adosecurit.EnableControls;
    end;
  end
  else
  begin
    adosecurit.First;
    while not  adosecurit.Eof do
    begin
      adosecurit.DisableControls;
      adosecurit.edit;
      ADOsecuritR_Del.AsBoolean:=false;
      adosecurit.next;
      adosecurit.EnableControls;
    end;
  end;
end;
procedure TFormsecurity.N8Click(Sender: TObject);
begin
    n8.Checked:=not n8.Checked ;
  if n8.Checked=true then
  begin
    adosecurit.First;
    while not  adosecurit.Eof do
    begin
      adosecurit.DisableControls;
      adosecurit.edit;
      ADOsecuritR_Print.AsBoolean:=true;
      adosecurit.next;
      adosecurit.EnableControls;
    end;
  end
  else
  begin
    adosecurit.First;
    while not  adosecurit.Eof do
    begin
      adosecurit.DisableControls;
      adosecurit.edit;
      ADOsecuritR_Print.AsBoolean:=false;
      adosecurit.next;
      adosecurit.EnableControls;
    end;
  end;
end;
end.

⌨️ 快捷键说明

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