unitfrm3dview.pas
来自「关联规则算法的实现和表示Delphi源码」· PAS 代码 · 共 138 行
PAS
138 行
unit UnitFrm3DView;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Series, TeEngine, ExtCtrls, TeeProcs, Chart,ActiveX,ADOMD_TLB,UnitDM;
type
TFrm3DView = class(TForm)
Panel1: TPanel;
Chart1: TChart;
Series1: TLineSeries;
Series2: TBarSeries;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
strMDX:string;
procedure OpenMDXIntoLine(strMDX:String);
procedure OpenMDXIntoBar(strMDX:String);
end;
var
Frm3DView: TFrm3DView;
implementation
{$R *.dfm}
procedure TFrm3DView.OpenMDXIntoLine(strMDX:String);
var
col,row:integer;
columnLabel,rowLabel:String;
value:real;
v:OleVariant;
begin
DM.Cellset1.Open(strMdx,DM.Catalog1.Get_ActiveConnection());
Series1.Clear;
for col:=1 to DM.Cellset1.Axes[0].Positions.Count do
begin
for row:=1 to DM.Cellset1.Axes[1].Positions.Count do
begin
columnLabel:=DM.Cellset1.Axes[0].Positions[col-1].Members[0].Caption;
rowLabel:=DM.Cellset1.Axes[1].Positions[row-1].Members[0].Caption;
v:=VarArrayCreate([0,1],VarVariant);
v[0]:=col-1;
v[1]:=row-1;
if (DM.Cellset1.Item[PSafeArray(TVarData(v).VArray)].Value=NULL)then
Series1.Add(0,rowLabel)
else
begin
value:=DM.Cellset1.Item[PSafeArray(TVarData(v).VArray)].Value;
Series1.Add(value,rowLabel);
end;
Series1.Title:=COlumnLabel;
end;
end;
DM.Cellset1.Close();
end;
procedure TFrm3DView.OpenMDXIntoBar(strMDX:String);
var
col,row:integer;
columnLabel,rowLabel:String;
value:real;
v:OleVariant;
begin
DM.Cellset1.Open(strMdx,DM.Catalog1.Get_ActiveConnection());
Series2.Clear;
for col:=1 to DM.Cellset1.Axes[0].Positions.Count do
begin
for row:=1 to DM.Cellset1.Axes[1].Positions.Count do
begin
columnLabel:=DM.Cellset1.Axes[0].Positions[col-1].Members[0].Caption;
rowLabel:=DM.Cellset1.Axes[1].Positions[row-1].Members[0].Caption;
v:=VarArrayCreate([0,1],VarVariant);
v[0]:=col-1;
v[1]:=row-1;
if (DM.Cellset1.Item[PSafeArray(TVarData(v).VArray)].Value=NULL)then
Series2.Add(0,rowLabel)
else
begin
value:=DM.Cellset1.Item[PSafeArray(TVarData(v).VArray)].Value;
Series2.Add(value,rowLabel);
end;
Series2.Title:=COlumnLabel;
end;
end;
DM.Cellset1.Close();
end;
procedure TFrm3DView.FormShow(Sender: TObject);
begin
OpenMDXIntoBar(strMDX);
//OpenMDXIntoLine(strMDX);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?