【delphi开源代码栏目提醒】:网学会员在delphi开源代码频道为大家收集整理了Group_Fun_U.pas提供大家参考,希望对大家有所帮助!
{
unit name : Group_Fun_U
Author : 李涛
Create date: 2004-03-02 09:15:23
description: 组策略管理窗体.
}
unit Group_Fun_U;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Base_Form_U, StdCtrls, Buttons, ExtCtrls, DB, ADODB, Grids, DBGrids, ImgList, ComCtrls, CheckLst;
type
TGroup_Fun = class(TBase_Form)
DBGrid2: TDBGrid;
Fun_ADO: TADOQuery;
Fun_DataSource: TDataSource;
Panel1: TPanel;
Group_ListView: TListView;
Group_Image: TImageList;
Panel3: TPanel;
Mod_ListView: TListView;
Temp_ADO: TADOQuery;
Panel4: TPanel;
Fun_ADOItemname: TStringField;
Fun_ADOGroupname: TStringField;
Fun_ADOYesno: TStringField;
Fun_ADOstop: TStringField;
Splitter1: TSplitter;
Splitter2: TSplitter;
procedure FormShow(Sender: TObject);
procedure Group_ListViewSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure Mod_ListViewSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure Del_BitClick(Sender: TObject);
procedure ADD_BitClick(Sender: TObject);
procedure Edit_BitClick(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
private
//选择的功能组[角色]
Group: String;
//选择的模块
ModName: String;
{ Private declarations }
Procedure Fun_Query;
public
{ Public declarations }
end;
var
Group_Fun: TGroup_Fun;
implementation
uses MainForm_U,MainDataModule_U;
{$R *.dfm}
procedure TGroup_Fun.Fun_Query;
begin
Fun_ADO.Close;
Fun_ADO.SQL.Clear;
Fun_ADO.SQL.Add('select Itemname, Groupname, Yesno from Outlook_table_jb_user');
Fun_ADO.SQL.Add('where (jiaose='''+Group+''') and Modcode in ( select C_code from T_sys_mod where C_name='''+Modname+''')');
Fun_ADO.SQL.Add('order by Group_id,Trig_id');
Fun_ADO.Open;
end;
procedure TGroup_Fun.FormShow(Sender: TObject);
var
Group_List: TListItem;
Mod_List: TListItem;
begin
inherited;
with Temp_ADO do
begin
Close;
SQL.clear;
//------初始化现有组策略权限
SQl.Add('select Distinct jiaose from Outlook_table_jb_user');
Open;
Group_ListView.Items.Clear;
while not eof do
begin
Group_List:=Group_ListView.Items.add;
Group_List.Caption:=Trim(FieldByName('jiaose').AsString);
Group_List.ImageIndex:=0;
Next;
end;
//------显示
软件可用模块功能------------------------------------------
Close;
SQL.Clear;
SQL.Add('select * from T_sys_mod where C_stop=''0''');
Open;
Mod_ListView.Items.Clear;
While not eof do
begin
Mod_List:=Mod_ListView.Items.Add;
Mod_List.Caption:=(FieldByName('C_name').AsString);
Mod_List.ImageIndex:=1;
Next;
end;
end;
//-------------------------------------------------------------------------
Group:=Trim(Group_ListView.Items[0].Caption);
ModName:=Trim(Mod_ListView.Items[0].Caption);
//-------------------------------------------------------------------------
Fun_Query;
end;
procedure TGroup_Fun.Group_ListViewSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
Group:=Item.Caption;
if Selected then Fun_Query;
inherited;
end;
procedure TGroup_Fun.Mod_ListViewSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
ModName:=Item.Caption;
if Selected then Fun_Query;
inherited;
end;
procedure TGroup_Fun.DBGrid2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
//SetGridColor(Login_history,DBGrid1);
if Fun_ADO.FieldByName('Yesno').asString='1' then
DbGrid2.Canvas.Font.Color:=clred
else
dbgrid2.Canvas.Font.Color:=clWindowText;
DbGrid2.DefaultDrawColumnCell(rect,datacol,column,state);
end;
procedure TGroup_Fun.Del_BitClick(Sender: TObject);
var
Group_List: TListItem;
begin
inherited;
Group_List:=Group_ListView.Selected;
if Group_List = nil then
begin
ShowMessage('请选择要删除的组策略');
Exit;
end;
if Group='系统管理员' then
begin
ShowMessage('对不起,系统不能删除[系统管理员]组');
end
else
if MessageDLG('确认要删除['+Group+']组策略吗?'+char(13)
+'如果删除,其名下的用户将无法使用其功能。',mtCustom,[mbYes,mbNo],0)=mrYes then
begin
Group_List.Delete;
//---执行删除组策略的SQL-------------------------
With Temp_ADO do
begin
Close;
SQL.Clear;
SQL.Add(