Compare commits
35 Commits
C2025-024
...
C2025-039_
Author | SHA1 | Date | |
---|---|---|---|
e2a276085b | |||
d561c579e0 | |||
371d117746 | |||
2131efb522 | |||
6e20774edf | |||
a7c7744ff3 | |||
019aefbc61 | |||
81a23305ba | |||
4001abff02 | |||
25bfbeb8d6 | |||
a3aa9747b8 | |||
009243b091 | |||
e31e0b6680 | |||
449bb2522b | |||
453dce9520 | |||
655592186b | |||
1ebf67233b | |||
1588dabcbe | |||
09d3995e6c | |||
db20385a6d | |||
d701935ddf | |||
d3888e3c32 | |||
94f0795247 | |||
4def73d738 | |||
99445406fc | |||
025fa57e24 | |||
6f04d0bf07 | |||
7a0f56cad8 | |||
c98299d916 | |||
f6e25fd966 | |||
557b9429bf | |||
139f7bbd0a | |||
e08b5cde69 | |||
07c7718320 | |||
2953e977ef |
@@ -28,7 +28,9 @@ namespace AT.STO.UI.Win
|
||||
|
||||
_dropDownHelper = new DropDownWindowHelper();
|
||||
|
||||
_dropDownHelper.DropDownClosed -= new DropDownClosedEventHandler(DropDownHelper_DropDownClosed);
|
||||
_dropDownHelper.DropDownClosed += new DropDownClosedEventHandler(DropDownHelper_DropDownClosed);
|
||||
_dropDownHelper.DropDownCancel -= new DropDownCancelEventHandler(DropDownHelper_DropDownCancel);
|
||||
_dropDownHelper.DropDownCancel += new DropDownCancelEventHandler(DropDownHelper_DropDownCancel);
|
||||
|
||||
combo.DisplayMember = "Text";
|
||||
@@ -82,7 +84,9 @@ namespace AT.STO.UI.Win
|
||||
DropDownForm dropDown = new DropDownForm(_dropDownControl);
|
||||
|
||||
|
||||
dropDown.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing);
|
||||
dropDown.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing);
|
||||
dropDown.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged);
|
||||
dropDown.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged);
|
||||
|
||||
combo.DroppedDown = false;
|
||||
|
@@ -49,7 +49,9 @@ namespace AT.STO.UI.Win
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
_control.FinishEditing -= new DropDownValueChangedEventHandler(Ctrl_FinishEditing);
|
||||
_control.FinishEditing += new DropDownValueChangedEventHandler(Ctrl_FinishEditing);
|
||||
_control.ValueChanged -= new DropDownValueChangedEventHandler(Ctrl_ValueChanged);
|
||||
_control.ValueChanged += new DropDownValueChangedEventHandler(Ctrl_ValueChanged);
|
||||
}
|
||||
#endregion
|
||||
|
@@ -39,6 +39,7 @@ namespace AT.STO.UI.Win
|
||||
public DropDownWindowHelper()
|
||||
{
|
||||
_filter = new DropDownMessageFilter(this);
|
||||
_filter.DropDownCancel -= new DropDownCancelEventHandler(Popup_Cancel);
|
||||
_filter.DropDownCancel += new DropDownCancelEventHandler(Popup_Cancel);
|
||||
}
|
||||
#endregion
|
||||
|
@@ -180,7 +180,6 @@
|
||||
<Content Include="fmtall\CPL_03all.xml" />
|
||||
<Content Include="fmtall\CPSAMGDataall.xml" />
|
||||
<Content Include="fmtall\CPSAMGDEVall.xml" />
|
||||
<Content Include="fmtall\EPTSTBCK1all.xml" />
|
||||
<Content Include="fmtall\EPTST1all.xml" />
|
||||
<Content Include="fmtall\CWEall.xml" />
|
||||
<Content Include="fmtall\CWEDEVall.xml" />
|
||||
|
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.
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.
203
PROMS/VEPROMS User Interface/DlgAnnotationsSelect.cs
Normal file
203
PROMS/VEPROMS User Interface/DlgAnnotationsSelect.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
120
PROMS/VEPROMS User Interface/DlgAnnotationsSelect.resx
Normal file
120
PROMS/VEPROMS User Interface/DlgAnnotationsSelect.resx
Normal 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>
|
@@ -393,6 +393,7 @@ namespace VEPROMS
|
||||
{
|
||||
SetupForProcedure();
|
||||
_MyTimer = new Timer();
|
||||
_MyTimer.Tick -= new EventHandler(_MyTimer_Tick);
|
||||
_MyTimer.Tick += new EventHandler(_MyTimer_Tick);
|
||||
_MyTimer.Interval = 100;
|
||||
_MyTimer.Enabled = true;
|
||||
|
@@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
Set NoCount On;
|
||||
|
||||
If (db_name() in('master','model','msdn','tempdb'))
|
||||
@@ -24026,7 +24024,7 @@ Begin -- Rofst Tables
|
||||
CONSTRAINT [PK_EPFormats] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[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]
|
||||
|
||||
IF (@@Error = 0) PRINT 'Table Creation: [EPFormats] Succeeded'
|
||||
@@ -24035,6 +24033,7 @@ Begin -- Rofst Tables
|
||||
End
|
||||
Go
|
||||
|
||||
|
||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_UpdateEPFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||
DROP PROCEDURE [vesp_UpdateEPFormat];
|
||||
GO
|
||||
@@ -24075,6 +24074,217 @@ ELSE
|
||||
|
||||
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'
|
||||
ELSE PRINT 'Running vesp_UpdateEPFormat Failed to Execute'
|
||||
GO
|
||||
@@ -24117,8 +24327,8 @@ BEGIN TRY -- Try Block
|
||||
DECLARE @RevDate varchar(255)
|
||||
DECLARE @RevDescription varchar(255)
|
||||
|
||||
set @RevDate = '6/20/2025 3:07 PM'
|
||||
set @RevDescription = 'Annotation Support'
|
||||
set @RevDate = '07/31/2025 10:30 AM'
|
||||
set @RevDescription = 'SQL Optimization'
|
||||
|
||||
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
||||
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
||||
|
@@ -152,6 +152,17 @@
|
||||
<DependentUpon>AboutVEPROMS.cs</DependentUpon>
|
||||
</Compile>
|
||||
<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">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -164,9 +175,6 @@
|
||||
<Compile Include="dlgCheckedOutProcedure.designer.cs">
|
||||
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="dlgExportImportEP.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="dlgMSWordMessage.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -340,6 +348,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>AboutVEPROMS.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="dlgAnnotationsSelect.resx">
|
||||
<DependentUpon>dlgAnnotationsSelect.cs</DependentUpon>
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="dlgMSWordMessage.resx">
|
||||
<DependentUpon>dlgMSWordMessage.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
229
PROMS/VEPROMS User Interface/dlgAnnotationsSelect.Designer.cs
generated
Normal file
229
PROMS/VEPROMS User Interface/dlgAnnotationsSelect.Designer.cs
generated
Normal 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;
|
||||
}
|
||||
}
|
@@ -65,11 +65,13 @@ namespace VEPROMS
|
||||
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave;
|
||||
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
_MyDocVersion = myDocVersion;
|
||||
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
|
||||
InitializeComponent();
|
||||
FlexGridAddEvents();
|
||||
_MyApproval.StatusUpdated -= new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated);
|
||||
_MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated);
|
||||
SetupComboBoxes();
|
||||
foreach (ProcedureInfo pi in myDocVersion.Procedures)
|
||||
@@ -101,6 +103,7 @@ namespace VEPROMS
|
||||
//fgProcs.SetupEditor += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_SetupEditor);
|
||||
//fgProcs.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_StartEdit);
|
||||
//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.MouseDown += new MouseEventHandler(fgProcs_MouseDown);
|
||||
//fgProcs.MouseUp += new MouseEventHandler(fgProcs_MouseUp);
|
||||
@@ -275,6 +278,7 @@ namespace VEPROMS
|
||||
{
|
||||
MyFrmVEPROMS = 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);
|
||||
_MyDocVersion = myDocVersion;
|
||||
_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
|
||||
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
_MyDocVersion = myProcedure.MyDocVersion;
|
||||
_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;
|
||||
string oldLabel = lblMore.Text;
|
||||
pbMore.Visible = true;
|
||||
ItemInfoList.ConsistencyCheckUpdated -= new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated);
|
||||
ItemInfoList.ConsistencyCheckUpdated += new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated);
|
||||
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)
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,347 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||
//class inherits from normal import/export form
|
||||
//then adds additional functionality
|
||||
#pragma warning disable S101 // Types should be named in PascalCase
|
||||
public partial class dlgExportImportEP : dlgExportImport
|
||||
#pragma warning restore S101 // Types should be named in PascalCase
|
||||
{
|
||||
private readonly AnnotationTypeInfo _AnnotationType;
|
||||
private readonly string multiseparator = ",";
|
||||
|
||||
private static Regex _ROAccPageTokenPattern = new Regex("[<][^<>-]+-[^<>]+[>]");
|
||||
|
||||
public dlgExportImportEP(string mode, FolderInfo folderInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, folderInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
|
||||
{
|
||||
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
|
||||
_ExportBothConvertedandNot = true;
|
||||
DocReplace = new Dictionary<int, byte[]>();
|
||||
FormClosed += OnClose;
|
||||
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {folderInfo.Name}";
|
||||
}
|
||||
public dlgExportImportEP(string mode, DocVersionInfo docVersionInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, docVersionInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
|
||||
{
|
||||
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
|
||||
_ExportBothConvertedandNot = true;
|
||||
DocReplace = new Dictionary<int, byte[]>();
|
||||
FormClosed += OnClose;
|
||||
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {docVersionInfo.Name} of {docVersionInfo.MyFolder.Name}";
|
||||
}
|
||||
public dlgExportImportEP(string mode, ProcedureInfo procedureInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, procedureInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
|
||||
{
|
||||
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
|
||||
_ExportBothConvertedandNot = true;
|
||||
DocReplace = new Dictionary<int, byte[]>();
|
||||
FormClosed += OnClose;
|
||||
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {procedureInfo.DisplayNumber}";
|
||||
}
|
||||
|
||||
//Overridden function to handle export of EP data
|
||||
protected override void ExportEPAnnotationInfo(XmlElement xe, ItemInfo ii)
|
||||
{
|
||||
if (_UnitIndex > 0)
|
||||
{
|
||||
ii.MyDocVersion.DocVersionConfig.SelectedSlave = _UnitIndex;
|
||||
ii.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = _UnitIndex;
|
||||
}
|
||||
|
||||
//switch to handle customizations for different formats
|
||||
switch (ii.ActiveFormat.PlantFormat.EPFormatFiles.Find(x => x.AnnotationTypeID == _AnnotationType.TypeID)?.Name)
|
||||
{
|
||||
default:
|
||||
ExportEPAnnotationInfo_Default(xe, ii);
|
||||
break;
|
||||
}
|
||||
|
||||
ii.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||
ii.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||
|
||||
}
|
||||
|
||||
//default export of EP Data
|
||||
private void ExportEPAnnotationInfo_Default(XmlElement xe, ItemInfo ii)
|
||||
{
|
||||
//Add tab text to item
|
||||
string steptab = Volian.Print.Library.PDFReport.BuildStepTab(ii);
|
||||
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "StepTab", steptab));
|
||||
|
||||
//Add db sequence to item
|
||||
string dbsequence = dbSeq(ii);
|
||||
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dbsequence", dbsequence));
|
||||
|
||||
//get first transition in item and add it as an xml element
|
||||
if (ii.MyContent.ContentTransitionCount > 0)
|
||||
{
|
||||
TransitionInfo ct = ii.MyContent.ContentTransitions[0];
|
||||
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "TransitionToItemID", ct.ToID.ToString()));
|
||||
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "TransitionTodbsequence", dbSeq(ct.ToID)));
|
||||
}
|
||||
|
||||
//export EP annotation details under an EPInfo node
|
||||
if (ii.ItemAnnotations != null)
|
||||
{
|
||||
XmlElement xepinfo = xe.OwnerDocument.CreateElement("EPInfo");
|
||||
|
||||
EPFields myEPFields = ii.GetValidEPFields(_AnnotationType.TypeID);
|
||||
ROFSTLookup lookup = ii.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(ii.MyDocVersion);
|
||||
bool epexportblank = ii.EPexportblank(_AnnotationType.TypeID); //should blank xml elements export?
|
||||
|
||||
//grab the current RO db so will know location of RO files and default graphics ext.
|
||||
using (RODbInfo myRODB = (RODbInfoList.Get()).FirstOrDefault(x => x.RODbID == ii.MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID))
|
||||
{
|
||||
//For each annotation in the item that is of the current EP Annotation type
|
||||
foreach (var EPAnnotation in ii.ItemAnnotations.Where(x => x.TypeID == _AnnotationType.TypeID))
|
||||
{
|
||||
var EPAnnotationConfig = new AnnotationConfig(EPAnnotation.Config);
|
||||
|
||||
XmlElement xepdetails = xe.OwnerDocument.CreateElement("Details");
|
||||
//include the annotation ID for reference
|
||||
xepdetails.Attributes.SetNamedItem(AddAttribute(xepdetails.OwnerDocument, "AnnotationID", EPAnnotation.AnnotationID.ToString()));
|
||||
|
||||
//loop through each EP Field - name the xml elements the EP.name
|
||||
foreach (EPField EP in myEPFields)
|
||||
{
|
||||
string val = EPAnnotationConfig.GetValue("EP", EP.name);
|
||||
|
||||
if (epexportblank || !string.IsNullOrEmpty(val))
|
||||
{
|
||||
|
||||
if (_UnitIndex != 0)
|
||||
{
|
||||
val = DisplayText.ResolveUnitSpecific(ii.MyDocVersion, val);
|
||||
}
|
||||
|
||||
XmlElement xindivid = xe.OwnerDocument.CreateElement(EP.name);
|
||||
|
||||
//need to resolve ROs ROSingle, ROMulti, in text
|
||||
//get values
|
||||
switch (EP.type.ToLower())
|
||||
{
|
||||
case "text":
|
||||
|
||||
//for text, check if any embedded ROs
|
||||
//if none, set the xml element to the text
|
||||
//otherwise resolve the ROs
|
||||
MatchCollection matches = _ROAccPageTokenPattern.Matches(val);
|
||||
if (matches.Count == 0)
|
||||
{
|
||||
xindivid.InnerText = val;
|
||||
}
|
||||
else
|
||||
{
|
||||
//resolve ROs
|
||||
//text ROs will replace the AccID key in the text
|
||||
//for binary objects like images,
|
||||
//we will keep the AccID in the text and output the binary as a separate child
|
||||
//XML element with the same xml name as the AccID
|
||||
foreach (Match m in matches)
|
||||
{
|
||||
ROFSTLookup.rochild roc = lookup.GetROChildByAccPageID(m.Groups[0].Value);
|
||||
|
||||
// Exclude replacing Images since are binary - for those, add a sub item
|
||||
if (Enumerable.Range(8, 15).Contains(roc.type))
|
||||
{
|
||||
xindivid.InnerText = val;
|
||||
|
||||
XmlElement xroid = AddGraphic(xindivid, m.Groups[0].Value, roc, myRODB, roc.type != 8);
|
||||
|
||||
xindivid.AppendChild(xroid);
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(roc.value))
|
||||
{
|
||||
bool convertCaretToDeltaSymbol = (ii.ActiveSection != null) && ii.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta;
|
||||
|
||||
string rocvalue = roc.value.Replace("`", "\xB0");
|
||||
rocvalue = rocvalue.Replace("\xF8", "\xB0");
|
||||
rocvalue = rocvalue.Replace("\x7F", "\x394"); //delta
|
||||
if (convertCaretToDeltaSymbol) rocvalue = rocvalue.Replace("^", "\x394"); // delta
|
||||
val = val.Replace($"{m.Groups[0].Value}", rocvalue);
|
||||
xindivid.InnerText = val;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "rosingle":
|
||||
//Get the output columns from the EPFormatFile
|
||||
//set the "Item" nodes value = to those resolved items
|
||||
//separated by multiseparator
|
||||
XmlElement xindivid_rosingle = xindivid.OwnerDocument.CreateElement("Item");
|
||||
xindivid_rosingle.Attributes.SetNamedItem(AddAttribute(xindivid_rosingle.OwnerDocument, "ROID", val));
|
||||
|
||||
//add values specified in EP input list
|
||||
List<string> ro_single_tmp = EP.getROValuesList(EPAnnotation, val);
|
||||
xindivid_rosingle.InnerText = String.Join(multiseparator, ro_single_tmp.ToArray());
|
||||
|
||||
//if image, add location and binary of image
|
||||
// - images are type 8
|
||||
// but if multiple return values could combine
|
||||
// for example an text (1) + image (8) would be 9
|
||||
ROFSTLookup.rochild roc_single = lookup.GetRoChild(val);
|
||||
if (Enumerable.Range(8, 15).Contains(roc_single.type))
|
||||
{
|
||||
XmlElement xroid = AddGraphic(xindivid, val, roc_single, myRODB, roc_single.type != 8);
|
||||
xindivid_rosingle.AppendChild(xroid);
|
||||
}
|
||||
|
||||
xindivid.AppendChild(xindivid_rosingle);
|
||||
break;
|
||||
case "romulti":
|
||||
//Get the output columns from the EPFormatFile
|
||||
//create an "Item" subnode for each selected RO
|
||||
//set the nodes value = to those resolved items
|
||||
//separated by multiseparator
|
||||
foreach (string ival in val.Split(multiseparator.ToCharArray()))
|
||||
{
|
||||
XmlElement xindivid_romulti = xindivid.OwnerDocument.CreateElement("Item");
|
||||
xindivid_romulti.Attributes.SetNamedItem(AddAttribute(xindivid_romulti.OwnerDocument, "ROID", ival));
|
||||
|
||||
//add values specified in EP input list
|
||||
List<string> ro_multi_tmp = EP.getROValuesList(EPAnnotation, ival);
|
||||
xindivid_romulti.InnerText = String.Join(multiseparator, ro_multi_tmp.ToArray());
|
||||
|
||||
//if image, add location and binary of image
|
||||
// - images are type 8
|
||||
// but if multiple return values could combine
|
||||
// for example an text (1) + image (8) would be 9
|
||||
ROFSTLookup.rochild roc_multi = lookup.GetRoChild(ival);
|
||||
if (Enumerable.Range(8, 15).Contains(roc_multi.type))
|
||||
{
|
||||
XmlElement xroid = AddGraphic(xindivid, ival, roc_multi, myRODB, roc_multi.type != 8);
|
||||
xindivid_romulti.AppendChild(xroid);
|
||||
}
|
||||
|
||||
xindivid.AppendChild(xindivid_romulti);
|
||||
}
|
||||
break;
|
||||
case "tableinput":
|
||||
xindivid.InnerText = val;
|
||||
break;
|
||||
default:
|
||||
xindivid.InnerText = val;
|
||||
break;
|
||||
}
|
||||
xepdetails.AppendChild(xindivid);
|
||||
}
|
||||
}
|
||||
xepinfo.AppendChild(xepdetails);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
xe.AppendChild(xepinfo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//return a db sequence string from an Item ID
|
||||
private string dbSeq(int itemID)
|
||||
{
|
||||
using (ItemInfo ii = ItemInfo.Get(itemID))
|
||||
{
|
||||
return dbSeq(ii);
|
||||
}
|
||||
}
|
||||
|
||||
//return a db sequence string from an ItemInfo
|
||||
private string dbSeq(ItemInfo ii) => $"{((FolderInfo)ii.MyDocVersion.ActiveParent).Name}:{ii.MyProcedure.DisplayNumber} {ii.MyProcedure.DisplayText}:{ii.DBSequence}";
|
||||
|
||||
//For Exporting an RO that is an image
|
||||
//returns the Location and FileName of the RO Image
|
||||
private string GetROImageFileLocation(ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
|
||||
{
|
||||
string rodbpath = rodb.FolderPath;
|
||||
|
||||
string rocval = roc.value;
|
||||
if (rocval == null) rocval = Array.Find(roc.children, x => x.value.Contains('.')).value;
|
||||
|
||||
if (rocval == null) return "";
|
||||
string imgname;
|
||||
if (isMulti)
|
||||
{
|
||||
imgname = rocval.Substring(rocval.IndexOf(' ') + 1, rocval.IndexOf("\r\n") - rocval.IndexOf(' ') - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
imgname = rocval.Substring(0, rocval.IndexOf('\n'));
|
||||
}
|
||||
int thedot = imgname.LastIndexOf('.');
|
||||
string fname = imgname;
|
||||
if (thedot == -1 || (thedot != (imgname.Length - 4)))
|
||||
{
|
||||
RODbConfig roDbCfg = new RODbConfig(rodb.Config);
|
||||
fname += string.Format(".{0}", roDbCfg.GetDefaultGraphicExtension());
|
||||
}
|
||||
|
||||
string imgfile = Path.Combine(rodbpath, fname);
|
||||
return imgfile;
|
||||
}
|
||||
|
||||
//For Exporting an RO that is an image
|
||||
//returns an xmlElement
|
||||
// - that is a child to xindivid
|
||||
// - that has a name of Name
|
||||
// - that has a value of the binary representation of the image
|
||||
// - that has an attribute designating the location of the image file
|
||||
private XmlElement AddGraphic(XmlElement xindivid, string Name, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
|
||||
{
|
||||
Name = Name.Replace("<", "").Replace(">", "");
|
||||
|
||||
XmlElement xroid = xindivid.OwnerDocument.CreateElement(Name);
|
||||
|
||||
string imgfile = GetROImageFileLocation(roc, rodb, isMulti);
|
||||
if (string.IsNullOrEmpty(imgfile)) return xroid;
|
||||
xroid.Attributes.SetNamedItem(AddAttribute(xroid.OwnerDocument, "Location", imgfile));
|
||||
|
||||
if (File.Exists(imgfile))
|
||||
{
|
||||
using (FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read))
|
||||
{
|
||||
// Create an instance of StreamReader that can read characters from the FileStream.
|
||||
using (BinaryReader r = new BinaryReader(fsIn))
|
||||
xroid.InnerText = Encoding.Default.GetString(r.ReadBytes((int)fsIn.Length));
|
||||
}
|
||||
}
|
||||
|
||||
return xroid;
|
||||
}
|
||||
|
||||
//overridden - used to set the RO location for RO Images that are not in annotations
|
||||
protected override void SetROLocation(ref XmlElement xindivid, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
|
||||
{
|
||||
string imgfile = GetROImageFileLocation(roc, rodb, isMulti);
|
||||
if (!string.IsNullOrEmpty(imgfile)) xindivid.Attributes.SetNamedItem(AddAttribute(xindivid.OwnerDocument, "Location", imgfile));
|
||||
}
|
||||
|
||||
//overridden - used to set specific enhanced doc info
|
||||
protected override void SetEPEnhancedDocLinks(ref XmlElement xe, ItemInfo ii)
|
||||
{
|
||||
EnhancedDocuments eds = ii.GetMyEnhancedDocuments();
|
||||
|
||||
if (eds != null && eds.Count == 1)
|
||||
{
|
||||
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocType", eds[0].Type.ToString()));
|
||||
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocToItemID", eds[0].ItemID.ToString()));
|
||||
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocToDbSeq", dbSeq(eds[0].ItemID)));
|
||||
}
|
||||
}
|
||||
|
||||
//clear objects to release memory
|
||||
private void OnClose(object sender, EventArgs e)
|
||||
{
|
||||
DocReplace.Clear();
|
||||
DocReplace = null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@@ -40,6 +40,7 @@ namespace VEPROMS
|
||||
rb.Parent = pnlGroups;
|
||||
rb.Dock = DockStyle.Top;
|
||||
rb.Tag = gi;
|
||||
rb.CheckedChanged -= new EventHandler(rb_CheckedChanged);
|
||||
rb.CheckedChanged += new EventHandler(rb_CheckedChanged);
|
||||
pnlGroups.Controls.Add(rb);
|
||||
rb.BringToFront();
|
||||
|
@@ -254,6 +254,7 @@ namespace VEPROMS
|
||||
if (CancelStop) btnCancel.Visible = true;
|
||||
Application.DoEvents();
|
||||
|
||||
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
|
||||
|
||||
|
2575
PROMS/VEPROMS User Interface/frmSysOptions.Designer.cs
generated
2575
PROMS/VEPROMS User Interface/frmSysOptions.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@@ -365,5 +365,11 @@ namespace VEPROMS
|
||||
Properties.Settings.Default.cbShwRplWrdsColor = cbShwRplWrdsColor.Checked; // update setting value
|
||||
Properties.Settings.Default.Save(); // save settings
|
||||
}
|
||||
}
|
||||
|
||||
private void cbShwAnnoFilter_Click(object sender, EventArgs e)
|
||||
{
|
||||
frmVEPROMS.tv_SelectAnnotations();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -721,7 +721,7 @@ namespace VEPROMS
|
||||
this.epAnnotations.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.epAnnotations.Enabled = 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.Location = new System.Drawing.Point(5, 547);
|
||||
this.epAnnotations.Name = "epAnnotations";
|
||||
@@ -761,7 +761,7 @@ namespace VEPROMS
|
||||
this.ctrlAnnotationDetails.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlAnnotationDetails.Enabled = false;
|
||||
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.Name = "ctrlAnnotationDetails";
|
||||
this.ctrlAnnotationDetails.ProcItem = null;
|
||||
|
@@ -543,7 +543,6 @@ namespace VEPROMS
|
||||
tv.RefreshCheckedOutProcedures += new vlnTreeViewEvent(tv_RefreshCheckedOutProcedures);
|
||||
tv.ProcedureCheckedOutTo += new vlnTreeViewEvent(tv_ProcedureCheckedOutTo);
|
||||
tv.ViewPDF += new vlnTreeViewPdfEvent(tv_ViewPDF);
|
||||
|
||||
displayApplicability.ApplicabilityViewModeChanged += new DisplayApplicability.DisplayApplicabilityEvent(displayApplicability_ApplicabilityViewModeChanged);
|
||||
|
||||
tv.ExportImportProcedureSets += new vlnTreeViewEvent(tv_ExportImportProcedureSets);
|
||||
@@ -708,32 +707,15 @@ namespace VEPROMS
|
||||
else
|
||||
{
|
||||
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
|
||||
|
||||
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
||||
dlg.ShowDialog(this);
|
||||
|
||||
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||
//form for exporting Electronic Procedures from FolderInfo
|
||||
if (args.AnnotationTypeId > 0)
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
|
||||
if (args.Index == 1 && dlg.MyNewFolder != null)
|
||||
{
|
||||
dlgExportImportEP dlg = new dlgExportImportEP(args.Index == 0 ? "Export" : "Import", fi, this, args.AnnotationTypeId, args.UnitIndex);
|
||||
dlg.ShowDialog(this);
|
||||
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
|
||||
if (args.Index == 1 && dlg.MyNewFolder != null)
|
||||
{
|
||||
tv.AddNewNode(dlg.MyNewFolder);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
||||
dlg.ShowDialog(this);
|
||||
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
|
||||
if (args.Index == 1 && dlg.MyNewFolder != null)
|
||||
{
|
||||
tv.AddNewNode(dlg.MyNewFolder);
|
||||
}
|
||||
tv.AddNewNode(dlg.MyNewFolder);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -759,40 +741,18 @@ namespace VEPROMS
|
||||
|
||||
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
|
||||
|
||||
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||
//form for exporting Electronic Procedures from DocVersionInfo
|
||||
if (args.AnnotationTypeId > 0)
|
||||
{
|
||||
dlgExportImportEP dlg = new dlgExportImportEP(args.Index == 0 ? "Export" : "Import", dvi, this, args.AnnotationTypeId, args.UnitIndex);
|
||||
dlg.MyNewProcedure = null;
|
||||
dlg.ExternalTransitionItem = null;
|
||||
dlg.ShowDialog(this);
|
||||
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
||||
dlg.MyNewProcedure = null;
|
||||
dlg.ExternalTransitionItem = null;
|
||||
dlg.ShowDialog(this);
|
||||
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
|
||||
if (dlg.MyNewProcedure != null)
|
||||
tv.AddNewNode(dlg.MyNewProcedure);
|
||||
|
||||
if (dlg.ExternalTransitionItem != null)
|
||||
tc.OpenItem(dlg.ExternalTransitionItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
||||
dlg.MyNewProcedure = null;
|
||||
dlg.ExternalTransitionItem = null;
|
||||
dlg.ShowDialog(this);
|
||||
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
|
||||
if (dlg.MyNewProcedure != null)
|
||||
tv.AddNewNode(dlg.MyNewProcedure);
|
||||
|
||||
if (dlg.ExternalTransitionItem != null)
|
||||
tc.OpenItem(dlg.ExternalTransitionItem);
|
||||
}
|
||||
if (dlg.MyNewProcedure != null)
|
||||
tv.AddNewNode(dlg.MyNewProcedure);
|
||||
|
||||
if (dlg.ExternalTransitionItem != null)
|
||||
tc.OpenItem(dlg.ExternalTransitionItem);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -808,24 +768,10 @@ namespace VEPROMS
|
||||
else
|
||||
{
|
||||
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure);
|
||||
dlgExportImport dlg = new dlgExportImport("Export", pi, this, (E_UCFImportOptions)0);//Added frmVEPROMS Parameter
|
||||
dlg.ShowDialog(this);
|
||||
|
||||
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||
//form for exporting Electronic Procedures from ProcedureInfo
|
||||
if (args.AnnotationTypeId > 0)
|
||||
{
|
||||
dlgExportImportEP dlg = new dlgExportImportEP("Export", pi, this, args.AnnotationTypeId, args.UnitIndex);
|
||||
dlg.ShowDialog(this);
|
||||
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
dlgExportImport dlg = new dlgExportImport("Export", pi, this, (E_UCFImportOptions)0);//Added frmVEPROMS Parameter
|
||||
dlg.ShowDialog(this);
|
||||
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
}
|
||||
MySessionInfo.CheckInItem(ownerid);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1269,7 +1215,7 @@ namespace VEPROMS
|
||||
|
||||
//Print Section
|
||||
//C2025-028 Add a Quick Print Section option
|
||||
|
||||
|
||||
void tv_PrintSection(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
PrintSection(sender, args, false);
|
||||
@@ -1279,7 +1225,7 @@ namespace VEPROMS
|
||||
PrintSection(sender, args, true);
|
||||
}
|
||||
|
||||
void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint)
|
||||
void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -1349,7 +1295,11 @@ namespace VEPROMS
|
||||
|
||||
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)
|
||||
{
|
||||
DialogResult dr = System.Windows.Forms.DialogResult.Yes;
|
||||
@@ -2248,7 +2198,7 @@ namespace VEPROMS
|
||||
this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", "", "WARNING this will \nREMOVE ALL PROMS USERS and Reset to the\nOriginal Volian Defaults", null, null, eTooltipColor.Gray));
|
||||
this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools", "", "Open the PROMS Adminstration Tools Window", null, null, eTooltipColor.Gray));
|
||||
this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats", "", "Install New Formats \n or Re-Install Formats", null, null, eTooltipColor.Gray));
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
MyUserInfo = UserInfo.GetByUserID(VlnSettings.UserID);
|
||||
@@ -3654,9 +3604,13 @@ namespace VEPROMS
|
||||
if (tn == null)
|
||||
return;
|
||||
_ExpandingTree = true;
|
||||
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.LoadingChildrenValue -= new VETreeNodeEvent(tn_LoadingChildrenValue);
|
||||
tn.LoadingChildrenValue += new VETreeNodeEvent(tn_LoadingChildrenValue);
|
||||
tn.LoadingChildrenSQL -= new VETreeNodeEvent(tn_LoadingChildrenSQL);
|
||||
tn.LoadingChildrenSQL += new VETreeNodeEvent(tn_LoadingChildrenSQL);
|
||||
tn.LoadChildren(true);
|
||||
}
|
||||
@@ -4377,7 +4331,11 @@ namespace VEPROMS
|
||||
_LastStepRTB.EditModeChanged -= new StepRTBEvent(_LastStepRTB_EditModeChanged);
|
||||
|
||||
_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 = " ";
|
||||
|
||||
if (args == null)
|
||||
@@ -4512,6 +4470,7 @@ namespace VEPROMS
|
||||
displayHistory.MyEditItem = args.MyEditItem;
|
||||
|
||||
lblEditView.Text = args.MyEditItem.MyStepPanel.VwMode == E_ViewMode.Edit ? "Edit" : "View";
|
||||
_CurrentItem.Deleted -= new ItemInfoEvent(_CurrentItem_Deleted);
|
||||
_CurrentItem.Deleted += new ItemInfoEvent(_CurrentItem_Deleted);
|
||||
dlgFindReplace.MyEditItem = args.MyEditItem;
|
||||
SpellChecker.MyEditItem = args.MyEditItem;
|
||||
|
@@ -346,21 +346,21 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
var ii = _CacheByPrimaryKey.FirstOrDefault();
|
||||
|
||||
while (ii.Value.Count > 0)
|
||||
{
|
||||
if (ii.Value[0]?.MyContent?.ContentParts != null)
|
||||
{ foreach (PartInfo pi in ii.Value[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
||||
ii.Value[0].Dispose();
|
||||
}
|
||||
while (ii.Value.Count > 0)
|
||||
{
|
||||
if (ii.Value[0]?.MyContent?.ContentParts != null)
|
||||
{ foreach (PartInfo pi in ii.Value[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
||||
ii.Value[0].Dispose();
|
||||
}
|
||||
_CacheByPrimaryKey.Remove(ii.Key);
|
||||
}
|
||||
|
||||
while (_CacheList.Count > 0)
|
||||
{
|
||||
if (_CacheList[0]?.MyContent?.ContentParts != null)
|
||||
{foreach (PartInfo pi in _CacheList[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
||||
_CacheList[0].Dispose();
|
||||
}
|
||||
{
|
||||
if (_CacheList[0]?.MyContent?.ContentParts != null)
|
||||
{foreach (PartInfo pi in _CacheList[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
||||
_CacheList[0].Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
private bool _PrintAllAtOnce = false;
|
||||
@@ -450,86 +450,86 @@ namespace VEPROMS.CSLA.Library
|
||||
StringBuilder sret = new StringBuilder();
|
||||
ItemInfo pitem = this;
|
||||
while (!pitem.IsSection && !pitem.IsHigh)
|
||||
{
|
||||
{
|
||||
using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID))
|
||||
{
|
||||
string thisTab = stpinfo.MyTab.CleanText;
|
||||
{
|
||||
string thisTab = stpinfo.MyTab.CleanText;
|
||||
|
||||
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
|
||||
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
|
||||
|
||||
if (!string.IsNullOrEmpty(thisTab))
|
||||
{
|
||||
thisTab = thisTab.Trim();
|
||||
}
|
||||
if (!string.IsNullOrEmpty(thisTab))
|
||||
{
|
||||
thisTab = thisTab.Trim();
|
||||
}
|
||||
|
||||
// if the tab is null or
|
||||
// if the the tab is not a letter or number OR
|
||||
// the tab is an AND or OR type and is the letter "o"
|
||||
// then reset the tab an empty string so that the type name along with the count of that type
|
||||
// (ex. "AND 2", "OR 3")
|
||||
if (string.IsNullOrEmpty(thisTab) || (thisTab != string.Empty && (!(char.IsLetterOrDigit(thisTab[0])) || ((pitem.IsAnd || pitem.IsOr || pitem.IsCaution || pitem.IsNote) && thisTab.Contains("o")))))
|
||||
{
|
||||
thisTab = string.Empty;
|
||||
}
|
||||
// if the tab is null or
|
||||
// if the the tab is not a letter or number OR
|
||||
// the tab is an AND or OR type and is the letter "o"
|
||||
// then reset the tab an empty string so that the type name along with the count of that type
|
||||
// (ex. "AND 2", "OR 3")
|
||||
if (string.IsNullOrEmpty(thisTab) || (thisTab != string.Empty && (!(char.IsLetterOrDigit(thisTab[0])) || ((pitem.IsAnd || pitem.IsOr || pitem.IsCaution || pitem.IsNote) && thisTab.Contains("o")))))
|
||||
{
|
||||
thisTab = string.Empty;
|
||||
}
|
||||
|
||||
if (pitem.IsRNOPart)
|
||||
{
|
||||
if (string.IsNullOrEmpty(thisTab))
|
||||
{
|
||||
sret.Insert(0, "RNO.");
|
||||
}
|
||||
else
|
||||
{
|
||||
thisTab = thisTab.Trim();
|
||||
if (pitem.IsRNOPart)
|
||||
{
|
||||
if (string.IsNullOrEmpty(thisTab))
|
||||
{
|
||||
sret.Insert(0, "RNO.");
|
||||
}
|
||||
else
|
||||
{
|
||||
thisTab = thisTab.Trim();
|
||||
|
||||
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
||||
{
|
||||
thisTab += ".";
|
||||
}
|
||||
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
||||
{
|
||||
thisTab += ".";
|
||||
}
|
||||
|
||||
sret.Insert(0, "RNO." + thisTab);
|
||||
}
|
||||
}
|
||||
else if (pitem.IsCaution || pitem.IsNote)
|
||||
{
|
||||
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
|
||||
if (string.IsNullOrEmpty(thisTab))
|
||||
{
|
||||
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
|
||||
}
|
||||
else
|
||||
{
|
||||
thisTab = thisTab.Trim(" ".ToCharArray());
|
||||
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrEmpty(thisTab))
|
||||
{
|
||||
thisTab = thisTab.Trim(" ".ToCharArray());
|
||||
sret.Insert(0, "RNO." + thisTab);
|
||||
}
|
||||
}
|
||||
else if (pitem.IsCaution || pitem.IsNote)
|
||||
{
|
||||
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
|
||||
if (string.IsNullOrEmpty(thisTab))
|
||||
{
|
||||
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
|
||||
}
|
||||
else
|
||||
{
|
||||
thisTab = thisTab.Trim(" ".ToCharArray());
|
||||
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrEmpty(thisTab))
|
||||
{
|
||||
thisTab = thisTab.Trim(" ".ToCharArray());
|
||||
|
||||
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
||||
{
|
||||
thisTab += ".";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
thisTab = "{" + typeName + " " + pitem.Ordinal.ToString() + "}.";
|
||||
}
|
||||
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
||||
{
|
||||
thisTab += ".";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
thisTab = "{" + typeName + " " + pitem.Ordinal.ToString() + "}.";
|
||||
}
|
||||
|
||||
sret.Insert(0, thisTab);
|
||||
}
|
||||
}
|
||||
sret.Insert(0, thisTab);
|
||||
}
|
||||
}
|
||||
|
||||
pitem = pitem.ActiveParent as ItemInfo;
|
||||
pitem = pitem.ActiveParent as ItemInfo;
|
||||
|
||||
if (pitem == null)
|
||||
break;
|
||||
}
|
||||
if (pitem == null)
|
||||
break;
|
||||
}
|
||||
|
||||
return sret.ToString().Trim(" .)".ToCharArray());
|
||||
return sret.ToString().Trim(" .)".ToCharArray());
|
||||
}
|
||||
|
||||
public void SetHeader(VE_Font myFont, string myText)
|
||||
@@ -574,11 +574,11 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
_MyPrevious = null; // Reset list so that the next line gets a new list
|
||||
if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value
|
||||
//if (_ContentID != tmp.ContentID)
|
||||
//{
|
||||
//if (_ContentID != tmp.ContentID)
|
||||
//{
|
||||
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for old value
|
||||
_ContentID = tmp.ContentID; // Update the value
|
||||
//}
|
||||
//}
|
||||
_MyContent = null; // Reset list so that the next line gets a new list
|
||||
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for new value
|
||||
_DTS = tmp.DTS;
|
||||
@@ -674,12 +674,12 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
internal static void SetParentSectionAndDocVersion(ItemInfo itemInfo, IVEDrillDownReadOnly itemParent, SectionInfo sectionInfo, ProcedureInfo procInfo, DocVersionInfo docVersionInfo, bool isAutomatic = false)
|
||||
{
|
||||
// B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database
|
||||
// Added Optional Parameter "bool isAutomatic = false" to disable the RofstLoadingStatus pop-up screen when printing baselines
|
||||
|
||||
|
||||
if (itemInfo == null) return;
|
||||
itemInfo.LoadAllAtOnce = true;
|
||||
itemInfo.ActiveParent = itemParent;
|
||||
@@ -721,7 +721,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The following method is used only in print because the 'printed' data is loaded into
|
||||
/// memory before printing. Find the next item from memory (do not go out to database).
|
||||
@@ -784,7 +784,7 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
bool forceConvertToText = false;
|
||||
TranCheckCount++;
|
||||
|
||||
|
||||
if (!forceConvertToText)
|
||||
{
|
||||
if (traninfo.MyItemToID.ActiveSection != null)
|
||||
@@ -802,7 +802,7 @@ namespace VEPROMS.CSLA.Library
|
||||
content.FixTransitionText(traninfo, true);
|
||||
content.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// B2025-020 Null Reference fix. Added check for valid index into the TransitionTypeList
|
||||
if (!forceConvertToText)
|
||||
@@ -812,7 +812,7 @@ namespace VEPROMS.CSLA.Library
|
||||
forceConvertToText = true;
|
||||
TranFixCount++;
|
||||
itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition type is not available");
|
||||
using (Content content = Content.Get(itemInfo.MyContent.ContentID))
|
||||
using (Content content = Content.Get(itemInfo.MyContent.ContentID))
|
||||
{
|
||||
content.FixTransitionText(traninfo, true);
|
||||
content.Save();
|
||||
@@ -835,14 +835,14 @@ namespace VEPROMS.CSLA.Library
|
||||
content.FixTransitionText(traninfo, true);
|
||||
content.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!forceConvertToText)
|
||||
{
|
||||
if (itemInfo.MyDocVersion != null && traninfo.MyItemToID.MyDocVersion != null && itemInfo.MyDocVersion.VersionID != traninfo.MyItemToID.MyDocVersion.VersionID) //different doc version
|
||||
if (itemInfo.MyDocVersion != null && traninfo.MyItemToID.MyDocVersion != null && itemInfo.MyDocVersion.VersionID != traninfo.MyItemToID.MyDocVersion.VersionID) //different doc version
|
||||
{
|
||||
if (!itemInfo.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[traninfo.TranType].TransMenu.Contains("Proc")) //internal format
|
||||
{
|
||||
@@ -903,7 +903,7 @@ namespace VEPROMS.CSLA.Library
|
||||
if (itemInfo.MyContent.Text.Contains("Link:Transition"))
|
||||
{
|
||||
Content content = Content.Get(itemInfo.MyContent.ContentID);
|
||||
|
||||
|
||||
if (itemInfo.MyContent.ContentTransitions != null)
|
||||
{
|
||||
foreach (TransitionInfo ct in itemInfo.MyContent.ContentTransitions)
|
||||
@@ -913,7 +913,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
|
||||
itemInfo.MyContent.RefreshContentTransitions();
|
||||
|
||||
|
||||
while (content.Text.Contains("Link:Transition"))
|
||||
{
|
||||
TranCheckCount++;
|
||||
@@ -931,7 +931,7 @@ namespace VEPROMS.CSLA.Library
|
||||
else // B2018-043 Eliminate infinite loop for invalid transition structure
|
||||
{
|
||||
// Add annotation for Invalid Transition
|
||||
AddInvalidTransitionAnnotation(itemInfo, "Invalid Transition Format");
|
||||
AddInvalidTransitionAnnotation(itemInfo,"Invalid Transition Format");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -984,16 +984,16 @@ namespace VEPROMS.CSLA.Library
|
||||
ContentInfo myContent = itemInfo.MyContent;
|
||||
string txt = myContent.Text;
|
||||
string regDelete = @"(\\v |)\<START\]\#Link\:Transition(|Range)\:[0-9]+ [0-9]+ [0-9]+(| [0-9]+)\[END\>(\\v0 |)";
|
||||
string txt2 = txt;
|
||||
string txt2=txt;
|
||||
|
||||
do {
|
||||
do{
|
||||
txt = txt2;
|
||||
txt2 = Regex.Replace(txt, regDelete, "");
|
||||
} while (txt2 != txt);
|
||||
} while(txt2 != txt);
|
||||
|
||||
if (txt2 != myContent.Text)
|
||||
if(txt2 != myContent.Text)
|
||||
{
|
||||
using (Content tmp = myContent.Get())
|
||||
using(Content tmp = myContent.Get())
|
||||
{
|
||||
tmp.Text = txt2;
|
||||
tmp.Save();
|
||||
@@ -1001,7 +1001,7 @@ namespace VEPROMS.CSLA.Library
|
||||
AddInvalidTransitionAnnotation(itemInfo, "Removed Empty Transition Text");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static bool IsTransitionToNonEditable(TransitionInfo ti)
|
||||
{
|
||||
foreach (TransitionInfo til in TransitionsToNonEditable)
|
||||
@@ -1032,7 +1032,7 @@ namespace VEPROMS.CSLA.Library
|
||||
public static int ROCheckCount = 0;
|
||||
public static int ROFixCount = 0;
|
||||
private static AnnotationType _VolianCommentType = null; // Using this to flag ro value issues with byron to braidwood
|
||||
|
||||
|
||||
public static AnnotationType VolianCommentType
|
||||
{
|
||||
get
|
||||
@@ -1065,7 +1065,7 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
string roval = lookup.GetTranslatedRoValue(rousage.ROID, this.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, this.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, false, this);
|
||||
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
|
||||
|
||||
|
||||
this.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, this);
|
||||
string newText = this.MyContent.Text;
|
||||
|
||||
@@ -1263,7 +1263,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static string GetCombinedTab(ItemInfo itemInfo, string parTab)
|
||||
{
|
||||
string pTab = parTab == null ? "" : parTab;
|
||||
@@ -1276,7 +1276,7 @@ namespace VEPROMS.CSLA.Library
|
||||
// for supplemental information, bulleted tabs need to be included in the tab. The 'isletterordigit' should not occur for supinfo items -
|
||||
// and this includes the parent of the supinfo since that is the tab used for supinfo concatenated with its parent. (B2017-120)
|
||||
// // B2020-154: Added check for the tab to start with '(', tabs that started with this were not included in the combined tab
|
||||
if (thisTab != null && thisTab != "" && (!char.IsLetterOrDigit(thisTab[0]) && thisTab[0] != '(') && !vcbHeaderCheck && !itemInfo.IsInSupInfo && (itemInfo.SupInfos == null || itemInfo.SupInfos.Count <= 0)) return pTab;
|
||||
if (thisTab != null && thisTab != "" && (!char.IsLetterOrDigit(thisTab[0]) && thisTab[0] != '(') && !vcbHeaderCheck && !itemInfo.IsInSupInfo && (itemInfo.SupInfos == null || itemInfo.SupInfos.Count <= 0 )) return pTab;
|
||||
if (itemInfo.FormatStepData.NumberWithLevel) pTab = itemInfo.MyHLS.MyTab.CleanText.Trim();
|
||||
// if the parent tab ends with a alphanumeric and this tab is alphanumeric, add a '.' to separate them
|
||||
// also, include use the separator for bullets if doing the supplemental information tab (B2017-120)
|
||||
@@ -1285,7 +1285,7 @@ namespace VEPROMS.CSLA.Library
|
||||
if (ms && mn) pTab = pTab.TrimEnd() + ".";
|
||||
// remove ending '.' (if this is a hls, don't remove the '.')
|
||||
if (!itemInfo.IsHigh && thisTab.EndsWith(".")) thisTab = thisTab.Substring(0, thisTab.Length - 1);
|
||||
if (itemInfo.HasParentTab) return thisTab.Trim(); // F2020-023: if tab includes parent tab already, don't concatenate it
|
||||
if (itemInfo.HasParentTab) return thisTab.Trim(); // F2020-023: if tab includes parent tab already, don't concatenate it
|
||||
return pTab + thisTab.Trim();
|
||||
}
|
||||
|
||||
@@ -1341,8 +1341,8 @@ namespace VEPROMS.CSLA.Library
|
||||
// B2023-037: loading print text, resolve the RO symbols
|
||||
|
||||
bool GTLT = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
|
||||
bool GLTArrows = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
|
||||
string roval = lookup.GetTranslatedRoValue(rousage.ROID, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, GTLT || GLTArrows, itemInfo);
|
||||
bool GLTArrows = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
|
||||
string roval = lookup.GetTranslatedRoValue(rousage.ROID, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, GTLT || GLTArrows, itemInfo);
|
||||
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
|
||||
itemInfo.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, itemInfo);
|
||||
}
|
||||
@@ -1367,7 +1367,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (itemInfo.MyContent.ContentTransitionCount > 0)
|
||||
{
|
||||
foreach (TransitionInfo traninfo in itemInfo.MyContent.ContentTransitions)
|
||||
@@ -1440,14 +1440,14 @@ namespace VEPROMS.CSLA.Library
|
||||
private float _MSWordPageCount = 0;
|
||||
public float MSWordPageCount
|
||||
{
|
||||
get {
|
||||
get {
|
||||
if (_MSWordPageCount == 0) // C2018-011 Get the proper word page count from the saved pdf attachment
|
||||
if (MyContent.MyEntry != null && MyContent.MyEntry.MyDocument != null)
|
||||
{
|
||||
PdfInfo pi = PdfInfo.Get(this, false);
|
||||
if (pi != null) _MSWordPageCount = (float)pi.PageCount;// B2018-071 Don't crash on invalid MS Word section
|
||||
if(pi != null) _MSWordPageCount = (float)pi.PageCount;// B2018-071 Don't crash on invalid MS Word section
|
||||
}
|
||||
return _MSWordPageCount;
|
||||
return _MSWordPageCount;
|
||||
}
|
||||
set { _MSWordPageCount = value; }
|
||||
}
|
||||
@@ -1649,7 +1649,7 @@ namespace VEPROMS.CSLA.Library
|
||||
// the addition of the parent.IsNote, the note was breaking between 2 ANDs (the 1st AND was a
|
||||
// steplevel of 5, but the 2nd was a steplevel of 4). If something similar is seen with Cautions,
|
||||
// that check could be added.
|
||||
if (!item.IsRNOPart && !item.IsHigh && (item.MyPrevious == null || (((item.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.EnhancedBackgrounds) != E_PurchaseOptions.EnhancedBackgrounds)
|
||||
if (!item.IsRNOPart && !item.IsHigh && (item.MyPrevious == null || (((item.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.EnhancedBackgrounds) != E_PurchaseOptions.EnhancedBackgrounds)
|
||||
&& item.MyParent != null && item.MyParent.IsNote)))
|
||||
level += firstInc;
|
||||
else
|
||||
@@ -1716,7 +1716,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
return maxRNOLevel;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
private bool ParentAndOr
|
||||
{
|
||||
@@ -1767,7 +1767,7 @@ namespace VEPROMS.CSLA.Library
|
||||
RemoveEnhancedFromConfig(false);
|
||||
}
|
||||
|
||||
public void RemoveEnhancedFromConfig(bool doOneStepOnly)
|
||||
public void RemoveEnhancedFromConfig(bool doOneStepOnly)
|
||||
{
|
||||
XmlDocument xd = new XmlDocument();
|
||||
if (this.MyContent.Config == null || this.MyContent.Config == "") return; // B2017-164 & B2017-172 check for null or empty config
|
||||
@@ -1782,7 +1782,7 @@ namespace VEPROMS.CSLA.Library
|
||||
ctmp.Config = config;
|
||||
ctmp.Save();
|
||||
ContentInfo.Refresh(ctmp);
|
||||
_MyConfig = null; // refresh the memory value
|
||||
_MyConfig = null; // refresh the memory value
|
||||
}
|
||||
}
|
||||
if (doOneStepOnly) return;
|
||||
@@ -2071,7 +2071,7 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
bool rval = false;
|
||||
ItemInfo itm = this;
|
||||
while (itm != null && !itm.IsHigh && !rval)
|
||||
while (itm != null &&!itm.IsHigh && !rval)
|
||||
{
|
||||
rval = itm.IsCautionOrNotePart;
|
||||
if (!rval) itm = itm.MyParent;
|
||||
@@ -2111,16 +2111,6 @@ namespace VEPROMS.CSLA.Library
|
||||
return (sd.Type == type);
|
||||
}
|
||||
|
||||
// C2025-024 - Electronic Procedures - Export
|
||||
//return if should export blanks
|
||||
public bool EPexportblank(int AnnTypeID)
|
||||
{
|
||||
if (ActiveFormat.PlantFormat.EPFormatFiles.Count == 0 || !ActiveFormat.PlantFormat.EPFormatFiles.Exists(x => x.AnnotationTypeID == AnnTypeID))
|
||||
return true;
|
||||
else
|
||||
return ActiveFormat.PlantFormat.EPFormatFiles.Find(x => x.AnnotationTypeID == AnnTypeID).exportblank;
|
||||
}
|
||||
|
||||
// C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||
//return EPFields that match this step type or a parent step type
|
||||
public EPFields GetValidEPFields(int AnnTypeID)
|
||||
@@ -8335,6 +8325,7 @@ namespace VEPROMS.CSLA.Library
|
||||
if (_ProcedureConfig == null)
|
||||
{
|
||||
_ProcedureConfig = new ProcedureConfig(this);
|
||||
this.MyContent.Changed -= new ContentInfoEvent(MyContent_Changed);
|
||||
this.MyContent.Changed += new ContentInfoEvent(MyContent_Changed);
|
||||
}
|
||||
return _ProcedureConfig;
|
||||
@@ -8344,6 +8335,7 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
void MyContent_Changed(object sender)
|
||||
{
|
||||
this.MyContent.Changed -= new ContentInfoEvent(MyContent_Changed);
|
||||
this.MyContent.Changed += new ContentInfoEvent(MyContent_Changed);
|
||||
}
|
||||
#endregion
|
||||
|
@@ -11,157 +11,138 @@ using static VEPROMS.CSLA.Library.ROFSTLookup;
|
||||
|
||||
namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||
// class to handle storage and access of EPFormatFile and EPFormatFile details
|
||||
#region EPFormatFiles
|
||||
[TypeConverter(typeof(vlnListConverter<EPFormatFiles, EPFormatFile>))]
|
||||
public class EPFormatFiles : vlnFormatList<EPFormatFile>
|
||||
{
|
||||
public EPFormatFiles(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
|
||||
}
|
||||
#endregion
|
||||
#region EPFormatFile
|
||||
public class EPFormatFile : vlnFormatItem
|
||||
{
|
||||
#region Constructor
|
||||
public EPFormatFile(XmlNode xmlNode) : base(xmlNode) { }
|
||||
public EPFormatFile() : base() { }
|
||||
#endregion
|
||||
#region Business Fields
|
||||
// Name of the EP Viewer Format File
|
||||
private LazyLoad<string> _Name;
|
||||
[DisplayName("Name")]
|
||||
[Description("EP Viewer File Name")]
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _Name, "@Name");
|
||||
}
|
||||
}
|
||||
// Name of the EP Viewer Format File
|
||||
private LazyLoad<string> _Description;
|
||||
[DisplayName("Description")]
|
||||
[Description("EP Viewer Description")]
|
||||
public string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _Description, "@Description");
|
||||
}
|
||||
}
|
||||
// Id of Annotation Type Associated with this file
|
||||
private LazyLoad<int?> _AnnotationTypeID;
|
||||
[DisplayName("AnnotationTypeID")]
|
||||
[Description("Id of Annotation Type Associated with this file")]
|
||||
public int? AnnotationTypeID
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _AnnotationTypeID, "@AnnotationTypeID");
|
||||
}
|
||||
}
|
||||
|
||||
// Return Name of Annotation that EP Format File is Attached to
|
||||
public string AnnotationName()
|
||||
{
|
||||
return AnnotationTypeInfo.Get((int) AnnotationTypeID).Name;
|
||||
}
|
||||
|
||||
//if xml value is blank, should element export?
|
||||
//defaults to true
|
||||
private LazyLoad<bool> _exportblank;
|
||||
[DisplayName("exportblank")]
|
||||
[Description("if xml value is blank, should element export?")]
|
||||
public bool exportblank
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _exportblank, "@exportblank");
|
||||
}
|
||||
}
|
||||
// returns a list of fields that are defined in the EP format's structure
|
||||
private EPFields _FieldList;
|
||||
public EPFields FieldList
|
||||
{
|
||||
get
|
||||
{
|
||||
XmlDocument xd = GetEPFormatData(Name);
|
||||
return _FieldList ?? (_FieldList = new EPFields(xd.SelectNodes("/EPFormat/EPField")));
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Business Methods
|
||||
// update all in-use annotation types that have Electronic Procedures
|
||||
public static void UpdateAllInUseEPAnnotationTypes()
|
||||
{
|
||||
foreach (int formatid in GetAllInUseFormats())
|
||||
{
|
||||
PlantFormat frmt = FormatInfo.Get(formatid).PlantFormat;
|
||||
foreach (EPFormatFile EP in frmt.EPFormatFiles)
|
||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||
// class to handle storage and access of EPFormatFile and EPFormatFile details
|
||||
#region EPFormatFiles
|
||||
[TypeConverter(typeof(vlnListConverter<EPFormatFiles, EPFormatFile>))]
|
||||
public class EPFormatFiles : vlnFormatList<EPFormatFile>
|
||||
{
|
||||
public EPFormatFiles(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
|
||||
}
|
||||
#endregion
|
||||
#region EPFormatFile
|
||||
public class EPFormatFile : vlnFormatItem
|
||||
{
|
||||
#region Constructor
|
||||
public EPFormatFile(XmlNode xmlNode) : base(xmlNode) { }
|
||||
public EPFormatFile() : base() { }
|
||||
#endregion
|
||||
#region Business Fields
|
||||
// Name of the EP Viewer Format File
|
||||
private LazyLoad<string> _Name;
|
||||
[DisplayName("Name")]
|
||||
[Description("EP Viewer File Name")]
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _Name, "@Name");
|
||||
}
|
||||
}
|
||||
// Name of the EP Viewer Format File
|
||||
private LazyLoad<string> _Description;
|
||||
[DisplayName("Description")]
|
||||
[Description("EP Viewer Description")]
|
||||
public string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _Description, "@Description");
|
||||
}
|
||||
}
|
||||
// Id of Annotation Type Associated with this file
|
||||
private LazyLoad<int?> _AnnotationTypeID;
|
||||
[DisplayName("AnnotationTypeID")]
|
||||
[Description("Id of Annotation Type Associated with this file")]
|
||||
public int? AnnotationTypeID
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _AnnotationTypeID, "@AnnotationTypeID");
|
||||
}
|
||||
}
|
||||
// returns a list of fields that are defined in the EP format's structure
|
||||
private EPFields _FieldList;
|
||||
public EPFields FieldList
|
||||
{
|
||||
get
|
||||
{
|
||||
XmlDocument xd = GetEPFormatData(Name);
|
||||
return _FieldList == null ? _FieldList = new EPFields(xd.SelectNodes("/EPFormat/EPField")) : _FieldList;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Business Methods
|
||||
// update all in-use annotation types that have Electronic Procedures
|
||||
public static void UpdateAllInUseEPAnnotationTypes()
|
||||
{
|
||||
foreach (int formatid in GetAllInUseFormats())
|
||||
{
|
||||
PlantFormat frmt = FormatInfo.Get(formatid).PlantFormat;
|
||||
foreach (EPFormatFile EP in frmt.EPFormatFiles)
|
||||
{
|
||||
UpdateAnnotationTypeAsEP((int) EP.AnnotationTypeID);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Data Access
|
||||
// static - Load EP Format details - save to db (insert/update)
|
||||
public static void UpdateEPFormat(string name, string data, string userID)
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.StoredProcedure;
|
||||
cm.CommandText = "vesp_UpdateEPFormat";
|
||||
cm.Parameters.AddWithValue("@name", name);
|
||||
cm.Parameters.AddWithValue("@data", data);
|
||||
cm.Parameters.AddWithValue("@userID", userID);
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
cm.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
UpdateAnnotationTypeAsEP((int) EP.AnnotationTypeID);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Data Access
|
||||
// static - Load EP Format details - save to db (insert/update)
|
||||
public static void UpdateEPFormat(string name, string data, string userID)
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.StoredProcedure;
|
||||
cm.CommandText = "vesp_UpdateEPFormat";
|
||||
cm.Parameters.AddWithValue("@name", name);
|
||||
cm.Parameters.AddWithValue("@data", data);
|
||||
cm.Parameters.AddWithValue("@userID", userID);
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
cm.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// load data for getting fieldlist for this EPFormat
|
||||
public static XmlDocument GetEPFormatData(string name)
|
||||
{
|
||||
name = name.Replace(".xml", "");
|
||||
// load data for getting fieldlist for this EPFormat
|
||||
public static XmlDocument GetEPFormatData(string name)
|
||||
{
|
||||
name = name.Replace(".xml", "");
|
||||
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.Text;
|
||||
cm.CommandText = "Select Data FROM EPFormats where Name = @Name";
|
||||
cm.Parameters.AddWithValue("@Name", name);
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||
{
|
||||
if (dr.Read())
|
||||
{
|
||||
XmlDocument xd = new XmlDocument();
|
||||
xd.XmlResolver = null;
|
||||
xd.LoadXml(dr.GetString("Data"));
|
||||
return xd;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.Text;
|
||||
cm.CommandText = "Select Data FROM EPFormats where Name = @Name";
|
||||
cm.Parameters.AddWithValue("@Name", name);
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||
{
|
||||
if (dr.Read())
|
||||
{
|
||||
XmlDocument xd = new XmlDocument();
|
||||
xd.XmlResolver = null;
|
||||
xd.LoadXml(dr.GetString("Data"));
|
||||
return xd;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Get all in-use formats
|
||||
public static List<int> GetAllInUseFormats()
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.Text;
|
||||
cm.CommandText = @"SELECT Distinct Formats.[FormatID]
|
||||
// Get all in-use formats
|
||||
public static List<int> GetAllInUseFormats()
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.Text;
|
||||
cm.CommandText = @"SELECT Distinct Formats.[FormatID]
|
||||
FROM
|
||||
(
|
||||
SELECT FormatID FROM Contents
|
||||
@@ -172,272 +153,260 @@ namespace VEPROMS.CSLA.Library
|
||||
) inuse
|
||||
inner join Formats
|
||||
on inuse.FormatID = Formats.FormatID";
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
|
||||
using (DataTable dt = new DataTable())
|
||||
{
|
||||
using (SqlDataAdapter da = new SqlDataAdapter(cm))
|
||||
{
|
||||
da.Fill(dt);
|
||||
return dt.AsEnumerable().Select(x => x.Field<int>("FormatID")).ToList();
|
||||
}
|
||||
}
|
||||
using (DataTable dt = new DataTable())
|
||||
{
|
||||
using (SqlDataAdapter da = new SqlDataAdapter(cm))
|
||||
{
|
||||
da.Fill(dt);
|
||||
return dt.AsEnumerable().Select(x => x.Field<int>("FormatID")).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// update an annotation type as an Electronic Procedure Annotation Type
|
||||
public static void UpdateAnnotationTypeAsEP(int typeID)
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.Text;
|
||||
cm.CommandText = @"Update AnnotationTypes
|
||||
// update an annotation type as an Electronic Procedure Annotation Type
|
||||
public static void UpdateAnnotationTypeAsEP(int typeID)
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.Text;
|
||||
cm.CommandText = @"Update AnnotationTypes
|
||||
SET IsEPAnnotationType = 1
|
||||
WHERE TypeID = @typeID";
|
||||
cm.Parameters.AddWithValue("@typeID", typeID);
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
cm.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
cm.Parameters.AddWithValue("@typeID", typeID);
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
cm.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Returns true if there are any EP Annotation Types
|
||||
public static bool IsEPAnnotationType()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.Text;
|
||||
cm.CommandText = @"SELECT RESULT = CASE WHEN
|
||||
// Returns true if there are any EP Annotation Types
|
||||
public static bool IsEPAnnotationType()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.Text;
|
||||
cm.CommandText = @"SELECT RESULT = CASE WHEN
|
||||
EXISTS(SELECT 1 FROM AnnotationTypes where IsEPAnnotationType = 1)
|
||||
THEN 1 ELSE 0 END";
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||
{
|
||||
if (dr.Read() && dr.GetInt32("RESULT") == 1)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
// EP Support has not yet been added for this DB
|
||||
// IsEPAnnotationType does not exist
|
||||
// need to run PROMS Fixes
|
||||
// until then will ignore EP code
|
||||
// instead of crashing for a field not found
|
||||
}
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||
{
|
||||
if (dr.Read() && dr.GetInt32("RESULT") == 1)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
// EP Support has not yet been added for this DB
|
||||
// IsEPAnnotationType does not exist
|
||||
// need to run PROMS Fixes
|
||||
// until then will ignore EP code
|
||||
// instead of crashing for a field not found
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class EPFields : vlnFormatList<EPField>
|
||||
{
|
||||
public class EPFields : vlnFormatList<EPField>
|
||||
{
|
||||
public EPFields()
|
||||
{
|
||||
}
|
||||
|
||||
public EPFields(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
|
||||
}
|
||||
// EP field class
|
||||
public class EPField : vlnFormatItem
|
||||
{
|
||||
public EPField(XmlNode xmlNode) : base(xmlNode) { }
|
||||
public EPField() : base() { }
|
||||
private LazyLoad<string> _name;
|
||||
public string name
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _name, "@name");
|
||||
}
|
||||
}
|
||||
private LazyLoad<string> _type;
|
||||
public string type
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _type, "@type");
|
||||
}
|
||||
}
|
||||
private LazyLoad<string> _label;
|
||||
public string label
|
||||
{
|
||||
get
|
||||
{
|
||||
string tmp = LazyLoad(ref _label, "@label");
|
||||
}
|
||||
// EP field class
|
||||
public class EPField : vlnFormatItem
|
||||
{
|
||||
public EPField(XmlNode xmlNode) : base(xmlNode) { }
|
||||
public EPField() : base() { }
|
||||
private LazyLoad<string> _name;
|
||||
public string name
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _name, "@name");
|
||||
}
|
||||
}
|
||||
private LazyLoad<string> _type;
|
||||
public string type
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _type, "@type");
|
||||
}
|
||||
}
|
||||
private LazyLoad<string> _label;
|
||||
public string label
|
||||
{
|
||||
get
|
||||
{
|
||||
string tmp = LazyLoad(ref _label, "@label");
|
||||
|
||||
if (string.IsNullOrEmpty(tmp))
|
||||
return LazyLoad(ref _name, "@name");
|
||||
else
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
private LazyLoad<string> _text;
|
||||
public string text
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _text, "@text");
|
||||
}
|
||||
}
|
||||
//roid of group item that individual sub-items will be the choices for the list/combobox for ROSINGLE and ROMULTI
|
||||
private LazyLoad<string> _rosource;
|
||||
public string rosource
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _rosource, "@rosource");
|
||||
}
|
||||
}
|
||||
//the columns in the RO that will be included in the exports
|
||||
private LazyLoad<string> _returncols;
|
||||
public List<string> returncols()
|
||||
{
|
||||
try
|
||||
{
|
||||
string tmp = LazyLoad(ref _returncols, "@returncols");
|
||||
if (string.IsNullOrEmpty(tmp))
|
||||
return LazyLoad(ref _name, "@name");
|
||||
else
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
private LazyLoad<string> _text;
|
||||
public string text
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _text, "@text");
|
||||
}
|
||||
}
|
||||
//roid of group item that individual sub-items will be the choices for the list/combobox for ROSINGLE and ROMULTI
|
||||
private LazyLoad<string> _rosource;
|
||||
public string rosource
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _rosource, "@rosource");
|
||||
}
|
||||
}
|
||||
//the columns in the RO that will be included in the exports
|
||||
private LazyLoad<string> _returncols;
|
||||
public List<string> returncols()
|
||||
{
|
||||
try
|
||||
{
|
||||
string tmp = LazyLoad(ref _returncols, "@returncols");
|
||||
|
||||
if (string.IsNullOrEmpty(tmp))
|
||||
return new List<string>();
|
||||
else
|
||||
return tmp.Split(',').Select(p => p.Trim()).ToList();
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new ArgumentException($"Error in returncols for EP file, field: {name}");
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(tmp))
|
||||
return new List<string>();
|
||||
else
|
||||
return tmp.Split(',').Select(p => p.Trim()).ToList();
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new ArgumentException($"Error in returncols for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}");
|
||||
}
|
||||
}
|
||||
|
||||
//number of lines for a multi-line text box to span
|
||||
private LazyLoad<int?> _numlines;
|
||||
public int numlines
|
||||
{
|
||||
get
|
||||
{
|
||||
int? tmp = LazyLoad(ref _numlines, "@numlines");
|
||||
//number of lines for a multi-line text box to span
|
||||
private LazyLoad<int?> _numlines;
|
||||
public int numlines
|
||||
{
|
||||
get
|
||||
{
|
||||
int? tmp = LazyLoad(ref _numlines, "@numlines");
|
||||
|
||||
if (tmp == null)
|
||||
return 1;
|
||||
if (tmp == null)
|
||||
return 1;
|
||||
|
||||
return (int) tmp;
|
||||
}
|
||||
}
|
||||
//step types that the EPForma Item is valid for (as a list of types)
|
||||
private LazyLoad<string> _validforsteptypes;
|
||||
return (int) tmp;
|
||||
}
|
||||
}
|
||||
//step types that the EPForma Item is valid for (as a list of types)
|
||||
private LazyLoad<string> _validforsteptypes;
|
||||
public List<string> validforsteptypes()
|
||||
{
|
||||
try
|
||||
{
|
||||
string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes");
|
||||
return tmp.Split(',').Select(p => p.Trim()).ToList();
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new ArgumentException($"Error in validforsteptypes for EP file, field: {name}");
|
||||
}
|
||||
}
|
||||
public bool IsValidForStepType(string StepType)
|
||||
{
|
||||
List<string> tmp = validforsteptypes();
|
||||
return tmp.Contains(StepType);
|
||||
}
|
||||
{
|
||||
try
|
||||
{
|
||||
string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes");
|
||||
return tmp.Split(',').Select(p => p.Trim()).ToList();
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new ArgumentException($"Error in validforsteptypes for EP file: {((EPFormatFile) MyParentFormat).Name}.xml, field: {name}");
|
||||
}
|
||||
}
|
||||
public bool IsValidForStepType(string StepType)
|
||||
{
|
||||
List<string> tmp = validforsteptypes();
|
||||
return tmp.Contains(StepType);
|
||||
}
|
||||
|
||||
//return a list of items based on the ROsource specified in the EPFormat File
|
||||
//will return all RO items under the Group that's roid = the rosource
|
||||
public List<ROListItem> getROList(AnnotationInfo currAnn, bool includeblank)
|
||||
{
|
||||
if (string.IsNullOrEmpty(rosource))
|
||||
return new List<ROListItem>();
|
||||
//return a list of items based on the ROsource specified in the EPFormat File
|
||||
//will return all RO items under the Group that's roid = the rosource
|
||||
public List<ROListItem> getROList(AnnotationInfo currAnn, bool includeblank)
|
||||
{
|
||||
if (string.IsNullOrEmpty(rosource))
|
||||
return new List<ROListItem>();
|
||||
|
||||
try
|
||||
{
|
||||
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
||||
try
|
||||
{
|
||||
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
||||
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
||||
|
||||
if (MyDocVersion.DocVersionAssociations != null && MyDocVersion.DocVersionAssociations.Any())
|
||||
{
|
||||
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
||||
string roid = FormatRoidKey(rosource, false);
|
||||
rochild[] children = lookup.GetRoChildrenByRoid(roid);
|
||||
|
||||
string roid = FormatRoidKey(rosource, false);
|
||||
rochild[] children = lookup.GetRoChildrenByRoid(roid);
|
||||
List<ROListItem> mylist = children.Select(x => new ROListItem(x.title, x.roid.Substring(0, 12))).ToList();
|
||||
if (includeblank)
|
||||
mylist.Insert(0, new ROListItem("", ""));
|
||||
|
||||
List<ROListItem> mylist = children.Select(x => new ROListItem(x.title, x.roid.Substring(0, 12))).ToList();
|
||||
if (includeblank)
|
||||
mylist.Insert(0, new ROListItem("", ""));
|
||||
return mylist;
|
||||
}
|
||||
catch (Exception Ex)
|
||||
{
|
||||
throw new ArgumentException($"Error in rosource for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}");
|
||||
}
|
||||
}
|
||||
|
||||
return mylist;
|
||||
}
|
||||
else
|
||||
{
|
||||
return new List<ROListItem>
|
||||
{
|
||||
new ROListItem("", "")
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new ArgumentException($"Error in rosource for EP file, field: {name}");
|
||||
}
|
||||
}
|
||||
//return a list of values for the specified ROID
|
||||
//given the EP items return columns
|
||||
//will return all RO items under the Group that's roid = the rosource
|
||||
public List<string> getROValuesList(AnnotationInfo currAnn, string roid)
|
||||
{
|
||||
if (string.IsNullOrEmpty(roid))
|
||||
return new List<string>();
|
||||
|
||||
//return a list of values for the specified ROID
|
||||
//given the EP items return columns
|
||||
//will return all RO items under the Group that's roid = the rosource
|
||||
public List<string> getROValuesList(AnnotationInfo currAnn, string roid)
|
||||
{
|
||||
if (string.IsNullOrEmpty(roid))
|
||||
return new List<string>();
|
||||
List<string> values = new List<string>();
|
||||
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
||||
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
||||
rochild ro = lookup.GetRoChild(roid);
|
||||
|
||||
List<string> values = new List<string>();
|
||||
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
||||
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
||||
rochild ro = lookup.GetRoChild(roid);
|
||||
List<string> rtncols = returncols();
|
||||
|
||||
List<string> rtncols = returncols();
|
||||
if (rtncols.Count == 0)
|
||||
{
|
||||
values.Add(ro.value);
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (string rcol in rtncols)
|
||||
{
|
||||
rochild ro_indiv = Array.Find(ro.children, x => x.appid.EndsWith($".{rcol}"));
|
||||
if (ro_indiv.value != null) values.Add(ro_indiv.value);
|
||||
}
|
||||
}
|
||||
|
||||
if (rtncols.Count == 0)
|
||||
{
|
||||
values.Add(ro.value);
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (string rcol in rtncols)
|
||||
{
|
||||
rochild ro_indiv = Array.Find(ro.children, x => x.appid.EndsWith($".{rcol}"));
|
||||
if (ro_indiv.value != null) values.Add(ro_indiv.value);
|
||||
}
|
||||
}
|
||||
return values;
|
||||
|
||||
return values;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||
// class to handle return of RO Lists
|
||||
#region EPFormatFiles
|
||||
public class ROListItem
|
||||
{
|
||||
public string Text { get; private set; }
|
||||
public string Value { get; private set; }
|
||||
public ROListItem(string _text, string _value)
|
||||
{
|
||||
Text = _text; Value = _value;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||
// class to handle return of RO Lists
|
||||
#region EPFormatFiles
|
||||
public class ROListItem
|
||||
{
|
||||
public string Text { get; private set; }
|
||||
public string Value { get; private set; }
|
||||
public ROListItem(string _text, string _value)
|
||||
{
|
||||
Text = _text; Value = _value;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
175
PROMS/VEPROMS.CSLA.Library/Minimal/AnnotationstypeSections.cs
Normal file
175
PROMS/VEPROMS.CSLA.Library/Minimal/AnnotationstypeSections.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -386,12 +386,19 @@ namespace VEPROMS.CSLA.Library
|
||||
ItemInfo myItemInfo = o as ItemInfo;
|
||||
if (myItemInfo != null)
|
||||
{
|
||||
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.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.NewSiblingAfter -= new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
|
||||
myItemInfo.NewSiblingAfter += new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
|
||||
myItemInfo.NewSiblingBefore -= new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
|
||||
myItemInfo.NewSiblingBefore += new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
|
||||
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;
|
||||
if (myItemInfo != null)
|
||||
{
|
||||
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.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.NewSiblingAfter -= new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
|
||||
myItemInfo.NewSiblingAfter += new ItemInfoInsertEvent(myItemInfo_NewSiblingAfter);
|
||||
myItemInfo.NewSiblingBefore -= new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
|
||||
myItemInfo.NewSiblingBefore += new ItemInfoInsertEvent(myItemInfo_NewSiblingBefore);
|
||||
myItemInfo.NewChild -= new ItemInfoInsertEvent(myItemInfo_NewChild);
|
||||
myItemInfo.NewChild += new ItemInfoInsertEvent(myItemInfo_NewChild);
|
||||
}
|
||||
}
|
||||
|
@@ -387,6 +387,7 @@
|
||||
<Compile Include="Generated\ZContentInfo.cs" />
|
||||
<Compile Include="Generated\ZTransition.cs" />
|
||||
<Compile Include="Generated\ZTransitionInfo.cs" />
|
||||
<Compile Include="Minimal\AnnotationstypeSections.cs" />
|
||||
<Compile Include="Minimal\UserSettings.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="VEObjects\VEDrillDown.cs" />
|
||||
|
@@ -38,6 +38,9 @@ EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Baseline", "..\Baseline\Baseline.csproj", "{8B29E0DE-B6C9-4041-8817-319FDE3123C4}"
|
||||
EndProject
|
||||
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
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
@@ -119,8 +119,8 @@ namespace Volian.Controls.Library
|
||||
if (CurrentItem.MyDocVersion != null)
|
||||
if (CurrentItem.MyDocVersion.DocVersionAssociationCount > 0)
|
||||
_ROPath = CurrentItem.MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath;
|
||||
ProcItem = CurrentItem.MyProcedure;
|
||||
}
|
||||
|
||||
}
|
||||
public AnnotationInfo FirstExeAnnotation(ItemInfo ii)
|
||||
{
|
||||
if (ii == null) return null;
|
||||
@@ -364,7 +364,11 @@ namespace Volian.Controls.Library
|
||||
|
||||
cbGridAnnoType.DisplayMember = "Name";
|
||||
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.
|
||||
// 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.
|
||||
|
@@ -69,6 +69,7 @@ namespace Volian.Controls.Library
|
||||
_AnnotationDetails = annotationDetails;
|
||||
cbAnnoType.DisplayMember = "Name";
|
||||
cbAnnoType.DataSource = AnnotationTypeInfoList.Get();
|
||||
lbResults.MouseMove -= new MouseEventHandler(lbResults_MouseMove);
|
||||
lbResults.MouseMove += new MouseEventHandler(lbResults_MouseMove);
|
||||
_TabControl = tc;
|
||||
}
|
||||
|
@@ -354,7 +354,10 @@ namespace Volian.Controls.Library
|
||||
private void WireCheckboxes()
|
||||
{
|
||||
foreach (CheckBox cb in MyCheckBoxes.Values)
|
||||
{
|
||||
cb.CheckedChanged -= new EventHandler(cb_CheckedChanged);
|
||||
cb.CheckedChanged += new EventHandler(cb_CheckedChanged);
|
||||
}
|
||||
}
|
||||
private void UnwireCheckboxes(bool reset)
|
||||
{
|
||||
|
@@ -211,7 +211,9 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
_myRTB = value;
|
||||
|
||||
MyRTB.LinkChanged -= new StepRTBLinkEvent(MyRTB_LinkChanged);
|
||||
MyRTB.LinkChanged += new StepRTBLinkEvent(MyRTB_LinkChanged);
|
||||
MyRTB.SelectionChanged -= new EventHandler(MyRTB_SelectionChanged);
|
||||
MyRTB.SelectionChanged += new EventHandler(MyRTB_SelectionChanged);
|
||||
|
||||
if (string.IsNullOrEmpty(MyRTB.MyLinkText))
|
||||
|
@@ -161,8 +161,11 @@ namespace Volian.Controls.Library
|
||||
|
||||
if (_MyROFSTLookup == null) return;
|
||||
|
||||
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.AfterCollapse -= new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse);
|
||||
advTreeRO.AfterCollapse += new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse);
|
||||
|
||||
topnode = new DevComponents.AdvTree.Node();
|
||||
@@ -250,6 +253,7 @@ namespace Volian.Controls.Library
|
||||
topnode.Tag = fi;
|
||||
}
|
||||
|
||||
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
|
||||
|
@@ -468,7 +468,9 @@ namespace Volian.Controls.Library
|
||||
lastLastFormatID = fv.FormatID;
|
||||
}
|
||||
}
|
||||
cbxTranVersion.SelectedIndexChanged -= new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
||||
cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
||||
cbxTranFormat.SelectedIndexChanged -= new EventHandler(cbxTranFormat_SelectedIndexChanged);
|
||||
cbxTranFormat.SelectedIndexChanged += new EventHandler(cbxTranFormat_SelectedIndexChanged);
|
||||
}
|
||||
this.Cursor = Cursors.Default;
|
||||
@@ -892,6 +894,7 @@ namespace Volian.Controls.Library
|
||||
topnode.DataKey = fi.FolderID;
|
||||
}
|
||||
|
||||
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
|
||||
@@ -986,6 +989,7 @@ namespace Volian.Controls.Library
|
||||
annoTypes.Add(new AnnotationTypeSearch(ati.Name, ati.TypeID.ToString()));
|
||||
cbxAnnoTypes.DisplayMember = "Name";
|
||||
cbxAnnoTypes.DataSource = annoTypes;
|
||||
lbSrchResults.MouseMove -= new MouseEventHandler(lbSrchResults_MouseMove);
|
||||
lbSrchResults.MouseMove += new MouseEventHandler(lbSrchResults_MouseMove);
|
||||
_TabControl = tc;
|
||||
}
|
||||
|
@@ -378,7 +378,10 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
_MyStepRTB = _MyEditItem.MyStepRTB;
|
||||
if (_MyStepRTB != null)
|
||||
{
|
||||
_MyStepRTB.Disposed -= new EventHandler(_MyStepRTB_Disposed);
|
||||
_MyStepRTB.Disposed += new EventHandler(_MyStepRTB_Disposed);
|
||||
}
|
||||
}
|
||||
else
|
||||
_MyStepRTB = null;
|
||||
@@ -469,6 +472,7 @@ namespace Volian.Controls.Library
|
||||
myBar.DockTabControl.CloseButtonPosition = DevComponents.DotNetBar.eTabCloseButtonPosition.Right;
|
||||
myBar.DockTabControl.Width = ClientRectangle.Width;
|
||||
}
|
||||
myBar.DockTabClosing -= new DockTabClosingEventHandler(myBar_DockTabClosing);
|
||||
myBar.DockTabClosing += new DockTabClosingEventHandler(myBar_DockTabClosing);
|
||||
if (!myBar.Visible)
|
||||
myBar.Visible = true;
|
||||
|
@@ -566,6 +566,7 @@ namespace Volian.Controls.Library
|
||||
startitm = startitm.GetNext();
|
||||
}
|
||||
if (!setsel2) tvTran.SelectedNode = tvTran.Nodes[0];
|
||||
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
|
||||
tvTran.ItemHeight++;
|
||||
@@ -599,6 +600,7 @@ namespace Volian.Controls.Library
|
||||
startitm = startitm.GetNext();
|
||||
}
|
||||
if (!setsel) tvTran.SelectedNode = tvTran.Nodes[0];
|
||||
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
|
||||
tvTran.ItemHeight++;
|
||||
|
@@ -214,10 +214,14 @@ namespace Volian.Controls.Library
|
||||
UserCheckOffChar = (char)co.UIMark;
|
||||
}
|
||||
// Deal with changes in content data
|
||||
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);
|
||||
// Deal with change in item data
|
||||
value.Changed -= new ItemInfoEvent(value_Changed);
|
||||
value.Changed += new ItemInfoEvent(value_Changed);
|
||||
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
|
||||
//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
|
||||
SetupHeader(itemInfo);
|
||||
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.BackColorChanged -= new EventHandler(EditItem_BackColorChanged);
|
||||
this.BackColorChanged += new EventHandler(EditItem_BackColorChanged);
|
||||
this.Move -= new EventHandler(EditItem_Move);
|
||||
this.Move += new EventHandler(EditItem_Move);
|
||||
this.Resize -= new EventHandler(EditItem_Resize);
|
||||
this.Resize += new EventHandler(EditItem_Resize);
|
||||
if (itemInfo != null)
|
||||
{
|
||||
@@ -4050,6 +4058,7 @@ namespace Volian.Controls.Library
|
||||
SeqLevel = myParentEditItem.SeqLevel + ((myChildRelation == ChildRelation.After || myChildRelation == ChildRelation.Before) && itemInfo.IsSequential ? 1 : 0);
|
||||
//// TIMING: DisplayItem.TimeIt("CSLARTB seqLevel");
|
||||
MyItemInfo = itemInfo;
|
||||
MyItemInfo.MyConfig.PropertyChanged -= new PropertyChangedEventHandler(MyConfig_PropertyChanged);
|
||||
MyItemInfo.MyConfig.PropertyChanged += new PropertyChangedEventHandler(MyConfig_PropertyChanged);
|
||||
}
|
||||
//// TIMING: DisplayItem.TimeIt("CSLARTB MyItem");
|
||||
|
@@ -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 + @"}}";
|
||||
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
|
||||
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");
|
||||
|
@@ -120,7 +120,7 @@ namespace Volian.Controls.Library
|
||||
foreach (string t in tmps) cmb.Items.Add(t.Trim());
|
||||
string val = MyConfig.GetValue("EP", EP.name);
|
||||
if (val != null && val != "") cmb.SelectedItem = val;
|
||||
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Length).FirstOrDefault(), cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Length).First(), cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||
cmb.Width = cmb.DropDownWidth;
|
||||
_DicComboBox.Add(EP.name, cmb);
|
||||
panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1);
|
||||
@@ -135,7 +135,7 @@ namespace Volian.Controls.Library
|
||||
cmb.ValueMember = "Value";
|
||||
cmb.DataSource = tmps;
|
||||
cmb.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).FirstOrDefault()?.Text, cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).First().Text, cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||
cmb.Width = cmb.DropDownWidth;
|
||||
|
||||
_DicSingleRO.Add(EP.name, cmb);
|
||||
@@ -148,7 +148,7 @@ namespace Volian.Controls.Library
|
||||
List<ROListItem> tmps = EP.getROList(currAnn, false);
|
||||
lb.DisplayMember = "Text";
|
||||
lb.ValueMember = "Value";
|
||||
lb.Width = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).FirstOrDefault()?.Text, lb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||
lb.Width = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).First().Text, lb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||
|
||||
lb.DataSource = tmps;
|
||||
_DicMultiRO.Add(EP.name, lb);
|
||||
|
@@ -22,11 +22,11 @@ namespace Volian.Controls.Library
|
||||
public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args);
|
||||
public delegate void vlnTreeViewTimeEvent(object sender, vlnTreeTimeEventArgs args);
|
||||
public delegate void vlnTreeViewStatusEvent(object sender, vlnTreeStatusEventArgs args);
|
||||
public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args);
|
||||
public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args);
|
||||
public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args);
|
||||
public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args);
|
||||
public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args);
|
||||
public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args);
|
||||
|
||||
|
||||
public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args);
|
||||
public delegate bool vlnTreeViewItemInfoDeleteFolderEvent(object sender, vlnTreeFolderDeleteEventArgs args);
|
||||
public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args);
|
||||
@@ -152,15 +152,6 @@ namespace Volian.Controls.Library
|
||||
get { return _Index; }
|
||||
set { _Index = value; }
|
||||
}
|
||||
|
||||
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||
//AnnotationType that would be doing an export for
|
||||
private int _AnnotationTypeId = -1;
|
||||
public int AnnotationTypeId
|
||||
{
|
||||
get { return _AnnotationTypeId; }
|
||||
set { _AnnotationTypeId = value; }
|
||||
}
|
||||
//jcb multiunit
|
||||
private string _Unit;
|
||||
public string Unit
|
||||
@@ -188,13 +179,6 @@ namespace Volian.Controls.Library
|
||||
_Destination = destination;
|
||||
_Index = index;
|
||||
}
|
||||
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, int annTypeId)
|
||||
{
|
||||
_Node = node;
|
||||
_Destination = destination;
|
||||
_Index = index;
|
||||
_AnnotationTypeId = annTypeId;
|
||||
}
|
||||
//jcb multiunit
|
||||
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex)
|
||||
{
|
||||
@@ -204,20 +188,11 @@ namespace Volian.Controls.Library
|
||||
_Unit = unit;
|
||||
_UnitIndex = unitIndex;
|
||||
}
|
||||
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex, int annTypeId)
|
||||
{
|
||||
_Node = node;
|
||||
_Destination = destination;
|
||||
_Index = index;
|
||||
_Unit = unit;
|
||||
_UnitIndex = unitIndex;
|
||||
_AnnotationTypeId = annTypeId;
|
||||
}
|
||||
//end jcb multiunit
|
||||
#endregion
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}", NodePath(this.Node), this.Destination, this.Index, this.Unit, this.UnitIndex);
|
||||
return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}", NodePath(this.Node), this.Destination, this.Index, this.Unit, this.UnitIndex);
|
||||
}
|
||||
|
||||
private string NodePath(TreeNode node)
|
||||
@@ -347,7 +322,7 @@ namespace Volian.Controls.Library
|
||||
_PasteType = pasteType;
|
||||
_Type = type;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
@@ -598,16 +573,11 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public event vlnTreeViewEvent ExportImportProcedureSets;
|
||||
private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args);
|
||||
}
|
||||
public event vlnTreeViewEvent ExportImportProcedureSets;
|
||||
private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args);
|
||||
}
|
||||
public event vlnTreeViewEvent PrintTransitionReport;
|
||||
private void OnPrintTransitionReport(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
@@ -659,7 +629,7 @@ namespace Volian.Controls.Library
|
||||
// This event was added to update the Step Properties/RO & Tools/Search RO & Reports
|
||||
// when an update of ro.fst is done & the ro trees on those panels needs refreshed.
|
||||
// (bug fix B2015-226)
|
||||
public event StepPanelTabDisplayEvent TabDisplay;
|
||||
public event StepPanelTabDisplayEvent TabDisplay;
|
||||
private void OnTabDisplay(object sender, StepPanelTabDisplayEventArgs args)
|
||||
{
|
||||
if (TabDisplay != null) TabDisplay(sender, args);
|
||||
@@ -736,10 +706,7 @@ namespace Volian.Controls.Library
|
||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))// && fi.MyParent == null) //VEPROMS level
|
||||
{
|
||||
if (fi.HasWorkingDraft)
|
||||
{
|
||||
cm.MenuItems.Add("Export Procedure Set", new EventHandler(mi_Click));
|
||||
//AddEPExport(cm.MenuItems, 0, null);
|
||||
}
|
||||
else
|
||||
cm.MenuItems.Add("Import Procedure Set", new EventHandler(mi_Click));
|
||||
if (DoSpecificInfo)
|
||||
@@ -759,12 +726,12 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
// B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate
|
||||
if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0)
|
||||
if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0)
|
||||
cm.MenuItems.Add("New Folder", new EventHandler(mi_Click));
|
||||
if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft)
|
||||
if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft)
|
||||
cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click));
|
||||
}
|
||||
if (fi.HasWorkingDraft)
|
||||
if (fi.HasWorkingDraft)
|
||||
cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click));
|
||||
}
|
||||
else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs
|
||||
@@ -773,14 +740,14 @@ namespace Volian.Controls.Library
|
||||
//_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true));
|
||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi))
|
||||
{
|
||||
cm.MenuItems.Add("Import Procedure", mi_Click);
|
||||
}
|
||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi))
|
||||
{
|
||||
cm.MenuItems.Add("Import Procedure", mi_Click);
|
||||
}
|
||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi))
|
||||
{
|
||||
OwnerInfoList.Reset();
|
||||
oil = OwnerInfoList.GetByVersionID(dvi.VersionID);
|
||||
if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo)
|
||||
if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo)
|
||||
cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click));
|
||||
cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click));
|
||||
cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click));
|
||||
@@ -874,10 +841,7 @@ namespace Volian.Controls.Library
|
||||
oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure);
|
||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion))
|
||||
{
|
||||
cm.MenuItems.Add("Export Procedure", mi_Click);
|
||||
//C2025-024 Proms XML Output - if have any EP Format files, add dropdown menu for exporting EP formats
|
||||
if (pri.ActiveFormat.PlantFormat.EPFormatFiles.Count > 0)
|
||||
AddEPExport(cm.MenuItems, pri.MyDocVersion.MultiUnitCount, pri.MyDocVersion.UnitNames, pri.ActiveFormat.PlantFormat.EPFormatFiles);
|
||||
cm.MenuItems.Add("Export Procedure", mi_Click);
|
||||
}
|
||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion))
|
||||
{
|
||||
@@ -902,6 +866,7 @@ namespace Volian.Controls.Library
|
||||
MenuItem miqp = new MenuItem("Quick Print");
|
||||
//MenuItem mips = new MenuItem("Print Section");
|
||||
MenuItem mia = new MenuItem("Approve");
|
||||
|
||||
int k = 0;
|
||||
foreach (string s in pri.MyDocVersion.UnitNames)
|
||||
{
|
||||
@@ -929,7 +894,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
cm.MenuItems.Add(micas);
|
||||
cm.MenuItems.Add(mitcas);
|
||||
cm.MenuItems.Add(mip);
|
||||
cm.MenuItems.Add(mip);
|
||||
cm.MenuItems.Add(miqp);
|
||||
//cm.MenuItems.Add(mips);
|
||||
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
||||
@@ -1163,35 +1128,35 @@ namespace Volian.Controls.Library
|
||||
|
||||
#region Menu_Delete
|
||||
if (ok)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
// Add delete to the menu unless at the very 'top' node, on a grouping (partinfo)
|
||||
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
|
||||
PartInfo pi = tn.VEObject as PartInfo;
|
||||
if (pi == null && tn.Parent != null) // it's not a part and it's not the top....
|
||||
{
|
||||
// Add delete to the menu unless at the very 'top' node, on a grouping (partinfo)
|
||||
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
|
||||
PartInfo pi = tn.VEObject as PartInfo;
|
||||
if (pi == null && tn.Parent != null) // it's not a part and it's not the top....
|
||||
fi = tn.VEObject as FolderInfo;
|
||||
if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children
|
||||
{
|
||||
fi = tn.VEObject as FolderInfo;
|
||||
if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children
|
||||
DocVersionInfo di = tn.VEObject as DocVersionInfo;
|
||||
if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children
|
||||
{
|
||||
DocVersionInfo di = tn.VEObject as DocVersionInfo;
|
||||
if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children
|
||||
{
|
||||
// if it's an enhanced step that was linked from a source, don't allow delete
|
||||
bool canDoDel = true;
|
||||
ItemInfo iienh = tn.VEObject as ItemInfo;
|
||||
if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false;
|
||||
if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false;
|
||||
if (iienh != null && iienh.IsEnhancedStep) canDoDel = false;
|
||||
if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click));
|
||||
}
|
||||
// if it's an enhanced step that was linked from a source, don't allow delete
|
||||
bool canDoDel = true;
|
||||
ItemInfo iienh = tn.VEObject as ItemInfo;
|
||||
if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false;
|
||||
if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false;
|
||||
if (iienh != null && iienh.IsEnhancedStep) canDoDel = false;
|
||||
if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
//_MyLog.WarnFormat("Context Menu 6 - {0}", GC.GetTotalMemory(true));
|
||||
#region Menu_ExternalTransitions
|
||||
@@ -1255,8 +1220,8 @@ namespace Volian.Controls.Library
|
||||
// node (RNOs, Steps, Cautions, Notes) or at the step level.
|
||||
// B2020-105 Allow Set Administrators to rename folder's (sets of procedures) to which they have been given access.
|
||||
if (tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo));
|
||||
else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))
|
||||
: (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)
|
||||
else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))
|
||||
: (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)
|
||||
|| ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)));
|
||||
PartInfo pia = tn.VEObject as PartInfo;
|
||||
ItemInfo ii = tn.VEObject as ItemInfo;
|
||||
@@ -1337,7 +1302,7 @@ namespace Volian.Controls.Library
|
||||
itm.Text == "Procedure Set Specific Information" || itm.Text == "Approve All Procedures for" ||
|
||||
itm.Text == "Approve Some Procedures" || itm.Text == "Approve Some Procedures for")
|
||||
itm.Enabled = false;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1366,9 +1331,9 @@ namespace Volian.Controls.Library
|
||||
// F2022-024 added Time Critical Action Summary option
|
||||
foreach (MenuItem itm in cm.MenuItems)
|
||||
{
|
||||
if (itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" ||
|
||||
if (itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" ||
|
||||
itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" ||
|
||||
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
|
||||
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
|
||||
itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure")
|
||||
itm.Enabled = false;
|
||||
}
|
||||
@@ -1390,44 +1355,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
|
||||
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||
// Add context menu for exporting Electronic Procedures
|
||||
// if has an Electronic procedure
|
||||
// then loop through and add an Export for each EP Viewer
|
||||
private void AddEPExport(Menu.MenuItemCollection menuItems, int MultiUnitCount, string[] UnitNames, EPFormatFiles EPFiles)
|
||||
{
|
||||
//add outer menu
|
||||
MenuItem mi = menuItems.Add("Electronic Procedure Viewer Export");
|
||||
foreach (EPFormatFile epAnnType in EPFiles)
|
||||
{
|
||||
|
||||
//Add item for each individual EP Viewer
|
||||
MenuItem mv = mi.MenuItems.Add(epAnnType.AnnotationName());
|
||||
|
||||
//tag will be of format:
|
||||
//{EP Annotation Type ID},{Unit}
|
||||
//if not multi-unit, unit will be zero.
|
||||
if (MultiUnitCount > 1)
|
||||
{
|
||||
//if multi-unit, add menu item for each unit
|
||||
int k = 0;
|
||||
foreach (string s in UnitNames)
|
||||
{
|
||||
k++;
|
||||
MenuItem multiunit_mv = mv.MenuItems.Add(s);
|
||||
multiunit_mv.Tag = $"{epAnnType.AnnotationTypeID},{k}";
|
||||
multiunit_mv.Click += new EventHandler(miEP_Click);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mv.Tag = $"{epAnnType.AnnotationTypeID},0";
|
||||
mv.Click += new EventHandler(miEP_Click);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddApprovedRevisionsMultiUnit(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
||||
private void AddApprovedRevisionsMultiUnit(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
||||
{
|
||||
_currentPri = pri;
|
||||
RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID);
|
||||
@@ -1478,11 +1406,11 @@ namespace Volian.Controls.Library
|
||||
ril = null;
|
||||
}
|
||||
}
|
||||
public void AddNewNode(IVEDrillDownReadOnly o)
|
||||
{
|
||||
VETreeNode tn = new VETreeNode(o);
|
||||
SelectedNode.Nodes.Add(tn);
|
||||
}
|
||||
public void AddNewNode(IVEDrillDownReadOnly o)
|
||||
{
|
||||
VETreeNode tn = new VETreeNode(o);
|
||||
SelectedNode.Nodes.Add(tn);
|
||||
}
|
||||
private void AddApprovedRevisions(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
||||
{
|
||||
try
|
||||
@@ -1491,7 +1419,7 @@ namespace Volian.Controls.Library
|
||||
_currentPri = pri;
|
||||
using (RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID))
|
||||
{
|
||||
//_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true));
|
||||
//_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true));
|
||||
if (ril.Count == 0) return; // no versions to list
|
||||
MenuItem mi = menuItemCollection.Add("Versions");
|
||||
int lastApprovedRevisionID = 0;
|
||||
@@ -1625,7 +1553,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
|
||||
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));
|
||||
}
|
||||
void MultiUnitApprovedRevision_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1748,7 +1676,7 @@ namespace Volian.Controls.Library
|
||||
// 3) 'to' docversion is 'source' and 'from' procedure is within this docversion
|
||||
// 4) 'to' docVersion is 'enhanced' and 'from' procedure is not
|
||||
bool canPaste = false;
|
||||
|
||||
|
||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||
DocVersionConfig dvc = dvi.DocVersionConfig;
|
||||
bool docVersionIsEnhanced = dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type == 0;
|
||||
@@ -1769,7 +1697,7 @@ namespace Volian.Controls.Library
|
||||
if (iiClipboard.IsRtfRaw) canPaste = false; // never paste an equation.
|
||||
if (canPaste) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click));
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1987,7 +1915,7 @@ namespace Volian.Controls.Library
|
||||
OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||
break;
|
||||
case "Print All Procedures for":
|
||||
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||
break;
|
||||
case "Approve":
|
||||
OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||
@@ -2048,7 +1976,7 @@ namespace Volian.Controls.Library
|
||||
if (hasValidConnectingProc)
|
||||
{
|
||||
ItemInfo lprc = ItemInfo.Get(seleds[0].ItemID);
|
||||
lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc);
|
||||
lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc);
|
||||
}
|
||||
else
|
||||
selprc.DoUnlinkEnhanced(selprc, seleds[0].Type, !hasValidConnectingProc);
|
||||
@@ -2068,7 +1996,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
ItemInfo lprc = ItemInfo.Get(ed.ItemID);
|
||||
bool hasValidConnectingProc = CheckForValidEnhLink(lprc);
|
||||
// if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure.
|
||||
// if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure.
|
||||
if (hasValidConnectingProc)
|
||||
lprc.DoUnlinkEnhanced(lprc, ed.Type, !hasValidConnectingProc);
|
||||
else
|
||||
@@ -2092,37 +2020,37 @@ namespace Volian.Controls.Library
|
||||
OnNodeSI(this, new vlnTreeEventArgs(tn, null, 0));
|
||||
return;
|
||||
}
|
||||
if (mi.Text.StartsWith("Collapse"))
|
||||
{
|
||||
if (mi.Text.StartsWith("Collapse"))
|
||||
{
|
||||
CollapseProcedures();
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (mi.Text == "Print Transition Report")
|
||||
{
|
||||
OnPrintTransitionReport(this, new vlnTreeEventArgs(SelectedNode as VETreeNode));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure")
|
||||
{
|
||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
return;
|
||||
}
|
||||
if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure")
|
||||
{
|
||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1));
|
||||
return;
|
||||
}
|
||||
if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to"))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure")
|
||||
{
|
||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
return;
|
||||
}
|
||||
if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure")
|
||||
{
|
||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1));
|
||||
return;
|
||||
}
|
||||
if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to"))
|
||||
{
|
||||
OnProcedureCheckedOutTo(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
return;
|
||||
@@ -2148,7 +2076,7 @@ namespace Volian.Controls.Library
|
||||
break;
|
||||
case "New Folder":
|
||||
SelectedNode.Expand();
|
||||
tv_NodeNew(MenuSelections.Folder);
|
||||
tv_NodeNew(MenuSelections.Folder);
|
||||
break;
|
||||
case "Create Working Draft":
|
||||
SelectedNode.Expand();
|
||||
@@ -2192,7 +2120,7 @@ namespace Volian.Controls.Library
|
||||
tv_NodeCopy();
|
||||
break;
|
||||
// lots of paste options:
|
||||
case "Paste Procedure":
|
||||
case "Paste Procedure":
|
||||
case "Paste Procedure Before":
|
||||
case "Paste Procedure After":
|
||||
case "Paste Section":
|
||||
@@ -2226,7 +2154,7 @@ namespace Volian.Controls.Library
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
case "Delete":
|
||||
if (tv_NodeDelete())
|
||||
{
|
||||
@@ -2294,12 +2222,12 @@ namespace Volian.Controls.Library
|
||||
case "Create Continuous Action Summary":
|
||||
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
break;
|
||||
// F2022-024 Time Critical Action Summary
|
||||
// F2022-024 Time Critical Action Summary
|
||||
case "Create Time Critical Action Summary":
|
||||
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
break;
|
||||
// B2017-243 added the following two Cannot Paste items when dealing with enhanced documents
|
||||
// when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted
|
||||
// B2017-243 added the following two Cannot Paste items when dealing with enhanced documents
|
||||
// when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted
|
||||
case "CANNOT PASTE HERE. Click for more information...":
|
||||
FlexibleMessageBox.Show("You have copied a document that is linked to an Enhanced Document.\n\n" +
|
||||
"It can only be pasted before or after another document, within the set, that is linked to an Enhanced Document.", "Cannot Paste Here");
|
||||
@@ -2323,23 +2251,6 @@ namespace Volian.Controls.Library
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||
// Handles clicking of items in the context menu
|
||||
// for exporting Electronic Procedures
|
||||
// tag will be of format:
|
||||
// {EP Annotation Type ID},{Unit}
|
||||
// if not multi-unit, unit will be zero.
|
||||
void miEP_Click(object sender, EventArgs e)
|
||||
{
|
||||
MenuItem mi = sender as MenuItem;
|
||||
int annTypeid = int.Parse(((string)mi.Tag).Split(',')[0]);
|
||||
int unit = int.Parse(((string)mi.Tag).Split(',')[1]);
|
||||
if (unit == 0)
|
||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, annTypeid));
|
||||
else
|
||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, "", unit, annTypeid));
|
||||
}
|
||||
private bool _doingCollapseNode = false; // B2016-058 when collapse is done, it always calls the drag node event which doesn't appear to be needed
|
||||
private void CollapseProcedures()
|
||||
{
|
||||
@@ -2358,7 +2269,7 @@ namespace Volian.Controls.Library
|
||||
foreach (VETreeNode tnc in tn.Nodes)
|
||||
CollapseProcedures(tnc);
|
||||
if (tn.VEObject as DocVersionInfo == null && tn.VEObject as FolderInfo == null)
|
||||
tn.Collapse();
|
||||
tn.Collapse();
|
||||
_doingCollapseNode = true; // B2016-058 this will prevent a Drag Node error when collapsing an RNOs, Cautions, or Notes tree node
|
||||
}
|
||||
private void tv_RemoveChgIds()
|
||||
@@ -2418,7 +2329,7 @@ namespace Volian.Controls.Library
|
||||
using (DocVersion dv = DocVersion.Get(MyDVI.VersionID))
|
||||
{
|
||||
swROUpdate = new System.IO.StreamWriter(ROFstInfo.ROUpdateResultsPath(MyDVI)); // RO changes placed in file in the Documents\VEPROMS folder
|
||||
// B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo
|
||||
// B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo
|
||||
if (dv.ROfstLoadingFigures || dv.NewerRoFst) // B2017-125 see if loading figures was completed
|
||||
{
|
||||
// only load the RO.fst
|
||||
@@ -2559,7 +2470,7 @@ namespace Volian.Controls.Library
|
||||
return;
|
||||
}
|
||||
// C2017-003: ro data in sql server, check for sql connection string
|
||||
if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring")
|
||||
if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring")
|
||||
roloc = roloc + " \"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString + "\"";
|
||||
// C2021-026 pass in Parent/Child information (list of the children)
|
||||
// B2022-019 look at all DocVersions to find ParentChild information
|
||||
@@ -2610,7 +2521,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
VETreeNode tn = SelectedNode as VETreeNode;
|
||||
|
||||
|
||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||
// Check for paste into a docversion - queries/code is different than paste related to an item (into a proc or section)
|
||||
if (dvi != null)
|
||||
@@ -2660,7 +2571,7 @@ namespace Volian.Controls.Library
|
||||
if (OnlyProc && repitem != null && tmp != null)
|
||||
{
|
||||
VETreeNode tn1 = new VETreeNode(repitem);
|
||||
tmp.Nodes.Add(tn1);
|
||||
tmp.Nodes.Add(tn1);
|
||||
SelectedNode = tn1;
|
||||
}
|
||||
}
|
||||
@@ -2669,7 +2580,7 @@ namespace Volian.Controls.Library
|
||||
|
||||
|
||||
//if (p.IndexOf("Replace") <= -1)
|
||||
this.Cursor = Cursors.Default;
|
||||
this.Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
public void PasteAsDocVersionChild(VETreeNode tn, int copyStartID)
|
||||
@@ -2738,7 +2649,7 @@ namespace Volian.Controls.Library
|
||||
// the item to be pasted in the step editor and the tree.
|
||||
ItemInfo newItemInfo = null;
|
||||
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
|
||||
if (!ii.IsProcedure)
|
||||
if (!ii.IsProcedure)
|
||||
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, false);
|
||||
if (ii.IsProcedure || !OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type)))
|
||||
{
|
||||
@@ -2801,7 +2712,7 @@ namespace Volian.Controls.Library
|
||||
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
|
||||
SelectedNode = tn1;
|
||||
}
|
||||
private void tv_NodeCopy()
|
||||
private void tv_NodeCopy()
|
||||
{
|
||||
if (SelectedNode == null) return;
|
||||
VETreeNode tn = SelectedNode as VETreeNode;
|
||||
@@ -2839,7 +2750,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
using (Folder folder = folderInfo.Get())
|
||||
{
|
||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig));
|
||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig));
|
||||
}
|
||||
}
|
||||
private void OpenProperties(DocVersionInfo dvInfo)
|
||||
@@ -2853,7 +2764,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
using (Procedure proc = procInfo.Get())
|
||||
{
|
||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig));
|
||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig));
|
||||
}
|
||||
}
|
||||
private void OpenProperties(SectionInfo sectInfo)
|
||||
@@ -2866,7 +2777,7 @@ namespace Volian.Controls.Library
|
||||
title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title);
|
||||
else
|
||||
title = string.Format("{0} Properties", sectInfo.SectionConfig.Title);
|
||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig));
|
||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig));
|
||||
}
|
||||
}
|
||||
private void OpenProperties(StepInfo stpinfo)
|
||||
@@ -3004,7 +2915,7 @@ namespace Volian.Controls.Library
|
||||
procedure.Save();
|
||||
tn = new VETreeNode(_LastProcedureInfo);
|
||||
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
||||
// The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034)
|
||||
// The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034)
|
||||
if (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures();
|
||||
if (procedure.MyProcedureInfo.CreateEnhanced)
|
||||
{
|
||||
@@ -3046,7 +2957,7 @@ namespace Volian.Controls.Library
|
||||
else
|
||||
p2 = procedure.ItemID;
|
||||
}
|
||||
if (p2 != -1)
|
||||
if (p2 != -1)
|
||||
DeleteItemInfoAndChildren(_LastProcedureInfo); // Delete Item and reset Previous and Next
|
||||
}
|
||||
#endregion
|
||||
@@ -3056,11 +2967,11 @@ namespace Volian.Controls.Library
|
||||
string message = string.Empty;
|
||||
if (_LastProcedureInfo != null)
|
||||
if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message))
|
||||
{
|
||||
FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
OnUnPauseRefresh(this, null);
|
||||
return;
|
||||
}
|
||||
{
|
||||
FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
OnUnPauseRefresh(this, null);
|
||||
return;
|
||||
}
|
||||
int s1 = -1;
|
||||
if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null))
|
||||
{
|
||||
@@ -3113,8 +3024,8 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
tn = new VETreeNode(_LastSectionInfo);
|
||||
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
||||
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
||||
// Enhanced section:
|
||||
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
||||
// Enhanced section:
|
||||
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
|
||||
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
||||
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
||||
@@ -3142,7 +3053,7 @@ namespace Volian.Controls.Library
|
||||
if (s1 != -1)
|
||||
{
|
||||
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
||||
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
||||
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
||||
_LastTreeNode.ChildrenLoaded = false;
|
||||
_LastTreeNode.RefreshNode();
|
||||
_LastTreeNode.Collapse();
|
||||
@@ -3189,7 +3100,7 @@ namespace Volian.Controls.Library
|
||||
if (s2 != -1)
|
||||
{
|
||||
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
||||
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
||||
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
||||
_LastTreeNode.ChildrenLoaded = false;
|
||||
_LastTreeNode.RefreshNode();
|
||||
_LastTreeNode.Collapse();
|
||||
@@ -3386,7 +3297,7 @@ namespace Volian.Controls.Library
|
||||
cs.Save();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private Section CreateNewSection()
|
||||
{
|
||||
// B2020-087 the config for SubSection_Edit was sometimes set even when there wasn't any subsections,
|
||||
@@ -3426,7 +3337,7 @@ namespace Volian.Controls.Library
|
||||
// The parent step was not open in the step editor, just create new step(s) and add treenode.
|
||||
int newId = -1;
|
||||
// B2020-076: if this step has a template, insert template steps.
|
||||
int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002);
|
||||
int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002);
|
||||
if (topType != -1)
|
||||
{
|
||||
ItemInfo tmp = null;
|
||||
@@ -3646,7 +3557,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
foreach (DVEnhancedDocument dve in dvc.MyEnhancedDocuments)
|
||||
{
|
||||
if (dve.Type != 0)
|
||||
if (dve.Type != 0)
|
||||
DocVersion.Delete(dve.VersionID);
|
||||
else
|
||||
{
|
||||
@@ -3692,7 +3603,7 @@ namespace Volian.Controls.Library
|
||||
if (ed.Type != 0) enhIds.Add(ed.ItemID);
|
||||
// always return false because an event gets fired to delete tree nodes.
|
||||
if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false;
|
||||
|
||||
|
||||
_LastProcedureInfo = null;
|
||||
foreach (int enhId in enhIds)
|
||||
{
|
||||
@@ -3791,7 +3702,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public void RemoveFolder(int folderId)
|
||||
{
|
||||
TreeNode nodeToRemove = FindNodeById(folderId, this.Nodes);
|
||||
@@ -3865,7 +3776,7 @@ namespace Volian.Controls.Library
|
||||
// C2020-033: Support delete to bring up Search/Incoming Transitions panel
|
||||
if (ex.Message.Contains("has External Transitions"))
|
||||
{
|
||||
ItemInfo iis = ItemInfo.Get(ii.ItemID);
|
||||
ItemInfo iis = ItemInfo.Get(ii.ItemID);
|
||||
OnSearchIncTransIn(this, new vlnTreeItemInfoEventArgs(iis));
|
||||
iis = ii.HandleSqlExceptionOnDelete(ex);
|
||||
}
|
||||
@@ -3963,7 +3874,7 @@ namespace Volian.Controls.Library
|
||||
ItemInfo iidrag = ((VETreeNode)dragNode).VEObject as ItemInfo;
|
||||
FolderInfo fdrag = ((VETreeNode)dragNode).VEObject as FolderInfo;
|
||||
DocVersionInfo ddrag = ((VETreeNode)dragNode).VEObject as DocVersionInfo;
|
||||
if ((iidrag == null && fdrag == null && ddrag == null))
|
||||
if ((iidrag == null && fdrag == null && ddrag == null))
|
||||
{
|
||||
FlexibleMessageBox.Show("Cannot drag/drop a grouping node.");
|
||||
return;
|
||||
@@ -4014,7 +3925,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
get { return _lastScroll; }
|
||||
}
|
||||
private string _location = string.Empty;
|
||||
private string _location = string.Empty;
|
||||
#endregion
|
||||
#region Constructors
|
||||
public DropLocation(TreeView tv, System.Windows.Forms.DragEventArgs e, DateTime lastScroll)
|
||||
@@ -4131,7 +4042,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
return;
|
||||
}
|
||||
//if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString());
|
||||
//if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString());
|
||||
// Changed the color of the drag indicator to always be red
|
||||
Color lc = (_position == DropPosition.After ? Color.Red : Color.Red);
|
||||
Brush lb = (_position == DropPosition.After ? Brushes.Red : Brushes.Red);
|
||||
@@ -4158,12 +4069,12 @@ namespace Volian.Controls.Library
|
||||
//if (e.Effect == DragDropEffects.None) return;
|
||||
if (_dropNode != null)
|
||||
{
|
||||
// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond);
|
||||
// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond);
|
||||
DragHelper.ImageList_DragShowNolock(false);
|
||||
TreeView tv = _dropNode.TreeView;
|
||||
TreeNode tmp = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y)));
|
||||
// if (!ScrollOnly)
|
||||
// {
|
||||
// if (!ScrollOnly)
|
||||
// {
|
||||
if (ScrollTreeView(tmp) || !ScrollOnly)
|
||||
{
|
||||
//if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation2 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond);
|
||||
@@ -4176,8 +4087,8 @@ namespace Volian.Controls.Library
|
||||
if (_position != DropPosition.Child) InsertPointer(tmp, g);
|
||||
}
|
||||
}
|
||||
// }
|
||||
// else ScrollTreeView(tmp);
|
||||
// }
|
||||
// else ScrollTreeView(tmp);
|
||||
DragHelper.ImageList_DragShowNolock(true);
|
||||
}
|
||||
}
|
||||
@@ -4200,10 +4111,10 @@ namespace Volian.Controls.Library
|
||||
tn.NextVisibleNode.EnsureVisible();// Make sure that the next node is visible
|
||||
else
|
||||
if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode.IsVisible == false)
|
||||
tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible }
|
||||
else
|
||||
tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible }
|
||||
else
|
||||
if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.IsVisible == false)
|
||||
tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible
|
||||
tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible
|
||||
retval = (top != tn.Bounds.Top);
|
||||
// if (retval) if(_MyLog.IsInfoEnabled)_MyLog.Info("Scroll");
|
||||
}
|
||||
@@ -4236,7 +4147,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
DragDropEffects ee = e.Effect;
|
||||
if (e.KeyState == 13) // Shift and Control Keys to do a move.
|
||||
ee = DragDropEffects.Move;
|
||||
ee = DragDropEffects.Move;
|
||||
else
|
||||
ee = DragDropEffects.None; // Default - Do nothing
|
||||
if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node
|
||||
@@ -4432,28 +4343,28 @@ namespace Volian.Controls.Library
|
||||
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragDrop", ex);
|
||||
}
|
||||
}
|
||||
// private void DumpMembers(object o)
|
||||
// {
|
||||
// Type t = o.GetType();
|
||||
// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString());
|
||||
// MemberInfo[] mis = t.GetMembers();
|
||||
// int i = 0;
|
||||
// foreach (MemberInfo mi in mis)
|
||||
// {
|
||||
// i++;
|
||||
// try
|
||||
// {
|
||||
// //if(mi.MemberType != MemberTypes.Method)
|
||||
// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType);
|
||||
//// if (fi.Name == "TreeView")
|
||||
//// fi.SetValue(o, null);
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// private void DumpMembers(object o)
|
||||
// {
|
||||
// Type t = o.GetType();
|
||||
// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString());
|
||||
// MemberInfo[] mis = t.GetMembers();
|
||||
// int i = 0;
|
||||
// foreach (MemberInfo mi in mis)
|
||||
// {
|
||||
// i++;
|
||||
// try
|
||||
// {
|
||||
// //if(mi.MemberType != MemberTypes.Method)
|
||||
// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType);
|
||||
//// if (fi.Name == "TreeView")
|
||||
//// fi.SetValue(o, null);
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
private TreeNode Clone(TreeNode tn)
|
||||
{
|
||||
|
||||
|
@@ -1688,7 +1688,7 @@ namespace Volian.Print.Library
|
||||
System.Windows.Forms.MessageBox.Show(msg.ToString(), "Error during PDF creation for search:", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Exclamation);
|
||||
}
|
||||
|
||||
public static string BuildStepTab(ItemInfo item)
|
||||
private static string BuildStepTab(ItemInfo item)
|
||||
{
|
||||
if (item == null)
|
||||
return string.Empty;
|
||||
|
Reference in New Issue
Block a user