diff --git a/PROMS/Formats/fmtall/VEGPBckStpsall.xml b/PROMS/Formats/fmtall/VEGPBckStpsall.xml
index 6e965f6b..cefcac07 100644
Binary files a/PROMS/Formats/fmtall/VEGPBckStpsall.xml and b/PROMS/Formats/fmtall/VEGPBckStpsall.xml differ
diff --git a/PROMS/Formats/genmacall/VEGPBckStps.svg b/PROMS/Formats/genmacall/VEGPBckStps.svg
index b5638d3b..ecb258a2 100644
Binary files a/PROMS/Formats/genmacall/VEGPBckStps.svg and b/PROMS/Formats/genmacall/VEGPBckStps.svg differ
diff --git a/PROMS/VEPROMS User Interface/dlgManageSecurity.cs b/PROMS/VEPROMS User Interface/dlgManageSecurity.cs
index f3ab5011..83b0a1db 100644
--- a/PROMS/VEPROMS User Interface/dlgManageSecurity.cs
+++ b/PROMS/VEPROMS User Interface/dlgManageSecurity.cs
@@ -216,7 +216,7 @@ namespace VEPROMS
MembershipInfo mi = (MembershipInfo)lstMembers.SelectedItem;
string selectedUserID = mi.MyUserUserID;
string msg = "Are you sure you want to remove this Group Member?";
- if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
+ if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
if (mi.MyGroup.GroupName == "Administrators" && mi.MyGroup.GroupMemberships.Count(mm => mm.EndDate == null || mm.EndDate == string.Empty) == 1)
{
@@ -255,7 +255,7 @@ namespace VEPROMS
MessageBox.Show("There are still users who are members of this group. You need to delete all members in order to delete this group.", "Group Has Members", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
- if (MessageBox.Show("Are you sure you want to delete this group?", "Confirm Deleting Group", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
+ if (MessageBox.Show("Are you sure you want to delete this group?", "Confirm Deleting Group", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
Group.Delete(gi.GID);
LoadRefreshGroupUsers();
@@ -397,7 +397,7 @@ namespace VEPROMS
}
int nummemberships = ui.UserMemberships.Count(mi => mi.EndDate == null || mi.EndDate == string.Empty);
string mem_text = nummemberships > 0 ? "\r\nNote that this will remove all memberships that this user has." : "";
- if (MessageBox.Show($"Are you sure you want to delete this user?{mem_text}", "Confirm Deleting User", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
+ if (MessageBox.Show($"Are you sure you want to delete this user?{mem_text}", "Confirm Deleting User", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
foreach (MembershipInfo minfo in ui.UserMemberships.Where(mi => mi.EndDate == null || mi.EndDate == string.Empty))
{
@@ -477,7 +477,7 @@ namespace VEPROMS
{
MembershipInfo mi = (MembershipInfo)lstGroups.SelectedItem;
string msg = "Are you sure you want to remove this Group Member?";
- if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
+ if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
if (mi.MyGroup.GroupName == "Administrators" && mi.MyGroup.GroupMemberships.Count(mm => mm.EndDate == null || mm.EndDate == string.Empty) == 1)
{
diff --git a/PROMS/VEPROMS User Interface/frmBatchRefresh.resx b/PROMS/VEPROMS User Interface/frmBatchRefresh.resx
index e63d56a3..7e66d1f3 100644
--- a/PROMS/VEPROMS User Interface/frmBatchRefresh.resx
+++ b/PROMS/VEPROMS User Interface/frmBatchRefresh.resx
@@ -165,9 +165,9 @@ This function will cause no change to data or records in PROMS.
It should however be performed when other users are not in PROMS, as it could
cause slowdown or errors for other users while it is running.
-
+
17, 17
-
+
This allows the user to remove folders and sub folders as well as their contents.
@@ -304,22 +304,22 @@ Should an item become orphaned (disconnected) from the rest of the data, it will
- This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
+ This allows the user to check referenced object links in procedure step data for multiple working drafts in a batch mode.
-Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
+Bad referenced object links will be identified with a Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
-Be sure a current backup of the database exists prior performing this function.
+Be sure a current backup of the database exists prior to performing this function.
It is recommended that this be done during off hours.
- This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
+ This allows the user to check referenced object links in procedure step data for multiple working drafts in a batch mode.
-Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
+Bad referenced object links will be identified with a Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
-Be sure a current backup of the database exists prior performing this function.
+Be sure a current backup of the database exists prior to performing this function.
It is recommended that this be done during off hours.
@@ -388,7 +388,8 @@ If more than one procedure is selected, it is recommended that this be performed
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
-
+
+
25
-
+
\ No newline at end of file
diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs
index 1f200bb3..a7293be4 100644
--- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs
+++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs
@@ -3312,7 +3312,26 @@ namespace VEPROMS.CSLA.Library
return retval;
}
}
- public string DisplayNumber
+
+ //B2026-011 Improve the resolution of unit numbers in multi-unit background documents when printing.
+ // for enhanced documents, when copying content, need to not resolve the
+ //unit designators until print time
+ public string DisplayTextKeepSpecialCharsKeepUnitSpecific
+ {
+ get
+ {
+ string str = MyContent.Text;
+ foreach (string key in SpecialCharacters.Keys)
+ str = str.Replace(key, SpecialCharacters[key]);
+ string retval = ConvertToDisplayText(str);
+ foreach (string key in SpecialCharacters.Keys)
+ retval = retval.Replace(SpecialCharacters[key], key);
+ return retval;
+ }
+ }
+
+
+ public string DisplayNumber
{
get
{
@@ -8357,8 +8376,11 @@ namespace VEPROMS.CSLA.Library
if (seds != null && seds.Count != 0)
{
ItemInfo srcItem = ItemInfo.Get(seds[0].ItemID);
- // B2022-049: Copy/paste of enhanced procedure and bad links between source and enhanced. Null reference check
- if (srcItem != null && srcItem.DisplayTextKeepSpecialChars != ii.DisplayTextKeepSpecialChars)
+ // B2022-049: Copy/paste of enhanced procedure and bad links between source and enhanced. Null reference check
+ //B2026-011 Improve the resolution of unit numbers in multi-unit background documents when printing.
+ // for enhanced documents, when copying content, need to not resolve the
+ //unit designators until print time
+ if (srcItem != null && srcItem.DisplayTextKeepSpecialCharsKeepUnitSpecific != ii.DisplayTextKeepSpecialCharsKeepUnitSpecific)
{
if (retiil == null) retiil = new ItemInfoList(ii);
else retiil.AddItem(ii);
@@ -8384,7 +8406,10 @@ namespace VEPROMS.CSLA.Library
ItemInfo srcItem = ItemInfo.Get(seds[0].ItemID);
using (Item enhItem = Item.Get(ii.ItemID))
{
- enhItem.MyContent.Text = srcItem.DisplayTextKeepSpecialChars;
+ //B2026-011 Improve the resolution of unit numbers in multi-unit background documents when printing.
+ // for enhanced documents, when copying content, need to not resolve the
+ //unit designators until print time
+ enhItem.MyContent.Text = srcItem.DisplayTextKeepSpecialCharsKeepUnitSpecific;
enhItem.Save();
}
}
diff --git a/PROMS/Volian.Controls.Library/CustomMessageBox.Designer.cs b/PROMS/Volian.Controls.Library/CustomMessageBox.Designer.cs
new file mode 100644
index 00000000..c804d557
--- /dev/null
+++ b/PROMS/Volian.Controls.Library/CustomMessageBox.Designer.cs
@@ -0,0 +1,89 @@
+namespace Volian.Controls.Library
+{
+ partial class CustomMessageBox
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.btn1 = new System.Windows.Forms.Button();
+ this.btn2 = new System.Windows.Forms.Button();
+ this.lblMessage = new System.Windows.Forms.Label();
+ this.SuspendLayout();
+ //
+ // btn1
+ //
+ this.btn1.AutoSize = true;
+ this.btn1.Location = new System.Drawing.Point(12, 99);
+ this.btn1.Name = "btn1";
+ this.btn1.Size = new System.Drawing.Size(75, 23);
+ this.btn1.TabIndex = 0;
+ this.btn1.UseVisualStyleBackColor = true;
+ this.btn1.Click += new System.EventHandler(this.Btn1_Click);
+ //
+ // btn2
+ //
+ this.btn2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btn2.AutoSize = true;
+ this.btn2.Location = new System.Drawing.Point(322, 99);
+ this.btn2.Name = "btn2";
+ this.btn2.Size = new System.Drawing.Size(75, 23);
+ this.btn2.TabIndex = 1;
+ this.btn2.UseVisualStyleBackColor = true;
+ this.btn2.Click += new System.EventHandler(this.Btn2_Click);
+ //
+ // lblMessage
+ //
+ this.lblMessage.AutoSize = true;
+ this.lblMessage.Location = new System.Drawing.Point(33, 41);
+ this.lblMessage.Name = "lblMessage";
+ this.lblMessage.Size = new System.Drawing.Size(0, 13);
+ this.lblMessage.TabIndex = 2;
+ this.lblMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // CustomMessageBox
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoSize = true;
+ this.ClientSize = new System.Drawing.Size(419, 130);
+ this.Controls.Add(this.lblMessage);
+ this.Controls.Add(this.btn2);
+ this.Controls.Add(this.btn1);
+ this.Name = "CustomMessageBox";
+ this.ShowIcon = false;
+ this.Text = "CustomMessageBox";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button btn1;
+ private System.Windows.Forms.Button btn2;
+ private System.Windows.Forms.Label lblMessage;
+ }
+}
\ No newline at end of file
diff --git a/PROMS/Volian.Controls.Library/CustomMessageBox.cs b/PROMS/Volian.Controls.Library/CustomMessageBox.cs
new file mode 100644
index 00000000..3a42d5e7
--- /dev/null
+++ b/PROMS/Volian.Controls.Library/CustomMessageBox.cs
@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Volian.Controls.Library
+{
+ public partial class CustomMessageBox : Form
+ {
+ //Custome Message Box Class to allow renaming of buttons
+ // originally devleoped for use with
+ // C2025-062 When Search clicked - Load the Incoming transitions for the Active Procedure
+ // in order to allow the user to decide if they wanted to search on the selected step or the selected procedure
+ public CustomMessageBox(string message, string title, string button1Text = "OK", string button2Text = "")
+ {
+ InitializeComponent();
+ this.Text = title;
+ lblMessage.Text = message;
+ btn1.Text = button1Text;
+
+ if (!string.IsNullOrEmpty(button2Text))
+ {
+ btn2.Text = button2Text;
+ btn2.Visible = true;
+ }
+ else
+ {
+ btn2.Visible = false;
+ }
+ }
+
+ private void Btn1_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Yes;
+ Close();
+ }
+
+ private void Btn2_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.No;
+ Close();
+ }
+
+ //static method for calling custommessagebox directly
+ public static DialogResult Show(string message, string title, string button1Text = "OK", string button2Text = "")
+ {
+ using (var messageBox = new CustomMessageBox(message, title, button1Text, button2Text))
+ {
+ return messageBox.ShowDialog();
+ }
+ }
+ }
+}
diff --git a/PROMS/Volian.Controls.Library/CustomMessageBox.resx b/PROMS/Volian.Controls.Library/CustomMessageBox.resx
new file mode 100644
index 00000000..1af7de15
--- /dev/null
+++ b/PROMS/Volian.Controls.Library/CustomMessageBox.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/PROMS/Volian.Controls.Library/DisplaySearch.cs b/PROMS/Volian.Controls.Library/DisplaySearch.cs
index 81c7511a..b0dd922e 100644
--- a/PROMS/Volian.Controls.Library/DisplaySearch.cs
+++ b/PROMS/Volian.Controls.Library/DisplaySearch.cs
@@ -414,6 +414,15 @@ namespace Volian.Controls.Library
lbSrchResults.Visible = true;
lbSrchResultsIncTrans.Visible = false;
cbxRnoOnly.Visible = true;
+
+ // C2025-062 When Search clicked - Load the Incoming transitions for the Active Procedure
+ //don't allow changing the Style for Incoming Transitions
+ //but allow them to change it if there are search results and it is another tab
+ if (_SearchResults != null && _SearchResults.Count > 0)
+ {
+ cmbResultsStyle.Enabled = true;
+ }
+
if (e.NewTab == tabIncTrans) // C2020-033: Incoming transitions
{
xpSetToSearch.Enabled = false;
@@ -422,7 +431,7 @@ namespace Volian.Controls.Library
lbSrchResultsIncTrans.Visible = true;
lbSrchResultsIncTrans.CheckBoxesVisible = true;
lbSrchResultsIncTrans.AutoScroll = true;
- btnSearch.Enabled = false; // C2021 - 002: disable search button - no functionality for Incoming Transitions
+ cmbResultsStyle.Enabled = false;
cbxRnoOnly.Visible = false;
}
else if (e.NewTab == tabROSearch)
@@ -648,7 +657,6 @@ namespace Volian.Controls.Library
}
btnTranCvtAllToTxt.Enabled = IncTransCvtAllToTextPerm();
btnTranCvtSelToTxt.Enabled = false;
- btnSearch.Enabled = false; // C2021 - 002: disable search button - no functionality for Incoming Transitions
}
public bool IncTranCvtPerm()
@@ -1765,7 +1773,8 @@ namespace Volian.Controls.Library
btnClearSearchResults.Enabled = true;
btnCopySearchResults.Enabled = true;
btnSaveSearchResults.Enabled = true;
- cmbResultsStyle.Enabled = true;
+ if (tabSearchTypes.SelectedTab != tabIncTrans)
+ cmbResultsStyle.Enabled = true;
}
else
{
@@ -2188,21 +2197,39 @@ namespace Volian.Controls.Library
// C2019-001: Search in RNO steps only
if (cbxRnoOnlyTrans.Checked) GetInRNOResults();
}
- else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[4])
+ else if (tabSearchTypes.SelectedTab == tabIncTrans)
{
- // C2020-033: Incoming Transitions: Make an iteminfolist from the list returned from
- // GetExternalTransitionsToChildren (also gets transitions to the item itself)
- // B2021-010: Use IncomingTranGetMergedTranList to get a complete list of incoming transitions (transitions to procedure
- // were only included if there were NO transitions to items within procedure)
- ReportTitle = string.Format("Search For Incoming Transitions to {0}: ", SearchIncTransII.Path);
- SearchResults = IncomingTranGetMergedTranList();
- cmbResultsStyleIndex = 1; //display step locations in results
- if (SearchResults == null || SearchResults.Count == 0)
+ // C2025-062 When Search clicked - Load the Incoming transitions for the Active Procedure
+
+ if (_TabControl?.MyEditItem?.MyItemInfo?.MyProcedure != null)
{
- FlexibleMessageBox.Show("No Matches Found.", "Search");
+
+ if (_TabControl?.MyEditItem?.MyItemInfo?.MyProcedure.ItemID == _TabControl?.MyEditItem?.MyItemInfo?.ItemID)
+ {
+ _ = _TabControl.OnSearchIncTrans(this, new vlnTreeItemInfoEventArgs(_TabControl?.MyEditItem?.MyItemInfo?.MyProcedure));
+ }
+ else
+ {
+ //if on a step, check if the user wants to load incoming transitions for that step or the entire procedure
+ switch (CustomMessageBox.Show("Would you like to load incoming transitions for this procedure or this step?", "Load Incoming Transitions", "This Procedure", "This Step"))
+ {
+ case DialogResult.Yes:
+ _ = _TabControl.OnSearchIncTrans(this, new vlnTreeItemInfoEventArgs(_TabControl?.MyEditItem?.MyItemInfo?.MyProcedure));
+ break;
+ case DialogResult.No:
+ _ = _TabControl.OnSearchIncTrans(this, new vlnTreeItemInfoEventArgs(_TabControl?.MyEditItem?.MyItemInfo));
+ break;
+ default: //Cancel was pressed
+ break;
+ }
+ }
+ }
+ else
+ {
+ FlexibleMessageBox.Show("Please open a procedure before selecting this option to load incoming transitions for that procedure.", "Search");
}
}
- if (SearchResults != null)
+ if (SearchResults != null && tabSearchTypes.SelectedTab != tabIncTrans)
{
AddMessageForEmptyAnnotations();
if (cmbResultsStyleIndex == 3 && cmbResultsStyle.Items.Count == 3) cmbResultsStyleIndex--;
@@ -2303,7 +2330,18 @@ namespace Volian.Controls.Library
cmbResultsStyle.Items.Add(comboItem2);
if (hasAnnot) cmbResultsStyle.Items.Add(comboItem3);
cmbResultsStyle.Items.Add(comboItem4);
- }
+
+ // C2025-062 When Search clicked - Load the Incoming transitions for the Active Procedure
+ if (tabSearchTypes.SelectedTab == tabIncTrans)
+ {
+ cmbResultsStyle.SelectedIndex = -1;
+ cmbResultsStyle.Enabled = false;
+ }
+ else
+ {
+ cmbResultsStyle.Enabled = true;
+ }
+ }
private void cbxTextSearchText_Leave(object sender, EventArgs e)
{
diff --git a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj
index f63be9f6..bb704d34 100644
--- a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj
+++ b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj
@@ -154,6 +154,12 @@
Form
+
+ Form
+
+
+ CustomMessageBox.cs
+
UserControl
@@ -454,6 +460,9 @@
AnnotationSearch.cs
Designer
+
+ CustomMessageBox.cs
+
DisplayBookMarks.cs
Designer