?? usermanage.pas
字號:
unit UserManage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Menus,UnitModule,Math;
Type
TStringGridEx = class(TStringGrid);
type
TfrmUserManage = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
Label3: TLabel;
GroupBox5: TGroupBox;
Label4: TLabel;
Edit3: TEdit;
PopupMenu1: TPopupMenu;
mAdd: TMenuItem;
mModify: TMenuItem;
mDelete: TMenuItem;
N4: TMenuItem;
mSave: TMenuItem;
AddPri: TButton;
DelPri: TButton;
SaveMove: TButton;
Label5: TLabel;
ComboBox2: TComboBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
procedure FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure GridSysPriClick(Sender: TObject);
procedure GridGroupPriClick(Sender: TObject);
procedure mAddClick(Sender: TObject);
procedure GridGroupSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure mSaveClick(Sender: TObject);
procedure mModifyClick(Sender: TObject);
procedure GridSysPriSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure GridGroupPriSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure mDeleteClick(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure AddPriClick(Sender: TObject);
procedure DelPriClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure ComboBox2DropDown(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
procedure UserRegister;
procedure UserUnregister;
procedure ShowGroup;
procedure HideGroup;
procedure HidePrivilege;
procedure ShowSysPrivilege;
procedure ShowGroupName(ComboBox:TComboBox);
procedure ShowGroupPrivilege(sName:string);
Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer);
public
{ Public declarations }
GridGroup,GridGroupPri,GridSysPri:TStringGridEx;
end;
var
frmUserManage: TfrmUserManage;
row1,row2,row3:integer;
implementation
uses UnitShow;
{$R *.dfm}
procedure TfrmUserManage.ShowGroup;
var
iCount:integer;
begin
try
if not DataModule1.ADOConnection1.Connected then
DataModule1.ADOConnection1.Connected := true;
DataModule1.ADOCommand1.CommandText := '';
DataModule1.ADOCommand1.CommandText := 'select groupId,groupName from t_group';
DataModule1.ADOCommand1.Prepared := true;
DataModule1.ADODataSet1.Recordset := DataModule1.ADOCommand1.Execute;
if DataModule1.ADODataSet1.Recordset.RecordCount < 1 then
exit
else
begin
DataModule1.ADODataSet1.Recordset.MoveFirst;
for iCount := 0 to DataModule1.ADODataSet1.Recordset.RecordCount - 1 do // Iterate
begin
if iCount <> 0 then
GridGroup.RowCount := GridGroup.RowCount + 1;
GridGroup.Cells[0,iCount] := DataModule1.ADODataSet1.Recordset.Fields.Item[1].Value;
GridGroup.Cells[1,iCount] := DataModule1.ADODataSet1.Recordset.Fields.Item[0].Value;
DataModule1.ADODataSet1.Recordset.MoveNext;
end;
end;
except on e: Exception do
showmessage(e.Message);
end;
end;
procedure TfrmUserManage.HideGroup;
var
I: Integer;
begin
for I := 0 to GridGroup.RowCount - 1 do // Iterate
begin
GridGroup.RowCount := GridGroup.RowCount - 1;
end; // for
GridGroup.Cells[0,0] := '';
GridGroup.Cells[1,0] := '';
end;
procedure TfrmUserManage.ShowSysPrivilege;
var
str:string;
sTemp:string;
iPos,i:integer;
begin
for I := 0 to GridSysPri.RowCount - 1 do // Iterate
begin
GridSysPri.RowCount := GridSysPri.RowCount - 1;
end; // for
GridSysPri.Cells[0,0] := '';
GridSysPri.Cells[1,0] := '';
try
if not DataModule1.ADOConnection1.Connected then
DataModule1.ADOConnection1.Connected := true;
DataModule1.ADOCommand1.CommandText := '';
DataModule1.ADOCommand1.CommandText := 'select gDesc from t_group where groupId = ''01''';
DataModule1.ADOCommand1.Prepared := true;
DataModule1.ADODataSet1.Recordset := DataModule1.ADOCommand1.Execute;
if DataModule1.ADODataSet1.Recordset.RecordCount < 1 then exit
else
begin
str := DataModule1.ADODataSet1.Recordset.Fields.Item[0].Value;
while pos(',',str) > 0 do
begin
iPos := pos(',',str);
sTemp := Copy(str,1,iPos - 1);
GridSysPri.RowCount := GridSysPri.RowCount + 1;
case Length(sTemp) of
1:
begin
GridSysPri.Cells[0,GridSysPri.RowCount - 2] := frmShow.MainMenu1.Items[strtoint(sTemp)].Caption;
end;
2:
begin
GridSysPri.Cells[0,GridSysPri.RowCount - 2] := ' '+frmShow.MainMenu1.Items[strtoint(copy(sTemp,1,1))].Items[strtoint(copy(sTemp,2,1))].Caption;
end;
3:
begin
GridSysPri.Cells[0,GridSysPri.RowCount - 2] := ' '+frmShow.MainMenu1.Items[strtoint(copy(sTemp,1,1))].Items[strtoint(copy(sTemp,2,1))].Items[strtoint(copy(sTemp,3,1))].Caption;
end;
end; // case
GridSysPri.Cells[1,GridSysPri.RowCount - 2] := sTemp;
str := Copy(str,iPos + 1,Length(str));
end;
end;
except on e: Exception do
Showmessage(e.Message);
end;
//GridSysPri.RowCount := GridGroupPri.RowCount - 1;
end;
procedure TfrmUserManage.HidePrivilege;
var
i:integer;
begin
for I := 0 to GridSysPri.RowCount - 1 do // Iterate
begin
GridSysPri.RowCount := GridSysPri.RowCount - 1;
end; // for
GridSysPri.Cells[0,0] := '';
GridSysPri.Cells[1,0] := '';
for I := 0 to GridGroupPri.RowCount - 1 do // Iterate
begin
GridGrouppri.RowCount := GridGroupPri.RowCount - 1;
end; // for
GridGroupPri.Cells[0,0] := '';
GridGroupPri.Cells[1,0] := '';
end;
procedure TfrmUserManage.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
Resize := false;
end;
procedure TfrmUserManage.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked then
begin
GridGroup.Enabled := true;
ShowGroup;
end
else
begin
GridGroup.Enabled := false;
HideGroup;
end;
end;
procedure TfrmUserManage.CheckBox1Click(Sender: TObject);
begin
ComboBox1.Items.Clear;
if CheckBox1.Checked then
begin
GridSysPri.Enabled := true;
GridGroupPri.Enabled := true;
ComboBox1.Enabled := true;
ShowSysPrivilege;
ShowGroupName(ComboBox1);
end
else
begin
GridSysPri.Enabled := false;
GridGroupPri.Enabled := false;
ComboBox1.Text := '';
ComboBox1.Enabled := false;
HidePrivilege;
end;
end;
procedure TfrmUserManage.GridSysPriClick(Sender: TObject);
begin
AddPri.Enabled := true;
DelPri.Enabled := false;
end;
procedure TfrmUserManage.GridGroupPriClick(Sender: TObject);
begin
AddPri.Enabled := false;
DelPri.Enabled := true;
end;
procedure TfrmUserManage.mAddClick(Sender: TObject);
var
iMax,iTemp:integer;
sMax:string;
I:integer;
begin
iMax := 0;
sMax := '';
GridGroup.Options := GridGroup.Options - [goRowSelect];
if Trim(GridGroup.Cells[0,GridGroup.RowCount-1]) <> '' then
begin
GridGroup.RowCount := GridGroup.RowCount + 1;
for I := 0 to GridGroup.RowCount - 1 do // Iterate
begin
if GridGroup.Cells[1,i] = '' then
iTemp := 0
else
iTemp := strtoint(GridGroup.Cells[1,i]);
iMax := Max(iMax,iTemp);
end; // for
if Length(inttostr(iMax)) = 1 then
sMax := '0' + inttostr(iMax+1);
GridGroup.Cells[1,GridGroup.RowCount-1] := sMax;
end
else
begin
if GridGroup.RowCount <= 1 then
GridGroup.Cells[1,0] := '01'
else
begin
for I := 0 to GridGroup.RowCount - 2 do // Iterate
begin
if GridGroup.Cells[1,i] = '' then
iTemp := 0
else
iTemp := strtoint(GridGroup.Cells[1,i]);
iMax := Max(iMax,iTemp);
end; // for
if Length(inttostr(iMax)) = 1 then
sMax := '0' + inttostr(iMax+1);
GridGroup.Cells[1,GridGroup.RowCount-1] := sMax;
end;
end;
end;
procedure TfrmUserManage.GridGroupSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
row1 := ARow;
end;
procedure TfrmUserManage.mSaveClick(Sender: TObject);
var
i:integer;
sName,sNo:string;
begin
GridGroup.Options := GridGroup.Options + [goRowSelect];
try
if not DataModule1.ADOConnection1.Connected then
DataModule1.ADOConnection1.Connected := true;
for I := 0 to GridGroup.RowCount - 1 do // Iterate
begin
sName := trim(GridGroup.Cells[0,i]);
sNo := trim(GridGroup.Cells[1,i]);
if (sName <> '') and (sNo <> '') then
begin
DataModule1.ADOCommand1.CommandText := Format('select groupName from t_group where groupId = ''%s''',[sNo]);
DataModule1.ADOCommand1.Prepared := true;
DataModule1.ADODataSet1.Recordset := DataModule1.ADOCommand1.Execute;
if DataModule1.ADODataSet1.Recordset.RecordCount < 1 then
begin
DataModule1.ADOCommand1.CommandText := Format('insert t_group values(''%s'',''%s'','''')',[sNo,sName]);
end
else
begin
if sName <> trim(DataModule1.ADODataSet1.Recordset.Fields.Item[0].value) then
begin
DataModule1.ADOCommand1.CommandText := Format('update t_group set groupName = ''%s'' where groupId = ''%s''',[sName,sNo]);
end;
end;
DataModule1.ADOCommand1.Prepared := true;
DataModule1.ADOCommand1.Execute;
end;
end;
except on e: Exception do
begin
showmessage(e.Message);
exit;
end;
end;
showmessage('工作組修改成功!');
end;
procedure TfrmUserManage.mModifyClick(Sender: TObject);
begin
GridGroup.Options := GridGroup.Options - [goRowSelect];
end;
procedure TfrmUserManage.GridSysPriSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
row2 := ARow;
end;
procedure TfrmUserManage.GridGroupPriSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
row3 := ARow;
end;
procedure TfrmUserManage.mDeleteClick(Sender: TObject);
begin
GridGroup.Rows[row1].Clear;
//GridGroup.Rows[row1].Move(row1,GridGroup.RowCount-1);
end;
procedure TfrmUserManage.ShowGroupName(ComboBox:TComboBox);
var
str:string;
i:integer;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -