C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)

This commit is contained in:
Matthew Schill 2025-04-08 10:54:19 -04:00
parent 689ea71846
commit 6fd84e2f2a
23 changed files with 2791 additions and 1316 deletions

View File

@ -92,6 +92,7 @@
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="epall\EPFormatTST1.xml" />
<Content Include="fmtall\AEPall.xml"> <Content Include="fmtall\AEPall.xml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Content> </Content>
@ -176,6 +177,7 @@
<Content Include="fmtall\CPL_03all.xml" /> <Content Include="fmtall\CPL_03all.xml" />
<Content Include="fmtall\CPSAMGDataall.xml" /> <Content Include="fmtall\CPSAMGDataall.xml" />
<Content Include="fmtall\CPSAMGDEVall.xml" /> <Content Include="fmtall\CPSAMGDEVall.xml" />
<Content Include="fmtall\EPTST1all.xml" />
<Content Include="fmtall\CWEall.xml" /> <Content Include="fmtall\CWEall.xml" />
<Content Include="fmtall\CWEDEVall.xml" /> <Content Include="fmtall\CWEDEVall.xml" />
<Content Include="fmtall\CWERall.xml" /> <Content Include="fmtall\CWERall.xml" />

Binary file not shown.

Binary file not shown.

View File

@ -23810,6 +23810,224 @@ GO
IF (@@Error = 0) PRINT 'Running vesp_UpdateUserSettings Succeeded' IF (@@Error = 0) PRINT 'Running vesp_UpdateUserSettings Succeeded'
ELSE PRINT 'Running vesp_UpdateUserSettings Failed to Execute' ELSE PRINT 'Running vesp_UpdateUserSettings Failed to Execute'
GO GO
--- begin changes for:
---C2025-023 - Electronic Procedures - Modifications to PROMS
--- The following IsEPAnnotationType column was added for EP Annotations.
--- IsEPAnnotationType = Is for EPs
IF NOT EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'AnnotationTypes'
AND COLUMN_NAME = 'IsEPAnnotationType')
ALTER TABLE AnnotationTypes ADD IsEPAnnotationType bit NOT NULL DEFAULT(0);
go
-- Display the status
IF (@@Error = 0) PRINT 'Altered table [AnnotationTypes] Succeeded for IsEPAnnotationType'
ELSE PRINT 'Altered table [AnnotationTypes] Error on Alter for IsEPAnnotationType'
go
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getAnnotationType];
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Matthew Schill
-- Create date: 3/21/2025
-- Description: Add EP to AnnotationTypes
-- =============================================
CREATE PROCEDURE [dbo].[getAnnotationType]
(
@TypeID int
)
WITH EXECUTE AS OWNER
AS
SELECT
[TypeID],
[Name],
[Config],
[DTS],
[UserID],
[LastChanged],
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount],
[IsEPAnnotationType]
FROM [AnnotationTypes]
WHERE [TypeID]=@TypeID
SELECT
[Annotations].[AnnotationID],
[Annotations].[ItemID],
[Annotations].[TypeID],
[Annotations].[RtfText],
[Annotations].[SearchText],
[Annotations].[Config],
[Annotations].[DTS],
[Annotations].[UserID],
[Annotations].[LastChanged],
[Items].[PreviousID] [Item_PreviousID],
[Items].[ContentID] [Item_ContentID],
[Items].[DTS] [Item_DTS],
[Items].[UserID] [Item_UserID]
FROM [Annotations]
JOIN [Items] ON
[Items].[ItemID]=[Annotations].[ItemID]
WHERE
[Annotations].[TypeID]=@TypeID
RETURN
GO
IF (@@Error = 0) PRINT 'Running getAnnotationType Succeeded'
ELSE PRINT 'Running getAnnotationType Failed to Execute'
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationTypeByName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getAnnotationTypeByName];
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Matthew Schill
-- Create date: 3/21/2025
-- Description: Add EP to AnnotationTypes
-- =============================================
CREATE PROCEDURE [dbo].[getAnnotationTypeByName]
(
@Name nvarchar(100)
)
WITH EXECUTE AS OWNER
AS
SELECT
[TypeID],
[Name],
[Config],
[DTS],
[UserID],
[LastChanged],
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount],
[IsEPAnnotationType]
FROM [AnnotationTypes]
WHERE [Name]=@Name
RETURN
GO
IF (@@Error = 0) PRINT 'Running getAnnotationTypeByName Succeeded'
ELSE PRINT 'Running getAnnotationTypeByName Failed to Execute'
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationTypes]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getAnnotationTypes];
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Matthew Schill
-- Create date: 3/21/2025
-- Description: Add EP to AnnotationTypes
-- =============================================
CREATE PROCEDURE [dbo].[getAnnotationTypes]
WITH EXECUTE AS OWNER
AS
SELECT
[TypeID],
[Name],
[Config],
[DTS],
[UserID],
[LastChanged],
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount],
[IsEPAnnotationType]
FROM [AnnotationTypes]
RETURN
GO
IF (@@Error = 0) PRINT 'Running getAnnotationTypes Succeeded'
ELSE PRINT 'Running getAnnotationTypes Failed to Execute'
GO
IF Not Exists(SELECT * FROM sys.objects Where name = 'EPFormats' AND type in (N'U'))
Begin -- Rofst Tables
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[EPFormats](
[FormatID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[Data] [xml] NULL,
[Created] [datetime] NOT NULL DEFAULT (getdate()),
[CreatedBy] [nvarchar](100) NOT NULL DEFAULT (upper(suser_sname())),
[Updated] [datetime] NOT NULL DEFAULT (getdate()),
[UpdatedBy] [nvarchar](100) NOT NULL DEFAULT (upper(suser_sname()))
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]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
IF (@@Error = 0) PRINT 'Table Creation: [EPFormats] Succeeded'
ELSE PRINT 'Table Creation: [EPFormats] Error on Creation'
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
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Matthew Schill
-- Create date: 3/26/2025
-- Description: Update / Insert EP Format
-- =============================================
CREATE PROCEDURE [dbo].[vesp_UpdateEPFormat]
(
@name nvarchar(100),
@data nvarchar(max),
@userID nvarchar(15)
)
WITH EXECUTE AS OWNER
AS
IF EXISTS(Select 1 FROM EPFormats where Name = @name )
BEGIN
UpDate EPFormats
SET Name = @name,
Data = @data,
Updated = getdate(),
UpdatedBy = upper(@userID)
WHERE Name = @name
END
ELSE
BEGIN
INSERT INTO EPFormats (Name, Data, CreatedBy, UpdatedBy)
values (@name, @data, 'Migration', 'Migration')
END
GO
IF (@@Error = 0) PRINT 'Running vesp_UpdateEPFormat Succeeded'
ELSE PRINT 'Running vesp_UpdateEPFormat Failed to Execute'
GO
UPDATE Formats SET ApplicablePlant = 1000 WHERE [Name] LIKE 'EPTST%';
Go
--- end changes for:
---C2025-023 - Electronic Procedures - Modifications to PROMS
/* /*
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
@ -23844,8 +24062,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255) DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255) DECLARE @RevDescription varchar(255)
set @RevDate = '4/03/2025 6:14 PM' set @RevDate = '4/8/2025 11:24'
set @RevDescription = 'B2022-031 Add filtering for Proc and Section name from Global Search' set @RevDescription = 'Added support for EP Viewer Editing'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
namespace VEPROMS.CSLA.Library
{
//C2025-023 - Electronic Procedures - Modifications to PROMS
//new class to handle access of tblAnnotations.Config
[Serializable]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class AnnotationConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged
{
private XMLProperties _Xp;
private XMLProperties Xp
{
get { return _Xp; }
}
public AnnotationConfig(string xml)
{
if (xml == string.Empty) xml = "<Config/>";
_Xp = new XMLProperties(xml);
}
public AnnotationConfig()
{
_Xp = new XMLProperties();
}
public override string ToString()
{
string s = _Xp.ToString();
if (s == "<Config/>" || s == "<Config></Config>") return string.Empty;
return s;
}
public string GetValue(string group, string item)
{
return _Xp[group, item];
}
public void SetValue(string group, string item, string newvalue)
{
_Xp[group, item] = newvalue;
}
}
}

View File

@ -19,6 +19,7 @@ using System.Xml;
using System.Drawing; using System.Drawing;
using System.ComponentModel; using System.ComponentModel;
using System.Collections.Generic; using System.Collections.Generic;
using Volian.Base.Library;
namespace VEPROMS.CSLA.Library namespace VEPROMS.CSLA.Library
{ {
@ -226,6 +227,34 @@ namespace VEPROMS.CSLA.Library
//} //}
} }
OnFormatLoaded(null, new FormatEventArgs("Formats Updated")); OnFormatLoaded(null, new FormatEventArgs("Formats Updated"));
//C2025-023 - Electronic Procedures - Modifications to PROMS
//Begin section for processing Electronic Procedure (EP) Format Files
// now loop through all EP format files
string epPath = fmtPath.Replace("\\fmtall", "\\epall");
DirectoryInfo diEP = new DirectoryInfo(epPath);
if (diEP.Exists)
{
FileInfo[] fisEP = diEP.GetFiles("*.xml");
OnFormatLoaded(null, new FormatEventArgs(fisEP.Length.ToString() + " EP Formats to Load"));
foreach (FileInfo fi in fisEP)
{
string fmtname = Path.GetFileNameWithoutExtension(fi.Name);
try
{
AddEPFormatToDB(fmtname, DateTime.Now, VlnSettings.UserID, epPath);
}
catch (Exception ex)
{
Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message);
}
}
OnFormatLoaded(null, new FormatEventArgs("EP Formats Updated"));
// update all in-use annotation types that have Electronic Procedures
EPFormatFile.UpdateAllInUseEPAnnotationTypes();
}
} }
private static Dictionary<string, int> _LookupFormats; private static Dictionary<string, int> _LookupFormats;
@ -338,8 +367,54 @@ namespace VEPROMS.CSLA.Library
} }
return rec; return rec;
} }
//C2025-023 - Electronic Procedures - Modifications to PROMS
//Procedure to load the EP format fiels into the DB
private static void AddEPFormatToDB(string formatname, DateTime Dts, string Userid, string epPath)
{
string fmtdata = null;
FileInfo fmtfi = null;
XmlDocument xd = null;
OnFormatLoaded(null, new FormatEventArgs("Loading Format " + formatname));
string path = Path.Combine(epPath, formatname + ".xml");
if (File.Exists(path))
{
try
{
using (StreamReader srf = new StreamReader(path))
{
fmtfi = new FileInfo(path);
xd = new XmlDocument();
xd.XmlResolver = null;
xd.Load(srf);
fmtdata = xd.OuterXml;
}
}
catch (Exception ex)
{
OnFormatLoaded(null, new FormatEventArgs("Error Loading Format " + formatname));
_MyLog.ErrorFormat($"AddEPFormatToDB('{path}')");
return;
}
}
if (string.IsNullOrEmpty(Userid)) Userid = "Migration";
try
{
EPFormatFile.UpdateEPFormat(formatname, fmtdata, Userid);
}
catch (Exception ex)
{
_MyLog.ErrorFormat($"AddFormatToDB-make format('{path}')");
}
}
} }
public partial class FormatInfo : IFormatOrFormatInfo
public partial class FormatInfo : IFormatOrFormatInfo
{ {
//transition report stuff //transition report stuff
private static Dictionary<int, string> _TransitionTypes; private static Dictionary<int, string> _TransitionTypes;

View File

@ -2112,6 +2112,45 @@ namespace VEPROMS.CSLA.Library
return (sd.Type == type); return (sd.Type == type);
} }
// C2025-023 - Electronic Procedures - Modifications to PROMS
//return EPFields that match this step type or a parent step type
public EPFields GetValidEPFields(int AnnTypeID)
{
EPFields filtered = new EPFields();
EPFields unfiltered = ActiveFormat.PlantFormat.EPFormatFiles.First(x => x.AnnotationTypeID == AnnTypeID).FieldList;
//Build list of step type and step type of it's parents
List<string> steptypelist = new List<string>();
if ((int)MyContent.Type < 20000) return filtered;
int stepType = ((int)MyContent.Type) % 10000;
StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList;
if (stepType > sdlist.MaxIndex)
{
Console.WriteLine("Error getting type - contentid = {0}", MyContent.ContentID);
return filtered;
}
StepData sd = sdlist[stepType];
while (sd.Index != 0)
{
steptypelist.Add(sd.Type);
sd = sdlist[sd.ParentType];
}
//if unfiltered list contains All as a step type, include it
foreach (EPField EP in unfiltered)
{
//if unfiltered list contains All as a step type, include it
if (EP.IsValidForStepType("All"))
filtered.Add(EP);
//check for intersections between unfiltered list and step type list
if (EP.validforsteptypes.Any(steptypelist.Contains))
filtered.Add(EP);
}
return filtered;
}
// determine if the the current step should automatically be placed on the Continuous Action Summary // determine if the the current step should automatically be placed on the Continuous Action Summary
// Note, this logic only checks the format setting of the step. We will check the value of the Tag's Check Box later on. // Note, this logic only checks the format setting of the step. We will check the value of the Tag's Check Box later on.
public bool IncludeOnContActSum public bool IncludeOnContActSum

View File

@ -0,0 +1,343 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Xml;
using System.Linq;
using System.Data.SqlClient;
using System.Data;
using Csla.Data;
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");
}
}
// 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();
}
}
}
// 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;
}
}
}
}
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]
FROM
(
SELECT FormatID FROM Contents
UNION
SELECT FormatID FROM DocVersions
UNION
SELECT FormatID FROM Folders
) inuse
inner join Formats
on inuse.FormatID = Formats.FormatID";
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();
}
}
}
}
}
// 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();
}
}
}
// 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
}
return false;
}
#endregion
}
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");
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");
}
}
private LazyLoad<string> _rosource;
public string rosource
{
get
{
return LazyLoad(ref _rosource, "@rosource");
}
}
private LazyLoad<int?> _numlines;
public int numlines
{
get
{
int? tmp = LazyLoad(ref _numlines, "@numlines");
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;
public List<string> validforsteptypes
{
get
{
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)
{
return validforsteptypes.Contains(StepType);
}
//return a list of items based on the ROsource specified in the EPFormat File
public Dictionary<int, string> getROList(AnnotationInfo currAnn)
{
if (string.IsNullOrEmpty(rosource))
return new Dictionary<int, string>();
try
{
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
string roid = FormatRoidKey(rosource, false);
rochild[] children = lookup.GetRoChildrenByRoid(roid);
return children.Select(x => new { x.ID, x.title }).ToDictionary(t => t.ID, t => t.title);
}
catch (Exception Ex)
{
throw new ArgumentException($"Error in rosource for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}");
}
}
}
#endregion
}

View File

@ -192,6 +192,18 @@ namespace VEPROMS.CSLA.Library
} }
return (retlist); return (retlist);
} }
//C2025-023 - Electronic Procedures - Modifications to PROMS
// EPFormatFiles contains which Electronic Procedure Format files apply to this main format file.
private EPFormatFiles _EPFormatFiles;
public EPFormatFiles EPFormatFiles
{
get
{
if (_EPFormatFiles == null) _EPFormatFiles = new EPFormatFiles(XmlDoc.SelectNodes("/PlantFormat/EPFormatFiles/EPFormatFile"));
return _EPFormatFiles;
}
}
} }
#endregion #endregion
#region VE_Font #region VE_Font

View File

@ -57,6 +57,8 @@ namespace VEPROMS.CSLA.Library
XmlNode xn = xmlNode.SelectSingleNode(path); XmlNode xn = xmlNode.SelectSingleNode(path);
if (xmlNode.Name == "Box") return xn; // if box, don't do inheritance. if (xmlNode.Name == "Box") return xn; // if box, don't do inheritance.
if (xmlNode.Name == "DocStyle") return xn; if (xmlNode.Name == "DocStyle") return xn;
//C2025-023 - Electronic Procedures - Modifications to PROMS
if (xmlNode.Name == "EPField") return xn; // if Electronic Procedure Field, don't do inheritance.
if (xmlNode.Name == "StructureStyle") if (xmlNode.Name == "StructureStyle")
{ {
Volian.Base.Library.DebugText.WriteLine("vlnFormatDocument:LookupSingleNode:StructureStyle - shouldn't get to this line of code.\r\nPath = {0}", path); Volian.Base.Library.DebugText.WriteLine("vlnFormatDocument:LookupSingleNode:StructureStyle - shouldn't get to this line of code.\r\nPath = {0}", path);

View File

@ -18,6 +18,8 @@ using System.IO;
using System.ComponentModel; using System.ComponentModel;
using System.Collections.Generic; using System.Collections.Generic;
using Csla.Validation; using Csla.Validation;
using System.Linq;
namespace VEPROMS.CSLA.Library namespace VEPROMS.CSLA.Library
{ {
/// <summary> /// <summary>
@ -207,6 +209,27 @@ namespace VEPROMS.CSLA.Library
} }
} }
} }
//C2025-023 - Electronic Procedures - Modifications to PROMS
// Is Annotation Type an EP Annotation?
private bool _IsEPAnnotationType = false;
public bool IsEPAnnotationType
{
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
return _IsEPAnnotationType;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
if (_IsEPAnnotationType != value)
{
_IsEPAnnotationType = value;
PropertyHasChanged();
}
}
}
private byte[] _LastChanged = new byte[8];//timestamp private byte[] _LastChanged = new byte[8];//timestamp
private int _AnnotationTypeAnnotationCount = 0; private int _AnnotationTypeAnnotationCount = 0;
/// <summary> /// <summary>
@ -712,6 +735,8 @@ namespace VEPROMS.CSLA.Library
_UserID = dr.GetString("UserID"); _UserID = dr.GetString("UserID");
dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8);
_AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount"); _AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount");
if (dr.GetSchemaTable().Rows.OfType<DataRow>().Any(row => row["ColumnName"].ToString() == "IsEPAnnotationType"))
_IsEPAnnotationType = (bool)dr.GetValue("IsEPAnnotationType");
MarkOld(); MarkOld();
} }
catch (Exception ex) catch (Exception ex)

View File

@ -17,6 +17,8 @@ using System.Configuration;
using System.IO; using System.IO;
using System.ComponentModel; using System.ComponentModel;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace VEPROMS.CSLA.Library namespace VEPROMS.CSLA.Library
{ {
public delegate void AnnotationTypeInfoEvent(object sender); public delegate void AnnotationTypeInfoEvent(object sender);
@ -135,6 +137,19 @@ namespace VEPROMS.CSLA.Library
return _UserID; return _UserID;
} }
} }
//C2025-023 - Electronic Procedures - Modifications to PROMS
// Is Annotation Type an EP Annotation?
private bool _IsEPAnnotationType = false;
public bool IsEPAnnotationType
{
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
return _IsEPAnnotationType;
}
}
private int _AnnotationTypeAnnotationCount = 0; private int _AnnotationTypeAnnotationCount = 0;
/// <summary> /// <summary>
/// Count of AnnotationTypeAnnotations for this AnnotationType /// Count of AnnotationTypeAnnotations for this AnnotationType
@ -312,6 +327,8 @@ namespace VEPROMS.CSLA.Library
_DTS = dr.GetDateTime("DTS"); _DTS = dr.GetDateTime("DTS");
_UserID = dr.GetString("UserID"); _UserID = dr.GetString("UserID");
_AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount"); _AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount");
if (dr.GetSchemaTable().Rows.OfType<DataRow>().Any(row => row["ColumnName"].ToString() == "IsEPAnnotationType"))
_IsEPAnnotationType = (bool)dr.GetValue("IsEPAnnotationType");
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -98,6 +98,7 @@
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.configuration" /> <Reference Include="System.configuration" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Design" /> <Reference Include="System.Design" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
@ -107,6 +108,7 @@
<Compile Include="..\VEPROMS User Interface\Properties\Settings.Designer.cs"> <Compile Include="..\VEPROMS User Interface\Properties\Settings.Designer.cs">
<Link>Properties\Settings.Designer.cs</Link> <Link>Properties\Settings.Designer.cs</Link>
</Compile> </Compile>
<Compile Include="Config\AnnotationConfig.cs" />
<Compile Include="Config\AnnotationTypeConfig.cs" /> <Compile Include="Config\AnnotationTypeConfig.cs" />
<Compile Include="Config\AssocConfig.cs" /> <Compile Include="Config\AssocConfig.cs" />
<Compile Include="Config\ColorConfig.cs" /> <Compile Include="Config\ColorConfig.cs" />
@ -164,6 +166,7 @@
<Compile Include="Format\Comparator.cs" /> <Compile Include="Format\Comparator.cs" />
<Compile Include="Format\DocStyles.cs" /> <Compile Include="Format\DocStyles.cs" />
<Compile Include="Format\ENums.cs" /> <Compile Include="Format\ENums.cs" />
<Compile Include="Format\EPFormatFile.cs" />
<Compile Include="Format\PageStyles.cs" /> <Compile Include="Format\PageStyles.cs" />
<Compile Include="Format\PlantFormat.cs" /> <Compile Include="Format\PlantFormat.cs" />
<Compile Include="Format\vlnFormat.cs" /> <Compile Include="Format\vlnFormat.cs" />

View File

@ -28,326 +28,341 @@ namespace Volian.Controls.Library
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
this.rtxbComment = new System.Windows.Forms.RichTextBox(); this.rtxbComment = new System.Windows.Forms.RichTextBox();
this.btnSaveAnnotation = new DevComponents.DotNetBar.ButtonX(); this.btnSaveAnnotation = new DevComponents.DotNetBar.ButtonX();
this.btnCancelAnnoation = new DevComponents.DotNetBar.ButtonX(); this.btnCancelAnnoation = new DevComponents.DotNetBar.ButtonX();
this.cbGridAnnoType = new DevComponents.DotNetBar.Controls.ComboBoxEx(); this.cbGridAnnoType = new DevComponents.DotNetBar.Controls.ComboBoxEx();
this.btnRemoveAnnotation = new DevComponents.DotNetBar.ButtonX(); this.btnRemoveAnnotation = new DevComponents.DotNetBar.ButtonX();
this.btnAddAnnotation = new DevComponents.DotNetBar.ButtonX(); this.btnAddAnnotation = new DevComponents.DotNetBar.ButtonX();
this.pannelAnnoEdit = new DevComponents.DotNetBar.PanelEx(); this.btnEPAnnotation = new DevComponents.DotNetBar.ButtonX();
this.labelX1 = new DevComponents.DotNetBar.LabelX(); this.pannelAnnoEdit = new DevComponents.DotNetBar.PanelEx();
this.panelAnnoEditBtns = new DevComponents.DotNetBar.PanelEx(); this.labelX1 = new DevComponents.DotNetBar.LabelX();
this.expandableSplitter4 = new DevComponents.DotNetBar.ExpandableSplitter(); this.panelAnnoEditBtns = new DevComponents.DotNetBar.PanelEx();
this.pannelAnnoGrid = new DevComponents.DotNetBar.PanelEx(); this.expandableSplitter4 = new DevComponents.DotNetBar.ExpandableSplitter();
this.dgAnnotations = new DevComponents.DotNetBar.Controls.DataGridViewX(); this.pannelAnnoGrid = new DevComponents.DotNetBar.PanelEx();
this.myAnnotationTypeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgAnnotations = new DevComponents.DotNetBar.Controls.DataGridViewX();
this.dTSDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.myAnnotationTypeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.userIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dTSDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.searchTextDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.userIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components); this.searchTextDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.pannelAnnoEdit.SuspendLayout(); this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.panelAnnoEditBtns.SuspendLayout(); this.pannelAnnoEdit.SuspendLayout();
this.pannelAnnoGrid.SuspendLayout(); this.panelAnnoEditBtns.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).BeginInit(); this.pannelAnnoGrid.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).BeginInit();
this.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit();
// this.SuspendLayout();
// superTooltip1 //
// // superTooltip1
this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray); //
this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
// this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
// rtxbComment //
// // rtxbComment
this.rtxbComment.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) //
this.rtxbComment.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.rtxbComment.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); this.rtxbComment.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.rtxbComment.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.rtxbComment.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtxbComment.Location = new System.Drawing.Point(87, 33); this.rtxbComment.Location = new System.Drawing.Point(65, 27);
this.rtxbComment.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.rtxbComment.Margin = new System.Windows.Forms.Padding(2);
this.rtxbComment.Name = "rtxbComment"; this.rtxbComment.Name = "rtxbComment";
this.rtxbComment.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; this.rtxbComment.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
this.rtxbComment.Size = new System.Drawing.Size(489, 291); this.rtxbComment.Size = new System.Drawing.Size(368, 237);
this.superTooltip1.SetSuperTooltip(this.rtxbComment, new DevComponents.DotNetBar.SuperTooltipInfo("Annotation", "", "Enter the annotation information here.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.superTooltip1.SetSuperTooltip(this.rtxbComment, new DevComponents.DotNetBar.SuperTooltipInfo("Annotation", "", "Enter the annotation information here.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.rtxbComment.TabIndex = 1; this.rtxbComment.TabIndex = 1;
this.rtxbComment.Text = ""; this.rtxbComment.Text = "";
this.rtxbComment.TextChanged += new System.EventHandler(this.rtxbComment_TextChanged); this.rtxbComment.TextChanged += new System.EventHandler(this.rtxbComment_TextChanged);
// //
// btnSaveAnnotation // btnSaveAnnotation
// //
this.btnSaveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnSaveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnSaveAnnotation.Enabled = false; this.btnSaveAnnotation.Enabled = false;
this.btnSaveAnnotation.Location = new System.Drawing.Point(491, 4); this.btnSaveAnnotation.Location = new System.Drawing.Point(368, 3);
this.btnSaveAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnSaveAnnotation.Margin = new System.Windows.Forms.Padding(2);
this.btnSaveAnnotation.Name = "btnSaveAnnotation"; this.btnSaveAnnotation.Name = "btnSaveAnnotation";
this.btnSaveAnnotation.Size = new System.Drawing.Size(71, 25); this.btnSaveAnnotation.Size = new System.Drawing.Size(53, 20);
this.superTooltip1.SetSuperTooltip(this.btnSaveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Save Changes", "", "This will save the new annotation or changes made to an existing annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.superTooltip1.SetSuperTooltip(this.btnSaveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Save Changes", "", "This will save the new annotation or changes made to an existing annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnSaveAnnotation.TabIndex = 9; this.btnSaveAnnotation.TabIndex = 9;
this.btnSaveAnnotation.Text = "Save"; this.btnSaveAnnotation.Text = "Save";
this.btnSaveAnnotation.Click += new System.EventHandler(this.btnSaveAnnotation_Click); this.btnSaveAnnotation.Click += new System.EventHandler(this.btnSaveAnnotation_Click);
// //
// btnCancelAnnoation // btnCancelAnnoation
// //
this.btnCancelAnnoation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnCancelAnnoation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnCancelAnnoation.Enabled = false; this.btnCancelAnnoation.Enabled = false;
this.btnCancelAnnoation.Location = new System.Drawing.Point(401, 4); this.btnCancelAnnoation.Location = new System.Drawing.Point(301, 3);
this.btnCancelAnnoation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnCancelAnnoation.Margin = new System.Windows.Forms.Padding(2);
this.btnCancelAnnoation.Name = "btnCancelAnnoation"; this.btnCancelAnnoation.Name = "btnCancelAnnoation";
this.btnCancelAnnoation.Size = new System.Drawing.Size(69, 25); this.btnCancelAnnoation.Size = new System.Drawing.Size(52, 20);
this.superTooltip1.SetSuperTooltip(this.btnCancelAnnoation, new DevComponents.DotNetBar.SuperTooltipInfo("Cancel", "", "This will cancel the changes made to the annotation text and type selection", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(145, 100))); this.superTooltip1.SetSuperTooltip(this.btnCancelAnnoation, new DevComponents.DotNetBar.SuperTooltipInfo("Cancel", "", "This will cancel the changes made to the annotation text and type selection", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(145, 100)));
this.btnCancelAnnoation.TabIndex = 8; this.btnCancelAnnoation.TabIndex = 8;
this.btnCancelAnnoation.Text = "Cancel"; this.btnCancelAnnoation.Text = "Cancel";
this.btnCancelAnnoation.Click += new System.EventHandler(this.btnCancelAnnoation_Click); this.btnCancelAnnoation.Click += new System.EventHandler(this.btnCancelAnnoation_Click);
// //
// cbGridAnnoType // cbGridAnnoType
// //
this.cbGridAnnoType.DisplayMember = "Text"; this.cbGridAnnoType.DisplayMember = "Text";
this.cbGridAnnoType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; this.cbGridAnnoType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.cbGridAnnoType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cbGridAnnoType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbGridAnnoType.FlatStyle = System.Windows.Forms.FlatStyle.Standard; this.cbGridAnnoType.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.cbGridAnnoType.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbGridAnnoType.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbGridAnnoType.ForeColor = System.Drawing.SystemColors.WindowText; this.cbGridAnnoType.ForeColor = System.Drawing.SystemColors.WindowText;
this.cbGridAnnoType.ItemHeight = 17; this.cbGridAnnoType.ItemHeight = 17;
this.cbGridAnnoType.Location = new System.Drawing.Point(133, 4); this.cbGridAnnoType.Location = new System.Drawing.Point(100, 3);
this.cbGridAnnoType.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.cbGridAnnoType.Margin = new System.Windows.Forms.Padding(2);
this.cbGridAnnoType.Name = "cbGridAnnoType"; this.cbGridAnnoType.Name = "cbGridAnnoType";
this.cbGridAnnoType.PreventEnterBeep = true; this.cbGridAnnoType.PreventEnterBeep = true;
this.cbGridAnnoType.Size = new System.Drawing.Size(244, 23); this.cbGridAnnoType.Size = new System.Drawing.Size(184, 23);
this.superTooltip1.SetSuperTooltip(this.cbGridAnnoType, new DevComponents.DotNetBar.SuperTooltipInfo("Select Annotation Type", "", "This drop down list contains the possible annotation types.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.superTooltip1.SetSuperTooltip(this.cbGridAnnoType, new DevComponents.DotNetBar.SuperTooltipInfo("Select Annotation Type", "", "This drop down list contains the possible annotation types.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.cbGridAnnoType.TabIndex = 7; this.cbGridAnnoType.TabIndex = 7;
this.cbGridAnnoType.WatermarkBehavior = DevComponents.DotNetBar.eWatermarkBehavior.HideNonEmpty; this.cbGridAnnoType.WatermarkBehavior = DevComponents.DotNetBar.eWatermarkBehavior.HideNonEmpty;
this.cbGridAnnoType.WatermarkText = "Select Annotation Type"; this.cbGridAnnoType.WatermarkText = "Select Annotation Type";
this.cbGridAnnoType.SelectedValueChanged += new System.EventHandler(this.cbGridAnnoType_SelectedValueChanged); this.cbGridAnnoType.SelectedValueChanged += new System.EventHandler(this.cbGridAnnoType_SelectedValueChanged);
// //
// btnRemoveAnnotation // btnRemoveAnnotation
// //
this.btnRemoveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnRemoveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnRemoveAnnotation.Location = new System.Drawing.Point(5, 34); this.btnRemoveAnnotation.Location = new System.Drawing.Point(4, 28);
this.btnRemoveAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnRemoveAnnotation.Margin = new System.Windows.Forms.Padding(2);
this.btnRemoveAnnotation.Name = "btnRemoveAnnotation"; this.btnRemoveAnnotation.Name = "btnRemoveAnnotation";
this.btnRemoveAnnotation.Size = new System.Drawing.Size(71, 25); this.btnRemoveAnnotation.Size = new System.Drawing.Size(53, 20);
this.superTooltip1.SetSuperTooltip(this.btnRemoveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.superTooltip1.SetSuperTooltip(this.btnRemoveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnRemoveAnnotation.TabIndex = 4; this.btnRemoveAnnotation.TabIndex = 4;
this.btnRemoveAnnotation.Text = "Remove"; this.btnRemoveAnnotation.Text = "Remove";
this.btnRemoveAnnotation.Click += new System.EventHandler(this.btnRemoveAnnotation_Click); this.btnRemoveAnnotation.Click += new System.EventHandler(this.btnRemoveAnnotation_Click);
// //
// btnAddAnnotation // btnAddAnnotation
// //
this.btnAddAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnAddAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnAddAnnotation.Location = new System.Drawing.Point(5, 4); this.btnAddAnnotation.Location = new System.Drawing.Point(4, 3);
this.btnAddAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.btnAddAnnotation.Margin = new System.Windows.Forms.Padding(2);
this.btnAddAnnotation.Name = "btnAddAnnotation"; this.btnAddAnnotation.Name = "btnAddAnnotation";
this.btnAddAnnotation.Size = new System.Drawing.Size(71, 25); this.btnAddAnnotation.Size = new System.Drawing.Size(53, 20);
this.superTooltip1.SetSuperTooltip(this.btnAddAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Add New Annotation", "", "This button will create a new annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.superTooltip1.SetSuperTooltip(this.btnAddAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Add New Annotation", "", "This button will create a new annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnAddAnnotation.TabIndex = 3; this.btnAddAnnotation.TabIndex = 3;
this.btnAddAnnotation.Text = "Add"; this.btnAddAnnotation.Text = "Add";
this.btnAddAnnotation.Click += new System.EventHandler(this.btnAddAnnotation_Click); this.btnAddAnnotation.Click += new System.EventHandler(this.btnAddAnnotation_Click);
// //
// pannelAnnoEdit // btnEPAnnotation
// //
this.pannelAnnoEdit.CanvasColor = System.Drawing.SystemColors.Control; this.btnEPAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.pannelAnnoEdit.Controls.Add(this.rtxbComment); this.btnEPAnnotation.Location = new System.Drawing.Point(4, 52);
this.pannelAnnoEdit.Controls.Add(this.btnSaveAnnotation); this.btnEPAnnotation.Margin = new System.Windows.Forms.Padding(2);
this.pannelAnnoEdit.Controls.Add(this.btnCancelAnnoation); this.btnEPAnnotation.Name = "btnEPAnnotation";
this.pannelAnnoEdit.Controls.Add(this.labelX1); this.btnEPAnnotation.Size = new System.Drawing.Size(53, 20);
this.pannelAnnoEdit.Controls.Add(this.cbGridAnnoType); this.superTooltip1.SetSuperTooltip(this.btnEPAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.pannelAnnoEdit.Controls.Add(this.panelAnnoEditBtns); this.btnEPAnnotation.TabIndex = 5;
this.pannelAnnoEdit.DisabledBackColor = System.Drawing.Color.Empty; this.btnEPAnnotation.Text = "Open";
this.pannelAnnoEdit.Dock = System.Windows.Forms.DockStyle.Fill; this.btnEPAnnotation.Visible = false;
this.pannelAnnoEdit.Location = new System.Drawing.Point(548, 0); this.btnEPAnnotation.Click += new System.EventHandler(this.btnEPAnnotation_Click);
this.pannelAnnoEdit.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); //
this.pannelAnnoEdit.Name = "pannelAnnoEdit"; // pannelAnnoEdit
this.pannelAnnoEdit.Size = new System.Drawing.Size(576, 325); //
this.pannelAnnoEdit.Style.Alignment = System.Drawing.StringAlignment.Center; this.pannelAnnoEdit.CanvasColor = System.Drawing.SystemColors.Control;
this.pannelAnnoEdit.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.pannelAnnoEdit.Controls.Add(this.rtxbComment);
this.pannelAnnoEdit.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; this.pannelAnnoEdit.Controls.Add(this.btnSaveAnnotation);
this.pannelAnnoEdit.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; this.pannelAnnoEdit.Controls.Add(this.btnCancelAnnoation);
this.pannelAnnoEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.pannelAnnoEdit.Controls.Add(this.labelX1);
this.pannelAnnoEdit.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.pannelAnnoEdit.Controls.Add(this.cbGridAnnoType);
this.pannelAnnoEdit.Style.GradientAngle = 90; this.pannelAnnoEdit.Controls.Add(this.panelAnnoEditBtns);
this.pannelAnnoEdit.TabIndex = 16; this.pannelAnnoEdit.DisabledBackColor = System.Drawing.Color.Empty;
this.pannelAnnoEdit.Text = "panelEx2"; this.pannelAnnoEdit.Dock = System.Windows.Forms.DockStyle.Fill;
this.pannelAnnoEdit.ThemeAware = true; this.pannelAnnoEdit.Location = new System.Drawing.Point(411, 0);
// this.pannelAnnoEdit.Margin = new System.Windows.Forms.Padding(2);
// labelX1 this.pannelAnnoEdit.Name = "pannelAnnoEdit";
// this.pannelAnnoEdit.Size = new System.Drawing.Size(432, 264);
this.labelX1.AutoSize = true; this.pannelAnnoEdit.Style.Alignment = System.Drawing.StringAlignment.Center;
// this.pannelAnnoEdit.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
// this.pannelAnnoEdit.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
// this.pannelAnnoEdit.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.pannelAnnoEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.pannelAnnoEdit.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.labelX1.Location = new System.Drawing.Point(93, 7); this.pannelAnnoEdit.Style.GradientAngle = 90;
this.labelX1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.pannelAnnoEdit.TabIndex = 16;
this.labelX1.Name = "labelX1"; this.pannelAnnoEdit.Text = "panelEx2";
this.labelX1.Size = new System.Drawing.Size(35, 17); this.pannelAnnoEdit.ThemeAware = true;
this.labelX1.TabIndex = 10; //
this.labelX1.Text = "Type:"; // labelX1
// //
// panelAnnoEditBtns this.labelX1.AutoSize = true;
// //
this.panelAnnoEditBtns.CanvasColor = System.Drawing.SystemColors.Control; //
this.panelAnnoEditBtns.Controls.Add(this.btnRemoveAnnotation); //
this.panelAnnoEditBtns.Controls.Add(this.btnAddAnnotation); this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.panelAnnoEditBtns.DisabledBackColor = System.Drawing.Color.Empty; this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.panelAnnoEditBtns.Dock = System.Windows.Forms.DockStyle.Left; this.labelX1.Location = new System.Drawing.Point(70, 6);
this.panelAnnoEditBtns.Location = new System.Drawing.Point(0, 0); this.labelX1.Margin = new System.Windows.Forms.Padding(2);
this.panelAnnoEditBtns.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.labelX1.Name = "labelX1";
this.panelAnnoEditBtns.Name = "panelAnnoEditBtns"; this.labelX1.Size = new System.Drawing.Size(29, 14);
this.panelAnnoEditBtns.Size = new System.Drawing.Size(87, 325); this.labelX1.TabIndex = 10;
this.panelAnnoEditBtns.Style.Alignment = System.Drawing.StringAlignment.Center; this.labelX1.Text = "Type:";
this.panelAnnoEditBtns.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; //
this.panelAnnoEditBtns.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; // panelAnnoEditBtns
this.panelAnnoEditBtns.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; //
this.panelAnnoEditBtns.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.panelAnnoEditBtns.CanvasColor = System.Drawing.SystemColors.Control;
this.panelAnnoEditBtns.Style.GradientAngle = 90; this.panelAnnoEditBtns.Controls.Add(this.btnEPAnnotation);
this.panelAnnoEditBtns.TabIndex = 11; this.panelAnnoEditBtns.Controls.Add(this.btnRemoveAnnotation);
this.panelAnnoEditBtns.ThemeAware = true; this.panelAnnoEditBtns.Controls.Add(this.btnAddAnnotation);
// this.panelAnnoEditBtns.DisabledBackColor = System.Drawing.Color.Empty;
// expandableSplitter4 this.panelAnnoEditBtns.Dock = System.Windows.Forms.DockStyle.Left;
// this.panelAnnoEditBtns.Location = new System.Drawing.Point(0, 0);
this.expandableSplitter4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); this.panelAnnoEditBtns.Margin = new System.Windows.Forms.Padding(2);
this.expandableSplitter4.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.panelAnnoEditBtns.Name = "panelAnnoEditBtns";
this.expandableSplitter4.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.panelAnnoEditBtns.Size = new System.Drawing.Size(65, 264);
this.expandableSplitter4.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); this.panelAnnoEditBtns.Style.Alignment = System.Drawing.StringAlignment.Center;
this.expandableSplitter4.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.panelAnnoEditBtns.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.expandableSplitter4.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.panelAnnoEditBtns.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.expandableSplitter4.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; this.panelAnnoEditBtns.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter4.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.panelAnnoEditBtns.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.expandableSplitter4.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; this.panelAnnoEditBtns.Style.GradientAngle = 90;
this.expandableSplitter4.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); this.panelAnnoEditBtns.TabIndex = 11;
this.expandableSplitter4.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; this.panelAnnoEditBtns.ThemeAware = true;
this.expandableSplitter4.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61))))); //
this.expandableSplitter4.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94))))); // expandableSplitter4
this.expandableSplitter4.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2; //
this.expandableSplitter4.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground; this.expandableSplitter4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter4.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); this.expandableSplitter4.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter4.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.expandableSplitter4.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.expandableSplitter4.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.expandableSplitter4.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter4.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; this.expandableSplitter4.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter4.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); this.expandableSplitter4.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.expandableSplitter4.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.expandableSplitter4.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.expandableSplitter4.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); this.expandableSplitter4.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.expandableSplitter4.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; this.expandableSplitter4.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.expandableSplitter4.Location = new System.Drawing.Point(545, 0); this.expandableSplitter4.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
this.expandableSplitter4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.expandableSplitter4.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
this.expandableSplitter4.Name = "expandableSplitter4"; this.expandableSplitter4.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61)))));
this.expandableSplitter4.Size = new System.Drawing.Size(3, 325); this.expandableSplitter4.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94)))));
this.expandableSplitter4.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007; this.expandableSplitter4.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2;
this.expandableSplitter4.TabIndex = 15; this.expandableSplitter4.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground;
this.expandableSplitter4.TabStop = false; this.expandableSplitter4.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
// this.expandableSplitter4.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
// pannelAnnoGrid this.expandableSplitter4.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
// this.expandableSplitter4.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.pannelAnnoGrid.CanvasColor = System.Drawing.SystemColors.Control; this.expandableSplitter4.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.pannelAnnoGrid.Controls.Add(this.dgAnnotations); this.expandableSplitter4.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.pannelAnnoGrid.DisabledBackColor = System.Drawing.Color.Empty; this.expandableSplitter4.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
this.pannelAnnoGrid.Dock = System.Windows.Forms.DockStyle.Left; this.expandableSplitter4.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
this.pannelAnnoGrid.Location = new System.Drawing.Point(0, 0); this.expandableSplitter4.Location = new System.Drawing.Point(409, 0);
this.pannelAnnoGrid.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.expandableSplitter4.Margin = new System.Windows.Forms.Padding(2);
this.pannelAnnoGrid.Name = "pannelAnnoGrid"; this.expandableSplitter4.Name = "expandableSplitter4";
this.pannelAnnoGrid.Size = new System.Drawing.Size(545, 325); this.expandableSplitter4.Size = new System.Drawing.Size(2, 264);
this.pannelAnnoGrid.Style.Alignment = System.Drawing.StringAlignment.Center; this.expandableSplitter4.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007;
this.pannelAnnoGrid.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.expandableSplitter4.TabIndex = 15;
this.pannelAnnoGrid.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; this.expandableSplitter4.TabStop = false;
this.pannelAnnoGrid.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; //
this.pannelAnnoGrid.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; // pannelAnnoGrid
this.pannelAnnoGrid.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; //
this.pannelAnnoGrid.Style.GradientAngle = 90; this.pannelAnnoGrid.CanvasColor = System.Drawing.SystemColors.Control;
this.pannelAnnoGrid.TabIndex = 14; this.pannelAnnoGrid.Controls.Add(this.dgAnnotations);
this.pannelAnnoGrid.Text = "panelEx2"; this.pannelAnnoGrid.DisabledBackColor = System.Drawing.Color.Empty;
this.pannelAnnoGrid.ThemeAware = true; this.pannelAnnoGrid.Dock = System.Windows.Forms.DockStyle.Left;
// this.pannelAnnoGrid.Location = new System.Drawing.Point(0, 0);
// dgAnnotations this.pannelAnnoGrid.Margin = new System.Windows.Forms.Padding(2);
// this.pannelAnnoGrid.Name = "pannelAnnoGrid";
this.dgAnnotations.AutoGenerateColumns = false; this.pannelAnnoGrid.Size = new System.Drawing.Size(409, 264);
this.dgAnnotations.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.pannelAnnoGrid.Style.Alignment = System.Drawing.StringAlignment.Center;
this.dgAnnotations.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; this.pannelAnnoGrid.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.dgAnnotations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.pannelAnnoGrid.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.dgAnnotations.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.pannelAnnoGrid.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.pannelAnnoGrid.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.pannelAnnoGrid.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.pannelAnnoGrid.Style.GradientAngle = 90;
this.pannelAnnoGrid.TabIndex = 14;
this.pannelAnnoGrid.Text = "panelEx2";
this.pannelAnnoGrid.ThemeAware = true;
//
// dgAnnotations
//
this.dgAnnotations.AutoGenerateColumns = false;
this.dgAnnotations.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
this.dgAnnotations.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
this.dgAnnotations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgAnnotations.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.myAnnotationTypeDataGridViewTextBoxColumn, this.myAnnotationTypeDataGridViewTextBoxColumn,
this.dTSDataGridViewTextBoxColumn, this.dTSDataGridViewTextBoxColumn,
this.userIDDataGridViewTextBoxColumn, this.userIDDataGridViewTextBoxColumn,
this.searchTextDataGridViewTextBoxColumn}); this.searchTextDataGridViewTextBoxColumn});
this.dgAnnotations.DataSource = this.itemAnnotationsBindingSource; this.dgAnnotations.DataSource = this.itemAnnotationsBindingSource;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.ControlText; dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgAnnotations.DefaultCellStyle = dataGridViewCellStyle2; this.dgAnnotations.DefaultCellStyle = dataGridViewCellStyle1;
this.dgAnnotations.Dock = System.Windows.Forms.DockStyle.Fill; this.dgAnnotations.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgAnnotations.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229))))); this.dgAnnotations.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229)))));
this.dgAnnotations.HighlightSelectedColumnHeaders = false; this.dgAnnotations.HighlightSelectedColumnHeaders = false;
this.dgAnnotations.Location = new System.Drawing.Point(0, 0); this.dgAnnotations.Location = new System.Drawing.Point(0, 0);
this.dgAnnotations.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.dgAnnotations.Margin = new System.Windows.Forms.Padding(2);
this.dgAnnotations.MultiSelect = false; this.dgAnnotations.MultiSelect = false;
this.dgAnnotations.Name = "dgAnnotations"; this.dgAnnotations.Name = "dgAnnotations";
this.dgAnnotations.RowHeadersVisible = false; this.dgAnnotations.RowHeadersVisible = false;
this.dgAnnotations.RowTemplate.Height = 24; this.dgAnnotations.RowTemplate.Height = 24;
this.dgAnnotations.RowTemplate.ReadOnly = true; this.dgAnnotations.RowTemplate.ReadOnly = true;
this.dgAnnotations.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.dgAnnotations.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.dgAnnotations.SelectAllSignVisible = false; this.dgAnnotations.SelectAllSignVisible = false;
this.dgAnnotations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.dgAnnotations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgAnnotations.Size = new System.Drawing.Size(545, 325); this.dgAnnotations.Size = new System.Drawing.Size(409, 264);
this.dgAnnotations.TabIndex = 1; this.dgAnnotations.TabIndex = 1;
this.dgAnnotations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgAnnotations_CellClick); this.dgAnnotations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgAnnotations_CellClick);
// //
// myAnnotationTypeDataGridViewTextBoxColumn // myAnnotationTypeDataGridViewTextBoxColumn
// //
this.myAnnotationTypeDataGridViewTextBoxColumn.DataPropertyName = "MyAnnotationType"; this.myAnnotationTypeDataGridViewTextBoxColumn.DataPropertyName = "MyAnnotationType";
this.myAnnotationTypeDataGridViewTextBoxColumn.HeaderText = "Type"; this.myAnnotationTypeDataGridViewTextBoxColumn.HeaderText = "Type";
this.myAnnotationTypeDataGridViewTextBoxColumn.Name = "myAnnotationTypeDataGridViewTextBoxColumn"; this.myAnnotationTypeDataGridViewTextBoxColumn.Name = "myAnnotationTypeDataGridViewTextBoxColumn";
this.myAnnotationTypeDataGridViewTextBoxColumn.Width = 69; this.myAnnotationTypeDataGridViewTextBoxColumn.Width = 56;
// //
// dTSDataGridViewTextBoxColumn // dTSDataGridViewTextBoxColumn
// //
this.dTSDataGridViewTextBoxColumn.DataPropertyName = "DTS"; this.dTSDataGridViewTextBoxColumn.DataPropertyName = "DTS";
this.dTSDataGridViewTextBoxColumn.HeaderText = "Date"; this.dTSDataGridViewTextBoxColumn.HeaderText = "Date";
this.dTSDataGridViewTextBoxColumn.Name = "dTSDataGridViewTextBoxColumn"; this.dTSDataGridViewTextBoxColumn.Name = "dTSDataGridViewTextBoxColumn";
this.dTSDataGridViewTextBoxColumn.Width = 67; this.dTSDataGridViewTextBoxColumn.Width = 55;
// //
// userIDDataGridViewTextBoxColumn // userIDDataGridViewTextBoxColumn
// //
this.userIDDataGridViewTextBoxColumn.DataPropertyName = "UserID"; this.userIDDataGridViewTextBoxColumn.DataPropertyName = "UserID";
this.userIDDataGridViewTextBoxColumn.HeaderText = "User"; this.userIDDataGridViewTextBoxColumn.HeaderText = "User";
this.userIDDataGridViewTextBoxColumn.Name = "userIDDataGridViewTextBoxColumn"; this.userIDDataGridViewTextBoxColumn.Name = "userIDDataGridViewTextBoxColumn";
this.userIDDataGridViewTextBoxColumn.Width = 67; this.userIDDataGridViewTextBoxColumn.Width = 54;
// //
// searchTextDataGridViewTextBoxColumn // searchTextDataGridViewTextBoxColumn
// //
this.searchTextDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.searchTextDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.searchTextDataGridViewTextBoxColumn.DataPropertyName = "SearchText"; this.searchTextDataGridViewTextBoxColumn.DataPropertyName = "SearchText";
this.searchTextDataGridViewTextBoxColumn.HeaderText = "Description"; this.searchTextDataGridViewTextBoxColumn.HeaderText = "Description";
this.searchTextDataGridViewTextBoxColumn.Name = "searchTextDataGridViewTextBoxColumn"; this.searchTextDataGridViewTextBoxColumn.Name = "searchTextDataGridViewTextBoxColumn";
// //
// itemAnnotationsBindingSource // itemAnnotationsBindingSource
// //
this.itemAnnotationsBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.ItemAnnotation); this.itemAnnotationsBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.ItemAnnotation);
// //
// AnnotationDetails // AnnotationDetails
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.pannelAnnoEdit); this.Controls.Add(this.pannelAnnoEdit);
this.Controls.Add(this.expandableSplitter4); this.Controls.Add(this.expandableSplitter4);
this.Controls.Add(this.pannelAnnoGrid); this.Controls.Add(this.pannelAnnoGrid);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "AnnotationDetails"; this.Name = "AnnotationDetails";
this.Size = new System.Drawing.Size(1124, 325); this.Size = new System.Drawing.Size(843, 264);
this.pannelAnnoEdit.ResumeLayout(false); this.pannelAnnoEdit.ResumeLayout(false);
this.pannelAnnoEdit.PerformLayout(); this.pannelAnnoEdit.PerformLayout();
this.panelAnnoEditBtns.ResumeLayout(false); this.panelAnnoEditBtns.ResumeLayout(false);
this.pannelAnnoGrid.ResumeLayout(false); this.pannelAnnoGrid.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@ -371,5 +386,6 @@ namespace Volian.Controls.Library
private System.Windows.Forms.DataGridViewTextBoxColumn dTSDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn dTSDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn userIDDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn userIDDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn searchTextDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn searchTextDataGridViewTextBoxColumn;
} private DevComponents.DotNetBar.ButtonX btnEPAnnotation;
}
} }

View File

@ -329,14 +329,22 @@ namespace Volian.Controls.Library
AnnotationDirty = true; AnnotationDirty = true;
} }
private void dgAnnotations_CellClick(object sender, DataGridViewCellEventArgs e) //C2025-023 - Electronic Procedures - Modifications to PROMS
// Only show Open button if it is an EPAnnotationType
private void dgAnnotations_CellClick(object sender, DataGridViewCellEventArgs e)
{ {
if (!_LoadingGrid) // Only set the Current Annotation when not loading the grid btnEPAnnotation.Visible = false;
if (!_LoadingGrid) // Only set the Current Annotation when not loading the grid
{ {
if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0)) if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0))
CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index]; {
else CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index];
CurrentAnnotation = null; if (CurrentAnnotation.MyAnnotationType.IsEPAnnotationType)
btnEPAnnotation.Visible = true;
}
else
CurrentAnnotation = null;
} }
} }
@ -600,6 +608,7 @@ namespace Volian.Controls.Library
public void UpdateAnnotationGrid(ItemInfo currentitem) public void UpdateAnnotationGrid(ItemInfo currentitem)
{ {
CurrentItem = currentitem; CurrentItem = currentitem;
btnEPAnnotation.Visible = false;
UpdateAnnotationGrid(); UpdateAnnotationGrid();
} }
@ -702,5 +711,12 @@ namespace Volian.Controls.Library
} }
#endregion #endregion
} //C2025-023 - Electronic Procedures - Modifications to PROMS
// Open new Dynamic Form if open button selected
private void btnEPAnnotation_Click(object sender, EventArgs e)
{
frmEPAnnotationDetails EPfrm = new frmEPAnnotationDetails(CurrentAnnotation);
DialogResult dr = EPfrm.ShowDialog(this);
}
}
} }

View File

@ -603,6 +603,10 @@ namespace Volian.Controls.Library
} }
public void SetGridContextMenu() public void SetGridContextMenu()
{ {
//C2025-023 - Electronic Procedures - Modifications to PROMS
//Only show EP menu if an EP Annotation Type Exists
btnEPDesignation.Visible = EPFormatFile.IsEPAnnotationType();
if (rtabTableGridTools.Visible) if (rtabTableGridTools.Visible)
_ContextMenuBar.SetContextMenuEx(MyFlexGrid, btnCMGrid); _ContextMenuBar.SetContextMenuEx(MyFlexGrid, btnCMGrid);
} }
@ -770,6 +774,43 @@ namespace Volian.Controls.Library
//C1.Win.C1FlexGrid.CellRange cr = MyFlexGrid.GetEvenSelection(); //C1.Win.C1FlexGrid.CellRange cr = MyFlexGrid.GetEvenSelection();
//rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid.MyBorders, cr.r1, cr.c1, cr.r2, cr.c2); //rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid.MyBorders, cr.r1, cr.c1, cr.r2, cr.c2);
rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid, MyFlexGrid.Selection); rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid, MyFlexGrid.Selection);
SetEPbuttonImages();
}
//C2025-023 - Electronic Procedures - Modifications to PROMS
//Set which EP items are selected to show in the UI
void SetEPbuttonImages()
{
if (EPFormatFile.IsEPAnnotationType())
{
VlnFlexGrid.EPinputtype myEPInput = MyFlexGrid.GetEPinputtype();
Bitmap cb_Btmp = createTextBitmap('\u2713');
switch (myEPInput)
{
case VlnFlexGrid.EPinputtype.none:
btnEP_None.Image = cb_Btmp;
btnEP_Text.Image = null;
btnEP_Check.Image = null;
break;
case VlnFlexGrid.EPinputtype.textbox:
btnEP_None.Image = null;
btnEP_Text.Image = cb_Btmp;
btnEP_Check.Image = null;
break;
case VlnFlexGrid.EPinputtype.checkbox:
btnEP_None.Image = null;
btnEP_Text.Image = null;
btnEP_Check.Image = cb_Btmp;
break;
case VlnFlexGrid.EPinputtype.multi:
btnEP_None.Image = null;
btnEP_Text.Image = null;
btnEP_Check.Image = null;
break;
}
}
} }
void _MyEditItem_Leave(object sender, EventArgs e) void _MyEditItem_Leave(object sender, EventArgs e)
{ {
@ -4548,6 +4589,35 @@ namespace Volian.Controls.Library
//MyFlexGrid.ListStyles(); //MyFlexGrid.ListStyles();
} }
} }
//C2025-023 - Electronic Procedures - Modifications to PROMS
//if button selected, set the Cell's UserData
//then save the Grid
private void btnEP_None_Click(object sender, EventArgs e)
{
MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.none);
SetEPbuttonImages();
GridItem tmp = MyEditItem as GridItem;
tmp.SaveContents();
}
private void btnEP_Text_Click(object sender, EventArgs e)
{
MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.textbox);
SetEPbuttonImages();
GridItem tmp = MyEditItem as GridItem;
tmp.SaveContents();
}
private void btnEP_check_Click(object sender, EventArgs e)
{
MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.checkbox);
SetEPbuttonImages();
GridItem tmp = MyEditItem as GridItem;
tmp.SaveContents();
}
#endregion #endregion
#region Table Grid Border #region Table Grid Border
private void btnTblDgnTableBorderNone_Click(object sender, EventArgs e) private void btnTblDgnTableBorderNone_Click(object sender, EventArgs e)
@ -4808,8 +4878,8 @@ namespace Volian.Controls.Library
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents(); if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
OnTimeCriticalActionSummaryRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure)); OnTimeCriticalActionSummaryRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure));
} }
} }
public class StepTabRibbonEventArgs : EventArgs public class StepTabRibbonEventArgs : EventArgs
{ {
public StepTabRibbonEventArgs() { ; } public StepTabRibbonEventArgs() { ; }
public StepTabRibbonEventArgs(ItemInfo proc) public StepTabRibbonEventArgs(ItemInfo proc)

File diff suppressed because it is too large Load Diff

View File

@ -166,6 +166,13 @@ namespace Volian.Controls.Library
{ {
if (this.TableCellEditor.Text.Contains("<NewID>")) if (this.TableCellEditor.Text.Contains("<NewID>"))
return false; return false;
//C2025-023 - Electronic Procedures - Modifications to PROMS
//To handle if EP designation changed so will save in the DB
if (IsUserDataDirty)
{
IsUserDataDirty = false;
return true;
}
XmlDocument XdOld = new XmlDocument(); XmlDocument XdOld = new XmlDocument();
oldXml = _ReplaceTextFont.Replace(oldXml, "$1" + FontChangeFmt + "$4"); // B2021-032: use original font oldXml = _ReplaceTextFont.Replace(oldXml, "$1" + FontChangeFmt + "$4"); // B2021-032: use original font
XdOld.LoadXml(AdjustHeightAndWidthForDPI(oldXml)); XdOld.LoadXml(AdjustHeightAndWidthForDPI(oldXml));
@ -328,7 +335,7 @@ namespace Volian.Controls.Library
XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Styles/Style/Definition"); XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Styles/Style/Definition");
string data = string.Empty; string data = string.Empty;
foreach (XmlNode xn in nl) foreach (XmlNode xn in nl)
{ {
string str = xn.InnerText; string str = xn.InnerText;
string[] splStr = str.Split(';'); string[] splStr = str.Split(';');
foreach (string s in splStr) foreach (string s in splStr)
@ -852,7 +859,10 @@ namespace Volian.Controls.Library
if (Row >= cr.r1 && Row <= cr.r2) if (Row >= cr.r1 && Row <= cr.r2)
{ {
int cellHeight = GetCellHeight(Row, c); int cellHeight = GetCellHeight(Row, c);
int dataHeight = (cr.UserData == null) ? cellHeight : (int)cr.UserData; //C2025-023 - Electronic Procedures - Modifications to PROMS
//Userdata will now contain: height, EP Designation
string tmpUD = $"{cr.UserData}";
int dataHeight = (cr.UserData == null) ? cellHeight : int.Parse(tmpUD.Split(',')[0]);
int ud = dataHeight / (Rows.DefaultSize - 3); int ud = dataHeight / (Rows.DefaultSize - 3);
//if (cellHeight < dataHeight) //if (cellHeight < dataHeight)
// Console.WriteLine("r {0}, c {1}, cell{2}, data{3}", Row, c, cellHeight, dataHeight); // Console.WriteLine("r {0}, c {1}, cell{2}, data{3}", Row, c, cellHeight, dataHeight);
@ -1243,11 +1253,24 @@ namespace Volian.Controls.Library
if (_tableCellEditor._initializingEdit || !_tableCellEditor.Visible) return; if (_tableCellEditor._initializingEdit || !_tableCellEditor.Visible) return;
int curHeight = GetCellHeight(Row, Col);//(Rows[Row].Height == -1) ? Rows.DefaultSize : Rows[Row].Height; int curHeight = GetCellHeight(Row, Col);//(Rows[Row].Height == -1) ? Rows.DefaultSize : Rows[Row].Height;
CellRange cr = GetMergedRange(Row, Col); CellRange cr = GetMergedRange(Row, Col);
int oH = cr.UserData == null ? curHeight : (int)cr.UserData; //C2025-023 - Electronic Procedures - Modifications to PROMS
//Userdata will now contain: height, EP Designation
string tmpUD = $"{cr.UserData}";
int oH = cr.UserData == null ? curHeight : int.Parse(tmpUD.Split(',')[0]);
int nH = _tableCellEditor.Height; //.ContentsRectangle.Height; int nH = _tableCellEditor.Height; //.ContentsRectangle.Height;
int nW = _tableCellEditor.Width; // Width int nW = _tableCellEditor.Width; // Width
int Hadj = (nH - curHeight);//oH); int Hadj = (nH - curHeight);//oH);
cr.UserData = _tableCellEditor.Height; //.ContentsRectangle.Height; string tmp = $"{cr.UserData}";
int comma = tmp.IndexOf(',');
if (comma != -1)
{
cr.UserData = $"{_tableCellEditor.Height},{tmp.Substring(comma + 1)}";
}
else
{
cr.UserData = _tableCellEditor.Height;
}
//int cellHeight = GetCellHeight(Row, Col); //int cellHeight = GetCellHeight(Row, Col);
//int cellheightNLines = cellHeight / (Rows.DefaultSize - 3); //int cellheightNLines = cellHeight / (Rows.DefaultSize - 3);
//int nHNLines = nH / (Rows.DefaultSize - 3); //int nHNLines = nH / (Rows.DefaultSize - 3);
@ -1371,7 +1394,18 @@ namespace Volian.Controls.Library
{ {
_rtf.Width = e.Bounds.Width - 1; // This has also been -3 which matchs the rener command _rtf.Width = e.Bounds.Width - 1; // This has also been -3 which matchs the rener command
CellRange cr = GetMergedRange(e.Row, e.Col); CellRange cr = GetMergedRange(e.Row, e.Col);
cr.UserData = _rtf.Height; //C2025-023 - Electronic Procedures - Modifications to PROMS
//Userdata will now contain: height, EP Designation
string tmp = $"{cr.UserData}";
int comma = tmp.IndexOf(',');
if (comma != -1)
{
cr.UserData = $"{_rtf.Height},{tmp.Substring(comma + 1)}";
}
else
{
cr.UserData = _rtf.Height;
}
int hAdjust = 0; int hAdjust = 0;
int hDiff = e.Bounds.Height - _rtf.Height; int hDiff = e.Bounds.Height - _rtf.Height;
if (hDiff < 0) if (hDiff < 0)
@ -2612,6 +2646,84 @@ namespace Volian.Controls.Library
CellRange cr = this.Selection; CellRange cr = this.Selection;
cr.Clear(ClearFlags.Content); cr.Clear(ClearFlags.Content);
} }
public enum EPinputtype
{
none,
textbox,
checkbox,
multi
};
private bool IsUserDataDirty = false;
//C2025-023 - Electronic Procedures - Modifications to PROMS
//Userdata will now contain: height, EP Designation
//For Electronic Procedures to set the Electronic Procedure input type
//for when cells in a table will need a textbox or checkbox in the EP viewer
public void SetEPinputtype(EPinputtype EPtype)
{
CellRange cr = this.Selection;
for (int r = cr.r1; r <= cr.r2; r++)
for (int c = cr.c1; c <= cr.c2; c++)
{
CellRange cr_single = GetCellRange(r, c);
string tmpUD = $"{cr_single.UserData}";
string height = cr_single.UserData == null ? $"{GetCellHeight(r, c)}" : tmpUD.Split(',')[0];
if (EPtype == EPinputtype.none)
cr_single.UserData = int.Parse(height);
else
cr_single.UserData = $"{height},{EPtype}";
}
//save the changes
Select(cr);
IsUserDataDirty = true;
}
//C2025-023 - Electronic Procedures - Modifications to PROMS
//Userdata will now contain: height, EP Designation
//For Electronic Procedures get the Electronic Procedure input type
//for when cells in a table will need a textbox or checkbox in the EP viewer
public EPinputtype GetEPinputtype()
{
EPinputtype result = EPinputtype.none;
CellRange cr = this.Selection;
for (int r = cr.r1; r <= cr.r2; r++)
for (int c = cr.c1; c <= cr.c2; c++)
{
CellRange cr_single = GetCellRange(r, c);
string tmpUD = $"{cr_single.UserData}";
int comma = tmpUD.IndexOf(',');
if (comma != -1)
{
EPinputtype newresult = (EPinputtype) Enum.Parse(typeof(EPinputtype), tmpUD.Substring(comma + 1));
//if first cell, overwrite none
if (result == EPinputtype.none && r == cr.r1 && c == cr.c1)
{
result = newresult;
}
else if (result != newresult)
{
result = EPinputtype.multi;
return result;
}
}
else if (result != EPinputtype.none)
{
result = EPinputtype.multi;
return result;
}
}
return result;
}
public void SetupCellUserData() public void SetupCellUserData()
{ {
for (int r = 0; r < Rows.Count; r++) for (int r = 0; r < Rows.Count; r++)
@ -2625,7 +2737,19 @@ namespace Volian.Controls.Library
_rtf.Width = Cols[c].Width; _rtf.Width = Cols[c].Width;
_rtf.Rtf = rtfText; _rtf.Rtf = rtfText;
CellRange cr = GetCellRange(r, c); CellRange cr = GetCellRange(r, c);
cr.UserData = _rtf.ContentsRectangle.Height;
//C2025-023 - Electronic Procedures - Modifications to PROMS
//Userdata will now contain: height, EP Designation
string tmp = $"{cr.UserData}";
int comma = tmp.IndexOf(',');
if (comma != -1)
{
cr.UserData = $"{_rtf.ContentsRectangle.Height},{tmp.Substring(comma + 1)}";
}
else
{
cr.UserData = _rtf.ContentsRectangle.Height;
}
} }
} }
} }

View File

@ -243,6 +243,12 @@
<Compile Include="frmEnhanced.Designer.cs"> <Compile Include="frmEnhanced.Designer.cs">
<DependentUpon>frmEnhanced.cs</DependentUpon> <DependentUpon>frmEnhanced.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="frmEPAnnotationDetails.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmEPAnnotationDetails.Designer.cs">
<DependentUpon>frmEPAnnotationDetails.cs</DependentUpon>
</Compile>
<Compile Include="frmImportWordContents.cs"> <Compile Include="frmImportWordContents.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -474,6 +480,10 @@
<EmbeddedResource Include="frmEnhanced.resx"> <EmbeddedResource Include="frmEnhanced.resx">
<DependentUpon>frmEnhanced.cs</DependentUpon> <DependentUpon>frmEnhanced.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="frmEPAnnotationDetails.resx">
<DependentUpon>frmEPAnnotationDetails.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmImportWordContents.resx"> <EmbeddedResource Include="frmImportWordContents.resx">
<DependentUpon>frmImportWordContents.cs</DependentUpon> <DependentUpon>frmImportWordContents.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>

View File

@ -0,0 +1,111 @@
namespace Volian.Controls.Library
{
partial class frmEPAnnotationDetails
{
/// <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.btnOk = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.panel_btns = new System.Windows.Forms.Panel();
this.panelEP = new System.Windows.Forms.TableLayoutPanel();
this.panel_btns.SuspendLayout();
this.SuspendLayout();
//
// btnOk
//
this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOk.Location = new System.Drawing.Point(9, 7);
this.btnOk.Margin = new System.Windows.Forms.Padding(2);
this.btnOk.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(56, 19);
this.btnOk.TabIndex = 0;
this.btnOk.Text = "OK";
this.btnOk.UseVisualStyleBackColor = true;
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
//
// btnCancel
//
this.btnCancel.Location = new System.Drawing.Point(82, 7);
this.btnCancel.Margin = new System.Windows.Forms.Padding(2);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(56, 19);
this.btnCancel.TabIndex = 1;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// panel_btns
//
this.panel_btns.Controls.Add(this.btnCancel);
this.panel_btns.Controls.Add(this.btnOk);
this.panel_btns.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel_btns.Location = new System.Drawing.Point(0, 512);
this.panel_btns.Name = "panel_btns";
this.panel_btns.Size = new System.Drawing.Size(762, 30);
this.panel_btns.TabIndex = 2;
//
// panelEP
//
this.panelEP.AutoScroll = true;
this.panelEP.ColumnCount = 2;
this.panelEP.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.panelEP.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.panelEP.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelEP.Location = new System.Drawing.Point(0, 0);
this.panelEP.Name = "panelEP";
this.panelEP.RowCount = 1;
this.panelEP.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.panelEP.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 512F));
this.panelEP.Size = new System.Drawing.Size(762, 512);
this.panelEP.TabIndex = 3;
//
// frmEPAnnotationDetails
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoSize = true;
this.ClientSize = new System.Drawing.Size(762, 542);
this.Controls.Add(this.panelEP);
this.Controls.Add(this.panel_btns);
this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "frmEPAnnotationDetails";
this.Text = "Electronic Procedure Details";
this.TopMost = true;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmEPAnnotationDetails_FormClosing);
this.panel_btns.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btnOk;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Panel panel_btns;
private System.Windows.Forms.TableLayoutPanel panelEP;
}
}

View File

@ -0,0 +1,234 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using VEPROMS.CSLA.Library;
using Volian.Controls.Library;
using System.Linq;
namespace Volian.Controls.Library
{
//C2025-023 - Electronic Procedures - Modifications to PROMS
//Form for Dynamic Showing of EP detail controls and entry
public partial class frmEPAnnotationDetails : Form
{
private AnnotationInfo _CurrentAnnotation;
private EPFields myEPFields;
private AnnotationConfig MyConfig;
private StepTabRibbon _MyStepTabRibbon;
private Dictionary<string, StepRTB> _DicStepRtb;
private Dictionary<string, CheckBox> _DicCheckBox;
private Dictionary<string, ComboBox> _DicComboBox;
private Dictionary<string, ComboBox> _DicSingleRO;
public frmEPAnnotationDetails(AnnotationInfo currAnn)
{
InitializeComponent();
_DicStepRtb = new Dictionary<string, StepRTB>();
_DicCheckBox = new Dictionary<string, CheckBox>();
_DicComboBox = new Dictionary<string, ComboBox>();
_DicSingleRO = new Dictionary<string, ComboBox>();
InitializeSpecificControls(currAnn);
_MyStepTabRibbon = new StepTabRibbon();
}
private void InitializeSpecificControls(AnnotationInfo currAnn)
{
_CurrentAnnotation = currAnn;
myEPFields = _CurrentAnnotation.MyItem.GetValidEPFields(_CurrentAnnotation.TypeID);
MyConfig = new AnnotationConfig(currAnn.Config);
int MaxCharsInLabel = myEPFields.Max(x => x.label.Length);
//font size 8 - make labels slightly bigger than largest label
panelEP.ColumnStyles[0].SizeType = SizeType.Absolute;
panelEP.ColumnStyles[0].Width = (8 * MaxCharsInLabel) + 5;
int RowCount = 0;
foreach (EPField EP in myEPFields)
{
RowCount += 1;
panelEP.RowCount = RowCount;
panelEP.Top = 20;
panelEP.RowStyles.Insert(0, new RowStyle(SizeType.AutoSize));
Label wlbl = new Label();
wlbl.Text = EP.label;
wlbl.Visible = true;
wlbl.TextAlign = ContentAlignment.MiddleLeft;
wlbl.Anchor = AnchorStyles.Left | AnchorStyles.Top;
panelEP.Controls.Add(wlbl, 0, panelEP.RowCount - 1);
if (EP.type.ToLower() == "text")
{
StepRTB tb = new StepRTB();
tb.Font = tb.FormatFont = new Font("Arial", 8);
tb.FieldToEdit = E_FieldToEdit.PSI; //use same right click menu as PSI
tb.BorderStyle = BorderStyle.FixedSingle;
//aligning to both left and right stretches the textbox to the width of the form
tb.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
tb.Enter += new System.EventHandler(this.FieldStepRTB_Enter);
string val = MyConfig.GetValue("EP", EP.name).Replace("\\u8209?", "-");
DisplayText dt = new DisplayText(val, new VE_Font("Arial", 10, E_Style.None, 12), false);
StringBuilder sb = new StringBuilder();
sb.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Arial;}");
sb.Append(@"{\f1\fnil\fcharset0 Arial;}}{\colortbl ;\red255\green0\blue0;}"); //C2017-036 changed to just Arial because Microsoft removed Arial Unicode MS with Word16
sb.Append(@"\viewkind4\uc1\pard\sl-240\slmult0\fs" + (int)(this.Font.SizeInPoints * 2) + " " + dt.StartText + @"}");
tb.Rtf = sb.ToString();
tb.Visible = true;
tb.Height = EP.numlines * tb.Font.Height + 1 + tb.Margin.Vertical;
tb.MinimumSize = new Size(0, EP.numlines * tb.Font.Height + 1 + tb.Margin.Vertical);
if (EP.numlines > 1)
{
tb.Multiline = true;
tb.ScrollBars = RichTextBoxScrollBars.Both;
}
_DicStepRtb.Add(EP.name, tb);
panelEP.Controls.Add(tb, 1, panelEP.RowCount - 1);
}
if (EP.type.ToLower() == "logical")
{
CheckBox cb = new CheckBox();
cb.Text = EP.text;
cb.Visible = true;
string val = MyConfig.GetValue("EP", EP.name);
cb.Checked = val != null && val != "" && val.ToUpper()[0] == 'Y';
_DicCheckBox.Add(EP.name, cb);
cb.AutoSize = true;
panelEP.Controls.Add(cb, 1, panelEP.RowCount - 1);
}
if (EP.type.ToLower() == "combo")
{
ComboBox cmb = new ComboBox();
cmb.Visible = true;
string tmp = EP.text;
string[] tmps = tmp.Split(",".ToCharArray());
foreach (string t in tmps) cmb.Items.Add(t);
string val = MyConfig.GetValue("EP", EP.name);
if (val != null && val != "") cmb.SelectedItem = val;
_DicComboBox.Add(EP.name, cmb);
panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1);
}
if (EP.type.ToLower() == "rosingle")
{
ComboBox cmb = new ComboBox();
cmb.Visible = true;
cmb.DisplayMember = "Value";
cmb.ValueMember = "Key";
Dictionary<int, string> tmps = EP.getROList(currAnn);
//foreach (var t in tmps)
// cmb.Items.Add(t);
tmps.Add(-1, "");
cmb.DataSource = new BindingSource(tmps, null);
string val = MyConfig.GetValue("EP", EP.name);
if (val != null && val != "" && int.TryParse(val, out int n))
cmb.SelectedValue = n;
else
cmb.SelectedValue = -1;
//cmb.SelectedItem = null;
_DicSingleRO.Add(EP.name, cmb);
panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1);
}
}
}
private void FieldStepRTB_Enter(object sender, EventArgs e)
{
_MyStepTabRibbon.MyStepRTB = (StepRTB)sender;
}
private void btnOk_Click(object sender, EventArgs e)
{
// loop through all of the fields
bool isDirty = false;
foreach (EPField EP in myEPFields)
{
if (EP.type.ToLower() == "text")
{
StepRTB cur = _DicStepRtb[EP.name];
string rtf = cur.Rtf;
string newval = DisplayText.StaticStripRtfCommands(rtf, false); // C2020-001: added 'false'
// compare to original and if different, save in proc config.
string oldval = MyConfig.GetValue("EP", EP.name);
if (oldval != newval)
{
isDirty = true;
MyConfig.SetValue("EP", EP.name, newval.Replace("\\u8209?","-"));
}
}
else if (EP.type.ToLower() == "logical")
{
CheckBox cur = _DicCheckBox[EP.name];
string newval = cur.Checked ? "Y" : "N";
string oldval = MyConfig.GetValue("EP", EP.name);
if (newval != oldval)
{
isDirty = true;
MyConfig.SetValue("EP", EP.name, newval);
}
}
else if (EP.type.ToLower() == "combo")
{
ComboBox cmbcur = _DicComboBox[EP.name];
string newval = cmbcur.Text;
string oldval = MyConfig.GetValue("EP", EP.name);
if (newval != oldval)
{
isDirty = true;
MyConfig.SetValue("EP", EP.name, newval);
}
}
else if (EP.type.ToLower() == "rosingle")
{
ComboBox cmbcur = _DicSingleRO[EP.name];
string newval = cmbcur.SelectedValue.ToString();
string oldval = MyConfig.GetValue("EP", EP.name);
if (newval != oldval)
{
isDirty = true;
MyConfig.SetValue("EP", EP.name, newval);
}
}
}
if (isDirty)
{
using (Annotation annotation = _CurrentAnnotation.Get())
{
if (annotation != null)
{
annotation.Config = MyConfig.ToString();
annotation.DTS = DateTime.Now;
annotation.UserID = Volian.Base.Library.VlnSettings.UserID;
annotation.Save();
}
}
}
DialogResult = DialogResult.OK;
Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
//remove events so no memory loss
private void frmEPAnnotationDetails_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (StepRTB tb in _DicStepRtb.Values)
{
tb.Enter -= FieldStepRTB_Enter;
}
}
}
}

View File

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