📄 hm_roll.pas
字号:
unit hm_roll;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ComCtrls, ExtCtrls, DB, ADODB, Grids, DBGrids;
type
Thm_rollForm = class(TForm)
Image1: TImage;
Image2: TImage;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
SpeedButton1: TSpeedButton;
Label2: TLabel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label4: TLabel;
Label5: TLabel;
Label3: TLabel;
Label6: TLabel;
Label7: TLabel;
DBGrid1: TDBGrid;
Edit6: TEdit;
Edit7: TEdit;
TabSheet2: TTabSheet;
DBGrid2: TDBGrid;
TabSheet3: TTabSheet;
DBGrid3: TDBGrid;
Label8: TLabel;
Label9: TLabel;
Edit11: TEdit;
Label10: TLabel;
Edit12: TEdit;
Label11: TLabel;
Label12: TLabel;
Edit14: TEdit;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
Label13: TLabel;
Edit15: TEdit;
Label14: TLabel;
Edit16: TEdit;
Label15: TLabel;
Label16: TLabel;
Edit19: TEdit;
Label17: TLabel;
Label18: TLabel;
Edit20: TEdit;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
ADOQuery4: TADOQuery;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
DateTimePicker5: TDateTimePicker;
DateTimePicker6: TDateTimePicker;
Edit13: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton1Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid2CellClick(Column: TColumn);
procedure DBGrid3CellClick(Column: TColumn);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit6Exit(Sender: TObject);
procedure Edit11Exit(Sender: TObject);
procedure Edit15Exit(Sender: TObject);
procedure ADOQuery1AfterOpen(DataSet: TDataSet);
procedure ADOQuery1AfterScroll(DataSet: TDataSet);
procedure ADOQuery2AfterScroll(DataSet: TDataSet);
procedure ADOQuery2AfterOpen(DataSet: TDataSet);
procedure ADOQuery3AfterOpen(DataSet: TDataSet);
procedure ADOQuery3AfterScroll(DataSet: TDataSet);
procedure FormShow(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
private
procedure page1Data;
procedure page2Data;
procedure page3Data;
{ Private declarations }
public
{ Public declarations }
end;
var
hm_rollForm: Thm_rollForm;
itemstr:string;
implementation
uses hm_main, hm_login;
{$R *.dfm}
//--------------窗口生成时,对普通用户封锁编辑类选项-------------
procedure Thm_rollForm.FormCreate(Sender: TObject);
begin
if hm_loginForm.idright < 2 then
begin
SpeedButton2.Enabled:=false;
SpeedButton3.Enabled:=false;
SpeedButton4.Enabled:=false;
end;
SpeedButton1Click(nil);
end;
//--------考勤信息窗口关闭时,显示主窗口--------------
procedure Thm_rollForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
hm_mainForm.Visible:=true;
end;
//---------------关联查询,提取员工考勤,加班,出差信息
procedure Thm_rollForm.SpeedButton1Click(Sender: TObject);
var
tempstr:string;
begin
tempstr:='';
//是否有员工编号限定
if CheckBox1.Checked and (trim(Edit1.Text)<>'') then
begin
tempstr:= tempstr+' and 员工编号 = '+ QuotedStr(trim(Edit1.Text));
end;
//是否有员工姓名限定
if CheckBox2.Checked and (trim(Edit2.Text)<>'') then
begin
tempstr:= tempstr+' and 姓名 = '''+ trim(Edit2.Text)+'''';
end;
//是否有时间范围限定
if CheckBox3.Checked then
begin
if (trim(Edit3.Text)<>'') then
begin
ShowMessage(datetostr(strtodate(trim(Edit3.Text))));
tempstr:= tempstr+' and 日期 >= CONVERT(DATETIME, '''+datetostr(strtodate(trim(Edit3.Text)))+' 00:00:00'', 102)';
end;
if (trim(Edit4.Text)<>'') then
begin
ShowMessage(datetostr(strtodate(trim(Edit4.Text))));
tempstr:= tempstr+' and 日期 < CONVERT(DATETIME, '''+datetostr(strtodate(trim(Edit4.Text)))+' 00:00:00'', 102)';
end;
end;
//从日常考勤表提取信息
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select * from 日常考勤 where 条目号 >0' +tempstr;
//从加班信息表提取信息
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text := 'select * from 加班信息 where 条目号 >0' +tempstr;
//从出差信息表提取信息
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Text := 'select * from 出差信息 where 条目号 >0' +tempstr;
//执行
ADOQuery1.Open;
ADOQuery2.Open;
ADOQuery3.Open;
end;
//--------点击日常考勤表时,显示详细信息-------------
procedure Thm_rollForm.DBGrid1CellClick(Column: TColumn);
begin
page1Data;
end;
//--------点击加班信息表时,显示详细信息-------------
procedure Thm_rollForm.DBGrid2CellClick(Column: TColumn);
begin
page2Data;
end;
//--------点击出差信息表时,显示详细信息-------------
procedure Thm_rollForm.DBGrid3CellClick(Column: TColumn);
begin
page3Data;
end;
//------------清掉输入的关键词
procedure Thm_rollForm.CheckBox1Click(Sender: TObject);
begin
Edit1.Clear;
end;
//------------清掉输入的关键词
procedure Thm_rollForm.CheckBox2Click(Sender: TObject);
begin
Edit2.Clear;
end;
//------------清掉输入的关键词
procedure Thm_rollForm.CheckBox3Click(Sender: TObject);
begin
Edit3.Clear;
Edit4.Clear;
end;
//-------------日常考勤TabSheet1显示时,清除显示的信息
procedure Thm_rollForm.TabSheet1Show(Sender: TObject);
begin
//Edit5.Clear;
//Edit6.Clear;
//Edit7.Clear;
//Edit8.Clear;
//Edit9.Clear;
end;
//-------------加班信息TabSheet2显示时,清除显示的信息
procedure Thm_rollForm.TabSheet2Show(Sender: TObject);
begin
//Edit10.Clear;
Edit11.Clear;
Edit12.Clear;
Edit13.Clear;
Edit14.Clear;
end;
//-------------出差信息TabSheet3显示时,清除显示的信息
procedure Thm_rollForm.TabSheet3Show(Sender: TObject);
begin
Edit15.Clear;
Edit16.Clear;
//Edit17.Clear;
//Edit18.Clear;
Edit19.Clear;
Edit20.Clear;
end;
//------------------选择修改--------------------
procedure Thm_rollForm.SpeedButton2Click(Sender: TObject);
var
bEdit: Boolean;
begin
bEdit := False;
Case PageControl1.ActivePageIndex of
0: begin
if ADOQuery1.Active then
bEdit := ADOQuery1.RecordCount > 0;
end;
1: begin
if ADOQuery2.Active then
bEdit := ADOQuery2.RecordCount > 0;
end;
2: begin
if ADOQuery3.Active then
bEdit := ADOQuery3.RecordCount > 0;
end;
end;
if bEdit then
begin
SpeedButton5.Visible:=true;
SpeedButton6.Visible:=true;
SpeedButton3.Enabled:=false;
SpeedButton4.Enabled:=false;
end;
end;
//------------------选择添加--------------------
procedure Thm_rollForm.SpeedButton3Click(Sender: TObject);
var
bAppend: Boolean;
begin
bAppend := False;
Case PageControl1.ActivePageIndex of
0: bAppend := ADOQuery1.Active ;
1: bAppend := ADOQuery2.Active ;
2: bAppend := ADOQuery3.Active ;
end;
if bAppend then
begin
SpeedButton5.Visible:=true;
SpeedButton6.Visible:=true;
SpeedButton2.Enabled:=false;
SpeedButton4.Enabled:=false;
end;
end;
//---------------------选择清除--------------
procedure Thm_rollForm.SpeedButton4Click(Sender: TObject);
var
bDelete: Boolean;
begin
bDelete := False;
Case PageControl1.ActivePageIndex of
0: begin
if ADOQuery1.Active then
begin
bDelete := ADOQuery1.RecordCount > 0;
itemstr := Trim(ADOQuery1.FieldbyName('条目号').AsString);
end;
end;
1: begin
if ADOQuery2.Active then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -