/// <summary> /// Carga los nodos del informe /// </summary> protected override void LoadNodes() { foreach (ReportDataSourceModel expression in Report.ReportDataSources) { NodeRootViewModel parentDataSource = new NodeRootViewModel(TreeViewModel, this, TreeReportingViewModel.NodeType.Table, expression.DataSource.Id, false); // Añade el nodo raíz Children.Add(parentDataSource); // Añade el origen de datos parentDataSource.Children.Add(new NodeDataSourceViewModel(TreeViewModel, parentDataSource, expression.DataSource)); // Añade las relaciones LoadNodesRelations(parentDataSource, expression); } }
/// <summary> /// Carga los nodos de relaciones con dimensiones del informe /// </summary> private void LoadNodesRelations(NodeRootViewModel parentDataSource, ReportDataSourceModel expression) { foreach (DimensionRelationModel relation in expression.Relations) { NodeRootViewModel parentDimension = new NodeRootViewModel(TreeViewModel, parentDataSource, TreeReportingViewModel.NodeType.DimensionsRoot, relation.Dimension.Id, false, true, BauMvvm.ViewModels.Media.MvvmColor.Navy); // Añade el campo raíz al árbol parentDataSource.Children.Add(parentDimension); // Añade los campos de la relación foreach (RelationForeignKey column in relation.ForeignKeys) { parentDimension.Children.Add(new NodeRootViewModel(TreeViewModel, parentDimension, TreeReportingViewModel.NodeType.File, $"{column.ColumnId} -> {column.TargetColumnId}", false, false, BauMvvm.ViewModels.Media.MvvmColor.Black)); } } }