B2026-053-Find-Unlinked-Values-of-Selected
This commit is contained in:
@@ -2017,35 +2017,21 @@ namespace Volian.Controls.Library
|
|||||||
ReportTitle = string.Format("Search for '{0}'", TextSearchString);
|
ReportTitle = string.Format("Search for '{0}'", TextSearchString);
|
||||||
|
|
||||||
// C2020-009: Search - Allow search 'By Word'.
|
// C2020-009: Search - Allow search 'By Word'.
|
||||||
string byWordPrefix = string.Empty;
|
|
||||||
string byWordSuffix = string.Empty;
|
//if (cbxByWord.Checked)
|
||||||
if (cbxByWord.Checked)
|
//{
|
||||||
{
|
// // Generate a prefix & suffix to be used in the sql query around the search string.
|
||||||
// Generate a prefix & suffix to be used in the sql query around the search string.
|
// // If the search string starts (prefix)/ends(suffix) with a number, then use an expression that
|
||||||
// If the search string starts (prefix)/ends(suffix) with a number, then use an expression that
|
// // does not allow the preceding/following text to have a number, '.', letter or other rtf
|
||||||
// does not allow the preceding/following text to have a number, '.', letter or other rtf
|
// // commands. If the search string starts/ends with a letter, then use an expression that does not
|
||||||
// commands. If the search string starts/ends with a letter, then use an expression that does not
|
// // find the preceding/following text that is text, i.e. a letter.
|
||||||
// find the preceding/following text that is text, i.e. a letter.
|
|
||||||
if (Regex.IsMatch(TextSearchString, @"^[\d\.]")) // starts with a number or '.' decimal pt
|
|
||||||
{
|
|
||||||
byWordPrefix = @"[^0-9a-zA-Z.vbpi:\\-]";
|
|
||||||
}
|
|
||||||
else if (Regex.IsMatch(TextSearchString, @"^[a-zA-Z]")) // starts with a letter
|
|
||||||
{
|
|
||||||
byWordPrefix = @"[^a-zA-Z]";
|
|
||||||
}
|
|
||||||
if (Regex.IsMatch(TextSearchString, @"[\d\.]$")) // ends with a number or decimal
|
|
||||||
{
|
|
||||||
byWordSuffix = @"[^0-9a-zA-Z.vbpi:\\-]";
|
|
||||||
}
|
|
||||||
else if (Regex.IsMatch(TextSearchString, @"[a-zA-Z]$")) // ends with a letter
|
|
||||||
{
|
|
||||||
byWordSuffix = @"[^a-zA-Z]";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SearchString = TextSearchString;
|
SearchString = TextSearchString;
|
||||||
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
|
|
||||||
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString /*.Replace(@"\",@"\u9586?")*/, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, byWordPrefix, byWordSuffix);
|
Dictionary<string, string> rtnByWord = GetByWordSettings(TextSearchString);
|
||||||
|
|
||||||
|
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
|
||||||
|
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString /*.Replace(@"\",@"\u9586?")*/, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, rtnByWord["byWordPrefix"], rtnByWord["byWordSuffix"]);
|
||||||
|
|
||||||
cmbResultsStyleIndex = 3; // display step text in results
|
cmbResultsStyleIndex = 3; // display step text in results
|
||||||
//}
|
//}
|
||||||
@@ -2078,27 +2064,10 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked)
|
if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked)
|
||||||
{
|
{
|
||||||
string byWordPrefix = string.Empty;
|
|
||||||
string byWordSuffix = string.Empty;
|
|
||||||
|
|
||||||
if (Regex.IsMatch(ROSearchList, @"^[\d\.]")) // starts with a number or '.' decimal pt
|
Dictionary<string, string> rtnByWord = GetByWordSettings(ROSearchList);
|
||||||
{
|
|
||||||
byWordPrefix = @"[^0-9a-zA-Z.vbpi:\\-]";
|
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, ROSearchList, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, rtnByWord["byWordPrefix"], rtnByWord["byWordSuffix"]);
|
||||||
}
|
|
||||||
else if (Regex.IsMatch(ROSearchList, @"^[a-zA-Z]")) // starts with a letter
|
|
||||||
{
|
|
||||||
byWordPrefix = @"[^a-zA-Z]";
|
|
||||||
}
|
|
||||||
if (Regex.IsMatch(ROSearchList, @"[\d\.]$")) // ends with a number or decimal
|
|
||||||
{
|
|
||||||
byWordSuffix = @"[^0-9a-zA-Z.vbpi:\\-]";
|
|
||||||
}
|
|
||||||
else if (Regex.IsMatch(ROSearchList, @"[a-zA-Z]$")) // ends with a letter
|
|
||||||
{
|
|
||||||
byWordSuffix = @"[^a-zA-Z]";
|
|
||||||
}
|
|
||||||
|
|
||||||
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, ROSearchList, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, byWordPrefix, byWordSuffix);
|
|
||||||
cmbResultsStyleIndex = 3; // display step text in results
|
cmbResultsStyleIndex = 3; // display step text in results
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2208,6 +2177,32 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
OnSearchComplete(new DisplaySearchEventArgs(TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks)));
|
OnSearchComplete(new DisplaySearchEventArgs(TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks)));
|
||||||
}
|
}
|
||||||
|
private Dictionary<string, string> GetByWordSettings(string ss)
|
||||||
|
{
|
||||||
|
|
||||||
|
Dictionary<string, string> settings = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
string byWordPrefix = string.Empty;
|
||||||
|
string byWordSuffix = string.Empty;
|
||||||
|
|
||||||
|
if (Regex.IsMatch(ss, @"^[\d\.]")) // starts with a number or '.' decimal pt
|
||||||
|
{
|
||||||
|
settings.Add("byWordPrefix", @"[^0-9a-zA-Z.vbpi:\\-]");
|
||||||
|
}
|
||||||
|
else if (Regex.IsMatch(ss, @"^[a-zA-Z]")) // starts with a letter
|
||||||
|
{
|
||||||
|
settings.Add("byWordPrefix", @"[^a-zA-Z]");
|
||||||
|
}
|
||||||
|
if (Regex.IsMatch(ss, @"^[\d\.]")) // ends with a number or decimal
|
||||||
|
{
|
||||||
|
settings.Add("byWordSuffix", @"[^0-9a-zA-Z.vbpi:\\-]");
|
||||||
|
}
|
||||||
|
else if (Regex.IsMatch(ss, @"[a-zA-Z]$")) // ends with a letter
|
||||||
|
{
|
||||||
|
settings.Add("byWordSuffix", @"[^a-zA-Z]");
|
||||||
|
}
|
||||||
|
return settings;
|
||||||
|
}
|
||||||
private void ClearResults() // B2021-103 if no results when RNO only, clear results list. (moved from btnSearch_Click)
|
private void ClearResults() // B2021-103 if no results when RNO only, clear results list. (moved from btnSearch_Click)
|
||||||
{
|
{
|
||||||
if (tabSearchTypes.SelectedTab != tabSearchTypes.Tabs[4])
|
if (tabSearchTypes.SelectedTab != tabSearchTypes.Tabs[4])
|
||||||
|
|||||||
Reference in New Issue
Block a user