in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

Finestra "Dimension Usage" su foglio Excel?

Last post 12-05-2007 14.29 by locuratropical. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 10-24-2007 11.49

    Finestra "Dimension Usage" su foglio Excel?

    Ciao a tutti.
    Esiste un metodo per esportare su Excel quanto vediamo in fase di definizione di un cubo nella sezione "Dimension Usage"?

    Trovo che sia una informazione molto utile che, opportunamente modificata, puo' aiutare l'utente finale a comprendere come "giocare" con misure e dimensioni.

    Any idea?

    Ciao
    Ale

    • Post Points: 20
  • 10-25-2007 11.13 In reply to

    • s.greci
    • Top 25 Contributor
      Male
    • Joined on 05-16-2007
    • Alba (CN)
    • Posts 101
    • Points 1.020

    Re: Finestra "Dimension Usage" su foglio Excel?

    Ciao Ale,

    sia Excel 2007 con il supporto nativo ad Analysis Services e sia il plug-in per Excel 2003 non supportano la visualizzazione delle Dimension Usage. L'unica soluzione che mi viene in mente per poter accedere a queste informazioni al di fuori di Visual Studio รจ l'utilizzo di AMO (Analysis Management Object) che espone egregiamente tutti i metadati di un cubo. Qui sotto un piccolo esempio in C# di come ho estrapolato dal database Adventure Works DW di esempio tutte le dimension usage:

    using System;
    using Microsoft.AnalysisServices;
    
    namespace Ugiss.DimensionUsageViewer
    {
        class Program
        {
            static void Main(string[] args)
            {
                Server server = new Server();
                server.Connect("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Adventure Works DW;Data Source=localhost");
    
                foreach(Database db in server.Databases)
                {
                    foreach(Cube cube in db.Cubes)
                    {
                        foreach(MeasureGroup measureGroup in cube.MeasureGroups)
                        {
                            foreach(MeasureGroupDimension measureGroupDimension in measureGroup.Dimensions)
                            {
                                if(measureGroupDimension as RegularMeasureGroupDimension != null)
                                    Console.WriteLine(String.Format("MeasureGroup {0} is referenced by {1} dimension with a usage type Regular",
                                        measureGroup.Name,measureGroupDimension.Dimension.Name));
                                else if(measureGroupDimension as ReferenceMeasureGroupDimension != null)
                                    Console.WriteLine(String.Format("MeasureGroup {0} is referenced by {1} dimension with a usage type Referenced", 
                                        measureGroup.Name, measureGroupDimension.Dimension.Name));
                                else if(measureGroupDimension as ManyToManyMeasureGroupDimension != null)
                                    Console.WriteLine(String.Format("MeasureGroup {0} is referenced by {1} dimension with a usage type Many-to-Many", 
                                        measureGroup.Name, measureGroupDimension.Dimension.Name));
                                else if(measureGroupDimension as DegenerateMeasureGroupDimension != null)
                                    Console.WriteLine(String.Format("MeasureGroup {0} is referenced by {1} dimension with a usage type Fact (degenerate)",
                                        measureGroup.Name, measureGroupDimension.Dimension.Name));
                                else if(measureGroupDimension as DataMiningMeasureGroupDimension != null)
                                    Console.WriteLine(String.Format("MeasureGroup {0} is referenced by {1} dimension with a usage type Data Mining",
                                        measureGroup.Name, measureGroupDimension.Dimension.Name));
                                else
                                    Console.WriteLine(String.Format("MeasureGroup {0} is referenced by any dimension",measureGroup.Name));
                            }
                        }
                    }
                }
    
                server.Disconnect();
            }
        }
    }
    Simone Greci
    SQL Server MCP, MCTS
    http://community.ugiss.org/blogs/s.greci/
    BI Specialist @ Solid Quality Learning Italy
    • Post Points: 20
  • 10-26-2007 10.55 In reply to

    • stecas
    • Top 25 Contributor
    • Joined on 10-05-2007
    • Posts 37
    • Points 650

    Re: Finestra "Dimension Usage" su foglio Excel?

    Ciao Ale, ma se imposti un report e metti successivamente le altre dimensioni come Page Filter tenendo tutte le gerarchie dovresti riuscire a dare tutte le dimensioni di analisi al tuo utente...

     Spero d'aver capito bene la tua domanda...al limite non considerarla... Big Smile

    • Post Points: 20
  • 10-26-2007 14.14 In reply to

    Re: Finestra "Dimension Usage" su foglio Excel?

    Ciao delinquenti...

    molto presto vi condivido i sorgenti...

    mi sto facendo fare un piccolo programmino in C# (partendo da prezioso aiuto qui sopra) col quale creare in automatico una pivottina su excel.

    L'idea e' quella di dare uno sheet di excel con tutti dati necessari ad un profano che dovra usare il cubo... senza fargli perdere ore ad incrociare dimensioni e misure che non possono essere incrociate :)

    • Post Points: 5
  • 12-05-2007 14.29 In reply to

    Re: Finestra "Dimension Usage" su foglio Excel?

    Problema risolto con:

    http://www.codeplex.com/bidshelper

    Questo ADD-I)N per VisualStudio e' carinissimo.

    Con un semplice click mi ha creato tutte le "IUSAGG" che volevo.

    Ciao
    Ale

    • Post Points: 5
Page 1 of 1 (5 items)
(C) 2007 User Group Italiano di SQL Server