📄 analysefrm.pas
字号:
unit Analysefrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, DbChart, StdCtrls, ComCtrls,
Buttons, DataModule1,Series;
type
TAnalyseForm = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
DBChart1: TDBChart;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
ComboBox2: TComboBox;
Series1: TBarSeries;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure TabSheet1Show(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure SpeedButton25Click(Sender: TObject);
private
function GetLateNum(AName:String;AMode:String):Word; //得到迟到次数
function GetLatePenalty(AName:String):Word;
{ Private declarations }
public
{ Public declarations }
end;
var
AnalyseForm: TAnalyseForm;
implementation
{$R *.dfm}
procedure TAnalyseForm.TabSheet1Show(Sender: TObject);
begin
DateTimePicker2.Date :=Date;
ComboBox2.Text :='迟到';
ComboBox2.ItemIndex :=1;
end;
procedure TAnalyseForm.BitBtn1Click(Sender: TObject);
var
SName:String;
Num:Word;
begin
with DM.TBWorker_L do
begin
DisableConstraints;
Open;
First;
while not eof do
begin
SName:=FieldByName('M_Name').AsString;
case ComboBox2.ItemIndex of
0:Num:=GetLateNum(SName,'正点'); //
1:Num:=GetLateNum(SName,'迟到'); //
2:Num:=GetLateNum(SName,'缺勤'); //
3:Num:=GetLatePenalty(SName); //
end;
Edit;
FieldByName('M_LateNum').AsInteger:=Num;
Post;
Next;
end;
EnableConstraints;
end;
end;
function TAnalyseForm.GetLateNum(AName: String;AMode:String):Word; //返回迟到或缺勤次数
begin
with DM.qryKaoqin do
begin
Close;
SQL.Clear;
SQL.Add('Select K_Name,K_Date,K_Penalty from Kaoqin');
SQL.Add('Where (K_Name=:varName) and (K_Date>=:varDate1) and (K_Date<:varDate2)');
SQL.Add('and K_Penalty>=:varPenalty1 and K_Penalty<:varPenalty2');
Params[0].AsString :=AName;
params[1].AsDateTime:=DateTimePicker1.Date;
Params[2].AsDateTime:=DateTimepicker2.Date;
if AMode='正点' then
begin
Params[3].AsInteger :=0;
Params[4].AsInteger :=1;
end;
if AMode='迟到' then
begin
Params[3].AsInteger :=10;
Params[4].AsInteger :=30;
end;
if AMode='缺勤' then
begin
Params[3].AsInteger :=30;
Params[4].AsInteger :=100;
end;
Open;
Result:=RecordCount;
Close;
end;
end;
function TAnalyseForm.GetLatePenalty(AName: String): Word;
var
Pnum:word;
begin
Pnum:=0;
with DM.qryKaoqin do
begin
Close;
SQL.Clear;
SQL.Add('Select K_Name,K_Date,K_Penalty from Kaoqin');
SQL.Add('Where (K_Name=:varName) and (K_Date>=:varDate1) and (K_Date<:varDate2)');
Params[0].AsString :=AName;
params[1].AsDateTime:=DateTimePicker1.Date;
Params[2].AsDateTime:=DateTimepicker2.Date;
Open;
First;
while not eof do
begin
Pnum:=Pnum+FieldByName('K_Penalty').AsInteger;
Next;
end;
Result:=Pnum;
Close;
end;
end;
procedure TAnalyseForm.Label4Click(Sender: TObject);
var
Num:Word;
begin
Num:=GetLateNum('001','正点');
Label2.Caption :=InttoStr(Num);
end;
procedure TAnalyseForm.BitBtn2Click(Sender: TObject);
begin
DM.TBWorker_L.Close;
end;
procedure TAnalyseForm.SpeedButton25Click(Sender: TObject);
begin
DBChart1.PreviousPage;
DBChart1.NextPage;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -