📄 umain.pas
字号:
MainMenu_OutTxt.Enabled := false;
MainMenu_OutEXCEL.Enabled := false;
MainMenu_OutHTML.Enabled := false;
end;
procedure TForm_Main.PMEmployeeOK;
begin
//职工表右键菜单
AddNewEmployee.Enabled := true;
EditEmployee.Enabled := true;
DeleteEmployee.Enabled := true;
MoveOtherDept.Enabled := true;
Family.Enabled := true;
Leave.Enabled := true;
Award.Enabled := true;
Cultivate.Enabled := true;
MoveToDept.Enabled := true;
WorkStoy.Enabled := true;
AllEmployeeNumber.Enabled := true;
OutTxt.Enabled := true;
OutEXCEL.Enabled := true;
OutHTML.Enabled := true;
//主菜单-编辑
MainMenu_AddNewEmployee.Enabled := true;
MainMenu_EditEmployee.Enabled := true;
MainMenu_DeleteEmployee.Enabled := true;
MainMenu_MoveOtherDept.Enabled := true;
MainMenu_Family.Enabled := true;
MainMenu_Leave.Enabled := true;
MainMenu_Award.Enabled := true;
MainMenu_Plant.Enabled := true;
MainMenu_MoveToDept.Enabled := true;
MainMenu_WorkStoy.Enabled := true;
MainMenu_AllEmployeeNumber.Enabled := true;
MainMenu_OutTxt.Enabled := true;
MainMenu_OutEXCEL.Enabled := true;
MainMenu_OutHTML.Enabled := true;
end;
procedure TForm_Main.FormCreate(Sender:TObject);
var
systemName:string;
begin
//获取程序执行文件路径
AppPath := ExtractFilePath(Application.ExeName);
//初始化选中部门名称
FirstDeptName := '';
SecondDeptName := '';
//连接数据库
try
ADOC1.Connected := false;
ADOC1.Connected := TRUE;
except
beep;
showmessage('数据库连接失败,程序即将关闭');
close;
end;
//显示登录窗口
Form_UserLogin := TForm_UserLogin.Create(self);
Form_UserLogin.ShowModal;
username := Form_UserLogin.username;
form_userlogin.Free;
//开始计算载入时间
RunStartTime;
// userName := Form_UserLogin.username;
//初始化职工表右键菜单
PMEmployeeBeginning;
with TabSystem do
begin
close;
open;
first;
systemname := fieldByName('systemname').AsString;
close;
end;
Form_main.Caption := systemName;
ComboBox1.Clear;
ComboBox1.Items.Add('按职工编号 查询');
ComboBox1.Items.Add('按姓名模糊查询');
ComboBox1.Text := '按工号查询';
end;
//=========================================
// 载入部门树
//=========================================
procedure TForm_Main.LoadDataForDeptTree;
var
RootNode, FirstDeptNode, SecondDeptNode:TTreeNode;
FirstDeptName, SecondDeptname:string;
PFirstDeptdata:PMyData;
PSecondDeptdata:PMyData;
begin
Dept_tree.Color := RGB($FF, $FF, $FF);
Dept_tree.Items.Clear;
//载入目录树根名称;
with TabSystem do
begin
close;
open;
first;
Corpname := fieldByName('CorpName').AsString; //我是从数据库读公司名称的
close;
end; // with
RootNode := Dept_Tree.Items.Add(nil, Corpname);
RootNode.ImageIndex := 59;
RootNode.SelectedIndex := 59;
//加载一级部门
with Tabdept do
begin
close;
open;
first;
while not eof do
begin
if FieldByName('dept_type').AsBoolean then
begin
PFirstDeptdata := new(PMyData);
PFirstDeptdata.id := fieldByName('dept_id').AsInteger;
PFirstDeptdata.nodetype := 0;
FirstDeptName := FieldByName('dept_name').AsString;
FirstDeptNode := Dept_Tree.Items.AddChildObject(RootNode, FirstDeptName,
PFirstDeptdata);
FirstDeptNode.ImageIndex := 48;
FirstDeptNode.SelectedIndex := 48;
next;
//加载二级部门;
with Tabdept2 do
begin
close;
open;
first;
while not eof do
if fieldByName('dept_upid').AsInteger = PFirstDeptdata.id then
begin
PSecondDeptdata := new(PMyData);
PSecondDeptdata.id := fieldByName('dept_id').AsInteger;
PSecondDeptdata.nodetype := 1;
SecondDeptName := FieldByName('dept_name').AsString;
SecondDeptNode := Dept_Tree.Items.AddChildObject(FirstDeptNode,
SecondDeptName, PSecondDeptdata);
SecondDeptNode.ImageIndex := 51;
SecondDeptNode.SelectedIndex := 51;
next;
end
else
next;
close;
end;
end
else
next;
end;
close;
end; // with
RootNode.Expanded := true; //设置根目录默认打开
end;
//================================
//设置新编号
//================================
function TForm_Main.GetNewID(var Number, idlength:integer):string;
var
i, j:integer;
NewEmployeeid:string;
begin
j := length(inttostr(Number));
NewEmployeeID := '';
if j > Idlength then
begin
beep;
showmessage('传入的参数有误,不能生成新编号');
exit;
result := '';
end;
for i := 1 to idlength - j do
begin
NewEmployeeID := NewEmployeeID + '0';
end;
NewEmployeeID := NewEmployeeID + inttostr(Number);
result := NewEmployeeID;
end;
//==================================
// 将生成的新旧职工编号存入新旧编号表中
//==================================
procedure TForm_Main.InsertDataToNewEmployeeID(var newid, oldid:string);
begin
try
with ADOQ1 do
begin
close;
sql.Clear;
sql.Add('insert into NewOldSerialNumber (NewEmployeeID,OldEmployeeID) Values ');
sql.Add('(''' + newid + '''' + ',' + '''' + oldid + ''')');
ExecSQL;
close;
//showmessage('插入成功');
end;
except
beep;
showmessage('打开新旧编号表失败');
end;
end;
//==================================
// 修复其它关联表格中的职工编号
//==================================
procedure TForm_Main.UpdateDataToRecord(var newid, oldid:string);
begin
//修复家庭成员表中的职工编号
try
with TabFamily do
begin
close;
open;
if RecordCount > 0 then
begin
first;
while not eof do
begin
if fieldbyname('Family_Employeeid').AsString = Oldid then
begin
Update;
TabFamily.edit;
fieldbyname('Family_Employeeid').AsString := NewID;
POST;
end;
next;
end;
end;
close;
end;
except
beep;
showmessage('修复家庭成员表失败');
end;
//修复培训表中的职工编号
try
with TabCultivate do
begin
close;
open;
if RecordCount > 0 then
begin
first;
while not eof do
begin
if fieldbyname('Cultivate_EmployeeID').AsString = Oldid then
begin
Update;
edit;
fieldbyname('Cultivate_EmployeeID').AsString := NewID;
POST;
end;
next;
end;
end;
close;
end;
except
beep;
showmessage('修复培训表失败');
end;
//修复奖惩表中的职工编号
try
with TabAward do
begin
close;
open;
if RecordCount > 0 then
begin
first;
while not eof do
begin
if fieldbyname('AP_Employeeid').AsString = Oldid then
begin
Update;
edit;
fieldbyname('AP_Employeeid').AsString := NewID;
POST;
end;
next;
end;
end;
close;
end;
except
beep;
showmessage('修复奖惩表失败');
end;
//修复请假表中的职工编号
try
with TabLeave do
begin
close;
open;
if RecordCount > 0 then
begin
first;
while not eof do
begin
if fieldbyname('Leave_Employeeid').AsString = Oldid then
begin
Update;
edit;
fieldbyname('Leave_Employeeid').AsString := NewID;
POST;
end;
next;
end;
end;
close;
end;
except
beep;
showmessage('修复请假表失败');
end;
//修复调动表中的职工编号
try
with TabMoveTo do
begin
close;
open;
if RecordCount > 0 then
begin
first;
while not eof do
begin
if fieldbyname('MT_Employeeid').AsString = Oldid then
begin
Update;
edit;
fieldbyname('MT_Employeeid').AsString := NewID;
POST;
end;
next;
end;
end;
close;
end;
except
beep;
showmessage('修复调动表失败');
end;
//修复工作单位表中的职工编号
try
with TabWorkStoy do
begin
close;
open;
if RecordCount > 0 then
begin
first;
while not eof do
begin
if fieldbyname('WS_Employeeid').AsString = Oldid then
begin
Update;
edit;
fieldbyname('WS_Employeeid').AsString := NewID;
POST;
end;
next;
end;
end;
close;
end;
except
beep;
showmessage('修复工作单位表失败');
end;
end;
function TForm_Main.RUNstoptime:Cardinal;
begin
FstopTime := GetTickCount;
Result := FStopTime - FStartTime;
end;
//=========================================
// 加载按字段排序过程
//=========================================
procedure TForm_Main.Compositor(Column:TColumnEh);
var
field_sort:string;
begin
with Column do
begin
if FieldName = '' then exit;
case Title.SortMarker of
smNoneEh:
begin
Title.SortMarker := smDownEh;
field_sort := Column.FieldName + ' ASC';
end;
smDownEh:field_sort := Column.FieldName + ' DESC';
smUpEh:field_sort := Column.FieldName + ' ASC';
end;
try
ADOQDBGrid.Sort := field_sort
except
beep;
showmessage('排序不成功');
end;
end;
end;
//=========================================
//调用部门设置
//=========================================
procedure TForm_Main.N5Click(Sender:TObject);
begin
Form_DeptSet := TForm_DeptSet.Create(self);
Form_DeptSet.ShowModal;
Form_DeptSet.Free;
LoadDataForDeptTree;
end;
//=========================================
//调用系统设置
//=========================================
procedure TForm_Main.N1Click(Sender:TObject);
begin
Form_SystemSet := TForm_SystemSet.Create(self);
Form_SystemSet.ShowModal;
Form_SystemSet.Free;
LoadDataForDeptTree;
end;
//=========================================
//调用员工资料输入预设置
//=========================================
procedure TForm_Main.N6Click(Sender:TObject);
begin
Form_PrepSet := TForm_PrepSet.Create(self);
Form_PrepSet.ShowModal;
Form_PrepSet.Free;
end;
//=========================================
//调用增加职工窗口
//=========================================
procedure TForm_Main.MainMenu_AddNewEmployeeClick(Sender:TObject);
begin
form_employee := TForm_employee.Create(self);
form_employee.Caption := '加入新职工';
form_employee.CEmployee_FirstDept.Text := FirstDeptName;
form_employee.CEmployee_SecondDept.Text := SecondDeptName;
form_employee.ShowModal;
form_employee.Free;
end;
procedure TForm_Main.N4Click(Sender:TObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -