?? kaomodify.~pas
字號(hào):
unit kaomodify;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DB, DBTables, Buttons, ComCtrls, Grids, DBGrids,
ExtCtrls, Gauges, Spin;
type
TForm25 = class(TForm)
GroupBox1: TGroupBox;
seek_by_time: TCheckBox;
Label1: TLabel;
seek_start_time: TMaskEdit;
seek_by_person: TCheckBox;
Label2: TLabel;
seek_end_time: TMaskEdit;
Label3: TLabel;
seek_person_id: TMaskEdit;
Label4: TLabel;
seek_person_name: TEdit;
T_person: TTable;
DS_person: TDataSource;
PageControl1: TPageControl;
SpeedButton1: TSpeedButton;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
GroupBox2: TGroupBox;
Label5: TLabel;
Label6: TLabel;
DBGrid1: TDBGrid;
B_delete_attend: TButton;
B_seek_io: TButton;
i_io_time: TMaskEdit;
i_in_out: TRadioGroup;
B_add_all: TButton;
B_add_depart: TButton;
B_add_person: TButton;
Label8: TLabel;
i_io_person_id: TMaskEdit;
Label9: TLabel;
i_io_person_name: TEdit;
Gauge1: TGauge;
T_depart: TTable;
DS_depart: TDataSource;
T_counter: TTable;
T_attendance: TTable;
DS_attendance: TDataSource;
GroupBox3: TGroupBox;
Label10: TLabel;
i_overtime_date: TMaskEdit;
Label11: TLabel;
i_overtime_hour: TSpinEdit;
Label12: TLabel;
Label13: TLabel;
i_overtime_person_id: TMaskEdit;
Label14: TLabel;
i_overtime_person_name: TEdit;
Label15: TLabel;
B_overtime_add: TButton;
B_delete_overtime: TButton;
B_seek_overtime: TButton;
T_overtime: TTable;
DS_overtime: TDataSource;
DBGrid2: TDBGrid;
GroupBox4: TGroupBox;
Label16: TLabel;
Label17: TLabel;
i_leave_start_time: TMaskEdit;
i_leave_end_time: TMaskEdit;
Label18: TLabel;
i_leave_person_id: TMaskEdit;
i_leave_person_name: TEdit;
Label19: TLabel;
i_leave_reason: TMemo;
B_leave_add: TButton;
Label20: TLabel;
DBGrid3: TDBGrid;
T_leave: TTable;
DS_leave: TDataSource;
B_delete_leave: TButton;
B_seek_leave: TButton;
GroupBox5: TGroupBox;
Label7: TLabel;
Label21: TLabel;
i_errand_start_time: TMaskEdit;
Label22: TLabel;
Label23: TLabel;
i_errand_end_time: TMaskEdit;
i_errand_person_id: TMaskEdit;
i_errand_person_name: TEdit;
Label24: TLabel;
i_errand_description: TMemo;
B_errand_add: TButton;
Label25: TLabel;
DBGrid4: TDBGrid;
B_delete_errand: TButton;
B_seek_errand: TButton;
T_errand: TTable;
DS_errand: TDataSource;
procedure FormCreate(Sender: TObject);
procedure seek_person_idChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure i_io_person_idChange(Sender: TObject);
procedure io_add(Person_id:String);
procedure B_add_personClick(Sender: TObject);
procedure B_add_departClick(Sender: TObject);
procedure B_add_allClick(Sender: TObject);
procedure B_delete_attendClick(Sender: TObject);
procedure B_seek_ioClick(Sender: TObject);
procedure i_overtime_person_idChange(Sender: TObject);
procedure B_overtime_addClick(Sender: TObject);
procedure B_delete_overtimeClick(Sender: TObject);
procedure B_seek_overtimeClick(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure i_leave_person_idChange(Sender: TObject);
procedure B_leave_addClick(Sender: TObject);
procedure B_delete_leaveClick(Sender: TObject);
procedure B_seek_leaveClick(Sender: TObject);
procedure TabSheet4Show(Sender: TObject);
procedure i_errand_person_idChange(Sender: TObject);
procedure B_errand_addClick(Sender: TObject);
procedure B_delete_errandClick(Sender: TObject);
procedure B_seek_errandClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form25: TForm25;
implementation
uses kaoqi;
{$R *.dfm}
procedure TForm25.FormCreate(Sender: TObject);
begin
Seek_start_time.Text:=DateToStr(now-30);//設(shè)置開(kāi)始時(shí)間為前一個(gè)月
Seek_end_time.Text:=DateToStr(now); //設(shè)置結(jié)束時(shí)間為當(dāng)前時(shí)間
end;
procedure TForm25.seek_person_idChange(Sender: TObject);
begin
T_person.Filter:='ID='''+Seek_person_id.Text+''''; //設(shè)置過(guò)濾條件,提取教師信息
T_person.Filtered:=True; //激活過(guò)濾器
T_person.Open; //打開(kāi)教師信息表
if T_person.RecordCount=1 then //判斷教師記錄是否存在
Seek_person_name.Text:=T_person['NAME'] //顯示教師姓名
else
Seek_person_name.Text:=''; //如果不存在,清除教師姓名的顯示
T_person.Close; //關(guān)閉教師信息表
end;
procedure TForm25.SpeedButton1Click(Sender: TObject);
begin
form25.Hide; //關(guān)閉當(dāng)前界面
form22.show; //顯示考勤子系統(tǒng)界面
end;
procedure TForm25.TabSheet1Show(Sender: TObject);
begin
i_io_time.Text:=DateTimeToStr(now); //界面初始化時(shí),設(shè)置出入時(shí)間為當(dāng)前時(shí)間
T_attendance.Open; //打開(kāi)考勤記錄表
end;
procedure TForm25.i_io_person_idChange(Sender: TObject); //輸入教師號(hào)時(shí),檢索相應(yīng)的信息
begin
T_person.Filter:='ID='''+i_io_person_id.Text+''''; //輸入教師號(hào)時(shí),設(shè)置教師過(guò)濾條件
T_person.Filtered:=True; //激活過(guò)濾器
T_person.Open; //打開(kāi)教師信息表
if T_person.RecordCount=1 then //如果教師存在
begin
i_io_person_name.Text:=T_person['NAME']; //提取教師姓名,賦給i_io_person_name.text
end
else
i_io_person_name.Text:=''; //否則,清空教師姓名顯示
T_person.Close; //關(guān)閉教師信息表
end;
procedure TForm25.io_add(Person_id:String); //添加出勤記錄子程序
var
counter:Integer; //變量申明,用于計(jì)數(shù)的變量
in_out:String; //變量申明,用于保存出入情況
io_time:TDateTime; //變量申明,用于保存出入時(shí)間
begin
//記錄編號(hào)
T_counter.Filter:='ID=''T'''; //設(shè)置過(guò)濾器,提取計(jì)數(shù)值
T_counter.Filtered:=True; //激活過(guò)濾器
T_counter.Open; //打開(kāi)計(jì)數(shù)表
counter:=T_counter['COUNTER_VALUE']; //獲取計(jì)數(shù)值
Inc(counter); //給計(jì)數(shù)變量增值
T_counter.Edit; //編輯計(jì)數(shù)表
T_counter['COUNTER_VALUE']:=counter; //保存當(dāng)前計(jì)數(shù)
T_counter.Post; //提交修改
T_counter.Close; //關(guān)閉計(jì)數(shù)器表
//添加記錄
if i_in_out.ItemIndex=0 then //判斷確定出入情況
in_out:='O' //出的賦值
else
in_out:='I'; //入的賦值
io_time:=StrToDateTime(i_io_time.Text); //轉(zhuǎn)換出入時(shí)間數(shù)據(jù)類型
T_attendance.Filtered:=False; //取消過(guò)濾器
T_attendance.Open; //打開(kāi)考勤記錄表
T_attendance.AppendRecord([counter,Person_id,in_out,io_time]); //追加考勤記錄
end;
procedure TForm25.B_add_personClick(Sender: TObject); //追加單個(gè)教師考勤記錄
begin
if length(i_io_person_name.Text)>0 then //判斷教師是否存在
begin
io_add(i_io_person_id.Text); //追加單個(gè)教師記錄
end;
end;
procedure TForm25.B_add_departClick(Sender: TObject); //追加系別教師考勤記錄
var
i,n:integer; //用于保存記錄條數(shù)的變量
begin
T_person.Filter:='DEPARTMENT='''+''' AND STATE=''T'''; //設(shè)置過(guò)濾條件
T_person.Filtered:=True; //激活過(guò)濾器
T_person.Open; //打開(kāi)教師信息表
n:=T_person.RecordCount; //獲取教師人數(shù)
i:=0; //初始化已添加記錄條數(shù)
Gauge1.Progress:=0; //初始化進(jìn)度表
T_person.First; //跳到第一條記錄
while not T_person.Eof do //如果不是教師信息表的末尾就對(duì)數(shù)據(jù)表中的所有記錄進(jìn)行處理
begin
io_add(T_person['ID']); //添加當(dāng)前教師出勤記錄
T_person.Next; //跳到下一個(gè)教師記錄
Inc(i); //已添加記錄條數(shù)加1
Gauge1.Progress:=(100*i) div n; //顯示進(jìn)度
end;
T_person.Close; //處理完后關(guān)閉教師信息表
end;
procedure TForm25.B_add_allClick(Sender: TObject); //添加所有教師出勤記錄
var
i,n:integer;
begin
T_person.Filter:='STATE=''T'''; //設(shè)置過(guò)濾條件,提取教師信息
T_person.filtered:=True; //激活過(guò)濾器
T_person.Open; //打開(kāi)教師信息表
n:=T_person.RecordCount; //提取教師人數(shù)
i:=0; //初始化已添加記錄條數(shù)
Gauge1.Progress:=0; //初始化進(jìn)度條
T_person.First; //教師表的第一個(gè)記錄
while not T_person.Eof do //如果不是到教師信息表的末尾,就進(jìn)行下列的操作
begin
io_add(T_person['ID']); //添加當(dāng)前員工考勤記錄
T_person.Next; //跳到下一個(gè)員工記錄
Inc(i); //已添加記錄條數(shù)加1
Gauge1.Progress:=(100*i) div n; //顯示進(jìn)度
end;
T_person.Close; //關(guān)閉員工信息表
end;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -