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

📄 ustainfo.pas

📁 数据库编程 数据库编程 数据库编程 数据库编程 数据库编程
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  end
end;

procedure TfrmStainfo.tsinfoShow(Sender: TObject);
var
  i: integer;
  aqDep: TADOQuery;
begin
  if btnAppend.Enabled = false then btnAppend.Enabled := true;
  aqDep := TADOQuery.Create(nil);
  aqDep.Connection := dmPer.acPer;
  aqDep.SQL.Text := 'select dep from dept order by ornum';
  aqDep.Open;
  if not aqDep.Eof then
  begin
    dcbodep.Clear;
    for i :=0 to aqdep.RecordCount - 1 do
    begin
      dcbodep.AddItem(aqdep.FieldByName('dep').AsString, nil);
      aqdep.next;
    end;
  end;

  aqsta.close;
  aqsta.SQL.Clear;
  aqsta.SQL.Text := 'select * from stainfo where id=' + IntToStr(id);
  aqsta.Open;
  try
    if FileExists(ExtractFilePath(Application.ExeName) + 'images\' + aqsta.FieldByName('image').AsString) then
        imgi.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'images\' + aqsta.FieldByName('image').AsString)
    else
        imgi.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'images\imgd.jpg');
  except
  end;
  aqsta.Refresh;
end;

procedure TfrmStainfo.tsexperShow(Sender: TObject);
begin
  FreeTSfami;
  FreeTSap;
  FreeTStrain;
  if btnDelete.Caption = '取  消' then btnDeleteClick(nil);
  if (tvper.Selected.HasChildren) or (tvper.Selected.Data = nil) then
    btnAppend.Enabled := false
  else
    btnAppend.Enabled := true;
  dedtsdate.SetFocus;
  aqo.close;
  aqo.SQL.Clear;
  aqo.SQL.Text := 'select * from wexper where sid=' + IntToStr(id);
  aqo.Open;
  dbgexper.DataSource := dso;
  dedtsdate.DataSource := dso;
  dedtsdate.DataField := 'sdate';
  dedtedate.DataSource := dso;
  dedtedate.DataField := 'edate';
  dedtcom.DataSource := dso;
  dedtcom.DataField := 'company';
  dedtdep.DataSource := dso;
  dedtdep.DataField := 'dep';
  dedtdutyd.DataSource := dso;
  dedtdutyd.DataField := 'duty';
end;
     
procedure TfrmStainfo.tsfamiShow(Sender: TObject);
begin
  FreeTSexper;
  FreeTSap;
  FreeTStrain;
  if btnDelete.Caption = '取 消' then btnDeleteClick(nil);
  if (tvper.Selected.HasChildren) or (tvper.Selected.Data = nil) then
    btnAppend.Enabled := false
  else
    btnAppend.Enabled := true;
  dbename.SetFocus;
  aqo.close;
  aqo.SQL.Clear;
  aqo.SQL.Text := 'select * from family where sid=' + IntToStr(id);
  aqo.Open;
  dbgfami.DataSource := dso;
  dbename.DataSource := dso;
  dbename.DataField := 'name';
  dbcfami.DataSource := dso;
  dbcfami.DataField := 'fami';
  dbetel.DataSource := dso;
  dbetel.DataField := 'tel';
  dbecom.DataSource := dso;
  dbecom.DataField := 'com';
  dbedes.DataSource := dso;
  dbedes.DataField := 'des';
end;

procedure TfrmStainfo.tsapShow(Sender: TObject);
begin
  FreeTSexper;
  FreeTSfami;
  FreeTStrain;
  if btnDelete.Caption = '取 消' then btnDeleteClick(nil);
  if (tvper.Selected.HasChildren) or (tvper.Selected.Data = nil) then
    btnAppend.Enabled := false
  else
    btnAppend.Enabled := true;
  dbcsort.SetFocus;
  aqo.close;
  aqo.SQL.Clear;
  aqo.SQL.Text := 'select * from aandp where sid=' + IntToStr(id);
  aqo.Open;
  dbgap.DataSource := dso;
  dbcsort.DataSource := dso;
  dbcsort.DataField := 'sort';
  dbetopic.DataSource := dso;
  dbetopic.DataField := 'topic';
  dbeddep.DataSource := dso;
  dbeddep.DataField := 'dep';
  dbedate.DataSource := dso;
  dbedate.DataField := 'mdate';
  dbmdes.DataSource := dso;
  dbmdes.DataField := 'des';
