diff --git a/PROMS/Formats/fmtall/BNPP1Newall.xml b/PROMS/Formats/fmtall/BNPP1Newall.xml index a2c3ca03..1e86a983 100644 Binary files a/PROMS/Formats/fmtall/BNPP1Newall.xml and b/PROMS/Formats/fmtall/BNPP1Newall.xml differ diff --git a/PROMS/Formats/fmtall/BNPP1all.xml b/PROMS/Formats/fmtall/BNPP1all.xml index bfecc9ad..48fa3d86 100644 Binary files a/PROMS/Formats/fmtall/BNPP1all.xml and b/PROMS/Formats/fmtall/BNPP1all.xml differ diff --git a/PROMS/Formats/fmtall/BNPP2all.xml b/PROMS/Formats/fmtall/BNPP2all.xml index a7107dd6..5c07739b 100644 Binary files a/PROMS/Formats/fmtall/BNPP2all.xml and b/PROMS/Formats/fmtall/BNPP2all.xml differ diff --git a/PROMS/Formats/fmtall/BNPPbckall.xml b/PROMS/Formats/fmtall/BNPPbckall.xml index 61486992..658518a2 100644 Binary files a/PROMS/Formats/fmtall/BNPPbckall.xml and b/PROMS/Formats/fmtall/BNPPbckall.xml differ diff --git a/PROMS/Formats/fmtall/VEGP2all.xml b/PROMS/Formats/fmtall/VEGP2all.xml index 48461980..22e31136 100644 Binary files a/PROMS/Formats/fmtall/VEGP2all.xml and b/PROMS/Formats/fmtall/VEGP2all.xml differ diff --git a/PROMS/Formats/genmacall/BNPP1new.svg b/PROMS/Formats/genmacall/BNPP1new.svg index a35fbd41..675ac04d 100644 Binary files a/PROMS/Formats/genmacall/BNPP1new.svg and b/PROMS/Formats/genmacall/BNPP1new.svg differ diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs index e5b7f956..f19d491a 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs @@ -613,7 +613,8 @@ namespace VEPROMS.CSLA.Library return retval; } string newvalue = value; - newvalue = newvalue.Replace("{", @"\{").Replace("}", @"\}"); + // B2023-108: Added check for null reference + if (newvalue != null) newvalue = newvalue.Replace("{", @"\{").Replace("}", @"\}"); string findLink = @""; MatchCollection ms = Regex.Matches(Text, findLink); //string lookFor = string.Format(@"", rousg.ROUsageID); diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs index 5288803e..64401d9a 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs @@ -164,11 +164,10 @@ namespace VEPROMS.CSLA.Library // B2023-093 This method is called before editing or printing a Word section and will convert it the Word .DOCX format if needed. // Note that the core logic was taken from frmSectionProperties.cs and modified to convert both .RTF and .DOC files // The conversion to DOCX is needs to be done only one time per Word section + // B2023-109 Moved the setting of docInfo in the try block to handle if itmInfo, MyContent, MyEntry, MyDocument is null + // Also modified the error log statements in the Catch to put the ItemID and the section number and title out to the error log public static void ConvertWordSectionToDOCX(ItemInfo itmInfo) { - // check the Word file extension that is saved in the tblDocuments SQL database table - DocumentInfo docInfo = itmInfo.MyContent.MyEntry.MyDocument; - if (docInfo.FileExtension.ToUpper() == ".DOCX") return; // already a DOCX - no need to convert FrmPopupStatusMessage pmsg = null; DSOFile myfile = null; LBWordLibrary.LBApplicationClass ap = null; @@ -180,9 +179,13 @@ namespace VEPROMS.CSLA.Library SectionInfo msi = null; Section sec = null; SectionConfig cfg = null; - + DocumentInfo docInfo = null; try { + // check the Word file extension that is saved in the tblDocuments SQL database table + docInfo = itmInfo.MyContent.MyEntry.MyDocument; + if (docInfo.FileExtension.ToUpper() == ".DOCX") return; // already a DOCX - no need to convert + // show user a status window of the Word section being converted to DOCX // use the section number (DisplayNumber) unless the length is zero, then use the section title (DisplayText) string statMsg = itmInfo.DisplayNumber; @@ -236,19 +239,25 @@ namespace VEPROMS.CSLA.Library cfg.MySection.MyContent.MyEntry.MyDocument.MarkDirty(); cfg.MySection.MyContent.MyEntry.Save(); - _MyLog.InfoFormat("Converted Word Section to DOCX - Old ID {0} - New ID {1} - {2}", docInfo.DocID, myDoc.DocID, statMsg); // record in log file (aka error log) that conversion was done - // delete the temporary files + // record in log file (aka error log) that conversion was done + _MyLog.InfoFormat("Converted Word Section to DOCX - Old ID {0} - New ID {1} - {2}", docInfo.DocID, myDoc.DocID, statMsg); + FileInfo orgFile = new FileInfo(orgFilename); orgFile.Delete();// delete the old temporary Word file (.DOC or .RTF) } catch (Exception ex) { _MyLog.ErrorFormat("Error converting Word section to DOCX - {0}", ex.Message); - _MyLog.ErrorFormat("Error converting Word section to DOCX - ConvertWordSetionToDOXX: ItemID ={0} DOCID={1} LibTitle = {2}", itmInfo, docInfo.DocID, docInfo.LibTitle); + if (docInfo == null) + { + _MyLog.ErrorFormat("Error converting Word section to DOCX - ConvertWordSetionToDOXX: ItemID ={0} {1} {2}", itmInfo.ItemID, itmInfo.MyContent.Number, itmInfo.MyContent.Text); + } + else + _MyLog.ErrorFormat("Error converting Word section to DOCX - ConvertWordSetionToDOXX: ItemID ={0} {1} {2} DOCID={3} LibTitle = {4}", itmInfo.ItemID, itmInfo.MyContent.Number, itmInfo.MyContent.Text, docInfo.DocID, docInfo.LibTitle); } finally { - if (pmsg != null) + if (pmsg != null) pmsg.Close();// close the statue message if (ap != null) ap.Quit(); // close the Word app