From cb54fa34a8839b85b1ad6a04a86e613e1d2433c2 Mon Sep 17 00:00:00 2001 From: Kathy Ruffing Date: Thu, 21 Sep 2023 07:44:21 -0400 Subject: [PATCH] B2023-094: RO Complete/Summary report crashes on tree view when RO group has no ROs --- PROMS/Volian.Controls.Library/DisplayReports.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/PROMS/Volian.Controls.Library/DisplayReports.cs b/PROMS/Volian.Controls.Library/DisplayReports.cs index 021230f6..7246de37 100644 --- a/PROMS/Volian.Controls.Library/DisplayReports.cs +++ b/PROMS/Volian.Controls.Library/DisplayReports.cs @@ -367,8 +367,8 @@ namespace Volian.Controls.Library { rtnstr = rodbidPrefix + string.Format("{0}", chld.roid); if (rtnstr.Length == 12) rtnstr += "0000"; // last four digits are used for multiple return values - - AccIDROIDdic.Add(keystr, rtnstr); + // B2023-094: Don't crash when trying to add another ro if it has same key. Note that this is coming in as an RO but is really a group. + if (!AccIDROIDdic.ContainsKey(keystr))AccIDROIDdic.Add(keystr, rtnstr); } else if (!cbxROUsage.Checked && chld.children[0].ParentID == 0) { @@ -789,7 +789,11 @@ namespace Volian.Controls.Library // B2023-028: RO report generates report with error when RO path not set. Return if datafile is not set // by BuildRODataFile - if (roDataFile == null || roDataFile == "") return; + if (roDataFile == null || roDataFile == "") + { + Cursor = curcur; // B2023-094: restore cursor (was wait). Not part of bug, found during fix + return; + } if (Mydocversion != null) OnPrintRequest(new DisplayReportsEventArgs("Complete RO Report", "Complete RO Report", roDataFile, MyROFSTLookup, cbxComplete.Checked, Mydocversion.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, cbxIncldMissingROs.Checked, paperSize)); @@ -1064,7 +1068,8 @@ namespace Volian.Controls.Library // Ignore: Junk Scenario continue; } - else if (chld[i].value == null && (cbxROUsage.Checked || (chld[i].children != null && chld[i].children[0].ParentID != 0))) + // B2023-094: don't crash if chld[i].children count is 0, signals an empty group + else if (chld[i].value == null && (cbxROUsage.Checked || (chld[i].children != null && chld[i].children.Length > 0 && chld[i].children[0].ParentID != 0))) { tmp = new DevComponents.AdvTree.Node(); tmp.Text = chld[i].title;