📄 frmemployee.pas
字号:
unit frmEmployee;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, LCDBOperatTool, ComCtrls, DBDateTimePicker,
DBCtrls, Grids, DBGrids, DBSelectDlgEdit, Mask, DB, ADODB;
type
TFormEmployee = class(TForm)
LCDBOperatTool1: TLCDBOperatTool;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
DBComboBoxSex: TDBComboBox;
DBDTPBirthday: TDBDateTimePicker;
DBDTPJobDay: TDBDateTimePicker;
DBEdtAddress: TDBEdit;
DBGrid1: TDBGrid;
ADOCon: TADOConnection;
ADOTDepart: TADOTable;
ADOTEduLevel: TADOTable;
ADOTJobType: TADOTable;
DSEmployee: TDataSource;
DSEduLevel: TDataSource;
DSDepart: TDataSource;
DSJobType: TDataSource;
DBEdtId: TDBEdit;
DBEdtName: TDBEdit;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
ADOQEmployee: TADOQuery;
CBField: TComboBox;
RBcontain: TRadioButton;
RBEqual: TRadioButton;
EdtValue: TEdit;
BtnSearch: TButton;
DBEdtDepartId: TDBEdit;
Button1: TButton;
BtnAll: TButton;
ADOQEmployeeId: TWideStringField;
ADOQEmployeeName: TWideStringField;
ADOQEmployeeSex: TBooleanField;
ADOQEmployeeBirthDay: TDateTimeField;
ADOQEmployeeAddress: TWideStringField;
ADOQEmployeeAccessionDate: TDateTimeField;
ADOQEmployeeJobTypeId: TSmallintField;
ADOQEmployeeDepartId: TWideStringField;
ADOQEmployeeEduLevelId: TSmallintField;
ADOQ: TADOQuery;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
var Continued: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
procedure BtnSearchClick(Sender: TObject);
procedure ADOTEmployeeSexGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ADOTEmployeeSexSetText(Sender: TField; const Text: String);
procedure Button1Click(Sender: TObject);
procedure BtnAllClick(Sender: TObject);
procedure ADOQEmployeeSexGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ADOQEmployeeSexSetText(Sender: TField; const Text: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormEmployee: TFormEmployee;
implementation
uses CommonFunc, untGlobal, untConfig, StrUtils;
{$R *.dfm}
procedure TFormEmployee.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TFormEmployee.LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
var Continued: Boolean);
begin
case Btn of
tbPost:
if LCDBOperatTool1.BtnMode = bmAdd then
begin
try
ADOQ.Close;
ADOQ.SQL.Text := 'select id from t_Employee where id=:id';
ADOQ.Parameters.ParamByName('id').Value := Trim(DBEdtId.Text);
ADOQ.Open;
if ADOQ.RecordCount >0 then
begin
LCShowMessage(Format(COLUMNREPLICATE,['员工编码']));
Continued := false;
end;
ADOQ.Close;
except
ADOQ.Close;
raise;
end;
end;
end;
case Btn of
tbPost:
begin
if not CheckInput(DBEdtId) then Exit;
if not CheckInput(DBComboBoxSex) then Exit;
if not CheckInput(DBDTPBirthday) then Exit;
if not CheckInput(DBDTPJobDay) then Exit;
if not CheckInput(DBEdtAddress) then Exit;
if not CheckInput(DBEdtId) then Exit;
if not CheckInput(DBEdtName) then Exit;
if not CheckInput(DBLookupComboBox1) then Exit;
if not CheckInput(DBLookupComboBox3) then Exit;
end;
end;
end;
procedure TFormEmployee.FormCreate(Sender: TObject);
begin
try
ADOCon.Close;
ADOCon.ConnectionString := GetConnectionString;
ADOCon.Open;
ADOTDepart.Open;
ADOTEduLevel.Open;
ADOTJobType.Open;
ADOQEmployee.Open;
except
LCShowMessage('数据库打开时发生错误!');
end;
end;
procedure TFormEmployee.FormDeactivate(Sender: TObject);
begin
ADOCon.Close;
end;
procedure TFormEmployee.BtnSearchClick(Sender: TObject);
var
LName, LCon, LValue: string;
LSql: string;
begin
if (not CheckInput(CBField)) or (not CheckInput(EdtValue)) then Exit;
LName := CBField.Items.ValueFromIndex[CBField.ItemIndex];
LCon := IfThen(RBEqual.Checked,' = ', 'like');
LValue := Trim(EdtValue.Text);
LValue := IfThen(RBEqual.Checked, QuotedStr(LValue), QuotedStr('%'+LValue+'%'));
LSql := Format('select * from t_Employee where %s %s %s',[LName, LCon, LValue]);
ADOQEmployee.Close;
ADOQEmployee.SQL.Text := LSql;
ADOQEmployee.Open;
end;
procedure TFormEmployee.ADOTEmployeeSexGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
if Sender.AsBoolean = true then
Text := '男'
else
Text := '女';
end;
procedure TFormEmployee.ADOTEmployeeSexSetText(Sender: TField;
const Text: String);
begin
if Text='男' then
Sender.AsBoolean := true
else
Sender.AsBoolean := false;
end;
procedure TFormEmployee.Button1Click(Sender: TObject);
var
LOldId: string;
i: Integer;
begin
DBEdtDepartId.Text := ShowFieldSelectDlg(ADOCon.ConnectionString, ADOTDepart.TableName);
ADOQ.Close;
ADOQ.SQL.Clear;
ADOQ.SQL.Add('select top 1 id from t_employee order by id desc');
ADOQ.Open;
LOldId := ADOQ.FieldByName('id').AsString;
i := StrToIntDef(RightStr(LOldId, 5), 0);
Inc(i);
DBEdtId.Text := 'YG' + MidStr(Trim(DBEdtDepartId.Text), 3, 3) + Format('%.5d',[i]);
ADOQ.Close;
end;
procedure TFormEmployee.BtnAllClick(Sender: TObject);
begin
ADOQEmployee.Close;
ADOQEmployee.SQL.Text := 'select * from t_employee';
ADOQEmployee.Open;
end;
procedure TFormEmployee.ADOQEmployeeSexGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
if Sender.AsBoolean = true then
Text := '男'
else
Text := '女';
end;
procedure TFormEmployee.ADOQEmployeeSexSetText(Sender: TField;
const Text: String);
begin
if Text = '男' then
Sender.AsBoolean := true
else
Sender.AsBoolean := false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -