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

📄 tas410_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
          ADODataSet1.FieldByName('FPercent12').Value:=0
        else
          ADODataSet1.FieldByName('FPercent12').Value:=(ADODataSet1.FieldByName('FFinish12').AsInteger/ADODataSet1.FieldByName('FTotal12').AsInteger)*100;
      end;
  end;
  case AType of
    1:
      begin
        ADODataSet1.FieldByName('FTotal').Value:=ADODataSet1.FieldByName('FTotal').AsInteger+AValue;
        ATotal[13]:=ATotal[13]+AValue;
      end;
    2:
      begin
        ADODataSet1.FieldByName('FFinish').Value:=ADODataSet1.FieldByName('FFinish').AsInteger+AValue;
        AFinish[13]:=AFinish[13]+AValue;
      end;
  end;
  if (ADODataSet1.FieldByName('FTotal').IsNull) or (ADODataSet1.FieldByName('FTotal').AsInteger=0) then
    ADODataSet1.FieldByName('FPercent').Value:=0
  else
    ADODataSet1.FieldByName('FPercent').Value:=(ADODataSet1.FieldByName('FFinish').AsInteger/ADODataSet1.FieldByName('FTotal').AsInteger)*100;
end;

procedure TTas410_01Form.ByTaskClass(AYear:string);  //按任務類別
var
  ABookmark:TBookmark;  
  AValue,AClassNo,AMonth,AParentNo:Integer;
  AClass:string;
begin
  //取得有子任务的电脑编号
  AClass:=GetChildTask(cbClass.Text);

  //服務總數統計     按申报日期来统计
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select count(T510_001) as FTotal,T100_001,T100_002,T100_003,month('+AByTotal+') as FMonth');
  ADOQuery1.SQL.Add('  from TAS510,TAS100 where T510_004=T100_001 and year('+AByTotal+')='+AYear);
  if AClass<>'' then ADOQuery1.SQL.Add('  and T510_004 in ('+AClass+')');
  ADOQuery1.SQL.Add('  group by T100_001,T100_002,T100_003,month('+AByTotal+')');
  ADOQuery1.SQL.Add('order by T100_003,T100_001');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    AClassNo:=ADOQuery1.FieldByName('T100_001').Value;
    if not ADODataSet1.Locate('FNo',AClassNo,[]) then
    begin
      ADODataSet1.Append;
      ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('T100_001').Value;
      ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('T100_002').Value;
      ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('T100_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(T510_001) as FFinish,T100_001,T100_002,T100_003,month('+AByFinish+') as FMonth');
  ADOQuery2.SQL.Add('  from TAS510,TAS100 where T510_004=T100_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 T100_001,T100_002,T100_003,month('+AByFinish+')');
  ADOQuery2.Open;
  while not ADOQuery2.Eof do
  begin
    if ADODataSet1.Locate('FNo',ADOQuery2.FieldByName('T100_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 TTas410_01Form.ByItemClass(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,I120_001,I120_003,month('+AByTotal+') as FMonth');
  ADOQuery1.SQL.Add('  from TAS510,INV150,INV120 where T510_017=I150_001 and I150_005=I120_001 and year('+AByTotal+')='+AYear);
  if AClass<>'' then ADOQuery1.SQL.Add('  and T510_004 in ('+AClass+')');
  ADOQuery1.SQL.Add('  group by I120_001,I120_003,month('+AByTotal+')');
  ADOQuery1.SQL.Add('order by I120_001');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    if ADODataSet1.Locate('FNo',ADOQuery1.FieldByName('I120_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('I120_001').Value;
      ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('I120_003').Value;
      ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('I120_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,I120_001,I120_003,month('+AByFinish+') as FMonth');
  ADOQuery2.SQL.Add('  from TAS510,INV150,INV120 where T510_017=I150_001 and I150_005=I120_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 I120_001,I120_003,month('+AByFinish+')');
  ADOQuery2.Open;
  while not ADOQuery2.Eof do
  begin
    if ADODataSet1.Locate('FNo',ADOQuery2.FieldByName('I120_001').Value,[]) then
    begin
      ADODataSet1.Edit;
      AValue:=ADOQuery2.FieldByName('FFinish').AsInteger;
      AMonth:=ADOQuery2.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue,2);
      ADODataSet1.Post;

⌨️ 快捷键说明

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