end;

procedure TfrmStainfo.tstrainShow(Sender: TObject);
begin
  FreeTSexper;
  FreeTSfami;
  FreeTSap;
  if btnDelete.Caption = '取 消' then btnDeleteClick(nil);
  if (tvper.Selected.HasChildren) or (tvper.Selected.Data = nil) then
    btnAppend.Enabled := false
  else
    btnAppend.Enabled := true;
  dbecourse.SetFocus;
  aqo.close;
  aqo.SQL.Clear;
  aqo.SQL.Text := 'select * from train where sid=' + IntToStr(id);
  aqo.Open;
  dbgtrain.DataSource := dso;
  dbecourse.DataSource := dso;
  dbecourse.DataField := 'course';
  dbedlimit.DataSource := dso;
  dbedlimit.DataField := 'dlimit';
  dbestdate.DataSource := dso;
  dbestdate.DataField := 'sdate';
  dbeenddate.DataSource := dso;
  dbeenddate.DataField := 'edate';
  dbetrcom.DataSource := dso;
  dbetrcom.DataField := 'trcom';
  dbecerti.DataSource := dso;
  dbecerti.DataField := 'certi';
end;

procedure TfrmStainfo.dedtsdateEnter(Sender: TObject);
begin
  if (dedtsdate.Text <> '') or (btnAppend.Caption = '提 交') then dedtsdate.ReadOnly := false;
end;

procedure TfrmStainfo.dbenameEnter(Sender: TObject);
begin
  if (dbename.Text <> '') or (btnAppend.Caption = '提 交') then dbename.ReadOnly := false;
end;

procedure TfrmStainfo.dbcsortEnter(Sender: TObject);
begin
  if (dbcsort.Text <> '') or (btnAppend.Caption = '提 交') then dbcsort.ReadOnly := false;
end;

procedure TfrmStainfo.dbecourseEnter(Sender: TObject);
begin
  if (dbecourse.Text <> '') or (btnAppend.Caption = '提 交') then dbecourse.ReadOnly := false;
end;

procedure TfrmStainfo.FormResize(Sender: TObject);
begin
  if self.WindowState = wsNormal then
  begin
  end;
end;

procedure TfrmStainfo.btneditiClick(Sender: TObject);
var
  aqimg: TADOQuery;
  imgstr, path: string;
