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

📄 unit7.pas

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

interface

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

type
  TForm7 = 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;
    GroupBox4: TGroupBox;
    lowbirth: TDateTimePicker;
    highbirth: TDateTimePicker;
    Label4: TLabel;
    GroupBox5: TGroupBox;
    lowjoin: TDateTimePicker;
    highjoin: TDateTimePicker;
    Label8: TLabel;
    GroupBox6: TGroupBox;
    DBNavigator1: TDBNavigator;
    GroupBox7: TGroupBox;
    select: TButton;
    refresh: TButton;
    sqlemployee: TQuery;
    DataSource1: TDataSource;
    modify: TButton;
    delete: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure ascClick(Sender: TObject);
    procedure descClick(Sender: TObject);
    procedure idClick(Sender: TObject);
    procedure nameClick(Sender: TObject);
    procedure selectClick(Sender: TObject);
    procedure refreshClick(Sender: TObject);
    procedure rankClick(Sender: TObject);
    procedure dateClick(Sender: TObject);
    procedure modifyClick(Sender: TObject);
    procedure deleteClick(Sender: TObject);
  private
    { Private declarations }
    s:string;
    function isInteger(s:string):boolean;
  public
    { Public declarations }
  end;

var
  Form7: TForm7;

implementation

uses Unit34, Unit35;



{$R *.dfm}

procedure Tform7.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   self.Free;
end;

procedure Tform7.FormCreate(Sender: TObject);
begin
   s:='select * from employee ';
   with sqlEmployee do
   begin
      close;
      sql.Clear;
      sql.Add(s);
      open;
   end;
   activeControl:=employeeId;
   id.Checked:=true;
   lowbirth.Date:=strToDate('1800-1-1');
   highbirth.Date:=now;
   lowjoin.Date:=strTodate('1800-1-1');
   highjoin.Date:=now;
end;

procedure Tform7.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:='聘任日期';
   with sqlEmployee do
   begin
   Close;
   SQL.Clear;
   SQL.Add(s+'order by '+col+' asc');
   try
      Open;
   except
      ExecSQL;
   end;
   end;
end;

procedure Tform7.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:='聘任日期';
   with sqlEmployee do
   begin
   Close;
   SQL.Clear;
   SQL.Add(s+'order by '+col+' desc');
   try
      Open;
   except
      ExecSQL;
   end;
   end;
end;

procedure Tform7.idClick(Sender: TObject);
var
   t:string;
begin
   if asc.Checked then t:='asc'
   else if desc.Checked then t:='desc';
   with sqlEmployee do
   begin
   Close;
   SQL.Clear;
   SQL.Add(s+' order by 员工编号 '+t);
   try
      Open;
   except
      ExecSQL;
   end;
   end;
end;

procedure Tform7.nameClick(Sender: TObject);
var
   t:string;
begin
   if asc.Checked then t:='asc'
   else if desc.Checked then t:='desc';
   with sqlEmployee do
   begin
   Close;
   SQL.Clear;
   SQL.Add(s+' order by 员工姓名 '+t);
   try
      Open;
   except
      ExecSQL;
   end;
   end;
end;

procedure TForm7.rankClick(Sender: TObject);
var
   t:string;
begin
   if asc.Checked then t:='asc'
   else if desc.Checked then t:='desc';
   with sqlEmployee do
   begin
   Close;
   SQL.Clear;
   SQL.Add(s+' order by 员工等级 '+t);
   try
      Open;
   except
      ExecSQL;
   end;
   end;
end;

procedure TForm7.dateClick(Sender: TObject);
var
   t:string;
begin
   if asc.Checked then t:='asc'
   else if desc.Checked then t:='desc';
   with sqlEmployee do
   begin
   Close;
   SQL.Clear;
   SQL.Add(s+' order by 聘任日期 '+t);
   try
      Open;
   except
      ExecSQL;
   end;
   end;
end;

procedure TForm7.refreshClick(Sender: TObject);
begin
   employeeId.Text:='';
   employeeName.Text:='';
   gender.ItemIndex:=0;
   edu.itemindex:=0;
   politic.itemindex:=0;
   married.itemindex:=0;
   activeControl:=employeeId;
   lowbirth.Date:=strToDate('1800-1-1');
   highbirth.Date:=now;
   lowjoin.Date:=strTodate('1800-1-1');
   highjoin.Date:=now;
   employeerank.itemindex:=0;
   idcard.Text:='';
   {让数据控件dbGrid1同步显示}
   with sqlemployee do
   begin
      close;
      sql.Clear;
      sql.Add('select * from employee');
      open;
   end;
end;

procedure TForm7.selectClick(Sender: TObject);
var
   i:integer;
   low,high:string;
begin
   s:='select * from employee ';
   i:=0;
   {处理员工编号}
   if isInteger(employeeId.Text) then
   begin
      s:=s+'where 员工编号='+employeeId.Text;
      i:=i+1;
   end;
   {处理员工姓名}
   if employeeName.Text<>'' then
   begin
      if i=0 then
         s:=s+'where 员工姓名='''+employeeName.Text+''''
      else
         s:=s+' and  员工姓名='''+employeeName.Text+'''';
      i:=i+1;
   end;
   {处理性别}
   if gender.Text<>'' then
   begin

      if i=0 then
         s:=s+'where 性别='''+gender.Text+''''
      else
         s:=s+' and  性别='''+gender.Text+'''';
      i:=i+1;
   end;
   
   {处理生日}
   low:=formatDateTime('mm''/''dd''/''yyyy',lowbirth.Date);
   high:=formatDateTime('mm''/''dd''/''yyyy',highbirth.Date);
   if i=0 then
      s:=s+'where '
   else
      s:=s+' and ';
   s:=s+'生日<='''+high+''' and 生日>='''+low+'''';
   {处理聘任日期}
   low:=formatDateTime('mm''/''dd''/''yyyy',lowjoin.Date);
   high:=formatDateTime('mm''/''dd''/''yyyy',highjoin.Date);
   s:=s+' and '+'聘任日期<='''+high+''' and 聘任日期>='''+low+'''';
   {处理学历}
   if edu.Text<>'' then
      s:=s+' and 学历='''+edu.Text+'''';
   {处理政治面貌}
   if politic.Text<>'' then
      s:=s+' and 政治面貌='''+politic.Text+'''';
   {处理婚姻状况}
    if married.Text<>'' then
      s:=s+' and 婚姻状况='''+married.Text+'''';
      {处理员工等级}
    if employeerank.Text<>'' then
      s:=s+' and 员工等级='''+employeerank.Text+'''';
    if idcard.Text<>'' then
      s:=s+' and 身份证号='''+idcard.Text+'''';
    with sqlEmployee do
    begin
      close;
      sql.Clear;
      sql.Add(s);
      try
         open;
      except
         execsql;
      end;
    end;
end;

function Tform7.isInteger(s: string): boolean;
var
   i:integer;
begin
   i:=1;
   if length(s)=0 then
   begin
      result:=false;
      exit;
   end;
   while i<=length(s) do
   begin
      if isNumeric(s[i])=false then
      begin
         result:=false;
         exit;
      end;
      i:=i+1;
   end;
   result:=true;
end;

procedure TForm7.modifyClick(Sender: TObject);
begin
form34:=TForm34.Create(self);
   form34.ShowModal;
end;

procedure TForm7.deleteClick(Sender: TObject);
begin
form35:=TForm35.create(self);
   form35.ShowModal;
end;

end.

⌨️ 快捷键说明

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