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

📄 unit6.pas

📁 一个用DELPHI编的酒店管理系统。 其中数据库:SQL Server2000, 只需恢复 My database文件夹中 My database_Data.MDF和 My database_Log.
💻 PAS
字号:
unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, ComCtrls, ExtCtrls, DBCtrls, DBTables,
  DB,IdGlobal,QControls;
  
type
  TForm6 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    employeeid: TEdit;
    employeename: TEdit;
    idcard: TEdit;
    gender: TComboBox;
    married: TComboBox;
    politic: TComboBox;
    edu: TComboBox;
    employeerank: TComboBox;
    DBGrid1: TDBGrid;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    asc: TRadioButton;
    desc: TRadioButton;
    id: TRadioButton;
    name: TRadioButton;
    rank: TRadioButton;
    date: TRadioButton;
    Label4: TLabel;
    jointime: TDateTimePicker;
    Label8: TLabel;
    Label11: TLabel;
    workgroup: TComboBox;
    insert: TButton;
    refresh: TButton;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    birthday: TDateTimePicker;
    DataSource1: TDataSource;
    Query1: TQuery;
    Table1: TTable;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ascClick(Sender: TObject);
    procedure descClick(Sender: TObject);
    procedure idClick(Sender: TObject);
    procedure nameClick(Sender: TObject);
    procedure rankClick(Sender: TObject);
    procedure dateClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure insertClick(Sender: TObject);
    procedure refreshClick(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
  Form6: TForm6;

implementation

{$R *.dfm}

procedure Tform6.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   self.Free;
end;
procedure Tform6.ascClick(Sender: TObject);
var
   col:string;
begin
   if id.Checked then col:='员工编号'
   else if name.Checked then col:='员工姓名'
   else if rank.Checked then col:='员工等级'
   else if date.Checked then col:='聘任日期';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from employee order by '+col+' asc');
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure Tform6.descClick(Sender: TObject);
var
   col:string;
begin
   if id.Checked then col:='员工编号'
   else if name.Checked then col:='员工姓名'
   else if rank.Checked then col:='员工等级'
   else if date.Checked then col:='聘任日期';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from employee order by '+col+' desc');
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure Tform6.idClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from employee order by 员工编号 '+s);
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure Tform6.nameClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from employee order by 员工姓名 '+s);
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure Tform6.rankClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from employee order by 员工等级 '+s);
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure Tform6.dateClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from employee order by 聘任日期 '+s);
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure Tform6.FormCreate(Sender: TObject);
var
   maxNo,tmp:integer;
begin
   birthday.Date:=strToDate('1980-3-6');
   joinTime.Date:=now;
   {获取新添加会员的编号----------<会员表>}
   with table1 do
   begin
      open;
      first;
      maxNo:=fieldByName('员工编号').AsInteger;
      while not eof do
      begin
         tmp:=fieldByName('员工编号').AsInteger;
         if maxNo<tmp then maxNo:=tmp;
         next;
      end;
      close;
   end;
   employeeId.Text:=intToStr(maxNo+1);
   activeControl:=employeeName;
   id.Checked:=true;
end;

procedure Tform6.refreshClick(Sender: TObject);
var
   maxNo,tmp:integer;
begin
   {获取新添加会员的编号----------<会员表>}
   with table1 do
   begin
      open;
      first;
      maxNo:=fieldByName('员工编号').AsInteger;
      while not eof do
      begin
         tmp:=fieldByName('员工编号').AsInteger;
         if maxNo<tmp then maxNo:=tmp;
         next;
      end;
      close;
   end;
   employeeId.Text:=intToStr(maxNo+1);
   activeControl:=employeeName;
   employeeName.Text:='';
   idcard.Text:='';
   gender.ItemIndex:=0;
   married.ItemIndex:=0;
   birthday.Date:=now;
   edu.ItemIndex:=0;
   employeerank.ItemIndex:=0;
   workgroup.ItemIndex:=0;
   joinTime.DateTime:=now;
end;



procedure Tform6.insertClick(Sender: TObject);

begin
   {添加一个新员工----------<员工表>}
   try
      {检查"员工姓名"}
      if (employeeName.Text='') or (length(employeeName.Text)>8) then
      begin
         messageDlg('"员工姓名"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=employeeName;
         abort;
      end;
      {检查"性别"}
      if gender.Text='' then
      begin
         messageDlg('请选择员工"性别"!',mtWarning,[mbOk],0);
         activeControl:=gender;
         abort;
      end;
      {检查"学历"}
      if edu.Text='' then
      begin
         messageDlg('请选择员工"学历"!',mtWarning,[mbOk],0);
         activeControl:=edu;
         abort;
      end;
      {检查"生日"与"加盟时间"}
      if birthday.Date>=joinTime.Date then
      begin
         messageDlg('"加盟时间"或"生日"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=birthDay;
         abort;
      end;
      {检查"身份证"}
      if idcard.text='' then
      begin
         messageDlg('"身份证号"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=idcard;
         abort;
      end;
      {检查"员工等级"}
      if employeerank.Text='' then
      begin
         messageDlg('"员工等级"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=employeerank;
         abort;
      end;
      {检查"工作部门"}
      if workgroup.text='' then
      begin
         messageDlg('"工作部门"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=workgroup;
         abort;
      end;

      {将员工数据填入<员工表>}
      with table1 do
      begin
         open;
         insert;
         fieldByName('员工编号').AsInteger:=strToInt(employeeId.Text);
         fieldByName('员工姓名').AsString:=employeeName.Text;
         fieldByName('性别').AsString:=gender.Text;
         fieldByName('政治面貌').AsString:=politic.Text;
         fieldByName('学历').AsString:=edu.Text;
         fieldByName('生日').AsDateTime:=strtodate(DatetoStr(birthday.date));
         fieldByName('身份证号').AsString:=idcard.Text;
         fieldByName('婚姻状况').AsString:=married.Text;
         fieldByName('聘任日期').AsDateTime:=strtodate(DatetoStr(joinTime.date));
         fieldByName('员工等级').AsString:=employeerank.Text;
         fieldByName('工作部门').AsString:=workgroup.Text;
         post;
         close;
      end;
   except
      on ex:EConvertError do
      begin
         messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
      end;
   end; {end of try}

   {让数据控件dbGrid1同步显示}
   with query1 do
   begin
      close;
      sql.Clear;
      sql.Add('select * from employee');
      open;
   end;

   {清屏准备输入下一位新员工}
   refreshClick(Sender);//调用清屏按钮的处理操作
   messageDlg('新员工添加成功!',mtWarning,[mbOk],0);
   activeControl:=employeeName;
end;


end.

⌨️ 快捷键说明

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