📄 frmusermngimpl.pas
字号:
procedure TFrmUserMng.cdsMainAfterOpen(DataSet: TDataSet);
begin
FStatus := STATUS_BROWSE;
FModified := False;
dtsMain.AutoEdit := True;
ShowActionStatus();
end;
procedure TFrmUserMng.cdsMainAfterClose(DataSet: TDataSet);
begin
FStatus := STATUS_INACTIVE;
FModified := False;
ShowActionStatus();
end;
procedure TFrmUserMng.cdsMainAfterInsert(DataSet: TDataSet);
var
strTemp: string;
begin
if (GetNextNo(qryMain, 'T_SYS_USER', 'USER_ID', strTemp, 4)) then
DataSet.FieldByName('USER_ID').AsString := strTemp
else begin
ShowMessage('取用户ID时出错!');
Abort;
end;
DataSet.FieldByName('USER_PSWD').AsString := '';
DataSet.FieldByName('IF_ADMIN').AsString := 'F';
DataSet.FieldByName('IF_BCN').AsString := 'T';
DataSet.FieldByName('IF_MDN').AsString := 'T';
DataSet.FieldByName('IF_QRN').AsString := 'T';
FStatus := STATUS_EDIT;
FModified := True;
ShowActionStatus();
end;
procedure TFrmUserMng.cdsMainAfterScroll(DataSet: TDataSet);
begin
ShowActionStatus();
end;
procedure TFrmUserMng.cdsMainAfterDelete(DataSet: TDataSet);
begin
FStatus := STATUS_BROWSE;
FModified := False;
ShowActionStatus();
end;
procedure TFrmUserMng.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if (FModified) then
begin
case (Application.MessageBox(PChar('是否保存对当前记录的修改?'),
PChar(Caption), MB_YESNOCANCEL + MB_ICONQUESTION + MB_DEFBUTTON1)) of
ID_YES:
begin
actSave.Execute();
CanClose := True;
end;
ID_NO:
begin
CanClose := True
end;
else
begin
CanClose := False
end;
end;
end
else begin
CanClose := True;
end;
end;
procedure TFrmUserMng.FormShow(Sender: TObject);
begin
conMain.Open;
grdMain.Columns[1].KeyList.Clear;
grdMain.Columns[1].PickList.Clear;
cmbUnitID.Items.Clear;
cmbUnitID.KeyItems.Clear;
qryPublic.Close;
qryPublic.SQL.Clear;
qryPublic.SQL.Add('select distinct unit_id,name from t_sys_unit order by unit_id');
qryPublic.Open;
while not qryPublic.Eof do
begin
cmbUnitID.KeyItems.Add(qryPublic.FieldByName('unit_id').AsString);
cmbUnitID.Items.Add(qryPublic.FieldByName('name').AsString);
grdMain.Columns[1].KeyList.Add(qryPublic.FieldByName('unit_id').AsString);
grdMain.Columns[1].PickList.Add(qryPublic.FieldByName('name').AsString);
qryPublic.Next;
end;
qryPublic.Close;
cdsMain.Open;
ShowActionStatus();
end;
procedure TFrmUserMng.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
conMain.Close;
except
end;
Action := caFree;
end;
procedure TFrmUserMng.cdsMainBeforePost(DataSet: TDataSet);
var
objField, objField2: TField;
begin
objField := DataSet.FieldByName('USER_NAME');
objField.AsString := Trim(objField.AsString);
if (objField.AsString = '') then
begin
ShowMessage('请输入“姓名”!');
edtUserName.SetFocus;
Abort;
end;
objField := DataSet.FieldByName('UNIT_ID');
objField.AsString := Trim(objField.AsString);
if (objField.AsString = '') then
begin
ShowMessage('请选择“部门”!');
cmbUnitID.SetFocus;
Abort;
end;
objField := DataSet.FieldByName('USER_PSWD');
if (objField.AsString = '') then
begin
ShowMessage('请输入“密码”!');
edtUserPswd.SetFocus;
Abort;
end;
objField2 := DataSet.FieldByName('ENSURE_PSWD');
if (objField.AsString <> objField2.AsString) then
begin
ShowMessage('“密码”与“确认密码”不符!');
edtUserPswd.SetFocus;
Abort;
end;
end;
procedure TFrmUserMng.FormDestroy(Sender: TObject);
begin
if (self = FrmUserMng) then
FrmUserMng := Nil;
end;
function TFrmUserMng.GetDocCanCancel: Boolean;
begin
Result := True;
if ((dtsMain.DataSet = nil) or (dtsMain.DataSet.State = dsInactive) or
(dtsMain.DataSet.RecordCount = 0)) then
Result := False;
end;
function TFrmUserMng.GetDocCanDelete: Boolean;
begin
Result := True;
if ((dtsMain.DataSet = nil) or (dtsMain.DataSet.State = dsInactive) or
(dtsMain.DataSet.RecordCount = 0)) then
Result := False;
end;
function TFrmUserMng.GetDocCanModify: Boolean;
begin
Result := True;
if ((dtsMain.DataSet = nil) or (dtsMain.DataSet.State = dsInactive) or
(dtsMain.DataSet.RecordCount = 0)) then
Result := False;
end;
procedure TFrmUserMng.dtsMainStateChange(Sender: TObject);
begin
if ((dtsMain.DataSet.State = dsEdit) and (FStatus <> STATUS_EDIT)) then
begin
FStatus := STATUS_EDIT;
FModified := True;
ShowActionStatus;
end;
end;
procedure TFrmUserMng.pvdMainBeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
UpdateKind: TUpdateKind; var Applied: Boolean);
begin
if (UpdateKind = ukInsert) then
begin
cmdPublic.CommandText := 'INSERT INTO T_SYS_USER (USER_ID,USER_NAME,USER_PSWD,UNIT_ID,IF_ADMIN,IF_BCN,IF_MDN,IF_QRN) VALUES (:USER_ID,:USER_NAME,:USER_PSWD,:UNIT_ID,:IF_ADMIN,:IF_BCN,:IF_MDN,:IF_QRN)';
cmdPublic.Parameters.ParamByName('USER_ID').Value := DeltaDS.FieldByName('USER_ID').Value;
cmdPublic.Parameters.ParamByName('USER_NAME').Value := DeltaDS.FieldByName('USER_NAME').Value;
cmdPublic.Parameters.ParamByName('USER_PSWD').Value := DeltaDS.FieldByName('USER_PSWD').Value;
cmdPublic.Parameters.ParamByName('UNIT_ID').Value := DeltaDS.FieldByName('UNIT_ID').Value;
cmdPublic.Parameters.ParamByName('IF_ADMIN').Value := DeltaDS.FieldByName('IF_ADMIN').Value;
cmdPublic.Parameters.ParamByName('IF_BCN').Value := DeltaDS.FieldByName('IF_BCN').Value;
cmdPublic.Parameters.ParamByName('IF_MDN').Value := DeltaDS.FieldByName('IF_MDN').Value;
cmdPublic.Parameters.ParamByName('IF_QRN').Value := DeltaDS.FieldByName('IF_QRN').Value;
cmdPublic.Execute;
end
else if (UpdateKind = ukModify) then
begin
cmdPublic.CommandText := 'UPDATE T_SYS_USER SET USER_NAME=:USER_NAME,USER_PSWD=:USER_PSWD,UNIT_ID=:UNIT_ID,' +
'IF_ADMIN=:IF_ADMIN,IF_BCN=:IF_BCN,IF_MDN=:IF_MDN,IF_QRN=:IF_QRN WHERE USER_ID=:USER_ID';
if DeltaDS.FieldByName('USER_NAME').NewValue = '' then
cmdPublic.Parameters.ParamByName('USER_NAME').Value := DeltaDS.FieldByName('USER_NAME').OldValue
else
cmdPublic.Parameters.ParamByName('USER_NAME').Value := DeltaDS.FieldByName('USER_NAME').Value;
if DeltaDS.FieldByName('USER_PSWD').NewValue = '' then
cmdPublic.Parameters.ParamByName('USER_PSWD').Value := DeltaDS.FieldByName('USER_PSWD').OldValue
else
cmdPublic.Parameters.ParamByName('USER_PSWD').Value := DeltaDS.FieldByName('USER_PSWD').Value;
if DeltaDS.FieldByName('UNIT_ID').NewValue = '' then
cmdPublic.Parameters.ParamByName('UNIT_ID').Value := DeltaDS.FieldByName('UNIT_ID').OldValue
else
cmdPublic.Parameters.ParamByName('UNIT_ID').Value := DeltaDS.FieldByName('UNIT_ID').Value;
if not VarIsType(DeltaDS.FieldByName('IF_ADMIN').NewValue, varBoolean) then
cmdPublic.Parameters.ParamByName('IF_ADMIN').Value := DeltaDS.FieldByName('IF_ADMIN').OldValue
else
cmdPublic.Parameters.ParamByName('IF_ADMIN').Value := DeltaDS.FieldByName('IF_ADMIN').Value;
if not VarIsType(DeltaDS.FieldByName('IF_BCN').NewValue, varBoolean) then
cmdPublic.Parameters.ParamByName('IF_BCN').Value := DeltaDS.FieldByName('IF_BCN').OldValue
else
cmdPublic.Parameters.ParamByName('IF_BCN').Value := DeltaDS.FieldByName('IF_BCN').Value;
if not VarIsType(DeltaDS.FieldByName('IF_MDN').NewValue, varBoolean) then
cmdPublic.Parameters.ParamByName('IF_MDN').Value := DeltaDS.FieldByName('IF_MDN').OldValue
else
cmdPublic.Parameters.ParamByName('IF_MDN').Value := DeltaDS.FieldByName('IF_MDN').Value;
if not VarIsType(DeltaDS.FieldByName('IF_QRN').NewValue, varBoolean) then
cmdPublic.Parameters.ParamByName('IF_QRN').Value := DeltaDS.FieldByName('IF_QRN').OldValue
else
cmdPublic.Parameters.ParamByName('IF_QRN').Value := DeltaDS.FieldByName('IF_QRN').Value;
cmdPublic.Parameters.ParamByName('USER_ID').Value := DeltaDS.FieldByName('USER_ID').OldValue;
cmdPublic.Execute;
end
else if (UpdateKind = ukDelete) then
begin
cmdPublic.CommandText := 'DELETE FROM T_SYS_USER WHERE USER_ID=:USER_ID';
cmdPublic.Parameters.ParamByName('USER_ID').Value := DeltaDS.FieldByName('USER_ID').OldValue;
cmdPublic.Execute;
end;
Applied := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -