diff --git a/PROMS/ReferencedObjects/Exe/RefObj/CmpRpt/CmpRpt.cs b/PROMS/ReferencedObjects/Exe/RefObj/CmpRpt/CmpRpt.cs index 57b861c2..f61833c7 100644 --- a/PROMS/ReferencedObjects/Exe/RefObj/CmpRpt/CmpRpt.cs +++ b/PROMS/ReferencedObjects/Exe/RefObj/CmpRpt/CmpRpt.cs @@ -148,14 +148,29 @@ namespace CmpRpt success = myrodb.RODB_GetRootGroups(rootXml); if (success == false) return; - VlnStatusBar showStatBar = new VlnStatusBar("Complete Referenced Object Report"); - showStatBar.BarMax = roIDList.Length; - showStatBar.StatMsg = "Retrieving RO Information"; - int inc = 1; + VlnStatusMessage showStat = null; + VlnStatusBar showStatBar = null; + int inc = 0; + int bmax = roIDList.Length; + if (roIDList.Length > 50) + { + showStatBar = new VlnStatusBar("Retrieving RO Information"); + showStatBar.BarMax = bmax; + showStatBar.StatMsg = "Retrieving RO Information"; + } + else + { + showStat = new VlnStatusMessage("Retrieving RO Information"); + showStat.StatusMessage = "Reading RO Information"; + } + Application.DoEvents(); foreach (string roid in roIDList) { - showStatBar.BarValue = inc++; - Application.DoEvents(); + if (showStatBar != null) + { + showStatBar.StatMsg = string.Format("Retrieving RO {0} of {1}", inc++, bmax); + showStatBar.BarValue = inc; + } tbl = roid.Substring(0, 4); recid = (roid.Length > 4) ? roid.Substring(4, 8) : null; @@ -226,11 +241,15 @@ namespace CmpRpt for (int i = cnt - 1; i >= 0; i--) headers.Add(reversehdrs[i]); } - rptele.Show(myrodb,headers); + rptele.Show(myrodb, headers, showStat); + Application.DoEvents(); headers.Clear(); reversehdrs.Clear(); }// end foreach roid - showStatBar.Dispose(); + if (showStat != null) + showStat.Dispose(); + if (showStatBar != null) + showStatBar.Dispose(); } private static string BuildROList(string[] args) diff --git a/PROMS/ReferencedObjects/LibSource/RODBInterface/VlnXml.cs b/PROMS/ReferencedObjects/LibSource/RODBInterface/VlnXml.cs index 7da23318..9622b5ea 100644 --- a/PROMS/ReferencedObjects/LibSource/RODBInterface/VlnXml.cs +++ b/PROMS/ReferencedObjects/LibSource/RODBInterface/VlnXml.cs @@ -1146,20 +1146,20 @@ namespace RODBInterface if (chldnode is VlnXmlElement) { VlnXmlElement elem = (VlnXmlElement) chldnode; - showStat.StatusMessage = elem.InnerText; + if (showStat !=null) + showStat.StatusMessage = elem.InnerText; // if it's a group, recurse through it. if (chldnode.Name == "vlnGroup") - { elem.ShowGroup(myrodb, headers, showStat); - } // do RO's too. else { int levelcnt = chldnode.ChildNodes.Count; bool isParDisData = chldnode.Name == "Parameter__Display__Data"; string TheMenuTitle = elem.GetAttribute("MenuTitle"); - showStat.StatusMessage = TheMenuTitle; + if (showStat != null) + showStat.StatusMessage = TheMenuTitle; if (!isParDisData && ((levelcnt > 1) || (levelcnt==1 && !TheMenuTitle.Equals("")))) elem.ShowRRO(myrodb, headers); } @@ -1173,10 +1173,9 @@ namespace RODBInterface // put this element, and if a group all it's subelements out to the 'print.tmp' // file for complete reports. - public bool Show(RODB myrodb, ArrayList headers) + public bool Show(RODB myrodb, ArrayList headers, VlnStatusMessage showStat) { bool success; - VlnStatusMessage showStat = new VlnStatusMessage("Reading ROs"); VlnXmlDocument xmldoc = (VlnXmlDocument) this.OwnerDocument; success = xmldoc.OpenTemp(); if (success==false) return false; @@ -1207,7 +1206,6 @@ namespace RODBInterface else ShowRRO(myrodb, headers); } - showStat.Dispose(); xmldoc.CloseTemp(); return true; }