Compare commits
15 Commits
C2025-044
...
C2025-027-
Author | SHA1 | Date | |
---|---|---|---|
009243b091 | |||
e31e0b6680 | |||
449bb2522b | |||
453dce9520 | |||
655592186b | |||
1ebf67233b | |||
1588dabcbe | |||
d3888e3c32 | |||
99445406fc | |||
025fa57e24 | |||
6f04d0bf07 | |||
7a0f56cad8 | |||
c98299d916 | |||
f6e25fd966 | |||
e08b5cde69 |
175
PROMS/VEPROMS User Interface/DlgAnnotationsSelect.cs
Normal file
175
PROMS/VEPROMS User Interface/DlgAnnotationsSelect.cs
Normal file
@@ -0,0 +1,175 @@
|
||||
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();
|
||||
}
|
||||
|
||||
// Move all items to lstSelected.
|
||||
private void btnSelectAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
MoveAllItems(lstUnselected, lstSelected);
|
||||
}
|
||||
|
||||
// Move all items to lstUnselected.
|
||||
private void btnDeselectAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
MoveAllItems(lstSelected, lstUnselected);
|
||||
}
|
||||
|
||||
// Move all items from one ListBox to another.
|
||||
private void MoveAllItems(ListBox lstFrom, ListBox lstTo)
|
||||
{
|
||||
lstTo.Items.AddRange(lstFrom.Items);
|
||||
lstFrom.Items.Clear();
|
||||
SetButtonsEditable();
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
DataTable dt2 = coverToTable();
|
||||
VEPROMS.CSLA.Library.AnnotationstypeSelections.Update(dt2, UserID);
|
||||
this.Close();
|
||||
}
|
||||
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"]));
|
||||
}
|
||||
}
|
||||
|
||||
private void btnCancel_Click_1(object sender, EventArgs e)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
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>
|
@@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
Set NoCount On;
|
||||
|
||||
If (db_name() in('master','model','msdn','tempdb'))
|
||||
@@ -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,215 @@ 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
|
||||
[TypeID],
|
||||
[Name],
|
||||
[Config],
|
||||
[DTS],
|
||||
[UserID],
|
||||
[LastChanged],
|
||||
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]= [TypeID]) [AnnotationCount],
|
||||
[IsEPAnnotationType]
|
||||
FROM [AnnotationTypes] --A
|
||||
WHERE TypeID NOT IN (SELECT TypeID FROM AnnotationTypeSelections WHERE UserID = @UserID)
|
||||
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 +24325,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/10/2025 2:30 PM'
|
||||
set @RevDescription = 'C2025-027 Annotation Type Filtering'
|
||||
|
||||
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>
|
||||
@@ -337,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 = "Update";
|
||||
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 = "Select 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;
|
||||
}
|
||||
}
|
2573
PROMS/VEPROMS User Interface/frmSysOptions.Designer.cs
generated
2573
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);
|
||||
@@ -1296,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;
|
||||
|
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -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" />
|
||||
|
@@ -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.
|
||||
|
@@ -573,11 +573,12 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// C2025-027
|
||||
public event vlnTreeViewEvent SelectAnnotations;
|
||||
private void OnSelectAnnotations(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
if (SelectAnnotations != null) SelectAnnotations(sender, args);
|
||||
}
|
||||
public event vlnTreeViewEvent ExportImportProcedureSets;
|
||||
private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
@@ -871,6 +872,8 @@ namespace Volian.Controls.Library
|
||||
MenuItem miqp = new MenuItem("Quick Print");
|
||||
//MenuItem mips = new MenuItem("Print Section");
|
||||
MenuItem mia = new MenuItem("Approve");
|
||||
MenuItem misa = new MenuItem("Select Annotations"); //C2025-027
|
||||
|
||||
int k = 0;
|
||||
foreach (string s in pri.MyDocVersion.UnitNames)
|
||||
{
|
||||
@@ -895,12 +898,16 @@ namespace Volian.Controls.Library
|
||||
MenuItem mtc = mitcas.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
mtc.Enabled = procAppl;
|
||||
mtc.Tag = k;
|
||||
MenuItem msa = misa.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
msa.Enabled = procAppl;
|
||||
msa.Tag = k;
|
||||
}
|
||||
cm.MenuItems.Add(micas);
|
||||
cm.MenuItems.Add(mitcas);
|
||||
cm.MenuItems.Add(mip);
|
||||
cm.MenuItems.Add(miqp);
|
||||
//cm.MenuItems.Add(mips);
|
||||
cm.MenuItems.Add(misa);
|
||||
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
||||
cm.MenuItems.Add(mia);
|
||||
AddApprovedRevisionsMultiUnit(cm.MenuItems, pri);
|
||||
@@ -916,6 +923,7 @@ namespace Volian.Controls.Library
|
||||
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
||||
cm.MenuItems.Add("Approve", new EventHandler(mi_Click));
|
||||
//_MyLog.WarnFormat("Context Menu 1 before - {0}", GC.GetTotalMemory(true));
|
||||
cm.MenuItems.Add("Select Annotations", new EventHandler(mi_Click)); //C2025-027
|
||||
AddApprovedRevisions(cm.MenuItems, pri);
|
||||
//_MyLog.WarnFormat("Context Menu 1 after - {0}", GC.GetTotalMemory(true));
|
||||
}
|
||||
@@ -928,6 +936,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
MenuItem mip = new MenuItem("Print");
|
||||
MenuItem miqp = new MenuItem("Quick Print");
|
||||
MenuItem misa = new MenuItem("Select Annotations"); //C2025-027
|
||||
int k = 0;
|
||||
foreach (string s in pri.MyDocVersion.UnitNames)
|
||||
{
|
||||
@@ -936,15 +945,19 @@ namespace Volian.Controls.Library
|
||||
mp.Tag = k;
|
||||
MenuItem mqp = miqp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
mqp.Tag = k;
|
||||
MenuItem msa = misa.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
msa.Tag = k;
|
||||
}
|
||||
cm.MenuItems.Add(mip);
|
||||
cm.MenuItems.Add(miqp);
|
||||
cm.MenuItems.Add(misa);
|
||||
AddApprovedRevisionsMultiUnit(cm.MenuItems, pri);
|
||||
}
|
||||
else
|
||||
{
|
||||
cm.MenuItems.Add("Print", new EventHandler(mi_Click));
|
||||
cm.MenuItems.Add("Quick Print", new EventHandler(mi_Click));
|
||||
cm.MenuItems.Add("Select Annotations", new EventHandler(mi_Click)); //C2025-027
|
||||
AddApprovedRevisions(cm.MenuItems, pri);
|
||||
}
|
||||
}
|
||||
@@ -1936,6 +1949,9 @@ namespace Volian.Controls.Library
|
||||
case "Create Time Critical Action Summary":
|
||||
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||
break;
|
||||
case "Select Annotations": // C2025-027
|
||||
OnSelectAnnotations(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
break;
|
||||
default:
|
||||
if (mip.Text.StartsWith("Showing Change Bars Starting"))
|
||||
OnSelectDateToStartChangeBars(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
@@ -2241,6 +2257,9 @@ namespace Volian.Controls.Library
|
||||
FlexibleMessageBox.Show("You have copied a document that is NOT linked to an Enhanced Document.\n\n" +
|
||||
"You cannot paste a Non-Enhanced Procedure into an Enhanced Procedure Set.", "Cannot Paste Here");
|
||||
break;
|
||||
case "Select Annotations": // C2025-027
|
||||
OnSelectAnnotations(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
break;
|
||||
//case "Check Out Procedure Set":
|
||||
// CheckOutDocVersion(SelectedNode as VETreeNode);
|
||||
// break;
|
||||
|
Reference in New Issue
Block a user