次の方法で共有


ActionTargetType Enumeration

Action を検出できる場所を識別します。

名前空間: Microsoft.AnalysisServices
アセンブリ: Microsoft.AnalysisServices (microsoft.analysisservices.dll 内)

構文

'宣言
<GuidAttribute("4B273BB8-914C-4b23-A8D2-7DED53B5D185")> _
Public Enumeration ActionTargetType
[GuidAttribute("4B273BB8-914C-4b23-A8D2-7DED53B5D185")] 
public enum ActionTargetType
[GuidAttribute(L"4B273BB8-914C-4b23-A8D2-7DED53B5D185")] 
public enum class ActionTargetType
/** @attribute GuidAttribute("4B273BB8-914C-4b23-A8D2-7DED53B5D185") */ 
public enum ActionTargetType
GuidAttribute("4B273BB8-914C-4b23-A8D2-7DED53B5D185") 
public enum ActionTargetType

メンバ

メンバ名 説明
AttributeMembers 属性メンバで検出しました。
Cells セルまたはサブキューブのセットで検出しました。
Cube キューブで検出しました。
DimensionMembers ディメンションで検出しました。
Hierarchy ディメンションの単一階層で検出しました。
HierarchyMembers ディメンションの単一階層のメンバで検出しました。
Level ディメンションのレベルで検出しました。
LevelMembers ディメンションのレベルのメンバで検出しました。
Set セットで検出しました。

解説

新規 :2006 年 7 月 17 日

使用例

このセクションには、AMO を使用してアクションをセットアップするサンプルと、ADOMD.Net クライアントを使用してクライアント コードからアクションを取得するサンプルが記載されています。

次のサンプルは、AMO を使用してアクションをセットアップする方法を示しています。このサンプルでは、AMOAdventureWorks サンプル データベースに接続し、パラメータとして渡されるキューブが "Adventure Works" であることを前提としています。

AMO コードのアクション ターゲット タイプが Cells として定義されており、アクションがメジャー グループ "Reseller Sales" のすべてのセルに対して定義されていることに注意してください。ADOMD.Net コードでは、対応する座標の種類は MDACTION_COORDINATE_CELL = 6 であり、アクションを検出する座標として ([Measures].[Reseller Order Quantity], [Product].[Category].&[3]) という組が付属しています。

コードは C# で記述されています。

#region Using directives
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Globalization;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Data.Sql;
using Microsoft.AnalysisServices;
#endregion 
private void CreateActions(Cube cube)
{
    #region Adding a drillthrough action
    //Create a Drillthrough action
    DrillThroughAction action = new DrillThroughAction("Reseller Details", "Drillthrough Action");

    //Define the Action
    action.Invocation = ActionInvocation.Interactive;
    action.Type = ActionType.DrillThrough;
    action.TargetType = ActionTargetType.Cells;
    action.Target = "MeasureGroupMeasures(\"Reseller Sales\")";
    action.Caption = "DrillThrough...";
    action.CaptionIsMdx = false;

    //Adding Measure columns
    MeasureBinding mb1 = new MeasureBinding();
    mb1.MeasureID = "Reseller Sales Amount";
    action.Columns.Add(mb1);
    
    MeasureBinding mb2 = new MeasureBinding();
    mb2.MeasureID = "Reseller Order Quantity";
    action.Columns.Add(mb2);

    MeasureBinding mb3 = new MeasureBinding();
    mb3.MeasureID = "Reseller Unit Price";
    action.Columns.Add(mb3);

    //Adding Dimension Columns
    CubeAttributeBinding cb1 = new CubeAttributeBinding();
    cb1.CubeID = cube.ID;
    cb1.CubeDimensionID = "Reseller";
    cb1.AttributeID = "Reseller";
    cb1.Type = AttributeBindingType.All;
    action.Columns.Add(cb1);

    CubeAttributeBinding cb2 = new CubeAttributeBinding();
    cb2.CubeID = cube.ID;
    cb2.CubeDimensionID = "Product";
    cb2.AttributeID = "Product Name";
    cb2.Type = AttributeBindingType.All;
    action.Columns.Add(cb2);

    //Add the defined action to the cube
    cube.Actions.Add(action);
    #endregion
}

次のサンプルは、ADOMD.Net クライアントを使用してアクションのサンプルが正しく定義されていることを検証する方法を示しています。

パラメータは次のように指定されています。

CATALOG_NAME=AMOAdventureworks

CUBE_NAME= Adventure Works

COORDINATE=([Measures].[Reseller Order Quantity], [Product].[Category].&[3])

COORDINATE_TYPE=6

コードは C# で記述されています。ServerName はフォームの System.Windows.Forms.TextBox オブジェクトです。

#region Using directives
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using adoMdClient = Microsoft.AnalysisServices.AdomdClient;
#endregion

...

private enum COORDINATE_TYPE
{
    MDACTION_COORDINATE_CUBE = 1,
    MDACTION_COORDINATE_DIMENSION = 2,
    MDACTION_COORDINATE_LEVEL = 3,
    MDACTION_COORDINATE_MEMBER = 4,
    MDACTION_COORDINATE_SET = 5,
    MDACTION_COORDINATE_CELL = 6
}

...

private void readActionsUsingADOMDClient(String catalogName, String cubeName, String coordinate, COORDINATE_TYPE coordinateType)
{
    adoMdClient.AdomdRestrictionCollection restrictions = new adoMdClient.AdomdRestrictionCollection();

    restrictions.Add("CATALOG_NAME", catalogName);

    restrictions.Add("CUBE_NAME", cubeName);

    restrictions.Add("COORDINATE", coordinate);

    restrictions.Add("COORDINATE_TYPE", (int)coordinateType);
    foreach (adoMdClient.AdomdRestriction restriction in restrictions)
    {
Debug.WriteLine(restriction.Name + "=" + restriction.Value);
    }
    using (adoMdClient.AdomdConnection cnxAmoAdventureworks = new adoMdClient.AdomdConnection())
    {
if (serverName.Text.Length == 0)
{
    cnxAmoAdventureworks.ConnectionString = "Data Source=localhost;Catalog=AMOAdventureworks";
}
else
{
    cnxAmoAdventureworks.ConnectionString = "Data Source=" + serverName.Text + ";Catalog=AMOAdventureworks";
}
cnxAmoAdventureworks.Open();

DataTable actionsTable = cnxAmoAdventureworks.GetSchemaDataSet("MDSCHEMA_ACTIONS", restrictions).Tables[0];
Debug.WriteLine("Table [" + actionsTable.TableName + "] has " + actionsTable.Rows.Count.ToString() + " rows");
int j = 0;
foreach (DataRow actionRow in actionsTable.Rows)
{
    for (int i = 0; i < actionRow.ItemArray.Length; i++)
    {
Debug.WriteLine("[" + j.ToString().PadLeft(4) + "]\t" + actionsTable.Columns[i].ColumnName + ": " + actionRow.ItemArray[i].ToString());
    }
    j++;
}
    }

}

コードの実行後、次の結果が表示されます。

Table [rowsetTable] has 1 rows

[ 0] CATALOG_NAME: AmoAdventureWorks

[ 0] SCHEMA_NAME:

[ 0] CUBE_NAME: Adventure Works

[ 0] ACTION_NAME: Reseller Details

[ 0] ACTION_TYPE: 256

[ 0] COORDINATE: ([Measures].[Reseller Order Quantity], [Product].[Category].&[3])

[ 0] COORDINATE_TYPE: 6

[ 0] ACTION_CAPTION: DrillThrough...

[ 0] DESCRIPTION:

[ 0] CONTENT: DRILLTHROUGH Select ([Measures].[Reseller Order Quantity], [Product].[Category].&[3]) on 0 From [Adventure Works] RETURN [Reseller Sales].[Reseller Sales Amount],[Reseller Sales].[Reseller Order Quantity],[Reseller Sales].[Reseller Unit Price],[$Reseller].[Reseller],[$Product].[Product Name]

[ 0] APPLICATION:

[ 0] INVOCATION: 1

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

Microsoft.AnalysisServices Namespace