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

📄 tas435_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
      ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('T100_002').Value;
      ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('T100_003').Value;
      AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
      ADays:=RoundB(ADOQuery1.FieldByName('FDays').AsFloat);  //按日
      case cbType.ItemIndex of
        0:ADays:=RoundB(ADOQuery1.FieldByName('FDays').AsFloat);  //按日
        1:ADays:=RoundB(ADOQuery1.FieldByName('FDays').AsFloat/5);  //按周
        2:ADays:=RoundB(ADOQuery1.FieldByName('FDays').AsFloat/22);  //按月
      end;
      SetFieldValue(ADays,AValue);
      ADODataSet1.Post;
    end;
    ADOQuery1.Next;
  end;

  //累加數量到上級類別
  ADODataSet1.First;
  while not ADODataSet1.Eof do
  begin
    ABookmark:=ADODataSet1.GetBookmark;
    AParentNo:=ADODataSet1.FieldByName('FParent').Value;
    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('FTotal').AsInteger;
      UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal');
    end;
    ADODataSet1.GotoBookmark(ABookmark);
    ADODataSet1.FreeBookmark(ABookmark);
    ADODataSet1.Next;
  end;
end;

procedure TTas435_01Form.ADODataSet1AfterScroll(DataSet: TDataSet);
var
  I:Integer;
begin
  inherited;
//  if ABusy then Exit;
  if not ADODataSet1.Active then Exit;
  if ADODataSet1.IsEmpty then Exit;
  ADODataSet3.Close;
  ADODataSet3.FieldDefs.Clear;
  ADODataSet3.FieldDefs.Add('FName',ftString,50);
  ADODataSet3.FieldDefs.Add('FSum',ftInteger,0);
  ADODataSet3.CreateDataSet;

  for I:=3 to ADODataSet1.FieldCount-2 do
  begin
    ADODataSet3.Append;
    ADODataSet3.FieldByName('FName').Value:=ADODataSet1.Fields[I].DisplayLabel;
    ADODataSet3.FieldByName('FSum').Value:=ADODataSet1.Fields[I].Value;
    ADODataSet3.Post;
  end;
  DBChart2.RefreshData;
end;

procedure TTas435_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',ATotal[1]);
end;

procedure TTas435_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',ATotal[2]);
end;

procedure TTas435_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',ATotal[3]);
end;

procedure TTas435_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',ATotal[4]);
end;

procedure TTas435_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',ATotal[5]);
end;

