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

📄 udep.pas

📁 delphi开发的人事信息管理系统,包括详细的软件开发文档
💻 PAS
字号:
unit uDep;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, DB, ADODB, Buttons,
  ExtCtrls;

type
  TfrmDep = class(TForm)
    aqdep: TADOQuery;
    dsdep: TDataSource;
    Label1: TLabel;
    btnAppend: TSpeedButton;
    btnCancel: TSpeedButton;
    btnModify: TSpeedButton;
    btnDelete: TSpeedButton;
    btnUp: TSpeedButton;
    btnDown: TSpeedButton;
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    dbgdep: TDBGrid;
    dbedep: TDBEdit;
    dbedes: TDBEdit;
    procedure dsdepDataChange(Sender: TObject; Field: TField);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnAppendClick(Sender: TObject);
    procedure btnModifyClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure btnUpClick(Sender: TObject);
    procedure btnDownClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmDep: TfrmDep;

implementation

uses udata;

{$R *.dfm}

procedure TfrmDep.dsdepDataChange(Sender: TObject; Field: TField);
begin
  if aqdep.RecNo = 1 then
    btnup.Enabled := false
  else
    btnup.Enabled := true;

  if aqdep.RecNo = aqdep.RecordCount then
    btndown.Enabled := false
  else
    btndown.Enabled := true;
end;

procedure TfrmDep.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  aqdep.Free;
end;

procedure TfrmDep.btnAppendClick(Sender: TObject);
var
  queryc, queryt: TADOQuery;
begin
  if btnAppend.Caption = '添 加' then
  begin
    dbedep.SetFocus;
    aqdep.Append;

    btnAppend.Caption := '提 交';
    btnModify.Caption := '取 消';
    btnup.Visible := false;
    btndown.Visible := false;
    btnDelete.Visible := false;
  end
  else
  begin
    if dbedep.Text <> '' then
    begin
      queryc := TADOquery.Create(self);
      queryc.Connection:= dmper.acper;
      queryc.SQL.Text := 'select * from dept where dep="' + dbedep.Text + '"' ;
      queryc.open;
      if not queryc.Eof then
      begin
        MessageBox(handle, '此部门已存在!', '提示', mb_IconInformation + mb_Ok);
        aqdep.Cancel;
        exit;
      end
      else
      begin
        queryt := TADOquery.Create(nil);
        Try
          queryt.Connection:= dmper.acper;
          queryt.SQL.Text := 'update dept set ornum=ornum+1';
          queryt.ExecSQL;
        finally
          FreeAndNil(queryt);
        end;
        aqdep.Post;
        btnAppend.Caption := '添 加';
        btnModify.Caption := '更 新';
        btnup.Visible := true;
        btndown.Visible := true;
        btnDelete.Visible := true;
      end;
    end
    else
    begin
      MessageBox(handle, '请输入部门名!', '提示', mb_IconInformation + mb_Ok);
      dbedep.SetFocus;
      exit
    end;
  end;
end;

procedure TfrmDep.btnModifyClick(Sender: TObject);
begin
  if btnModify.Caption ='更 新' then
  begin
    aqdep.Edit;
    aqdep.Post;
  end
  else
  begin
    aqdep.Cancel;
    btnAppend.Caption := '添 加';
    btnModify.Caption := '更 新';
    btnup.Visible := true;
    btndown.Visible := true;
    btnDelete.Visible := true;
  end;
end;

procedure TfrmDep.btnDeleteClick(Sender: TObject);
var
  ornum: integer;
begin
  if MessageBox(handle, '真的要删除此部门么?', '提示', mb_IconQuestion + mb_YesNo) = idYes then
  begin
    ornum := aqdep.FieldByName('ornum').AsInteger;
    aqdep.Delete;
    aqdep.Close;
    aqdep.SQL.Clear;
    aqdep.sql.add('update dept set [ornum]=ornum-1 where ornum>' + inttostr(ornum));
    aqdep.ExecSQL;
    aqdep.Close;
    aqdep.SQL.Clear;
    aqdep.sql.Text := 'select * from dept order by ornum';
    aqdep.Open;
  end;
end;

procedure TfrmDep.btnCancelClick(Sender: TObject);
begin
  close;
  aqdep.Free;
end;

procedure TfrmDep.btnUpClick(Sender: TObject);
var
  id, ornum: integer;
begin
  id := aqdep.FieldByName('id').AsInteger;
  ornum := aqdep.FieldByName('ornum').AsInteger - 1;
  aqdep.Close;
  aqdep.SQL.Clear;
  aqdep.sql.add('update dept set [ornum]=ornum-1 where id=' + inttostr(id));
  aqdep.ExecSQL;
  aqdep.Close;
  aqdep.SQL.Clear;
  aqdep.sql.add('update dept set [ornum]=ornum+1 where id<>' + inttostr(id) + ' and ornum=' + inttostr(ornum));
  aqdep.ExecSQL;
  aqdep.Close;
  aqdep.SQL.Clear;
  aqdep.sql.Text := 'select * from dept order by ornum';
  aqdep.Open;
  aqdep.Locate('id', id, []);
end;
 
procedure TfrmDep.btnDownClick(Sender: TObject);
var
  id, ornum: integer;
begin
  id := aqdep.FieldByName('id').AsInteger;
  ornum := aqdep.FieldByName('ornum').AsInteger + 1;
  aqdep.Close;
  aqdep.SQL.Clear;
  aqdep.sql.add('update dept set [ornum]=ornum+1 where id=' + inttostr(id));
  aqdep.ExecSQL;
  aqdep.Close;
  aqdep.SQL.Clear;
  aqdep.sql.add('update dept set [ornum]=ornum-1 where id<>' + inttostr(id) + ' and ornum=' + inttostr(ornum));
  aqdep.ExecSQL;
  aqdep.Close;
  aqdep.SQL.Clear;
  aqdep.sql.Text := 'select * from dept order by ornum';
  aqdep.Open;
  aqdep.Locate('id', id, []);
end;

end.

⌨️ 快捷键说明

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