📄 ord410_01.pas.svn-base
字号:
unit Ord410_01;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Bas200_12, dxExEdtr, Buttons, StdCtrls, ExtCtrls, Series, fr_Class,
TeEngine, TeeProcs, Chart, DbChart, DB, ADODB, ActnList, Menus, dxCntner,
dxTL, dxDBCtrl, dxDBTL, ComCtrls, ToolWin, dxDBTLCl, wwfltdlg;
type
TOrd410_01Form = class(TBas200_12Form)
lblYear: TLabel;
cbYear: TComboBox;
lblType: TLabel;
cbType: TComboBox;
sbSearch: TSpeedButton;
ADOQuery1: TADOQuery;
ActOpen: TAction;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
ADODataSet1FNo: TIntegerField;
ADODataSet1FParent: TIntegerField;
ADODataSet1FQty1: TFloatField;
ADODataSet1FAmount1: TFloatField;
ADODataSet1FQty2: TFloatField;
ADODataSet1FAmount2: TFloatField;
ADODataSet1FQty3: TFloatField;
ADODataSet1FAmount3: TFloatField;
ADODataSet1FQty4: TFloatField;
ADODataSet1FAmount4: TFloatField;
ADODataSet1FQty5: TFloatField;
ADODataSet1FAmount5: TFloatField;
ADODataSet1FQty6: TFloatField;
ADODataSet1FAmount6: TFloatField;
ADODataSet1FQty7: TFloatField;
ADODataSet1FAmount7: TFloatField;
ADODataSet1FQty8: TFloatField;
ADODataSet1FAmount8: TFloatField;
ADODataSet1FQty9: TFloatField;
ADODataSet1FAmount9: TFloatField;
ADODataSet1FQty10: TFloatField;
ADODataSet1FAmount10: TFloatField;
ADODataSet1FQty11: TFloatField;
ADODataSet1FAmount11: TFloatField;
ADODataSet1FQty12: TFloatField;
ADODataSet1FAmount12: TFloatField;
ADODataSet1FTotal: TFloatField;
ADODataSet1FFinish: TFloatField;
dxDBTreeList1FName: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty1: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount1: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty2: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount2: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty3: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount3: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty4: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount4: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty5: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount5: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty6: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount6: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty7: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount7: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty8: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount8: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty9: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount9: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty10: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount10: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty11: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount11: TdxDBTreeListMaskColumn;
dxDBTreeList1FQty12: TdxDBTreeListMaskColumn;
dxDBTreeList1FAmount12: TdxDBTreeListMaskColumn;
dxDBTreeList1FTotal: TdxDBTreeListMaskColumn;
dxDBTreeList1FFinish: TdxDBTreeListMaskColumn;
ADODataSet1FName: TStringField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sbSearchClick(Sender: TObject);
procedure ActOpenExecute(Sender: TObject);
procedure ActPrintExecute(Sender: TObject);
private
ANum:array[1..13] of double;
AAmount:array[1..13] of double;
procedure ByCustomer(AYear:string); //按客户
procedure ByCustomerClass(AYear:string); //按客户类别
procedure ByItem(AYear:string); //按产品
procedure ByItemClass(AYear:string); //按产品类别
procedure BySeller(AYear:string); //按销售员
procedure ByArea(AYear:string); //按地区
procedure SetFieldValue(AMonth:integer;AValue:double;AType:integer);
{ Private declarations }
public
procedure SetInterface; override;
procedure RefreshEvent; override;
procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
{ Public declarations }
end;
var
Ord410_01Form: TOrd410_01Form;
implementation
uses SYSDATA, CommFun;
{$R *.dfm}
procedure TOrd410_01Form.SetInterface;
var
AYear:string;
begin
inherited;
Caption:=GetDBString('ORD41001001'); //月销售量分析
lblYear.Caption:=GetDBString('ORD41001002'); //年度
lblType.Caption:=GetDBString('ORD41001003'); //类型
sbSearch.Caption:=GetDBString('ORD41001004'); //查询
cbType.Clear;
cbType.Items.Add(GetDBString('ORD41001005')); //按客户
cbType.Items.Add(GetDBString('ORD41001006')); //按客户类别
cbType.Items.Add(GetDBString('ORD41001007')); //按产品
cbType.Items.Add(GetDBString('ORD41001008')); //按产品类别
cbType.Items.Add(GetDBString('ORD41001009')); //按销售员
cbType.Items.Add(GetDBString('ORD41001010')); //按地区
cbType.ItemIndex:=0;
dxDBTreeList1.Bands.Items[1].Caption:=GetDBString('ORD41001011'); //一月
dxDBTreeList1.Bands.Items[2].Caption:=GetDBString('ORD41001012'); //二月
dxDBTreeList1.Bands.Items[3].Caption:=GetDBString('ORD41001013'); //三月
dxDBTreeList1.Bands.Items[4].Caption:=GetDBString('ORD41001014'); //四月
dxDBTreeList1.Bands.Items[5].Caption:=GetDBString('ORD41001015'); //五月
dxDBTreeList1.Bands.Items[6].Caption:=GetDBString('ORD41001016'); //六月
dxDBTreeList1.Bands.Items[7].Caption:=GetDBString('ORD41001017'); //七月
dxDBTreeList1.Bands.Items[8].Caption:=GetDBString('ORD41001018'); //八月
dxDBTreeList1.Bands.Items[9].Caption:=GetDBString('ORD41001019'); //九月
dxDBTreeList1.Bands.Items[10].Caption:=GetDBString('ORD41001020'); //十月
dxDBTreeList1.Bands.Items[11].Caption:=GetDBString('ORD41001021'); //十一月
dxDBTreeList1.Bands.Items[12].Caption:=GetDBString('ORD41001022'); //十二月
dxDBTreeList1.Bands.Items[13].Caption:=GetDBString('ORD41001023'); //小计
ADODataSet1FName.DisplayLabel:=GetDBString('ORD41001027'); //编号名称
ADODataSet1FQty1.DisplayLabel:=GetDBString('ORD41001025'); //销售数量
ADODataSet1FAmount1.DisplayLabel:=GetDBString('ORD41001026'); //销售金额
ADODataSet1FQty2.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount2.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty3.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount3.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty4.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount4.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty5.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount5.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty6.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount6.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty7.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount7.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty8.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount8.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty9.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount9.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty10.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount10.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty11.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount11.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FQty12.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FAmount12.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
ADODataSet1FTotal.DisplayLabel:=ADODataSet1FQty1.DisplayLabel;
ADODataSet1FFinish.DisplayLabel:=ADODataSet1FAmount1.DisplayLabel;
cbYear.Clear;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select distinct year(O510A_003) from ORD510A');
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 TOrd410_01Form.FormCreate(Sender: TObject);
begin
inherited;
sbSearch.Click;
end;
procedure TOrd410_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ADOQuery1.Close;
inherited;
end;
procedure TOrd410_01Form.SetFieldValue(AMonth:integer;AValue:double;AType:integer);
begin
if not (ADODataSet1.State in [dsInsert,dsEdit]) then Exit;
case AMonth of
1:
begin
case AType of
1:ADODataSet1.FieldByName('FQty1').Value:=ADODataSet1.FieldByName('FQty1').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount1').Value:=ADODataSet1.FieldByName('FAmount1').AsInteger+AValue;
end;
end;
2:
begin
case AType of
1:ADODataSet1.FieldByName('FQty2').Value:=ADODataSet1.FieldByName('FQty2').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount2').Value:=ADODataSet1.FieldByName('FAmount2').AsInteger+AValue;
end;
end;
3:
begin
case AType of
1:ADODataSet1.FieldByName('FQty3').Value:=ADODataSet1.FieldByName('FQty3').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount3').Value:=ADODataSet1.FieldByName('FAmount3').AsInteger+AValue;
end;
end;
4:
begin
case AType of
1:ADODataSet1.FieldByName('FQty4').Value:=ADODataSet1.FieldByName('FQty4').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount4').Value:=ADODataSet1.FieldByName('FAmount4').AsInteger+AValue;
end;
end;
5:
begin
case AType of
1:ADODataSet1.FieldByName('FQty5').Value:=ADODataSet1.FieldByName('FQty5').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount5').Value:=ADODataSet1.FieldByName('FAmount5').AsInteger+AValue;
end;
end;
6:
begin
case AType of
1:ADODataSet1.FieldByName('FQty6').Value:=ADODataSet1.FieldByName('FQty6').AsInteger+AValue;
2:ADODataSet1.FieldByName('FAmount6').Value:=ADODataSet1.FieldByName('FAmount6').AsInteger+AValue;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -