【delphi开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了delphi开源代码-kqxg.pas的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
unit kqxg;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBCGrids, ComCtrls, StdCtrls, Spin, DBCtrls, ExtCtrls, Mask, Grids,
DBGrids, Gauges;
type
TF_attendance = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
i_io_time: TMaskEdit;
Label1: TLabel;
i_in_out: TRadioGroup;
i_io_person_id: TMaskEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
B_add_all: TButton;
B_add_depart: TButton;
B_add_person: TButton;
i_io_person_name: TEdit;
GroupBox3: TGroupBox;
Label10: TLabel;
Label12: TLabel;
i_leave_start_time: TMaskEdit;
i_leave_person_id: TMaskEdit;
B_leave_add: TButton;
i_leave_person_name: TEdit;
DBGrid3: TDBGrid;
i_leave_end_time: TMaskEdit;
Label11: TLabel;
i_leave_reason: TMemo;
Label13: TLabel;
GroupBox5: TGroupBox;
Label19: TLabel;
Label20: TLabel;
i_overtime_date: TMaskEdit;
i_overtime_person_id: TMaskEdit;
B_overtime_add: TButton;
i_overtime_person_name: TEdit;
DBGrid2: TDBGrid;
Label21: TLabel;
i_overtime_hour: TSpinEdit;
Label22: TLabel;
Label28: TLabel;
GroupBox7: TGroupBox;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
i_errand_start_time: TMaskEdit;
i_errand_person_id: TMaskEdit;
B_errand_add: TButton;
i_errand_person_name: TEdit;
i_errand_end_time: TMaskEdit;
i_errand_description: TMemo;
DBGrid4: TDBGrid;
GroupBox9: TGroupBox;
Label38: TLabel;
Label40: TLabel;
Label42: TLabel;
Seek_start_time: TMaskEdit;
Seek_end_time: TMaskEdit;
Seek_person_id: TMaskEdit;
Seek_by_person: TCheckBox;
Seek_by_time: TCheckBox;
Seek_person_name: TEdit;
Label5: TLabel;
B_seek_io: TButton;
Label6: TLabel;
B_seek_overtime: TButton;
Label7: TLabel;
B_seek_leave: TButton;
Label8: TLabel;
B_seek_errand: TButton;
i_io_depart_id: TMaskEdit;
i_io_depart_name: TEdit;
Gauge1: TGauge;
Label9: TLabel;
B_delete_attend: TButton;
B_delete_overtime: TButton;
B_delete_leave: TButton;
B_delete_errand: TButton;
procedure Seek_person_idChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure i_io_depart_idChange(Sender: TObject);
procedure i_io_person_idChange(Sender: TObject);
procedure io_add(Person_id:String);
procedure B_add_personClick(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure B_add_departClick(Sender: TObject);
procedure B_add_allClick(Sender: TObject);
procedure B_seek_ioClick(Sender: TObject);
procedure i_overtime_person_idChange(Sender: TObject);
procedure B_delete_attendClick(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure B_overtime_addClick(Sender: TObject);
procedure B_delete_overtimeClick(Sender: TObject);
procedure B_seek_overtimeClick(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
F_attendance: TF_attendance;
implementation
uses md;
{$R *.DFM}
procedure TF_attendance.Seek_person_idChange(Sender: TObject);
begin
with DM_main do
begin
T_person.Filter:='ID='''+Seek_person_id.Text+'''';
T_person.Filtered:=True;
T_person.Open;
if T_person.RecordCount=1 then
Seek_person_name.Text:=T_person['NAME']
else
Seek_person_name.Text:='';
T_person.Close;
end;
end;
procedure TF_attendance.FormCreate(Sender: TObject);
begin
Seek_start_time.Text:=DateToStr(now-30);
Seek_end_time.Text:=DateToStr(now);
end;
procedure TF_attendance.i_io_depart_idChange(Sender: TObject);
begin
with DM_main do
begin
T_depart.Filter:='ID='''+i_io_depart_id.Text+'''';
T_depart.Filtered:=True;
T_depart.Open;
if T_depart.RecordCount=1 then
i_io_depart_name.Text:=T_depart['NAME']
else
i_io_depart_name.Text:='';
T_depart.Close;
end;
end;
procedure TF_attendance.i_io_person_idChange(Sender: TObject);
begin
with DM_main do
begin
T_person.Filter:='ID='''+i_io_person_id.Text+'''';
T_person.Filtered:=True;
T_person.Open;
if T_person.RecordCount=1 then
begin
i_io_person_name.Text:=T_person['NAME'];
i_io_depart_id.Text:=T_person['DEPARTMENT'];
i_io_depart_idChange(nil);
end
else
i_io_person_name.Text:='';
T_person.Close;
end;
end;
procedure TF_attendance.io_add(Person_id:String);
var
counter:Integer;
in_out:String;
io_time:TDateTime;
begin
With DM_main do
begin
//记录编号
T_counter.Filter:='ID=''A''';
T_counter.Filtered:=True;
T_counter.Open;
counter:=T_counter['COUNTER_VALUE'];
Inc(counter);
T_counter.Edit;
T_counter['COUNTER_VALUE']:=counter;
T_counter.Post;
T_counter.Close;
//添加记录
if i_in_out.ItemIndex=0 then
in_out:='O'
else
in_out:='I';
io_time:=StrToDateTime(i_io_time.Text);
T_attendance.Filtered:=False;
T_attendance.Open;
T_attendance.AppendRecord([counter,Person_id,in_out,io_time]);
end;
end;
procedure TF_attendance.B_add_personClick(Sender: TObject);
begin
if length(i_io_person_name.Text)>0 then
begin
io_add(i_io_person_id.Text);
end;
end;
procedure TF_attendance.TabSheet1Show(Sender: TObject);
begin
i_io_time.Text:=DateTimeToStr(now);
DM_main.T_attendance.Open;
end;
procedure TF_attendance.B_add_departClick(Sender: TObject);
var
i,n:integer;
begin
if length(i_io_depart_name.Text)>0 then
begin
with DM_main do
begin
T_person.Filter:='DEPARTMENT='''+i_io_depart_id.Text+''' AND STATE=''T''';
T_person.Filtered:=True;
T_person.Open;
n:=T_person.RecordCount;
i:=0;
Gauge1.Progress:=0;
T_person.First;
while not T_person.Eof do
begin
io_add(T_person['ID']);
T_person.Next;
Inc(i);
Gauge1.Progress:=(100*i) div n;
end;
T_person.Close;
end;
end;
end;
procedure TF_attendance.B_add_allClick(Sender: TObject);
var
i,n:integer;
begin
with DM_main do
begin
T_person.Filter:='STATE=''T''';
T_person.filtered:=True;
T_person.Open;
n:=T_person.RecordCount;
i:=0;
Gauge1.Progress:=0;
T_person.First;
while not T_person.Eof do
begin
io_add(T_person['ID']);
T_person.Next;
Inc(i);
Gauge1.Progress:=(100*i) div n;
end;
T_person.Close;
end;
end;
procedure TF_attendance.B_see
上一篇:
kqtj.PAS
下一篇:
哈弗F7 VS名爵HS,谁更懂得年轻人的心?