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

📄 fwltj.pas

📁 服务信息管理系统
💻 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 + -