📄 frm_normalstatic.pas
字号:
unit Frm_NormalStatic;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Buttons, ExtCtrls;
type
TForm_NormalStatic = class(TForm)
Panel2: TPanel;
btn_Stat: TSpeedButton;
btn_Close: TSpeedButton;
btn_AddNote: TSpeedButton;
GroupBox3: TGroupBox;
Label1: TLabel;
Dt_Seg2Time: TDateTimePicker;
Dt_Seg2Date: TDateTimePicker;
Dt_Seg1Time: TDateTimePicker;
Dt_Seg1Date: TDateTimePicker;
Rb_Normal: TRadioButton;
Rb_Word: TRadioButton;
procedure FormCreate(Sender: TObject);
procedure btn_CloseClick(Sender: TObject);
procedure btn_StatClick(Sender: TObject);
private
{ Private declarations }
//故障报修 合计数 完成数 超时完成数 及时完成数 未完成数
procedure CalClientElecOut(const Dt_Seg1,Dt_Seg2:TDateTime;
var iSendNum,iFinishNum,iOverTimeFinishNum,iInTimeFinishNum,iNoFinishNum:integer);
//用户投诉 合计数 完成数 超时完成数 及时完成数 未完成数
procedure CalClientComp(const Dt_Seg1,Dt_Seg2:TDateTime;
var iSendNum,iFinishNum,iOverTimeFinishNum,iInTimeFinishNum,iNoFinishNum:integer);
//咨询登记 合计数 完成数 超时完成数 及时完成数 未完成数
procedure CalClientAsk(const Dt_Seg1,Dt_Seg2:TDateTime;
var iSendNum,iFinishNum,iOverTimeFinishNum,iInTimeFinishNum,iNoFinishNum:integer);
//用电申请 合计数 完成数 超时完成数 及时完成数 未完成数
procedure CalElecApply(const Dt_Seg1,Dt_Seg2:TDateTime;
var iSendNum,iFinishNum,iOverTimeFinishNum,iInTimeFinishNum,iNoFinishNum:integer);
public
{ Public declarations }
end;
var
Form_NormalStatic: TForm_NormalStatic;
implementation
uses SystemDM;
{$R *.DFM}
procedure TForm_NormalStatic.FormCreate(Sender: TObject);
begin
Dt_Seg2Date.Date:=date;
Dt_Seg1Date.Date:=date-7;
Dt_Seg1Time.Time :=EnCodeTime(0,0,0,0);
Dt_Seg2Time.Time :=EnCodeTime(0,0,0,0);
end;
procedure TForm_NormalStatic.btn_CloseClick(Sender: TObject);
begin
close;
end;
procedure TForm_NormalStatic.btn_StatClick(Sender: TObject);
var
Dt_Seg1,Dt_Seg2:TDateTime;
GZBX_iSendNum, GZBX_iFinishNum, GZBX_iOverTimeFinishNum,GZBX_iInTimeFinishNum, GZBX_iNoFinishNum:integer;
YHTS_iSendNum, YHTS_iFinishNum, YHTS_iOverTimeFinishNum,YHTS_iInTimeFinishNum, YHTS_iNoFinishNum:integer;
ZXDJ_iSendNum, ZXDJ_iFinishNum, ZXDJ_iOverTimeFinishNum,ZXDJ_iInTimeFinishNum, ZXDJ_iNoFinishNum:integer;
YDSQ_iSendNum, YDSQ_iFinishNum, YDSQ_iOverTimeFinishNum,YDSQ_iInTimeFinishNum, YDSQ_iNoFinishNum:integer;
begin
Dt_Seg1:=Dt_Seg1Date.Date;
Replacetime(Dt_Seg1,Dt_Seg1Time.time);
Dt_Seg2:=Dt_Seg2Date.Date;
Replacetime(Dt_Seg2,Dt_Seg2Time.time);
CalClientElecOut(Dt_Seg1,Dt_Seg2,GZBX_iSendNum, GZBX_iFinishNum, GZBX_iOverTimeFinishNum,GZBX_iInTimeFinishNum, GZBX_iNoFinishNum);
CalClientComp(Dt_Seg1,Dt_Seg2,YHTS_iSendNum, YHTS_iFinishNum, YHTS_iOverTimeFinishNum,YHTS_iInTimeFinishNum, YHTS_iNoFinishNum);
CalClientAsk(Dt_Seg1,Dt_Seg2,ZXDJ_iSendNum, ZXDJ_iFinishNum, ZXDJ_iOverTimeFinishNum,ZXDJ_iInTimeFinishNum, ZXDJ_iNoFinishNum);
CalElecApply(Dt_Seg1,Dt_Seg2,YDSQ_iSendNum, YDSQ_iFinishNum, YDSQ_iOverTimeFinishNum,YDSQ_iInTimeFinishNum, YDSQ_iNoFinishNum);
SysDM.WorddotRpt.Title.Clear ;
if Rb_Word.Checked then
begin
with SysDM.WorddotRpt.Title do
begin
Add(Format('DateSeg=统计范围:%s',[FormatDateTime('YYYY"-"MM"-"DD',Dt_Seg1)+' 至 '+FormatDateTime('YYYY"-"MM"-"DD',Dt_Seg2)]));
Add(Format('gzbx_notnormal=%d',[GZBX_iNoFinishNum]));
Add(Format('gzbx_normal=%d',[GZBX_iInTimeFinishNum]));
Add(Format('gzbx_chaonormal=%d',[GZBX_iOverTimeFinishNum]));
Add(Format('gzbx_totalnormal=%d',[GZBX_iSendNum]));
Add(Format('yhts_notnormal=%d',[YHTS_iNoFinishNum]));
Add(Format('yhts_normal=%d',[YHTS_iInTimeFinishNum]));
Add(Format('yhts_chaonormal=%d',[YHTS_iOverTimeFinishNum]));
Add(Format('yhts_totalnormal=%d',[YHTS_iSendNum]));
Add(Format('zxdj_notnormal=%d',[ZXDJ_iNoFinishNum]));
Add(Format('zxdj_normal=%d',[ZXDJ_iInTimeFinishNum]));
Add(Format('zxdj_chaonormal=%d',[ZXDJ_iOverTimeFinishNum]));
Add(Format('zxdj_totalnormal=%d',[ZXDJ_iSendNum]));
Add(Format('ydsq_notnormal=%d',[YDSQ_iNoFinishNum]));
Add(Format('ydsq_normal=%d',[YDSQ_iInTimeFinishNum]));
Add(Format('ydsq_chaonormal=%d',[YDSQ_iOverTimeFinishNum]));
Add(Format('ydsq_totalnormal=%d',[YDSQ_iSendNum]));
Add(Format('PrintDate=%s',[FormatDateTime('YYYY"-"MM"-"DD',NOW)]));
end;
SysDm.WorddotRpt.MasterDataset := nil;
SysDm.WorddotRpt.Preview := True;
SysDm.WorddotRpt.TemplateName := ExtractFilePath(Application.ExeName)+'HcWorkRep.dot';
SysDm.WorddotRpt.Execute;
end;
close;
end;
procedure TForm_NormalStatic.CalClientElecOut(const Dt_Seg1,
Dt_Seg2: TDateTime; var iSendNum, iFinishNum, iOverTimeFinishNum,
iInTimeFinishNum, iNoFinishNum: integer);
begin
with SysDM.Qr_Temp do
begin
//合计数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientElecOut');
Sql.Add('where zzsbsj>=:A and zzsbsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iSendNum:=Fieldbyname('RecCount').AsInteger;
//完成数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientElecOut');
Sql.Add('where State=2 and zzsbsj>=:A and zzsbsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iFinishNum:=Fieldbyname('RecCount').AsInteger;
//超期完成数
close;
Sql.Clear ;
Sql.Add('Select ');
Sql.Add('(select Count(*) from ClientElecOut where IsOverTime=1 and state=2 and datediff(minute,zzflsj,pcsj)>45 and zzsbsj>=:A and zzsbsj<=:B)+');
Sql.Add('(select Count(*) from ClientElecOut where IsOverTime=2 and state=2 and datediff(minute,zzflsj,pcsj)>90 and zzsbsj>=:A and zzsbsj<=:B)+');
Sql.Add('(select Count(*) from ClientElecOut where IsOverTime=3 and state=2 and datediff(hour,zzflsj,pcsj)>2 and zzsbsj>=:A and zzsbsj<=:B) ');
Sql.Add('RecCount');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iOverTimeFinishNum:=Fieldbyname('RecCount').AsInteger;
//超期未完成
{close;
Sql.Clear ;
Sql.Add('Select ');
Sql.Add('(select Count(*) from ClientElecOut where IsOverTime=1 and state=0 and datediff(minute,zzflsj,getdate())>45 and zzsbsj>=:A and zzsbsj<=:B)+');
Sql.Add('(select Count(*) from ClientElecOut where IsOverTime=2 and state=0 and datediff(minute,zzflsj,getdate())>90 and zzsbsj>=:A and zzsbsj<=:B)+');
Sql.Add('(select Count(*) from ClientElecOut where IsOverTime=3 and state=0 and datediff(hour,zzflsj,getdate())>2 and zzsbsj>=:A and zzsbsj<=:B) ');
Sql.Add('RecCount');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iOverTimeNoFinishNum:=Fieldbyname('RecCount').AsInteger;}
//未完成数
iNoFinishNum:=iSendNum-iFinishNum;
//及时完成数
iInTimeFinishNum:=iFinishNum-iOverTimeFinishNum;
end;
end;
procedure TForm_NormalStatic.CalClientComp(const Dt_Seg1,
Dt_Seg2: TDateTime; var iSendNum, iFinishNum, iOverTimeFinishNum,
iInTimeFinishNum, iNoFinishNum: integer);
begin
with SysDM.Qr_Temp do
begin
//合计数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientComp');
Sql.Add('where slsj>=:A and slsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iSendNum:=Fieldbyname('RecCount').AsInteger;
//完成数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientComp');
Sql.Add('where ((State=2) or (state=7) or(state=8) or (state=9)) and slsj>=:A and slsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iFinishNum:=Fieldbyname('RecCount').AsInteger;
//超期完成数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientComp');
Sql.Add('where state=2 and xdsj<fhsj and slsj>=:A and slsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iOverTimeFinishNum:=Fieldbyname('RecCount').AsInteger;
//超期未完成
{close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientComp');
Sql.Add('where state=0 and xdsj<getdate() and slsj>=:A and slsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iOverTimeNoFinishNum:=Fieldbyname('RecCount').AsInteger;}
//未完成数
iNoFinishNum:=iSendNum-iFinishNum;
//及时完成数
iInTimeFinishNum:=iFinishNum-iOverTimeFinishNum;
end;
end;
procedure TForm_NormalStatic.CalClientAsk(const Dt_Seg1,
Dt_Seg2: TDateTime; var iSendNum, iFinishNum, iOverTimeFinishNum,
iInTimeFinishNum, iNoFinishNum: integer);
begin
with SysDM.Qr_Temp do
begin
//合计数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientAsk');
Sql.Add('where slsj>=:A and slsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iSendNum:=Fieldbyname('RecCount').AsInteger;
//完成数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientAsk');
Sql.Add('where State=2 and slsj>=:A and slsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iFinishNum:=Fieldbyname('RecCount').AsInteger;
//超期完成数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientAsk');
Sql.Add('where state=2 and xdsj<fhsj and slsj>=:A and slsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iOverTimeFinishNum:=Fieldbyname('RecCount').AsInteger;
//超期未完成
{close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from ClientAsk');
Sql.Add('where state=0 and xdsj<getdate() and slsj>=:A and slsj<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iOverTimeNoFinishNum:=Fieldbyname('RecCount').AsInteger;}
//未完成数
iNoFinishNum:=iSendNum-iFinishNum;
//及时完成数
iInTimeFinishNum:=iFinishNum-iOverTimeFinishNum;
end;
end;
procedure TForm_NormalStatic.CalElecApply(const Dt_Seg1,
Dt_Seg2: TDateTime; var iSendNum, iFinishNum, iOverTimeFinishNum,
iInTimeFinishNum, iNoFinishNum: integer);
begin
with SysDM.Qr_Temp do
begin
//合计数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from CLIENT_ELEC_APPLY');
Sql.Add('where APPLY_DATETIME>=:A and APPLY_DATETIME<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iSendNum:=Fieldbyname('RecCount').AsInteger;
//完成数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from CLIENT_ELEC_APPLY');
Sql.Add('where State=2 and APPLY_DATETIME>=:A and APPLY_DATETIME<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iFinishNum:=Fieldbyname('RecCount').AsInteger;
//超期完成数
close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from CLIENT_ELEC_APPLY');
Sql.Add('where state=2 and LIMIT_DATETIME<FINISH_DATETIME and APPLY_DATETIME>=:A and APPLY_DATETIME<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iOverTimeFinishNum:=Fieldbyname('RecCount').AsInteger;
//超期未完成
{close;
Sql.Clear ;
Sql.Add('Select count(*) RecCount from CLIENT_ELEC_APPLY');
Sql.Add('where state=0 and LIMIT_DATETIME<getdate() and APPLY_DATETIME>=:A and APPLY_DATETIME<=:B');
Parambyname('A').AsDateTime:=Dt_Seg1;
Parambyname('B').AsDateTime:=Dt_Seg2;
Prepare;
Open;
iOverTimeNoFinishNum:=Fieldbyname('RecCount').AsInteger;}
//未完成数
iNoFinishNum:=iSendNum-iFinishNum;
//及时完成数
iInTimeFinishNum:=iFinishNum-iOverTimeFinishNum;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -