u_gwbj.pas
来自「一个电力企业的后台管理程序」· PAS 代码 · 共 1,240 行 · 第 1/3 页
PAS
1,240 行
strNodeName := FieldByName('Position').AsString; //总务科
MyTNode1 := TVPosition.Items.AddChildObject(Node,strNodeName,MyRecPtr);
MyTNode1.SelectedIndex :=8;
TVPosition.Items.AddChild(MyTNode1,'');
Next;
end;
Close;
end;
end;
end;
procedure TFrm_Gwsz.N_NewGwClick(Sender: TObject); //新建岗位
var
cSign :Char;
begin
if TVPosition.Selected.Parent <>nil then
begin
cSign := PMyRec(TVPosition.Selected.Data)^.Sign;
if cSign ='1' then Exit;
end;
FillList;
Edit2.Text := '';
if TVPosition.Selected.Parent =nil then Edit1.Text := ''
else Edit1.Text := PMyRec(TVPosition.Selected.Data)^.Position ;
CmbOrgan.Text := '';
DTP_CL.DateTime := Now;
Mm_Prop.Text := '';
Mm_Note.Text := '';
Nb_Gw.PageIndex :=1;
LBGwPerson.Clear ;
cSave :='0';
Edit2.SetFocus ;
StBar.Panels[0].Text :='新建岗位';
end;
procedure TFrm_Gwsz.N_DelGwClick(Sender: TObject); //删除岗位
var
cSign :Char;
begin
Try
if TVPosition.Selected.Parent =nil then Exit;
cSign := PMyRec(TVPosition.Selected.Data)^.Sign;
if cSign ='1' then Exit;
if TVPosition.Selected.HasChildren then
begin
MessageBox(0,'此岗位有下级岗位或下属的人员,不能删除!','提示...'
,MB_ICONEXCLAMATION+MB_OK); Exit;
end;
With Qry_pub1 do
begin
Close;
Sql.Clear ;
Sql.Add ('Delete DFWF_Position Where Position =:p1');
Sql.Add ('Delete DFWF_PeoplePos Where Position =:p1');
ParamByName('p1').AsString := PMyRec(TVPosition.Selected.Data)^.Position ;
ExecSql;
Close;
end;
TVPosition.Selected.Delete ;
Except
MessageBox(0,'删除出错,请重试!','提示...',MB_ICONEXCLAMATION+MB_OK);
end;
StBar.Panels[0].Text :='';
end;
procedure TFrm_Gwsz.N_DelPersonClick(Sender: TObject); //删除人员
var
cSign :Char;
begin
Try
if TVPosition.Selected.Parent =nil then Exit;
cSign := PMyRec(TVPosition.Selected.Data)^.Sign;
if cSign ='0' then Exit;
With Qry_pub1 do
begin
Close;
Sql.Clear ;
Sql.Add ('Delete DFWF_PeoplePos Where (WorkID =:p1) and (Position =:p2)');
ParamByName('p1').AsString := PMyRec(TVPosition.Selected.Data)^.WorkID ;
ParamByName('p2').AsString := PMyRec(TVPosition.Selected.Data)^.Position ;
ExecSql;
Close;
end;
TVPosition.Selected.Delete ;
Except
MessageBox(0,'删除出错,请重试!','提示...',MB_ICONEXCLAMATION+MB_OK);
end;
StBar.Panels[0].Text :='';
end;
procedure TFrm_Gwsz.N_PropertyClick(Sender: TObject); //属性
var
cSign :Char;
sSex :String;
begin
if TVPosition.Selected.Parent =nil then Exit;
cSign := PMyRec(TVPosition.Selected.Data)^.Sign;
if cSign ='0' then
begin
FillList;
ListGwPerson(PMyRec(TVPosition.Selected.Data)^.Position);
ListAuth(PMyRec(TVPosition.Selected.Data)^.Position);
With Qry_pub1 do
begin
Close;
Sql.Clear ;
Sql.Add ('Select * From DFWF_Position Where Position =:p1');
ParamByName('p1').AsString := PMyRec(TVPosition.Selected.Data)^.Position;
Open;
Edit2.Text := FieldByName('Position').AsString;
Edit1.Text := FieldByName('UpperPos').AsString;
CmbOrgan.Text := FieldByName('Organ').AsString;
if FieldByName('CreateTime').IsNull then DTP_CL.DateTime := Now
else DTP_CL.DateTime := FieldByName('CreateTime').AsDateTime;
Mm_Prop.Text := FieldByName('Property').AsString;
Mm_Note.Text := FieldByName('Note').AsString;
Cmb_cs1.ItemIndex := Cmb_cs1.Items.IndexOfName(FieldByName('AwakeWorkId_1').AsString);
Cmb_cs2.ItemIndex := Cmb_cs2.Items.IndexOfName(FieldByName('AwakeWorkId_2').AsString);
Cmb_cs3.ItemIndex := Cmb_cs3.Items.IndexOfName(FieldByName('AwakeWorkId_3').AsString);
Close;
end;
Nb_Gw.PageIndex :=1;
cSave :='1';
Edit2.SetFocus ;
StBar.Panels[0].Text :='岗位属性编辑';
end
else
if cSign ='1' then
begin
With Qry_pub1 do
begin
Close;
Sql.Clear ;
Sql.Add ('Select * From DFWF_People Where WorkId =:p1');
ParamByName('p1').AsString := PMyRec(TVPosition.Selected.Data)^.WorkID ;
Open;
Edit3.Text := FieldByName('WorkId').AsString;
Edit4.Text := FieldByName('Name').AsString;
sSex := FieldByName('Sex').AsString;
if sSex ='M' then Cmb_Sex.ItemIndex := Cmb_Sex.Items.IndexOf('男')
else if sSex ='F' then Cmb_Sex.ItemIndex := Cmb_Sex.Items.IndexOf('女')
else Cmb_Sex.ItemIndex := -1;
Edit5.Text := FieldByName('Password').AsString;
if FieldByName('CreateTime').IsNull then DTP_Person.DateTime := Now
else DTP_Person.DateTime := FieldByName('CreateTime').AsDateTime;
Mm_personProp.Text := FieldByName('Property').AsString;
Mm_PersonNt.Text := FieldByName('Note').AsString;
Edt_Phone1.Text := FieldByName('Phone1').AsString;
Edt_Phone2.Text := FieldByName('Phone2').AsString;
Edt_Phone3.Text := FieldByName('Phone3').AsString;
Cmb_AcdGroup.ItemIndex := Cmb_AcdGroup.Items.IndexOfName(FieldByName('AcdGroup').AsString);
Cmb_SkillLevel.ItemIndex := Cmb_SkillLevel.Items.IndexOfName(FieldByName('SkillLevel').AsString);
Close;
end;
Nb_Gw.PageIndex :=2;
Edit3.SetFocus ;
StBar.Panels[0].Text :='人员属性编辑';
end;
end;
procedure TFrm_Gwsz.TVPositionChange(Sender: TObject; Node: TTreeNode);
begin
cSave :='2';
Nb_Gw.PageIndex :=0;
end;
procedure TFrm_Gwsz.ListAuth(sPosition :String);
var
sPersonInfo :String;
sAuth :String;
ii :Integer;
begin
LbAuthSel.Clear;
With Qry_pub1 do
begin
Close;
Sql.Clear ;
Sql.Add ('Select Authority From DFWF_Position');
Sql.Add ('Where Position =:p1');
ParamByName('p1').AsString := sPosition;
Open;
if Not IsEmpty then
Begin
sAuth := FieldByName('Authority').AsString;
For ii :=1 to Length(sAuth) do
begin
if sAuth[ii] ='1' then
begin
Close;
Sql.Clear ;
Sql.Add ('Select * From AuthBit');
Sql.Add ('Where AuthBit =:p1');
ParamByName('p1').AsInteger := ii;
Open;
if Not IsEmpty then
begin
sPersonInfo := FieldByName('AuthBit').AsString + ','
+FieldByName('Explain').AsString ;
LbAuthSel.Items.Append(sPersonInfo);
end;
end;
end;
end;
Close;
end;
end;
procedure TFrm_Gwsz.ListGwPerson(sPosition :String);
var
sPersonInfo :String;
sSex :String;
begin
LBGwPerson.Clear;
With Qry_pub1 do
begin
Close;
Sql.Clear ;
Sql.Add ('Select t2.* From DFWF_PeoplePos t1,DFWF_People t2');
Sql.Add ('Where (t1.WorkId =t2.WorkId) and (t1.Position =:p1)');
ParamByName('p1').AsString := sPosition;
Open;
if Not IsEmpty then
Begin
First;
While Not Eof do
begin
sSex :='';
sSex := FieldByName('Sex').AsString;
if sSex ='M' then sSex :='男'
else if sSex ='F' then sSex :='女';
sPersonInfo := FieldByName('WorkId').AsString + ','
+FieldByName('Name').AsString + ','
+ sSex ;
LBGwPerson.Items.Append(sPersonInfo);
Next;
end;
end;
Close;
end;
end;
procedure TFrm_Gwsz.FillList;
var
sPersonInfo :String;
sSex :String;
Begin
CmbOrgan.Clear ;
LBAllPerson.Clear ;
With Qry_pub1 do
begin
Close;
Sql.Clear ;
Sql.Add ('Select OrganName From DFWF_Organ');
Open;
if Not IsEmpty then
Begin
First;
While Not Eof do
begin
CmbOrgan.Items.Append(FieldByName('OrganName').AsString);
Next;
end;
end;
Close;
Sql.Clear ;
Sql.Add ('Select * From DFWF_People');
Open;
if Not IsEmpty then
Begin
First;
While Not Eof do
begin
sSex :='';
sSex := FieldByName('Sex').AsString;
if sSex ='M' then sSex :='男'
else if sSex ='F' then sSex :='女';
sPersonInfo := FieldByName('WorkId').AsString + ','
+FieldByName('Name').AsString + ','
+ sSex ;
LBAllPerson.Items.Append(sPersonInfo);
Next;
end;
end;
Close;
Sql.Clear ;
Sql.Add ('Select * From AuthBit');
Open;
if Not IsEmpty then
Begin
First;
While Not Eof do
begin
sPersonInfo := FieldByName('AuthBit').AsString + ','
+ FieldByName('Explain').AsString ;
LbAllAuth.Items.Append(sPersonInfo);
Next;
end;
end;
Close;
end;
end;
procedure TFrm_Gwsz.LBAllPersonClick(Sender: TObject);
begin
LBAllPerson.Hint := LBAllPerson.Items[LBAllPerson.ItemIndex] ;
end;
procedure TFrm_Gwsz.LBGwPersonClick(Sender: TObject);
begin
LBGwPerson.Hint := LBGwPerson.Items[LBGwPerson.ItemIndex] ;
end;
procedure TFrm_Gwsz.SBtn_DelClick(Sender: TObject);
begin
LBGwPerson.Items.Delete(LBGwPerson.ItemIndex);
end;
procedure TFrm_Gwsz.SBtn_DellAllClick(Sender: TObject);
begin
LBGwPerson.Clear ;
end;
procedure TFrm_Gwsz.AddItem(sInfo :String);
begin
if LBGwPerson.Items.IndexOf(sInfo) <0 then
LBGwPerson.Items.Append(sInfo);
end;
procedure TFrm_Gwsz.AddItemAuth(sInfo :String);
begin
if LbAuthSel.Items.IndexOf(sInfo) <0 then
LbAuthSel.Items.Append(sInfo);
end;
procedure TFrm_Gwsz.SBtn_AddClick(Sender: TObject);
begin
AddItem(LBAllPerson.Items[LBAllPerson.ItemIndex]);
end;
procedure TFrm_Gwsz.SBtn_AddAllClick(Sender: TObject);
var
ii :Integer;
begin
for ii :=0 to LBAllPerson.Items.Count -1 do
begin
AddItem(LBAllPerson.Items[ii]);
end;
end;
procedure TFrm_Gwsz.SpeedButton2Click(Sender: TObject);
begin
cSave :='2';
Nb_Gw.PageIndex :=0;
end;
procedure TFrm_Gwsz.InsertPeoplePos(sPosition :String);
var
sWorkId, sItem :String;
ii :Integer;
Begin
if LBGwPerson.Items.Count =0 then Exit;
for ii :=0 to LBGwPerson.Items.Count-1 do
begin
sItem := LBGwPerson.Items[ii];
sWorkID := Copy(sItem,1,Pos(',',sItem)-1);
With Qry_pub1 do
begin
Close;
Sql.Clear ;
Sql.Add ('Select WorkId From DFWF_PeoplePos Where ');
Sql.Add (' (WorkId =:p1) and (Position =:p2)');
ParamByName('p1').AsString := sWorkID;
ParamByName('p2').AsString := sPosition;
Open;
if IsEmpty then
Begin
Close;
Sql.Clear ;
Sql.Add ('Insert Into DFWF_PeoplePos(WorkId,Position,CreateTime)');
Sql.Add ('Values(:p1,:p2,:p3)');
ParamByName('p1').AsString := sWorkID;
ParamByName('p2').AsString := sPosition;
ParamByName('p3').AsDateTime := DTP_CL.DateTime ;
ExecSql;
Close;
end;
Close;
end;
end;
end;
function GetAuth(lbList :TListBox):String;
var
sAuth :String;
ii :Integer;
sLst :String;
begin
sAuth := '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
if lbList.Items.Count >0 then
begin
for ii :=0 to lbList.Items.Count-1 do
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?