📄 fwltj.pas
字号:
unit fwltj;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, ImgList, ExtCtrls, StdCtrls,
AxCtrls, dxCntner, dxDBCtrl, dxDBGrid, dxTL, DB, DBTables, Mask, ToolEdit,
FR_Class, FR_DSet, FR_DBSet, dxExEdtr;
type
Tfrmfwltj = class(TForm)
CoolBar1: TCoolBar;
oToolBar: TToolBar;
FilterButton: TToolButton;
bmxjaddButton: TToolButton;
DeleteBmButton: TToolButton;
PrintButton: TToolButton;
PrintviewButton: TToolButton;
ToolButton7: TToolButton;
ExitButton: TToolButton;
ImageList1: TImageList;
Image1: TImage;
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Panel3: TPanel;
dxDBGrid2: TdxDBGrid;
fwltjTable: TTable;
DataSource1: TDataSource;
fwlxTable: TTable;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
fwltjQuery: TQuery;
Label6: TLabel;
ygQuery: TQuery;
dxDBGrid1: TdxDBGrid;
dxDBGrid1fwlxmc: TdxDBGridMaskColumn;
dxDBGrid1fwry1: TdxDBGridMaskColumn;
dxDBGrid1fwry2: TdxDBGridMaskColumn;
dxDBGrid1fwry3: TdxDBGridMaskColumn;
dxDBGrid1fwry4: TdxDBGridMaskColumn;
dxDBGrid1fwry5: TdxDBGridMaskColumn;
dxDBGrid1fwry6: TdxDBGridMaskColumn;
dxDBGrid1fwry7: TdxDBGridMaskColumn;
dxDBGrid1fwry8: TdxDBGridMaskColumn;
dxDBGrid1fwry9: TdxDBGridMaskColumn;
dxDBGrid1fwry10: TdxDBGridMaskColumn;
frDBDataSet1: TfrDBDataSet;
frReport1: TfrReport;
procedure ExitButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormResize(Sender: TObject);
procedure bmxjaddButtonClick(Sender: TObject);
procedure dxDBGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn;
ASelected, AFocused, ANewItemRow: Boolean; var AText: string;
var AColor: TColor; AFont: TFont; var AAlignment: TAlignment;
var ADone: Boolean);
procedure PrintButtonClick(Sender: TObject);
procedure DeleteBmButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure datatj;
end;
var
frmfwltj: Tfrmfwltj;
fwltj_date1, fwltj_date2: TDateTime;
fwltj_bmbh, fwltj_bmmc: string;
implementation
uses tjxz, taskjdt, mainform;
{$R *.dfm}
procedure Tfrmfwltj.ExitButtonClick(Sender: TObject);
begin
Close;
end;
procedure Tfrmfwltj.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
frmfwltj := nil;
end;
procedure Tfrmfwltj.FormResize(Sender: TObject);
begin
Panel1.Width := Panel2.Width;
Image1.Width := Panel2.Width;
Panel1.Height := Self.Height - 267;
Label1.Left := (Image1.Width - Label1.Width) div 2;
end;
procedure Tfrmfwltj.bmxjaddButtonClick(Sender: TObject);
begin
selectboolean := False;
selecttext1 := '';
selecttext2 := '';
if frmtjxz = nil then frmtjxz := Tfrmtjxz.Create(self);
frmtjxz.DateTP1.Date := fwltj_date1;
frmtjxz.DateTP2.Date := fwltj_date2;
frmtjxz.dxButtonEdit1.Text := fwltj_bmmc;
tjxz_bh := fwltj_bmbh;
tjxz_mc := fwltj_bmmc;
frmtjxz.Update;
frmtjxz.ShowModal;
Self.Update;
if selectboolean = True then
begin
fwltj_date1 := selectdate1;
fwltj_date2 := selectdate2;
fwltj_bmbh := selecttext1 + '%';
fwltj_bmmc := selecttext2;
Label5.Caption := Datetostr(fwltj_date1) + ' 至 ' + Datetostr(fwltj_date2);
if fwltj_bmmc <> '' then
begin
Label3.Visible := True;
Label4.Visible := True;
Label4.Caption := fwltj_bmmc;
end;
datatj();
end;
end;
procedure Tfrmfwltj.datatj;
var
lsbl_x, lsbl_y, lsbl_lxsl, lsbl_rysl, jdwidth: Integer;
lsbl_gzlhj, lsbl_gzdl, lsbl_tjsz: Currency;
lsbl_rybh, lsbl_ryxm, lsbl_lxbh, lsbl_lxmc: string;
begin
lsbl_x := 0; //统计人数变量,每十位统计一次
lsbl_y := 1;
jdwidth := 0;
fwltjtable.CancelUpdates;
if fwlxtable.Active = False then fwlxtable.Active := True;
lsbl_lxsl := fwlxtable.RecordCount;
with ygQuery do
begin
SQL.Clear;
if fwltj_bmbh <> '' then
begin
SQL.Add('Select yg_bh,yg_xm From ygdasjk');
SQL.Add('where (yg_bmbh like ''' + fwltj_bmbh + '''' + ') order by yg_bh');
end
else
begin
SQL.Add('Select yg_bh,yg_xm From ygdasjk order by yg_bh');
end;
Open;
end;
lsbl_rysl := ygQuery.RecordCount;
frmtaskjdt := Tfrmtaskjdt.create(Self);
task_messagelx := '101';
frmtaskjdt.messageshow1('');
frmtaskjdt.Gauge1.MaxValue := lsbl_lxsl * lsbl_rysl;
frmtaskjdt.show;
frmtaskjdt.Update;
ygQuery.First;
LockWindowUpdate(handle);
with ygquery do
begin
while not eof do
begin
lsbl_rybh := Trim(ygQuery.FieldByName('yg_bh').AsString);
lsbl_ryxm := Trim(ygQuery.FieldByName('yg_xm').AsString);
lsbl_x := lsbl_x + 1;
if lsbl_y = 1 then
begin
fwltjTable.Append;
fwltjtable.FieldByName('fzzd').AsString := '1';
end
else
begin
fwltjTable.MoveBy((lsbl_lxsl + 1) * -1);
fwltjTable.Edit;
end;
fwltjtable.FieldByName('fwry' + inttostr(lsbl_x)).AsString := lsbl_ryxm;
lsbl_gzlhj := 0.00; //工作量合计
with fwlxtable do
begin
First;
while not eof do
begin
lsbl_lxbh := Trim(fwlxtable.FieldByName('fw_bh').AsString);
lsbl_lxmc := Trim(fwlxtable.FieldByName('fw_mc').AsString);
lsbl_gzdl := fwlxtable.FieldByName('fw_gzdl').AsFloat;
jdwidth := jdwidth + 1;
frmtaskjdt.jdshow(jdwidth);
frmtaskjdt.messageshow1('正在进行【' + lsbl_ryxm + '】服务量的统计...');
with fwltjQuery do
begin
Close;
SQL.Clear;
if Pos('税控回访', lsbl_lxmc) = 0 then
begin
SQL.Add('select count(*) as tjsz from fwdjb where ');
SQL.Add('fwdj_djsj>=:fwltj_date1 and fwdj_djsj<=:fwltj_date2 and Trim(fwdj_lxbh)=:lsbl_fwlxbh');
SQL.Add(' and Trim(fwdj_rybh)=:lsbl_fwrybh and Trim(fwdj_sfwc)=''' + '完成' + '''');
ParamByName('fwltj_date1').AsDateTime := fwltj_date1;
ParamByName('fwltj_date2').AsDateTime := fwltj_date2;
ParamByName('lsbl_fwlxbh').AsString := lsbl_lxbh;
ParamByName('lsbl_fwrybh').AsString := lsbl_rybh;
end
else
begin
SQL.Add('select count(*) as tjsz from khhfb where ');
SQL.Add('hf_rq>=:fwltj_date1 and hf_rq<=:fwltj_date2');
SQL.Add(' and Trim(hf_xm)=:lsbl_fwryxm and Trim(hf_bz)=''' + '√' + '''');
ParamByName('fwltj_date1').AsDateTime := fwltj_date1;
ParamByName('fwltj_date2').AsDateTime := fwltj_date2;
ParamByName('lsbl_fwryxm').AsString := lsbl_ryxm;
end;
Prepare;
Open;
lsbl_tjsz := FieldByName('tjsz').AsCurrency;
lsbl_tjsz := lsbl_gzdl * lsbl_tjsz;
lsbl_gzlhj := lsbl_gzlhj + lsbl_tjsz;
end;
if lsbl_y = 1 then
fwltjtable.Append
else
begin
fwltjtable.Next;
fwltjtable.Edit;
end;
fwltjtable.FieldByName('fwlxmc').AsString := lsbl_lxmc;
fwltjtable.FieldByName('fwry' + inttostr(lsbl_x)).AsString := FormatFloat('0.00', lsbl_tjsz);
Next;
end;
if lsbl_y = 1 then
fwltjtable.Append
else
begin
fwltjtable.Next;
fwltjtable.Edit;
end;
fwltjtable.FieldByName('fwry' + inttostr(lsbl_x)).AsString := FormatFloat('0.00', lsbl_gzlhj);
end;
if lsbl_y = 1 then
begin
fwltjtable.FieldByName('fwlxmc').AsString := '合计';
fwltjtable.FieldByName('fzzd').AsString := '2';
end;
lsbl_y := 0;
if lsbl_x = 10 then
begin
lsbl_x := 0;
lsbl_y := 1;
fwltjtable.Append;
fwltjtable.FieldByName('fzzd').AsString := '3';
end;
Next;
end;
end;
ygQuery.Close;
fwlxtable.Close;
fwltjQuery.Close;
frmtaskjdt.Free;
fwltjtable.First;
LockWindowUpdate(0);
end;
procedure Tfrmfwltj.dxDBGrid1CustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: string; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
begin
if fwltjtable.FieldByName('fzzd').AsString = '1' then
begin
//AColor := clSilver;
AColor := clTeal;
AAlignment := taCenter;
//AFont.Style := AFont.Style + [fsBold];
AFont.Color := clYellow;
end;
if fwltjtable.FieldByName('fzzd').AsString = '2' then
begin
AFont.Style := AFont.Style + [fsBold];
end;
if AColumn.Index = 0 then
begin
if AText <> '' then
AColor := $00FFF0CA;
end;
if ASelected = True or AFocused = True then
begin
if AColumn.Index = 0 then
AFont.Color := clBlack;
if fwltjtable.FieldByName('fzzd').AsString = '1' then
//AFont.Color := clBlack;
AFont.Color := clYellow;
end;
end;
procedure Tfrmfwltj.PrintButtonClick(Sender: TObject);
begin
frReport1.LoadFromFile(sys_report+'fwltjbb.frf');
frReport1.Title:='服务量统计表';
frReport1.ShowReport;
end;
procedure Tfrmfwltj.DeleteBmButtonClick(Sender: TObject);
begin
fwltjtable.CommitUpdates;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -