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 + -
显示快捷键?