📄 baseuser.pas
字号:
unit BaseUser;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseInfoBase, wwDialog, wwidlg, DB, ADODB, ActnList, ComCtrls,
ToolWin, Grids, DBGrids, ExtCtrls, StdCtrls, DBCtrls, Mask, Wwdbigrd,
Wwdbgrid, Buttons, DBGridEh;
type
TfrmBaseUser = class(TfrmBaseInfoBase)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit2: TDBEdit;
DBEdit1: TDBEdit;
DBMemo1: TDBMemo;
Splitter1: TSplitter;
dbgGroup: TDBGrid;
QBaseInfofCode: TWideStringField;
QBaseInfofName: TWideStringField;
QBaseInfofPWD: TWideStringField;
QBaseInfofStatus: TBooleanField;
QBaseInfofNotes: TWideStringField;
QBaseInfofFlag: TBooleanField;
Label4: TLabel;
DBCheckBox1: TDBCheckBox;
Label5: TLabel;
DBCheckBox2: TDBCheckBox;
Label6: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
QUserGroup: TADOQuery;
QBaseInfofID: TAutoIncField;
QUserGroupfUserID: TIntegerField;
QUserGroupfGroupId: TIntegerField;
QGroup: TADOQuery;
dsUserGroup: TDataSource;
acAddLine: TAction;
acDelLine: TAction;
wwLookupDlgGroup: TwwLookupDialog;
Label7: TLabel;
DBEdit3: TDBEdit;
QUserGroupfrecno: TAutoIncField;
DBGridEh1: TDBGridEh;
QUserGroupcGroupName: TStringField;
procedure QBaseInfofCodeValidate(Sender: TField);
procedure dsBaseInfoStateChange(Sender: TObject);
procedure acAddLineExecute(Sender: TObject);
procedure acDelLineExecute(Sender: TObject);
procedure QBaseInfoAfterInsert(DataSet: TDataSet);
procedure QBaseInfoBeforePost(DataSet: TDataSet);
procedure FormCreate(Sender: TObject);
procedure QBaseInfoBeforeCancel(DataSet: TDataSet);
procedure dsBaseInfoDataChange(Sender: TObject; Field: TField);
procedure acExitExecute(Sender: TObject);
procedure acSaveExecute(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure QBaseInfoAfterPost(DataSet: TDataSet);
procedure acModifyExecute(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmBaseUser : TfrmBaseUser;
implementation
uses DataModule;
{$R *.dfm}
procedure TfrmBaseUser.QBaseInfofCodeValidate(Sender: TField);
begin
inherited;
if not IsUnique('Code', Sender.asString) then
begin
showmessage('代码重复,请重新输入');
abort;
end;
end;
procedure TfrmBaseUser.dsBaseInfoStateChange(Sender: TObject);
var
i : Integer;
begin
inherited;
acModify.Enabled := bCanModify and not acSave.Enabled
and not (Uppercase(QBaseInfo.FieldbyName('fCode').asString) = 'ADMIN');
acDelete.Enabled := bCanDelete
and not (Uppercase(QBaseInfo.FieldbyName('fCode').asString) = 'ADMIN');
with Panel2 do
for i := 0 to ControlCount - 1 do
if Controls[i] is TDBEdit then
(Controls[i] as TDBEdit).ReadOnly := not acSave.Enabled
else if Controls[i] is TDBMemo then
(Controls[i] as TDBMemo).ReadOnly := not acSave.Enabled;
acAddLine.Enabled := acSave.Enabled and not (QBaseInfo.State = dsInsert);
acDelLine.Enabled := acSave.Enabled and not (QBaseInfo.State = dsInsert);
self.DBCheckBox1.Enabled:=not (Uppercase(QBaseInfo.FieldbyName('fCode').asString) = 'ADMIN');
self.DBCheckBox2.Enabled:=not (Uppercase(QBaseInfo.FieldbyName('fCode').asString) = 'ADMIN');
end;
procedure TfrmBaseUser.acAddLineExecute(Sender: TObject);
begin
inherited;
//QUserGroup.DisableControls;
QUserGroup.Append;
QUserGroup.FieldValues['fGroupID']:=self.QGroup.FieldValues['fID'];
QUserGroup.FieldByName('fUserID').ReadOnly:=False;
QUserGroup.FieldValues['fUserID']:=self.QBaseInfo.FieldValues['fID'];
QUserGroup.FieldByName('fUserID').ReadOnly:=True;
//QUserGroup.EnableControls;
//QUserGroup.FieldbyName('fUserID').asInteger := 61;//QBaseInfo.FieldbyName('fID').asInteger;
//QUserGroup.FieldbyName('fGroupID').asInteger := 36;//QGroup.FieldbyName('fID').asInteger;
//QUserGroup.UpdateBatch();
//ShowMessage('jinxian');
exit;
if wwLookupDlgGroup.Execute then
if not QUserGroup.Locate('fGroupID', QGroup.FieldbyName('fID').asInteger, []) then
begin
QUserGroup.Append;
QUserGroup.FieldbyName('fUserID').asInteger := 1;//QBaseInfo.FieldbyName('fID').asInteger;
QUserGroup.FieldbyName('fGroupID').asInteger := 1;//QGroup.FieldbyName('fID').asInteger;
//QUserGroup.UpdateBatch();
end;
end;
procedure TfrmBaseUser.acDelLineExecute(Sender: TObject);
begin
inherited;
if QUserGroup.RecordCount > 0 then
if Messagedlg('您确定要删除当前组吗?', mtWarning, [mbOk, mbCancel], 0) = mrOk then
QUserGroup.Delete;
end;
procedure TfrmBaseUser.QBaseInfoAfterInsert(DataSet: TDataSet);
begin
inherited;
QBaseInfo.FieldbyName('fStatus').asBoolean := True;
QBaseInfo.FieldbyName('fFlag').asBoolean := false;
DBEdit1.SetFocus;
end;
procedure TfrmBaseUser.QBaseInfoBeforePost(DataSet: TDataSet);
begin
if (QBaseInfo.FieldbyName('fCode').asString = '') then
begin
showmessage('代码不能为空,请重新输入!');
abort;
end;
QUserGroup.UpdateBatch();
inherited;
end;
procedure TfrmBaseUser.FormCreate(Sender: TObject);
begin
inherited;
QUserGroup.Open;
end;
procedure TfrmBaseUser.QBaseInfoBeforeCancel(DataSet: TDataSet);
begin
inherited;
QUserGroup.CancelBatch()
end;
procedure TfrmBaseUser.dsBaseInfoDataChange(Sender: TObject;
Field: TField);
begin
inherited;
dsBaseInfoStateChange(self)
end;
procedure TfrmBaseUser.acExitExecute(Sender: TObject);
begin
Self.QUserGroup.UpdateBatch();
inherited;
end;
procedure TfrmBaseUser.acSaveExecute(Sender: TObject);
begin
//self.QUserGroup.DataSource:=nil;
//self.QUserGroup.DisableControls;
//ShowMessage(IntToStr(Self.QUserGroup.FieldValues['fGroupID']));
//self.QUserGroup.EnableControls;
//ShowMessage(IntToStr(Self.QUserGroup.FieldValues['fGroupID']));
//self.QUserGroup.DataSource:=self.dsBaseInfo;
QBaseInfo.Edit;
QBaseInfo.Post;
QBaseInfo.Edit;
inherited;
self.QUserGroup.UpdateBatch();
Self.DBGridEh1.Enabled:=False;
end;
procedure TfrmBaseUser.Button1Click(Sender: TObject);
begin
inherited;
self.QUserGroup.DisableControls;
self.QUserGroup.UpdateBatch();
self.QUserGroup.EnableControls;
end;
procedure TfrmBaseUser.QBaseInfoAfterPost(DataSet: TDataSet);
begin
inherited;
self.QUserGroup.UpdateBatch();
end;
procedure TfrmBaseUser.acModifyExecute(Sender: TObject);
begin
inherited;
self.DBGridEh1.Enabled:=True;
end;
procedure TfrmBaseUser.FormDestroy(Sender: TObject);
begin
inherited;
frmBaseUser := nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -