diff --git a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.cs b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.cs index 3c5a5e99..783ee109 100644 --- a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.cs +++ b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.cs @@ -419,6 +419,7 @@ namespace ROEditor System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); // The data path the was passed in. + PassedInPath = @"V:\Active Project Files\Farley PROMS Delivery\2022\RO"; DbConnectPath = PassedInPath; // Setup the context menu diff --git a/PROMS/ReferencedObjects/LibSource/RODBInterface/RODBInterface.cs b/PROMS/ReferencedObjects/LibSource/RODBInterface/RODBInterface.cs index f6ba23fe..2beac2bd 100644 --- a/PROMS/ReferencedObjects/LibSource/RODBInterface/RODBInterface.cs +++ b/PROMS/ReferencedObjects/LibSource/RODBInterface/RODBInterface.cs @@ -2142,7 +2142,21 @@ namespace RODBInterface wraccid = accid; string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); string xmlstr = GenerateXmlString(ro, false); - string strUpdate = "UPDATE " + ro.GetAttribute("Table") + " SET Info = '" + xmlstr + "'"; + StringBuilder xmlstrTmp = new StringBuilder(); // B2026-025 prep the info field data so it will be saved correctly. + char[] chrAry = xmlstr.ToCharArray(); + foreach (int chr in chrAry) + { + if (chr > 166) + + { + xmlstrTmp.Append($"\\u{(int)chr}?"); + } + else + { + xmlstrTmp.Append((char)chr); + } + } + string strUpdate = "UPDATE " + ro.GetAttribute("Table") + " SET Info = '" + xmlstrTmp.ToString() + "'"; if (movedRO) { VlnXmlElement parent = (VlnXmlElement)ro.ParentNode; @@ -2186,6 +2200,21 @@ namespace RODBInterface } string xmlstr = GenerateXmlString(ro, false); + StringBuilder xmlstrTmp = new StringBuilder(); // B2026-025 prep the info field data so it will be saved correctly. + char[] chrAry = xmlstr.ToCharArray(); + foreach (int chr in chrAry) + { + if (chr > 166) + + { + xmlstrTmp.Append($"\\u{(int)chr}?"); + } + else + { + xmlstrTmp.Append((char)chr); + } + } + string wraccid = null; if (ro.HasAttribute("AccPageID")) { @@ -2209,13 +2238,13 @@ namespace RODBInterface // strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, AccPageID, ModDateTime, Info ) "; strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, ModDateTime, AccPageID, Info ) "; strInsert = strInsert + " VALUES ('" + ro.GetAttribute("RecID") + "'," + (uint)RecordType.Group + ",'" + ro.GetAttribute("ParentID"); - strInsert = strInsert + "','" + wraccid + "','" + dt + "','" + xmlstr + "');"; + strInsert = strInsert + "','" + wraccid + "','" + dt + "','" + xmlstrTmp.ToString() + "');"; } else { strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, ModDateTime, Info ) "; strInsert = strInsert + " VALUES ('" + ro.GetAttribute("RecID") + "'," + (uint)RecordType.Group + ",'" + ro.GetAttribute("ParentID"); - strInsert = strInsert + "','" + dt + "','" + xmlstr + "');"; + strInsert = strInsert + "','" + dt + "','" + xmlstrTmp.ToString() + "');"; } } @@ -2223,7 +2252,7 @@ namespace RODBInterface { strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, AccPageId, ModDateTime, Info ) "; strInsert = strInsert + " VALUES ('" + ro.GetAttribute("RecID") + "'," + (uint)RecordType.RRO + ",'" + ro.GetAttribute("ParentID"); - strInsert = strInsert + "','" + wraccid + "','" + dt + "','" + xmlstr + "');"; + strInsert = strInsert + "','" + wraccid + "','" + dt + "','" + xmlstrTmp.ToString() + "');"; } try diff --git a/PROMS/Volian.Controls.Library/VlnFlexGrid.cs b/PROMS/Volian.Controls.Library/VlnFlexGrid.cs index ee6162dc..465d323a 100644 --- a/PROMS/Volian.Controls.Library/VlnFlexGrid.cs +++ b/PROMS/Volian.Controls.Library/VlnFlexGrid.cs @@ -2473,6 +2473,19 @@ namespace Volian.Controls.Library private string ConvertTableText(string str) { string rtn = str; + string pattern = @"\\u([0-9]{1,4})\?"; + + string mValue, mValue2 = ""; + foreach (Match match in Regex.Matches(rtn, pattern, RegexOptions.IgnoreCase)) + { + mValue = match.Value; + mValue2 = @"\f1 " + mValue + @"\f0"; + rtn = rtn.Replace(match.Value, mValue2); + // @"\f1\u9474 ?\f0") + // linkValue = linkValue.Replace(match.Value, "\\f1 " + match.Value + "\\f0"); + } + + //ShowRawString(str, "ConvertTableText IN"); rtn = rtn.Replace(@"START]\v0", @"START]\cf1\v0"); rtn = rtn.Replace(@"\v #Link:", @"\cf0\v #Link:"); @@ -3827,6 +3840,9 @@ namespace Volian.Controls.Library this.MergedRanges.Clear(); this.Clear(); this.IsRoTable = true; + //valtext = valtext.Replace(@"\u8209?", "-"); + //valtext = Regex.Replace(valtext, @"\\u([0-9]{1,4})\?", m => int.TryParse(m?.Groups[1]?.Value, out int result) ? Convert.ToChar(result).ToString() : ""); + //valtext = valtext.Replace("-", @"\u8209?"); this.ParseTableFromText(valtext, GridLinePattern.Single); this.AutoSizeCols(); this.AutoSizeRows();