📄 unemployee.pas
字号:
unit UnEmployee;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ExtCtrls, ComCtrls, ToolWin, ADODB,
Buttons,strutils, ImgList;
type
TEmployee_Frm = class(TForm)
Panel1: TPanel;
Label2: TLabel;
Edit1: TEdit;
Label4: TLabel;
Edit2: TEdit;
Label1: TLabel;
Label3: TLabel;
Label5: TLabel;
Edit3: TEdit;
Label6: TLabel;
Edit4: TEdit;
Cbx_Dept: TComboBox;
Panel2: TPanel;
DS: TDataSource;
DBGrid1: TDBGrid;
Cbx_Purview: TComboBox;
AdoRY: TADOQuery;
SpeedButton1: TSpeedButton;
ImageList1: TImageList;
Panel3: TPanel;
ToolBar1: TToolBar;
Tbnadd: TToolButton;
Tbnedt: TToolButton;
Tbnview: TToolButton;
Tbndel: TToolButton;
Tbncel: TToolButton;
Tbnsv: TToolButton;
TbnFirst: TToolButton;
TbnPrior: TToolButton;
TbnNext: TToolButton;
TbnLast: TToolButton;
ToolButton15: TToolButton;
ToolButton1: TToolButton;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TbnaddClick(Sender: TObject);
procedure TbnsvClick(Sender: TObject);
procedure TbnedtClick(Sender: TObject);
procedure TbndelClick(Sender: TObject);
procedure TbnFirstClick(Sender: TObject);
procedure TbnPriorClick(Sender: TObject);
procedure TbnNextClick(Sender: TObject);
procedure TbnLastClick(Sender: TObject);
procedure ToolButton15Click(Sender: TObject);
procedure TbncelClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
procedure AdoRYNewRecord(DataSet: TDataSet);
procedure AdoRYFilterRecord(DataSet: TDataSet; var Accept: Boolean);
procedure AdoRYRecordChangeComplete(DataSet: TCustomADODataSet;
const Reason: TEventReason; const RecordCount: Integer;
const Error: Error; var EventStatus: TEventStatus);
procedure AdoRYRecordsetChangeComplete(DataSet: TCustomADODataSet;
const Reason: TEventReason; const Error: Error;
var EventStatus: TEventStatus);
procedure AdoRYWillMove(DataSet: TCustomADODataSet;
const Reason: TEventReason; var EventStatus: TEventStatus);
procedure TbnviewClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure Cbx_PurviewClick(Sender: TObject);
private
{ Private declarations }
Function ControlEdit():boolean;
Function DelUser():boolean;
public
{ Public declarations }
procedure listrec(adotmp:TADOQuery);
end;
var
Employee_Frm: TEmployee_Frm;
implementation
uses Undm, UnFuntion, UnEmployeeFind, UnDept, Math;
{$R *.dfm}
procedure TEmployee_Frm.FormShow(Sender: TObject);
begin
with adory do
begin
close;
sql.Clear;
sql.Text:='select * from abc where 人员编号<>''0001'' order by 人员编号';
Prepared:=True;
Open;
end;
with dm.AQ1 do
begin
Close;
SQL.Text:='Select * from T_Employee where no<>''0001'' order by No';
Prepared:=True;
Open;
end;
Tbncel.Click;
listrec(dm.AQ1);
end;
procedure TEmployee_Frm.FormCreate(Sender: TObject);
var
ado_tmp:TADOQuery;
begin
TOP:=5; LEFT:=5; width:=886;Height:= 606;
with ado_tmp do
begin
ado_tmp:=TADOQuery.Create(self);
try
SQL.Clear;
Connection:=DM.AdoConn;
SQL.Text:='select * from T_Dept';
Prepared:=true;
Open;
while not Recordset.EOF do begin
Cbx_Dept.Items.Add(Fieldbyname('DeptNo').AsString+'-'+Fieldbyname('DeptName').AsString);
Next;
end;
Close;
finally
Free;
end;
end;
if not AnsiContainsText(UserName,'admin') then
begin
Cbx_Purview.Enabled:=False;
end;
end;
procedure TEmployee_Frm.TbnaddClick(Sender: TObject);
begin
with dm.AQ1 do
begin
if not Active then
begin
Close;
SQL.Text:='Select * from T_Employee';
Prepared:=True;
Open;
end;
try
DM.AdoConn.BeginTrans;
except
dm.AdoConn.Cancel;
DM.AdoConn.BeginTrans;
end;
DBGrid1.Enabled:=False;
Append;
end;
Cbx_Purview.ItemIndex:=0;
tbnadd.Enabled:=False;
Tbnedt.Enabled:=False;
Tbnview.Enabled:=False;
Tbndel.Enabled:=False;
Tbncel.Enabled:=True;
Tbnsv.Enabled:=True;
TbnFirst.Enabled:=False;
TbnPrior.Enabled:=False;
TbnNext.Enabled:=False;
TbnLast.Enabled:=False;
end;
procedure TEmployee_Frm.TbnsvClick(Sender: TObject);
var
ado_tmp:TADOQuery;
begin
ado_tmp:=nil;
if not ControlEdit then exit;
with dm.AQ1 do
begin
if Not Active then exit;
if not ((DM.AQ1.State in [dsInsert]) or (DM.AQ1.State in [dsEdit])) then exit;
case DM.AQ1.State of
dsInsert:begin
try
ado_tmp:=TADOQuery.Create(self);
ado_tmp.Connection:=dm.AdoConn;
ado_tmp.SQL.Clear;
ado_tmp.SQL.Text:='select * from T_Employee where Username='+quotedstr(Edit1.Text);
ado_tmp.Prepared:=true;
ado_tmp.Open;
if ado_tmp.Recordset.RecordCount>0 then
if MessageBox(0,'此人名已经存在,你真的想增加吗?','提示',MB_YESNO)=idno then
begin
Tbncel.Click;
exit;
end;
finally
ado_tmp.Free;
end;
FieldByName('NO').AsString:=FormatMe(Qbh('T_Employee','No'),4);
FieldByName('UserName').AsString:=Edit1.Text;
FieldByName('Password').AsString:=Edit2.Text;
FieldByName('Purview').AsInteger:=Cbx_Purview.ItemIndex;
FieldByName('DeptNo').AsString:=copy(Cbx_Dept.Text,1,2);
FieldByName('Prefession').AsString:=Edit3.Text;
FieldByName('Remark').AsString:=Edit4.Text;
if cbx_Purview.ItemIndex=0 then
FieldByName('Purview2').AsString:='普通用户'
else
FieldByName('Purview2').AsString:='高级用户';
end;
dsEdit:begin
FieldByName('UserName').AsString:=Edit1.Text;
//FieldByName('Password').AsString:=Edit2.Text;
FieldByName('Purview').AsInteger:=Cbx_Purview.ItemIndex;
FieldByName('DeptNo').AsString:=copy(Cbx_Dept.Text,1,2);
FieldByName('Prefession').AsString:=Edit3.Text;
FieldByName('Remark').AsString:=Edit4.Text;
if cbx_Purview.ItemIndex=0 then
FieldByName('Purview2').AsString:='普通用户'
else
FieldByName('Purview2').AsString:='高级用户';
end;
end;
try
DBGrid1.Enabled:=True;
Update;
Refresh;
dm.AdoConn.CommitTrans;
with AdoRY do
begin
Active:=not Active;
SQL.Text:='select * from abc order by 人员编号';
Prepared:=True;
Open;
end;
except
DBGrid1.Enabled:=True;
dm.AQ1.Cancel;
dm.AdoConn.RollbackTrans;
end;
end;
{try
adory.Close;
adory.SQL.Text:='select * from abc order by 人员编号';
adory.Prepared:=true;
adory.Open;
adory.RecNo:=dm.AQ1.RecNo;
AdoRY.Refresh;
except end; }
Cbx_Purview.Enabled:=True;
tbnadd.Enabled:=True;
Tbnedt.Enabled:=True;
Tbnview.Enabled:=True;
Tbndel.Enabled:=True;
Tbncel.Enabled:=False;
Tbnsv.Enabled:=False;
TbnFirst.Enabled:=True;
TbnPrior.Enabled:=True;
TbnNext.Enabled:=True;
TbnLast.Enabled:=True;
end;
procedure TEmployee_Frm.TbnedtClick(Sender: TObject);
begin
if not AnsiContainsText(UserName,'admin') then
begin
if dm.AQ1.FieldByName('no').AsString=copy(UserName,1,4) then
begin
Cbx_Purview.Enabled:=False;
end else begin
if dm.AQ1.FieldByName('purview').AsString='1' then begin
Application.MessageBox('对不起,你没有权限!','信息',MB_OK+MB_ICONWARNING);
exit ;end
else
Cbx_Purview.Enabled:=False;
end;
end
else
Cbx_Purview.Enabled:=True;
tbnadd.Enabled:=False;
Tbnedt.Enabled:=False;
Tbnview.Enabled:=False;
Tbndel.Enabled:=False;
Tbncel.Enabled:=True;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -