📄 frmusergrp.pas
字号:
unit frmUserGrp;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, ComCtrls,dialogs,vafuncs, utils,wpfuncs,prefs,DBmain;
type
TOKBottomDlg = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
PageControl: TPageControl;
tsGroups: TTabSheet;
sbtnDelete: TSpeedButton;
sbtnAdd: TSpeedButton;
Label8: TLabel;
Label9: TLabel;
lstSource: TListBox;
lstTarget: TListBox;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
edGroupName: TEdit;
edCreator: TEdit;
edDate: TEdit;
edOldGroup: TEdit;
edGroupDes: TComboBox;
procedure sbtnAddClick(Sender: TObject);
procedure sbtnDeleteClick(Sender: TObject);
procedure lstSourceDblClick(Sender: TObject);
procedure lstTargetDblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
procedure InitUserGroups;
function CheckInList(str:string;List:TCustomListBox):boolean;
public
{ Public declarations }
end;
implementation
{$R *.DFM}
procedure TOKBottomDlg.sbtnAddClick(Sender: TObject);
var i:integer;
username,groupname:string;
begin
if (edGroupname.text='') or (lstSource.SelCount <= 0) then exit;
groupname:=edGroupname.Text;
for i:= lstSource.Items.Count - 1 downto 0 do begin
if lstSource.Selected[i] then
begin
if not checkinlist(lstSource.Items.Strings[i],lstTarget) then begin
username:=lstSource.Items.Strings[i];
if sup.PS_Ins_UserGrp(username,groupname)=0 then begin
lstTarget.Items.Add(lstSource.Items.Strings[i]);
lstSource.Items.Delete(i);
end else showmessage(sup.PS_Lasterror);
end else begin
//lstSource.Items.Delete(i);
Showmessage('目标值已经存在.');
end;
end;
end;
end;
procedure TOKBottomDlg.sbtnDeleteClick(Sender: TObject);
var i:integer;
username,groupname:string;
begin
lstTarget.refresh;
lstSource.refresh;
if (edGroupname.text='') or (lstTarget.SelCount <= 0) then exit;
groupname:=edGroupname.Text;
if lstTarget.SelCount<0 then exit;
for i:= lstTarget.Items.Count - 1 downto 0 do begin
if lstTarget.Selected[i] then
begin
username:=lstTarget.Items.Strings[i];
if not checkinlist(lstTarget.Items.Strings[i],lstSource) then begin
if sup.PS_Del_UserGrp(username,groupname)=0 then begin
lstSource.Items.Add(lstTarget.Items.Strings[i]);
lstTarget.Items.Delete(i);
end else showmessage('移动失败 : '+sup.PS_LastError);
end else begin
if sup.PS_Del_UserGrp(username,groupname)=0 then
lstTarget.Items.Delete(i) else showmessage(sup.PS_LastError);
end;
end;
end;
end;
function TOKBottomDlg.CheckInList(str:string;List:TCustomListBox):boolean;
var i:integer;
begin
result:=false;
if List.items.Count>0 then begin
for i:=list.items.Count-1 downto 0 do begin
if uppercase(str)=uppercase(list.Items.Strings[i]) then
result:=true;
end;
end;
end;
procedure TOKBottomDlg.lstSourceDblClick(Sender: TObject);
begin
self.sbtnAdd.OnClick(self);
end;
procedure TOKBottomDlg.lstTargetDblClick(Sender: TObject);
begin
self.sbtnDelete.OnClick(self);
end;
procedure TOKBottomDlg.InitUserGroups;
var
ole:Olevariant;
row:TStrings;
begin
ole:=sup.PS_Get_users('');
if not VarIsEmpty(ole) then begin
row:=Get_ColRecords(ole,1);
lstSource.Items:=row;
end;
ole:=sup.PS_Get_UserGrp('',edGroupName.Text);
if not VarIsEmpty(ole) then begin
row:=Get_ColRecords(ole,0);
lstTarget.Items:=row;
end;
end;
procedure TOKBottomDlg.FormShow(Sender: TObject);
begin
InitUserGroups;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -