📄 unit_quanxian.pas
字号:
unit Unit_quanxian;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls,ADODB, DB;
type
TFrm_QuanXian = class(TForm)
Label1: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
Label2: TLabel;
Label3: TLabel;
Com_UserId: TComboBox;
ListView1: TListView;
ListView2: TListView;
ADOQuery: TADOQuery;
procedure FormShow(Sender: TObject);
procedure Reflash; //刷新记录
procedure Com_UserIdChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
sUserId :string;
end;
var
Frm_QuanXian: TFrm_QuanXian;
implementation
uses
DataModule,u_yonghu;
{$R *.dfm}
procedure TFrm_QuanXian.Reflash;
var
i :Integer;
Alistitem:TlistItem;
begin
with adoquery do
begin
close;
sql.Text:='select menu_name from bid_menu where layer=1 and APPLY=1 and MENU_id not in'
+' (select a.menu_id from bid_userrole a,bid_user b where a.user_id=b.user_id and b.Login_name='''
+trim(com_userid.Text)+''') ';
open;
listview1.Clear;
for i:=0 to recordcount-1 do
begin
alistitem:=listview1.Items.Add;
alistitem.Caption:=fieldbyname('menu_name').AsString;
next;
end;
close;
sql.clear;
sql.text:='select a.menu_name from bid_userrole b,bid_menu a,bid_user c where c.user_id=b.user_ID and b.menu_id=a.menu_id '
+' AND C.Login_name='''+trim(com_userid.text)+''' and A.layer=1 and APPLY=1 ';
open;
listview2.clear;
for i:=0 to recordcount-1 do
begin
alistitem:=listview2.Items.Add;
alistitem.Caption:=fieldbyname('menu_name').AsString;
next;
end;
end;
end;
procedure TFrm_QuanXian.FormShow(Sender: TObject);
var
i :Integer;
begin
with adoquery do
begin
close;
connection:=datamodule1.ADOMainConn;
sql.Clear;
sql.Text:='select Login_name from bid_user order by Login_name ';
open;
com_userid.Clear;
for i:=0 to recordcount-1 do
begin
com_userid.Items.add(fieldbyname('Login_name').AsString);
next;
end;
close;
end;
com_userid.ItemIndex:=com_userid.Items.IndexOf(suserid);
reflash;
end;
procedure TFrm_QuanXian.Com_UserIdChange(Sender: TObject);
begin
reflash;
end;
procedure TFrm_QuanXian.SpeedButton1Click(Sender: TObject);
begin
if listview1.Selected<>nil then
begin
with adoquery do
begin
close;
datamodule1.ADOMainConn.BeginTrans;
try
sql.Clear;
adoquery.sql.Text:='insert into bid_userrole select a.user_id,'
+' b.menu_id from bid_user a, bid_menu b where b.layer=1 and APPLY=1 and b.menu_name='''
+trim(listview1.selected.caption)+''' and a.login_name='''+trim(com_userid.text)+'''';
ExecSQL;
datamodule1.ADOMainConn.CommitTrans;
except
datamodule1.ADOMainConn.RollbackTrans;
end;
end;
Reflash;
end;
end;
procedure TFrm_QuanXian.SpeedButton2Click(Sender: TObject);
var
Ado_Id :Tadoquery;
menu_id :string;
begin
if listview2.Selected<>nil then
begin
ado_id:=tadoquery.Create(nil);
try
ado_id.Connection:=datamodule1.ADOMainConn;
ado_id.SQL.Text:=' select MENU_id from bid_menu where menu_name='''+trim(listview2.Selected.Caption)+'''';
ado_id.Open;
menu_id:=ado_id.fieldbyname('MENU_id').AsString;
finally
FreeAndNil(ado_id);
end;
with adoquery do
begin
close;
datamodule1.ADOMainConn.BeginTrans;
try
sql.Clear;
adoquery.sql.Text:='delete from bid_userrole where menu_id='
+trim(menu_id);
ExecSQL;
datamodule1.ADOMainConn.CommitTrans;
except
datamodule1.ADOMainConn.RollbackTrans;
end;
end;
Reflash;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -