From 08785388fc2137b57b8c320454898f4e339ac350 Mon Sep 17 00:00:00 2001 From: Christopher Pickering Date: Thu, 18 Nov 2021 04:24:03 -0600 Subject: [PATCH] added fix for #45 --- RptToXml/RptDefinitionWriter.cs | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/RptToXml/RptDefinitionWriter.cs b/RptToXml/RptDefinitionWriter.cs index 292ffac..3a8c8cf 100644 --- a/RptToXml/RptDefinitionWriter.cs +++ b/RptToXml/RptDefinitionWriter.cs @@ -6,6 +6,7 @@ using System.Security.Cryptography; using System.Text; using System.Xml; +using System.Runtime.ExceptionServices; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.ReportAppServer.ClientDoc; @@ -439,6 +440,7 @@ private void GetDataDefinition(ReportDocument report, XmlWriter writer) writer.WriteEndElement(); } + [HandleProcessCorruptedStateExceptionsAttribute] private void GetFieldObject(Object fo, ReportDocument report, XmlWriter writer) { if (fo is DatabaseFieldDefinition) @@ -474,15 +476,20 @@ private void GetFieldObject(Object fo, ReportDocument report, XmlWriter writer) var gnf = (GroupNameFieldDefinition)fo; writer.WriteStartElement("GroupNameFieldDefinition"); - - writer.WriteAttributeString("FormulaName", gnf.FormulaName); - writer.WriteAttributeString("Group", gnf.Group.ToString()); - writer.WriteAttributeString("GroupNameFieldName", gnf.GroupNameFieldName); - writer.WriteAttributeString("Kind", gnf.Kind.ToString()); - writer.WriteAttributeString("Name", gnf.Name); - writer.WriteAttributeString("NumberOfBytes", gnf.NumberOfBytes.ToString(CultureInfo.InvariantCulture)); - writer.WriteAttributeString("ValueType", gnf.ValueType.ToString()); - + try + { + writer.WriteAttributeString("FormulaName", gnf.FormulaName); + writer.WriteAttributeString("Group", gnf.Group.ToString()); + writer.WriteAttributeString("GroupNameFieldName", gnf.GroupNameFieldName); + writer.WriteAttributeString("Kind", gnf.Kind.ToString()); + writer.WriteAttributeString("Name", gnf.Name); + writer.WriteAttributeString("NumberOfBytes", gnf.NumberOfBytes.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("ValueType", gnf.ValueType.ToString()); + } + catch( Exception e) + { + Console.WriteLine($"Error loading formula for group '{gnf.GroupNameFieldName}', {e}"); + } } else if (fo is ParameterFieldDefinition) {