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

📄 bmunit.pas

📁 使用delphi语言
💻 PAS
字号:
unit bmunit;

interface

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

type
  Tbmform = class(TForm)
    Panel1: TPanel;
    ToolBar1: TToolBar;
    sb_close: TSpeedButton;
    sb_cancel: TSpeedButton;
    sb_save: TSpeedButton;
    sb_del: TSpeedButton;
    sb_edit: TSpeedButton;
    sb_add: TSpeedButton;
    Panel2: TPanel;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    DBGrid1: TDBGrid;
    procedure sb_closeClick(Sender: TObject);
    procedure sb_addClick(Sender: TObject);
    procedure sb_editClick(Sender: TObject);
    procedure sb_saveClick(Sender: TObject);
    procedure sb_cancelClick(Sender: TObject);
    procedure sb_delClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBEdit1Enter(Sender: TObject);
    procedure DBEdit1Exit(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  bmform: Tbmform;

implementation
   uses dmunit;
{$R *.dfm}

procedure Tbmform.sb_closeClick(Sender: TObject);
begin
  if sb_save.Enabled=true then
  begin
    messagebox(self.Handle,'请确定是保存还是取消数据!','提示信息',mb_iconinformation);
    exit;
  end;
  dm.bm.Active:=false;   //    关闭bm
  dm.person.Active:=false; //  关闭person
  close;
end;

procedure Tbmform.sb_addClick(Sender: TObject);
begin
  try
    dm.bm.Append ;
    dbedit1.ReadOnly:=false; dbedit2.ReadOnly :=false;
    dbedit1.SetFocus ;
    dbgrid1.Enabled:=false;
    sb_add.Enabled :=false; sb_edit.Enabled :=false;
    sb_del.Enabled :=false; sb_save.Enabled :=true;
    sb_cancel.Enabled :=true;
  except
    messagebox(self.Handle,'增加数据失败','提示信息',mb_iconinformation);
  end;
end;

procedure Tbmform.sb_editClick(Sender: TObject);
begin
  if dm.bm.RecordCount =0 then
    exit;
  try
    dm.bm.Edit;
    dbedit1.ReadOnly:=false; dbedit2.ReadOnly :=false;
    dbedit1.SetFocus ;
    dbgrid1.Enabled:=false;
    sb_add.Enabled :=false; sb_edit.Enabled :=false;
    sb_del.Enabled :=false; sb_save.Enabled :=true;
    sb_cancel.Enabled :=true;
  except
    messagebox(self.Handle,'编辑数据失败','提示信息',mb_iconinformation);
  end;
end;

procedure Tbmform.sb_saveClick(Sender: TObject);
begin
  try
    dm.bm.Post ;
    dbedit1.ReadOnly:=true; dbedit2.ReadOnly :=true;
    dbedit1.SetFocus ;
    dbgrid1.Enabled:=true;
    sb_add.Enabled :=true; sb_edit.Enabled :=true;
    sb_del.Enabled :=true; sb_save.Enabled :=false;
    sb_cancel.Enabled :=false;
  except
    messagebox(self.Handle,'保存数据失败','提示信息',mb_iconinformation);
  end;
end;

procedure Tbmform.sb_cancelClick(Sender: TObject);
begin
  try
    dm.bm.Cancel ;
    dbedit1.ReadOnly:=true; dbedit2.ReadOnly :=true;
    dbedit1.SetFocus ;
    dbgrid1.Enabled:=true;
    sb_add.Enabled :=true; sb_edit.Enabled :=true;
    sb_del.Enabled :=true; sb_save.Enabled :=false;
    sb_cancel.Enabled :=false;
  except
    messagebox(self.Handle,'取消数据失败','提示信息',mb_iconinformation);
  end;
end;

procedure Tbmform.sb_delClick(Sender: TObject);
begin
  if dm.bm.RecordCount =0 then
    exit;
  dm.person.Close;
  dm.person.CommandText:='select * from 职工 where 部门编号=:id';
  dm.person.Parameters.ParamByName('id').Value:=dm.bm.FieldValues['部门编号'];
  dm.person.Open ;
  if dm.person.RecordCount>0 then
  begin
    messagebox(self.Handle,'该部门有职工存在,不能删除!','提示信息',mb_iconinformation);
    exit;
  end;
  try
    if messagebox(self.Handle,'确定要删除当前数据吗?','提示信息',mb_yesno+mb_iconquestion)=idyes then
      dm.bm.Delete ;
  except
    messagebox(self.Handle,'删除当前数据失败','提示信息',mb_iconinformation);
  end;
end;

procedure Tbmform.FormCreate(Sender: TObject);
begin
  keypreview:=true;
  dm.bm.Open ;
end;

procedure Tbmform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=113 then
    if sb_add.Enabled =true then
      sb_add.Click ;
  if key=114 then
    if sb_edit.Enabled =true then
      sb_edit.Click ;
  if key=116 then
    if sb_del.Enabled =true then
      sb_del.Click ;
  if key=117 then
    if sb_save.Enabled =true then
      sb_save.Click ;
  if key=118 then
    if sb_cancel.Enabled =true then
      sb_cancel.Click ;
  if key=119 then
    sb_close.Click ;
end;

procedure Tbmform.DBEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
    selectnext(sender as twincontrol,true,true);
end;

procedure Tbmform.DBEdit1Enter(Sender: TObject);
begin
  (sender as tdbedit).Color:=clwhite;
end;

procedure Tbmform.DBEdit1Exit(Sender: TObject);
begin
  (sender as tdbedit).Color:=$00FFB824;
end;

procedure Tbmform.DBGrid1TitleClick(Column: TColumn);
begin
  dm.bm.Sort:=column.FieldName ;
end;

end.

⌨️ 快捷键说明

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