📄 tas410_01.pas.svn-base
字号:
AFinish[AMonth]:=AFinish[AMonth]+AValue;
end;
ADOQuery2.Next;
end;
end;
procedure TTas410_01Form.ByCustomer(AYear:string); //按客户
var
AValue,AMonth:Integer;
AClass:string;
begin
//取得有子任务的电脑编号
AClass:=GetChildTask(cbClass.Text);
//服務總數統計 按申报日期来统计
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select count(T510_001) as FTotal,O150_001,O150_003,month('+AByTotal+') as FMonth');
ADOQuery1.SQL.Add(' from TAS510,ORD150 where T510_016=O150_001 and year('+AByTotal+')='+AYear);
if AClass<>'' then ADOQuery1.SQL.Add(' and T510_004 in ('+AClass+')');
ADOQuery1.SQL.Add(' group by O150_001,O150_003,month('+AByTotal+')');
ADOQuery1.SQL.Add('order by O150_001');
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(T510_001) as FFinish,O150_001,O150_003,month('+AByFinish+') as FMonth');
ADOQuery2.SQL.Add(' from TAS510,ORD150 where T510_016=O150_001 and T510_003 in ('+AStatusNo+') and year('+AByFinish+')='+AYear);
if AClass<>'' then ADOQuery2.SQL.Add(' and T510_004 in ('+AClass+')');
ADOQuery2.SQL.Add(' group by O150_001,O150_003,month('+AByFinish+')');
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;
end else
begin
ADODataSet1.Append;
ADODataSet1.FieldByName('FNo').Value:=ADOQuery2.FieldByName('O150_001').Value;
ADODataSet1.FieldByName('FName').Value:=ADOQuery2.FieldByName('O150_003').Value;
ADODataSet1.FieldByName('FParent').Value:=ADOQuery2.FieldByName('O150_001').Value;
AValue:=ADOQuery2.FieldByName('FFinish').AsInteger;
AMonth:=ADOQuery2.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,2);
ADODataSet1.Post;
end;
AFinish[AMonth]:=AFinish[AMonth]+AValue;
ADOQuery2.Next;
end;
end;
procedure TTas410_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;
if Assigned(SYSDM.wwFilterDialog1.Form) then SYSDM.wwFilterDialog1.ClearFilter;
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:ByTaskClass(cbYear.Text); //按任務類別
1:ByItemClass(cbYear.Text); //按産品類別
2:ByCustomer(cbYear.Text); //按客户
end;
ADODataSet1.EnableControls;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select count(T510_001) as FTotal,month('+AByTotal+') as FMonth');
ADOQuery1.SQL.Add(' from TAS510 where year('+AByTotal+')='+cbYear.Text);
ADOQuery1.SQL.Add(' group by month('+AByTotal+')');
ADOQuery1.Open;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select count(T510_001) as FFinish,month('+AByFinish+') as FMonth');
ADOQuery2.SQL.Add(' from TAS510 where T510_003 in ('+AStatusNo+') and year('+AByFinish+')='+cbYear.Text);
ADOQuery2.SQL.Add(' group by month('+AByFinish+')');
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 TTas410_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 TTas410_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 TTas410_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 TTas410_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 TTas410_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 TTas410_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 TTas410_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 TTas410_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 TTas410_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 TTas410_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 TTas410_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 TTas410_01Form.dxDBTreeList1FPercent4DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
if ATotal[4]=0 then AText:='0.00%' else AText:=FormatFloat(',0.00%',(AFinish[4]/ATotal[4])*100);
end;
procedure TTas410_01Form.dxDBTreeList1FTotal5DrawSummaryFooter(
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[5]);
end;
procedure TTas410_01Form.dxDBTreeList1FFinish5DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -