Gewusst wie: Erstellen von Scorecardtransformationen für PerformancePoint Services
Letzte Änderung: Dienstag, 30. August 2011
In PerformancePoint Services in Microsoft SharePoint Server 2010 werden die Daten in Scorecards mithilfe von Transformationen geändert, bevor die Ansichten in einem Dashboard gerendert werden.
Gilt für: SharePoint Server 2010
Hinweis |
---|
Es wird empfohlen, das Scorecard-Transformationsbeispiel als Vorlage für Ihre benutzerdefinierte Transformation zu verwenden. In diesem Beispiel wird erläutert, wie Sie Objekte in der PerformancePoint Services-API aufrufen, und außerdem werden bewährte Methoden für die PerformancePoint Services-Entwicklung beschrieben. |
Erstellen von Scorecardtransformationen
Das folgende Verfahren basiert auf dem AddColumnTransform-Beispiel, mit dem einer Scorecardansicht eine Spalte hinzugefügt wird. Der vollständige Code für die Klasse befindet sich im ersten Beispiel in diesem Thema.
So erstellen Sie eine Scorecardtransformation
Installieren Sie PerformancePoint Services, oder kopieren Sie die DLLs, die mit PerformancePoint Services installiert werden, auf Ihren Computer. Weitere Informationen finden Sie unter PerformancePoint-Dienste-DLLs in Entwicklungsszenarios.
Erstellen Sie in Visual Studio eine C#-Klassenbibliothek. Sollten Sie bereits eine Klassenbibliothek für die Erweiterung erstellt haben, fügen Sie eine neue C#-Klasse hinzu.
Fügen Sie die Datei Microsoft.PerformancePoint.Scorecards.Client.dll dem Projekt als Assemblyverweis hinzu.
Fügen Sie using-Anweisungen für die folgenden Namespaces hinzu:
Microsoft.PerformancePoint.Scorecards
Microsoft.PerformancePoint.Scorecards.Extensions
System.Collections.Generic
Implementieren Sie die IGridViewTransform-Schnittstelle.
Überschreiben Sie die GetId-Methode, um den Textbezeichner für Ihre Transformation zurückzugeben. GetId muss dieselbe Zeichenfolge wie das key-Attribut zurückgeben, das in der Datei web.config von PerformancePoint Services für die Transformation registriert ist. Weitere Informationen zum Registrieren von Scorecardtransformationen finden Sie unter Gewusst wie: Manuelles Registrieren von PerformancePoint-Dienste-Erweiterungen.
Überschreiben Sie die GetTransformType-Methode, um den Ausführungszeitpunkt für die Transformation anzugeben. Der Ausführungszeitpunkt einer Transformation hängt von deren Typ entsprechend der Definition durch die GridViewTransformType-Aufzählung ab: PreQuery, PostQuery oder PreRender. Weitere Informationen finden Sie unter PerformancePoint Services-Scorecardtransformationen (Übersicht).
Überschreiben Sie die Execute-Methode zum Definieren der Transformation der Scorecard. Die folgenden Codebeispiele veranschaulichen das Hinzufügen einer Spalte zur Scorecardansicht und das Ändern der Formatierung leerer Scorecardzellen.
Nachdem Sie die DLL signiert und erstellt haben, installieren Sie die Erweiterung wie unter Gewusst wie: Manuelles Registrieren von PerformancePoint-Dienste-Erweiterungen beschrieben.
Beispiel
Beispiel 1: Hinzufügen einer Spalte zu Scorecardansichten
Das folgende Codebeispiel stammt aus dem Scorecard-Transformationsbeispiel. Es erstellt eine PreQuery-Transformation, mit der einer Scorecardansicht eine Spalte hinzugefügt wird, die einen Key Performance Indicator (KPI) auf der Blattebene der Spalte enthält. (Wenn die Scorecardansicht Elemente unterhalb der KPIs enthält, wird die Spalte nicht hinzugefügt.)
Hinweis |
---|
Bevor Sie dieses Codebeispiel kompilieren können, müssen Sie die Entwicklungsumgebung wie unter "So erstellen Sie eine Scorecardtransformation" beschrieben konfigurieren. |
using System;
using System.Collections.Generic;
using Microsoft.PerformancePoint.Scorecards;
using Microsoft.PerformancePoint.Scorecards.Extensions;
namespace Microsoft.PerformancePoint.SDK.Samples.ScorecardTransforms.PreQuery
{
// Represents the class that adds columns of data to a scorecard view.
public class AddColumnTransform : IGridViewTransform
{
// Set transform type to PreQuery.
public GridViewTransformType GetTransformType()
{
return GridViewTransformType.PreQuery;
}
// Return the string identifier of your transform. This value must
// match the key attribute registered in the web.config file.
public string GetId()
{
return "AddColumn";
}
// Run the transform to add a column.
public void Execute(GridViewData viewData, PropertyBag parameters, IGlobalCache cache)
{
// Verify the scorecard definition.
if (viewData == null)
{
throw new ArgumentException("Parameter cannot be null", "viewData");
}
List<GridHeaderItem> leafRowHeaders = viewData.RootRowHeader.GetAllLeafHeadersInTree();
foreach (GridHeaderItem rowHeader in leafRowHeaders)
{
if (rowHeader.HeaderType == ScorecardNodeTypes.Kpi)
{
Kpi kpi = cache.GetKpi(rowHeader.LinkedKpiLocation);
if (kpi != null && viewData.RootColumnHeader != null)
{
// Create the column header and add it to the root.
GridHeaderItem theNewColumn = GridHeaderItem.CreateDetailsHeader(kpi.Owner.DisplayName);
// Set the GUIDs for the data headers.
// Setting the DefinitionGuid property to the
// same value as the root column header enables
// Dashboard Designer to display the scorecard.
// Note: Do not try to modify or delete the new
// column from within Dashboard Designer.
theNewColumn.DefinitionGuid = viewData.RootColumnHeader.DefinitionGuid;
theNewColumn.Parent = viewData.RootColumnHeader;
theNewColumn.Guid = new Guid();
// Insert the column at the end of the collection
// of child elements.
if (viewData.RootColumnHeader.Children.Count != 0)
{
viewData.RootColumnHeader.Children.Insert(viewData.RootColumnHeader.Children.Count, theNewColumn);
}
break;
}
}
}
viewData.RootColumnHeader.LinkAndIndexTreeFromRoot();
}
}
}
Beispiel 2: Ändern des Formats leerer Scorecardzellen
Das folgende Codebeispiel erstellt eine PreQuery-Transformation, die leeren Scorecardzellen eine graue Hintergrundfarbe zuordnet.
Hinweis |
---|
Bevor Sie dieses Codebeispiel kompilieren können, müssen Sie die Entwicklungsumgebung wie unter "So erstellen Sie eine Scorecardtransformation" beschrieben konfigurieren. Darüber hinaus müssen Sie Ihrem Projekt einen Verweis auf die System.Drawing-Assembly hinzufügen. |
using System;
using System.Collections.Generic;
using Microsoft.PerformancePoint.Scorecards;
using Microsoft.PerformancePoint.Scorecards.Extensions;
namespace Microsoft.PerformancePoint.SDK.Samples
{
// Represents a transform that applies a grey background color to empty scorecard cells.
public class GreyEmptiesTransform : IGridViewTransform
{
// Set the transform type to "PreRender".
public GridViewTransformType GetTransformType()
{
return GridViewTransformType.PreRender;
}
// Return the string identifier of the transform.
public string GetId()
{
return "GreyEmptyCells";
}
// Run the transform.
public void Execute(GridViewData viewData, PropertyBag parameters, IGlobalCache cache)
{
// Validate parameters.
if (viewData == null)
{
throw new ArgumentException("Parameter cannot be null", "viewData");
}
// Get the headers under the root row header.
List<GridHeaderItem> nonLeafRowHeaders = viewData.RootRowHeader.GetAllHeadersInTree();
// Get the leaf headers under the root column header.
List<GridHeaderItem> leafColumnHeaders = viewData.RootColumnHeader.GetAllLeafHeadersInTree();
foreach (GridHeaderItem rowHeader in nonLeafRowHeaders)
{
foreach (GridHeaderItem columnHeader in leafColumnHeaders)
{
// Get scorecard cells.
GridCell cell = viewData.Cells[rowHeader, columnHeader];
if (cell.IsCellEmpty || string.IsNullOrEmpty(cell.ActualValue.ToString()))
{
GridFormatInfo emptyFormat = new GridFormatInfo(viewData.DefaultCellFormatInfo);
emptyFormat.BackColor = new GridColor(System.Drawing.Color.Gray);
cell.FormatInfo = emptyFormat;
}
viewData.Cells[rowHeader, columnHeader] = cell;
}
}
}
}
}
Code wird kompiliert
Bevor Sie diese Codebeispiele kompilieren können, müssen Sie die Entwicklungsumgebung wie unter "So erstellen Sie eine Scorecardtransformation" beschrieben konfigurieren.
Sicherheit
Sie müssen die DLL mit einem starken Namen signieren. Stellen Sie außerdem sicher, dass alle Assemblys, auf die von der DLL verwiesen wird, ebenfalls starke Namen haben. Informationen dazu, wie Sie eine Assembly mit einem starken Namen signieren und ein öffentliches/privates Schlüsselpaar erstellen, finden Sie unter How to: Create a Public/Private Key Pair.
Siehe auch
Konzepte
PerformancePoint Services-Scorecardtransformationen (Übersicht)
Weitere Ressourcen
PerformancePoint Services-Scorecards
Gewusst wie... in PerformancePoint Services
Codebeispiele für PerformancePoint Services in SharePoint Server 2010