📄 unitdistripermit.pas
字号:
unit UnitDistriPermit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, ExtCtrls, StdCtrls, ADODB, DB;
type
TfrmDistriPermit = class(TForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
tbnAddRole: TToolButton;
tbnRemoveRole: TToolButton;
tbnExit: TToolButton;
ToolButton6: TToolButton;
StatusBar1: TStatusBar;
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
Panel3: TPanel;
Splitter2: TSplitter;
Panel4: TPanel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
lvwSelect: TListView;
lvwSeted: TListView;
Label1: TLabel;
edtuserName: TEdit;
Label2: TLabel;
EdtStatus: TEdit;
ADOQuery: TADOQuery;
ADOcmd: TADOCommand;
procedure tbnExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure tbnAddRoleClick(Sender: TObject);
procedure tbnRemoveRoleClick(Sender: TObject);
private
strCon:string;
Rolename:string;
procedure Setroles(id:string;permitid:string;roleid:string);
{ Private declarations }
public
RoleId:string;
{ Public declarations }
end;
var
frmDistriPermit: TfrmDistriPermit;
implementation
uses UnitMain, UnitBackUpPath;
{$R *.dfm}
procedure TfrmDistriPermit.Setroles(id:string;permitid:string;roleid:string);
var
smt:string;
begin
smt:='execute ManagerPermit '+id+','+permitid+','+roleid;
adocmd.ConnectionString:=strCon;
adocmd.CommandType:=cmdText;
adocmd.CommandText:=smt;
adocmd.Execute
end;
procedure TfrmDistriPermit.tbnExitClick(Sender: TObject);
begin
frmDistriPermit.Close;
end;
procedure TfrmDistriPermit.FormCreate(Sender: TObject);
begin
frmMain.ReadINI;
strCon:=frmMain.strCon;
end;
procedure TfrmDistriPermit.FormShow(Sender: TObject);
var
xx:TListColumn;
yy:TlistItem;
Smt:string;
begin
rolename:=edtusername.Text;
//set the items which will be selected
xx:=lvwSelect.Columns.Add;
xx.Caption:='可选权限';
xx.Width:=lvwSelect.Width-5;
Smt:='select permitid,permission from permitlist';
Smt:=Smt+' where permitid not in ' ;
Smt:=Smt+' (select permitid';
Smt:=Smt+' from RolePermits a left outer join Rolelist b ';
Smt:=Smt+' on a.roleid=b.roleid ' ;
Smt:=Smt+' where b.roleid='+roleid+')';
adoquery.ConnectionString:=strCon;
adoquery.SQL.Clear;
adoquery.Close;
adoquery.SQL.Add(Smt);
adoquery.Open;
lvwSelect.Items.Clear;
while not adoquery.Eof do
begin
yy:=lvwSelect.Items.Add ;
yy.Caption:=adoquery.Fields[1].AsString ;
yy.SubItems.Add(adoquery.Fields[0].AsString);
adoquery.Next;
end;
adoquery.Close;
//set the Items which has been seted
xx:=lvwseted.Columns.Add;
xx.Caption:='已设置权限';
xx.Width:=lvwseted.Width-5;
Smt:='select permitid,permission from permitlist';
Smt:=Smt+' where permitid in ' ;
Smt:=Smt+' (select permitid';
Smt:=Smt+' from RolePermits a left outer join Rolelist b ';
Smt:=Smt+' on a.roleid=b.roleid ' ;
Smt:=Smt+' where b.roleid='+roleid+')';
adoquery.ConnectionString:=strCon;
adoquery.SQL.Clear;
adoquery.Close;
adoquery.SQL.Add(Smt);
adoquery.Open;
lvwSeted.Items.Clear;
while not adoquery.Eof do
begin
yy:=lvwSeted.Items.Add ;
yy.Caption:=adoquery.Fields[1].AsString ;
yy.SubItems.Add(adoquery.Fields[0].AsString);
adoquery.Next;
end;
adoquery.Close;
end;
procedure TfrmDistriPermit.tbnAddRoleClick(Sender: TObject);
var
i:integer;
xx:TListItem;
begin
for i:=lvwSelect.Items.Count Downto 1 do
begin
if lvwSelect.Items[i-1].Checked then
begin
xx:=lvwSeted.Items.Add;
xx.Caption:=LvwSelect.Items[i-1].Caption ;
xx.SubItems.Add(LvwSelect.Items[i-1].subitems[0]);
frmDistriPermit.Setroles('1',LvwSelect.Items[i-1].subitems[0],roleid);
lvwSelect.Items[i-1].Delete;
end;
end;
end;
procedure TfrmDistriPermit.tbnRemoveRoleClick(Sender: TObject);
var
i:integer;
xx:TListItem;
begin
for i:=lvwSeted.Items.Count Downto 1 do
begin
if lvwSeted.Items[i-1].Checked then
begin
xx:=lvwSelect.Items.Add;
xx.Caption:=LvwSeted.Items[i-1].Caption ;
xx.SubItems.Add(LvwSeted.Items[i-1].subitems[0]);
frmdistriPermit.Setroles('2',LvwSeted.Items[i-1].subitems[0],roleid);
lvwSeted.Items[i-1].Delete;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -