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

📄 personunit.pas

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

interface

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

type
  Tpersonform = class(TForm)
    Panel1: TPanel;
    ToolBar1: TToolBar;
    sb_add: TSpeedButton;
    sb_edit: TSpeedButton;
    sb_del: TSpeedButton;
    sb_save: TSpeedButton;
    sb_cancel: TSpeedButton;
    sb_close: TSpeedButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel2: TPanel;
    Label2: TLabel;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBMemo1: TDBMemo;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    Label6: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    DBComboBox1: TDBComboBox;
    BitBtn1: TBitBtn;
    DBGrid2: TDBGrid;
    Label7: TLabel;
    a: TADODataSet;
    DataSource1: TDataSource;
    aDSDesigner: TStringField;
    aDSDesigner2: TStringField;
    aDSDesigner3: TStringField;
    aDSDesigner4: TStringField;
    aDSDesigner5: TStringField;
    procedure FormCreate(Sender: TObject);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure sb_closeClick(Sender: TObject);
    procedure DBComboBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure sb_addClick(Sender: TObject);
    procedure sb_editClick(Sender: TObject);
    procedure sb_delClick(Sender: TObject);
    procedure sb_saveClick(Sender: TObject);
    procedure sb_cancelClick(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure DBLookupComboBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBComboBox1Enter(Sender: TObject);
    procedure DBComboBox1Exit(Sender: TObject);
    procedure DBEdit1Enter(Sender: TObject);
    procedure DBEdit1Exit(Sender: TObject);
    procedure DBMemo1Enter(Sender: TObject);
    procedure DBMemo1Exit(Sender: TObject);
    procedure DBGrid2TitleClick(Column: TColumn);
    procedure DBGrid1TitleClick(Column: TColumn);
  private
  //colorder:array[0..4]of boolean;//各个列排序状态变量
    { Private declarations }
  public
    { Public declarations }
  end;

var
  personform: Tpersonform;

implementation
   uses dmunit;
{$R *.dfm}

procedure Tpersonform.FormCreate(Sender: TObject);
var i:integer;
begin
  keypreview:=true;
  dm.bm.Open ;
  dm.bm.First ;
  for i:=0 to dm.bm.RecordCount -1 do
  begin
    dbcombobox1.Items.Add(dm.bm.FieldValues['部门编号']) ;
    dm.bm.Next ;
  end;
  pagecontrol1.ActivePage:=tabsheet1;
  dm.person.Close;
  dm.person.CommandText:='select * from 职工';
  dm.person.Open ;
end;

procedure Tpersonform.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  if dm.person.RecordCount =0 then
  begin
    messagebox(self.Handle,'没有主档数据,不能转换界面','提示信息',mb_iconinformation);
    allowchange:=false;
  end;
  if sb_save.Enabled =true then
  begin
    messagebox(self.Handle,'请确定是保存还是取消数据。','提示信息',mb_iconinformation);
    allowchange:=false;
  end;
end;

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

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

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

procedure Tpersonform.sb_editClick(Sender: TObject);
begin
  if dm.person.RecordCount =0 then
    exit;
  try
    dm.person.Edit ;
    dbedit1.ReadOnly:=false; dbedit2.ReadOnly :=false;
    dbedit3.ReadOnly:=false; dbmemo1.ReadOnly:=false;
    dbcombobox1.ReadOnly:=false;
    dbcombobox1.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 Tpersonform.sb_delClick(Sender: TObject);
begin
  if dm.person.RecordCount =0 then
    exit;
  dm.detail.Close;
  dm.detail.CommandText:='select * from 明细表 where 职工编号=:id';
  dm.detail.Parameters.ParamByName('id').Value:=dm.person.FieldValues['职工编号'];
  dm.detail.Open ;
  if dm.detail.RecordCount >0 then
  begin
    messagebox(self.Handle,'该职工不能删除,因为存在他的业务数据!','提示信息',mb_iconinformation);
    exit;
  end;
  try
    if messagebox(self.Handle,'确定要删除当前数据吗?','提示信息',mb_yesno+mb_iconquestion)=idyes then
      dm.person.Delete ;
  except
    messagebox(self.Handle,'删除当前数据失败','提示信息',mb_iconinformation);
  end;
end;

procedure Tpersonform.sb_saveClick(Sender: TObject);
begin
  try
    dm.person.Post;
    dbedit1.ReadOnly:=true; dbedit2.ReadOnly :=true;
    dbedit3.ReadOnly:=true; dbmemo1.ReadOnly:=true;
    dbcombobox1.ReadOnly:=true ;
    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 Tpersonform.sb_cancelClick(Sender: TObject);
begin
  try
    dm.person.cancel;
    dbedit1.ReadOnly:=true; dbedit2.ReadOnly :=true;
    dbedit3.ReadOnly:=true; dbmemo1.ReadOnly:=true;
    dbcombobox1.ReadOnly:=true;
    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 Tpersonform.PageControl1Change(Sender: TObject);
begin
  case pagecontrol1.ActivePageIndex of
  0:
    begin
      sb_add.Enabled :=true; sb_edit.Enabled :=true;
      sb_del.Enabled :=true; sb_save.Enabled :=false;
      sb_cancel.Enabled :=false;
    end;
  1:
    begin
      sb_add.Enabled :=false; sb_edit.Enabled :=false;
      sb_del.Enabled :=false; sb_save.Enabled :=false;
      sb_cancel.Enabled :=false;
    end;
  end;
end;

procedure Tpersonform.DBLookupComboBox1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then
    bitbtn1.SetFocus;
end;

procedure Tpersonform.BitBtn1Click(Sender: TObject);
begin
  a.Close;
  a.CommandText:='select* from 职工 where 部门编号=:id ';
  a.Parameters.ParamByName('id').Value:=dm.bm.FieldValues['部门编号'];
  a.Open ;
  label7.Caption:='共 '+inttostr(a.RecordCount)+' 人';
end;

procedure Tpersonform.FormActivate(Sender: TObject);
begin
  dbcombobox1.SetFocus ;
end;

procedure Tpersonform.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=115 then
     if sb_del.Enabled =true then
       sb_del.Click ;
  if key=116 then
     if sb_save.Enabled =true then
       sb_save.Click ;
  if key=117 then
     if sb_cancel.Enabled =true then
       sb_cancel.Click ;
  if key=119 then
    sb_close.Click ;
end;

procedure Tpersonform.DBComboBox1Enter(Sender: TObject);
begin
  dbcombobox1.Color:=clwhite;
end;

procedure Tpersonform.DBComboBox1Exit(Sender: TObject);
begin
  dbcombobox1.Color:=$00FFB824;
end;

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

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

procedure Tpersonform.DBMemo1Enter(Sender: TObject);
begin
  dbmemo1.Color:=clwhite;
end;

procedure Tpersonform.DBMemo1Exit(Sender: TObject);
begin
  dbmemo1.Color:=$00FFB824;
end;

procedure Tpersonform.DBGrid2TitleClick(Column: TColumn);
begin
  a.Sort:=column.FieldName ;
end;

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

end.

⌨️ 快捷键说明

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