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

📄 tas450_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
unit Tas450_01;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BAS200_12, dxExEdtr, DB, ADODB, ActnList, Menus, dxCntner, dxTL,
  dxDBCtrl, dxDBTL, ExtCtrls, ComCtrls, ToolWin, TeeProcs, TeEngine, Chart,
  DbChart, Buttons, StdCtrls, Series, fr_Class, TeeFunci;

type
  TTas450_01Form = class(TBas200_12Form)
    Splitter1: TSplitter;
    DBChart1: TDBChart;
    ADOQuery1: TADOQuery;
    lblYear: TLabel;
    cbYear: TComboBox;
    sbSearch: TSpeedButton;
    ADODataSet1FName: TStringField;
    ADODataSet1FTotal1: TIntegerField;
    ADODataSet1FTotal2: TIntegerField;
    ADODataSet1FTotal3: TIntegerField;
    ADODataSet1FTotal4: TIntegerField;
    ADODataSet1FTotal5: TIntegerField;
    ADODataSet1FTotal6: TIntegerField;
    ADODataSet1FTotal7: TIntegerField;
    ADODataSet1FTotal8: TIntegerField;
    ADODataSet1FTotal9: TIntegerField;
    ADODataSet1FTotal10: TIntegerField;
    ADODataSet1FTotal11: TIntegerField;
    ADODataSet1FTotal12: TIntegerField;
    ADODataSet1FTotal: TIntegerField;
    ADODataSet1FNo: TIntegerField;
    ADODataSet1FParent: TIntegerField;
    dxDBTreeList1FName: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal1: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal2: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal3: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal4: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal5: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal6: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal7: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal8: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal9: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal10: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal11: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal12: TdxDBTreeListMaskColumn;
    dxDBTreeList1FTotal: TdxDBTreeListMaskColumn;
    ActOpen: TAction;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    Series1: TLineSeries;
    Series2: TLineSeries;
    TeeFunction1: TAverageTeeFunction;
    ADODataSet2: TADODataSet;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbSearchClick(Sender: TObject);
    procedure dxDBTreeList1FTotal1DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal2DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal3DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal4DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal5DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal6DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal7DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal8DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal9DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal10DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal11DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotal12DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBTreeList1FTotalDrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure ActOpenExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
  private
    ATotal:array[1..13] of double;
    procedure GetData(AYear:string);
    procedure SetFieldValue(AMonth,AValue:Integer);
    procedure UpdateParent(AParentNo:Integer;AValue:Double;ADataSet:TDataSet;AFieldName:string);
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure RefreshEvent; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Tas450_01Form: TTas450_01Form;

implementation

uses SYSDATA, CommFun, Tas510_01;

{$R *.dfm}

procedure TTas450_01Form.SetInterface;
var
  AYear:string;
begin
  inherited;
  Caption:=GetDBString('TAS45001001');  //服务客户数量
  lblYear.Caption:=GetDBString('TAS45001002');  //年度
  sbSearch.Caption:=GetDBString('TAS45001004');  //查询
  ADODataSet1FName.DisplayLabel:=GetDBString('TAS45001006');  //名称
  ADODataSet1FTotal1.DisplayLabel:=GetDBString('TAS45001007');  //一月
  ADODataSet1FTotal2.DisplayLabel:=GetDBString('TAS45001008');  //二月
  ADODataSet1FTotal3.DisplayLabel:=GetDBString('TAS45001009');  //三月
  ADODataSet1FTotal4.DisplayLabel:=GetDBString('TAS45001010');  //四月
  ADODataSet1FTotal5.DisplayLabel:=GetDBString('TAS45001011');  //五月
  ADODataSet1FTotal6.DisplayLabel:=GetDBString('TAS45001012');  //六月
  ADODataSet1FTotal7.DisplayLabel:=GetDBString('TAS45001013');  //七月
  ADODataSet1FTotal8.DisplayLabel:=GetDBString('TAS45001014');  //八月
  ADODataSet1FTotal9.DisplayLabel:=GetDBString('TAS45001015');  //九月
  ADODataSet1FTotal10.DisplayLabel:=GetDBString('TAS45001016');  //十月
  ADODataSet1FTotal11.DisplayLabel:=GetDBString('TAS45001017');  //十一月
  ADODataSet1FTotal12.DisplayLabel:=GetDBString('TAS45001018');  //十二月
  ADODataSet1FTotal.DisplayLabel:=GetDBString('TAS45001019');  //小计

  cbYear.Clear;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select distinct year('+AByTotal+') from TAS510');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    if SYSDM.qryQuery.Fields[0].AsString<>'' then
      cbYear.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
    SYSDM.qryQuery.Next;
  end;
  AYear:=FormatDateTime('yyyy',GetServerDate);
  if cbYear.Items.IndexOf(AYear)=-1 then cbYear.Items.Add(AYear);
  cbYear.ItemIndex:=cbYear.Items.IndexOf(AYear);  //设置今年的年份
end;

procedure TTas450_01Form.FormCreate(Sender: TObject);
begin
  inherited;
  SetInterface;
  sbSearch.Click;
end;

procedure TTas450_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  ADOQuery1.Close;
end;

procedure TTas450_01Form.sbSearchClick(Sender: TObject);
var
  AMonth:Integer;
begin
  inherited;
//查询
  ATotal[1]:=0;  ATotal[2]:=0;  ATotal[3]:=0;  ATotal[4]:=0;  ATotal[5]:=0;
  ATotal[6]:=0;  ATotal[7]:=0;  ATotal[8]:=0;  ATotal[9]:=0;  ATotal[10]:=0;
  ATotal[11]:=0;  ATotal[12]:=0;  ATotal[13]:=0;
  Screen.Cursor:=crHourGlass;
  if Assigned(SYSDM.wwFilterDialog1.Form) then SYSDM.wwFilterDialog1.ClearFilter;
  ADODataSet1.DisableControls;
  ADODataSet1.Close;
  ADODataSet1.FieldDefs.Clear;
  ADODataSet1.FieldDefs.Add('FNo',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FName',ftString,50);
  ADODataSet1.FieldDefs.Add('FParent',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal1',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal2',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal3',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal4',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal5',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal6',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal7',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal8',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal9',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal10',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal11',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal12',ftInteger,0);
  ADODataSet1.FieldDefs.Add('FTotal',ftInteger,0);
  ADODataSet1.CreateDataSet;
  GetData(cbYear.Text);
  ADODataSet1.EnableControls;

  ADODataSet2.Close;
  ADODataSet2.FieldDefs.Clear;
  ADODataSet2.FieldDefs.Add('FMonth',ftInteger,0);
  ADODataSet2.FieldDefs.Add('FTotal',ftInteger,0);
  ADODataSet2.CreateDataSet;

  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select 1 as FTotal,T510_016,T100_001,month('+AByTotal+') as FMonth');
  ADOQuery1.SQL.Add('from TAS510,TAS100');
  ADOQuery1.SQL.Add('where T510_004=T100_001 and year('+AByTotal+')='+cbYear.Text);
  ADOQuery1.SQL.Add('group by T100_001,T510_016,month('+AByTotal+')');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    AMonth:=ADOQuery1.FieldByName('FMonth').Value;
    if ADODataSet2.Locate('FMonth',AMonth,[]) then
    begin
      ADODataSet2.Edit;
      ADODataSet2.FieldByName('FTotal').Value:=ADODataSet2.FieldByName('FTotal').Value+ADOQuery1.FieldByName('FTotal').Value;
      ADODataSet2.Post;
    end else
    begin
      ADODataSet2.Append;
      ADODataSet2.FieldByName('FMonth').Value:=AMonth;
      ADODataSet2.FieldByName('FTotal').Value:=ADOQuery1.FieldByName('FTotal').Value;
      ADODataSet2.Post;
    end;
    ADOQuery1.Next;
  end;

  DBChart1.RefreshData;
  Screen.Cursor:=crDefault;
end;

procedure TTas450_01Form.SetFieldValue(AMonth,AValue:Integer);
begin
  if not (ADODataSet1.State in [dsInsert,dsEdit]) then Exit;
  case AMonth of
    1: ADODataSet1.FieldByName('FTotal1').Value:=ADODataSet1.FieldByName('FTotal1').AsInteger+AValue;
    2: ADODataSet1.FieldByName('FTotal2').Value:=ADODataSet1.FieldByName('FTotal2').AsInteger+AValue;
    3: ADODataSet1.FieldByName('FTotal3').Value:=ADODataSet1.FieldByName('FTotal3').AsInteger+AValue;
    4: ADODataSet1.FieldByName('FTotal4').Value:=ADODataSet1.FieldByName('FTotal4').AsInteger+AValue;
    5: ADODataSet1.FieldByName('FTotal5').Value:=ADODataSet1.FieldByName('FTotal5').AsInteger+AValue;
    6: ADODataSet1.FieldByName('FTotal6').Value:=ADODataSet1.FieldByName('FTotal6').AsInteger+AValue;
    7: ADODataSet1.FieldByName('FTotal7').Value:=ADODataSet1.FieldByName('FTotal7').AsInteger+AValue;
    8: ADODataSet1.FieldByName('FTotal8').Value:=ADODataSet1.FieldByName('FTotal8').AsInteger+AValue;
    9: ADODataSet1.FieldByName('FTotal9').Value:=ADODataSet1.FieldByName('FTotal9').AsInteger+AValue;
    10: ADODataSet1.FieldByName('FTotal10').Value:=ADODataSet1.FieldByName('FTotal10').AsInteger+AValue;
    11: ADODataSet1.FieldByName('FTotal11').Value:=ADODataSet1.FieldByName('FTotal11').AsInteger+AValue;
    12: ADODataSet1.FieldByName('FTotal12').Value:=ADODataSet1.FieldByName('FTotal12').AsInteger+AValue;
  end;
  ADODataSet1.FieldByName('FTotal').Value:=ADODataSet1.FieldByName('FTotal').AsInteger+AValue;
  ATotal[13]:=ATotal[13]+AValue;
end;

//将下级任务类别数量累加到上级任务类别
procedure TTas450_01Form.UpdateParent(AParentNo:Integer;AValue:Double;ADataSet:TDataSet;AFieldName:string);
var
  AParent:Integer;
  AClassName:String;
begin
  //查找任务类别表中该记录是否有上级分类
  AParent:=GetValue('select T100_003 from TAS100 where T100_001='+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 T100_002 from TAS100 where T100_001='+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;

⌨️ 快捷键说明

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