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

📄 ufrm_main.pas

📁 DELPHI写的全套软件工程流程安排下的人事管理系统。数据库为自带数据库。急需下载J3D源码。希望帮帮忙。谢谢~
💻 PAS
字号:
unit Ufrm_main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ComCtrls , StdCtrls, DB, DBTables;

type
  Tfrm_main = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    GroupBox3: TGroupBox;
    Edit10: TEdit;
    Edit11: TEdit;
    GroupBox4: TGroupBox;
    Label10: TLabel;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    TabSheet3: TTabSheet;
    GroupBox5: TGroupBox;
    Label11: TLabel;
    DBGrid2: TDBGrid;
    Button10: TButton;
    StatusBar1: TStatusBar;
    Label12: TLabel;
    Label13: TLabel;
    Button4: TButton;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Button5: TButton;
    DataSource1: TDataSource;
    Table1: TTable;
    DataSource2: TDataSource;
    Table2: TTable;
    Button6: TButton;
    procedure Button10Click(Sender: TObject);
    procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Edit12KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit5KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit6KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit7KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frm_main: Tfrm_main; user:string;

implementation

{$R *.dfm}

procedure Tfrm_main.Button10Click(Sender: TObject);
begin
table1.Close;
table2.Close;
close;
end;

procedure Tfrm_main.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Edit1.Text := Table1.FieldByName('编号').AsString;
  Edit2.Text := Table1.FieldByName('姓名').AsString;
  Edit3.Text := Table1.FieldByName('性别').AsString;
  Edit4.Text := Table1.FieldByName('年龄').AsString;
  Edit5.Text := Table1.FieldByName('部门').AsString;
  Edit6.Text := Table1.FieldByName('专业').AsString;
  Edit7.Text := Table1.FieldByName('职称').AsString;
  Edit8.Text := Table1.FieldByName('工资').AsString;
  Edit9.Text := Table1.FieldByName('津贴').AsString;
  Edit12.Text := Table1.FieldByName('部门').AsString;

  edit13.Clear;
  edit14.Clear;
  edit15.Clear;
end;

procedure Tfrm_main.FormCreate(Sender: TObject);
begin
table1.Open ;
table2.Open;
  Edit1.Text := Table1.FieldByName('编号').AsString;
  Edit2.Text := Table1.FieldByName('姓名').AsString;
  Edit3.Text := Table1.FieldByName('性别').AsString;
  Edit4.Text := Table1.FieldByName('年龄').AsString;
  Edit5.Text := Table1.FieldByName('部门').AsString;
  Edit6.Text := Table1.FieldByName('专业').AsString;
  Edit7.Text := Table1.FieldByName('职称').AsString;
  Edit8.Text := Table1.FieldByName('工资').AsString;
  Edit9.Text := Table1.FieldByName('津贴').AsString;
  Edit12.Text := Table1.FieldByName('部门').AsString;
end;

procedure Tfrm_main.Button4Click(Sender: TObject);
var
wage,commission,i : integer;
begin
table1.First;
wage :=0;
commission :=0;
  for i:=1 to table1.RecordCount do
  begin
  wage := wage + strtoint(Table1.FieldByName('工资').AsString);
  commission :=commission + strtoint(Table1.FieldByName('津贴').AsString);
  if not(Table1.Eof) then Table1.Next;
  end;
  edit10.Text :=inttostr(wage);
  edit11.Text :=inttostr(commission);

end;

procedure Tfrm_main.Button5Click(Sender: TObject);
var
wage,commission,i ,mark ,num: integer;
begin
  table1.First;
  mark :=0;
  for i:=1 to table1.RecordCount do
  begin
  if (edit12.Text = Table1.FieldByName('部门').AsString) then
  begin
  mark :=1;
  break;
  end;
  if not(Table1.Eof) then Table1.Next;
  end;
  if(mark=0) then
  begin
  showmessage('该部门不存在。');
  exit;
  end;
  
  table1.First;
  wage :=0;
  commission :=0;
  num:=0;
  for i:=1 to table1.RecordCount do
  begin
  if (Table1.FieldByName('部门').AsString = edit12.Text ) then
    begin
    wage := wage + strtoint(Table1.FieldByName('工资').AsString);
    commission :=commission + strtoint(Table1.FieldByName('津贴').AsString);
    num:=num+1;
    end;
    if not(Table1.Eof) then Table1.Next;
  end;
  edit13.Text := inttostr(num);
  edit14.Text :=inttostr(wage);
  edit15.Text :=inttostr(commission);
end;

procedure Tfrm_main.Button1Click(Sender: TObject);
var
temp:integer;
gender1,gender2,t1,t2:bool;
begin

gender1:= (edit3.Text='男');
gender2 := (edit3.Text='女');
if not(gender1 or gender2)  then
begin
showmessage('性别要填"男"或"女"');
edit3.clear;
exit;
end;

try
temp := StrToint(edit4.Text);
except
on E: EConvertError do
  begin
  ShowMessage('年龄必须是一个数字。');
  edit4.clear;
  exit;
  end ;
end ;
t1:= temp<61;
t2:=temp>14 ;
if not( t1 and t2 )then
  begin
  ShowMessage('一个正常职工年龄必须在15-60岁之间。');
  edit4.clear;
  exit;
  end;

try
temp := StrToint(edit8.Text);
except
on E: EConvertError do
  begin
  ShowMessage('薪水必须是一个数字。');
  edit8.clear;
  exit;
  end ;
end ;
t1:= temp<30001;
t2:=temp>0 ;
if not( t1 and t2 )then
  begin
  ShowMessage('一个正常职工薪水应该在1元--3万元之间。');
  edit8.clear;
  exit;
  end;

