/// <summary> /// Carrega a definição para o relatório. /// </summary> /// <param name="localReport">Relatório local para onde a definição será carregada.</param> /// <param name="report"></param> protected virtual void LoadDefinition(Microsoft.Reporting.WebForms.LocalReport localReport, System.IO.Stream report) { _compatiblesParameters.Clear(); if (Document is IReportDefinitionContainer) { System.Xml.Linq.XElement root = null; root = System.Xml.Linq.XElement.Load(report, System.Xml.Linq.LoadOptions.None); var nameAttribute = root.Attribute("Name"); if (nameAttribute != null && !string.IsNullOrEmpty(nameAttribute.Value) && Document.Title == null) { Document.Title = nameAttribute.Value.GetFormatter(); } var reportDefinition = root.GetDefaultNamespace().NamespaceName; var reportParameters = root.Elements(System.Xml.Linq.XName.Get("ReportParameters", reportDefinition)).FirstOrDefault(); var parameters = new List <string>(); if (reportParameters != null) { foreach (var parameter in reportParameters.Elements(System.Xml.Linq.XName.Get("ReportParameter", reportDefinition))) { var paramenterName = parameter.Attribute("Name"); if (paramenterName != null) { parameters.Add(paramenterName.Value); } } } _compatiblesParameters = parameters; using (var stream = new System.IO.MemoryStream()) { root.Save(stream); stream.Seek(0, System.IO.SeekOrigin.Begin); localReport.LoadReportDefinition(stream); } } else { localReport.LoadReportDefinition(report); } }