procedure TTas435_01Form.dxDBTreeList1FTotal6DrawSummaryFooter(
  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',ATotal[6]);
end;

procedure TTas435_01Form.dxDBTreeList1FTotalDrawSummaryFooter(
  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',ATotal[7]);
end;

function GetStatusName(AStatus:string):string;
var
  S:string;
begin
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select T120_003 from TAS120 where T120_001 in ('+AStatus+')');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    S:=S+' or '+SYSDM.qryQuery.Fields[0].AsString;
    SYSDM.qryQuery.Next;
  end;
  Delete(S,1,4);
  Result:=S;
end;

function GetClassName(AClass:string):string;
var
  S:string;
begin
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select T100_002 from TAS100 where T100_001 in ('+AClass+')');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    S:=S+' or '+SYSDM.qryQuery.Fields[0].AsString;
    SYSDM.qryQuery.Next;
  end;
  Delete(S,1,4);
  Result:=S;
end;

procedure TTas435_01Form.ActOpenExecute(Sender: TObject);
var
  AFieldInfo1,AFieldInfo2:TwwFieldInfo;
  ACode,AClassNo,AClassName:string;
  AStringList:TStringList;
  I:Integer;
begin
  inherited;
//查看
  if ADODataSet1.IsEmpty then Exit;
  Screen.Cursor:=crHourGlass;
  Tas520_01Form:=TTas520_01Form.Create(Application);
  Tas520_01Form.edtFromDate.Date:=edtFromDate.Date;
  Tas520_01Form.edtToDate.Date:=edtToDate.Date;
  Tas520_01Form.AField:=AByFinish;
  Tas520_01Form.sbSearch.Click;
  FilterDialog(Tas520_01Form.DataSource1,False);

  //取得任务类别下所有子類別
  AStringList:=TStringList.Create;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select * from TAS100 where T100_002='+''''+ADODataSet1FName.Value+'''');
  SYSDM.qryQuery.Open;
  if SYSDM.qryQuery.IsEmpty then AClassNo:='0' else AClassNo:=SYSDM.qryQuery.FieldByName('T100_001').AsString;
  if AClassNo<>'0' then
  begin
    AStringList.Add(AClassNo);
    if HasChild(AClassNo,'TAS100','T100_003') then GetChild(AClassNo,'TAS100','T100_003','T100_001',AStringList);
  end;
  AClassNo:='';
  for I:=0 to AStringList.Count-1 do AClassNo:=AClassNo+','+AStringList[I];
  Delete(AClassNo,1,1);
  AStringList.Free;

  //任务类别
  AFieldInfo1:=TwwFieldInfo.create;
  AFieldInfo1.FieldName:='T100_002';
  AFieldInfo1.DisplayLabel:=Tas520_01Form.ADOQuery1T100_002.DisplayLabel;
  AFieldInfo1.MatchType:=fdMatchStart;
  AFieldInfo1.CaseSensitive:=False;
  AFieldInfo1.NonMatching:=False;
  AClassName:=GetClassName(AClassNo);
  AFieldInfo1.FilterValue:=AClassName;
  SYSDM.wwFilterDialog1.FieldInfo.Add(AFieldInfo1);
  //状态
  AFieldInfo2:=TwwFieldInfo.create;
  AFieldInfo2.FieldName:='T120_003';
  AFieldInfo2.DisplayLabel:=Tas520_01Form.ADOQuery1T120_003.DisplayLabel;
  AFieldInfo2.MatchType:=fdMatchStart;
  AFieldInfo2.CaseSensitive:=False;
  AFieldInfo2.NonMatching:=False;
  ACode:=GetStatusName(AStatusNo);
  AFieldInfo2.FilterValue:=ACode;
  SYSDM.wwFilterDialog1.FieldInfo.Add(AFieldInfo2);
  SYSDM.wwFilterDialog1.ApplyFilter;
  Tas520_01Form.ARecordCount:=GetDataSetCount(Tas520_01Form.ADOQuery1);
  Screen.Cursor:=crDefault;
  Tas520_01Form.ShowModal;
end;

procedure TTas435_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
  inherited;
  if ParName='ADate' then ParValue:=lblDate.Caption  //起止日期
  else if ParName='AFromDate' then ParValue:=edtFromDate.Text  //
  else if ParName='AToDate' then ParValue:=edtToDate.Text  //
  else if ParName='AType' then ParValue:=lblType.Caption  //类型
  else if ParName='ATypeValue' then ParValue:=cbType.Text  //
  else if ParName='FName' then ParValue:=ADODataSet1FName.DisplayLabel  //任务类别
  else if ParName='FTotal1' then ParValue:=ADODataSet1FTotal1.DisplayLabel  //一天
  else if ParName='FTotal2' then ParValue:=ADODataSet1FTotal2.DisplayLabel  //二天
  else if ParName='FTotal3' then ParValue:=ADODataSet1FTotal3.DisplayLabel  //三天
  else if ParName='FTotal4' then ParValue:=ADODataSet1FTotal3.DisplayLabel  //四天
  else if ParName='FTotal5' then ParValue:=ADODataSet1FTotal4.DisplayLabel  //五天
  else if ParName='FTotal6' then ParValue:=ADODataSet1FTotal5.DisplayLabel  //起过五天
  else if ParName='FTotal' then ParValue:=ADODataSet1FTotal.DisplayLabel  //小计
  else if ParName='FSum' then ParValue:=GetDBString('TAS43001020')  //合计
end;

procedure TTas435_01Form.ActPrintExecute(Sender: TObject);
var
  AfrReport:TfrReport;
begin
  //inherited;
  with TBitmap.Create do
  try
    DBChart1.bevelOuter:=bvNone;
    Width:=DBChart1.Width;
    Height:=DBChart1.Height;
    DBChart1.BufferedDisplay:=False;
    DBChart1.Draw(Canvas,Rect(0,0,Width,Height));
    DBChart1.BufferedDisplay:=True;
    SaveToFile(ASystemPath+'Report\TAS435A.bmp');
    DBChart1.bevelOuter:=bvLowered;
    DBChart2.bevelOuter:=bvNone;
    Width:=DBChart2.Width;
    Height:=DBChart2.Height;
    DBChart2.BufferedDisplay:=False;
    DBChart2.Draw(Canvas,Rect(0,0,Width,Height));
    DBChart2.BufferedDisplay:=True;
    SaveToFile(ASystemPath+'Report\TAS435B.bmp');
    DBChart2.bevelOuter:=bvLowered;
  finally
    Free;
  end;

  AfrReport:=TfrReport.Create(nil);
  try
    PreparedReport(ADODataSet1,AReportName,AfrReport);
    SYSDM.frDBDataSet1.DataSet:=ADODataSet1;
    ADODataSet1.DisableControls;
    SYSDM.frReport2.OnGetValue:=ReportGetValue;
    TfrPictureView(SYSDM.frReport2.FindObject('Picture2')).Picture.LoadFromFile(ASystemPath+'Report\TAS435A.bmp');
    TfrPictureView(SYSDM.frReport2.FindObject('Picture3')).Picture.LoadFromFile(ASystemPath+'Report\TAS435B.bmp');
    SYSDM.frReport2.ShowPreparedReport;
    SYSDM.frReport2.ShowReport;
    ADODataSet1.EnableControls;
  finally
    ADODataSet1.EnableControls;
    SYSDM.frReport2.Clear;
//    AfrReport.Free;
    if FileExists(ASystemPath+'Report\TAS435A.bmp') then DeleteFile(ASystemPath+'Report\TAS435A.bmp');
    if FileExists(ASystemPath+'Report\TAS435B.bmp') then DeleteFile(ASystemPath+'Report\TAS435B.bmp');
  end;
end;

procedure TTas435_01Form.RefreshEvent;
begin
  inherited;
  sbSearch.Click;
end;

initialization
  RegisterClass(TTas435_01Form);

finalization
  UnRegisterClass(TTas435_01Form);

end.

⌨️ 快捷键说明

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