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

📄 ser410_01.pas.svn-base

📁 开源的网站整站程序,功能强大带采集系统.
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
      AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
      AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue,1);
      ADODataSet1.Post;
      ATotal[AMonth]:=ATotal[AMonth]+AValue;
    end else
    begin
      ADODataSet1.Append;
      ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('I150_005').Value;
      ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('I120_003').Value;
      ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('I150_005').Value;
      AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
      AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue,1);
      ADODataSet1.Post;
      ATotal[AMonth]:=ATotal[AMonth]+AValue;
    end;
    ADOQuery1.Next;
  end;
  //已完成數量統計     按实际完成日期来统计
  ADOQuery2.Close;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Add('select count(S500_001) as FTotal,I150_005,I120_003,month(S500_026) as FMonth');
  ADOQuery2.SQL.Add(' from SER500,INV120,INV150,SER110');
  ADOQuery2.SQL.Add(' where SER500.S500_018=INV150.I150_005 and INV150.I150_005=INV120.I120_001 and SER500.S500_003=SER110.S110_001 and  SER110.S110_002=12 and year(S500_026)='+AYear);
  ADOQuery2.SQL.Add(' GROUP BY I150_005,I120_003,month(S500_026)');
  ADOQuery2.Open;
  while not ADOQuery2.Eof do
  begin
    if ADODataSet1.Locate('FNo',ADOQuery2.FieldByName('I150_005').Value,[]) then
    begin
      ADODataSet1.Edit;
      AValue:=ADOQuery2.FieldByName('FFinish').AsInteger;
      AMonth:=ADOQuery2.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue,2);
      ADODataSet1.Post;
      AFinish[AMonth]:=AFinish[AMonth]+AValue;
    end;
    ADOQuery2.Next;
  end;
end;

procedure TSer410_01Form.ByCustomer(AYear:string);  //按客户
var
  AValue,AMonth:Integer;
begin
  //服務總數統計     按申报日期来统计
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select count(S500_001) as FTotal,O150_001,O150_003, month(S500_007) as FMonth');
  ADOQuery1.SQL.Add('from ORD150,SER500 ');
  ADOQuery1.SQL.Add('where S500_017=O150_001 and year(S500_007)='+AYear);
  ADOQuery1.SQL.Add('group by O150_001,O150_003,month(S500_007)');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    if ADODataSet1.Locate('FNo',ADOQuery1.FieldByName('O150_001').Value,[]) then
    begin
      ADODataSet1.Edit;
      AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
      AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue,1);
      ADODataSet1.Post;
      ATotal[AMonth]:=ATotal[AMonth]+AValue;
    end else
    begin
      ADODataSet1.Append;
      ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('O150_001').Value;
      ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('O150_003').Value;
      ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('O150_001').Value;
      AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
      AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue,1);
      ADODataSet1.Post;
      ATotal[AMonth]:=ATotal[AMonth]+AValue;
    end;
    ADOQuery1.Next;
  end;
  //已完成數量統計    按实际完成日期来统计
  ADOQuery2.Close;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Add('select count(S500_001) as FTotal,O150_001,O150_003, month(S500_026) as FMonth');
  ADOQuery2.SQL.Add('from ORD150,SER500 ');
  ADOQuery2.SQL.Add('where S500_017=O150_001 and year(S500_026)='+AYear);
  ADOQuery2.SQL.Add('group by O150_001,O150_003,month(S500_026)');
  ADOQuery2.Open;
  while not ADOQuery2.Eof do
  begin
    if ADODataSet1.Locate('FNo',ADOQuery2.FieldByName('O150_001').Value,[]) then
    begin
      ADODataSet1.Edit;
      AValue:=ADOQuery2.FieldByName('FFinish').AsInteger;
      AMonth:=ADOQuery2.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue,2);
      ADODataSet1.Post;
      AFinish[AMonth]:=AFinish[AMonth]+AValue;
    end;
    ADOQuery2.Next;
  end;
end;

procedure TSer410_01Form.sbSearchClick(Sender: TObject);
var
  I:Integer;
begin
  inherited;
