📄 udep.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 + -