try
temp := StrToint(edit9.Text);
except
on E: EConvertError do
  begin
  ShowMessage('津贴必须是一个数字。');
  edit9.clear;
  exit;
  end ;
end ;
t1:= temp<10001;
t2:=temp>0 ;
if not( t1 and t2 )then
  begin
  ShowMessage('一个正常职工津贴应该在1元--1万元之间。');
  edit9.clear;
  exit;
  end;

if not Table1.Active then
  begin
    ShowMessage('数据集未打开,请先设置数据集信息。');
    Exit;
  end;
  if Table1.FindKey([edit1.text]) then
  begin
    ShowMessage('此员工编号已经存在,请重新输入。');
    Exit;
  end;

  If not(MessageDlg('你确定要插入新成员吗?',mtConfirmation,
      [mbYes,mbno],0)=mrYes) then exit;
      
  Table1.InsertRecord([edit1.Text, edit2.text,edit3.Text , edit4.Text,
  edit5.Text, edit6.Text, edit7.Text,edit8.Text,edit9.Text]);
  Table1.Refresh;
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '插入新员工', '无',edit1.Text,user]);
  Table2.Refresh;
end;

procedure Tfrm_main.Button2Click(Sender: TObject);
begin
if Table1.IsEmpty then
  begin
    ShowMessage('没有可删除的记录。');
    Exit;
  end;

  If not(MessageDlg('你确定要删除此条记录吗?',mtConfirmation,
      [mbYes,mbno],0)=mrYes) then exit;
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '删除员工', edit1.Text,'无', user]);
  Table2.Refresh;

  Table1.Delete;
  Table1.Refresh;
end;

procedure Tfrm_main.Button3Click(Sender: TObject);
begin
  Table1.edit;
  if not (Table1.FieldByName('编号').AsString = edit1.Text) then
  begin
  showmessage('请不要改动员工编号');
  exit;
  end;

  If not(MessageDlg('你确定要更新此条记录吗?',mtConfirmation,
      [mbYes,mbno],0)=mrYes) then exit;

  if not (Table1.FieldByName('姓名').AsString = edit2.text) then
  begin
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '姓名', Table1.FieldByName('姓名').AsString,edit2.text, user+'-'+edit1.Text]);
  Table1.FieldByName('姓名').AsString := edit2.text;
  end;
  if not (Table1.FieldbyName('性别').AsString = edit3.Text)then
  begin
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '性别', Table1.FieldByName('性别').AsString,edit3.text, user+'-'+edit1.Text]);
  Table1.FieldByName('性别').AsString := edit3.text;
  end;
  if not (Table1.FieldbyName('年龄').AsString = edit4.Text)then
  begin
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '年龄', Table1.FieldByName('年龄').AsString,edit4.text, user+'-'+edit1.Text]);
  Table1.FieldByName('年龄').AsString := edit4.text;
  end;
  if not ( Table1.FieldByName('部门').AsString = edit5.text) then
  begin
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '部门', Table1.FieldByName('部门').AsString,edit5.text, user+'-'+edit1.Text]);
  Table1.FieldByName('部门').AsString := edit5.text;
  end;
  if not (Table1.FieldByName('专业').AsString = edit6.text)then
   begin
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '专业', Table1.FieldByName('专业').AsString,edit6.text, user+'-'+edit1.Text]);
  Table1.FieldByName('专业').AsString := edit6.text;
  end;
  if not(Table1.FieldByName('职称').AsString = edit7.text)then
  begin
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '职称', Table1.FieldByName('职称').AsString,edit7.text, user+'-'+edit1.Text]);
  Table1.FieldByName('职称').AsString := edit7.text;
  end;
  if not(Table1.FieldByName('工资').AsString = edit8.text)then
  begin
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '工资', Table1.FieldByName('工资').AsString,edit8.text, user+'-'+edit1.Text]);
  Table1.FieldByName('工资').AsString := edit8.text;
  end;
  if not(Table1.FieldByName('津贴').AsString = edit9.text)then
  begin
  Table2.InsertRecord([inttostr(table2.RecordCount+1), FormatDatetime('yyyy-mm-dd', date() ),
  '津贴', Table1.FieldByName('津贴').AsString,edit9.text, user+'-'+edit1.Text]);
  Table1.FieldByName('津贴').AsString := edit9.text;
  end;
  Table2.Refresh;
  Table1.Post;
  Table1.Refresh;
end;


procedure Tfrm_main.Button6Click(Sender: TObject);
begin
if Table2.IsEmpty then
  begin
    ShowMessage('没有可删除的记录。');
    Exit;
  end;
  Table2.Delete;
  Table2.Refresh;
end;

procedure Tfrm_main.Edit12KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if length(edit12.Text)>12 then
begin
showmessage('部门的名称不得长于6个汉字。');
edit12.clear;
exit;
end;
end;

procedure Tfrm_main.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if length(edit1.Text)>10 then
begin
showmessage('编号不得长于10位。');
edit1.clear;
exit;
end;
end;

procedure Tfrm_main.Edit2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if length(edit2.Text)>10 then
begin
showmessage('名字不得多于5个汉字。');
edit2.clear;
exit;
end;
end;

procedure Tfrm_main.Edit5KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if length(edit5.Text)>12 then
begin
showmessage('部门的名称不得长于6个汉字。');
edit5.clear;
exit;
end;
end;

procedure Tfrm_main.Edit6KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if length(edit6.Text)>16 then
begin
showmessage('部门的名称不得长于8个汉字。');
edit6.clear;
exit;
end;
end;

procedure Tfrm_main.Edit7KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if length(edit7.Text)>4 then
begin
showmessage('部门的名称不得长于4个汉字。');
edit7.clear;
exit;
end;
end;

end.

⌨️ 快捷键说明

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