Compare commits

..

61 Commits

Author SHA1 Message Date
8f154ebf48 C2025-001 Replace 3rd party Ionic.zip component 2025-08-21 14:25:53 -04:00
ba9d56811c Merge pull request 'C2025-035 RO Performance Improvement' (#601) from C2025-035 into Development
Reviewed-on: #601
Reviewed-by: Paul Larsen <plarsen@volian.com>
2025-08-19 14:24:55 -04:00
8eb8a328d1 C2025-035 RO Performance Improvement
Add some code to rebuild specific indexes (like [IX_RofstID_DbiID_ParentID] ON [dbo].[RofstChild])
after a new RO.FST is imported.
2025-08-19 13:32:23 -04:00
e8327316dd Merge pull request 'B2025-041-Set-Quick-Print-overwrite-pdf-to-false' (#599) from B2025-041-Set-Quick-Print-overwrite-pdf-to-false into Development
good for testing phase
2025-08-14 13:52:37 -04:00
3bd7001106 B2025-041-Set-Quick-Print-overwrite-pdf-to-false 2025-08-14 11:23:22 -04:00
2e5ad53c6a Merge pull request 'B2025-042 RO Editor FST Export ParentChild whitespace' (#598) from B2025-042 into Development
good for testing phase
2025-08-14 11:12:32 -04:00
ca0ae279e0 B2025-042 RO Editor FST Export ParentChild whitespace 2025-08-14 10:16:22 -04:00
adf1120436 Merge pull request 'B2025-037 When Export an Approved procedure with multi-unit and ROs with Parent Child, it exports as the default text and not the specific unit text.' (#597) from B2025-037 into Development
good for testing phase
2025-08-13 10:52:17 -04:00
7879391de0 B2025-037 When Export an Approved procedure with multi-unit and ROs with Parent Child, it exports as the default text and not the specific unit text. 2025-08-13 10:45:49 -04:00
11ba9ea418 Merge pull request 'C2025-048-Set-Quick-Print-overwrite-pdf-to-false' (#596) from C2025-048-Set-Quick-Print-overwrite-pdf-to-false into Development
good for testing phase
2025-08-13 10:34:12 -04:00
0fe84ca17c Merge pull request 'C2025-045 Improve Performance loading procedures with Alarms.' (#594) from C2025-045 into Development
good for testing phase
2025-08-13 09:17:55 -04:00
1009ca5111 Merge remote-tracking branch 'origin/Development' into C2025-048-Set-Quick-Print-overwrite-pdf-to-false 2025-08-13 09:14:34 -04:00
2c973fb0be C2025-045 Improve Performance loading procedures with Alarms. 2025-08-13 09:12:04 -04:00
dba1f4e71c C2025-048-Set-Quick-Print-overwrite-pdf-to-false 2025-08-13 09:11:52 -04:00
46fe124fe1 Merge pull request 'C2025-049 Added a check and fix for a different hyphen character that is in Vogtle’s 3 & 4 procedures, introduced by automatic importing and copy/paste from Word documents.' (#593) from C2025-049-update_StandardHyphens_AdminTools into Development
Looks good. Ready for QA testing.
2025-08-13 07:52:27 -04:00
50688d7d8a C2025-049 Added a check and fix for a different hyphen character that is in Vogtle’s 3 & 4 procedures, introduced by automatic importing and copy/paste from Word documents. 2025-08-12 16:16:59 -04:00
a7396e3c4a Merge pull request 'C2025-015 Added logic to make approved PDF names unique to allow procedures from different sets or different revs of the same procedure to be opened (viewed) at the same time.' (#592) from C2025-015_ViewMultipleApprovedPDFsOfSameName into Development
Reviewed-on: #592
Reviewed-by: Matthew Schill <mschill@volian.com>
Reviewed-by: Paul Larsen <plarsen@volian.com> merge after successful code review.
2025-08-12 10:28:04 -04:00
41e969f79e C2025-015 Added logic to make approved PDF names unique to allow procedures from different sets or different revs of the same procedure to be opened (viewed) at the same time. 2025-08-12 09:21:26 -04:00
7b3f78f745 Merge pull request 'B2025-038-Copy-a-step-between-two-screens' (#591) from B2025-038-Copy-a-step-between-two-screens into Development
ready for testing phase
2025-08-12 08:45:59 -04:00
14bc171246 B2025-038-Copy-a-step-between-two-screens 2025-08-12 08:09:38 -04:00
a584c0751e Merge pull request 'C2025-024' (#590) from C2025-024 into Development
good for testing phase
2025-08-08 10:18:59 -04:00
3d7528e069 Merge branch 'Development' into C2025-024 2025-08-08 09:56:33 -04:00
1bc421ac6d Merge pull request 'B2025-036-SplitScreen-Print-Error' (#587) from B2025-036-SplitScreen-Print-Error into Development
ready for testing
2025-08-06 11:37:03 -04:00
ad0d091b49 B2025-036-SplitScreen-Print-Error 2025-08-06 11:28:28 -04:00
22de686a44 B2025-036-SplitScreen-Print-Error 2025-08-06 11:25:44 -04:00
3e7eb09758 Merge pull request 'C2025-039 Per the customer’s request, adjusted the “{Proc Num} (Procedure Number Only)" transition type in the Beaver Valley formats so that a procedure that contains only Word sections can be referenced.' (#586) from C2025-039_allowStepTransToAllWordProc into Development
format only change - ready for testing
2025-08-04 10:31:38 -04:00
e2a276085b C2025-039 Per the customer’s request, adjusted the “{Proc Num} (Procedure Number Only)" transition type in the Beaver Valley formats so that a procedure that contains only Word sections can be referenced. 2025-08-04 10:30:20 -04:00
d561c579e0 Merge pull request 'C2025-047-cleanup' (#585) from C2025-047-cleanup into Development
good for testing
2025-08-01 14:58:51 -04:00
371d117746 C2025-047-cleanup 2025-08-01 14:44:48 -04:00
2131efb522 Merge pull request 'C2025-047-AnnotationsTypeSelectChanges' (#583) from C2025-047-AnnotationsTypeSelectChanges into Development
good for testing phase
2025-08-01 10:13:46 -04:00
6e20774edf C2025-047-AnnotationsTypeSelectChanges 2025-08-01 07:34:33 -04:00
a7c7744ff3 C2025-047-AnnotationsTypeSelectChanges 2025-07-31 23:06:29 -04:00
019aefbc61 Merge pull request 'SQL optimization to use AnnotationTypeSelections Index' (#582) from SQL_Optimization_7_31_2025 into Development
good for testing phase
2025-07-31 11:03:14 -04:00
81a23305ba SQL optimization to used AnnotationTypeSelections Index 2025-07-31 10:48:39 -04:00
4001abff02 Merge pull request 'C2025-027-AnnotationsTypeSelect-3' (#581) from C2025-027-AnnotationsTypeSelect-3 into Development
good for testing phase
2025-07-31 08:49:37 -04:00
25bfbeb8d6 C2025-027-AnnotationsTypeSelect-3 2025-07-30 23:05:11 -04:00
a3aa9747b8 Merge pull request 'C2025-027-AnnotationsTypeSelect-2' (#580) from C2025-027-AnnotationsTypeSelect-2 into Development
good for testing phase
2025-07-30 11:28:55 -04:00
009243b091 C2025-027-AnnotationsTypeSelect-2 2025-07-30 11:18:33 -04:00
e31e0b6680 C2025-027-AnnotationsTypeSelect-2 2025-07-30 10:58:58 -04:00
449bb2522b C2025-027-AnnotationsTypeSelect-2 2025-07-30 10:25:07 -04:00
453dce9520 Merge pull request 'C2025-027-AnnotationsTypeSelect' (#574) from C2025-027-AnnotationsTypeSelect into Development
good for the testing phase
2025-07-30 08:23:06 -04:00
655592186b C2025-027-AnnotationsTypeSelect 2025-07-29 22:54:44 -04:00
1ebf67233b C2025-027-AnnotationsTypeSelect 2025-07-29 15:34:13 -04:00
1588dabcbe Merge pull request 'C2025-044 Update PROMS Fixes to be SQL 2016 compatible' (#579) from C2025-044 into Development
good for testing phase
2025-07-29 15:18:37 -04:00
09d3995e6c C2025-044 Update PROMS Fixes to be SQL 2016 compatible 2025-07-29 15:12:51 -04:00
db20385a6d Merge pull request 'DEV_Proj_File_Dependency_Update' (#578) from DEV_Proj_File_Dependency_Update into Development
Good to use. - no testing required this update is for developers only.
2025-07-29 10:06:11 -04:00
d701935ddf DEV_Proj_File_Dependency_Update
Visual Studio 2022 changed the default build order --- this will alow rebuild all in VS2022
2025-07-29 09:21:51 -04:00
d3888e3c32 C2025-027-AnnotationsTypeSelect 2025-07-29 09:20:58 -04:00
94f0795247 Merge pull request 'B2025-039 Needed to include the Blue color to the RTF color table for formats that use a proportional font.' (#577) from B2025-039_PropFontColorRplWrds into Development
Looks Good.

Ready for QA Testing.
2025-07-28 16:14:29 -04:00
4def73d738 B2025-039 Needed to include the Blue color to the RTF color table for formats that use a proportional font. 2025-07-28 16:06:55 -04:00
99445406fc C2025-027-AnnotationsTypeSelect 2025-07-25 23:06:50 -04:00
025fa57e24 Merge remote-tracking branch 'origin/Development' into C2025-027-AnnotationsTypeSelect 2025-07-22 09:13:11 -04:00
6f04d0bf07 C2025-027-AnnotationsTypeSelect 2025-07-22 09:06:11 -04:00
7a0f56cad8 C2025-027-AnnotationsTypeSelect 2025-07-16 15:03:32 -04:00
c98299d916 C2025-027-AnnotationsTypeSelect 2025-07-15 23:32:31 -04:00
f6e25fd966 C2025-027-AnnotationsTypeSelect 2025-07-15 23:14:26 -04:00
557b9429bf Merge pull request 'F2025-017 Created a new cover page type for Wolf Creek Single Column format.' (#575) from General_Debugging into Development
Format only change- ready for testing
2025-07-15 15:34:24 -04:00
139f7bbd0a F2025-017 Created a new cover page type for Wolf Creek Single Column format. 2025-07-15 15:25:52 -04:00
e08b5cde69 C2025-027-AnnotationsTypeSelect 2025-07-11 16:08:14 -04:00
07c7718320 Merge pull request 'C2025-038 Code cleanup to prevent multiple events from being assigned to the same method.' (#573) from C2025-038_EventCalls into Development
Looks good - ready for QA testing.
2025-07-10 11:23:25 -04:00
2953e977ef C2025-038 Code cleanup to prevent multiple events from being assigned to the same method. 2025-07-10 10:47:06 -04:00
50 changed files with 2760 additions and 1521 deletions

View File

@@ -28,7 +28,9 @@ namespace AT.STO.UI.Win
_dropDownHelper = new DropDownWindowHelper(); _dropDownHelper = new DropDownWindowHelper();
_dropDownHelper.DropDownClosed -= new DropDownClosedEventHandler(DropDownHelper_DropDownClosed);
_dropDownHelper.DropDownClosed += new DropDownClosedEventHandler(DropDownHelper_DropDownClosed); _dropDownHelper.DropDownClosed += new DropDownClosedEventHandler(DropDownHelper_DropDownClosed);
_dropDownHelper.DropDownCancel -= new DropDownCancelEventHandler(DropDownHelper_DropDownCancel);
_dropDownHelper.DropDownCancel += new DropDownCancelEventHandler(DropDownHelper_DropDownCancel); _dropDownHelper.DropDownCancel += new DropDownCancelEventHandler(DropDownHelper_DropDownCancel);
combo.DisplayMember = "Text"; combo.DisplayMember = "Text";
@@ -82,7 +84,9 @@ namespace AT.STO.UI.Win
DropDownForm dropDown = new DropDownForm(_dropDownControl); DropDownForm dropDown = new DropDownForm(_dropDownControl);
dropDown.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing);
dropDown.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing); dropDown.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing);
dropDown.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged);
dropDown.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged); dropDown.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged);
combo.DroppedDown = false; combo.DroppedDown = false;

View File

@@ -49,7 +49,9 @@ namespace AT.STO.UI.Win
{ {
base.OnShown(e); base.OnShown(e);
_control.FinishEditing -= new DropDownValueChangedEventHandler(Ctrl_FinishEditing);
_control.FinishEditing += new DropDownValueChangedEventHandler(Ctrl_FinishEditing); _control.FinishEditing += new DropDownValueChangedEventHandler(Ctrl_FinishEditing);
_control.ValueChanged -= new DropDownValueChangedEventHandler(Ctrl_ValueChanged);
_control.ValueChanged += new DropDownValueChangedEventHandler(Ctrl_ValueChanged); _control.ValueChanged += new DropDownValueChangedEventHandler(Ctrl_ValueChanged);
} }
#endregion #endregion

View File

@@ -39,6 +39,7 @@ namespace AT.STO.UI.Win
public DropDownWindowHelper() public DropDownWindowHelper()
{ {
_filter = new DropDownMessageFilter(this); _filter = new DropDownMessageFilter(this);
_filter.DropDownCancel -= new DropDownCancelEventHandler(Popup_Cancel);
_filter.DropDownCancel += new DropDownCancelEventHandler(Popup_Cancel); _filter.DropDownCancel += new DropDownCancelEventHandler(Popup_Cancel);
} }
#endregion #endregion

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -735,23 +735,27 @@ namespace RODBInterface
else else
parentValue = nd.InnerText; parentValue = nd.InnerText;
//applicValues = ""; if (parentName != "#whitespace")
applicValues = string.Format("<APL DefaultVal={0}", parentValue);
int pcChildIdx = 0;
//C2022-001 only save the child ro value in the RO.FST if it is different than the parent (default) value
foreach (string c in pcChildern)
{ {
//string csufx = CvtUserFldToFld(c); //applicValues = "";
pcChildIdx++; applicValues = string.Format("<APL DefaultVal={0}", parentValue);
string csufx = string.Format("_PCCHILD{0}", pcChildIdx); int pcChildIdx = 0;
//applicValues += ","; //C2022-001 only save the child ro value in the RO.FST if it is different than the parent (default) value
XmlNode cn = elmnode.SelectSingleNode(parentName + csufx);
if (cn == null || cn.InnerText.Length == 0) // B2024-004 use Parent value if Child text length is zero foreach (string c in pcChildern)
applicValues += string.Format(",UnitIdx={0} Value={1}", pcChildIdx, parentValue); // use parent value as default
else
{ {
if (parentValue != cn.InnerText) //string csufx = CvtUserFldToFld(c);
applicValues += string.Format(",UnitIdx={0} Value={1}", pcChildIdx, cn.InnerText); pcChildIdx++;
string csufx = string.Format("_PCCHILD{0}", pcChildIdx);
//applicValues += ",";
XmlNode cn = elmnode.SelectSingleNode(parentName + csufx);
if (cn == null || cn.InnerText.Length == 0) // B2024-004 use Parent value if Child text length is zero
applicValues += string.Format(",UnitIdx={0} Value={1}", pcChildIdx, parentValue); // use parent value as default
else
{
if (parentValue != cn.InnerText)
applicValues += string.Format(",UnitIdx={0} Value={1}", pcChildIdx, cn.InnerText);
}
} }
} }
applicValues += " /APL>"; applicValues += " /APL>";

View File

@@ -0,0 +1,203 @@
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;
using VEPROMS.CSLA.Library;
namespace VEPROMS
{
// C2025-027 Annotation Type Filtering
public partial class dlgAnnotationsSelect : Form
{
public dlgAnnotationsSelect()
{
InitializeComponent();
}
public dlgAnnotationsSelect(string userid)
{
InitializeComponent();
UserID = userid;
}
private int _MyItemID;
public int MyItemID
{
get { return _MyItemID; }
set { _MyItemID = value; }
}
private string _UserID;
public string UserID
{
get { return _UserID; }
set { _UserID = value; }
}
private void btnSelect_Click(object sender, EventArgs e)
{
MoveSelectedItems(lstUnselected, lstSelected);
}
// Move selected items to lstUnselected.
private void btnDeselect_Click(object sender, EventArgs e)
{
MoveSelectedItems(lstSelected, lstUnselected);
}
// Move selected items from one ListBox to another.
private void MoveSelectedItems(ListBox lstFrom, ListBox lstTo)
{
while (lstFrom.SelectedItems.Count > 0)
{
lstSelected.DisplayMember = "NameStr";
lstSelected.ValueMember = "TypeID";
AnnotataionItem item = (AnnotataionItem)lstFrom.SelectedItems[0];
lstTo.Items.Add(new AnnotataionItem(item.NameStr, item.TypeID));
lstFrom.Items.Remove(item);
}
SetButtonsEditable();
btnUpdate.Enabled = true;
}
// Move all items to lstSelected.
private void btnSelectAll_Click(object sender, EventArgs e)
{
MoveAllItems(lstUnselected, lstSelected);
btnUpdate.Enabled = true;
}
// Move all items to lstUnselected.
private void btnDeselectAll_Click(object sender, EventArgs e)
{
MoveAllItems(lstSelected, lstUnselected);
btnUpdate.Enabled = true;
}
// Move all items from one ListBox to another.
private void MoveAllItems(ListBox lstFrom, ListBox lstTo)
{
lstTo.Items.AddRange(lstFrom.Items);
lstFrom.Items.Clear();
SetButtonsEditable();
btnUpdate.Enabled = true;
}
// Enable and disable buttons.
private void lst_SelectedIndexChanged(object sender, EventArgs e)
{
SetButtonsEditable();
}
// Save selected list to DB.
private void btnUpdate_Click(object sender, EventArgs e)
{
saveChanges();
}
public class AnnotataionItem
{
private string _NameStr;
private int _TypeID;
public AnnotataionItem(string NameStr, int TypeID)
{
this._NameStr = NameStr;
this._TypeID = TypeID;
}
public string NameStr
{
get
{
return _NameStr;
}
}
public int TypeID
{
get
{
return _TypeID;
}
}
}
// Enable and disable buttons.
private void SetButtonsEditable()
{
btnSelect.Enabled = (lstUnselected.SelectedItems.Count > 0);
btnSelectAll.Enabled = (lstUnselected.Items.Count > 0);
btnDeselect.Enabled = (lstSelected.SelectedItems.Count > 0);
btnDeselectAll.Enabled = (lstSelected.Items.Count > 0);
}
private void DlgAnnotationsSelect_Load(object sender, EventArgs e)
{
lstUnselected.DisplayMember = "NameStr";
lstUnselected.ValueMember = "TypeID";
SetButtonsEditable();
DataTable AnnoType = AnnotationstypeSelections.GetAnnoTypes(UserID);
foreach (DataRow dr in AnnoType.Rows)
{
lstUnselected.Items.Add(new AnnotataionItem(dr["Name"].ToString(), (int)dr["TypeID"]));
}
lstSelected.DisplayMember = "NameStr";
lstSelected.ValueMember = "TypeID";
DataTable lstSelectedTbl = VEPROMS.CSLA.Library.AnnotationstypeSelections.Retrieve(UserID);
foreach (DataRow lstSelectedRow in lstSelectedTbl.Rows)
{
lstSelected.Items.Add(new AnnotataionItem(lstSelectedRow["Name"].ToString(), (int)lstSelectedRow["TypeID"]));
}
btnUpdate.Enabled = false;
}
private void btnCancel_Click_1(object sender, EventArgs e)
{
if (btnUpdate.Enabled == true)
{
string message = "Changes have not yet been saved. Do you want to save the changes prior to closing?";
string title = "Save Annotation Selections";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
DialogResult result = MessageBox.Show(message, title, buttons);
if (result == DialogResult.Yes)
{
saveChanges();
this.Close();
}
else
{
this.Close();
}
}
else
{
this.Close();
}
}
private DataTable coverToTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("TypeID", typeof(Int32));
foreach (AnnotataionItem item in lstSelected.Items.OfType<AnnotataionItem>())
{
dt.Rows.Add(item.TypeID);
}
return dt;
}
private void saveChanges()
{
DataTable dt2 = coverToTable();
VEPROMS.CSLA.Library.AnnotationstypeSelections.Update(dt2, UserID);
btnUpdate.Enabled = false;
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -66,6 +66,12 @@ namespace VEPROMS
set { _prtSectID = value; } set { _prtSectID = value; }
} }
private bool _OverwritePDF;
public bool OverwritePDF
{
get { return cbxOverwritePDF2.Checked; }
set { cbxOverwritePDF2.Checked = value; }
}
// C2018-033 Used to turn off using the date/time PDF file prefix and suffix when doing batch file autmatic baseline print testing (frmVEPROMS.cs RunAutomatic()) // C2018-033 Used to turn off using the date/time PDF file prefix and suffix when doing batch file autmatic baseline print testing (frmVEPROMS.cs RunAutomatic())
// This is needed so the the automatic baselines can compare results from different runs of PROMS // This is needed so the the automatic baselines can compare results from different runs of PROMS
@@ -393,6 +399,7 @@ namespace VEPROMS
{ {
SetupForProcedure(); SetupForProcedure();
_MyTimer = new Timer(); _MyTimer = new Timer();
_MyTimer.Tick -= new EventHandler(_MyTimer_Tick);
_MyTimer.Tick += new EventHandler(_MyTimer_Tick); _MyTimer.Tick += new EventHandler(_MyTimer_Tick);
_MyTimer.Interval = 100; _MyTimer.Interval = 100;
_MyTimer.Enabled = true; _MyTimer.Enabled = true;

View File

@@ -1,5 +1,3 @@
Set NoCount On; Set NoCount On;
If (db_name() in('master','model','msdn','tempdb')) If (db_name() in('master','model','msdn','tempdb'))
@@ -13637,8 +13635,8 @@ WITH EXECUTE AS OWNER
AS AS
BEGIN TRY -- Try Block BEGIN TRY -- Try Block
BEGIN TRANSACTION BEGIN TRANSACTION
Update Contents set Text = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Text,'\emdash','\u8209?'),'\endash','\u8209?'),'\u8213?','\u8209?'),'\u8212?','\u8209?'),'\u8211?','\u8209?'),'\u8210?','\u8209?'),'\u8208?','\u8209?') Update Contents set Text = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Text,'\emdash','\u8209?'),'\endash','\u8209?'),'\u8213?','\u8209?'),'\u8212?','\u8209?'),'\u8211?','\u8209?'),'\u8210?','\u8209?'),'\u8208?','\u8209?'),NCHAR(8209),'\u8209?')
where Text Like '%\u8208?%' or Text Like '%\u8210?%' or Text Like '%\u8211?%' or Text Like '%\u8212?%' or Text Like '%\u8213?%' or Text Like '%\endash%' or Text Like '%\emdash%' where Text Like '%\u8208?%' or Text Like '%\u8210?%' or Text Like '%\u8211?%' or Text Like '%\u8212?%' or Text Like '%\u8213?%' or Text Like '%\endash%' or Text Like '%\emdash%'or Text Like '%' + NCHAR(8209) + '%' IF( @@TRANCOUNT > 0 ) COMMIT
IF( @@TRANCOUNT > 0 ) COMMIT IF( @@TRANCOUNT > 0 ) COMMIT
END TRY END TRY
BEGIN CATCH -- Catch Block BEGIN CATCH -- Catch Block
@@ -17322,7 +17320,7 @@ GO
[RofstID] [int] NOT NULL, [RofstID] [int] NOT NULL,
[roid] [varchar](50) NOT NULL, [roid] [varchar](50) NOT NULL,
[value] [varchar](max) NOT NULL, [value] [varchar](max) NOT NULL,
[AccPageID] [varchar](max) NULL, [AccPageID] [varchar](100) NULL,
CONSTRAINT [PK_RofstDefaultValue] PRIMARY KEY CLUSTERED CONSTRAINT [PK_RofstDefaultValue] PRIMARY KEY CLUSTERED
( (
[RofstID] ASC, [RofstID] ASC,
@@ -18919,9 +18917,10 @@ GO
Copyright 2020 - Volian Enterprises, Inc. All rights reserved. Copyright 2020 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/ *****************************************************************************/
/* /*
========================================================================================================== ==========================================================================================================
Author: Jake Ropar Author: Jake Ropar / Matthew Schill
Create Date: 06/23/2022 Create Date: 06/23/2022
Modify Date: 08/18/2025
Description: Finalizes Rofst Header Record / Updates LoadedDate if Success Description: Finalizes Rofst Header Record / Updates LoadedDate if Success
========================================================================================================== ==========================================================================================================
*/ */
@@ -18938,13 +18937,18 @@ GO
Set LoadedDate = GetDate() Set LoadedDate = GetDate()
Where RofstID = @RofstID; Where RofstID = @RofstID;
--always rebuild the rofst child and default indexes
DBCC DBREINDEX ('RofstChild');
DBCC DBREINDEX ('RofstDefaultValue');
-- Rebuild/Reorganize Indexes -- Rebuild/Reorganize Indexes
Exec [dbo].[vesp_UtilityCheckIndexes] 20.0, 5.0, 0, 1; Exec [dbo].[vesp_UtilityCheckIndexes] 20.0, 5.0, 0, 1;
Return; Return;
End End
Go GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstHeaderFinalizeLoad] Succeeded' IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstHeaderFinalizeLoad] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstHeaderFinalizeLoad] Error on Creation' ELSE PRINT 'Procedure Creation: [vesp_RofstHeaderFinalizeLoad] Error on Creation'
@@ -24026,7 +24030,7 @@ Begin -- Rofst Tables
CONSTRAINT [PK_EPFormats] PRIMARY KEY CLUSTERED CONSTRAINT [PK_EPFormats] PRIMARY KEY CLUSTERED
( (
[FormatID] ASC [FormatID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
IF (@@Error = 0) PRINT 'Table Creation: [EPFormats] Succeeded' IF (@@Error = 0) PRINT 'Table Creation: [EPFormats] Succeeded'
@@ -24035,6 +24039,7 @@ Begin -- Rofst Tables
End End
Go Go
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_UpdateEPFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_UpdateEPFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [vesp_UpdateEPFormat]; DROP PROCEDURE [vesp_UpdateEPFormat];
GO GO
@@ -24075,6 +24080,217 @@ ELSE
GO GO
-- C2025-027 Annotation Type Filtering
/****** Object: Table [dbo].[AnnotationTypeSelections] Script Date: 7/10/2025 2:38:23 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Paul Larsen
-- Create date: 07/10/2025
-- Description: Store user Annotation selections for annotation filter.
-- =============================================
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AnnotationTypeSelections]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[AnnotationTypeSelections](
[ASTypeID] [int] IDENTITY(1,1) NOT NULL,
[TypeID] [int] NULL,
[UserID] [varchar](50) NULL,
[LastChanged] [datetime] NULL,
CONSTRAINT [PK_AnnotationTypeSelections] PRIMARY KEY CLUSTERED
([ASTypeID] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
IF OBJECT_ID('DF_AnnotationTypeSelections_LastChanged', 'D') IS NULL
ALTER TABLE AnnotationTypeSelections ADD CONSTRAINT [DF_AnnotationTypeSelections_LastChanged] DEFAULT (getdate()) for [LastChanged];
GO
IF EXISTS (SELECT * FROM sys.indexes WHERE name='idx_AnnotationTypeSelections_UserIDTypeID'
AND object_id = OBJECT_ID('[dbo].[AnnotationTypeSelections]'))
begin
DROP INDEX [idx_AnnotationTypeSelections_UserIDTypeID] ON [dbo].[AnnotationTypeSelections];
end
CREATE UNIQUE INDEX [idx_AnnotationTypeSelections_UserIDTypeID] ON [dbo].[AnnotationTypeSelections]
(
[UserID] ASC,
[TypeID] ASC
)
INCLUDE (ASTypeID)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
-- C2025-027 Annotation Type Filtering
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationSelectListTypes]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getAnnotationSelectListTypes];
GO
-- =============================================
-- Author: Paul Larsen
-- Create date: 7/10/2025
-- Description: Retrieve Annotation Types not added to Annotation type filtering by user.
-- =============================================
CREATE PROCEDURE [dbo].[getAnnotationSelectListTypes]
(
@UserID varchar(50)
)
WITH EXECUTE AS OWNER
AS
SELECT
AT.[TypeID],
AT.[Name],
AT.[Config],
AT.[DTS],
AT.[UserID],
AT.[LastChanged],
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]= AT.[TypeID]) [AnnotationCount],
AT.[IsEPAnnotationType]
FROM [AnnotationTypes] AT
LEFT OUTER JOIN AnnotationTypeSelections ATS
ON ATS.TypeID = AT.TypeID AND ATS.UserID = @UserID
WHERE ATS.ASTypeID IS NULL
GO
-- C2025-027 Annotation Type Filtering
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationstypeSelections]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getAnnotationstypeSelections];
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Paul Larsen
-- Create date: 07/10/2025
-- Description: Retrieve Current Annotation Types
-- =============================================
CREATE PROC [dbo].[getAnnotationstypeSelections]
(
@UsrID varchar(50)
)
AS
BEGIN
SELECT [ASTypeID]
,ATS.[TypeID]
,ATS.[UserID]
,AT.[Name]
,AT.[Config]
,ATS.[LastChanged]
,AT.[UserID]
,AT.[IsEPAnnotationType]
FROM [dbo].[AnnotationTypeSelections] ATS
INNER JOIN AnnotationTypes AT ON AT.TypeID = ATS.TypeID
WHERE ATS.UserID = @UsrID
END
GO
-- C2025-027 Annotation Type Filtering
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationstypeFiltered]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getAnnotationstypeFiltered];
GO
-- =============================================
-- Author: Paul Larsen
-- Create date: 07/10/2025
-- Description: Retrieve Current Annotation Types
-- =============================================
CREATE PROC [dbo].[getAnnotationstypeFiltered]
(
@UsrID varchar(50)
)
AS
BEGIN
IF((SELECT count(TypeID) FROM AnnotationTypeSelections WHERE UserID = @UsrID) > 0)
BEGIN
SELECT [ASTypeID]
,ATS.[TypeID]
,ATS.[UserID]
,AT.[Name]
,AT.[Config]
,ATS.[LastChanged]
,AT.[UserID]
,AT.[IsEPAnnotationType]
FROM [dbo].[AnnotationTypeSelections] ATS
INNER JOIN AnnotationTypes AT ON AT.TypeID = ATS.TypeID
WHERE ATS.UserID = @UsrID
END
ELSE
BEGIN
SELECT
[TypeID],
[Name],
[Config],
[DTS],
[UserID],
[LastChanged],
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount],
[IsEPAnnotationType]
FROM [AnnotationTypes]
END
END
GO
-- C2025-027 Annotation Type Filtering
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[UpdateAnnotationstypeSelections]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [UpdateAnnotationstypeSelections];
-- Need to drop UpdateAnnotationstypeSelections SP first so script can drop and recreate the TableValAnnotTypeSelections table type
IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.DOMAINS WHERE Domain_Name = 'TableValAnnotTypeSelections' )
DROP TYPE [dbo].[TableValAnnotTypeSelections]
CREATE TYPE [dbo].[TableValAnnotTypeSelections] AS TABLE(
[TypeID] [int] NOT NULL
)
GO
/****** Object: StoredProcedure [dbo].[UpdateAnnotationstypeSelections] Script Date: 7/21/2025 8:51:42 PM ******/
-- =============================================
-- Author: Paul Larsen
-- Create date: 07/21/2025
-- Description: Manage user choice annotation types
-- =============================================
CREATE PROC [dbo].[UpdateAnnotationstypeSelections]
(
@TempTable AS dbo.TableValAnnotTypeSelections READONLY,
@UserID [varchar](50) NULL
)
AS
BEGIN
DELETE FROM AnnotationTypeSelections where UserID = @UserID
AND
TypeID not in
(Select TypeID From @TempTable tmp)
--this would insert all the ones that are in the uploaded table and not already in AnnotationTypeSelections
Insert INTO AnnotationTypeSelections (TypeID, UserID)
Select tmp.TypeID, @UserID
FROM
@TempTable tmp
LEFT OUTER JOIN
AnnotationTypeSelections ATS on ATS.TypeID = tmp.TypeID
AND ATS.UserID = @UserID
where
ATS.ASTypeID IS NULL
END
GO
IF (@@Error = 0) PRINT 'Running vesp_UpdateEPFormat Succeeded' IF (@@Error = 0) PRINT 'Running vesp_UpdateEPFormat Succeeded'
ELSE PRINT 'Running vesp_UpdateEPFormat Failed to Execute' ELSE PRINT 'Running vesp_UpdateEPFormat Failed to Execute'
GO GO
@@ -24083,6 +24299,56 @@ Go
--- end changes for: --- end changes for:
---C2025-023 - Electronic Procedures - Modifications to PROMS ---C2025-023 - Electronic Procedures - Modifications to PROMS
/*
==========================================================================================================
Begin: C2025-045: Improve Performance loading procedures with Alarms
==========================================================================================================
*/
IF Exists(SELECT 1 from information_schema.columns where character_maximum_length=-1 and column_name = 'AccPageID' and table_name = 'RofstDefaultValue')
Begin
ALTER TABLE RofstDefaultValue ALTER COLUMN AccPageID varchar(100)
END
GO
IF (@@Error = 0) PRINT 'Updating size of RofstDefaultValue.AccPageID Succeeded'
ELSE PRINT 'Updating size of RofstDefaultValue.AccPageID Failed to Execute'
GO
EXEC sp_refreshview [dbo.vwRofstData_RofstDefaultValues]
EXEC sp_refreshview [dbo.vwRofstData_RofstBaseRoids]
GO
IF (@@Error = 0) PRINT 'Refreshing views: (vwRofstData_RofstDefaultValues,vwRofstData_RofstBaseRoids) Succeeded'
ELSE PRINT 'Refreshing views: (vwRofstData_RofstDefaultValues,vwRofstData_RofstBaseRoids) Failed to Execute'
GO
IF NOT EXISTS (SELECT * FROM dbo.sysindexes WHERE name = 'IX_RofstDefaultValue_RofstID_AccPageID')
BEGIN
CREATE NONCLUSTERED INDEX [IX_RofstDefaultValue_RofstID_AccPageID] ON [dbo].[RofstDefaultValue]
(
[RofstID] ASC,
[AccPageID] ASC
)
INCLUDE
(
[roid]
,[value]
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
END
GO
IF (@@Error = 0) PRINT 'Adding Index IX_RofstDefaultValue_RofstID_AccPageID Succeeded'
ELSE PRINT 'Adding Index IX_RofstDefaultValue_RofstID_AccPageID Failed to Execute'
GO
/*
==========================================================================================================
End: C2025-045: Improve Performance loading procedures with Alarms
==========================================================================================================
*/
/* /*
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
@@ -24117,8 +24383,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255) DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255) DECLARE @RevDescription varchar(255)
set @RevDate = '6/20/2025 3:07 PM' set @RevDate = '08/18/2025 2:07 PM'
set @RevDescription = 'Annotation Support' set @RevDescription = 'Updated Index maintenance that occurs after RO FST Load to improve RO Performance'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription

View File

@@ -111,10 +111,6 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath> <HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference> </Reference>
<Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\Ionic\Ionic.Zip.dll</HintPath>
</Reference>
<Reference Include="Itenso.Rtf.Interpreter"> <Reference Include="Itenso.Rtf.Interpreter">
<HintPath>..\..\..\..\3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Interpreter.dll</HintPath> <HintPath>..\..\..\..\3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Interpreter.dll</HintPath>
</Reference> </Reference>
@@ -133,6 +129,8 @@
<Reference Include="System.Deployment" /> <Reference Include="System.Deployment" />
<Reference Include="System.Design" /> <Reference Include="System.Design" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Runtime.Remoting" /> <Reference Include="System.Runtime.Remoting" />
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" /> <Reference Include="System.Web.Extensions" />
@@ -152,6 +150,17 @@
<DependentUpon>AboutVEPROMS.cs</DependentUpon> <DependentUpon>AboutVEPROMS.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="BookMarks.cs" /> <Compile Include="BookMarks.cs" />
<Compile Include="dlgAnnotationsSelect.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgAnnotationsSelect.Designer.cs">
<DependentUpon>dlgAnnotationsSelect.cs</DependentUpon>
</Compile>
<Compile Include="dlgAnnotationsSelect.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>dlgAnnotationsSelect.resx</DependentUpon>
</Compile>
<Compile Include="dlgApproveProcedure.cs"> <Compile Include="dlgApproveProcedure.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@@ -340,6 +349,10 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<DependentUpon>AboutVEPROMS.cs</DependentUpon> <DependentUpon>AboutVEPROMS.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="dlgAnnotationsSelect.resx">
<DependentUpon>dlgAnnotationsSelect.cs</DependentUpon>
<Generator>ResXFileCodeGenerator</Generator>
</EmbeddedResource>
<EmbeddedResource Include="dlgMSWordMessage.resx"> <EmbeddedResource Include="dlgMSWordMessage.resx">
<DependentUpon>dlgMSWordMessage.cs</DependentUpon> <DependentUpon>dlgMSWordMessage.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>

View File

@@ -0,0 +1,229 @@

namespace VEPROMS
{
partial class dlgAnnotationsSelect
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lstUnselected = new System.Windows.Forms.ListBox();
this.lstSelected = new System.Windows.Forms.ListBox();
this.btnSelect = new System.Windows.Forms.Button();
this.btnSelectAll = new System.Windows.Forms.Button();
this.btnDeselectAll = new System.Windows.Forms.Button();
this.btnDeselect = new System.Windows.Forms.Button();
this.btnUpdate = new System.Windows.Forms.Button();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.btnCancel = new System.Windows.Forms.Button();
this.lblMessage = new System.Windows.Forms.Label();
this.lblAvailableTypes = new System.Windows.Forms.Label();
this.lblSelected = new System.Windows.Forms.Label();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// lstUnselected
//
this.lstUnselected.Dock = System.Windows.Forms.DockStyle.Fill;
this.lstUnselected.FormattingEnabled = true;
this.lstUnselected.IntegralHeight = false;
this.lstUnselected.ItemHeight = 16;
this.lstUnselected.Location = new System.Drawing.Point(3, 3);
this.lstUnselected.Name = "lstUnselected";
this.tableLayoutPanel1.SetRowSpan(this.lstUnselected, 4);
this.lstUnselected.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
this.lstUnselected.Size = new System.Drawing.Size(287, 347);
this.lstUnselected.TabIndex = 0;
this.lstUnselected.SelectedIndexChanged += new System.EventHandler(this.lst_SelectedIndexChanged);
//
// lstSelected
//
this.lstSelected.Dock = System.Windows.Forms.DockStyle.Fill;
this.lstSelected.FormattingEnabled = true;
this.lstSelected.IntegralHeight = false;
this.lstSelected.ItemHeight = 16;
this.lstSelected.Location = new System.Drawing.Point(334, 3);
this.lstSelected.Name = "lstSelected";
this.tableLayoutPanel1.SetRowSpan(this.lstSelected, 4);
this.lstSelected.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
this.lstSelected.Size = new System.Drawing.Size(288, 347);
this.lstSelected.TabIndex = 1;
this.lstSelected.SelectedIndexChanged += new System.EventHandler(this.lst_SelectedIndexChanged);
//
// btnSelect
//
this.btnSelect.Anchor = System.Windows.Forms.AnchorStyles.None;
this.btnSelect.Location = new System.Drawing.Point(298, 32);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(28, 23);
this.btnSelect.TabIndex = 2;
this.btnSelect.Text = ">";
this.btnSelect.UseVisualStyleBackColor = true;
this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
//
// btnSelectAll
//
this.btnSelectAll.Anchor = System.Windows.Forms.AnchorStyles.None;
this.btnSelectAll.Location = new System.Drawing.Point(296, 120);
this.btnSelectAll.Name = "btnSelectAll";
this.btnSelectAll.Size = new System.Drawing.Size(32, 23);
this.btnSelectAll.TabIndex = 3;
this.btnSelectAll.Text = ">>";
this.btnSelectAll.UseVisualStyleBackColor = true;
this.btnSelectAll.Click += new System.EventHandler(this.btnSelectAll_Click);
//
// btnDeselectAll
//
this.btnDeselectAll.Anchor = System.Windows.Forms.AnchorStyles.None;
this.btnDeselectAll.Location = new System.Drawing.Point(297, 207);
this.btnDeselectAll.Name = "btnDeselectAll";
this.btnDeselectAll.Size = new System.Drawing.Size(30, 26);
this.btnDeselectAll.TabIndex = 5;
this.btnDeselectAll.Text = "<<";
this.btnDeselectAll.UseVisualStyleBackColor = true;
this.btnDeselectAll.Click += new System.EventHandler(this.btnDeselectAll_Click);
//
// btnDeselect
//
this.btnDeselect.Anchor = System.Windows.Forms.AnchorStyles.None;
this.btnDeselect.Location = new System.Drawing.Point(298, 297);
this.btnDeselect.Name = "btnDeselect";
this.btnDeselect.Size = new System.Drawing.Size(28, 23);
this.btnDeselect.TabIndex = 4;
this.btnDeselect.Text = "<";
this.btnDeselect.UseVisualStyleBackColor = true;
this.btnDeselect.Click += new System.EventHandler(this.btnDeselect_Click);
//
// btnUpdate
//
this.btnUpdate.Anchor = System.Windows.Forms.AnchorStyles.None;
this.btnUpdate.Location = new System.Drawing.Point(536, 422);
this.btnUpdate.Name = "btnUpdate";
this.btnUpdate.Size = new System.Drawing.Size(100, 35);
this.btnUpdate.TabIndex = 8;
this.btnUpdate.Text = "Save";
this.btnUpdate.UseVisualStyleBackColor = true;
this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click);
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 38F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.Controls.Add(this.lstUnselected, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.lstSelected, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.btnDeselect, 1, 3);
this.tableLayoutPanel1.Controls.Add(this.btnDeselectAll, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.btnSelect, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.btnSelectAll, 1, 1);
this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 62);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 4;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(625, 353);
this.tableLayoutPanel1.TabIndex = 6;
//
// btnCancel
//
this.btnCancel.Location = new System.Drawing.Point(411, 422);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(100, 35);
this.btnCancel.TabIndex = 9;
this.btnCancel.Text = "Close";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click_1);
//
// lblMessage
//
this.lblMessage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblMessage.Location = new System.Drawing.Point(43, 12);
this.lblMessage.Name = "lblMessage";
this.lblMessage.Size = new System.Drawing.Size(317, 16);
this.lblMessage.TabIndex = 10;
this.lblMessage.Text = "Updates will appear when PROMS is restarted.";
//
// lblAvailableTypes
//
this.lblAvailableTypes.AutoSize = true;
this.lblAvailableTypes.Location = new System.Drawing.Point(12, 43);
this.lblAvailableTypes.Name = "lblAvailableTypes";
this.lblAvailableTypes.Size = new System.Drawing.Size(110, 16);
this.lblAvailableTypes.TabIndex = 11;
this.lblAvailableTypes.Text = "Types Available ";
//
// lblSelected
//
this.lblSelected.AutoSize = true;
this.lblSelected.Location = new System.Drawing.Point(343, 43);
this.lblSelected.Name = "lblSelected";
this.lblSelected.Size = new System.Drawing.Size(104, 16);
this.lblSelected.TabIndex = 12;
this.lblSelected.Text = "Types Selected";
//
// dlgAnnotationsSelect
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(653, 466);
this.Controls.Add(this.lblSelected);
this.Controls.Add(this.lblAvailableTypes);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.btnUpdate);
this.Controls.Add(this.lblMessage);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Name = "dlgAnnotationsSelect";
this.Text = "Filter Annotation Types";
this.Load += new System.EventHandler(this.DlgAnnotationsSelect_Load);
this.tableLayoutPanel1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ListBox lstUnselected;
private System.Windows.Forms.ListBox lstSelected;
private System.Windows.Forms.Button btnSelect;
private System.Windows.Forms.Button btnSelectAll;
private System.Windows.Forms.Button btnDeselectAll;
private System.Windows.Forms.Button btnDeselect;
private System.Windows.Forms.Button btnUpdate;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Label lblMessage;
private System.Windows.Forms.Label lblAvailableTypes;
private System.Windows.Forms.Label lblSelected;
}
}

View File

@@ -65,11 +65,13 @@ namespace VEPROMS
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing _MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave; ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave;
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
_MyDocVersion = myDocVersion; _MyDocVersion = myDocVersion;
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list _MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
InitializeComponent(); InitializeComponent();
FlexGridAddEvents(); FlexGridAddEvents();
_MyApproval.StatusUpdated -= new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated);
_MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated); _MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated);
SetupComboBoxes(); SetupComboBoxes();
foreach (ProcedureInfo pi in myDocVersion.Procedures) foreach (ProcedureInfo pi in myDocVersion.Procedures)
@@ -101,6 +103,7 @@ namespace VEPROMS
//fgProcs.SetupEditor += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_SetupEditor); //fgProcs.SetupEditor += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_SetupEditor);
//fgProcs.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_StartEdit); //fgProcs.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_StartEdit);
//fgProcs.ValidateEdit += new C1.Win.C1FlexGrid.ValidateEditEventHandler(fgProcs_ValidateEdit); //fgProcs.ValidateEdit += new C1.Win.C1FlexGrid.ValidateEditEventHandler(fgProcs_ValidateEdit);
fgProcs.ComboCloseUp -= new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_ComboCloseUp);
fgProcs.ComboCloseUp += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_ComboCloseUp); fgProcs.ComboCloseUp += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_ComboCloseUp);
//fgProcs.MouseDown += new MouseEventHandler(fgProcs_MouseDown); //fgProcs.MouseDown += new MouseEventHandler(fgProcs_MouseDown);
//fgProcs.MouseUp += new MouseEventHandler(fgProcs_MouseUp); //fgProcs.MouseUp += new MouseEventHandler(fgProcs_MouseUp);
@@ -275,6 +278,7 @@ namespace VEPROMS
{ {
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing _MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
_MyDocVersion = myDocVersion; _MyDocVersion = myDocVersion;
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list _MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
@@ -295,6 +299,7 @@ namespace VEPROMS
{ {
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing _MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
_MyDocVersion = myProcedure.MyDocVersion; _MyDocVersion = myProcedure.MyDocVersion;
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list _MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
@@ -450,6 +455,7 @@ namespace VEPROMS
int checkedCount = clbMore.CheckedItems.Count; int checkedCount = clbMore.CheckedItems.Count;
string oldLabel = lblMore.Text; string oldLabel = lblMore.Text;
pbMore.Visible = true; pbMore.Visible = true;
ItemInfoList.ConsistencyCheckUpdated -= new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated);
ItemInfoList.ConsistencyCheckUpdated += new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated); ItemInfoList.ConsistencyCheckUpdated += new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated);
List<ProcedureInfo> myProcs = new List<ProcedureInfo>(); List<ProcedureInfo> myProcs = new List<ProcedureInfo>();
// B2018-136 use the list of procedures that have checkboxes and are checked (right panel) instead of the list to be approved (left panel) // B2018-136 use the list of procedures that have checkboxes and are checked (right panel) instead of the list to be approved (left panel)
@@ -1303,7 +1309,7 @@ namespace VEPROMS
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
if (si.IsApproved == 1) if (si.IsApproved == 1)
{ {
dlgExportImport dlg = new dlgExportImport("Export", pi, MyFrmVEPROMS, (E_UCFImportOptions)0); // "true tell export to convert ROs and Transitions to text dlgExportImport dlg = new dlgExportImport("Export", pi, MyFrmVEPROMS, (E_UCFImportOptions)0, selectedSlave); // "true tell export to convert ROs and Transitions to text
dlg.DocReplace = frm.DocReplace; // this tells approval to prepare an export file with resolved transitions and ROs, word sections are saved with resolved ROs during approval PDF creation and saved in DocReplace dlg.DocReplace = frm.DocReplace; // this tells approval to prepare an export file with resolved transitions and ROs, word sections are saved with resolved ROs during approval PDF creation and saved in DocReplace
System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
dlg.ExportItem(xd, pi, "procedure"); dlg.ExportItem(xd, pi, "procedure");

View File

@@ -7,7 +7,7 @@ using Volian.Controls.Library;
using Volian.Base.Library; using Volian.Base.Library;
using System.Xml; using System.Xml;
using System.IO; using System.IO;
using Ionic.Zip; using System.IO.Compression;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using JR.Utils.GUI.Forms; using JR.Utils.GUI.Forms;
using System.Linq; using System.Linq;
@@ -188,14 +188,13 @@ namespace VEPROMS
if (MyFolder != null) if (MyFolder != null)
{ {
sfd.FileName = string.Format("{0}-{1}.expx", Database.ActiveDatabase, MyFolder.Name); sfd.FileName = string.Format("{0}-{1}.expx", Database.ActiveDatabase, MyFolder.Name);
if (sfd.ShowDialog(this) == DialogResult.OK && sfd.FileName != string.Empty) if (sfd.ShowDialog(this) == DialogResult.OK && sfd.FileName != string.Empty)
{ {
txtExport.Text = sfd.FileName; txtExport.Text = sfd.FileName;
if (File.Exists(txtExport.Text)) if (File.Exists(txtExport.Text))
File.Delete(txtExport.Text); File.Delete(txtExport.Text);
MyExpxZipFile = new ZipFile(txtExport.Text, Encoding.UTF8); MyExpZipFileName = txtExport.Text;
MyExpxZipFile.Save(); }
}
} }
else if (MyProcedure != null) else if (MyProcedure != null)
{ {
@@ -211,8 +210,8 @@ namespace VEPROMS
else else
lblExportStatus.Text = "Awaiting Export File Name:"; lblExportStatus.Text = "Awaiting Export File Name:";
} }
private ZipFile MyExpxZipFile = null; private string MyExpZipFileName = null;
private ZipFile MyImpxZipFile = null; private string MyImpZipFileName = null;
private DateTime MyStart; private DateTime MyStart;
private bool successfullExport = true; private bool successfullExport = true;
@@ -892,84 +891,94 @@ namespace VEPROMS
} }
private bool LoadImportDataDocument() private bool LoadImportDataDocument()
{ {
floatFoldout = new Dictionary<int, int>(); using (FileStream zipToOpen = new FileStream(MyExpZipFileName, FileMode.OpenOrCreate))
ZipEntry ze = MyExpxZipFile[0];
string fn = PEIPath + @"\" + ze.FileName;
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
XmlDocument xd = new XmlDocument();
xd.Load(fn);
bool didImp = LoadFormats(xd, "folder/formats/format");
if (!didImp)
{ {
this.Cursor = Cursors.Default; using (ZipArchive MyExpxZipFile = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
this.btnImport.Enabled = true; // allow user to select a different export file to import
this.btnDoImport.Enabled = true; // allow user to change mind and perform the import
return false; // Return False to Indicate that the Import did not succeed
}
string name = xd.DocumentElement.Attributes.GetNamedItem("name").InnerText;
Folder ff = AddFolder(Folder.Get(MyFolder.FolderID), xd, name);
if (ff == null)
{
// C2020-032: Import Procedure set when existing name exists, allow user to import with 'Copy (#) of'.
// This is similar functionality to the import of a procedure without the overwrite part.
string msg = string.Format("The procedure set you are importing, {0}, already exists.\n\nDo you want to import {0} as a COPY of the existing set?\n\nThis will prefix the name with \"Copy (#) of\"", name);
DialogResult dr = MessageBox.Show(this, msg, "Create Copy Of Existing Procedure Set", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop);
if (dr == DialogResult.OK)
{ {
string number = ""; floatFoldout = new Dictionary<int, int>();
int max = -1; ZipArchiveEntry ze = MyExpxZipFile.Entries[0];
// get maximum number of existing copies. if (!Directory.Exists(Path.Combine(PEIPath, "folder")))
foreach (FolderInfo fi in MyFolder.ChildFolders) Directory.CreateDirectory(Path.Combine(PEIPath, "folder"));
string fn = Path.Combine(PEIPath, "folder", ze.Name);
ze.ExtractToFile(fn, true);
XmlDocument xd = new XmlDocument();
xd.Load(fn);
bool didImp = LoadFormats(xd, "folder/formats/format");
if (!didImp)
{ {
int indx = fi.Name.IndexOf("Copy ("); this.Cursor = Cursors.Default;
if (indx > -1) this.btnImport.Enabled = true; // allow user to select a different export file to import
{ this.btnDoImport.Enabled = true; // allow user to change mind and perform the import
int indxend = fi.Name.IndexOf(")", indx); return false; // Return False to Indicate that the Import did not succeed
if (indxend > indx)
{
string tmp = fi.Name.Substring(indx + 6, indxend - (indx + 6));
int ii = Convert.ToInt32(tmp);
if (ii > max) max = ii;
}
}
} }
number = max > -1 ? (max + 1).ToString() : "1"; string name = xd.DocumentElement.Attributes.GetNamedItem("name").InnerText;
name = string.Format("Copy ({0}) of {1}", number, name); Folder ff = AddFolder(Folder.Get(MyFolder.FolderID), xd, name);
if (ff == null)
{
// C2020-032: Import Procedure set when existing name exists, allow user to import with 'Copy (#) of'.
// This is similar functionality to the import of a procedure without the overwrite part.
string msg = string.Format("The procedure set you are importing, {0}, already exists.\n\nDo you want to import {0} as a COPY of the existing set?\n\nThis will prefix the name with \"Copy (#) of\"", name);
DialogResult dr = MessageBox.Show(this, msg, "Create Copy Of Existing Procedure Set", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop);
if (dr == DialogResult.OK)
{
string number = "";
int max = -1;
// get maximum number of existing copies.
foreach (FolderInfo fi in MyFolder.ChildFolders)
{
int indx = fi.Name.IndexOf("Copy (");
if (indx > -1)
{
int indxend = fi.Name.IndexOf(")", indx);
if (indxend > indx)
{
string tmp = fi.Name.Substring(indx + 6, indxend - (indx + 6));
int ii = Convert.ToInt32(tmp);
if (ii > max) max = ii;
}
}
}
number = max > -1 ? (max + 1).ToString() : "1";
name = string.Format("Copy ({0}) of {1}", number, name);
ff = AddFolder(Folder.Get(MyFolder.FolderID), xd, name); ff = AddFolder(Folder.Get(MyFolder.FolderID), xd, name);
}
else
return false;
}
_MyNewFolder = FolderInfo.Get(ff.FolderID);
AddAnnotationTypes(xd);
DocVersionInfo dvi = AddDocVersion(ff, xd);
MyDocVersion = dvi;
xd = null;
lblImportStatus.Text = "Creating Procedures...";
Application.DoEvents();
ProcedureInfo pi = null;
pbImportProcedure.Value = 0;
pbImportProcedure.Maximum = MyExpxZipFile.Entries.Count - 1;
if (!Directory.Exists(Path.Combine(PEIPath, "procedures")))
Directory.CreateDirectory(Path.Combine(PEIPath, "procedures"));
for (int i = 1; i < MyExpxZipFile.Entries.Count; i++)
{
ze = MyExpxZipFile.Entries[i];
fn = Path.Combine(PEIPath, "procedures", ze.Name);
ze.ExtractToFile(fn, true);
xd = new XmlDocument();
xd.Load(fn);
pi = AddProcedure(xd.DocumentElement, dvi, pi);
GC.Collect(); // need to cleanup memory after importing each procedure due to use of Regular Expressions in processing RO and Transition links
}
DirectoryInfo di = new DirectoryInfo(PEIPath);
DirectoryInfo[] dis = di.GetDirectories();
for (int d = 0; d < dis.Length; d++)
dis[d].Delete(true);
lblImportStatus.Text = "Updating Transitions";
AddTransitions();
FixFloatingFoldouts();
SaveTransitionAndItemContentIDs();
return true;
} }
else
return false;
} }
_MyNewFolder = FolderInfo.Get(ff.FolderID);
AddAnnotationTypes(xd);
DocVersionInfo dvi = AddDocVersion(ff, xd);
MyDocVersion = dvi;
xd = null;
lblImportStatus.Text = "Creating Procedures...";
Application.DoEvents();
ProcedureInfo pi = null;
pbImportProcedure.Value = 0;
pbImportProcedure.Maximum = MyExpxZipFile.Entries.Count - 1;
for (int i = 1; i < MyExpxZipFile.Entries.Count; i++)
{
ze = MyExpxZipFile[i];
fn = PEIPath + @"\" + ze.FileName;
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
xd = new XmlDocument();
xd.Load(fn);
pi = AddProcedure(xd.DocumentElement, dvi, pi);
GC.Collect(); // need to cleanup memory after importing each procedure due to use of Regular Expressions in processing RO and Transition links
}
DirectoryInfo di = new DirectoryInfo(PEIPath);
DirectoryInfo[] dis = di.GetDirectories();
for (int d = 0; d < dis.Length; d++)
dis[d].Delete(true);
lblImportStatus.Text = "Updating Transitions";
AddTransitions();
FixFloatingFoldouts();
SaveTransitionAndItemContentIDs();
return true;
} }
private void FixSectionStart(ProcedureInfo pi) private void FixSectionStart(ProcedureInfo pi)
{ {
@@ -1254,85 +1263,85 @@ namespace VEPROMS
// the xml files are then added (or replaced) in the .impx file. // the xml files are then added (or replaced) in the .impx file.
private void SaveTransitionAndItemContentIDs() private void SaveTransitionAndItemContentIDs()
{ {
XmlDocument xd = new XmlDocument(); using (FileStream zipToOpen = new FileStream(MyImpZipFileName, FileMode.OpenOrCreate))
XmlElement xe = xd.CreateElement("items");
xd.AppendChild(xe);
string fn = PEIPath + @"\items.xml";
foreach (int key in Old2NewItem.Keys)
{ {
xe = xd.CreateElement("item"); using (ZipArchive MyImpxZipFile = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewItem[key].ToString()));
xd.DocumentElement.AppendChild(xe);
}
xd.Save(fn);
ZipEntry ze = MyImpxZipFile["items.xml"];
MyImpxZipFile.RemoveEntry(ze);
MyImpxZipFile.Save();
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
File.Delete(fn);
xd = new XmlDocument();
xe = xd.CreateElement("contents");
xd.AppendChild(xe);
fn = PEIPath + @"\contents.xml";
foreach (int key in Old2NewContent.Keys)
{
xe = xd.CreateElement("content");
xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewContent[key].ToString()));
xd.DocumentElement.AppendChild(xe);
}
xd.Save(fn);
ze = MyImpxZipFile["contents.xml"];
MyImpxZipFile.RemoveEntry(ze);
MyImpxZipFile.Save();
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
File.Delete(fn);
xd = new XmlDocument();
xe = xd.CreateElement("transitions");
xd.AppendChild(xe);
fn = PEIPath + @"\transitions.xml";
if (PendingTransitions != null && PendingTransitions.DocumentElement.HasChildNodes)
{
foreach (XmlNode nd in PendingTransitions.DocumentElement.ChildNodes)
{ {
if (nd.InnerText == "") XmlDocument xd = new XmlDocument();
xd.DocumentElement.AppendChild(xd.ImportNode(nd, true)); XmlElement xe = xd.CreateElement("items");
xd.AppendChild(xe);
string fn = PEIPath + @"\items.xml";
foreach (int key in Old2NewItem.Keys)
{
xe = xd.CreateElement("item");
xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewItem[key].ToString()));
xd.DocumentElement.AppendChild(xe);
}
xd.Save(fn);
ZipArchiveEntry ze = MyImpxZipFile.GetEntry("items.xml");
ze.Delete();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
xd = new XmlDocument();
xe = xd.CreateElement("contents");
xd.AppendChild(xe);
fn = PEIPath + @"\contents.xml";
foreach (int key in Old2NewContent.Keys)
{
xe = xd.CreateElement("content");
xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewContent[key].ToString()));
xd.DocumentElement.AppendChild(xe);
}
xd.Save(fn);
ze = MyImpxZipFile.GetEntry("contents.xml");
ze.Delete();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
xd = new XmlDocument();
xe = xd.CreateElement("transitions");
xd.AppendChild(xe);
fn = PEIPath + @"\transitions.xml";
if (PendingTransitions != null && PendingTransitions.DocumentElement.HasChildNodes)
{
foreach (XmlNode nd in PendingTransitions.DocumentElement.ChildNodes)
{
if (nd.InnerText == "")
xd.DocumentElement.AppendChild(xd.ImportNode(nd, true));
}
}
xd.Save(fn);
ze = MyImpxZipFile.GetEntry("transitions.xml");
ze.Delete();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
} }
} }
xd.Save(fn);
ze = MyImpxZipFile["transitions.xml"];
MyImpxZipFile.RemoveEntry(ze);
MyImpxZipFile.Save();
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
File.Delete(fn);
} }
// This is called only when we are importing an entire folder and there is a .impx file (a zip file) // This is called only when we are importing an entire folder and there is a .impx file (a zip file)
// the name of the .impx file is based on the folder name containing the export file being imported // the name of the .impx file is based on the folder name containing the export file being imported
// This will read in the saved ItemIDs (old and new), ContentIDs (old andnew), library document IDs (old and new), and pending transitions // This will read in the saved ItemIDs (old and new), ContentIDs (old andnew), library document IDs (old and new), and pending transitions
private void ReadTransitionAndItemContentIDs() private void ReadTransitionAndItemContentIDs(ZipArchive MyImpxZipFile)
{ {
ZipEntry ze = MyImpxZipFile["items.xml"]; ZipArchiveEntry ze = MyImpxZipFile.GetEntry("items.xml");
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
string fn = PEIPath + @"\items.xml"; string fn = PEIPath + @"\items.xml";
ze.ExtractToFile(fn, true);
XmlDocument xd = new XmlDocument(); XmlDocument xd = new XmlDocument();
xd.Load(fn); xd.Load(fn);
// B2016-176, B2016-197 Transitions were no always properly resolved - don't load in the old item ids // B2016-176, B2016-197 Transitions were no always properly resolved - don't load in the old item ids
File.Delete(fn); File.Delete(fn);
ze = MyImpxZipFile["contents.xml"]; ze = MyImpxZipFile.GetEntry("contents.xml");
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
fn = PEIPath + @"\contents.xml"; fn = PEIPath + @"\contents.xml";
ze.ExtractToFile(fn, true);
xd = new XmlDocument(); xd = new XmlDocument();
xd.Load(fn); xd.Load(fn);
// B2016-176, B2016-197 Transitions were no always properly resolved - don't load in the old content ids // B2016-176, B2016-197 Transitions were no always properly resolved - don't load in the old content ids
File.Delete(fn); File.Delete(fn);
ze = MyImpxZipFile["libdocs.xml"]; ze = MyImpxZipFile.GetEntry("libdocs.xml");
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
fn = PEIPath + @"\libdocs.xml"; fn = PEIPath + @"\libdocs.xml";
ze.ExtractToFile(fn, true);
xd = new XmlDocument(); xd = new XmlDocument();
xd.Load(fn); xd.Load(fn);
XmlNodeList nl = xd.SelectNodes("//libdoc"); XmlNodeList nl = xd.SelectNodes("//libdoc");
@@ -1344,9 +1353,9 @@ namespace VEPROMS
Old2NewLibDoc.Add(oldid, newid); Old2NewLibDoc.Add(oldid, newid);
} }
File.Delete(fn); File.Delete(fn);
ze = MyImpxZipFile["transitions.xml"]; ze = MyImpxZipFile.GetEntry("transitions.xml");
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
fn = PEIPath + @"\transitions.xml"; fn = PEIPath + @"\transitions.xml";
ze.ExtractToFile(fn, true);
PendingTransitions.Load(fn); PendingTransitions.Load(fn);
File.Delete(fn); File.Delete(fn);
} }
@@ -1374,53 +1383,53 @@ namespace VEPROMS
else else
dn = fi.Name.Substring(0, fi.Name.IndexOf(".")); dn = fi.Name.Substring(0, fi.Name.IndexOf("."));
txtImport.Text = ofd.FileName; txtImport.Text = ofd.FileName;
ReadOptions ro = new ReadOptions(); MyExpZipFileName = txtImport.Text;
ro.Encoding = Encoding.UTF8; string fn = string.Format(@"{0}\{1}.impx", PEIPath, dn);
MyExpxZipFile = ZipFile.Read(txtImport.Text, ro); MyImpZipFileName = fn;
string fn = string.Format(@"{0}\{1}.impx", PEIPath, dn); if (File.Exists(fn))
if (File.Exists(fn))
{ {
MyImpxZipFile = ZipFile.Read(fn, ro); using (ZipArchive MyImpxZipFile = ZipFile.OpenRead(fn))
ReadTransitionAndItemContentIDs(); ReadTransitionAndItemContentIDs(MyImpxZipFile);
} }
else else
{ {
MyImpxZipFile = new ZipFile(fn, Encoding.UTF8); using (FileStream zipToOpen = new FileStream(fn, FileMode.OpenOrCreate))
//transitions {
XmlElement xe = PendingTransitions.CreateElement("transitions"); using (ZipArchive MyImpxZipFile = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
PendingTransitions.AppendChild(xe); {
fn = PEIPath + @"\transitions.xml"; //transitions
PendingTransitions.Save(fn); XmlElement xe = PendingTransitions.CreateElement("transitions");
MyImpxZipFile.AddFile(fn, ""); PendingTransitions.AppendChild(xe);
MyImpxZipFile.Save(); fn = PEIPath + @"\transitions.xml";
File.Delete(fn); PendingTransitions.Save(fn);
//itemids _ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
XmlDocument xd = new XmlDocument(); File.Delete(fn);
xe = xd.CreateElement("items"); //itemids
xd.AppendChild(xe); XmlDocument xd = new XmlDocument();
fn = PEIPath + @"\items.xml"; xe = xd.CreateElement("items");
xd.Save(fn); xd.AppendChild(xe);
MyImpxZipFile.AddFile(fn, ""); fn = PEIPath + @"\items.xml";
MyImpxZipFile.Save(); xd.Save(fn);
File.Delete(fn); _ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
//contentids File.Delete(fn);
xd = new XmlDocument(); //contentids
xe = xd.CreateElement("contents"); xd = new XmlDocument();
xd.AppendChild(xe); xe = xd.CreateElement("contents");
fn = PEIPath + @"\contents.xml"; xd.AppendChild(xe);
xd.Save(fn); fn = PEIPath + @"\contents.xml";
MyImpxZipFile.AddFile(fn, ""); xd.Save(fn);
MyImpxZipFile.Save(); _ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn); File.Delete(fn);
//libdocids //libdocids
xd = new XmlDocument(); xd = new XmlDocument();
xe = xd.CreateElement("libdocs"); xe = xd.CreateElement("libdocs");
xd.AppendChild(xe); xd.AppendChild(xe);
fn = PEIPath + @"\libdocs.xml"; fn = PEIPath + @"\libdocs.xml";
xd.Save(fn); xd.Save(fn);
MyImpxZipFile.AddFile(fn, ""); _ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
MyImpxZipFile.Save(); File.Delete(fn);
File.Delete(fn); }
}
} }
} }
if (MyDocVersion != null) if (MyDocVersion != null)
@@ -1595,27 +1604,31 @@ namespace VEPROMS
ExportAssociation(xe, ai, "association"); ExportAssociation(xe, ai, "association");
string fn = PEIPath + @"\folder.xml"; string fn = PEIPath + @"\folder.xml";
xn.OwnerDocument.Save(fn); xn.OwnerDocument.Save(fn);
MyExpxZipFile.AddFile(fn, "folder"); using (FileStream zipToOpen = new FileStream(MyExpZipFileName, FileMode.OpenOrCreate))
MyExpxZipFile.Save();
File.Delete(fn);
//here
lblExportStatus.Text = "Exporting Procedures...";
Application.DoEvents();
if (dvi.Procedures.Count > 0)
{ {
pbExportProcedure.Value = 0; using (ZipArchive MyExpxZipFile = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
pbExportProcedure.Maximum = dvi.Procedures.Count; {
lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; _ = MyExpxZipFile.CreateEntryFromFile(fn, $"folder/{Path.GetFileName(fn)}");
foreach (ItemInfo ii in dvi.Procedures)
{
XmlDocument xd = new XmlDocument();
ExportItem(xd, ii, "procedure");
fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0'));
xd.Save(fn);
MyExpxZipFile.AddFile(fn, "procedures");
MyExpxZipFile.Save();
File.Delete(fn); File.Delete(fn);
xd = null; //here
lblExportStatus.Text = "Exporting Procedures...";
Application.DoEvents();
if (dvi.Procedures.Count > 0)
{
pbExportProcedure.Value = 0;
pbExportProcedure.Maximum = dvi.Procedures.Count;
lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures";
foreach (ItemInfo ii in dvi.Procedures)
{
XmlDocument xd = new XmlDocument();
ExportItem(xd, ii, "procedure");
fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0'));
xd.Save(fn);
_ = MyExpxZipFile.CreateEntryFromFile(fn, $"procedures/{Path.GetFileName(fn)}");
File.Delete(fn);
xd = null;
}
}
} }
} }
} }
@@ -1839,12 +1852,14 @@ namespace VEPROMS
//and handled/overridden in dlgExportEP.cs //and handled/overridden in dlgExportEP.cs
} }
protected virtual void SetROLocation(ref XmlElement xindivid, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti) protected virtual void SetEPEnhancedDocLinks(ref XmlElement xe, ItemInfo ii)
{ {
//do nothing - this will be for Electronic procedures only //do nothing - this will be for Electronic procedures only
//and handled/overridden in dlgExportEP.cs //and handled/overridden in dlgExportEP.cs
} }
protected virtual void SetEPEnhancedDocLinks(ref XmlElement xe, ItemInfo ii)
protected virtual void SetROLocation(ref XmlElement xindivid, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
{ {
//do nothing - this will be for Electronic procedures only //do nothing - this will be for Electronic procedures only
//and handled/overridden in dlgExportEP.cs //and handled/overridden in dlgExportEP.cs

View File

@@ -40,6 +40,7 @@ namespace VEPROMS
rb.Parent = pnlGroups; rb.Parent = pnlGroups;
rb.Dock = DockStyle.Top; rb.Dock = DockStyle.Top;
rb.Tag = gi; rb.Tag = gi;
rb.CheckedChanged -= new EventHandler(rb_CheckedChanged);
rb.CheckedChanged += new EventHandler(rb_CheckedChanged); rb.CheckedChanged += new EventHandler(rb_CheckedChanged);
pnlGroups.Controls.Add(rb); pnlGroups.Controls.Add(rb);
rb.BringToFront(); rb.BringToFront();

View File

@@ -254,6 +254,7 @@ namespace VEPROMS
if (CancelStop) btnCancel.Visible = true; if (CancelStop) btnCancel.Visible = true;
Application.DoEvents(); Application.DoEvents();
MyPromsPrinter.StatusChanged -= new PromsPrinterStatusEvent(pp_StatusChanged);
MyPromsPrinter.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged); MyPromsPrinter.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
MyPromsPrinter.DocReplace = DocReplace; // used when approve generates an export with unlinked ROs and Transitions MyPromsPrinter.DocReplace = DocReplace; // used when approve generates an export with unlinked ROs and Transitions

File diff suppressed because it is too large Load Diff

View File

@@ -365,5 +365,11 @@ namespace VEPROMS
Properties.Settings.Default.cbShwRplWrdsColor = cbShwRplWrdsColor.Checked; // update setting value Properties.Settings.Default.cbShwRplWrdsColor = cbShwRplWrdsColor.Checked; // update setting value
Properties.Settings.Default.Save(); // save settings Properties.Settings.Default.Save(); // save settings
} }
}
private void cbShwAnnoFilter_Click(object sender, EventArgs e)
{
frmVEPROMS.tv_SelectAnnotations();
}
}
} }

View File

@@ -721,7 +721,7 @@ namespace VEPROMS
this.epAnnotations.Dock = System.Windows.Forms.DockStyle.Bottom; this.epAnnotations.Dock = System.Windows.Forms.DockStyle.Bottom;
this.epAnnotations.Enabled = false; this.epAnnotations.Enabled = false;
this.epAnnotations.Expanded = false; this.epAnnotations.Expanded = false;
this.epAnnotations.ExpandedBounds = new System.Drawing.Rectangle(4, 544, 1187, 202); this.epAnnotations.ExpandedBounds = new System.Drawing.Rectangle(5, 371, 1185, 202);
this.epAnnotations.ExpandOnTitleClick = true; this.epAnnotations.ExpandOnTitleClick = true;
this.epAnnotations.Location = new System.Drawing.Point(5, 547); this.epAnnotations.Location = new System.Drawing.Point(5, 547);
this.epAnnotations.Name = "epAnnotations"; this.epAnnotations.Name = "epAnnotations";
@@ -761,7 +761,7 @@ namespace VEPROMS
this.ctrlAnnotationDetails.Dock = System.Windows.Forms.DockStyle.Fill; this.ctrlAnnotationDetails.Dock = System.Windows.Forms.DockStyle.Fill;
this.ctrlAnnotationDetails.Enabled = false; this.ctrlAnnotationDetails.Enabled = false;
this.ctrlAnnotationDetails.Location = new System.Drawing.Point(0, 26); this.ctrlAnnotationDetails.Location = new System.Drawing.Point(0, 26);
this.ctrlAnnotationDetails.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.ctrlAnnotationDetails.Margin = new System.Windows.Forms.Padding(2);
this.ctrlAnnotationDetails.MyUserInfo = null; this.ctrlAnnotationDetails.MyUserInfo = null;
this.ctrlAnnotationDetails.Name = "ctrlAnnotationDetails"; this.ctrlAnnotationDetails.Name = "ctrlAnnotationDetails";
this.ctrlAnnotationDetails.ProcItem = null; this.ctrlAnnotationDetails.ProcItem = null;

View File

@@ -543,7 +543,6 @@ namespace VEPROMS
tv.RefreshCheckedOutProcedures += new vlnTreeViewEvent(tv_RefreshCheckedOutProcedures); tv.RefreshCheckedOutProcedures += new vlnTreeViewEvent(tv_RefreshCheckedOutProcedures);
tv.ProcedureCheckedOutTo += new vlnTreeViewEvent(tv_ProcedureCheckedOutTo); tv.ProcedureCheckedOutTo += new vlnTreeViewEvent(tv_ProcedureCheckedOutTo);
tv.ViewPDF += new vlnTreeViewPdfEvent(tv_ViewPDF); tv.ViewPDF += new vlnTreeViewPdfEvent(tv_ViewPDF);
displayApplicability.ApplicabilityViewModeChanged += new DisplayApplicability.DisplayApplicabilityEvent(displayApplicability_ApplicabilityViewModeChanged); displayApplicability.ApplicabilityViewModeChanged += new DisplayApplicability.DisplayApplicabilityEvent(displayApplicability_ApplicabilityViewModeChanged);
tv.ExportImportProcedureSets += new vlnTreeViewEvent(tv_ExportImportProcedureSets); tv.ExportImportProcedureSets += new vlnTreeViewEvent(tv_ExportImportProcedureSets);
@@ -1246,6 +1245,7 @@ namespace VEPROMS
using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi)) using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi))
{ {
prnDlg.OverwritePDF = false; // turn off overwriting of PDFs B2025-041
prnDlg.SelectedSlave = args.UnitIndex; prnDlg.SelectedSlave = args.UnitIndex;
prnDlg.MySessionInfo = MySessionInfo; prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SetupForProcedure(); // Setup filename prnDlg.SetupForProcedure(); // Setup filename
@@ -1349,7 +1349,11 @@ namespace VEPROMS
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
} }
public static void tv_SelectAnnotations()
{
dlgAnnotationsSelect sannoDlg = new dlgAnnotationsSelect(VlnSettings.UserID);
sannoDlg.ShowDialog(); // RHM 20120925 - Center dialog over PROMS window
}
void tv_CreateTimeCriticalActionSummary(object sender, vlnTreeEventArgs args) void tv_CreateTimeCriticalActionSummary(object sender, vlnTreeEventArgs args)
{ {
DialogResult dr = System.Windows.Forms.DialogResult.Yes; DialogResult dr = System.Windows.Forms.DialogResult.Yes;
@@ -1536,9 +1540,11 @@ namespace VEPROMS
// and if they are not the same, use the CurrentItem from the main frmVEPROMS. // and if they are not the same, use the CurrentItem from the main frmVEPROMS.
ProcedureInfo piThis = null; ProcedureInfo piThis = null;
if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure; if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure;
ProcedureInfo pi = args.Proc as ProcedureInfo; ProcedureInfo pi = args.Proc as ProcedureInfo;
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis; if (args.OringFlg == 1) // B2025-036 split screen print issue. if oringFlg == 1 the ctrl-p keys was pressed.
{
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
}
// Check if Procedure Info is null // Check if Procedure Info is null
if (pi == null) return; if (pi == null) return;
@@ -1580,8 +1586,11 @@ namespace VEPROMS
if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure; if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure;
ProcedureInfo pi = args.Proc as ProcedureInfo; ProcedureInfo pi = args.Proc as ProcedureInfo;
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
if (args.OringFlg == 1) // B2025-036 split screen print issue. if oringFlg == 1 the ctrl-p keys was pressed.
{
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
}
// Check if Procedure Info is null // Check if Procedure Info is null
if (pi == null) return; if (pi == null) return;
@@ -1594,6 +1603,7 @@ namespace VEPROMS
{ {
using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi)) using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi))
{ {
prnDlg.OverwritePDF = false; // turn off overwriting of PDFs C2025-048.
prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; //added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; //added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
prnDlg.MySessionInfo = MySessionInfo; prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SetupForProcedure(); // Setup filename prnDlg.SetupForProcedure(); // Setup filename
@@ -3654,9 +3664,13 @@ namespace VEPROMS
if (tn == null) if (tn == null)
return; return;
_ExpandingTree = true; _ExpandingTree = true;
tn.LoadingChildrenDone -= new VETreeNodeEvent(tn_LoadingChildrenDone);
tn.LoadingChildrenDone += new VETreeNodeEvent(tn_LoadingChildrenDone); tn.LoadingChildrenDone += new VETreeNodeEvent(tn_LoadingChildrenDone);
tn.LoadingChildrenMax -= new VETreeNodeEvent(tn_LoadingChildrenMax);
tn.LoadingChildrenMax += new VETreeNodeEvent(tn_LoadingChildrenMax); tn.LoadingChildrenMax += new VETreeNodeEvent(tn_LoadingChildrenMax);
tn.LoadingChildrenValue -= new VETreeNodeEvent(tn_LoadingChildrenValue);
tn.LoadingChildrenValue += new VETreeNodeEvent(tn_LoadingChildrenValue); tn.LoadingChildrenValue += new VETreeNodeEvent(tn_LoadingChildrenValue);
tn.LoadingChildrenSQL -= new VETreeNodeEvent(tn_LoadingChildrenSQL);
tn.LoadingChildrenSQL += new VETreeNodeEvent(tn_LoadingChildrenSQL); tn.LoadingChildrenSQL += new VETreeNodeEvent(tn_LoadingChildrenSQL);
tn.LoadChildren(true); tn.LoadChildren(true);
} }
@@ -4377,7 +4391,11 @@ namespace VEPROMS
_LastStepRTB.EditModeChanged -= new StepRTBEvent(_LastStepRTB_EditModeChanged); _LastStepRTB.EditModeChanged -= new StepRTBEvent(_LastStepRTB_EditModeChanged);
_LastStepRTB = args != null && args.MyEditItem != null ? args.MyEditItem.MyStepRTB : null; _LastStepRTB = args != null && args.MyEditItem != null ? args.MyEditItem.MyStepRTB : null;
if (_LastStepRTB != null) _LastStepRTB.EditModeChanged += new StepRTBEvent(_LastStepRTB_EditModeChanged); if (_LastStepRTB != null)
{
_LastStepRTB.EditModeChanged -= new StepRTBEvent(_LastStepRTB_EditModeChanged);
_LastStepRTB.EditModeChanged += new StepRTBEvent(_LastStepRTB_EditModeChanged);
}
lblEditView.Text = " "; lblEditView.Text = " ";
if (args == null) if (args == null)
@@ -4512,6 +4530,7 @@ namespace VEPROMS
displayHistory.MyEditItem = args.MyEditItem; displayHistory.MyEditItem = args.MyEditItem;
lblEditView.Text = args.MyEditItem.MyStepPanel.VwMode == E_ViewMode.Edit ? "Edit" : "View"; lblEditView.Text = args.MyEditItem.MyStepPanel.VwMode == E_ViewMode.Edit ? "Edit" : "View";
_CurrentItem.Deleted -= new ItemInfoEvent(_CurrentItem_Deleted);
_CurrentItem.Deleted += new ItemInfoEvent(_CurrentItem_Deleted); _CurrentItem.Deleted += new ItemInfoEvent(_CurrentItem_Deleted);
dlgFindReplace.MyEditItem = args.MyEditItem; dlgFindReplace.MyEditItem = args.MyEditItem;
SpellChecker.MyEditItem = args.MyEditItem; SpellChecker.MyEditItem = args.MyEditItem;

View File

@@ -839,7 +839,7 @@ namespace VEPROMS.CSLA.Library
{ {
using (SqlCommand cmd = cn.CreateCommand()) using (SqlCommand cmd = cn.CreateCommand())
{ {
cmd.CommandTimeout = Database.DefaultTimeout; cmd.CommandTimeout = 0;
cmd.CommandType = CommandType.StoredProcedure; cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "vesp_RofstHeaderFinalizeLoad"; cmd.CommandText = "vesp_RofstHeaderFinalizeLoad";

View File

@@ -8335,6 +8335,7 @@ namespace VEPROMS.CSLA.Library
if (_ProcedureConfig == null) if (_ProcedureConfig == null)
{ {
_ProcedureConfig = new ProcedureConfig(this); _ProcedureConfig = new ProcedureConfig(this);
this.MyContent.Changed -= new ContentInfoEvent(MyContent_Changed);
this.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); this.MyContent.Changed += new ContentInfoEvent(MyContent_Changed);
} }
return _ProcedureConfig; return _ProcedureConfig;
@@ -8344,6 +8345,7 @@ namespace VEPROMS.CSLA.Library
void MyContent_Changed(object sender) void MyContent_Changed(object sender)
{ {
this.MyContent.Changed -= new ContentInfoEvent(MyContent_Changed);
this.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); this.MyContent.Changed += new ContentInfoEvent(MyContent_Changed);
} }
#endregion #endregion

View File

@@ -0,0 +1,175 @@
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
using Csla;
using Csla.Data;
using System.Configuration;
using System.IO;
using System.ComponentModel;
//namespace VEPROMS.CSLA.Library;
// C2025-027 this new file is used to support (data retrival) for selecting Annotation types to display on the Annotation screen. This is related to Annotation type filtering through V->Options.
namespace VEPROMS.CSLA.Library
{
public class AnnotationstypeSelections
{
public static DataTable Get(string UserID)
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
try
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getAnnotationstypeFiltered";
cm.CommandTimeout = Database.DefaultTimeout;
cm.Parameters.AddWithValue("@UsrID", UserID);
SqlDataAdapter da = new SqlDataAdapter(cm);
SqlDataReader reader = cm.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
// if the user has not created a annotation sub-set list saved to AnnotationTypeSelections table.
if (dt.Rows.Count < 1)
{
DataRow row;
int rowflg = 0;
foreach (AnnotationTypeInfo annosel in DataPortal.Fetch<AnnotationTypeInfoList>())
{
// C2025-027 need to use a datatable instead of AnnotationTypeInfoList so the global search Annotations will not be effected by the Annotation select list selections
if (rowflg == 0)
{
row = dt.NewRow();
dt.Rows.Add(row);
rowflg = 1;
}
else
{
row = dt.NewRow();
row["TypeID"] = annosel.TypeID;
row["Name"] = annosel.Name;
row["Config"] = annosel.Config;
row["DTS"] = annosel.DTS;
row["UserID"] = annosel.UserID;
row["IsEPAnnotationType"] = annosel.IsEPAnnotationType;
dt.Rows.Add(row);
}
};
}
return dt;
}
catch (Exception ex)
{
//B2025-004
//if it fails loading previously open tabs, simply treat it as if no tabs were open
//instead of crashing
return new DataTable();
}
}
}
}
public static DataTable Retrieve(string UserID)
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
try
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getAnnotationstypeSelections";
cm.CommandTimeout = Database.DefaultTimeout;
cm.Parameters.AddWithValue("@UsrID", UserID);
SqlDataAdapter da = new SqlDataAdapter(cm);
SqlDataReader reader = cm.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
return dt;
}
catch (Exception ex)
{
//B2025-004
//if it fails loading previously open tabs, simply treat it as if no tabs were open
//instead of crashing
return new DataTable();
}
}
}
}
public static DataTable GetAnnoTypes(string UserID)
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
try
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getAnnotationSelectListTypes";
cm.CommandTimeout = Database.DefaultTimeout;
SqlDataAdapter da = new SqlDataAdapter(cm);
cm.Parameters.AddWithValue("@UserID", UserID);
SqlDataReader reader = cm.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
return dt;
}
catch (Exception ex)
{
//B2025-004
//if it fails loading previously open tabs, simply treat it as if no tabs were open
//instead of crashing
return new DataTable();
}
}
}
}
public static void Update(DataTable dt, string UserID)
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
try
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "UpdateAnnotationstypeSelections";
cm.CommandTimeout = Database.DefaultTimeout;
//Pass table Valued parameter to Store Procedure
SqlParameter sqlParam = cm.Parameters.AddWithValue("@TempTable", dt);
sqlParam.SqlDbType = SqlDbType.Structured;
cm.Parameters.AddWithValue("@UserID", UserID);
cm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new DbCslaException("Error in UpdateAnnotationstypeSelections: update failed", ex);
}
}
}
}
}
}

View File

@@ -386,12 +386,19 @@ namespace VEPROMS.CSLA.Library
ItemInfo myItemInfo = o as ItemInfo; ItemInfo myItemInfo = o as ItemInfo;
if (myItemInfo != null) if (myItemInfo != null)
{ {
myItemInfo.Deleted -= new ItemInfoEvent(myItemInfo_Deleted);
myItemInfo.Deleted += new ItemInfoEvent(myItemInfo_Deleted); myItemInfo.Deleted += new ItemInfoEvent(myItemInfo_Deleted);
myItemInfo.ChildrenDeleted -= new ItemInfoEvent(myItemInfo_ChildrenDeleted);
myItemInfo.ChildrenDeleted += new ItemInfoEvent(myItemInfo_ChildrenDeleted); myItemInfo.ChildrenDeleted += new ItemInfoEvent(myItemInfo_ChildrenDeleted);
myItemInfo.MyContent.Changed -= new ContentInfoEvent(NodeText_Changed);
myItemInfo.MyContent.Changed += new ContentInfoEvent(NodeText_Changed); myItemInfo.MyContent.Changed += new ContentInfoEvent(NodeText_Changed);
myItemInfo.OrdinalChanged -= new ItemInfoEvent(NodeText_Changed);
myItemInfo.OrdinalChanged += new ItemInfoEvent(NodeText_Changed); myItemInfo.OrdinalChanged += new ItemInfoEvent(NodeText_Changed);
myItemInfo.NewSiblingAfter -= new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
myItemInfo.NewSiblingAfter += new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter); myItemInfo.NewSiblingAfter += new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
myItemInfo.NewSiblingBefore -= new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
myItemInfo.NewSiblingBefore += new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore); myItemInfo.NewSiblingBefore += new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
myItemInfo.NewChild -= new ItemInfoInsertEvent(myItemInfo_NewChild);
myItemInfo.NewChild += new ItemInfoInsertEvent(myItemInfo_NewChild); myItemInfo.NewChild += new ItemInfoInsertEvent(myItemInfo_NewChild);
} }
} }
@@ -429,12 +436,19 @@ namespace VEPROMS.CSLA.Library
ItemInfo myItemInfo = o as ItemInfo; ItemInfo myItemInfo = o as ItemInfo;
if (myItemInfo != null) if (myItemInfo != null)
{ {
myItemInfo.Deleted -= new ItemInfoEvent(myItemInfo_Deleted);
myItemInfo.Deleted += new ItemInfoEvent(myItemInfo_Deleted); myItemInfo.Deleted += new ItemInfoEvent(myItemInfo_Deleted);
myItemInfo.ChildrenDeleted -= new ItemInfoEvent(myItemInfo_ChildrenDeleted);
myItemInfo.ChildrenDeleted += new ItemInfoEvent(myItemInfo_ChildrenDeleted); myItemInfo.ChildrenDeleted += new ItemInfoEvent(myItemInfo_ChildrenDeleted);
myItemInfo.MyContent.Changed -= new ContentInfoEvent(NodeText_Changed);
myItemInfo.MyContent.Changed += new ContentInfoEvent(NodeText_Changed); myItemInfo.MyContent.Changed += new ContentInfoEvent(NodeText_Changed);
myItemInfo.OrdinalChanged -= new ItemInfoEvent(NodeText_Changed);
myItemInfo.OrdinalChanged += new ItemInfoEvent(NodeText_Changed); myItemInfo.OrdinalChanged += new ItemInfoEvent(NodeText_Changed);
myItemInfo.NewSiblingAfter -= new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
myItemInfo.NewSiblingAfter += new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter); myItemInfo.NewSiblingAfter += new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
myItemInfo.NewSiblingBefore -= new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
myItemInfo.NewSiblingBefore += new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore); myItemInfo.NewSiblingBefore += new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
myItemInfo.NewChild -= new ItemInfoInsertEvent(myItemInfo_NewChild);
myItemInfo.NewChild += new ItemInfoInsertEvent(myItemInfo_NewChild); myItemInfo.NewChild += new ItemInfoInsertEvent(myItemInfo_NewChild);
} }
} }

View File

@@ -387,6 +387,7 @@
<Compile Include="Generated\ZContentInfo.cs" /> <Compile Include="Generated\ZContentInfo.cs" />
<Compile Include="Generated\ZTransition.cs" /> <Compile Include="Generated\ZTransition.cs" />
<Compile Include="Generated\ZTransitionInfo.cs" /> <Compile Include="Generated\ZTransitionInfo.cs" />
<Compile Include="Minimal\AnnotationstypeSections.cs" />
<Compile Include="Minimal\UserSettings.cs" /> <Compile Include="Minimal\UserSettings.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="VEObjects\VEDrillDown.cs" /> <Compile Include="VEObjects\VEDrillDown.cs" />

View File

@@ -38,6 +38,9 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Baseline", "..\Baseline\Baseline.csproj", "{8B29E0DE-B6C9-4041-8817-319FDE3123C4}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Baseline", "..\Baseline\Baseline.csproj", "{8B29E0DE-B6C9-4041-8817-319FDE3123C4}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RoAccessToSql", "..\RoAccessToSql\RoAccessToSql.csproj", "{1EC96BDA-01E7-4153-A95D-6A4A36FA278E}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RoAccessToSql", "..\RoAccessToSql\RoAccessToSql.csproj", "{1EC96BDA-01E7-4153-A95D-6A4A36FA278E}"
ProjectSection(ProjectDependencies) = postProject
{AEEE9FD1-6892-45E2-A67E-418C06D46FF9} = {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}
EndProjectSection
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@@ -119,8 +119,8 @@ namespace Volian.Controls.Library
if (CurrentItem.MyDocVersion != null) if (CurrentItem.MyDocVersion != null)
if (CurrentItem.MyDocVersion.DocVersionAssociationCount > 0) if (CurrentItem.MyDocVersion.DocVersionAssociationCount > 0)
_ROPath = CurrentItem.MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath; _ROPath = CurrentItem.MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath;
ProcItem = CurrentItem.MyProcedure;
} }
public AnnotationInfo FirstExeAnnotation(ItemInfo ii) public AnnotationInfo FirstExeAnnotation(ItemInfo ii)
{ {
if (ii == null) return null; if (ii == null) return null;
@@ -364,7 +364,11 @@ namespace Volian.Controls.Library
cbGridAnnoType.DisplayMember = "Name"; cbGridAnnoType.DisplayMember = "Name";
cbGridAnnoType.ValueMember = "TypeId"; cbGridAnnoType.ValueMember = "TypeId";
cbGridAnnoType.DataSource = AnnotationTypeInfoList.Get().Clone();
//C2025 - 027 Annotation Type Filtering
cbGridAnnoType.WatermarkText = "Select Annotation Type";
cbGridAnnoType.DataSource = VEPROMS.CSLA.Library.AnnotationstypeSelections.Get(MyUserInfo.UserID);
// If there are no annotatons, then selected index is -1 (not defined), otherwise select the first. // If there are no annotatons, then selected index is -1 (not defined), otherwise select the first.
// This was done so that it could be saved if there was text entered but user moves to another steprtb without selecting save button // This was done so that it could be saved if there was text entered but user moves to another steprtb without selecting save button
// so that annotation gets saved. // so that annotation gets saved.

View File

@@ -69,6 +69,7 @@ namespace Volian.Controls.Library
_AnnotationDetails = annotationDetails; _AnnotationDetails = annotationDetails;
cbAnnoType.DisplayMember = "Name"; cbAnnoType.DisplayMember = "Name";
cbAnnoType.DataSource = AnnotationTypeInfoList.Get(); cbAnnoType.DataSource = AnnotationTypeInfoList.Get();
lbResults.MouseMove -= new MouseEventHandler(lbResults_MouseMove);
lbResults.MouseMove += new MouseEventHandler(lbResults_MouseMove); lbResults.MouseMove += new MouseEventHandler(lbResults_MouseMove);
_TabControl = tc; _TabControl = tc;
} }

View File

@@ -354,7 +354,10 @@ namespace Volian.Controls.Library
private void WireCheckboxes() private void WireCheckboxes()
{ {
foreach (CheckBox cb in MyCheckBoxes.Values) foreach (CheckBox cb in MyCheckBoxes.Values)
{
cb.CheckedChanged -= new EventHandler(cb_CheckedChanged);
cb.CheckedChanged += new EventHandler(cb_CheckedChanged); cb.CheckedChanged += new EventHandler(cb_CheckedChanged);
}
} }
private void UnwireCheckboxes(bool reset) private void UnwireCheckboxes(bool reset)
{ {

View File

@@ -211,7 +211,9 @@ namespace Volian.Controls.Library
} }
_myRTB = value; _myRTB = value;
MyRTB.LinkChanged -= new StepRTBLinkEvent(MyRTB_LinkChanged);
MyRTB.LinkChanged += new StepRTBLinkEvent(MyRTB_LinkChanged); MyRTB.LinkChanged += new StepRTBLinkEvent(MyRTB_LinkChanged);
MyRTB.SelectionChanged -= new EventHandler(MyRTB_SelectionChanged);
MyRTB.SelectionChanged += new EventHandler(MyRTB_SelectionChanged); MyRTB.SelectionChanged += new EventHandler(MyRTB_SelectionChanged);
if (string.IsNullOrEmpty(MyRTB.MyLinkText)) if (string.IsNullOrEmpty(MyRTB.MyLinkText))

View File

@@ -161,8 +161,11 @@ namespace Volian.Controls.Library
if (_MyROFSTLookup == null) return; if (_MyROFSTLookup == null) return;
advTreeRO.BeforeExpand -= new AdvTreeNodeCancelEventHandler(advTreeRO_BeforeExpand);
advTreeRO.BeforeExpand += new AdvTreeNodeCancelEventHandler(advTreeRO_BeforeExpand); advTreeRO.BeforeExpand += new AdvTreeNodeCancelEventHandler(advTreeRO_BeforeExpand);
advTreeRO.AfterExpand -= new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse);
advTreeRO.AfterExpand += new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse); advTreeRO.AfterExpand += new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse);
advTreeRO.AfterCollapse -= new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse);
advTreeRO.AfterCollapse += new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse); advTreeRO.AfterCollapse += new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse);
topnode = new DevComponents.AdvTree.Node(); topnode = new DevComponents.AdvTree.Node();
@@ -250,6 +253,7 @@ namespace Volian.Controls.Library
topnode.Tag = fi; topnode.Tag = fi;
} }
advTreeProcSets.BeforeExpand -= new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand);
advTreeProcSets.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand); advTreeProcSets.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand);
// position to the procedure set in the tree if we have a procedure open // position to the procedure set in the tree if we have a procedure open

View File

@@ -468,7 +468,9 @@ namespace Volian.Controls.Library
lastLastFormatID = fv.FormatID; lastLastFormatID = fv.FormatID;
} }
} }
cbxTranVersion.SelectedIndexChanged -= new EventHandler(cbxTranVersion_SelectedIndexChanged);
cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged); cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged);
cbxTranFormat.SelectedIndexChanged -= new EventHandler(cbxTranFormat_SelectedIndexChanged);
cbxTranFormat.SelectedIndexChanged += new EventHandler(cbxTranFormat_SelectedIndexChanged); cbxTranFormat.SelectedIndexChanged += new EventHandler(cbxTranFormat_SelectedIndexChanged);
} }
this.Cursor = Cursors.Default; this.Cursor = Cursors.Default;
@@ -892,6 +894,7 @@ namespace Volian.Controls.Library
topnode.DataKey = fi.FolderID; topnode.DataKey = fi.FolderID;
} }
advTreeProcSets.BeforeExpand -= new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand);
advTreeProcSets.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand); advTreeProcSets.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand);
// position to the procedure set in the tree if we have a procedure open // position to the procedure set in the tree if we have a procedure open
@@ -986,6 +989,7 @@ namespace Volian.Controls.Library
annoTypes.Add(new AnnotationTypeSearch(ati.Name, ati.TypeID.ToString())); annoTypes.Add(new AnnotationTypeSearch(ati.Name, ati.TypeID.ToString()));
cbxAnnoTypes.DisplayMember = "Name"; cbxAnnoTypes.DisplayMember = "Name";
cbxAnnoTypes.DataSource = annoTypes; cbxAnnoTypes.DataSource = annoTypes;
lbSrchResults.MouseMove -= new MouseEventHandler(lbSrchResults_MouseMove);
lbSrchResults.MouseMove += new MouseEventHandler(lbSrchResults_MouseMove); lbSrchResults.MouseMove += new MouseEventHandler(lbSrchResults_MouseMove);
_TabControl = tc; _TabControl = tc;
} }

View File

@@ -378,7 +378,10 @@ namespace Volian.Controls.Library
{ {
_MyStepRTB = _MyEditItem.MyStepRTB; _MyStepRTB = _MyEditItem.MyStepRTB;
if (_MyStepRTB != null) if (_MyStepRTB != null)
{
_MyStepRTB.Disposed -= new EventHandler(_MyStepRTB_Disposed);
_MyStepRTB.Disposed += new EventHandler(_MyStepRTB_Disposed); _MyStepRTB.Disposed += new EventHandler(_MyStepRTB_Disposed);
}
} }
else else
_MyStepRTB = null; _MyStepRTB = null;
@@ -469,6 +472,7 @@ namespace Volian.Controls.Library
myBar.DockTabControl.CloseButtonPosition = DevComponents.DotNetBar.eTabCloseButtonPosition.Right; myBar.DockTabControl.CloseButtonPosition = DevComponents.DotNetBar.eTabCloseButtonPosition.Right;
myBar.DockTabControl.Width = ClientRectangle.Width; myBar.DockTabControl.Width = ClientRectangle.Width;
} }
myBar.DockTabClosing -= new DockTabClosingEventHandler(myBar_DockTabClosing);
myBar.DockTabClosing += new DockTabClosingEventHandler(myBar_DockTabClosing); myBar.DockTabClosing += new DockTabClosingEventHandler(myBar_DockTabClosing);
if (!myBar.Visible) if (!myBar.Visible)
myBar.Visible = true; myBar.Visible = true;

View File

@@ -566,6 +566,7 @@ namespace Volian.Controls.Library
startitm = startitm.GetNext(); startitm = startitm.GetNext();
} }
if (!setsel2) tvTran.SelectedNode = tvTran.Nodes[0]; if (!setsel2) tvTran.SelectedNode = tvTran.Nodes[0];
tvTran.BeforeExpand -= new TreeViewCancelEventHandler(tvTran_BeforeExpand);
tvTran.BeforeExpand += new TreeViewCancelEventHandler(tvTran_BeforeExpand); tvTran.BeforeExpand += new TreeViewCancelEventHandler(tvTran_BeforeExpand);
// bug fix. TreeView needs the next two lines to properly display the bottom node. jsj 01/08/2010 // bug fix. TreeView needs the next two lines to properly display the bottom node. jsj 01/08/2010
tvTran.ItemHeight++; tvTran.ItemHeight++;
@@ -599,6 +600,7 @@ namespace Volian.Controls.Library
startitm = startitm.GetNext(); startitm = startitm.GetNext();
} }
if (!setsel) tvTran.SelectedNode = tvTran.Nodes[0]; if (!setsel) tvTran.SelectedNode = tvTran.Nodes[0];
tvTran.BeforeExpand -= new TreeViewCancelEventHandler(tvTran_BeforeExpand);
tvTran.BeforeExpand += new TreeViewCancelEventHandler(tvTran_BeforeExpand); tvTran.BeforeExpand += new TreeViewCancelEventHandler(tvTran_BeforeExpand);
// bug fix. TreeView needs the next two lines to properly display the bottom node. jsj 01/08/2010 // bug fix. TreeView needs the next two lines to properly display the bottom node. jsj 01/08/2010
tvTran.ItemHeight++; tvTran.ItemHeight++;

View File

@@ -214,10 +214,14 @@ namespace Volian.Controls.Library
UserCheckOffChar = (char)co.UIMark; UserCheckOffChar = (char)co.UIMark;
} }
// Deal with changes in content data // Deal with changes in content data
value.MyContent.Changed -= new ContentInfoEvent(MyContent_Changed);
value.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); value.MyContent.Changed += new ContentInfoEvent(MyContent_Changed);
value.MyProcedure.MyContent.Changed -= new ContentInfoEvent(MyContent_Changed);
value.MyProcedure.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); value.MyProcedure.MyContent.Changed += new ContentInfoEvent(MyContent_Changed);
// Deal with change in item data // Deal with change in item data
value.Changed -= new ItemInfoEvent(value_Changed);
value.Changed += new ItemInfoEvent(value_Changed); value.Changed += new ItemInfoEvent(value_Changed);
value.OrdinalChanged -= new ItemInfoEvent(value_OrdinalChanged);
value.OrdinalChanged += new ItemInfoEvent(value_OrdinalChanged); value.OrdinalChanged += new ItemInfoEvent(value_OrdinalChanged);
// do something like this to draw circle around step numbers - note got NULL reference error on NSP data // do something like this to draw circle around step numbers - note got NULL reference error on NSP data
//if (value.FormatStepData != null && value.FormatStepData.TabData.IdentPrint.Contains("C0")) Circle = true; //if (value.FormatStepData != null && value.FormatStepData.TabData.IdentPrint.Contains("C0")) Circle = true;
@@ -3997,9 +4001,13 @@ namespace Volian.Controls.Library
if (!itemInfo.IsStep) // C2025-036 reduce un-needed processing - this will prevent duplicat calls that generate step tabs when loading a procedure if (!itemInfo.IsStep) // C2025-036 reduce un-needed processing - this will prevent duplicat calls that generate step tabs when loading a procedure
SetupHeader(itemInfo); SetupHeader(itemInfo);
SetupAlarmTableView(itemInfo); // C2021-018 display alarm point table information in the step editor (if the format flag is set) SetupAlarmTableView(itemInfo); // C2021-018 display alarm point table information in the step editor (if the format flag is set)
this.Paint -= new PaintEventHandler(EditItem_Paint);
this.Paint += new PaintEventHandler(EditItem_Paint); this.Paint += new PaintEventHandler(EditItem_Paint);
this.BackColorChanged -= new EventHandler(EditItem_BackColorChanged);
this.BackColorChanged += new EventHandler(EditItem_BackColorChanged); this.BackColorChanged += new EventHandler(EditItem_BackColorChanged);
this.Move -= new EventHandler(EditItem_Move);
this.Move += new EventHandler(EditItem_Move); this.Move += new EventHandler(EditItem_Move);
this.Resize -= new EventHandler(EditItem_Resize);
this.Resize += new EventHandler(EditItem_Resize); this.Resize += new EventHandler(EditItem_Resize);
if (itemInfo != null) if (itemInfo != null)
{ {
@@ -4050,6 +4058,7 @@ namespace Volian.Controls.Library
SeqLevel = myParentEditItem.SeqLevel + ((myChildRelation == ChildRelation.After || myChildRelation == ChildRelation.Before) && itemInfo.IsSequential ? 1 : 0); SeqLevel = myParentEditItem.SeqLevel + ((myChildRelation == ChildRelation.After || myChildRelation == ChildRelation.Before) && itemInfo.IsSequential ? 1 : 0);
//// TIMING: DisplayItem.TimeIt("CSLARTB seqLevel"); //// TIMING: DisplayItem.TimeIt("CSLARTB seqLevel");
MyItemInfo = itemInfo; MyItemInfo = itemInfo;
MyItemInfo.MyConfig.PropertyChanged -= new PropertyChangedEventHandler(MyConfig_PropertyChanged);
MyItemInfo.MyConfig.PropertyChanged += new PropertyChangedEventHandler(MyConfig_PropertyChanged); MyItemInfo.MyConfig.PropertyChanged += new PropertyChangedEventHandler(MyConfig_PropertyChanged);
} }
//// TIMING: DisplayItem.TimeIt("CSLARTB MyItem"); //// TIMING: DisplayItem.TimeIt("CSLARTB MyItem");

View File

@@ -1284,7 +1284,7 @@ namespace Volian.Controls.Library
} }
selectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + myFont.FontFamily.Name + @";}"); //}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}"; selectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + myFont.FontFamily.Name + @";}"); //}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}";
if (!isFixed) if (!isFixed)
selectedRtfSB.Append(@"{\f1\fnil\fcharset0 " + Volian.Base.Library.vlnFont.ProportionalSymbolFont + @";}}{\colortbl ;\red255\green0\blue0;}"); // C2017-036 get best available proportional font for symbols selectedRtfSB.Append(@"{\f1\fnil\fcharset0 " + Volian.Base.Library.vlnFont.ProportionalSymbolFont + @";}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}"); // C2017-036 get best available proportional font for symbols - B2025-039 add Blue for Colored Replace Words
else else
selectedRtfSB.Append(@"{\f1\fnil\fcharset0 FreeMono;}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}"); // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing selectedRtfSB.Append(@"{\f1\fnil\fcharset0 FreeMono;}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}"); // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing
selectedRtfSB.Append("\r\n"); selectedRtfSB.Append("\r\n");

View File

@@ -618,6 +618,15 @@ namespace Volian.Controls.Library
} }
private int _MyLastFormatID = -1; private int _MyLastFormatID = -1;
private StepRTB _MyStepRTB; private StepRTB _MyStepRTB;
private static int _OringFlg;
public static int OringFlg
{
get { return _OringFlg; }
set
{
_OringFlg = value;
}
}
public StepRTB MyStepRTB public StepRTB MyStepRTB
{ {
get { return _MyStepRTB; } get { return _MyStepRTB; }
@@ -4096,6 +4105,7 @@ namespace Volian.Controls.Library
public void DoCopyStep() public void DoCopyStep()
{ {
MyEditItem.SaveCurrentAndContents(); // B2025-038 copy step and text to another procedure in another screen.
// highlight selected step(s) and prompt to see if selection is what user wants: // highlight selected step(s) and prompt to see if selection is what user wants:
if (MyFlexGrid != null) MyEditItem.IdentifyMe(true); if (MyFlexGrid != null) MyEditItem.IdentifyMe(true);
MyEditItem.IdentifyChildren(true); MyEditItem.IdentifyChildren(true);
@@ -4143,16 +4153,22 @@ namespace Volian.Controls.Library
private void btnPdfCreate_Click(object sender, EventArgs e) private void btnPdfCreate_Click(object sender, EventArgs e)
{ {
// B2025-036 split screen print issue. if oringFlg == 1 the ctrl-p keys was pressed.
_OringFlg = 0;
DevComponents.DotNetBar.eEventSource oring = ((DevComponents.DotNetBar.Events.EventSourceArgs)e).Source;
if (oring == eEventSource.Keyboard)
_OringFlg = 1;
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return; if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents(); if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure), 0); OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure, _OringFlg), 0);
} }
private void btnPdfQuickCreate_Click(object sender, EventArgs e) private void btnPdfQuickCreate_Click(object sender, EventArgs e)
{ {
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return; if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents(); if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure), 1); OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure, _OringFlg), 1);
} }
private void btnCASCreate_Click(object sender, EventArgs e) private void btnCASCreate_Click(object sender, EventArgs e)
@@ -4814,9 +4830,10 @@ namespace Volian.Controls.Library
public class StepTabRibbonEventArgs : EventArgs public class StepTabRibbonEventArgs : EventArgs
{ {
public StepTabRibbonEventArgs() { ; } public StepTabRibbonEventArgs() { ; }
public StepTabRibbonEventArgs(ItemInfo proc) public StepTabRibbonEventArgs(ItemInfo proc, int oringFlg = 0)
{ {
_Proc = proc; _Proc = proc;
OringFlg = oringFlg;
} }
private ItemInfo _Proc; private ItemInfo _Proc;
@@ -4825,6 +4842,13 @@ namespace Volian.Controls.Library
get { return _Proc; } get { return _Proc; }
set { _Proc = value; } set { _Proc = value; }
} }
// B2025-036 split screen print issue. if oringFlg == 1 the ctrl-p keys was pressed.
private int _OringFlg;
public int OringFlg
{
get { return _OringFlg; }
set { _OringFlg = value; }
}
} }
public delegate void StepTabRibbonEvent(object sender, StepTabRibbonEventArgs args); public delegate void StepTabRibbonEvent(object sender, StepTabRibbonEventArgs args);

View File

@@ -598,11 +598,6 @@ namespace Volian.Controls.Library
{ {
if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args); if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args);
} }
public event vlnTreeViewEvent ExportImportProcedureSets; public event vlnTreeViewEvent ExportImportProcedureSets;
private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args) private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args)
{ {
@@ -902,6 +897,7 @@ namespace Volian.Controls.Library
MenuItem miqp = new MenuItem("Quick Print"); MenuItem miqp = new MenuItem("Quick Print");
//MenuItem mips = new MenuItem("Print Section"); //MenuItem mips = new MenuItem("Print Section");
MenuItem mia = new MenuItem("Approve"); MenuItem mia = new MenuItem("Approve");
int k = 0; int k = 0;
foreach (string s in pri.MyDocVersion.UnitNames) foreach (string s in pri.MyDocVersion.UnitNames)
{ {
@@ -1610,6 +1606,27 @@ namespace Volian.Controls.Library
FlexibleMessageBox.Show("Approved procedure saved to import file " + fileName, "Creating Export of Approved Procedure", MessageBoxButtons.OK, MessageBoxIcon.Information); FlexibleMessageBox.Show("Approved procedure saved to import file " + fileName, "Creating Export of Approved Procedure", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
//C2025-015 Get a partial folder path. This will be used in building the PDF file name when viewing Approved procedures
string ProcFolderPathforApprovedPDF(string fullPath)
{
string rtnStr = "";
try
{
// the fullPath string that is passed in ends with the Working Draft node. We want to trim that off
string[] strParts = fullPath.Substring(0, fullPath.LastIndexOf("\\")).Split('\\'); //fullPath.Replace("\\Working Draft","").Split('\\');
int lastPart = Math.Max(strParts.Length - 1, 0);
rtnStr = strParts[lastPart];
if (rtnStr.ToUpper().StartsWith("UNIT"))
{
rtnStr = strParts[lastPart - 1] + "_" + rtnStr;
}
}
catch
{
rtnStr = fullPath.Replace("\\", "_"); // just return the full path with _ intead of backslashes
}
return rtnStr;
}
void ApprovedRevision_Click(object sender, EventArgs e) void ApprovedRevision_Click(object sender, EventArgs e)
{ {
@@ -1623,7 +1640,10 @@ namespace Volian.Controls.Library
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0) if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0)
superceded = true; superceded = true;
} }
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : ""); ProcedureInfo prcInfo = ProcedureInfo.Get(ri.ItemID);
// C2025-015 build a file name that includes a partial folder path and approved revision number
string approvedPDFName = string.Format("{0}_{1} Revision {2}", ProcFolderPathforApprovedPDF(prcInfo.SearchDVPath_clean), prcInfo.PDFNumber,ri.RevisionNumber);
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(approvedPDFName), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
OnViewPDF(sender, args); OnViewPDF(sender, args);
// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded)); // System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded));
} }
@@ -1632,6 +1652,7 @@ namespace Volian.Controls.Library
bool superceded = false; bool superceded = false;
MenuItem mi = sender as MenuItem; MenuItem mi = sender as MenuItem;
if (mi == null) return; if (mi == null) return;
string childName = "";
//RevisionInfo ri = mi.Tag as RevisionInfo; //RevisionInfo ri = mi.Tag as RevisionInfo;
RevisionInfo ri = RevisionInfo.Get(int.Parse(mi.Tag.ToString())); RevisionInfo ri = RevisionInfo.Get(int.Parse(mi.Tag.ToString()));
{ {
@@ -1639,12 +1660,22 @@ namespace Volian.Controls.Library
//B2021-086 Added the check for the last revision stage is an Approved stage //B2021-086 Added the check for the last revision stage is an Approved stage
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0) if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0)
superceded = true; superceded = true;
// C2025_015 get the child's name to append to file name
mip = mip.Parent as MenuItem;
if (mip != null)
{
childName = "_" + mip.Text;
}
} }
ItemInfo ii = ItemInfo.Get(ri.ItemID); ItemInfo ii = ItemInfo.Get(ri.ItemID);
ii.MyDocVersion.DocVersionConfig.SelectedSlave = ri.MyConfig.Applicability_Index; ii.MyDocVersion.DocVersionConfig.SelectedSlave = ri.MyConfig.Applicability_Index;
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : ""); ProcedureInfo prcInfo = ProcedureInfo.Get(ri.ItemID);
if (prcInfo.MyContent.Number.ToUpper().Contains("<U") || ii.MyDocVersion.DocVersionConfig.Unit_ProcedureNumber.Contains("#"))
childName = ""; // unit identification already part of procedure number-no need to add the child name to the PDF file name
// C2025-015 build a file name that includes a partial folder path, the child name and approved revision number
string approvedPDFName = string.Format("{0}{1}_{2} Revision {3}", ProcFolderPathforApprovedPDF(prcInfo.SearchDVPath_clean),childName, prcInfo.PDFNumber, ri.RevisionNumber);
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(approvedPDFName), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
OnViewPDF(sender, args); OnViewPDF(sender, args);
// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded));
} }
void SummaryOfChanges_Click(object sender, EventArgs e) void SummaryOfChanges_Click(object sender, EventArgs e)
{ {