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

📄 tas420_01.pas.svn-base

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

interface

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

type
  TTas420_01Form = class(TBas200_11Form)
    DBChart1: TDBChart;
    Splitter1: TSplitter;
    lblYear: TLabel;
    cbYear: TComboBox;
    lblType: TLabel;
    cbType: TComboBox;
    sbSearch: TSpeedButton;
    ADOQuery1: TADOQuery;
    ADODataSet1FCode: TStringField;
    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;
    dxDBGrid1FCode: TdxDBGridMaskColumn;
    dxDBGrid1FName: TdxDBGridMaskColumn;
    dxDBGrid1FTotal1: TdxDBGridMaskColumn;
    dxDBGrid1FTotal2: TdxDBGridMaskColumn;
    dxDBGrid1FTotal3: TdxDBGridMaskColumn;
    dxDBGrid1FTotal4: TdxDBGridMaskColumn;
    dxDBGrid1FTotal5: TdxDBGridMaskColumn;
    dxDBGrid1FTotal6: TdxDBGridMaskColumn;
    dxDBGrid1FTotal7: TdxDBGridMaskColumn;
    dxDBGrid1FTotal8: TdxDBGridMaskColumn;
    dxDBGrid1FTotal9: TdxDBGridMaskColumn;
    dxDBGrid1FTotal10: TdxDBGridMaskColumn;
    dxDBGrid1FTotal11: TdxDBGridMaskColumn;
    dxDBGrid1FTotal12: TdxDBGridMaskColumn;
    dxDBGrid1FTotal: TdxDBGridMaskColumn;
    ActOpen: TAction;
    Series1: TLineSeries;
    Series2: TLineSeries;
    TeeFunction1: TAverageTeeFunction;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbSearchClick(Sender: TObject);
    procedure ActOpenExecute(Sender: TObject);
    procedure dxDBGrid1DblClick(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
  private
    procedure ByItem(AYear:string);  //按产品
    procedure ByItemClass(AYear:string);  //按産品類別
    procedure ByCustomer(AYear:string);  //按客户
    procedure SetFieldValue(AMonth,AValue:Integer);
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure RefreshEvent; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Tas420_01Form: TTas420_01Form;

implementation

uses SYSDATA, CommFun, Tas500_01;

{$R *.dfm}

procedure TTas420_01Form.SetInterface;
var
  AYear:string;
begin
  inherited;
  Caption:=GetDBString('TAS42001001');  //项目数量分析
  lblYear.Caption:=GetDBString('TAS42001002');  //年度
  lblType.Caption:=GetDBString('TAS42001003');  //类型
  sbSearch.Caption:=GetDBString('TAS42001004');  //查询
  ADODataSet1FCode.DisplayLabel:=GetDBString('TAS42001005');  //编号
  ADODataSet1FName.DisplayLabel:=GetDBString('TAS42001006');  //名称
  ADODataSet1FTotal1.DisplayLabel:=GetDBString('TAS42001007');  //一月
  ADODataSet1FTotal2.DisplayLabel:=GetDBString('TAS42001008');  //二月
  ADODataSet1FTotal3.DisplayLabel:=GetDBString('TAS42001009');  //三月
  ADODataSet1FTotal4.DisplayLabel:=GetDBString('TAS42001010');  //四月
  ADODataSet1FTotal5.DisplayLabel:=GetDBString('TAS42001011');  //五月
  ADODataSet1FTotal6.DisplayLabel:=GetDBString('TAS42001012');  //六月
  ADODataSet1FTotal7.DisplayLabel:=GetDBString('TAS42001013');  //七月
  ADODataSet1FTotal8.DisplayLabel:=GetDBString('TAS42001014');  //八月
  ADODataSet1FTotal9.DisplayLabel:=GetDBString('TAS42001015');  //九月
  ADODataSet1FTotal10.DisplayLabel:=GetDBString('TAS42001016');  //十月
  ADODataSet1FTotal11.DisplayLabel:=GetDBString('TAS42001017');  //十一月
  ADODataSet1FTotal12.DisplayLabel:=GetDBString('TAS42001018');  //十二月
  ADODataSet1FTotal.DisplayLabel:=GetDBString('TAS42001019');  //小计
  cbType.Clear;
  cbType.Items.Add(GetDBString('TAS42001020'));  //按产品
  cbType.Items.Add(GetDBString('TAS42001021'));  //按产品类别
  cbType.Items.Add(GetDBString('TAS42001022'));  //按客户
  cbType.ItemIndex:=0;

  cbYear.Clear;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select distinct year(T500_026) from TAS500');
  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 TTas420_01Form.FormCreate(Sender: TObject);
begin
  inherited;
  SetInterface;
  sbSearch.Click;
end;

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

procedure TTas420_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;
end;

procedure TTas420_01Form.ByItem(AYear:string);  //按产品
var
  AValue,AMonth:Integer;
begin
  //装机总数統計
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select count(T500_001) as FTotal,I150_002,I150_003,month(T500_026) as FMonth');
  ADOQuery1.SQL.Add('  from TAS500,INV150 where T500_016=I150_001 and year(T500_026)='+AYear);
  ADOQuery1.SQL.Add('group by I150_002,I150_003,month(T500_026)');
  ADOQuery1.SQL.Add('order by I150_002');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    if ADODataSet1.Locate('FCode',ADOQuery1.FieldByName('I150_002').Value,[]) then
    begin
      ADODataSet1.Edit;
      AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
      AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue);
      ADODataSet1.Post;
    end else
    begin
      ADODataSet1.Append;
      ADODataSet1.FieldByName('FCode').Value:=ADOQuery1.FieldByName('I150_002').Value;
      ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('I150_003').Value;
      AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
      AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue);
      ADODataSet1.Post;
    end;
    ADOQuery1.Next;
  end;
end;

procedure TTas420_01Form.ByItemClass(AYear:string);  //按産品類別
var
  AValue,AMonth:Integer;
begin
  //装机总数統計
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select count(T500_001) as FTotal,I120_002,I120_003,month(T500_026) as FMonth');
  ADOQuery1.SQL.Add('  from TAS500,INV150,INV120 where T500_016=I150_001 and I150_005=I120_001 and year(T500_026)='+AYear);
  ADOQuery1.SQL.Add('group by I120_002,I120_003,month(T500_026)');
  ADOQuery1.SQL.Add('order by I120_002');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    if ADODataSet1.Locate('FCode',ADOQuery1.FieldByName('I120_002').Value,[]) then
    begin
      ADODataSet1.Edit;
      AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
      AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
      SetFieldValue(AMonth,AValue);
      ADODataSet1.Post;
    end else
    begin
      ADODataSet1.Append;
      ADODataSet1.FieldByName('FCode').Value:=ADOQuery1.FieldByName('I120_002').Value;
      ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('I120_003').Value;

⌨️ 快捷键说明

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