//查询
  ATotal[1]:=0;  ATotal[2]:=0;  ATotal[3]:=0;  ATotal[4]:=0;  ATotal[5]:=0;
  ATotal[6]:=0;  ATotal[7]:=0;  ATotal[8]:=0;  ATotal[9]:=0;  ATotal[10]:=0;
  ATotal[11]:=0;  ATotal[12]:=0;  ATotal[13]:=0;
  AFinish[1]:=0;  AFinish[2]:=0;  AFinish[3]:=0;  AFinish[4]:=0;  AFinish[5]:=0;
  AFinish[6]:=0;  AFinish[7]:=0;  AFinish[8]:=0;  AFinish[9]:=0;  AFinish[10]:=0;
  AFinish[11]:=0;  AFinish[12]:=0;  AFinish[13]:=0;
  Screen.Cursor:=crHourGlass;
  ADOQuery1.Close;
  ADOQuery2.Close;
  ADODataSet1.DisableControls;
  ADODataSet1.Close;
  ADODataSet1.FieldDefs.Clear;
  ADODataSet1.FieldDefs.Add('FNo',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FName',ftString,50);
  ADODataSet1.FieldDefs.Add('FParent',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal1',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish1',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent1',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal2',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish2',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent2',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal3',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish3',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent3',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal4',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish4',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent4',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal5',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish5',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent5',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal6',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish6',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent6',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal7',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish7',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent7',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal8',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish8',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent8',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal9',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish9',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent9',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal10',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish10',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent10',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal11',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish11',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent11',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal12',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish12',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent12',ftFloat,0);
  ADODataSet1.FieldDefs.Add('FTotal',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FFinish',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FPercent',ftFloat,0);
  ADODataSet1.CreateDataSet;
  case cbType.ItemIndex of
    0:ByServerClass(cbYear.Text);  //按服务类别
    1:ByCallClass(cbYear.Text);   //按来电类型
    2:ByItemClass(cbYear.Text);  //按産品類別
    3:ByCustomer(cbYear.Text);  //按客户
  end;
  ADODataSet1.EnableControls;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select count(S500_001) as FTotal,month(S500_007) as FMonth');
  ADOQuery1.SQL.Add('from SER500');                                              
  ADOQuery1.SQL.Add('where year(S500_007)='+cbYear.Text);
  ADOQuery1.SQL.Add('group by month(S500_007)');
  ADOQuery1.Open;
  ADOQuery2.Close;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Add('select count(S500_001) as FTotal,month(S500_007) as FMonth');
  ADOQuery2.SQL.Add('from SER500');
  ADOQuery2.SQL.Add('where S500_003=12 and year(S500_007)='+cbYear.Text);
  ADOQuery2.SQL.Add('group by month(S500_007)');
  ADOQuery2.Open;
  DBChart1.RefreshData;
//  DBChart2.RefreshData;
  for I:=0 to DBChart1.Series[0].Count-1 do
    DBChart1.Series[0].XLabel[I]:=DBChart1.Series[0].XLabel[I]+'月';
//  for I:=0 to DBChart2.Series[0].Count-1 do
//    DBChart1.Series[0].XLabel[I]:=DBChart2.Series[0].XLabel[I]+'月';
  Screen.Cursor:=crDefault;
end;

procedure TSer410_01Form.dxDBTreeList1FTotal1DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AText:=FormatFloat(',0.00',ATotal[1]);
end;

procedure TSer410_01Form.dxDBTreeList1FFinish1DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AText:=FormatFloat(',0.00',AFinish[1]);
end;

procedure TSer410_01Form.dxDBTreeList1FPercent1DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  if ATotal[1]=0 then AText:='0.00%' else AText:=FormatFloat(',0.00%',(AFinish[1]/ATotal[1])*100);
end;

procedure TSer410_01Form.dxDBTreeList1FTotal2DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AText:=FormatFloat(',0.00',ATotal[2]);
end;

procedure TSer410_01Form.dxDBTreeList1FFinish2DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AText:=FormatFloat(',0.00',AFinish[2]);
end;

procedure TSer410_01Form.dxDBTreeList1FPercent2DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  if ATotal[2]=0 then AText:='0.00%' else AText:=FormatFloat(',0.00%',(AFinish[2]/ATotal[2])*100);
end;

procedure TSer410_01Form.dxDBTreeList1FTotal3DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AText:=FormatFloat(',0.00',ATotal[3]);
end;

procedure TSer410_01Form.dxDBTreeList1FFinish3DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AText:=FormatFloat(',0.00',AFinish[3]);
end;

procedure TSer410_01Form.dxDBTreeList1FPercent3DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  if ATotal[3]=0 then AText:='0.00%' else AText:=FormatFloat(',0.00%',(AFinish[3]/ATotal[3])*100);
end;

procedure TSer410_01Form.dxDBTreeList1FTotal4DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AText:=FormatFloat(',0.00',ATotal[4]);
end;

procedure TSer410_01Form.dxDBTreeList1FFinish4DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AText:=FormatFloat(',0.00',AFinish[4]);
end;

procedure TSer410_01Form.dxDBTreeList1FPercent4DrawSummaryFooter(

⌨️ 快捷键说明

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