Programmatically Connect PerformancePoint Filter Web Part and Analytic Report Web Part
Reference:
http://stackoverflow.com/questions/1048736/web-part-connections-in-site-definitions
http://social.technet.microsoft.com/Forums/en-US/ppsmonitoringandanalytics/thread/992fa91d-6587-479c-aacf-13d789332231/
MSDN has good code samples on how to create PerformancePoint content such filters, KPI, scorecard and reports at http://msdn.microsoft.com/en-us/library/ee570773.aspx
Here is the code about how you can set up the connection between a filter web part and a report view web part.
private static void SetWebPartConnections(SPWeb web, string pageUrl) { SPFile file = web.GetFile(pageUrl); if (file == null && !file.Exists) return; if (file.CheckOutType != SPFile.SPCheckOutType.None) file.CheckIn(""); file.CheckOut(); try { SPLimitedWebPartManager webPartManager = file.GetLimitedWebPartManager(PersonalizationScope.Shared); if (webPartManager == null) return; ReportViewWebPart reportView = null; Microsoft.PerformancePoint.Scorecards.WebControls.FilterWebPart dateFilter = null; foreach (System.Web.UI.WebControls.WebParts.WebPart wp in webPartManager.WebParts) { if (!string.IsNullOrEmpty(wp.Title) && wp.Title == "BI Chart") { reportView = wp as ReportViewWebPart; continue; } if (!string.IsNullOrEmpty(wp.Title) && wp.Title == "BI Date Filter") { dateFilter = wp as FilterWebPart; continue; } } SPWebPartConnection connection = new SPWebPartConnection(); connection.ID = "pps_connection_abc123"; connection.ConsumerConnectionPointID = "BIDataProvider"; connection.ProviderConnectionPointID = "TransformableBIDataProvider"; connection.ConsumerID = reportView.ID; connection.ProviderID = dateFilter.ID; TransformProviderConsumerRecord transformRecord = new TransformProviderConsumerRecord(); transformRecord.ConsumerParameterName = "[Dim Time].[GenericTime]"; transformRecord.DisplayColumnName = "DisplayValue"; transformRecord.EncodeAsSet = false; transformRecord.MappingId = Guid.NewGuid().ToString(); transformRecord.ProviderParameterDisplayName = "PerformancePoint Values"; transformRecord.ProviderParameterName = "FilterValues"; transformRecord.TypeFullName = "System.String"; transformRecord.ValuesColumnName = "MemberUniqueName"; List<TransformProviderConsumerRecord> list = new List<TransformProviderConsumerRecord>(); list.Add(transformRecord); ProviderConsumerTransformations transformations = new ProviderConsumerTransformations(list); // Build TransformConditionalVisibilityRecord TransformConditionalVisibilityRecord visibilityRecord = new TransformConditionalVisibilityRecord(); visibilityRecord.IsDefaultVisibility = false; visibilityRecord.IsDefined = false; // Build TransformerConfigurationRecord TransformerConfigurationRecord configurationRecord = new TransformerConfigurationRecord(transformations, visibilityRecord); TransformableBIDataProviderTransformer transformer = new TransformableBIDataProviderTransformer(); transformer.ConfigurationState = configurationRecord; // Set connection's transformer connection.SPTransformers.Add(transformer); webPartManager.SPWebPartConnections.Add(connection); webPartManager.SaveChanges(reportView); webPartManager.SaveChanges(dateFilter); } catch (Exception expt) { string message = expt.Message; } finally { file.CheckIn(""); } }
No comments:
Post a Comment