📄 ord410_01.pas.svn-base
字号:
end;
7:
begin
case AType of
1:ADODataSet1.FieldByName('FQty7').Value:=ADODataSet1.FieldByName('FQty7').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount7').Value:=ADODataSet1.FieldByName('FAmount7').AsInteger+AValue;
end;
end;
8:
begin
case AType of
1:ADODataSet1.FieldByName('FQty8').Value:=ADODataSet1.FieldByName('FQty8').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount8').Value:=ADODataSet1.FieldByName('FAmount8').AsInteger+AValue;
end;
end;
9:
begin
case AType of
1:ADODataSet1.FieldByName('FQty9').Value:=ADODataSet1.FieldByName('FQty9').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount9').Value:=ADODataSet1.FieldByName('FAmount9').AsInteger+AValue;
end;
end;
10:
begin
case AType of
1:ADODataSet1.FieldByName('FQty10').Value:=ADODataSet1.FieldByName('FQty10').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount10').Value:=ADODataSet1.FieldByName('FAmount10').AsInteger+AValue;
end;
end;
11:
begin
case AType of
1:ADODataSet1.FieldByName('FQty11').Value:=ADODataSet1.FieldByName('FQty11').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount11').Value:=ADODataSet1.FieldByName('FAmount11').AsInteger+AValue;
end;
end;
12:
begin
case AType of
1:ADODataSet1.FieldByName('FQty12').Value:=ADODataSet1.FieldByName('FQty12').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount12').Value:=ADODataSet1.FieldByName('FAmount12').AsInteger+AValue;
end;
end;
end;
case AType of
1:
begin
ADODataSet1.FieldByName('FTotal').Value:=ADODataSet1.FieldByName('FTotal').AsInteger+AValue;
ANum[13]:=ANum[13]+AValue;
end;
2:
begin
ADODataSet1.FieldByName('FFinish').Value:=ADODataSet1.FieldByName('FFinish').AsInteger+AValue;
AAmount[13]:=AAmount[13]+AValue;
end;
end;
end;
//将下级任务类别数量累加到上级任务类别
procedure UpdateParent(AParentNo:Integer;AValue:Double;ADataSet:TDataSet;AFieldName,ATableName,AKey,ANameField,AParentField:string);
var
AParent:Integer;
AClassName:String;
begin
//查找任务类别表中该记录是否有上级分类
AParent:=GetValue('select '+AParentField+' from '+ATableName+' where '+AKey+'='+IntToStr(AParentNo));
if ADataSet.Locate('FNo',AParentNo,[]) then
begin
ADataSet.Edit;
ADataSet.FieldByName(AFieldName).Value:=ADataSet.FieldByName(AFieldName).AsFloat+AValue;
ADataSet.Post;
end else
begin
AClassName:=GetValue('select '+ANameField+' from '+ATableName+' where '+AKey+'='+IntToStr(AParentNo));
ADataSet.Append;
ADataSet.FieldByName('FNo').Value:=AParentNo;
ADataSet.FieldByName('FName').Value:=AClassName;
ADataSet.FieldByName('FParent').Value:=AParent;
ADataSet.FieldByName(AFieldName).Value:=AValue;
ADataSet.Post;
end;
end;
procedure TOrd410_01Form.ByCustomer(AYear:string); //按客户
var
AValue:double;
AMonth:integer;
begin
//销售数量和销售金额统计 按销售日期
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select O150_001 as FNo,''[''+O150_002+'']''+O150_003 as FName,O150_001 as FParent,sum(O510B_005) as FQty,sum(O510B_013) as FAmount,month(O510A_003) as FMonth');
ADOQuery1.SQL.Add('from ORD510A,ORD510B,ORD150');
ADOQuery1.SQL.Add('where O510A_001=O510B_001 and O510A_017=O150_001 and year(O510A_003)='+AYear);
ADOQuery1.SQL.Add('group by O150_001,''[''+O150_002+'']''+O150_003,O150_001,month(O510A_003)');
ADOQuery1.SQL.Add('order by ''[''+O150_002+'']''+O150_003');
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
if ADODataSet1.Locate('FNo',ADOQuery1.FieldByName('FNo').Value,[]) then
begin
ADODataSet1.Edit;
AValue:=ADOQuery1.FieldByName('FQty').AsFloat;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,1);
ADODataSet1.Post;
ADODataSet1.Edit;
AValue:=ADOQuery1.FieldByName('FAmount').AsFloat;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,2);
ADODataSet1.Post;
ANum[AMonth]:=ANum[AMonth]+AValue;
end else
begin
ADODataSet1.Append;
ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('FNo').Value;
ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('FName').Value;
ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('FParent').AsInteger;
AValue:=ADOQuery1.FieldByName('FQty').AsInteger;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,1);
ADODataSet1.Post;
ADODataSet1.Edit;
AValue:=ADOQuery1.FieldByName('FAmount').AsFloat;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,2);
ADODataSet1.Post;
ANum[AMonth]:=ANum[AMonth]+AValue;
end;
ADOQuery1.Next;
end;
end;
procedure TOrd410_01Form.ByCustomerClass(AYear: string); //按客户类别
var
ABookmark:TBookmark;
AMonth,AParentNo:Integer;
AValue:double;
begin
//销售数量和销售金额统计 按销售日期
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select O110_001 as FNo,O110_002 as FName,O110_003 as FParent,sum(O510B_005) as FQty,sum(O510B_013) as FAmount,month(O510A_003) as FMonth');
ADOQuery1.SQL.Add('from ORD510A,ORD510B,ORD150,ORD110');
ADOQuery1.SQL.Add('where O510A_001=O510B_001 and O510A_017=O150_001 and O150_010=O110_001 and year(O510A_003)='+AYear);
ADOQuery1.SQL.Add('group by O110_001,O110_002,O110_003,month(O510A_003)');
ADOQuery1.SQL.Add('order by O110_001');
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
if ADODataSet1.Locate('FNo',ADOQuery1.FieldByName('FNo').Value,[]) then
begin
ADODataSet1.Edit;
AValue:=ADOQuery1.FieldByName('FQty').AsFloat;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,1);
ADODataSet1.Post;
ADODataSet1.Edit;
AValue:=ADOQuery1.FieldByName('FAmount').AsFloat;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,2);
ADODataSet1.Post;
ANum[AMonth]:=ANum[AMonth]+AValue;
end else
begin
ADODataSet1.Append;
ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('FNo').Value;
ADODataSet1.FieldByName('FName').Value:='['+ADOQuery1.FieldByName('FNo').Value+']'+ADOQuery1.FieldByName('FName').Value;
ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('FParent').Value;
AValue:=ADOQuery1.FieldByName('FQty').AsInteger;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,1);
ADODataSet1.Post;
ADODataSet1.Edit;
AValue:=ADOQuery1.FieldByName('FAmount').AsFloat;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue,2);
ADODataSet1.Post;
ANum[AMonth]:=ANum[AMonth]+AValue;
end;
ADOQuery1.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('FQty1').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty1','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty2').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty2','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty3').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty3','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty4').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty4','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty5').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty5','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty6').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty6','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty7').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty7','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty8').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty8','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty9').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty9','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty10').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty10','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty11').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty11','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FQty12').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FQty12','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FAmount1').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FAmount1','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FAmount2').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FAmount2','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FAmount3').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FAmount3','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FAmount4').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FAmount4','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FAmount5').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FAmount5','ORD110','O110_001','O110_002','O110_003');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FAmount6').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FAmount6','ORD110','O110_001','O110_002','O110_003');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -