diff --git a/PROMS/Volian.Controls.Library/DisplaySearch.cs b/PROMS/Volian.Controls.Library/DisplaySearch.cs index 0e79af26..e115fa9e 100644 --- a/PROMS/Volian.Controls.Library/DisplaySearch.cs +++ b/PROMS/Volian.Controls.Library/DisplaySearch.cs @@ -2078,8 +2078,8 @@ namespace Volian.Controls.Library if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked) { - string ROSearchList2 = exactsearch(ROSearchList); // B2026-053 match exact string - // B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results. + string ROSearchList2 = exactsearch(ROSearchList); // match exact string + // B2022-031 - added a exactsearch to filter out procedure and section titles from global search results. SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, ROSearchList2, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, string.Empty, string.Empty); cmbResultsStyleIndex = 3; // display step text in results } @@ -2193,13 +2193,23 @@ namespace Volian.Controls.Library private string exactsearch(string SearchString) // B2026-053 { - StringBuilder ss = new StringBuilder(); - int sl = SearchString.Length; - int LstIdxSp = SearchString.LastIndexOf(' '); - if (sl == LstIdxSp + 1) // B2026-053 if ' ' the last char. + string ss = ""; + string pattern = "%"; // Pattern to match the percentage sign + Match match = Regex.Match(SearchString, pattern); + if (match.Success) // Special case for percents. { - ss.Append(' '); - ss.Append(SearchString); // B2026-053 add a space prefix to make the search exact if the end of the searchString is a space. + int sl = SearchString.Length; + int precentIdx = SearchString.IndexOf('%'); + int startIndex = 0; + if (sl == precentIdx + 1) // % the last char. + { + ss = SearchString.Substring(startIndex, sl - 1); + var isNumeric = int.TryParse(ss, out int n); + if (isNumeric == true) // other that a % are the rest of the characters numbers. + { + ss = ' ' + SearchString; //add a space prefix to make the search exact. If search is 5% this makes it excult 25% 55% etc.; + } + } } else {