📄 frm_useredit.pas
字号:
unit Frm_UserEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Frm_Cargo, Grids, BaseGrid, AdvGrid, StdCtrls, XPMenu, DB, ADODB;
type
TFrmUserEdit = class(TFrmCargo)
Label10: TLabel;
CmbUserFG: TComboBox;
Label1: TLabel;
EdtUserID: TEdit;
Label2: TLabel;
EdtLoginName: TEdit;
Label4: TLabel;
EdtLoginPass: TEdit;
Label5: TLabel;
EdtConfirmPass: TEdit;
Label6: TLabel;
EdtUserName: TEdit;
Label7: TLabel;
EdtUserTele: TEdit;
Label8: TLabel;
CmbDept: TComboBox;
Label9: TLabel;
CmbUserDuty: TComboBox;
Label3: TLabel;
EdtRightsGrade: TEdit;
GridFunc: TAdvStringGrid;
Button1: TButton;
BtnAdd: TButton;
BtnSave: TButton;
BtnClose: TButton;
QryTemp: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure BtnAddClick(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure BtnCloseClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CmbDeptExit(Sender: TObject);
private
{ Private declarations }
public
IsEdit: Boolean;
UserCode, ModuleNo, LoginName: string;
RightsValue: string;
RightsGrade: string;
{ Public declarations }
end;
var
FrmUserEdit: TFrmUserEdit;
implementation
uses Frm_UserRightEdit, Frm_Main, Frm_UserInfo;
{$R *.dfm}
procedure TFrmUserEdit.Button1Click(Sender: TObject);
begin
inherited;
FrmUserRightEdit := TFrmUserRightEdit.Create(Self);
FrmUserRightEdit.ShowModal;
end;
procedure TFrmUserEdit.BtnAddClick(Sender: TObject);
begin
inherited;
EdtUserId.Text := '';
EdtLoginPass.Text := '';
EdtConfirmPass.Text := '';
EdtLoginName.Text := '';
EdtUserName.Text := '';
EdtUserTele.Text := '';
CmbDept.Text := '';
RightsValue := '';
RightsGrade := '';
EdtRightsGrade.Text := '';
UserCode := '';
CmbUserDuty.Text := '';
GridFunc.Clear;
BtnAdd.Enabled := False;
IsEdit := False;
EdtUserID.SetFocus;
end;
procedure TFrmUserEdit.BtnSaveClick(Sender: TObject);
var
SqlStr: string;
TempRowCount, i: Integer;
BeUpdateCode: Boolean;
//T:Integer;
begin
inherited;
if EdtUserID.Text = '' then
begin
EdtUserID.SetFocus;
Exit;
end;
if CmbUserFG.Text = '' then
begin
EdtUserID.SetFocus;
Exit;
end;
if EdtLoginName.Text = '' then
begin
EdtLoginName.SetFocus;
Exit;
end;
if EdtLoginPass.Text = '' then
begin
EdtLoginPass.SetFocus;
Exit;
end;
if EdtLoginPass.Text <> EdtConfirmPass.Text then
begin
EdtConfirmPass.SetFocus;
Exit;
end;
if EdtUserID.Text <> UserCode then //判断主健是否存在
begin
if FrmMain.CheckExistCount('UserID', EdtUserID.Text, 'FuncRights') > 0 then
begin
EdtUserID.SetFocus;
exit;
end;
end;
if EdtLoginName.Text <> LoginName then //判断主健是否存在
begin
if FrmMain.CheckExistCount('LoginName', EdtLoginName.Text, 'FuncRights') > 0 then
begin
ShowMessage('登陆名称已存在,请重新输入');
EdtUserID.SetFocus;
exit;
end;
end;
if IsEdit then
begin
try
BeUpdateCode := false;
if UpperCase(EdtUserID.Text) = UpperCase(UserCode) then
else
begin
if (FrmMain.CheckExistCount('UserID', UserCode, 'UserFileNo') > 0) then
begin
Showmessage('此数据与其它表关联,不可修改!');
Exit
end
else
BeUpdateCode := true;
end;
if BeUpdateCode then
SqlStr := 'UpDate FuncRights set LoginPass=''' + Trim(EdtLoginPass.Text) + ''',LoginName=''' + Trim(EdtLoginName.Text) + ''',UserFG=''' + CmbUserFG.Text + ''','
+ 'UserName=''' + Trim(EdtUserName.Text) + ''',UserTele=''' + Trim(EdtUserTele.Text) + ''',UserDept=''' + Trim(FrmMain.GetFieldText(CmbDept.Text, 1)) + ''',UserDuty=''' + Trim(CmbUserDuty.Text) + ''','
+ 'RightsValue=''' + FrmMain.FullStrYh(Trim(RightsValue)) + ''',RightsGrade=''' + FrmMain.FullStrYh(trim(RightsGrade)) + ''' where UserID=''' + trim(UserCode) + ''''
else
SqlStr := 'UpDate FuncRights set UserID=''' + EdtUserID.Text + ''',LoginPass=''' + Trim(EdtLoginPass.Text) + ''',LoginName=''' + Trim(EdtLoginName.Text) + ''',UserFG=''' + CmbUserFG.Text + ''','
+ 'UserName=''' + Trim(EdtUserName.Text) + ''',UserTele=''' + Trim(EdtUserTele.Text) + ''',UserDept=''' + Trim(FrmMain.GetFieldText(CmbDept.Text, 1)) + ''',UserDuty=''' + Trim(CmbUserDuty.Text) + ''','
+ 'RightsValue=''' + FrmMain.FullStrYh(Trim(RightsValue)) + ''',RightsGrade=''' + FrmMain.FullStrYh(trim(RightsGrade)) + ''' where UserID=''' + trim(UserCode)+'''';
if Frmmain.ExecSQL(SqlStr) then
else
begin
exit;
end;
UserCode := EdtUserID.Text;
LoginName := EdtLoginName.Text;
with FrmUserInfo do
begin
GridUser.Cells[0, CurrentRow] := Trim(EdtUserID.Text);
GridUser.Cells[1, CurrentRow] := trim(EdtLoginName.Text);
GridUser.Cells[2, CurrentRow] := trim(EdtUserName.Text);
GridUser.Cells[3, CurrentRow] := trim(EdtUserTele.Text);
GridUser.Cells[4, CurrentRow] := trim(FrmMain.GetFieldText(CmbDept.Text, 1));
GridUser.Cells[5, CurrentRow] := trim(FrmMain.GetFieldText(CmbDept.Text, 2));
GridUser.Cells[6, CurrentRow] := Trim(CmbUserDuty.Text);
GridUser.Cells[7, CurrentRow] := Trim(RightsValue);
if GridUser.Cells[7, CurrentRow] = '' then
begin
SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in ('''')';
FrmMain.AddGridData(GridFunc, SqlStr);
end
else
begin
SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in (' + GridUser.Cells[7, CurrentRow] + ')';
FrmMain.AddGridData(GridFunc, SqlStr);
end;
GridUser.Cells[8, CurrentRow] := Trim(RightsGrade);
end;
except
exit;
end;
end
else
begin
try
SqlStr := 'Insert Into FuncRights(UserID,LoginPass,LoginName,UserFG,'
+ 'UserName,UserTele,UserDept,UserDuty,RightsValue,RightsGrade) '
+ 'values(';
FrmMain.InsStr(SqlStr, trim(EdtUserID.Text), ',');
FrmMain.InsStr(SqlStr, trim(EdtLoginPass.Text), ',');
FrmMain.InsStr(SqlStr, Trim(EdtLoginName.Text), ',');
FrmMain.InsStr(SqlStr, Trim(CmbUserFg.Text), ',');
FrmMain.InsStr(SqlStr, Trim(EdtUserName.Text), ',');
FrmMain.InsStr(SqlStr, Trim(EdtUserTele.Text), ',');
FrmMain.InsStr(SqlStr, Trim(FrmMain.GetFieldText(CmbDept.Text, 1)), ',');
FrmMain.InsStr(SqlStr, Trim(CmbUserDuty.Text), ',');
FrmMain.InsStr(SqlStr, Trim(RightsValue), ',');
FrmMain.InsStr(SqlStr, Trim(RightsGrade), '');
if FrmMain.ExecSQL(SqlStr) then
else
begin
exit;
end;
IsEdit := true;
BtnAdd.Enabled := True;
UserCode := EdtUserID.Text;
with FrmUserInfo do
begin
TempRowCount := GridUser.RowCount;
if GridUser.Cells[0, 1] = '' then
begin
GridUser.Cells[0, 1] := Trim(EdtUserID.Text);
GridUser.Cells[1, 1] := trim(EdtLoginName.Text);
GridUser.Cells[2, 1] := trim(EdtUserName.Text);
GridUser.Cells[3, 1] := trim(EdtUserTele.Text);
GridUser.Cells[4, 1] := trim(FrmMain.GetFieldText(CmbDept.Text, 1));
GridUser.Cells[5, 1] := trim(FrmMain.GetFieldText(CmbDept.Text, 2));
GridUser.Cells[6, 1] := Trim(CmbUserDuty.Text);
GridUser.Cells[7, 1] := Trim(RightsValue);
if GridUser.Cells[7, 1] = '' then
begin
SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in ('''')';
Frmmain.AddGridData(GridFunc, SqlStr);
end
else
begin
SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in (' + GridUser.Cells[7, 1] + ')';
Frmmain.AddGridData(GridFunc, SqlStr);
end;
GridUser.Cells[8, 1] := Trim(RightsGrade);
GridUser.SelectRows(1, 1);
CurrentRow := 1;
end
else
begin
GridUser.AddRow;
GridUser.Cells[0, TempRowCount] := Trim(EdtUserID.Text);
GridUser.Cells[1, TempRowCount] := trim(EdtLoginName.Text);
GridUser.Cells[2, TempRowCount] := trim(EdtUserName.Text);
GridUser.Cells[3, TempRowCount] := trim(EdtUserTele.Text);
GridUser.Cells[4, TempRowCount] := trim(FrmMain.GetFieldText(CmbDept.Text, 1));
GridUser.Cells[5, TempRowCount] := trim(FrmMain.GetFieldText(CmbDept.Text, 2));
GridUser.Cells[6, TempRowCount] := Trim(CmbUserDuty.Text);
GridUser.Cells[7, TempRowCount] := Trim(RightsValue);
if GridUser.Cells[7, CurrentRow] = '' then
begin
SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in ('''')';
FrmMain.AddGridData(GridFunc, SqlStr);
end
else
begin
SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in (' + GridUser.Cells[7, CurrentRow] + ')';
FrmMain.AddGridData(GridFunc, SqlStr);
end;
GridUser.Cells[8, TempRowCount] := Trim(RightsGrade);
GridUser.SelectRows(TempRowCount, 1);
CurrentRow := TempRowCount;
end;
end;
except
exit;
end;
end;
end;
procedure TFrmUserEdit.BtnCloseClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TFrmUserEdit.FormActivate(Sender: TObject);
var
SqlStr: string;
I: Integer;
begin
inherited;
if IsEdit then
begin
with QryTemp do
begin
Close;
Sql.Clear;
Sql.Text := 'Select UserID,LoginPass,LoginName,UserName,UserFG,'
+ 'UserTele,UserDept,UserDuty,RightsValue,RightsGrade'
+ ' From FuncRights Where UserID=''' + UserCode + '''';
Open;
EdtUserID.Text := FieldByname('UserID').AsString;
EdtLoginPass.Text := FieldByname('LoginPass').AsString;
CmbUserFg.Text := FieldBYname('UserFg').AsString;
EdtConfirmPass.Text := FieldByName('LoginPass').AsString;
EdtLoginName.Text := FieldBYName('LoginName').AsString;
EdtUserName.Text := FieldBYName('UserName').AsString;
EdtUserTele.Text := FieldBYName('UserTele').AsString;
CmbDept.Text := FrmMain.SetComboBoxText(FieldByName('UserDept').AsString, CmbDept);
CmbUserDuty.Text := FieldByName('UserDuty').AsString;
RightsValue := FieldByName('RightsValue').AsString;
EdtRightsGrade.Text := FieldByName('RightsGrade').AsString;
RightsGrade := FieldByName('RightsGrade').AsString;
if RightsValue = '' then
begin
GridFunc.RowCount := 2;
end
else
begin
SqLStr := 'Select FuncViewName From SysFunc Where FuncName in (' + RightsValue + ') order by SortPos';
FrmMain.AddGridData(GridFunc, SqlStr);
end;
end;
end;
end;
procedure TFrmUserEdit.FormCreate(Sender: TObject);
var
SqlStr: string;
begin
inherited;
SqlStr := 'Select Code,CName from DeptmentInfo';
FrmMain.Full_FilterCombobox(CmbDept, SqlStr, 'Code', 'CName');
SQLStr := 'Select distinct UserDuty from FuncRights';
FrmMain.Full_FilterCombobox(CmbUserDuty, SqlStr, 'UserDuty');
end;
procedure TFrmUserEdit.CmbDeptExit(Sender: TObject);
begin
inherited;
CmbDept.Text := FrmMain.CheckComboBox(CmbDept);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -