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

📄 ord410_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 4 页
字号:
      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 + -