⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cjstatisticsfm.pas

📁 一个电力部门的催缴费用系统
💻 PAS
字号:
unit CjStatisticsFM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ChildFM, Grids, ExtCtrls, StdCtrls, Buttons, ComCtrls, TeEngine, Series,
  TeeProcs, Chart;

type
  Tfm_CjStatistics = class(Tfm_Child)
    pnl_Client: TPanel;
    sGd_Result: TStringGrid;
    ch_SelDateTime: TCheckBox;
    dt_Start: TDateTimePicker;
    dt_End: TDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    btn_Statistics: TBitBtn;
    cht_statresult: TChart;
    ser_bar: TBarSeries;
    procedure FormResize(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ch_SelDateTimeClick(Sender: TObject);
    procedure btn_StatisticsClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fm_CjStatistics: Tfm_CjStatistics;

implementation
uses SystemDM;
{$R *.DFM}

procedure Tfm_CjStatistics.FormResize(Sender: TObject);
begin
  inherited;
  pnl_Client.Top := (Height - pnl_Client.Height) div 2;
  pnl_Client.Left := (Width - pnl_Client.Width) div 2;
end;

procedure Tfm_CjStatistics.FormCreate(Sender: TObject);
begin
  inherited;
  dt_Start.DateTime :=now-3;
  dt_End.DateTime :=now;
  ch_SelDateTimeClick(Self);
  sgd_Result.RowHeights[0]:=20;
  sgd_Result.RowHeights[1]:=18;
  sgd_Result.ColWidths[0]:=15;
  sgd_Result.ColWidths[1]:=100;
  sgd_Result.ColWidths[2]:=100;
  sgd_Result.ColWidths[3]:=120;
  sgd_Result.Cells[1,0]:='已催缴用户数';
  sgd_Result.Cells[2,0]:='未催缴用户数';
  sgd_Result.Cells[3,0]:='催缴失败用户数';
end;

procedure Tfm_CjStatistics.ch_SelDateTimeClick(Sender: TObject);
begin
  inherited;
  dt_Start.Enabled :=ch_SelDateTime.Checked ;
  dt_end.Enabled :=ch_SelDateTime.Checked ;
end;

procedure Tfm_CjStatistics.btn_StatisticsClick(Sender: TObject);
var
  startdateTime,enddateTime:TdateTime;
  iTotalCjNum,iCjNum,iCjFailNum:integer;
  sSql:String;
begin
  inherited;

  if ch_SelDatetime.Checked then
  begin
    startdateTime:=dt_start.DateTime ;
    enddateTime:=dt_end.DateTime ;
    ReplaceTime(startDateTime,0);
    ReplaceTime(EndDateTime,0);
  end;
  sSql:='Select count(*) TotalCount from Cj_Table';
  SysDM.SQL_Querys(SysDM.Qr_SysTemp,sSql);
  iTotalCjNum:=SysDM.Qr_sysTemp.FieldbyName('TotalCount').Asinteger;
  with SysDM.Qr_sysTemp do
  begin
    Close;
    Sql.Clear ;
    Sql.Add('select count(*) TotalCount from cj_table');
    sql.Add('where YCJ_Num > CJ_Num');
    if ch_SelDateTime.Checked then
    begin
      sql.Add('and Last_Cj_Date>=:A and Last_Cj_Date<=:B');
      ParambyName('A').AsDateTime:=startdatetime;
      ParambyName('B').AsDateTime:=enddatetime;
    end;
    Prepare;
    Open;
  end;
  iCjNum:=SysDM.Qr_sysTemp.FieldbyName('TotalCount').Asinteger;

  with SysDM.Qr_sysTemp do
  begin
    Close;
    Sql.Clear ;
    Sql.Add('select count(*) TotalCount from cj_table');
    sql.Add('where CJ_FailNum > 0');
    if ch_SelDateTime.Checked then
    begin
      sql.Add('and Last_Cj_Date>=:A and Last_Cj_Date<=:B');
      ParambyName('A').AsDateTime:=StartDateTime;
      ParambyName('B').AsDateTime:=EndDateTime;
    end;
    Prepare;
    Open;
  end;
  iCjFailNum:=SysDM.Qr_sysTemp.FieldbyName('TotalCount').Asinteger;
  sgd_Result.Cells[1,1]:=inttoStr(iCjNum);
  sgd_Result.Cells[2,1]:=inttoStr(iTotalCjNum-iCjNum);
  sgd_Result.Cells[3,1]:=inttoStr(iCjFailNum);
  ser_bar.Clear ;
  ser_bar.AddBar(iCjNum,'已催用户数',clBlue);
  ser_bar.AddBar(iTotalCjNum-iCjNum,'未催用户数',clYellow);
  ser_bar.AddBar(iCjFailNum,'催缴失败用户数',clRed);
end;

procedure Tfm_CjStatistics.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  FM_CjStatistics:=nil;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -