⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit7.pas

📁 这是一套人事管理系统的源代码
💻 PAS
字号:
unit Unit7;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, DB, ADODB;

type
  TForm7 = class(TForm)
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    GroupBox5: TGroupBox;
    stb: TStatusBar;
    GroupBox1: TGroupBox;
    ListBox1: TListBox;
    Splitter1: TSplitter;
    GroupBox2: TGroupBox;
    ListBox2: TListBox;
    Splitter2: TSplitter;
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button5: TButton;
    Label6: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    Edit2: TEdit;
    Button3: TButton;
    Button4: TButton;
    Button6: TButton;
    Label3: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Edit5: TEdit;
    Button7: TButton;
    Button8: TButton;
    ADOQuery1: TADOQuery;
    ADOQuery1DSDesigner: TAutoIncField;
    ADOQuery1DSDesigner2: TWideStringField;
    procedure AddXtToList(xtm:string);
    procedure AddDwToList(xtm,dwm:string);
    procedure LoadXTtoList();
    procedure LoadDWtoList(strxt:string);
    procedure selectDB(_strsql:string;_Query: TADOQuery;select:boolean);
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ListBox2Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form7: TForm7;
   dw:string;
  mypath:string;
implementation

uses Unit6, Unit5;

{$R *.dfm}
procedure TForm7.AddXtToList(xtm:string);
 var
 tmptree:TTreeNode;
 begin
try
 tmptree:=form6.Treeclass.Items.Add(form6.Treeclass.Items.GetFirstNode,xtm);
 tmptree.ImageIndex:=0;
  except
    end;
end;
procedure TForm7.AddDwToList(xtm,dwm:string);
 var
 tmptree:TTreeNode;
 i,j:integer;
begin
for i:=0 to form6.Treeclass.Items.Count-1 do begin
  if form6.Treeclass.Items[i].Level<>0 then continue ;
  if form6.Treeclass.Items[i].Text=xtm then begin
  tmptree:= form6.treeclass.Items.AddChild(form6.treeclass.Items[i],dwm);
  tmptree.ImageIndex:=1;
 end;
 end;
end;
procedure TForm7.LoadXTtoList();
var
 strsql:string;
begin
  strsql:='select 所属系统 from txt order by 系统编号';
  selectdb(strsql,adoquery1,true);
  listbox1.Items.BeginUpdate;
  if adoquery1.RecordCount =0 then begin
  exit;
  end;
  listbox1.Items.Clear;
  listbox1.Items.Add('所有单位');
  adoquery1.First;
  while not adoquery1.Eof do
  begin
   listbox1.Items.Add(adoquery1.FieldValues['所属系统'] );
  ADOquery1.Next;
  end;
  listbox1.Items.EndUpdate ;
  ADOquery1.Close;
  combobox1.Items :=listbox1.Items ;
  listbox1.ItemIndex:=0;
end;

procedure TForm7.LoadDWtoList(strxt:string);
 var
 strsql:string;
begin
if strxt='所有单位' then
  strsql:='select 单位 from tdw order by 单位编号'
else
  strsql:='select 单位 from tdw where 所属系统='''+strxt+''' order by 单位编号';
  selectdb(strsql,adoquery1,true);
  listbox2.Clear;
  if adoquery1.RecordCount =0 then begin
  exit;
  end;
  listbox2.Items.BeginUpdate;
  while not adoquery1.Eof do
  begin
   listbox2.Items.Add(adoquery1.FieldValues['单位']);
  ADOquery1.Next;
  end;
  ADOquery1.Close;
  listbox2.Items.EndUpdate;
end;
procedure TForm7.selectDB(_strsql:string;_Query: TADOQuery;select:boolean);
begin
    _query.Close;
    _query.SQL.Text:=_strsql;
    if select then  _query.Open
    else
     _query.ExecSQL;
end;

procedure TForm7.FormCreate(Sender: TObject);
begin
MyPath:=ExtractFilePath(ParamStr(0));
LoadXTtoList();
LoadDWtoList('所有单位');
end;

procedure TForm7.ListBox1Click(Sender: TObject);

var
strxt:string;
begin
strxt:= listbox1.Items.Strings[listbox1.ItemIndex];
LoadDWtoList(strxt);
edit1.Text:=strxt;
stb.Panels[0].Text :='当前系统:'+strxt;
combobox1.ItemIndex:=listbox1.ItemIndex;
//xt:=strxt;
end;
procedure TForm7.Button1Click(Sender: TObject);
var
strsql,strxt:string;
begin
if (trim(edit1.Text)='') or (trim(edit1.Text)='所有单位') then exit;

strxt:=edit1.Text ;
strsql:='select 所属系统 from txt where 所属系统='''+strxt+'''';
selectdb(strsql,adoquery1,true);
if adoquery1.RecordCount >0 then begin
showmessage('系统['+strxt+']已经存在,系统名不可以重复');
exit;
end;
strsql:='insert into txt(所属系统) values('''+strxt+''')' ;
try
selectdb(strsql,adoquery1,false);
listbox1.Items.Add(strxt);
combobox1.Items.Add(strxt);
AddXtToList(strxt);
showmessage('成功添加了系统:['+strxt+']');
except
showmessage('操作数据库时发生错误,添加系统失败');
end;
end;
procedure TForm7.Button2Click(Sender: TObject);
var
strxt,strxt2,strsql:string;
begin
if trim(edit1.Text)='' then exit;
if listbox1.ItemIndex <1 then begin
showmessage('请先选择要修改的系统名');
listbox1.SetFocus;
exit;
end;
strxt:= listbox1.Items.Strings[listbox1.ItemIndex];
if (trim(edit1.Text)=strxt) or (trim(edit1.Text)='所有单位') then exit;
if MessageDlg('点YES确定修改系统:['+strxt+'],放弃点NO', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
strxt2:=edit1.Text;
strsql:='select 所属系统 from txt where 所属系统='''+strxt2+'''';
selectdb(strsql,adoquery1,true);
if adoquery1.RecordCount >0 then begin
showmessage('系统['+strxt2+']已经存在,系统名不可以重复');
exit;
end;
strsql:='update txt set 所属系统 ='''+strxt2+''' where 所属系统 = '''+strxt+'''';
try
selectdb(strsql,adoquery1,false);
listbox1.Items.Strings[listbox1.ItemIndex]:=strxt2;
combobox1.Items.Strings[listbox1.ItemIndex]:=strxt2;
showmessage('成功将:['+strxt+']修改为['+strxt2+']');
except
showmessage('操作数据库时发生错误,修改系统失败');
end;
end;
end;
procedure TForm7.Button5Click(Sender: TObject);
var
strsql,strxt:string;
begin
if listbox1.ItemIndex <1 then begin
showmessage('请先选择要删除的系统名');
listbox1.SetFocus;
exit;
end;
strxt:= listbox1.Items.Strings[listbox1.ItemIndex];
  if MessageDlg('点YES确定删除系统:['+strxt+'],将删除该系统下的所有单位', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
  strsql:='delete from txt where 所属系统='''+strxt+'''';
    try
    selectdb(strsql,adoquery1,false);
    listbox1.DeleteSelected;
    combobox1.DeleteSelected;
    listbox2.Clear;
    showmessage('成功删除系统:['+strxt+']');
    except
    showmessage('操作数据库时发生错误,删除系统失败');
    end;
  end;
end;
procedure TForm7.Button3Click(Sender: TObject);
var
strxt,strdw,strsql:string;
begin
if trim(edit2.Text)='' then exit;
if combobox1.ItemIndex <1 then begin
showmessage('请在选择新系统下拉框中选择新单位的所属系统');
combobox1.SetFocus;
exit;
end;
strxt:=listbox1.Items.Strings[listbox1.ItemIndex];
strdw:=edit2.Text ;
strsql:='select 单位 from tdw where 单位='''+strdw+'''';
selectdb(strsql,adoquery1,true);
if adoquery1.RecordCount >0 then begin
showmessage('单位名['+strdw+']已经存在,单位名不可以重复');
exit;
end;
  strsql:='insert into tdw(单位,所属系统) values('''+strdw+''','''+strxt+''')' ;
  try
  selectdb(strsql,adoquery1,false);
  listbox2.Items.Add(strdw);
  AddDwToList(strxt,strdw);
  showmessage('成功添加了单位:['+strdw+']');
  except
  showmessage('操作数据库时发生错误,添加系统失败');
  end;

end;

procedure TForm7.Button4Click(Sender: TObject);
var
strxt2,strdw,strdw2,strsql:string;
begin
if trim(edit2.Text)='' then exit;
if combobox1.ItemIndex <1 then begin
showmessage('请在选择新系统下拉框中选择单位修改后的所属系统');
combobox1.SetFocus;
exit;
end;
strdw:= dw;
strdw2:=edit2.Text;
strxt2:= listbox1.Items.Strings[listbox1.ItemIndex];
if (strdw=strdw2) and (combobox1.Text=strxt2) then exit;
if  MessageDlg('点YES确定修改单位:['+strdw+'],放弃点NO', mtConfirmation, [mbYes, mbNo], 0) = mrNo then exit;

strxt2:=combobox1.Text;
strsql:='select 单位 from tdw where 单位='''+strdw2+''' and 所属系统='''+strxt2+'''';
selectdb(strsql,adoquery1,true);
if adoquery1.RecordCount >0 then begin
showmessage('系统['+strxt2+']下已经存在单位['+strdw2+'],单位名不可以重复');
exit;
end;
strsql:='update tdw set 单位 ='''+strdw2+''',所属系统 ='''+
         strxt2+''' where 单位 ='''+strdw+'''';
try
 selectdb(strsql,adoquery1,false);
 listbox2.Items.Strings[listbox2.ItemIndex]:=strdw2;
 showmessage('成功将:['+strdw+']修改为['+strdw2+']');
except
showmessage('操作数据库时发生错误,修改系统失败');
end;
end;


procedure TForm7.Button6Click(Sender: TObject);
var
strsql,strdw:string;
begin
if listbox2.ItemIndex <0 then begin
showmessage('请先选择要删除的单位名');
listbox2.SetFocus;
exit;
end;
strdw:= listbox2.Items.Strings[listbox2.ItemIndex];
  if MessageDlg('点YES确定删除单位:['+strdw+'],将删除该单位下的所有人员档案', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin

  strsql:='delete from tdw where 单位='''+strdw+'''';
    try
    selectdb(strsql,adoquery1,false);
    listbox2.DeleteSelected;
    //combobox1.DeleteSelected;
    //listbox2.Clear;
    showmessage('成功删除单位:['+strdw+']');
    except
    showmessage('操作数据库时发生错误,删除单位失败');
    end;
  end;

end;

procedure TForm7.Button7Click(Sender: TObject);
var
strfile:string;
F: TextFile;
S: string;
begin

 if edit4.Text <>edit5.Text then begin
 showmessage('两次输入的密码不一致');
 exit;
 end;
 strfile:=mypath +'data\p.lyr';
 if not FileExists(strfile) then begin
 showmessage('找不到密码初始化文件,操作终止');
 exit;
 end;

 AssignFile(f,strfile);
 Reset(F);
 Readln(F, S);
 CloseFile(F);
 if edit3.Text <>s then begin
 showmessage('旧密码输入不正确,请仔细检查大小写');
 edit3.SetFocus ;
 exit;
 end;
 s:= edit4.Text;
 rewrite(f);
 writeln(f,s);
 closefile(f);
 showmessage('修改密码成功');
 edit3.Text :='';
 edit4.Text :='';
 edit5.text:='';
end;

procedure TForm7.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;

procedure TForm7.ListBox2Click(Sender: TObject);
var
strdw:string;
begin
strdw:= listbox2.Items.Strings[listbox2.ItemIndex];
edit2.Text:=strdw;
stb.Panels[1].Text :='当前单位:'+strdw;
dw:=strdw;

end;
procedure TForm7.Button8Click(Sender: TObject);
begin
self.Close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -