Exemple #1
0
 /// <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);
     }
 }