Merge pull request 'B2024-025 Older Parent/Child procedure sets use applicability tokens that do not include the “U-“ prefix.' (#309) from B2024-025_ApplicabilityTokens into Development

Reviewed-on: #309
This commit is contained in:
Paul Larsen 2024-05-06 15:02:56 -04:00
commit eb26b7a123
5 changed files with 79 additions and 40 deletions

View File

@ -468,10 +468,12 @@ namespace VEPROMS.CSLA.Library
return text;
}
// B2022-035: resolve unit specific designators - moved code to here so that other objects can use it
// B2024-025 added <ID> to the replace list
public static string ResolveUnitSpecific(DocVersionInfo mydocversion, string text)
{
if (mydocversion == null) return text;
text = Regex.Replace(text, @"\<U\>", mydocversion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\<ID\>", mydocversion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\<(U(-|\\u8209\?)ID)\>", mydocversion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\<(U(-|\\u8209\?)NAME)\>", mydocversion.DocVersionConfig.Unit_Name, RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\<(U(-|\\u8209\?)TEXT)\>", mydocversion.DocVersionConfig.Unit_Text, RegexOptions.IgnoreCase);

View File

@ -2934,7 +2934,8 @@ namespace VEPROMS.CSLA.Library
{
string str = MyContent.Text;
// B2022-035: resolve unit specific designators
if (str.ToUpper().Contains(@"<U")) str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(this.MyDocVersion, str);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(this.MyDocVersion, str);
return ConvertToDisplayText(str, false, " "); // B2024-013 added " " to replace hard returns with a space instead of semi-colon
}
}
@ -2946,7 +2947,8 @@ namespace VEPROMS.CSLA.Library
{
string str = MyContent.Text;
// B2022-035: resolve unit specific designators
if (str.ToUpper().Contains(@"<U")) str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(this.MyDocVersion, str);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(this.MyDocVersion, str);
return ConvertToDisplayText(str, false, ""); // pass in empty string for hard retun char will keep hard return
}
}
@ -2960,7 +2962,8 @@ namespace VEPROMS.CSLA.Library
string str = MyContent.Text;
if (MyDocVersion != null)
{
str = Regex.Replace(str, @"\<[uU]\>", MyDocVersion.DocVersionConfig.Unit_Number);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
}
else
{
@ -2979,16 +2982,13 @@ namespace VEPROMS.CSLA.Library
if (MyDocVersion != null)
{
// B2022-035: resolve unit specific designators
if (str.ToUpper().Contains("<U")) str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
}
else
{
_MyLog.WarnFormat("Disconnected Data - ItemID = {0}", ItemID);
}
//if (str.Contains("<u>"))
// str = str.Replace("<u>", MyDocVersion.DocVersionConfig.Unit_Number);
//if (str.Contains("<U>"))
// str = str.Replace("<U>", MyDocVersion.DocVersionConfig.Unit_Number);
return ConvertToDisplayText(str);
}
}
@ -3047,7 +3047,8 @@ namespace VEPROMS.CSLA.Library
string str = MyContent.Text;
if (MyDocVersion != null)
{
str = Regex.Replace(str, @"\<[uU]\>", MyDocVersion.DocVersionConfig.Unit_Number);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
}
else
{
@ -3080,8 +3081,8 @@ namespace VEPROMS.CSLA.Library
}
else
str = MyContent.Number;
str = Regex.Replace(str, @"\<U-ID\>", MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
str = Regex.Replace(str, @"\<ID\>", MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
}
else
{
@ -3094,7 +3095,9 @@ namespace VEPROMS.CSLA.Library
// str = str.Replace(@"<S\u8209?ID>", MyDocVersion.DocVersionConfig.Unit_ID);
str = ConvertToDisplayText(str);
if (MyDocVersion != null) // B2020-086 check for null doc version - happens if item we are trying to open is no longer there (disconnected)
str = Regex.Replace(str, @"\<[uU]\>", MyDocVersion.DocVersionConfig.Unit_Number); // B2017-019 - process "<u>" in section number
// B2017-019 - process "<u>" in section number
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
return str;
}
//get { return ConvertToDisplayText(MyContent.Number); }

View File

@ -1540,8 +1540,8 @@ namespace VEPROMS.CSLA.Library
ItemInfo tmpitm = TranGetSectionItem(itminfo);
if (!tmpitm.IsSection) return "";
string str = tmpitm.MyContent.Number;
str = Regex.Replace(str, @"\<U\>", itminfo.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase );
str = Regex.Replace(str, @"\<ID\>", itminfo.MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(itminfo.MyDocVersion, str);
return (str);
}
private static string TranGetSectionNumber(TransitionBuilder tb, bool allLevels)
@ -1566,8 +1566,8 @@ namespace VEPROMS.CSLA.Library
}
//string str = tmpitm.MyContent.Number;
string str = BuildSectionPath(ToSections);
str = Regex.Replace(str, @"\<U\>", tb._ToItem.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase);
str = Regex.Replace(str, @"\<ID\>", tb._ToItem.MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(tb._ToItem.MyDocVersion, str);
//if (!str.EndsWith(".") && tb._ToItem.ItemID != tb._ToItem.ActiveSection.ItemID)
tb.StepPrefix = ".";
tb.SectionNumberLength = str.Length;

View File

@ -3583,6 +3583,9 @@ namespace Volian.Controls.Library
private string ResolveUnitApp(DocVersionInfo dvi, string str)
{
if (dvi == null) return str;
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(dvi, str);
// look for un-resolved tokens and replace less/greater than chars with "*?" and "?*" respectively
string tmp = str.ToUpper();
int sindx = tmp.IndexOf("<U");
int eindx = tmp.IndexOf(">", sindx + 1);
@ -3591,21 +3594,34 @@ namespace Volian.Controls.Library
{
reptmp = str.Substring(sindx, eindx - sindx + 1);
tmp = reptmp.ToUpper();
if (tmp == "<U>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
else if (tmp == "<U-TEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Text);
else if (tmp == "<U-NUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
else if (tmp == "<U-NAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Name);
else if (tmp == "<U-ID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_ID);
// B2021-145: For applicability, the tree view & pdf file name are not getting resolved when using any of the OTHER tokens
else if (tmp == "<U-OTHERTEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Text);
else if (tmp == "<U-OTHERNUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Number);
else if (tmp == "<U-OTHERNAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Name);
else if (tmp == "<U-OTHERID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_ID);
else str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*")); // unresolved token
tmp = str.ToUpper();
sindx = tmp.IndexOf("<U");
eindx = tmp.IndexOf(">", sindx + 1);
}
//string tmp = str.ToUpper();
//int sindx = tmp.IndexOf("<U");
//int eindx = tmp.IndexOf(">", sindx + 1);
//string reptmp;
//while (sindx > -1 && eindx > -1) // B2022-007 added while loop to process more than one <U- RO value
//{
// reptmp = str.Substring(sindx, eindx - sindx + 1);
// tmp = reptmp.ToUpper();
// if (tmp == "<U>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
// else if (tmp == "<U-TEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Text);
// else if (tmp == "<U-NUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
// else if (tmp == "<U-NAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Name);
// else if (tmp == "<U-ID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_ID);
// // B2021-145: For applicability, the tree view & pdf file name are not getting resolved when using any of the OTHER tokens
// else if (tmp == "<U-OTHERTEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Text);
// else if (tmp == "<U-OTHERNUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Number);
// else if (tmp == "<U-OTHERNAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Name);
// else if (tmp == "<U-OTHERID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_ID);
// else str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
// tmp = str.ToUpper();
// sindx = tmp.IndexOf("<U");
// eindx = tmp.IndexOf(">", sindx + 1);
//}
return str;
}
// C2021-018 used to display Alarm Point Table RO values in the editor

View File

@ -1834,7 +1834,8 @@ i = 0;
{
if (section.ActiveFormat.PlantFormat.FormatData.ProcData.CapitalizeTitle) title = title.ToUpper();
// B2022-035: resolve unit specific designators
if (title.ToUpper().Contains(@"<U")) title = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(section.MyDocVersion, title);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
title = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(section.MyDocVersion, title);
plstr = SplitTitle(svgGroup, pageItem, title, (int)linelen, token, plstr, null); //,rowAdj);
}
break;
@ -1847,7 +1848,8 @@ i = 0;
string title1 = section.MyProcedure.MyContent.Text;
if (section.ActiveFormat.PlantFormat.FormatData.ProcData.CapitalizeTitle) title1 = title1.ToUpper();
// F2024-012 copied this line from above (processing COVERPROCTITLE) to resolve unit designators in the procedure title
if (title1.ToUpper().Contains(@"<U")) title1 = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(section.MyDocVersion, title1);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
title1 = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(section.MyDocVersion, title1);
plstr = SplitCoverTitle(svgGroup, pageItem, title1, (int)coverlinelen, token, plstr);//, rowAdj);
break;
case "{TITLE&UNIT}":
@ -2471,6 +2473,9 @@ i = 0;
private string ResolveUnitApp(DocVersionInfo dvi, string str)
{
if (dvi == null) return str;
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(dvi, str);
// look for un-resolved tokens and replace less/greater than chars with "*?" and "?*" respectively
string tmp = str.ToUpper();
int sindx = tmp.IndexOf("<U");
int eindx = tmp.IndexOf(">", sindx + 1);
@ -2479,21 +2484,34 @@ i = 0;
{
reptmp = str.Substring(sindx, eindx - sindx + 1);
tmp = reptmp.ToUpper();
if (tmp == "<U>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
else if (tmp == "<U-TEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Text);
else if (tmp == "<U-NUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
else if (tmp == "<U-NAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Name);
else if (tmp == "<U-ID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_ID);
// B2021-145: For applicability, the tree view & pdf file name are not getting resolved when using any of the OTHER tokens
else if (tmp == "<U-OTHERTEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Text);
else if (tmp == "<U-OTHERNUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Number);
else if (tmp == "<U-OTHERNAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Name);
else if (tmp == "<U-OTHERID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_ID);
else str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
tmp = str.ToUpper();
sindx = tmp.IndexOf("<U");
eindx = tmp.IndexOf(">", sindx + 1);
}
//string tmp = str.ToUpper();
//int sindx = tmp.IndexOf("<U");
//int eindx = tmp.IndexOf(">", sindx + 1);
//string reptmp;
//while (sindx > -1 && eindx > -1) // B2022-007 added while loop to process more than one <U- RO value
//{
// reptmp = str.Substring(sindx, eindx - sindx + 1);
// tmp = reptmp.ToUpper();
// if (tmp == "<U>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
// else if (tmp == "<U-TEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Text);
// else if (tmp == "<U-NUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
// else if (tmp == "<U-NAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Name);
// else if (tmp == "<U-ID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_ID);
// // B2021-145: For applicability, the tree view & pdf file name are not getting resolved when using any of the OTHER tokens
// else if (tmp == "<U-OTHERTEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Text);
// else if (tmp == "<U-OTHERNUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Number);
// else if (tmp == "<U-OTHERNAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Name);
// else if (tmp == "<U-OTHERID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_ID);
// else str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
// tmp = str.ToUpper();
// sindx = tmp.IndexOf("<U");
// eindx = tmp.IndexOf(">", sindx + 1);
//}
return str;
}
// B2019-076: moved the following to DocVersionExt.cs to make it available to transitionext.cs code.