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

📄 udep.pas

📁 在在一原封不动硒鼓二可耕地z经理可耕地可耕地枯草杆菌二期工程二枯枯树可耕地票面苛
💻 PAS
字号:
unit udep;

interface

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

type
  TfrmDep = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    dbedep: TDBEdit;
    dbeDes: TDBEdit;
    btnAdd: TButton;
    btnEdit: TButton;
    btnUp: TButton;
    btnDown: TButton;
    btnDel: TButton;
    btnTrs: TButton;
    btnClose: TButton;
    dgDep: TDBGridEh;
    dsdep: TDataSource;
    aqdep: TADOQuery;
    procedure btnEditClick(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure btnUpClick(Sender: TObject);
    procedure btnDownClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
    procedure btnTrsClick(Sender: TObject);
    procedure btnCloseClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure dsdepDataChange(Sender: TObject; Field: TField);
  private
    { Private declarations }
    procedure SetState(aState: Boolean = true);
  public
    { Public declarations }
  end;

var
  frmDep: TfrmDep;

implementation

uses udata;

{$R *.dfm}

procedure TfrmDep.SetState(aState: Boolean);
begin
  dbedep.ReadOnly := aState;
  dbedes.ReadOnly := aState;
  if aState = true then
  begin
    btnadd.Caption := '添  加';
    btnEdit.Caption := '更  新';
    btnUp.Visible := true;
    btnDown.Visible := true;
    btnDel.Visible := true;
    
    dgDep.Enabled := true;
    dbedep.Color := clSkyBlue;
    dbeDes.Color := clSkyBlue;
  end
  else
  begin
    if aqDep.State = dsInsert then
      btnadd.Caption := '提  交'
    else
      btnadd.Caption := '确  定';
    btnedit.Caption := '取  消';
    btnUp.Visible := false;
    btnDown.Visible := false;
    btnDel.Visible := false;
    dgDep.Enabled := false;
    dbeDep.SetFocus;
    dbeDep.Color := clWindow;
    dbeDes.Color := clWindow;
  end;
end;

procedure TfrmDep.FormCreate(Sender: TObject);
begin
  SetState(true);
end;

procedure TfrmDep.btnAddClick(Sender: TObject);
var
  queryc, queryt: TADOQuery;
begin
  if btnadd.Caption = '添  加' then
  begin
    aqdep.Append;
    SetState(false);
  end
  else
  begin
    if dbedep.Text <> '' then
    begin
      if btnadd.Caption = '提  交' 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(self.Handle, '此部门已存在!', '提示', mb_IconInformation + mb_Ok);
          aqDep.Cancel;
          aqDep.CancelBatch();
          Abort;
        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;
          aqDep.UpdateBatch();
          SetState(true);
        end;
      end
      else
      begin
        aqDep.Post;
        aqDep.UpdateBatch();
        SetState(true);
      end;
    end
    else
    begin
      MessageBox(self.Handle, '请输入部门名!', '提示', mb_IconInformation + mb_Ok);
      dbedep.SetFocus;
      Abort;
    end;
  end;
end;

procedure TfrmDep.btnEditClick(Sender: TObject);
begin
  if btnedit.Caption ='更  新' then
  begin
    aqDep.Edit;
    SetState(false);
  end
  else
  begin
    aqDep.Cancel;
    aqdep.CancelBatch();
    SetState(true);
  end;
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;

procedure TfrmDep.btnDelClick(Sender: TObject);
var
  ornum: integer;
begin
  if MessageBox(handle, '真的要删除此部门么?', '提示', mb_IconQuestion + mb_YesNo) = idYes then
  begin
    ornum := aqDep.FieldByName('ornum').AsInteger;
    aqDep.Delete;
    aqDep.UpdateBatch();
    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.btnTrsClick(Sender: TObject);
begin
  if btntrs.Caption = '半透明' then
  begin
    self.AlphaBlend := true;
    self.AlphaBlendValue := 125;
    btntrs.Caption := '还  原';
  end
  else
  begin
    self.AlphaBlend := false;
    btntrs.Caption := '半透明';
  end;   
end;

procedure TfrmDep.btnCloseClick(Sender: TObject);
begin
  Close();
end;

procedure TfrmDep.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if aqDep.State in [dsInsert, dsEdit] then
  begin
    if MessageBox(self.Handle, '还有信息没有保存,确定要退出吗?', '提示', mb_IconQuestion + mb_YesNo) = idYes then
    begin
      aqDep.Cancel;
      aqDep.CancelBatch();
      CanClose := true;
    end
    else
      CanClose := false;
  end
  else
    CanClose := true;
end;

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;

end.

⌨️ 快捷键说明

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