begin
  if odimg.Execute then
  begin
    imgstr := ExtractFileName(odimg.FileName);
    path := ExtractFilePath(Application.ExeName);
    if not FileExists(path + 'images\' + imgstr) then
    begin
      aqimg := TADOQuery.Create(nil);
      aqimg.Connection := dmper.acper;
      aqimg.Close;
      aqimg.sql.Clear;
      aqimg.SQL.Text := 'select image from stainfo where id=' + IntToStr(id);
      aqimg.open;
      if FileExists(path + 'images\' + aqimg.Fieldbyname('image').AsString) then
        DeleteFile(path + 'images\' + aqimg.Fieldbyname('image').AsString);
      CopyFile(Pchar(odimg.FileName), pchar(path + 'images\' + imgstr), false);
      aqimg.Close;
      aqimg.sql.Clear;
      aqimg.SQL.Text := 'update stainfo set [image]="' + imgstr + '" where id=' + IntToStr(id);
      aqimg.ExecSQL;
      MessageBox(handle, '照片更新成功!', '提示', mb_IconWarning + mb_Ok);
      imgi.Picture.LoadFromFile(path + 'images\' + imgstr);
      FreeAndNil(aqimg);
    end
    else
    begin
      MessageBox(handle, '此照片文件名已存在,请改名先!', '提示', mb_IconWarning + mb_Ok);
      exit;
    end;
  end;
end;

procedure TfrmStainfo.btndeliClick(Sender: TObject);
var
  aqimg: TADOQuery;
  path: string;
begin
  if MessageBox(handle, '真的要删除此员工照片吗?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
  begin
    path := ExtractFilePath(Application.ExeName);
    aqimg := TADOQuery.Create(nil);
    aqimg.Connection := dmper.acper;
    aqimg.Close;
    aqimg.sql.Clear;
    aqimg.SQL.Text := 'select image from stainfo where id=' + IntToStr(id);
    aqimg.open;
    if FileExists(path + 'images\' + aqimg.Fieldbyname('image').AsString) then
    begin
      deletefile(path + 'images\' + aqimg.Fieldbyname('image').AsString);
      MessageBox(handle, '照片删除成功!', '提示', mb_IconWarning + mb_Ok);
      imgi.Picture.LoadFromFile(path + 'images\imgd.jpg');
    end
    else
      MessageBox(handle, '没有此员工照片!', '提示', mb_IconWarning + mb_Ok);
  end;
end;

procedure TfrmStainfo.pmiDeleteClick(Sender: TObject);
begin
  if (not tvper.Selected.HasChildren) and (tvper.Selected.Data <> nil) then
    btnDeleteClick(nil)
  else
    if tvper.Selected.IsFirstNode then
      MessageBox(handle, '根节点不能删除!', '提示', mb_IconWarning + mb_Ok)
    else
      if MessageBox(handle, '要删除此节点么?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
        frmdep.btnDeleteClick(nil); 
end;

procedure TfrmStainfo.mnuExpandClick(Sender: TObject);
begin
  tvper.FullExpand;
end;

procedure TfrmStainfo.mnuCloseClick(Sender: TObject);
begin
  tvper.FullCollapse;
end;

procedure TfrmStainfo.btnCancelClick(Sender: TObject);
begin
  FreeTree;
  //self.Release;
  close;
end;

procedure TfrmStainfo.btnDeleteClick(Sender: TObject);
var
  sid: integer;
begin
  if pcsta.ActivePageIndex = 0 then
  begin
    if MessageBox(handle, '真的要删除此员工记录么?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
      if aqsta.Active = true then
      begin
        sid := tvper.selected.AbsoluteIndex;
        aqsta.Delete;
        sleep(200);
        DrawTree;
        if sid - 1 > 0 then
          tvper.Selected := tvper.Items[sid - 1]
        else if sid < tvper.Items.Count then
          tvper.Selected := tvper.Items[sid + 1]
      end
      else
        MessageBox(handle, '还没有记录!', '提示', mb_IconWarning + mb_Ok);
  end
  else
  begin
    if MessageBox(handle, '真的要删除此记录么?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
    aqo.Delete;
  end;
end;

procedure TfrmStainfo.btnPrintClick(Sender: TObject);
begin
  if btnprint.Caption = '打 印' then
  begin
    MessageBox(self.Handle, '正在制作中!', '提示', mb_IconInformation + mb_Ok);
  end
  else
  begin
    aqsta.Cancel;
    btnprint.Caption := '打 印';
    btnAppend.Caption := '添 加';
    btnModify.Visible := true;
    btnSearch.Visible := true;
    btnPre.Visible := true;
    btnNext.Visible := true;
    btnDelete.Visible := true;
    btnCancel.Visible := true;
  end;
end;

procedure TfrmStainfo.btnNextClick(Sender: TObject);
begin
  if tvper.Selected.AbsoluteIndex < tvper.Items.Count - 1 then
  begin
    tvper.Selected := tvper.Items[tvper.Selected.AbsoluteIndex + 1];
    if tvper.Selected.Data <> nil then
    begin
      tvperClick(nil);
      tvper.SetFocus;
    end
    else
      btnnextClick(nil);
  end;
end;

procedure TfrmStainfo.btnPreClick(Sender: TObject);
begin
  if tvper.Selected.AbsoluteIndex > 0 then
  begin
    tvper.Selected := tvper.Items[tvper.Selected.AbsoluteIndex - 1];
    if tvper.Selected.Data <> nil then
    begin
      tvperClick(nil);
      tvper.SetFocus;
    end
    else
      btnPreClick(nil);
  end;
end;

procedure TfrmStainfo.btnSearchClick(Sender: TObject);
begin
  frmFind.show;
end;

procedure TfrmStainfo.btnAppendClick(Sender: TObject);
var
  aqt: TADOQuery;
begin
  if btnAppend.Caption = '添 加' then
  begin
    btnAppend.Caption := '提 交';
    btnprint.Caption := '取 消';
    btnModify.Visible := false;
    btnSearch.Visible := false;
    btnPre.Visible := false;
    btnNext.Visible := false;
    btnDelete.Visible := false;
    btnCancel.Visible := false;
    if pcsta.ActivePageIndex = 0 then
    begin
      aqsta.Append;
      dedtstano.SetFocus;
    end
    else
    begin
      aqo.Append;
      if pcsta.ActivePageIndex = 1 then dedtsdate.SetFocus;
      if pcsta.ActivePageIndex = 2 then dbename.SetFocus;
      if pcsta.ActivePageIndex = 3 then dbcsort.SetFocus;
      if pcsta.ActivePageIndex = 4 then dbecourse.SetFocus;
    end;
  end
  else
  begin
    if pcsta.ActivePageIndex = 0 then
    begin
      if (trim(dedtstano.Text) <> '') and (trim(dedtname.Text) <> '') and (trim(dcbodep.Text) <> '') then
      begin
        aqt := TADOQuery.Create(nil);
        aqt.Connection := dmper.acper;
        aqt.SQL.Text := 'select * from stainfo where stano="' + trim(dedtstano.Text) + '"';
        aqt.Open;
        if not aqt.Eof then
        begin
          MessageBox(handle, '此工号已存在,请另输入!', '提示', mb_IconWarning + mb_Ok);
          dedtstano.SetFocus;
          exit;
        end
        else
        begin
          aqsta.FieldByName('ename').AsString := GetEn(dedtname.Text);
          aqsta.post;
          DrawTree;
          aqsta.Append;
        end;
        aqt.Free;
      end
      else
      begin
        MessageBox(handle, '工号和姓名及部门不能为空!', '提示', mb_IconWarning + mb_Ok);
        if dedtstano.Text = '' then
          dedtstano.SetFocus
        else if dedtname.Text = '' then
          dedtname.SetFocus
        else
          dcbodep.SetFocus;
        exit;
      end;
    end
    else
    begin
      if pcsta.ActivePageIndex = 1 then
        if (trim(dedtsdate.Text) = '') or (trim(dedtedate.Text) = '') or (trim(dedtcom.Text) = '') then
        begin
          MessageBox(handle, '开始时间,结束时间和公司不能为空!', '提示', mb_IconWarning + mb_Ok);
          if trim(dedtsdate.Text) = '' then
            dedtsdate.SetFocus
          else if trim(dedtedate.Text) = '' then
            dedtedate.SetFocus
          else
            dedtcom.SetFocus;
          exit;
        end;
      if pcsta.ActivePageIndex = 2 then
        if (trim(dbename.Text) = '') or (trim(dbcfami.Text) = '') then
        begin
          MessageBox(handle, '家庭成员姓名和关系不能为空!', '提示', mb_IconWarning + mb_Ok);
          if trim(dbename.Text) = '' then
            dbename.SetFocus
          else
            dbcfami.SetFocus;
          exit;
        end;
      if pcsta.ActivePageIndex = 3 then
        if (trim(dbcsort.Text) = '') or (trim(dbetopic.Text) = '') then
        begin
          MessageBox(handle, '类别和事件不能为空!', '提示', mb_IconWarning + mb_Ok);
          if trim(dbcsort.Text) = '' then
            dbcsort.SetFocus
          else
            dbetopic.SetFocus;
          exit;
        end;
      if pcsta.ActivePageIndex = 4 then
        if (trim(dbecourse.Text) = '') or (trim(dbedlimit.Text) = '') then
        begin
          MessageBox(handle, '培训课程和期限不能为空!', '提示', mb_IconWarning + mb_Ok);
          if trim(dbecourse.Text) = '' then
            dbecourse.SetFocus
          else
            dbedlimit.SetFocus;
          exit;
        end;
      aqo.FieldByName('sid').AsInteger := id;
      aqo.post;
      aqo.Append;
    end;
  end;
end;

procedure TfrmStainfo.btnModifyClick(Sender: TObject);
begin
  if pcsta.ActivePageIndex = 0 then
  begin
    aqsta.Edit;
    aqsta.Post;
    MessageBox(self.Handle, '信息更新成功!', '提示', mb_IconInformation + mb_Ok);
  end
  else
  begin
    aqo.Edit;
    aqo.Post;
    MessageBox(self.Handle, '信息更新成功!', '提示', mb_IconInformation + mb_Ok);
  end;
end;

end.

⌨️ 快捷键说明

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