📄 ser410_01.pas.svn-base
字号:
AFinish[13]:=AFinish[13]+AValue;
end;
end;
if ADODataSet1.FieldByName('FTotal').IsNull then
ADODataSet1.FieldByName('FPercent').Value:=0
else
ADODataSet1.FieldByName('FPercent').Value:=(ADODataSet1.FieldByName('FFinish').AsInteger/ADODataSet1.FieldByName('FTotal').AsInteger)*100;
end;
procedure TSer410_01Form.ByServerClass(AYear:string); //按服务类别
var
ABookmark:TBookmark;
AValue,AClassNo,AMonth,AParentNo:Integer;
begin
//服務總數統計 按申报日期来统计
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select count(S500_001) as FTotal,S100_001,S100_002,S100_003,month(S500_007) as FMonth');
ADOQuery1.SQL.Add('from SER100,SER500 ');
ADOQuery1.SQL.Add('where SER100.S100_001=SER500.S500_004 and year(S500_007)='+AYear) ;
ADOQuery1.SQL.Add('group by S100_001,S100_002,S100_003,month(S500_007)');
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
AClassNo:=ADOQuery1.FieldByName('S100_001').Value;
if not ADODataSet1.Locate('FNo',AClassNo,[]) then
begin
ADODataSet1.Append;
ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('S100_001').Value;
ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('S100_002').Value;
ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('S100_003').Value;
AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,1);
ATotal[AMonth]:=ATotal[AMonth]+AValue;
end else
begin
ADODataSet1.Edit;
AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,1);
ATotal[AMonth]:=ATotal[AMonth]+AValue;
end;
ADODataSet1.Post;
ADOQuery1.Next;
end;
//已完成數量統計 按实际完成日期来统计
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select count(S500_001) as FFinish,S100_001,S100_002,S100_003,month(S500_026) as FMonth');
ADOQuery2.SQL.Add(' from SER100,SER500,SER110 ');
ADOQuery2.SQL.Add(' where SER100.S100_001=SER500.S500_004 and SER500.S500_003=SER110.S110_001 and SER110.S110_002=12 and year(S500_026)='+AYear );
ADOQuery2.SQL.Add(' GROUP BY S100_001,S100_002,S100_003,month(S500_026)');
ADOQuery2.Open;
while not ADOQuery2.Eof do
begin
if ADODataSet1.Locate('FNo',ADOQuery2.FieldByName('S100_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;
//累加數量到上級類別
ADODataSet1.First;
while not ADODataSet1.Eof do
begin
ABookmark:=ADODataSet1.GetBookmark;
AParentNo:=ADODataSet1.FieldByName('FParent').AsInteger;
if AParentNo<>0 then
begin
AValue:=ADODataSet1.FieldByName('FTotal1').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal1');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal2').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal2');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal3').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal3');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal4').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal4');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal5').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal5');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal6').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal6');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal7').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal7');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal8').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal8');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal9').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal9');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal10').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal10');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal11').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal11');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal12').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal12');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish1').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish1');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish2').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish2');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish3').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish3');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish4').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish4');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish5').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish5');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish6').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish6');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish7').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish7');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish8').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish8');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish9').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish9');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish10').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish10');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish11').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish11');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish12').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish12');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FFinish').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FFinish');
end;
ADODataSet1.GotoBookmark(ABookmark);
ADODataSet1.FreeBookmark(ABookmark);
ADODataSet1.Edit;
if ADODataSet1.FieldByName('FTotal1').AsInteger=0 then
ADODataSet1.FieldByName('FPercent1').Value:=0
else
ADODataSet1.FieldByName('FPercent1').Value:=(ADODataSet1.FieldByName('FFinish1').AsInteger/ADODataSet1.FieldByName('FTotal1').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal2').AsInteger=0 then
ADODataSet1.FieldByName('FPercent2').Value:=0
else
ADODataSet1.FieldByName('FPercent2').Value:=(ADODataSet1.FieldByName('FFinish2').AsInteger/ADODataSet1.FieldByName('FTotal2').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal3').AsInteger=0 then
ADODataSet1.FieldByName('FPercent3').Value:=0
else
ADODataSet1.FieldByName('FPercent3').Value:=(ADODataSet1.FieldByName('FFinish3').AsInteger/ADODataSet1.FieldByName('FTotal3').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal4').AsInteger=0 then
ADODataSet1.FieldByName('FPercent4').Value:=0
else
ADODataSet1.FieldByName('FPercent4').Value:=(ADODataSet1.FieldByName('FFinish4').AsInteger/ADODataSet1.FieldByName('FTotal4').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal5').AsInteger=0 then
ADODataSet1.FieldByName('FPercent5').Value:=0
else
ADODataSet1.FieldByName('FPercent5').Value:=(ADODataSet1.FieldByName('FFinish5').AsInteger/ADODataSet1.FieldByName('FTotal5').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal6').AsInteger=0 then
ADODataSet1.FieldByName('FPercent6').Value:=0
else
ADODataSet1.FieldByName('FPercent6').Value:=(ADODataSet1.FieldByName('FFinish6').AsInteger/ADODataSet1.FieldByName('FTotal6').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal7').AsInteger=0 then
ADODataSet1.FieldByName('FPercent7').Value:=0
else
ADODataSet1.FieldByName('FPercent7').Value:=(ADODataSet1.FieldByName('FFinish7').AsInteger/ADODataSet1.FieldByName('FTotal7').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal8').AsInteger=0 then
ADODataSet1.FieldByName('FPercent8').Value:=0
else
ADODataSet1.FieldByName('FPercent8').Value:=(ADODataSet1.FieldByName('FFinish8').AsInteger/ADODataSet1.FieldByName('FTotal8').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal9').AsInteger=0 then
ADODataSet1.FieldByName('FPercent9').Value:=0
else
ADODataSet1.FieldByName('FPercent9').Value:=(ADODataSet1.FieldByName('FFinish9').AsInteger/ADODataSet1.FieldByName('FTotal9').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal10').AsInteger=0 then
ADODataSet1.FieldByName('FPercent10').Value:=0
else
ADODataSet1.FieldByName('FPercent10').Value:=(ADODataSet1.FieldByName('FFinish10').AsInteger/ADODataSet1.FieldByName('FTotal10').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal11').AsInteger=0 then
ADODataSet1.FieldByName('FPercent11').Value:=0
else
ADODataSet1.FieldByName('FPercent11').Value:=(ADODataSet1.FieldByName('FFinish11').AsInteger/ADODataSet1.FieldByName('FTotal11').AsInteger)*100;
if ADODataSet1.FieldByName('FTotal12').AsInteger=0 then
ADODataSet1.FieldByName('FPercent12').Value:=0
else
ADODataSet1.FieldByName('FPercent12').Value:=(ADODataSet1.FieldByName('FFinish12').AsInteger/ADODataSet1.FieldByName('FTotal12').AsInteger)*100;
ADODataSet1.Post;
ADODataSet1.Next;
end;
end;
procedure TSer410_01Form.ByCallClass(AYear:string); //按来电類別
var
AValue,AMonth:Integer;
begin
//来电總數統計 按申报日期来统计
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select count(S500_001) as FTotal,S500_006,month(S500_007) as FMonth');
ADOQuery1.SQL.Add('from SER500');
ADOQuery1.SQL.Add('where year(S500_007)='+AYear);
ADOQuery1.SQL.Add('group by S500_006,month(S500_007)');
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
if ADODataSet1.Locate('FNo',ADOQuery1.FieldByName('S500_006').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('S500_006').Value;
if ADOQuery1.FieldByName('S500_006').Value=0 then ADODataSet1.FieldByName('FName').Value:= '电话';
if ADOQuery1.FieldByName('S500_006').Value=1 then ADODataSet1.FieldByName('FName').Value:= '传真';
if ADOQuery1.FieldByName('S500_006').Value=2 then ADODataSet1.FieldByName('FName').Value:= '电邮';
if ADOQuery1.FieldByName('S500_006').Value=3 then ADODataSet1.FieldByName('FName').Value:= '其他';
ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('S500_006').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;
showmessage('ok2');
ADOQuery2.SQL.Add('select count(S500_001) AS FTotal,S500_006,month(S500_007) as FMonth');
ADOQuery2.SQL.Add(' from SER500');
ADOQuery2.SQL.Add(' where year(S500_007)='+AYear);
ADOQuery2.SQL.Add(' GROUP BY S500_006,month(S500_007)');
showmessage('ok3');
ADOQuery2.Open;
while not ADOQuery2.Eof do
begin
if ADODataSet1.Locate('FNo',ADOQuery2.FieldByName('S500_006').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.ByItemClass(AYear:string); //按産品類別
var
AValue,AMonth:Integer;
begin
//服務總數統計 按申报日期来统计
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select count(S500_001) as FTotal,I150_005,I120_003,month(S500_007) as FMonth');
ADOQuery1.SQL.Add(' from SER500,INV120,INV150');
ADOQuery1.SQL.Add(' where SER500.S500_018=INV150.I150_005 and INV150.I150_005=INV120.I120_001 and year(S500_007)='+AYear);
ADOQuery1.SQL.Add(' GROUP BY I150_005,I120_003,month(S500_007)');
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
if ADODataSet1.Locate('FNo',ADOQuery1.FieldByName('I150_005').Value,[]) then
begin
ADODataSet1.Edit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -