📄 tas420_01.pas.svn-base
字号:
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 + -