Compare commits

...

70 Commits

Author SHA1 Message Date
28c681a562 C2025-024 Electronic Procedures Phase 2 - XML Export
Enhanced Doc Links
2025-08-01 13:53:08 -04:00
44025c3978 C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit Resolution, and Fix RO Annotation resolution in Text
2025-07-30 13:47:25 -04:00
8c32d18aec C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit RO Resolution
2025-07-24 08:08:18 -04:00
20c31153de C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit RO Resolution
2025-07-23 15:26:45 -04:00
ecb9a805e5 C2025-024 Electronic Procedures Phase 2 - XML Export
UI / menu filtering for EP only procedures
2025-07-21 13:47:23 -04:00
0577acad93 C2025-024 Electronic Procedures Phase 2 - XML Export
Removed unnecessary usings
2025-07-18 16:13:16 -04:00
d7f83fa4d4 C2025-024 Electronic Procedures Phase 2 - XML Export
Export Cleanup
2025-07-18 14:52:05 -04:00
4c4f4d52d2 C2025-024 Electronic Procedures Phase 2 - XML Export
Code refactor and added comment
2025-07-18 13:26:16 -04:00
0bf9025c0d C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-unit
2025-07-17 13:59:11 -04:00
2784b57a05 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on multiunit for DB Sequence
2025-07-16 14:23:55 -04:00
b9fc9748c7 C2025-024 Electronic Procedures Phase 2 - XML Export
set RO Location code for pre-existing RO usages
2025-07-16 10:09:01 -04:00
ec25f6426a C2025-024 Electronic Procedures Phase 2 - XML Export
Export code cleanup and initial set RO Location code
2025-07-15 13:43:19 -04:00
00283b4f28 C2025-024 Electronic Procedures Phase 2 - XML Export
Export code cleanup and initial set RO Location code
2025-07-15 13:31:12 -04:00
ec8e4c36a4 C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
RO image resolution for Annotations
2025-07-11 15:26:22 -04:00
92522b1229 C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
Initial check-in / adding ui options / base for export
2025-06-30 14:32:24 -04:00
9ef9dcd7b9 Merge pull request 'F2025-016 fixed the Open Bullet with Blank Line "o" designator to use the greek "o" lower cased omicron symbol' (#572) from F2025-016 into Development
Format only change.  good for testing
2025-06-26 16:08:44 -04:00
5fd8096ef0 F2025-016 fixed the Open Bullet with Blank Line "o" designator to use the greek "o" lower cased omicron symbol 2025-06-26 16:08:21 -04:00
5f59543a14 Merge pull request 'B2025-035-Hold-Procedure-Set-Bug' (#571) from B2025-035-Hold-Procedure-Set-Bug into Development
good for testing phase
2025-06-25 08:28:02 -04:00
d44593d6d4 B2025-035-Hold-Procedure-Set-Bug 2025-06-24 19:48:48 -04:00
38744ff8e8 Merge pull request 'C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)' (#565) from C2025-023 into Development
good for testing phase
2025-06-23 08:32:55 -04:00
83e935a3f4 C2025-023 updated revision wording 2025-06-20 15:36:08 -04:00
4d96e73866 Remove from checkin - should be in phase 2 2025-06-20 14:39:42 -04:00
a55ce75e2e C2025-023 Bringing branch up to date to resolve merge conflicts 2025-06-20 14:33:58 -04:00
c45dbf1dac Resolved merge conflicts with Development 2025-06-20 14:29:18 -04:00
2d08629608 C2025-023 attempt to resolve merge conflict 2025-06-20 13:56:41 -04:00
49bc67a64f Merge pull request 'C2025-036 - Cleaned up logic in PROMS code that generates the step/sub-step tabs to reduce un-needed processing in certain cases' (#569) from C2025-036_CleanupTabCode into Development
Looks good. Ready for QA testing.
2025-06-18 09:29:10 -04:00
abec4d9281 C2025-036 - Cleaned up logic in PROMS code that generates the step/sub-step tabs to reduce un-needed processing in certain cases 2025-06-18 09:20:17 -04:00
149bc601e2 Merge pull request 'B2025-034-Add-error-message-documents-2' (#568) from B2025-034-Add-error-message-documents-2 into Development
good for testing phase
2025-06-12 08:36:28 -04:00
66deede936 B2025-034-Add-error-message-documents-2 2025-06-11 18:24:59 -04:00
0df5511bf7 Merge pull request 'B2025-034-Add-error-message-documents' (#567) from B2025-034-Add-error-message-documents into Development
good for testing phase
2025-06-11 08:42:44 -04:00
2e68218cfe B2025-034-Add-error-message-documents 2025-06-10 16:34:22 -04:00
80f3568dbd Merge pull request 'F2025-015 Shearon Harris add sub-steps in Notes and Cautions and to add an Open Bullet sub-step type in both the EOP and AOP formats.' (#566) from F2025-015_SharonHarris into Development
Reviewed-on: #566
2025-06-03 11:43:26 -04:00
5fd0ff9e71 F2025-015 Shearon Harris add sub-steps in Notes and Cautions and to add an Open Bullet sub-step type in both the EOP and AOP formats. 2025-06-03 10:46:41 -04:00
4dcfa05157 Merge pull request 'B2025-024-Document-Unit-Print' (#564) from B2025-024-Document-Unit-Print into Development
good for testing phase
2025-05-29 10:14:00 -04:00
42648f31a5 Merge pull request 'C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed.' (#563) from C2025-021 into Development
Good for testing phase
2025-05-29 10:06:34 -04:00
e0b628dce9 B2025-024-Document-Unit-Print 2025-05-28 18:19:24 -04:00
6e9c7e28e6 C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed.
Make Inactive by Default
2025-05-28 14:37:14 -04:00
ac091a7d26 C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed. 2025-05-28 14:15:21 -04:00
8f31532917 C2025-023-Format2-Update 2025-05-27 10:56:14 -04:00
612e7955cf Merge pull request 'F2024-089 - Barakah requested a newly formatted Cover page section style to make room for new Corporate Logo.' (#561) from F2024-089_BNPP_LOGO into Development
Looks good.
Ready for QA.
2025-05-23 09:08:51 -04:00
ce92031ff7 F2024-089 - Barakah requested a newly formatted Cover page section style to make room for new Corporate Logo. 2025-05-22 15:05:27 -04:00
5a7e63871d C2025-023 - Electronic Procedures - Modifications to PROMS
Simplified to textboxes as RTF was impacting possible tags / directories
2025-05-21 09:34:07 -04:00
7ade7f6e24 Merge pull request 'C2025-023-New-EP-Format-File' (#560) from C2025-023-New-EP-Format-File into C2025-023
Reviewed-on: #560
2025-05-20 17:21:25 -04:00
e470ef0553 C2025-023-New-EP-Format-File 2025-05-20 16:53:16 -04:00
fb01a4f8df Merge pull request 'C2025-013 Option to Disable “Message Prompt when a Summary will open in MS Word”' (#558) from C2025-013 into Development
good for testing phase
2025-05-19 15:44:18 -04:00
eacdca8669 C2025-013 Option to Disable “Message Prompt when a Summary will open in MS Word” 2025-05-19 15:37:46 -04:00
df97a6dd01 Merge pull request 'C2025-028 Add a Quick Print Section option / B2025-032 Fix Section not Printing Applicability Properly' (#557) from C2025-028_B2025-032 into Development
good for testing phase
2025-05-16 15:37:01 -04:00
0259d4ff1d C2025-028 Add a Quick Print Section option / B2025-032 Fix Section not Printing Applicability Properly
Added an option to quick print a section.

Fixed a bug where: If you went to a section that had Applicability and select "Print Section" for a specific unit, it would sometimes print all units.
2025-05-16 14:10:56 -04:00
f71e9938bb Merge pull request 'C2025-033 Added a new field and supporting logic to specify if a PageStyle item should be printed for the Child procedure being printed.' (#556) from DemoFormats into Development
Looks good.
Ready for QA.
2025-05-16 11:01:18 -04:00
69f8e3f4fc C2025-033 Added a new field and supporting logic to specify if a PageStyle item should be printed for the Child procedure being printed. 2025-05-16 10:52:37 -04:00
f49c888307 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Changed linq to use builtin Find method per code analyzer recommendation
2025-05-15 10:57:28 -04:00
04a2da4371 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Change to not show open button if is an invalid step type
2025-05-15 10:45:52 -04:00
59372b23e4 Merge pull request 'B2025-028 RO Editor - Parent Child Applicability - Default Values' (#554) from B2025-028 into Development
good for testing phase
2025-05-15 10:41:40 -04:00
2970c0d7d4 B2025-028 RO Editor - Parent Child Applicability - Default Values
While working with parent/child applicability with child applicability set for a setpoint group - assign the Setpoint Values and Short Description fields to have Child values.  All child values default to their parent values as expected.  However, if you click in the Parent field for the Short Description, the Child Values for the Short Description fields incorrectly defaulted to the Parent Setpoint Value instead of keeping the parent Short Description.
2025-05-15 10:28:47 -04:00
392f1b09b2 Merge pull request 'C2025-031 Fixed typos found in Tool Tip message from previous check-in of this code change' (#553) from C2025_031_OptionsTooltips_Cleanup into Development
Change just fixes typos in tool tip messages.  No code review needed.
Ready for testing phase
2025-05-15 09:03:53 -04:00
79f66e9641 C2025-031 Fixed typos found in Tool Tip message from previous check-in of this code change 2025-05-15 09:01:43 -04:00
e90fceca86 Merge pull request 'B2025-031 Improve wording for if attempting to delete copied section' (#552) from B2025-031 into Development
good for testing phase
2025-05-15 08:40:23 -04:00
31f608a9ec C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Change to not show open button if using a format that is not attached to an EP format file.
2025-05-14 15:05:58 -04:00
3e53ec9191 C2025-023 - Electronic Procedures - Modifications to PROMS
Small change to handle removed items that were selected.
2025-05-13 07:48:50 -04:00
637cbd9954 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
RO/table entry - Dev Testing related changes
2025-05-08 10:18:50 -04:00
e9e934cfb1 C2025-023 - Electronic Procedures - Modifications to PROMS
RO input functionality
2025-05-02 11:46:55 -04:00
a417ddda85 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
RO Graphics Item Adjustment
2025-04-30 11:25:18 -04:00
f273a8839a C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Overlapping of textbox controls
2025-04-29 10:50:59 -04:00
62ae81c7b3 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on Adding functionality for EP input for tables #2
2025-04-25 15:07:29 -04:00
6db9567eb9 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on Adding functionality for EP input for tables
2025-04-23 07:42:28 -04:00
8ef08c53b3 C2025-023 - Electronic Procedures - Modifications to PROMS
1. undo changes to store checkbox/textbox in cell grid
2. change to use roid as key for RO listbox items
2025-04-11 10:12:37 -04:00
9fdbdb05f4 C2025-023 - Electronic Procedures - Modifications to PROMS (checkin 4 - added some comments) 2025-04-10 09:05:42 -04:00
d392131005 C2025-023 - Electronic Procedures - Modifications to PROMS (checkin #3 - fix winforms select first item bug in listboxes) 2025-04-10 08:53:27 -04:00
389b9e382b C2025-023 - Electronic Procedures - Modifications to PROMS - checkin #2 2025-04-09 15:22:36 -04:00
6fd84e2f2a C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) 2025-04-08 10:54:19 -04:00
71 changed files with 4888 additions and 2941 deletions

View File

@@ -92,6 +92,10 @@
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="epall\EPFormatTST1.xml" />
<Content Include="epall\EPFormatTST2.xml" />
<Content Include="epall\EPFormatTST3.xml" />
<Content Include="epall\EPFormatTST4.xml" />
<Content Include="fmtall\AEPall.xml">
<SubType>Designer</SubType>
</Content>
@@ -176,6 +180,8 @@
<Content Include="fmtall\CPL_03all.xml" />
<Content Include="fmtall\CPSAMGDataall.xml" />
<Content Include="fmtall\CPSAMGDEVall.xml" />
<Content Include="fmtall\EPTSTBCK1all.xml" />
<Content Include="fmtall\EPTST1all.xml" />
<Content Include="fmtall\CWEall.xml" />
<Content Include="fmtall\CWEDEVall.xml" />
<Content Include="fmtall\CWERall.xml" />
@@ -187,6 +193,7 @@
<Content Include="fmtall\EFSGBCKall.xml" />
<Content Include="fmtall\ELFDEVall.xml" />
<Content Include="fmtall\ENall.xml" />
<Content Include="fmtall\EPTST2all.xml" />
<Content Include="fmtall\ESFDEVall.xml" />
<Content Include="fmtall\EXCLNall.xml" />
<Content Include="fmtall\EXCLN_00all.xml" />
@@ -282,6 +289,10 @@
<Content Include="fmtall\NSPWGall.xml" />
<Content Include="fmtall\NSP_00all.xml" />
<Content Include="fmtall\OHLPall.xml" />
<Content Include="fmtall\PROMSDemo1all.xml" />
<Content Include="fmtall\PROMSDemo2all.xml" />
<Content Include="fmtall\PROMSDemoALRall.xml" />
<Content Include="fmtall\PROMSDemoBCKall.xml" />
<Content Include="fmtall\PROMSMan1all.xml" />
<Content Include="fmtall\PROMSMan2all.xml" />
<Content Include="fmtall\RGEall.xml" />
@@ -499,6 +510,10 @@
<Content Include="genmacall\nspsam.svg" />
<Content Include="genmacall\nspsamdev.svg" />
<Content Include="genmacall\ohlp.svg" />
<Content Include="genmacall\PROMSDemo1.svg" />
<Content Include="genmacall\PROMSDemo2.svg" />
<Content Include="genmacall\PROMSDemoALR.svg" />
<Content Include="genmacall\PROMSDemoBCK.svg" />
<Content Include="genmacall\PROMSMan1.svg" />
<Content Include="genmacall\PROMSMan2.svg" />
<Content Include="genmacall\rge.svg" />

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -276,8 +276,10 @@ namespace ctlXMLEditLib
bool imagechild; //whether this field is a subchild of an image
string imagename; //if subchild of image, name of image parent (for save)
string imagedate; //if this was filename, save the date/time stamp
string name; //name of element
string parenthtid; //name of parent element in hashtable for PC items
public TextBoxAttrTag(bool reqd, string ptn, RadioButton rd, bool img,
string imgname, string imgdate)
string imgname, string imgdate, string elemname)
{
this.req_msg = null;
this.required = reqd;
@@ -286,6 +288,12 @@ namespace ctlXMLEditLib
this.imagechild = img;
this.imagename = imgname;
this.imagedate = imgdate;
this.name = elemname;
if (name.Contains("_PCCHILD"))
this.parenthtid = name.Substring(0, name.IndexOf("_PCCHILD"));
else
this.parenthtid = null;
}
public void SetPattern(string pattern) {this.pattern = pattern;}
public void SetRequired(bool req) {this.required = req;}
@@ -298,6 +306,10 @@ namespace ctlXMLEditLib
public string GetImageName { get {return imagename;}}
public string GetImageDate { get {return imagedate;}}
public void SetImageDate(string imgdate) {this.imagedate = imgdate;}
public string GetName { get { return name; } }
public void SetName(string elemname) { this.name = elemname; }
public string GetParentHTId { get { return parenthtid; } }
public void SetParentHTId(string id) { this.parenthtid = id; }
}
public ctlXMLEdit(VlnXmlElement myelem, XmlSchema myschema, ArrayList reqfields, ArrayList fldsWithApplic, string [] pckids)
@@ -928,7 +940,7 @@ namespace ctlXMLEditLib
// initialization.
if (mytextbox.Tag == null)
{
TextBoxAttrTag tag = new TextBoxAttrTag(false, pattern, radio, img, (img?imgname:null), null);
TextBoxAttrTag tag = new TextBoxAttrTag(false, pattern, radio, img, (img?imgname:null), null, mytextbox.Name);
mytextbox.Tag = (object) tag;
}
return getannot;
@@ -1136,6 +1148,7 @@ namespace ctlXMLEditLib
mytextbox = new TextBox();
mytextbox.Location = new Point(screenx+indent, screeny);
string tFieldName = (pcChildIdx == 0) ? CvtUserFldToFld(element.Name) : CvtUserFldToFld(pcChildFldName);
mytextbox.Name = tFieldName;
myHT.Add(tFieldName, mytextbox);
tabindx++;
Controls.Add(mytextbox);
@@ -1201,9 +1214,21 @@ namespace ctlXMLEditLib
string dfTxt = "";
try
{
ctlXMLEdit tmp = (ctlXMLEdit)tb?.Parent;
if (!string.IsNullOrEmpty(tmp?.ActiveControl.Text))
dfTxt = tmp.ActiveControl.Text;
string parentid = ((TextBoxAttrTag)tb.Tag).GetParentHTId;
if (!string.IsNullOrEmpty(parentid))
{
object o = myHT[parentid];
if (o != null)
dfTxt = (o as TextBox).Text; // set to use the parent's value (default)
}
else
{
string parName = pcGrpBox.Name.Substring(5);
object o = myHT[parName];
if (o != null)
dfTxt = (o as TextBox).Text; // set to use the parent's value (default)
}
}
catch
{

View File

@@ -418,7 +418,12 @@ namespace VEPROMS
//txbPDFLocation.Text = _PDFPath;
BuildPDFFileName();
ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig;
if(SelectedSlave > 0) pc.SelectedSlave = SelectedSlave;
// C2025-033 set which Child procedure is being printed used for PageStyle items
VlnSvgPageHelper.PrintingChild = SelectedSlave;
if (SelectedSlave > 0)
{
pc.SelectedSlave = SelectedSlave;
}
if (pc != null)
{
//C2021-062 use the save rev number for all procedures if set, or just use the rev number in the current procedure config

View File

@@ -23811,6 +23811,279 @@ IF (@@Error = 0) PRINT 'Running vesp_UpdateUserSettings Succeeded'
ELSE PRINT 'Running vesp_UpdateUserSettings Failed to Execute'
GO
-- =============================================
-- Author: Matthew Schill
-- Create date: 5/19/2025
-- Description: Allow option to not prompt user with MS Word messages
-- when generating Summaries
-- =============================================
--- MSWordSummaryPrompt = ahouls user be prompted with message?
-- default = yes (true)
IF NOT EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Users'
AND COLUMN_NAME = 'MSWordSummaryPrompt')
ALTER TABLE Users ADD MSWordSummaryPrompt bit NOT NULL DEFAULT(1);
go
-- Display the status
IF (@@Error = 0) PRINT 'Altered table [Users] Succeeded for MSWordSummaryPrompt'
ELSE PRINT 'Altered table [Users] Error on Alter for MSWordSummaryPrompt'
go
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_UpdateUserSettingMSWordSummaryPrompt]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [vesp_UpdateUserSettingMSWordSummaryPrompt];
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Matthew Schill
-- Create date: 5/19/2025
-- Description: Allow option to not prompt user with MS Word messages
-- when generating Summaries
-- =============================================
CREATE PROCEDURE [dbo].[vesp_UpdateUserSettingMSWordSummaryPrompt]
(
@UID varchar(100),
@Prompt bit = null
)
WITH EXECUTE AS OWNER
AS
UPDATE Users SET
MSWordSummaryPrompt = ISNULL(@Prompt, MSWordSummaryPrompt)
WHERE UserID =@UID
RETURN
GO
IF (@@Error = 0) PRINT 'Running vesp_UpdateUserSettingMSWordSummaryPrompt Succeeded'
ELSE PRINT 'Running vesp_UpdateUserSettingMSWordSummaryPrompt Failed to Execute'
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
/*
---------------------------------------------------------------------------
| ADD New Code Before this Block |
@@ -23844,8 +24117,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
set @RevDate = '4/03/2025 6:14 PM'
set @RevDescription = 'B2022-031 Add filtering for Proc and Section name from Global Search'
set @RevDate = '6/20/2025 3:07 PM'
set @RevDescription = 'Annotation Support'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription

View File

@@ -164,6 +164,15 @@
<Compile Include="dlgCheckedOutProcedure.designer.cs">
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
</Compile>
<Compile Include="dlgExportImportEP.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgMSWordMessage.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgMSWordMessage.Designer.cs">
<DependentUpon>dlgMSWordMessage.cs</DependentUpon>
</Compile>
<Compile Include="dlgCheckOpenTabs.cs">
<SubType>Form</SubType>
</Compile>
@@ -331,6 +340,9 @@
<SubType>Designer</SubType>
<DependentUpon>AboutVEPROMS.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="dlgMSWordMessage.resx">
<DependentUpon>dlgMSWordMessage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="dlgCheckOpenTabs.resx">
<DependentUpon>dlgCheckOpenTabs.cs</DependentUpon>
</EmbeddedResource>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,347 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using VEPROMS.CSLA.Library;
namespace VEPROMS
{
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
//class inherits from normal import/export form
//then adds additional functionality
#pragma warning disable S101 // Types should be named in PascalCase
public partial class dlgExportImportEP : dlgExportImport
#pragma warning restore S101 // Types should be named in PascalCase
{
private readonly AnnotationTypeInfo _AnnotationType;
private readonly string multiseparator = ",";
private static Regex _ROAccPageTokenPattern = new Regex("[<][^<>-]+-[^<>]+[>]");
public dlgExportImportEP(string mode, FolderInfo folderInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, folderInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
{
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
_ExportBothConvertedandNot = true;
DocReplace = new Dictionary<int, byte[]>();
FormClosed += OnClose;
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {folderInfo.Name}";
}
public dlgExportImportEP(string mode, DocVersionInfo docVersionInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, docVersionInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
{
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
_ExportBothConvertedandNot = true;
DocReplace = new Dictionary<int, byte[]>();
FormClosed += OnClose;
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {docVersionInfo.Name} of {docVersionInfo.MyFolder.Name}";
}
public dlgExportImportEP(string mode, ProcedureInfo procedureInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, procedureInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
{
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
_ExportBothConvertedandNot = true;
DocReplace = new Dictionary<int, byte[]>();
FormClosed += OnClose;
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {procedureInfo.DisplayNumber}";
}
//Overridden function to handle export of EP data
protected override void ExportEPAnnotationInfo(XmlElement xe, ItemInfo ii)
{
if (_UnitIndex > 0)
{
ii.MyDocVersion.DocVersionConfig.SelectedSlave = _UnitIndex;
ii.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = _UnitIndex;
}
//switch to handle customizations for different formats
switch (ii.ActiveFormat.PlantFormat.EPFormatFiles.Find(x => x.AnnotationTypeID == _AnnotationType.TypeID)?.Name)
{
default:
ExportEPAnnotationInfo_Default(xe, ii);
break;
}
ii.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
ii.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
}
//default export of EP Data
private void ExportEPAnnotationInfo_Default(XmlElement xe, ItemInfo ii)
{
//Add tab text to item
string steptab = Volian.Print.Library.PDFReport.BuildStepTab(ii);
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "StepTab", steptab));
//Add db sequence to item
string dbsequence = dbSeq(ii);
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dbsequence", dbsequence));
//get first transition in item and add it as an xml element
if (ii.MyContent.ContentTransitionCount > 0)
{
TransitionInfo ct = ii.MyContent.ContentTransitions[0];
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "TransitionToItemID", ct.ToID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "TransitionTodbsequence", dbSeq(ct.ToID)));
}
//export EP annotation details under an EPInfo node
if (ii.ItemAnnotations != null)
{
XmlElement xepinfo = xe.OwnerDocument.CreateElement("EPInfo");
EPFields myEPFields = ii.GetValidEPFields(_AnnotationType.TypeID);
ROFSTLookup lookup = ii.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(ii.MyDocVersion);
bool epexportblank = ii.EPexportblank(_AnnotationType.TypeID); //should blank xml elements export?
//grab the current RO db so will know location of RO files and default graphics ext.
using (RODbInfo myRODB = (RODbInfoList.Get()).FirstOrDefault(x => x.RODbID == ii.MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID))
{
//For each annotation in the item that is of the current EP Annotation type
foreach (var EPAnnotation in ii.ItemAnnotations.Where(x => x.TypeID == _AnnotationType.TypeID))
{
var EPAnnotationConfig = new AnnotationConfig(EPAnnotation.Config);
XmlElement xepdetails = xe.OwnerDocument.CreateElement("Details");
//include the annotation ID for reference
xepdetails.Attributes.SetNamedItem(AddAttribute(xepdetails.OwnerDocument, "AnnotationID", EPAnnotation.AnnotationID.ToString()));
//loop through each EP Field - name the xml elements the EP.name
foreach (EPField EP in myEPFields)
{
string val = EPAnnotationConfig.GetValue("EP", EP.name);
if (epexportblank || !string.IsNullOrEmpty(val))
{
if (_UnitIndex != 0)
{
val = DisplayText.ResolveUnitSpecific(ii.MyDocVersion, val);
}
XmlElement xindivid = xe.OwnerDocument.CreateElement(EP.name);
//need to resolve ROs ROSingle, ROMulti, in text
//get values
switch (EP.type.ToLower())
{
case "text":
//for text, check if any embedded ROs
//if none, set the xml element to the text
//otherwise resolve the ROs
MatchCollection matches = _ROAccPageTokenPattern.Matches(val);
if (matches.Count == 0)
{
xindivid.InnerText = val;
}
else
{
//resolve ROs
//text ROs will replace the AccID key in the text
//for binary objects like images,
//we will keep the AccID in the text and output the binary as a separate child
//XML element with the same xml name as the AccID
foreach (Match m in matches)
{
ROFSTLookup.rochild roc = lookup.GetROChildByAccPageID(m.Groups[0].Value);
// Exclude replacing Images since are binary - for those, add a sub item
if (Enumerable.Range(8, 15).Contains(roc.type))
{
xindivid.InnerText = val;
XmlElement xroid = AddGraphic(xindivid, m.Groups[0].Value, roc, myRODB, roc.type != 8);
xindivid.AppendChild(xroid);
}
else if (!string.IsNullOrEmpty(roc.value))
{
bool convertCaretToDeltaSymbol = (ii.ActiveSection != null) && ii.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta;
string rocvalue = roc.value.Replace("`", "\xB0");
rocvalue = rocvalue.Replace("\xF8", "\xB0");
rocvalue = rocvalue.Replace("\x7F", "\x394"); //delta
if (convertCaretToDeltaSymbol) rocvalue = rocvalue.Replace("^", "\x394"); // delta
val = val.Replace($"{m.Groups[0].Value}", rocvalue);
xindivid.InnerText = val;
}
}
}
break;
case "rosingle":
//Get the output columns from the EPFormatFile
//set the "Item" nodes value = to those resolved items
//separated by multiseparator
XmlElement xindivid_rosingle = xindivid.OwnerDocument.CreateElement("Item");
xindivid_rosingle.Attributes.SetNamedItem(AddAttribute(xindivid_rosingle.OwnerDocument, "ROID", val));
//add values specified in EP input list
List<string> ro_single_tmp = EP.getROValuesList(EPAnnotation, val);
xindivid_rosingle.InnerText = String.Join(multiseparator, ro_single_tmp.ToArray());
//if image, add location and binary of image
// - images are type 8
// but if multiple return values could combine
// for example an text (1) + image (8) would be 9
ROFSTLookup.rochild roc_single = lookup.GetRoChild(val);
if (Enumerable.Range(8, 15).Contains(roc_single.type))
{
XmlElement xroid = AddGraphic(xindivid, val, roc_single, myRODB, roc_single.type != 8);
xindivid_rosingle.AppendChild(xroid);
}
xindivid.AppendChild(xindivid_rosingle);
break;
case "romulti":
//Get the output columns from the EPFormatFile
//create an "Item" subnode for each selected RO
//set the nodes value = to those resolved items
//separated by multiseparator
foreach (string ival in val.Split(multiseparator.ToCharArray()))
{
XmlElement xindivid_romulti = xindivid.OwnerDocument.CreateElement("Item");
xindivid_romulti.Attributes.SetNamedItem(AddAttribute(xindivid_romulti.OwnerDocument, "ROID", ival));
//add values specified in EP input list
List<string> ro_multi_tmp = EP.getROValuesList(EPAnnotation, ival);
xindivid_romulti.InnerText = String.Join(multiseparator, ro_multi_tmp.ToArray());
//if image, add location and binary of image
// - images are type 8
// but if multiple return values could combine
// for example an text (1) + image (8) would be 9
ROFSTLookup.rochild roc_multi = lookup.GetRoChild(ival);
if (Enumerable.Range(8, 15).Contains(roc_multi.type))
{
XmlElement xroid = AddGraphic(xindivid, ival, roc_multi, myRODB, roc_multi.type != 8);
xindivid_romulti.AppendChild(xroid);
}
xindivid.AppendChild(xindivid_romulti);
}
break;
case "tableinput":
xindivid.InnerText = val;
break;
default:
xindivid.InnerText = val;
break;
}
xepdetails.AppendChild(xindivid);
}
}
xepinfo.AppendChild(xepdetails);
}
}
xe.AppendChild(xepinfo);
}
}
//return a db sequence string from an Item ID
private string dbSeq(int itemID)
{
using (ItemInfo ii = ItemInfo.Get(itemID))
{
return dbSeq(ii);
}
}
//return a db sequence string from an ItemInfo
private string dbSeq(ItemInfo ii) => $"{((FolderInfo)ii.MyDocVersion.ActiveParent).Name}:{ii.MyProcedure.DisplayNumber} {ii.MyProcedure.DisplayText}:{ii.DBSequence}";
//For Exporting an RO that is an image
//returns the Location and FileName of the RO Image
private string GetROImageFileLocation(ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
{
string rodbpath = rodb.FolderPath;
string rocval = roc.value;
if (rocval == null) rocval = Array.Find(roc.children, x => x.value.Contains('.')).value;
if (rocval == null) return "";
string imgname;
if (isMulti)
{
imgname = rocval.Substring(rocval.IndexOf(' ') + 1, rocval.IndexOf("\r\n") - rocval.IndexOf(' ') - 1);
}
else
{
imgname = rocval.Substring(0, rocval.IndexOf('\n'));
}
int thedot = imgname.LastIndexOf('.');
string fname = imgname;
if (thedot == -1 || (thedot != (imgname.Length - 4)))
{
RODbConfig roDbCfg = new RODbConfig(rodb.Config);
fname += string.Format(".{0}", roDbCfg.GetDefaultGraphicExtension());
}
string imgfile = Path.Combine(rodbpath, fname);
return imgfile;
}
//For Exporting an RO that is an image
//returns an xmlElement
// - that is a child to xindivid
// - that has a name of Name
// - that has a value of the binary representation of the image
// - that has an attribute designating the location of the image file
private XmlElement AddGraphic(XmlElement xindivid, string Name, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
{
Name = Name.Replace("<", "").Replace(">", "");
XmlElement xroid = xindivid.OwnerDocument.CreateElement(Name);
string imgfile = GetROImageFileLocation(roc, rodb, isMulti);
if (string.IsNullOrEmpty(imgfile)) return xroid;
xroid.Attributes.SetNamedItem(AddAttribute(xroid.OwnerDocument, "Location", imgfile));
if (File.Exists(imgfile))
{
using (FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read))
{
// Create an instance of StreamReader that can read characters from the FileStream.
using (BinaryReader r = new BinaryReader(fsIn))
xroid.InnerText = Encoding.Default.GetString(r.ReadBytes((int)fsIn.Length));
}
}
return xroid;
}
//overridden - used to set the RO location for RO Images that are not in annotations
protected override void SetROLocation(ref XmlElement xindivid, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
{
string imgfile = GetROImageFileLocation(roc, rodb, isMulti);
if (!string.IsNullOrEmpty(imgfile)) xindivid.Attributes.SetNamedItem(AddAttribute(xindivid.OwnerDocument, "Location", imgfile));
}
//overridden - used to set specific enhanced doc info
protected override void SetEPEnhancedDocLinks(ref XmlElement xe, ItemInfo ii)
{
EnhancedDocuments eds = ii.GetMyEnhancedDocuments();
if (eds != null && eds.Count == 1)
{
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocType", eds[0].Type.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocToItemID", eds[0].ItemID.ToString()));
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocToDbSeq", dbSeq(eds[0].ItemID)));
}
}
//clear objects to release memory
private void OnClose(object sender, EventArgs e)
{
DocReplace.Clear();
DocReplace = null;
}
}
}

View File

@@ -0,0 +1,100 @@

namespace VEPROMS
{
partial class dlgMSWordMessage
{
/// <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.labelX1 = new DevComponents.DotNetBar.LabelX();
this.cbRemember = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.btnOpenTabs = new DevComponents.DotNetBar.ButtonX();
this.SuspendLayout();
//
// labelX1
//
//
//
//
this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX1.Location = new System.Drawing.Point(20, 12);
this.labelX1.Name = "labelX1";
this.labelX1.Size = new System.Drawing.Size(520, 78);
this.labelX1.TabIndex = 0;
this.labelX1.Text = "The _______________ will be opened in MS Word.\r\n\r\nYou can make modifications and " +
"copy it into a PROMS Word section.";
this.labelX1.WordWrap = true;
//
// cbRemember
//
//
//
//
this.cbRemember.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbRemember.Location = new System.Drawing.Point(12, 96);
this.cbRemember.Name = "cbRemember";
this.cbRemember.Size = new System.Drawing.Size(566, 55);
this.cbRemember.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbRemember.TabIndex = 1;
this.cbRemember.Text = "Check this box to not be prompted in the future when generating summaries that wi" +
"ll be opened in MS Word. \r\n\nNote that these settings can be adjusted at any time" +
" from the OPTIONS menu for PROMS.";
//
// btnOpenTabs
//
this.btnOpenTabs.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnOpenTabs.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnOpenTabs.DialogResult = System.Windows.Forms.DialogResult.Yes;
this.btnOpenTabs.Location = new System.Drawing.Point(490, 126);
this.btnOpenTabs.Name = "btnOpenTabs";
this.btnOpenTabs.Size = new System.Drawing.Size(64, 25);
this.btnOpenTabs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnOpenTabs.TabIndex = 2;
this.btnOpenTabs.Text = "OK";
this.btnOpenTabs.Click += new System.EventHandler(this.btnTabs_Click);
//
// dlgMSWordMessage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(567, 163);
this.ControlBox = false;
this.Controls.Add(this.btnOpenTabs);
this.Controls.Add(this.cbRemember);
this.Controls.Add(this.labelX1);
this.Name = "dlgMSWordMessage";
this.ResumeLayout(false);
}
#endregion
private DevComponents.DotNetBar.LabelX labelX1;
private DevComponents.DotNetBar.Controls.CheckBoxX cbRemember;
private DevComponents.DotNetBar.ButtonX btnOpenTabs;
}
}

View File

@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using VEPROMS.CSLA.Library;
using Volian.Base.Library;
namespace VEPROMS
{
public partial class dlgMSWordMessage : Form
{
//C2025-013 - Allow not continuously generate message that opening Summaries in MS Word
//typeofitem will be: Continuous Action/Time Critical Action
public dlgMSWordMessage(string typeofitem)
{
InitializeComponent();
Text = $"{typeofitem} Summary";
labelX1.Text = $"The {typeofitem} Summary will be opened in MS Word.\n\nYou can make modifications and copy it into a PROMS Word section.";
}
public bool ShouldDisplay()
{
UserSettings usersettings = new UserSettings(VlnSettings.UserID);
return usersettings.UserSetting_MSWord_Summary_Prompt;
}
private void btnTabs_Click(object sender, EventArgs e)
{
//if checkbox was checked in form, then update User Settings in database
if (cbRemember.Checked)
{
UserSettings usersettings = new UserSettings(VlnSettings.UserID);
usersettings.SetUserSetting_MSWord_Summary_Prompt(false);
}
this.Close();
}
}
}

View File

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

View File

@@ -395,8 +395,11 @@ namespace VEPROMS
// this will display the generated Continuous Action Summary in MS Word (starting a new instance of MS Word outside of PROMS)
if (MyPromsPrinter.MyContActSummary != null)
{
string instructions = "The Continuous Action Summary will be opened in MS Word.\n\nYou can make modifications and copy it into a PROMS Word section.";
MessageBox.Show(instructions, "Continuous Action Summary");
//C2025-013 - Allow not continuously generate message that opening Summaries in MS Word
using (dlgMSWordMessage msg = new dlgMSWordMessage("Continuous Action"))
{
if (msg.ShouldDisplay()) msg.ShowDialog();
}
// The ContActSummaryDelay is a switch that can be added to the PROMS.exe shortcut
// ex: VEPROMS.EXE /ContActSummaryDelay=2.5 will delay it 2 1/2 seconds
@@ -410,8 +413,11 @@ namespace VEPROMS
// F2022-024 this will display the generated Time Critical Action Summary in MS Word (starting a new instance of MS Word outside of PROMS)
if (MyPromsPrinter.MyTimeCriticalActSummary != null)
{
string instructions = "The Time Critical Action Summary will be opened in MS Word.\n\nYou can make modifications and copy it into a PROMS Word section.";
MessageBox.Show(instructions, "Time Critical Action Summary");
//C2025-013 - Allow not continuously generate message that opening Summaries in MS Word
using (dlgMSWordMessage msg = new dlgMSWordMessage("Time Critical Action"))
{
if (msg.ShouldDisplay()) msg.ShowDialog();
}
// The ContActSummaryDelay is a switch that can be added to the PROMS.exe shortcut
// ex: VEPROMS.EXE /ContActSummaryDelay=2.5 will delay it 2 1/2 seconds

View File

@@ -42,12 +42,11 @@ namespace VEPROMS
this.btnGeneral = new DevComponents.DotNetBar.ButtonX();
this.tcSysOpts = new DevComponents.DotNetBar.TabControl();
this.tabControlPanel3 = new DevComponents.DotNetBar.TabControlPanel();
//this.grPanUCFImpOpt = new DevComponents.DotNetBar.Controls.GroupPanel(); // C2024-041 remove from Options panel in V button.
this.cbUCFLForSetOnly = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbUCFLUseAll = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbUCFLOnlyImport = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbUCFLNotUsed = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbUCFIgnore = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.gpOpenTabs = new DevComponents.DotNetBar.Controls.GroupPanel();
this.cbOTRemember = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbOTAutoOpen = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.gpShwRplWords = new DevComponents.DotNetBar.Controls.GroupPanel();
this.cbShwRplWrdsColor = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.gpVisioPath = new DevComponents.DotNetBar.Controls.GroupPanel();
this.txbxVisioPath = new DevComponents.DotNetBar.Controls.TextBoxX();
this.gpSeparateWindows = new DevComponents.DotNetBar.Controls.GroupPanel();
@@ -74,19 +73,22 @@ namespace VEPROMS
this.tiGeneral = new DevComponents.DotNetBar.TabItem(this.components);
this.tabControlPanel2 = new DevComponents.DotNetBar.TabControlPanel();
this.tiStUpMsg = new DevComponents.DotNetBar.TabItem(this.components);
this.cbUCFLForSetOnly = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbUCFLUseAll = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbUCFLOnlyImport = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbUCFLNotUsed = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbUCFIgnore = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.btnReset = new DevComponents.DotNetBar.ButtonX();
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
this.cbOTRemember = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbShwRplWrdsColor = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.cbOTAutoOpen = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.gpOpenTabs = new DevComponents.DotNetBar.Controls.GroupPanel();
this.gpShwRplWords = new DevComponents.DotNetBar.Controls.GroupPanel();
this.cbMSWordPrompt = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.gpMSWordSum = new DevComponents.DotNetBar.Controls.GroupPanel();
this.gpSystemColor.SuspendLayout();
this.panButtons.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.tcSysOpts)).BeginInit();
this.tcSysOpts.SuspendLayout();
this.tabControlPanel3.SuspendLayout();
//this.grPanUCFImpOpt.SuspendLayout(); // C2024-041 remove from Options panel in V button.
this.gpOpenTabs.SuspendLayout();
this.gpShwRplWords.SuspendLayout();
this.gpVisioPath.SuspendLayout();
this.gpSeparateWindows.SuspendLayout();
this.gpEnhancedDocs.SuspendLayout();
@@ -96,16 +98,15 @@ namespace VEPROMS
this.gpAnnotationSettings.SuspendLayout();
this.gpTransRangeColor.SuspendLayout();
this.gpPropPageStyle.SuspendLayout();
this.gpOpenTabs.SuspendLayout();
this.gpShwRplWords.SuspendLayout();
this.gpMSWordSum.SuspendLayout();
this.SuspendLayout();
//
// btnCancel
//
this.btnCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(616, 492);
this.btnCancel.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.btnCancel.Location = new System.Drawing.Point(616, 591);
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 = 0;
@@ -115,8 +116,8 @@ namespace VEPROMS
// btnOK
//
this.btnOK.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnOK.Location = new System.Drawing.Point(542, 492);
this.btnOK.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.btnOK.Location = new System.Drawing.Point(542, 591);
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 = 1;
@@ -133,7 +134,7 @@ namespace VEPROMS
this.gpSystemColor.Controls.Add(this.cbRibonBlue);
this.gpSystemColor.DisabledBackColor = System.Drawing.Color.Empty;
this.gpSystemColor.Location = new System.Drawing.Point(39, 13);
this.gpSystemColor.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpSystemColor.Margin = new System.Windows.Forms.Padding(2);
this.gpSystemColor.Name = "gpSystemColor";
this.gpSystemColor.Size = new System.Drawing.Size(82, 97);
//
@@ -176,7 +177,7 @@ namespace VEPROMS
this.cbRibonBlack.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbRibonBlack.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbRibonBlack.Location = new System.Drawing.Point(7, 54);
this.cbRibonBlack.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbRibonBlack.Margin = new System.Windows.Forms.Padding(2);
this.cbRibonBlack.Name = "cbRibonBlack";
this.cbRibonBlack.Size = new System.Drawing.Size(67, 19);
this.cbRibonBlack.TabIndex = 2;
@@ -192,7 +193,7 @@ namespace VEPROMS
this.cbRibonSilver.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbRibonSilver.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbRibonSilver.Location = new System.Drawing.Point(7, 30);
this.cbRibonSilver.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbRibonSilver.Margin = new System.Windows.Forms.Padding(2);
this.cbRibonSilver.Name = "cbRibonSilver";
this.cbRibonSilver.Size = new System.Drawing.Size(67, 19);
this.cbRibonSilver.TabIndex = 1;
@@ -208,7 +209,7 @@ namespace VEPROMS
this.cbRibonBlue.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbRibonBlue.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbRibonBlue.Location = new System.Drawing.Point(7, 6);
this.cbRibonBlue.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbRibonBlue.Margin = new System.Windows.Forms.Padding(2);
this.cbRibonBlue.Name = "cbRibonBlue";
this.cbRibonBlue.Size = new System.Drawing.Size(67, 19);
this.cbRibonBlue.TabIndex = 0;
@@ -223,7 +224,7 @@ namespace VEPROMS
this.panButtons.Controls.Add(this.btnGeneral);
this.panButtons.DisabledBackColor = System.Drawing.Color.Empty;
this.panButtons.Location = new System.Drawing.Point(14, 14);
this.panButtons.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.panButtons.Margin = new System.Windows.Forms.Padding(2);
this.panButtons.Name = "panButtons";
this.panButtons.Size = new System.Drawing.Size(168, 460);
this.panButtons.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -244,7 +245,7 @@ namespace VEPROMS
this.btnIntrFaceStngs.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnIntrFaceStngs.Dock = System.Windows.Forms.DockStyle.Top;
this.btnIntrFaceStngs.Location = new System.Drawing.Point(0, 38);
this.btnIntrFaceStngs.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.btnIntrFaceStngs.Margin = new System.Windows.Forms.Padding(2);
this.btnIntrFaceStngs.Name = "btnIntrFaceStngs";
this.btnIntrFaceStngs.Size = new System.Drawing.Size(168, 19);
this.btnIntrFaceStngs.TabIndex = 2;
@@ -257,7 +258,7 @@ namespace VEPROMS
this.btnStartMsg.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnStartMsg.Dock = System.Windows.Forms.DockStyle.Top;
this.btnStartMsg.Location = new System.Drawing.Point(0, 19);
this.btnStartMsg.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.btnStartMsg.Margin = new System.Windows.Forms.Padding(2);
this.btnStartMsg.Name = "btnStartMsg";
this.btnStartMsg.Size = new System.Drawing.Size(168, 19);
this.btnStartMsg.TabIndex = 1;
@@ -271,7 +272,7 @@ namespace VEPROMS
this.btnGeneral.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnGeneral.Dock = System.Windows.Forms.DockStyle.Top;
this.btnGeneral.Location = new System.Drawing.Point(0, 0);
this.btnGeneral.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.btnGeneral.Margin = new System.Windows.Forms.Padding(2);
this.btnGeneral.Name = "btnGeneral";
this.btnGeneral.Size = new System.Drawing.Size(168, 19);
this.btnGeneral.TabIndex = 0;
@@ -287,11 +288,11 @@ namespace VEPROMS
this.tcSysOpts.Controls.Add(this.tabControlPanel1);
this.tcSysOpts.Controls.Add(this.tabControlPanel2);
this.tcSysOpts.Location = new System.Drawing.Point(27, 17);
this.tcSysOpts.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.tcSysOpts.Margin = new System.Windows.Forms.Padding(2);
this.tcSysOpts.Name = "tcSysOpts";
this.tcSysOpts.SelectedTabFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold);
this.tcSysOpts.SelectedTabIndex = 2;
this.tcSysOpts.Size = new System.Drawing.Size(645, 457);
this.tcSysOpts.Size = new System.Drawing.Size(645, 555);
this.tcSysOpts.TabIndex = 3;
this.tcSysOpts.TabLayoutType = DevComponents.DotNetBar.eTabLayoutType.FixedWithNavigationBox;
this.tcSysOpts.Tabs.Add(this.tiGeneral);
@@ -303,9 +304,9 @@ namespace VEPROMS
//
// tabControlPanel3
//
this.tabControlPanel3.Controls.Add(this.gpMSWordSum);
this.tabControlPanel3.Controls.Add(this.gpOpenTabs);
this.tabControlPanel3.Controls.Add(this.gpShwRplWords);
//this.tabControlPanel3.Controls.Add(this.grPanUCFImpOpt); // C2024-041 remove from Options panel in V button.
this.tabControlPanel3.Controls.Add(this.gpVisioPath);
this.tabControlPanel3.Controls.Add(this.gpSeparateWindows);
this.tabControlPanel3.Controls.Add(this.gpEnhancedDocs);
@@ -319,10 +320,10 @@ namespace VEPROMS
this.tabControlPanel3.DisabledBackColor = System.Drawing.Color.Empty;
this.tabControlPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControlPanel3.Location = new System.Drawing.Point(0, 27);
this.tabControlPanel3.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.tabControlPanel3.Margin = new System.Windows.Forms.Padding(2);
this.tabControlPanel3.Name = "tabControlPanel3";
this.tabControlPanel3.Padding = new System.Windows.Forms.Padding(1);
this.tabControlPanel3.Size = new System.Drawing.Size(645, 430);
this.tabControlPanel3.Size = new System.Drawing.Size(645, 528);
this.tabControlPanel3.Style.BackColor1.Color = System.Drawing.SystemColors.Control;
this.tabControlPanel3.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.tabControlPanel3.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right)
@@ -332,132 +333,136 @@ namespace VEPROMS
this.tabControlPanel3.TabItem = this.tiIntrFaceStngs;
this.tabControlPanel3.ThemeAware = true;
//
// grPanUCFImpOpt
// gpOpenTabs
//
// C2024-041 remove from Options panel in V button.
/*this.grPanUCFImpOpt.CanvasColor = System.Drawing.SystemColors.Control;
this.grPanUCFImpOpt.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; // C2024-041 remove from Options panel in V button.
this.grPanUCFImpOpt.Controls.Add(this.cbUCFLForSetOnly); // C2024-041 remove from Options panel in V button.
this.grPanUCFImpOpt.Controls.Add(this.cbUCFLUseAll); // C2024-041 remove from Options panel in V button.
this.grPanUCFImpOpt.Controls.Add(this.cbUCFLOnlyImport);
this.grPanUCFImpOpt.Controls.Add(this.cbUCFLNotUsed);
this.grPanUCFImpOpt.Controls.Add(this.cbUCFIgnore);
this.grPanUCFImpOpt.DisabledBackColor = System.Drawing.Color.Empty;
this.grPanUCFImpOpt.Location = new System.Drawing.Point(313, 12);
this.grPanUCFImpOpt.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.grPanUCFImpOpt.Name = "grPanUCFImpOpt";
this.grPanUCFImpOpt.Size = new System.Drawing.Size(146, 138);
this.gpOpenTabs.BackColor = System.Drawing.Color.Transparent;
this.gpOpenTabs.CanvasColor = System.Drawing.SystemColors.Control;
this.gpOpenTabs.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.gpOpenTabs.Controls.Add(this.cbOTRemember);
this.gpOpenTabs.Controls.Add(this.cbOTAutoOpen);
this.gpOpenTabs.DisabledBackColor = System.Drawing.Color.Empty;
this.gpOpenTabs.Location = new System.Drawing.Point(462, 252);
this.gpOpenTabs.Margin = new System.Windows.Forms.Padding(2);
this.gpOpenTabs.Name = "gpOpenTabs";
this.gpOpenTabs.Size = new System.Drawing.Size(139, 81);
//
//
//
this.grPanUCFImpOpt.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.grPanUCFImpOpt.Style.BackColorGradientAngle = 90;
this.grPanUCFImpOpt.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.grPanUCFImpOpt.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPanUCFImpOpt.Style.BorderBottomWidth = 1;
this.grPanUCFImpOpt.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.grPanUCFImpOpt.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPanUCFImpOpt.Style.BorderLeftWidth = 1;
this.grPanUCFImpOpt.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPanUCFImpOpt.Style.BorderRightWidth = 1;
this.grPanUCFImpOpt.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPanUCFImpOpt.Style.BorderTopWidth = 1;
this.grPanUCFImpOpt.Style.CornerDiameter = 4;
this.grPanUCFImpOpt.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.grPanUCFImpOpt.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.grPanUCFImpOpt.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.grPanUCFImpOpt.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
this.gpOpenTabs.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.gpOpenTabs.Style.BackColorGradientAngle = 90;
this.gpOpenTabs.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.gpOpenTabs.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpOpenTabs.Style.BorderBottomWidth = 1;
this.gpOpenTabs.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.gpOpenTabs.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpOpenTabs.Style.BorderLeftWidth = 1;
this.gpOpenTabs.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpOpenTabs.Style.BorderRightWidth = 1;
this.gpOpenTabs.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpOpenTabs.Style.BorderTopWidth = 1;
this.gpOpenTabs.Style.CornerDiameter = 4;
this.gpOpenTabs.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.gpOpenTabs.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.gpOpenTabs.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.gpOpenTabs.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
//
//
//
this.grPanUCFImpOpt.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.gpOpenTabs.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.grPanUCFImpOpt.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.grPanUCFImpOpt.TabIndex = 12;
this.grPanUCFImpOpt.Text = "UCF Import Options";
*/ // C2024-041 remove from Options panel in V button.
this.gpOpenTabs.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.gpOpenTabs.TabIndex = 13;
this.gpOpenTabs.Text = "Open Tabs";
//
// cbUCFLForSetOnly
//
this.cbUCFLForSetOnly.BackColor = System.Drawing.Color.Transparent;
// cbOTRemember
//
//
//
this.cbUCFLForSetOnly.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFLForSetOnly.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFLForSetOnly.Location = new System.Drawing.Point(2, 89);
this.cbUCFLForSetOnly.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbUCFLForSetOnly.Name = "cbUCFLForSetOnly";
this.cbUCFLForSetOnly.Size = new System.Drawing.Size(105, 19);
this.cbUCFLForSetOnly.TabIndex = 5;
this.cbUCFLForSetOnly.Text = "Load For Set Only";
this.cbUCFLForSetOnly.CheckedChanged += new System.EventHandler(this.cbUCFLForSetOnly_CheckedChanged);
//
// cbUCFLUseAll
this.cbOTRemember.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbOTRemember.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbOTRemember.Location = new System.Drawing.Point(8, 5);
this.cbOTRemember.Margin = new System.Windows.Forms.Padding(2);
this.cbOTRemember.Name = "cbOTRemember";
this.cbOTRemember.Size = new System.Drawing.Size(119, 19);
this.cbOTRemember.TabIndex = 9;
this.cbOTRemember.Text = "Remember Setting";
this.cbOTRemember.CheckedChanged += new System.EventHandler(this.cbOTRemember_CheckedChanged);
//
this.cbUCFLUseAll.BackColor = System.Drawing.Color.Transparent;
// cbOTAutoOpen
//
//
//
this.cbUCFLUseAll.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFLUseAll.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFLUseAll.Location = new System.Drawing.Point(2, 67);
this.cbUCFLUseAll.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbUCFLUseAll.Name = "cbUCFLUseAll";
this.cbUCFLUseAll.Size = new System.Drawing.Size(105, 19);
this.cbUCFLUseAll.TabIndex = 4;
this.cbUCFLUseAll.Text = "Load Use All";
this.cbUCFLUseAll.CheckedChanged += new System.EventHandler(this.cbUCFLUseAll_CheckedChanged);
//
// cbUCFLOnlyImport
this.cbOTAutoOpen.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbOTAutoOpen.Enabled = false;
this.cbOTAutoOpen.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbOTAutoOpen.Location = new System.Drawing.Point(8, 28);
this.cbOTAutoOpen.Margin = new System.Windows.Forms.Padding(2);
this.cbOTAutoOpen.Name = "cbOTAutoOpen";
this.cbOTAutoOpen.Size = new System.Drawing.Size(92, 19);
this.cbOTAutoOpen.TabIndex = 10;
this.cbOTAutoOpen.Text = "Auto Open";
this.cbOTAutoOpen.Visible = false;
//
this.cbUCFLOnlyImport.BackColor = System.Drawing.Color.Transparent;
// gpShwRplWords
//
this.gpShwRplWords.BackColor = System.Drawing.Color.Transparent;
this.gpShwRplWords.CanvasColor = System.Drawing.SystemColors.Control;
this.gpShwRplWords.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.gpShwRplWords.Controls.Add(this.cbShwRplWrdsColor);
this.gpShwRplWords.DisabledBackColor = System.Drawing.Color.Empty;
this.gpShwRplWords.Location = new System.Drawing.Point(462, 165);
this.gpShwRplWords.Margin = new System.Windows.Forms.Padding(2);
this.gpShwRplWords.Name = "gpShwRplWords";
this.gpShwRplWords.Size = new System.Drawing.Size(139, 72);
//
//
//
this.cbUCFLOnlyImport.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFLOnlyImport.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFLOnlyImport.Location = new System.Drawing.Point(2, 46);
this.cbUCFLOnlyImport.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbUCFLOnlyImport.Name = "cbUCFLOnlyImport";
this.cbUCFLOnlyImport.Size = new System.Drawing.Size(105, 19);
this.cbUCFLOnlyImport.TabIndex = 3;
this.cbUCFLOnlyImport.Text = "Load Only Imported";
this.cbUCFLOnlyImport.CheckedChanged += new System.EventHandler(this.cbUCFLOnlyImport_CheckedChanged);
//
// cbUCFLNotUsed
//
this.cbUCFLNotUsed.BackColor = System.Drawing.Color.Transparent;
this.gpShwRplWords.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.gpShwRplWords.Style.BackColorGradientAngle = 90;
this.gpShwRplWords.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.gpShwRplWords.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpShwRplWords.Style.BorderBottomWidth = 1;
this.gpShwRplWords.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.gpShwRplWords.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpShwRplWords.Style.BorderLeftWidth = 1;
this.gpShwRplWords.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpShwRplWords.Style.BorderRightWidth = 1;
this.gpShwRplWords.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpShwRplWords.Style.BorderTopWidth = 1;
this.gpShwRplWords.Style.CornerDiameter = 4;
this.gpShwRplWords.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.gpShwRplWords.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.gpShwRplWords.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.gpShwRplWords.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
//
//
//
this.cbUCFLNotUsed.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFLNotUsed.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFLNotUsed.Location = new System.Drawing.Point(2, 24);
this.cbUCFLNotUsed.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbUCFLNotUsed.Name = "cbUCFLNotUsed";
this.cbUCFLNotUsed.Size = new System.Drawing.Size(88, 19);
this.cbUCFLNotUsed.TabIndex = 2;
this.cbUCFLNotUsed.Text = "Load Not Used";
this.cbUCFLNotUsed.CheckedChanged += new System.EventHandler(this.cbUCFLNotUsed_CheckedChanged);
//
// cbUCFIgnore
//
this.cbUCFIgnore.BackColor = System.Drawing.Color.Transparent;
this.gpShwRplWords.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.cbUCFIgnore.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFIgnore.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFIgnore.Location = new System.Drawing.Point(2, 2);
this.cbUCFIgnore.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbUCFIgnore.Name = "cbUCFIgnore";
this.cbUCFIgnore.Size = new System.Drawing.Size(67, 19);
this.cbUCFIgnore.TabIndex = 1;
this.cbUCFIgnore.Text = "Ignore";
this.cbUCFIgnore.CheckedChanged += new System.EventHandler(this.cbUCFIgnore_CheckedChanged);
this.gpShwRplWords.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.gpShwRplWords.TabIndex = 13;
this.gpShwRplWords.Text = "Replace Words";
//
// cbShwRplWrdsColor
//
//
//
//
this.cbShwRplWrdsColor.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbShwRplWrdsColor.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbShwRplWrdsColor.Location = new System.Drawing.Point(8, 5);
this.cbShwRplWrdsColor.Margin = new System.Windows.Forms.Padding(2);
this.cbShwRplWrdsColor.Name = "cbShwRplWrdsColor";
this.cbShwRplWrdsColor.Size = new System.Drawing.Size(119, 19);
this.cbShwRplWrdsColor.TabIndex = 9;
this.cbShwRplWrdsColor.Text = "Color Replace Words";
this.cbShwRplWrdsColor.CheckedChanged += new System.EventHandler(this.cbShwRplWrdsColor_CheckedChanged);
//
// gpVisioPath
//
@@ -466,8 +471,8 @@ namespace VEPROMS
this.gpVisioPath.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.gpVisioPath.Controls.Add(this.txbxVisioPath);
this.gpVisioPath.DisabledBackColor = System.Drawing.Color.Empty;
this.gpVisioPath.Location = new System.Drawing.Point(25, 347);
this.gpVisioPath.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpVisioPath.Location = new System.Drawing.Point(25, 432);
this.gpVisioPath.Margin = new System.Windows.Forms.Padding(2);
this.gpVisioPath.Name = "gpVisioPath";
this.gpVisioPath.Size = new System.Drawing.Size(285, 69);
//
@@ -529,7 +534,7 @@ namespace VEPROMS
this.gpSeparateWindows.Controls.Add(this.cbSeparateWindows);
this.gpSeparateWindows.DisabledBackColor = System.Drawing.Color.Empty;
this.gpSeparateWindows.Location = new System.Drawing.Point(313, 252);
this.gpSeparateWindows.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpSeparateWindows.Margin = new System.Windows.Forms.Padding(2);
this.gpSeparateWindows.Name = "gpSeparateWindows";
this.gpSeparateWindows.Size = new System.Drawing.Size(127, 81);
//
@@ -571,7 +576,7 @@ namespace VEPROMS
this.cbSeparateWindows.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbSeparateWindows.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbSeparateWindows.Location = new System.Drawing.Point(8, 8);
this.cbSeparateWindows.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbSeparateWindows.Margin = new System.Windows.Forms.Padding(2);
this.cbSeparateWindows.Name = "cbSeparateWindows";
this.cbSeparateWindows.Size = new System.Drawing.Size(107, 19);
this.cbSeparateWindows.TabIndex = 9;
@@ -586,7 +591,7 @@ namespace VEPROMS
this.gpEnhancedDocs.Controls.Add(this.cbEnhancedDocumentSync);
this.gpEnhancedDocs.DisabledBackColor = System.Drawing.Color.Empty;
this.gpEnhancedDocs.Location = new System.Drawing.Point(167, 252);
this.gpEnhancedDocs.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpEnhancedDocs.Margin = new System.Windows.Forms.Padding(2);
this.gpEnhancedDocs.Name = "gpEnhancedDocs";
this.gpEnhancedDocs.Size = new System.Drawing.Size(127, 81);
//
@@ -631,7 +636,7 @@ namespace VEPROMS
this.cbEnhancedDocumentSync.CheckValue = "Y";
this.cbEnhancedDocumentSync.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbEnhancedDocumentSync.Location = new System.Drawing.Point(8, 8);
this.cbEnhancedDocumentSync.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbEnhancedDocumentSync.Margin = new System.Windows.Forms.Padding(2);
this.cbEnhancedDocumentSync.Name = "cbEnhancedDocumentSync";
this.cbEnhancedDocumentSync.Size = new System.Drawing.Size(99, 19);
this.cbEnhancedDocumentSync.TabIndex = 9;
@@ -646,7 +651,7 @@ namespace VEPROMS
this.gpPasteSettings.Controls.Add(this.cbPasteNoReturns);
this.gpPasteSettings.DisabledBackColor = System.Drawing.Color.Empty;
this.gpPasteSettings.Location = new System.Drawing.Point(25, 252);
this.gpPasteSettings.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpPasteSettings.Margin = new System.Windows.Forms.Padding(2);
this.gpPasteSettings.Name = "gpPasteSettings";
this.gpPasteSettings.Size = new System.Drawing.Size(119, 81);
//
@@ -691,7 +696,7 @@ namespace VEPROMS
this.cbPastePlainText.CheckValue = "Y";
this.cbPastePlainText.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbPastePlainText.Location = new System.Drawing.Point(8, 8);
this.cbPastePlainText.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbPastePlainText.Margin = new System.Windows.Forms.Padding(2);
this.cbPastePlainText.Name = "cbPastePlainText";
this.cbPastePlainText.Size = new System.Drawing.Size(92, 19);
this.cbPastePlainText.TabIndex = 9;
@@ -709,7 +714,7 @@ namespace VEPROMS
this.cbPasteNoReturns.CheckValue = "Y";
this.cbPasteNoReturns.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbPasteNoReturns.Location = new System.Drawing.Point(8, 28);
this.cbPasteNoReturns.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbPasteNoReturns.Margin = new System.Windows.Forms.Padding(2);
this.cbPasteNoReturns.Name = "cbPasteNoReturns";
this.cbPasteNoReturns.Size = new System.Drawing.Size(92, 19);
this.cbPasteNoReturns.TabIndex = 10;
@@ -724,7 +729,7 @@ namespace VEPROMS
this.gpTreeView.Controls.Add(this.cbTVExpand);
this.gpTreeView.DisabledBackColor = System.Drawing.Color.Empty;
this.gpTreeView.Location = new System.Drawing.Point(312, 165);
this.gpTreeView.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpTreeView.Margin = new System.Windows.Forms.Padding(2);
this.gpTreeView.Name = "gpTreeView";
this.gpTreeView.Size = new System.Drawing.Size(119, 72);
//
@@ -769,7 +774,7 @@ namespace VEPROMS
this.cbTVExpand.CheckValue = "Y";
this.cbTVExpand.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbTVExpand.Location = new System.Drawing.Point(8, 13);
this.cbTVExpand.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbTVExpand.Margin = new System.Windows.Forms.Padding(2);
this.cbTVExpand.Name = "cbTVExpand";
this.cbTVExpand.Size = new System.Drawing.Size(92, 19);
this.superTooltip1.SetSuperTooltip(this.cbTVExpand, new DevComponents.DotNetBar.SuperTooltipInfo("Remember Last", "", "When checked, PROMS will remember the last procedure you had seleced from the tre" +
@@ -786,7 +791,7 @@ namespace VEPROMS
this.gpStepTypeToolTip.Controls.Add(this.cbStepTypeToolTip);
this.gpStepTypeToolTip.DisabledBackColor = System.Drawing.Color.Empty;
this.gpStepTypeToolTip.Location = new System.Drawing.Point(167, 165);
this.gpStepTypeToolTip.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpStepTypeToolTip.Margin = new System.Windows.Forms.Padding(2);
this.gpStepTypeToolTip.Name = "gpStepTypeToolTip";
this.gpStepTypeToolTip.Size = new System.Drawing.Size(119, 72);
//
@@ -828,7 +833,7 @@ namespace VEPROMS
this.cbStepTypeToolTip.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbStepTypeToolTip.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbStepTypeToolTip.Location = new System.Drawing.Point(8, 13);
this.cbStepTypeToolTip.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbStepTypeToolTip.Margin = new System.Windows.Forms.Padding(2);
this.cbStepTypeToolTip.Name = "cbStepTypeToolTip";
this.cbStepTypeToolTip.Size = new System.Drawing.Size(92, 19);
this.cbStepTypeToolTip.TabIndex = 7;
@@ -843,7 +848,7 @@ namespace VEPROMS
this.gpAnnotationSettings.Controls.Add(this.cbAnnotationPopup);
this.gpAnnotationSettings.DisabledBackColor = System.Drawing.Color.Empty;
this.gpAnnotationSettings.Location = new System.Drawing.Point(25, 165);
this.gpAnnotationSettings.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpAnnotationSettings.Margin = new System.Windows.Forms.Padding(2);
this.gpAnnotationSettings.Name = "gpAnnotationSettings";
this.gpAnnotationSettings.Size = new System.Drawing.Size(119, 72);
//
@@ -888,7 +893,7 @@ namespace VEPROMS
this.cbAnnotationPopup.CheckValue = "Y";
this.cbAnnotationPopup.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbAnnotationPopup.Location = new System.Drawing.Point(8, 13);
this.cbAnnotationPopup.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbAnnotationPopup.Margin = new System.Windows.Forms.Padding(2);
this.cbAnnotationPopup.Name = "cbAnnotationPopup";
this.cbAnnotationPopup.Size = new System.Drawing.Size(92, 19);
this.cbAnnotationPopup.TabIndex = 7;
@@ -959,7 +964,7 @@ namespace VEPROMS
this.gpPropPageStyle.Controls.Add(this.cbButtonIntrFace);
this.gpPropPageStyle.DisabledBackColor = System.Drawing.Color.Empty;
this.gpPropPageStyle.Location = new System.Drawing.Point(155, 12);
this.gpPropPageStyle.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpPropPageStyle.Margin = new System.Windows.Forms.Padding(2);
this.gpPropPageStyle.Name = "gpPropPageStyle";
this.gpPropPageStyle.Size = new System.Drawing.Size(127, 107);
//
@@ -1001,7 +1006,7 @@ namespace VEPROMS
this.cbPropGrid.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbPropGrid.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbPropGrid.Location = new System.Drawing.Point(8, 59);
this.cbPropGrid.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbPropGrid.Margin = new System.Windows.Forms.Padding(2);
this.cbPropGrid.Name = "cbPropGrid";
this.cbPropGrid.Size = new System.Drawing.Size(97, 20);
this.cbPropGrid.TabIndex = 2;
@@ -1016,7 +1021,7 @@ namespace VEPROMS
this.cbTabbedIntrFace.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbTabbedIntrFace.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbTabbedIntrFace.Location = new System.Drawing.Point(8, 34);
this.cbTabbedIntrFace.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbTabbedIntrFace.Margin = new System.Windows.Forms.Padding(2);
this.cbTabbedIntrFace.Name = "cbTabbedIntrFace";
this.cbTabbedIntrFace.Size = new System.Drawing.Size(111, 20);
this.cbTabbedIntrFace.TabIndex = 1;
@@ -1030,7 +1035,7 @@ namespace VEPROMS
this.cbButtonIntrFace.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbButtonIntrFace.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbButtonIntrFace.Location = new System.Drawing.Point(8, 10);
this.cbButtonIntrFace.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cbButtonIntrFace.Margin = new System.Windows.Forms.Padding(2);
this.cbButtonIntrFace.Name = "cbButtonIntrFace";
this.cbButtonIntrFace.Size = new System.Drawing.Size(97, 20);
this.cbButtonIntrFace.TabIndex = 0;
@@ -1047,7 +1052,7 @@ namespace VEPROMS
this.tabControlPanel1.DisabledBackColor = System.Drawing.Color.Empty;
this.tabControlPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControlPanel1.Location = new System.Drawing.Point(0, 27);
this.tabControlPanel1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.tabControlPanel1.Margin = new System.Windows.Forms.Padding(2);
this.tabControlPanel1.Name = "tabControlPanel1";
this.tabControlPanel1.Padding = new System.Windows.Forms.Padding(1);
this.tabControlPanel1.Size = new System.Drawing.Size(645, 430);
@@ -1072,10 +1077,10 @@ namespace VEPROMS
this.tabControlPanel2.DisabledBackColor = System.Drawing.Color.Empty;
this.tabControlPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControlPanel2.Location = new System.Drawing.Point(0, 27);
this.tabControlPanel2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.tabControlPanel2.Margin = new System.Windows.Forms.Padding(2);
this.tabControlPanel2.Name = "tabControlPanel2";
this.tabControlPanel2.Padding = new System.Windows.Forms.Padding(1);
this.tabControlPanel2.Size = new System.Drawing.Size(645, 430);
this.tabControlPanel2.Size = new System.Drawing.Size(645, 528);
this.tabControlPanel2.Style.BackColor1.Color = System.Drawing.SystemColors.Control;
this.tabControlPanel2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.tabControlPanel2.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right)
@@ -1092,12 +1097,92 @@ namespace VEPROMS
this.tiStUpMsg.Text = "Startup Message";
this.tiStUpMsg.Visible = false;
//
// cbUCFLForSetOnly
//
this.cbUCFLForSetOnly.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.cbUCFLForSetOnly.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFLForSetOnly.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFLForSetOnly.Location = new System.Drawing.Point(2, 89);
this.cbUCFLForSetOnly.Margin = new System.Windows.Forms.Padding(2);
this.cbUCFLForSetOnly.Name = "cbUCFLForSetOnly";
this.cbUCFLForSetOnly.Size = new System.Drawing.Size(105, 19);
this.cbUCFLForSetOnly.TabIndex = 5;
this.cbUCFLForSetOnly.Text = "Load For Set Only";
this.cbUCFLForSetOnly.CheckedChanged += new System.EventHandler(this.cbUCFLForSetOnly_CheckedChanged);
//
// cbUCFLUseAll
//
this.cbUCFLUseAll.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.cbUCFLUseAll.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFLUseAll.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFLUseAll.Location = new System.Drawing.Point(2, 67);
this.cbUCFLUseAll.Margin = new System.Windows.Forms.Padding(2);
this.cbUCFLUseAll.Name = "cbUCFLUseAll";
this.cbUCFLUseAll.Size = new System.Drawing.Size(105, 19);
this.cbUCFLUseAll.TabIndex = 4;
this.cbUCFLUseAll.Text = "Load Use All";
this.cbUCFLUseAll.CheckedChanged += new System.EventHandler(this.cbUCFLUseAll_CheckedChanged);
//
// cbUCFLOnlyImport
//
this.cbUCFLOnlyImport.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.cbUCFLOnlyImport.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFLOnlyImport.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFLOnlyImport.Location = new System.Drawing.Point(2, 46);
this.cbUCFLOnlyImport.Margin = new System.Windows.Forms.Padding(2);
this.cbUCFLOnlyImport.Name = "cbUCFLOnlyImport";
this.cbUCFLOnlyImport.Size = new System.Drawing.Size(105, 19);
this.cbUCFLOnlyImport.TabIndex = 3;
this.cbUCFLOnlyImport.Text = "Load Only Imported";
this.cbUCFLOnlyImport.CheckedChanged += new System.EventHandler(this.cbUCFLOnlyImport_CheckedChanged);
//
// cbUCFLNotUsed
//
this.cbUCFLNotUsed.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.cbUCFLNotUsed.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFLNotUsed.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFLNotUsed.Location = new System.Drawing.Point(2, 24);
this.cbUCFLNotUsed.Margin = new System.Windows.Forms.Padding(2);
this.cbUCFLNotUsed.Name = "cbUCFLNotUsed";
this.cbUCFLNotUsed.Size = new System.Drawing.Size(88, 19);
this.cbUCFLNotUsed.TabIndex = 2;
this.cbUCFLNotUsed.Text = "Load Not Used";
this.cbUCFLNotUsed.CheckedChanged += new System.EventHandler(this.cbUCFLNotUsed_CheckedChanged);
//
// cbUCFIgnore
//
this.cbUCFIgnore.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.cbUCFIgnore.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUCFIgnore.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton;
this.cbUCFIgnore.Location = new System.Drawing.Point(2, 2);
this.cbUCFIgnore.Margin = new System.Windows.Forms.Padding(2);
this.cbUCFIgnore.Name = "cbUCFIgnore";
this.cbUCFIgnore.Size = new System.Drawing.Size(67, 19);
this.cbUCFIgnore.TabIndex = 1;
this.cbUCFIgnore.Text = "Ignore";
this.cbUCFIgnore.CheckedChanged += new System.EventHandler(this.cbUCFIgnore_CheckedChanged);
//
// btnReset
//
this.btnReset.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnReset.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnReset.Location = new System.Drawing.Point(194, 492);
this.btnReset.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.btnReset.Location = new System.Drawing.Point(194, 591);
this.btnReset.Margin = new System.Windows.Forms.Padding(2);
this.btnReset.Name = "btnReset";
this.btnReset.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnReset.Size = new System.Drawing.Size(79, 19);
@@ -1111,135 +1196,61 @@ namespace VEPROMS
this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
//
// cbOTRemember
// cbMSWordPrompt
//
//
//
//
this.cbOTRemember.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbOTRemember.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbOTRemember.Location = new System.Drawing.Point(8, 5);
this.cbOTRemember.Margin = new System.Windows.Forms.Padding(2);
this.cbOTRemember.Name = "cbOTRemember";
this.cbOTRemember.Size = new System.Drawing.Size(119, 19);
this.cbOTRemember.TabIndex = 9;
this.cbOTRemember.Text = "Remember Setting";
this.cbOTRemember.CheckedChanged += new System.EventHandler(this.cbOTRemember_CheckedChanged);
this.cbMSWordPrompt.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbMSWordPrompt.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbMSWordPrompt.Location = new System.Drawing.Point(8, 5);
this.cbMSWordPrompt.Margin = new System.Windows.Forms.Padding(2);
this.cbMSWordPrompt.Name = "cbMSWordPrompt";
this.cbMSWordPrompt.Size = new System.Drawing.Size(92, 44);
this.cbMSWordPrompt.TabIndex = 9;
this.cbMSWordPrompt.Text = "Show Prompt For Summaries";
//
// cbShwRplWrdsColor
//
// gpMSWordSum
//
this.cbShwRplWrdsColor.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbShwRplWrdsColor.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbShwRplWrdsColor.Location = new System.Drawing.Point(8, 5);
this.cbShwRplWrdsColor.Margin = new System.Windows.Forms.Padding(2);
this.cbShwRplWrdsColor.Name = "cbShwRplWrdsColor";
this.cbShwRplWrdsColor.Size = new System.Drawing.Size(119, 19);
this.cbShwRplWrdsColor.TabIndex = 9;
this.cbShwRplWrdsColor.Text = "Color Replace Words";
this.cbShwRplWrdsColor.CheckedChanged += new System.EventHandler(this.cbShwRplWrdsColor_CheckedChanged);
//this.cbShwRplWrdsColor.Checked;
//
// cbOTAutoOpen
this.gpMSWordSum.BackColor = System.Drawing.Color.Transparent;
this.gpMSWordSum.CanvasColor = System.Drawing.SystemColors.Control;
this.gpMSWordSum.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.gpMSWordSum.Controls.Add(this.cbMSWordPrompt);
this.gpMSWordSum.DisabledBackColor = System.Drawing.Color.Empty;
this.gpMSWordSum.Location = new System.Drawing.Point(25, 347);
this.gpMSWordSum.Margin = new System.Windows.Forms.Padding(2);
this.gpMSWordSum.Name = "gpMSWordSum";
this.gpMSWordSum.Size = new System.Drawing.Size(119, 81);
//
//
//
//
this.cbOTAutoOpen.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbOTAutoOpen.Enabled = false;
this.cbOTAutoOpen.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbOTAutoOpen.Location = new System.Drawing.Point(8, 28);
this.cbOTAutoOpen.Margin = new System.Windows.Forms.Padding(2);
this.cbOTAutoOpen.Name = "cbOTAutoOpen";
this.cbOTAutoOpen.Size = new System.Drawing.Size(92, 19);
this.cbOTAutoOpen.TabIndex = 10;
this.cbOTAutoOpen.Text = "Auto Open";
this.cbOTAutoOpen.Visible = false;
//
// gpOpenTabs
//
this.gpOpenTabs.BackColor = System.Drawing.Color.Transparent;
this.gpOpenTabs.CanvasColor = System.Drawing.SystemColors.Control;
this.gpOpenTabs.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.gpOpenTabs.Controls.Add(this.cbOTRemember);
this.gpOpenTabs.Controls.Add(this.cbOTAutoOpen);
this.gpOpenTabs.DisabledBackColor = System.Drawing.Color.Empty;
this.gpOpenTabs.Location = new System.Drawing.Point(462, 252);
this.gpOpenTabs.Margin = new System.Windows.Forms.Padding(2);
this.gpOpenTabs.Name = "gpOpenTabs";
this.gpOpenTabs.Size = new System.Drawing.Size(139, 81);
this.gpMSWordSum.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.gpMSWordSum.Style.BackColorGradientAngle = 90;
this.gpMSWordSum.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.gpMSWordSum.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpMSWordSum.Style.BorderBottomWidth = 1;
this.gpMSWordSum.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.gpMSWordSum.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpMSWordSum.Style.BorderLeftWidth = 1;
this.gpMSWordSum.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpMSWordSum.Style.BorderRightWidth = 1;
this.gpMSWordSum.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpMSWordSum.Style.BorderTopWidth = 1;
this.gpMSWordSum.Style.CornerDiameter = 4;
this.gpMSWordSum.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.gpMSWordSum.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.gpMSWordSum.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.gpMSWordSum.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
//
//
//
this.gpOpenTabs.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.gpOpenTabs.Style.BackColorGradientAngle = 90;
this.gpOpenTabs.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.gpOpenTabs.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpOpenTabs.Style.BorderBottomWidth = 1;
this.gpOpenTabs.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.gpOpenTabs.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpOpenTabs.Style.BorderLeftWidth = 1;
this.gpOpenTabs.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpOpenTabs.Style.BorderRightWidth = 1;
this.gpOpenTabs.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpOpenTabs.Style.BorderTopWidth = 1;
this.gpOpenTabs.Style.CornerDiameter = 4;
this.gpOpenTabs.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.gpOpenTabs.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.gpOpenTabs.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.gpOpenTabs.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
this.gpMSWordSum.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.gpOpenTabs.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.gpOpenTabs.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.gpOpenTabs.TabIndex = 13;
this.gpOpenTabs.Text = "Open Tabs";
//
// gpShwRplWords
//
this.gpShwRplWords.BackColor = System.Drawing.Color.Transparent;
this.gpShwRplWords.CanvasColor = System.Drawing.SystemColors.Control;
this.gpShwRplWords.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.gpShwRplWords.Controls.Add(this.cbShwRplWrdsColor);
this.gpShwRplWords.DisabledBackColor = System.Drawing.Color.Empty;
this.gpShwRplWords.Location = new System.Drawing.Point(462, 165);
this.gpShwRplWords.Margin = new System.Windows.Forms.Padding(2);
this.gpShwRplWords.Name = "gpShwRplWords";
this.gpShwRplWords.Size = new System.Drawing.Size(139, 72);
//
//
//
this.gpShwRplWords.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.gpShwRplWords.Style.BackColorGradientAngle = 90;
this.gpShwRplWords.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.gpShwRplWords.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpShwRplWords.Style.BorderBottomWidth = 1;
this.gpShwRplWords.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.gpShwRplWords.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpShwRplWords.Style.BorderLeftWidth = 1;
this.gpShwRplWords.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpShwRplWords.Style.BorderRightWidth = 1;
this.gpShwRplWords.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.gpShwRplWords.Style.BorderTopWidth = 1;
this.gpShwRplWords.Style.CornerDiameter = 4;
this.gpShwRplWords.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.gpShwRplWords.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.gpShwRplWords.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.gpShwRplWords.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
//
//
//
this.gpShwRplWords.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.gpShwRplWords.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.gpShwRplWords.TabIndex = 13;
this.gpShwRplWords.Text = "Replace Words";
this.gpMSWordSum.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.gpMSWordSum.TabIndex = 14;
this.gpMSWordSum.Text = "Opening in MS Word";
//
// frmSysOptions
//
@@ -1247,7 +1258,7 @@ namespace VEPROMS
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
this.ClientSize = new System.Drawing.Size(699, 520);
this.ClientSize = new System.Drawing.Size(699, 620);
this.ControlBox = false;
this.Controls.Add(this.btnReset);
this.Controls.Add(this.tcSysOpts);
@@ -1256,7 +1267,7 @@ namespace VEPROMS
this.Controls.Add(this.btnCancel);
this.DoubleBuffered = true;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "frmSysOptions";
this.Text = "Proms System Options";
this.Load += new System.EventHandler(this.frmSysOptions_Load);
@@ -1265,7 +1276,8 @@ namespace VEPROMS
((System.ComponentModel.ISupportInitialize)(this.tcSysOpts)).EndInit();
this.tcSysOpts.ResumeLayout(false);
this.tabControlPanel3.ResumeLayout(false);
//this.grPanUCFImpOpt.ResumeLayout(false); // C2024-041 remove from Options panel in V button.
this.gpOpenTabs.ResumeLayout(false);
this.gpShwRplWords.ResumeLayout(false);
this.gpVisioPath.ResumeLayout(false);
this.gpSeparateWindows.ResumeLayout(false);
this.gpEnhancedDocs.ResumeLayout(false);
@@ -1275,9 +1287,7 @@ namespace VEPROMS
this.gpAnnotationSettings.ResumeLayout(false);
this.gpTransRangeColor.ResumeLayout(false);
this.gpPropPageStyle.ResumeLayout(false);
this.gpOpenTabs.ResumeLayout(false);
this.gpShwRplWords.ResumeLayout(false);
this.gpMSWordSum.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -1336,5 +1346,7 @@ namespace VEPROMS
private DevComponents.DotNetBar.Controls.CheckBoxX cbOTRemember;
private DevComponents.DotNetBar.Controls.CheckBoxX cbOTAutoOpen;
private DevComponents.DotNetBar.Controls.CheckBoxX cbShwRplWrdsColor;
private DevComponents.DotNetBar.Controls.GroupPanel gpMSWordSum;
private DevComponents.DotNetBar.Controls.CheckBoxX cbMSWordPrompt;
}
}

View File

@@ -100,7 +100,9 @@ namespace VEPROMS
cbOTRemember.Checked = _usersettings.UserSetting_OpenTabs_Remember;
cbOTAutoOpen.Enabled = cbOTAutoOpen.Visible = cbOTRemember.Checked;
cbOTAutoOpen.Checked = _usersettings.UserSetting_OpenTabs_AutoOpen || !cbOTRemember.Checked;
//C2025-013 - Allow not continuously generate message that opening Summaries in MS Word
cbMSWordPrompt.Checked = _usersettings.UserSetting_MSWord_Summary_Prompt;
}
private void cbEnhancedDocumentSync_CheckedChanged(object sender, System.EventArgs e)
{
@@ -172,6 +174,9 @@ namespace VEPROMS
}
_usersettings.SetUserSettings(cbOTRemember.Checked, OTAuto);
//C2025-013 - Allow not continuously generate message that opening Summaries in MS Word
_usersettings.SetUserSetting_MSWord_Summary_Prompt(cbMSWordPrompt.Checked);
this.DialogResult = DialogResult.OK;
this.Close();
}

View File

@@ -125,7 +125,7 @@
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAKklE
QVQ4T2P4//8/RRhCAClyMIoBIJoUPGrAqAEgPBwNIAfDDSAf/2cAALEslYfUgx+eAAAAAElFTkSuQmCC
QVQ4T2P4//8/AyUYQjAwgAiSMYoB6CYTwqMGjBowXA0gB8MNoAQDALEslYfhkv70AAAAAElFTkSuQmCC
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@@ -533,6 +533,7 @@ namespace VEPROMS
tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure);
tv.PrintSection += new vlnTreeViewEvent(tv_PrintSection);
tv.QPrintSection += new vlnTreeViewEvent(tv_QPrintSection);
tv.QPrintProcedure += new vlnTreeViewEvent(tv_QPrintProcedure);
tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures);
tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure);
@@ -707,15 +708,32 @@ namespace VEPROMS
else
{
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
if (args.Index == 1 && dlg.MyNewFolder != null)
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
//form for exporting Electronic Procedures from FolderInfo
if (args.AnnotationTypeId > 0)
{
tv.AddNewNode(dlg.MyNewFolder);
dlgExportImportEP dlg = new dlgExportImportEP(args.Index == 0 ? "Export" : "Import", fi, this, args.AnnotationTypeId, args.UnitIndex);
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
if (args.Index == 1 && dlg.MyNewFolder != null)
{
tv.AddNewNode(dlg.MyNewFolder);
}
}
else
{
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
if (args.Index == 1 && dlg.MyNewFolder != null)
{
tv.AddNewNode(dlg.MyNewFolder);
}
}
}
}
@@ -741,18 +759,40 @@ namespace VEPROMS
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
dlg.MyNewProcedure = null;
dlg.ExternalTransitionItem = null;
dlg.ShowDialog(this);
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
//form for exporting Electronic Procedures from DocVersionInfo
if (args.AnnotationTypeId > 0)
{
dlgExportImportEP dlg = new dlgExportImportEP(args.Index == 0 ? "Export" : "Import", dvi, this, args.AnnotationTypeId, args.UnitIndex);
dlg.MyNewProcedure = null;
dlg.ExternalTransitionItem = null;
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
MySessionInfo.CheckInItem(ownerid);
if (dlg.MyNewProcedure != null)
tv.AddNewNode(dlg.MyNewProcedure);
if (dlg.MyNewProcedure != null)
tv.AddNewNode(dlg.MyNewProcedure);
if (dlg.ExternalTransitionItem != null)
tc.OpenItem(dlg.ExternalTransitionItem);
}
else
{
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
dlg.MyNewProcedure = null;
dlg.ExternalTransitionItem = null;
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
if (dlg.MyNewProcedure != null)
tv.AddNewNode(dlg.MyNewProcedure);
if (dlg.ExternalTransitionItem != null)
tc.OpenItem(dlg.ExternalTransitionItem);
}
if (dlg.ExternalTransitionItem != null)
tc.OpenItem(dlg.ExternalTransitionItem);
}
}
@@ -768,10 +808,24 @@ namespace VEPROMS
else
{
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure);
dlgExportImport dlg = new dlgExportImport("Export", pi, this, (E_UCFImportOptions)0);//Added frmVEPROMS Parameter
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
//form for exporting Electronic Procedures from ProcedureInfo
if (args.AnnotationTypeId > 0)
{
dlgExportImportEP dlg = new dlgExportImportEP("Export", pi, this, args.AnnotationTypeId, args.UnitIndex);
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
}
else
{
dlgExportImport dlg = new dlgExportImport("Export", pi, this, (E_UCFImportOptions)0);//Added frmVEPROMS Parameter
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
}
}
}
}
@@ -1213,7 +1267,19 @@ namespace VEPROMS
}
void tv_PrintSection(object sender, vlnTreeEventArgs args) // Quick Print right click menu on Procedure name.
//Print Section
//C2025-028 Add a Quick Print Section option
void tv_PrintSection(object sender, vlnTreeEventArgs args)
{
PrintSection(sender, args, false);
}
void tv_QPrintSection(object sender, vlnTreeEventArgs args)
{
PrintSection(sender, args, true);
}
void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint)
{
try
{
@@ -1225,7 +1291,9 @@ namespace VEPROMS
tc.SaveCurrentEditItem(si2.MyProcedure);
//B2025-032 Fix Section not Printing Applicability Properly
si2.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
si2.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(si2.MyProcedure))
{
@@ -1233,8 +1301,14 @@ namespace VEPROMS
prnDlg.SelectedSlave = args.UnitIndex;
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SetupForProcedure(); // Setup filename
prnDlg.ShowDialog(this); // Create Print report
if (quickprint)
prnDlg.QPCreatePDF(); // Create Print report
else
prnDlg.ShowDialog(this); // Create Print report
//B2025-032 Fix Section not Printing Applicability Properly
si2.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
si2.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
}
}
@@ -2167,13 +2241,14 @@ namespace VEPROMS
btnAdministrativeTools.Click += new EventHandler(btnAdministrativeTools_Click);
btnAdmin.SubItems.Add(btnAdministrativeTools);
// C2025-031 added tool tip messages
this.superTooltip1.SetSuperTooltip(btnManageSecurity, new SuperTooltipInfo("Manage Security", "", "Add, Modify, and Delete PROMS User Access", null, null, eTooltipColor.Gray));
// remove commented out line below when User Control of Formats code is deleted
//this.superTooltip1.SetSuperTooltip(btnUserControlOfFormats, new SuperTooltipInfo("User Control Of Formats", null, null, null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", "", "WARNING this will \nREMOVE ALL PROMS USERS and Reset to\nthe Oringal Volian Defaults", null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools", "", "Open the PROMS Adminstation Tools Window", null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", "", "WARNING this will \nREMOVE ALL PROMS USERS and Reset to the\nOriginal Volian Defaults", null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools", "", "Open the PROMS Adminstration Tools Window", null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats", "", "Install New Formats \n or Re-Install Formats", null, null, eTooltipColor.Gray));
try
{
MyUserInfo = UserInfo.GetByUserID(VlnSettings.UserID);

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.ComponentModel;
using System.Collections.Generic;
using Volian.Base.Library;
namespace VEPROMS.CSLA.Library
{
@@ -226,6 +227,34 @@ namespace VEPROMS.CSLA.Library
//}
}
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;
@@ -338,8 +367,54 @@ namespace VEPROMS.CSLA.Library
}
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
private static Dictionary<int, string> _TransitionTypes;

View File

@@ -346,21 +346,21 @@ namespace VEPROMS.CSLA.Library
{
var ii = _CacheByPrimaryKey.FirstOrDefault();
while (ii.Value.Count > 0)
{
if (ii.Value[0]?.MyContent?.ContentParts != null)
{ foreach (PartInfo pi in ii.Value[0]?.MyContent?.ContentParts) pi.Dispose(); }
ii.Value[0].Dispose();
}
while (ii.Value.Count > 0)
{
if (ii.Value[0]?.MyContent?.ContentParts != null)
{ foreach (PartInfo pi in ii.Value[0]?.MyContent?.ContentParts) pi.Dispose(); }
ii.Value[0].Dispose();
}
_CacheByPrimaryKey.Remove(ii.Key);
}
while (_CacheList.Count > 0)
{
if (_CacheList[0]?.MyContent?.ContentParts != null)
{foreach (PartInfo pi in _CacheList[0]?.MyContent?.ContentParts) pi.Dispose(); }
_CacheList[0].Dispose();
}
{
if (_CacheList[0]?.MyContent?.ContentParts != null)
{foreach (PartInfo pi in _CacheList[0]?.MyContent?.ContentParts) pi.Dispose(); }
_CacheList[0].Dispose();
}
}
private bool _PrintAllAtOnce = false;
@@ -449,88 +449,87 @@ namespace VEPROMS.CSLA.Library
{
StringBuilder sret = new StringBuilder();
ItemInfo pitem = this;
while (!pitem.IsSection && !pitem.IsHigh)
{
using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID))
{
string thisTab = stpinfo.MyTab.CleanText;
{
using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID))
{
string thisTab = stpinfo.MyTab.CleanText;
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
if (!string.IsNullOrEmpty(thisTab))
{
thisTab = thisTab.Trim();
}
if (!string.IsNullOrEmpty(thisTab))
{
thisTab = thisTab.Trim();
}
// if the tab is null or
// if the the tab is not a letter or number OR
// the tab is an AND or OR type and is the letter "o"
// then reset the tab an empty string so that the type name along with the count of that type
// (ex. "AND 2", "OR 3")
if (string.IsNullOrEmpty(thisTab) || (thisTab != string.Empty && (!(char.IsLetterOrDigit(thisTab[0])) || ((pitem.IsAnd || pitem.IsOr || pitem.IsCaution || pitem.IsNote) && thisTab.Contains("o")))))
{
thisTab = string.Empty;
}
// if the tab is null or
// if the the tab is not a letter or number OR
// the tab is an AND or OR type and is the letter "o"
// then reset the tab an empty string so that the type name along with the count of that type
// (ex. "AND 2", "OR 3")
if (string.IsNullOrEmpty(thisTab) || (thisTab != string.Empty && (!(char.IsLetterOrDigit(thisTab[0])) || ((pitem.IsAnd || pitem.IsOr || pitem.IsCaution || pitem.IsNote) && thisTab.Contains("o")))))
{
thisTab = string.Empty;
}
if (pitem.IsRNOPart)
{
if (string.IsNullOrEmpty(thisTab))
{
sret.Insert(0, "RNO.");
}
else
{
thisTab = thisTab.Trim();
if (pitem.IsRNOPart)
{
if (string.IsNullOrEmpty(thisTab))
{
sret.Insert(0, "RNO.");
}
else
{
thisTab = thisTab.Trim();
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
{
thisTab += ".";
}
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
{
thisTab += ".";
}
sret.Insert(0, "RNO." + thisTab);
}
}
else if (pitem.IsCaution || pitem.IsNote)
{
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
if (string.IsNullOrEmpty(thisTab))
{
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
}
else
{
thisTab = thisTab.Trim(" ".ToCharArray());
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
}
}
else
{
if (!string.IsNullOrEmpty(thisTab))
{
thisTab = thisTab.Trim(" ".ToCharArray());
sret.Insert(0, "RNO." + thisTab);
}
}
else if (pitem.IsCaution || pitem.IsNote)
{
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
if (string.IsNullOrEmpty(thisTab))
{
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
}
else
{
thisTab = thisTab.Trim(" ".ToCharArray());
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
}
}
else
{
if (!string.IsNullOrEmpty(thisTab))
{
thisTab = thisTab.Trim(" ".ToCharArray());
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
{
thisTab += ".";
}
}
else
{
thisTab = "{" + typeName + " " + pitem.Ordinal.ToString() + "}.";
}
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
{
thisTab += ".";
}
}
else
{
thisTab = "{" + typeName + " " + pitem.Ordinal.ToString() + "}.";
}
sret.Insert(0, thisTab);
}
}
sret.Insert(0, thisTab);
}
}
pitem = pitem.ActiveParent as ItemInfo;
pitem = pitem.ActiveParent as ItemInfo;
if (pitem == null)
break;
}
if (pitem == null)
break;
}
return sret.ToString().Trim(" .)".ToCharArray());
return sret.ToString().Trim(" .)".ToCharArray());
}
public void SetHeader(VE_Font myFont, string myText)
@@ -575,11 +574,11 @@ namespace VEPROMS.CSLA.Library
}
_MyPrevious = null; // Reset list so that the next line gets a new list
if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value
//if (_ContentID != tmp.ContentID)
//{
//if (_ContentID != tmp.ContentID)
//{
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for old value
_ContentID = tmp.ContentID; // Update the value
//}
//}
_MyContent = null; // Reset list so that the next line gets a new list
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for new value
_DTS = tmp.DTS;
@@ -675,12 +674,12 @@ namespace VEPROMS.CSLA.Library
}
}
}
internal static void SetParentSectionAndDocVersion(ItemInfo itemInfo, IVEDrillDownReadOnly itemParent, SectionInfo sectionInfo, ProcedureInfo procInfo, DocVersionInfo docVersionInfo, bool isAutomatic = false)
{
// B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database
// Added Optional Parameter "bool isAutomatic = false" to disable the RofstLoadingStatus pop-up screen when printing baselines
if (itemInfo == null) return;
itemInfo.LoadAllAtOnce = true;
itemInfo.ActiveParent = itemParent;
@@ -722,7 +721,7 @@ namespace VEPROMS.CSLA.Library
}
}
}
/// <summary>
/// The following method is used only in print because the 'printed' data is loaded into
/// memory before printing. Find the next item from memory (do not go out to database).
@@ -785,7 +784,7 @@ namespace VEPROMS.CSLA.Library
{
bool forceConvertToText = false;
TranCheckCount++;
if (!forceConvertToText)
{
if (traninfo.MyItemToID.ActiveSection != null)
@@ -803,7 +802,7 @@ namespace VEPROMS.CSLA.Library
content.FixTransitionText(traninfo, true);
content.Save();
}
}
}
}
// B2025-020 Null Reference fix. Added check for valid index into the TransitionTypeList
if (!forceConvertToText)
@@ -813,7 +812,7 @@ namespace VEPROMS.CSLA.Library
forceConvertToText = true;
TranFixCount++;
itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition type is not available");
using (Content content = Content.Get(itemInfo.MyContent.ContentID))
using (Content content = Content.Get(itemInfo.MyContent.ContentID))
{
content.FixTransitionText(traninfo, true);
content.Save();
@@ -836,14 +835,14 @@ namespace VEPROMS.CSLA.Library
content.FixTransitionText(traninfo, true);
content.Save();
}
}
}
}
}
}
if (!forceConvertToText)
{
if (itemInfo.MyDocVersion != null && traninfo.MyItemToID.MyDocVersion != null && itemInfo.MyDocVersion.VersionID != traninfo.MyItemToID.MyDocVersion.VersionID) //different doc version
if (itemInfo.MyDocVersion != null && traninfo.MyItemToID.MyDocVersion != null && itemInfo.MyDocVersion.VersionID != traninfo.MyItemToID.MyDocVersion.VersionID) //different doc version
{
if (!itemInfo.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[traninfo.TranType].TransMenu.Contains("Proc")) //internal format
{
@@ -904,7 +903,7 @@ namespace VEPROMS.CSLA.Library
if (itemInfo.MyContent.Text.Contains("Link:Transition"))
{
Content content = Content.Get(itemInfo.MyContent.ContentID);
if (itemInfo.MyContent.ContentTransitions != null)
{
foreach (TransitionInfo ct in itemInfo.MyContent.ContentTransitions)
@@ -914,7 +913,7 @@ namespace VEPROMS.CSLA.Library
}
itemInfo.MyContent.RefreshContentTransitions();
while (content.Text.Contains("Link:Transition"))
{
TranCheckCount++;
@@ -932,7 +931,7 @@ namespace VEPROMS.CSLA.Library
else // B2018-043 Eliminate infinite loop for invalid transition structure
{
// Add annotation for Invalid Transition
AddInvalidTransitionAnnotation(itemInfo,"Invalid Transition Format");
AddInvalidTransitionAnnotation(itemInfo, "Invalid Transition Format");
break;
}
}
@@ -985,16 +984,16 @@ namespace VEPROMS.CSLA.Library
ContentInfo myContent = itemInfo.MyContent;
string txt = myContent.Text;
string regDelete = @"(\\v |)\<START\]\#Link\:Transition(|Range)\:[0-9]+ [0-9]+ [0-9]+(| [0-9]+)\[END\>(\\v0 |)";
string txt2=txt;
string txt2 = txt;
do{
do {
txt = txt2;
txt2 = Regex.Replace(txt, regDelete, "");
} while(txt2 != txt);
} while (txt2 != txt);
if(txt2 != myContent.Text)
if (txt2 != myContent.Text)
{
using(Content tmp = myContent.Get())
using (Content tmp = myContent.Get())
{
tmp.Text = txt2;
tmp.Save();
@@ -1002,7 +1001,7 @@ namespace VEPROMS.CSLA.Library
AddInvalidTransitionAnnotation(itemInfo, "Removed Empty Transition Text");
}
}
private static bool IsTransitionToNonEditable(TransitionInfo ti)
{
foreach (TransitionInfo til in TransitionsToNonEditable)
@@ -1033,7 +1032,7 @@ namespace VEPROMS.CSLA.Library
public static int ROCheckCount = 0;
public static int ROFixCount = 0;
private static AnnotationType _VolianCommentType = null; // Using this to flag ro value issues with byron to braidwood
public static AnnotationType VolianCommentType
{
get
@@ -1066,7 +1065,7 @@ namespace VEPROMS.CSLA.Library
string roval = lookup.GetTranslatedRoValue(rousage.ROID, this.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, this.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, false, this);
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
this.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, this);
string newText = this.MyContent.Text;
@@ -1264,7 +1263,7 @@ namespace VEPROMS.CSLA.Library
}
}
}
public static string GetCombinedTab(ItemInfo itemInfo, string parTab)
{
string pTab = parTab == null ? "" : parTab;
@@ -1277,7 +1276,7 @@ namespace VEPROMS.CSLA.Library
// for supplemental information, bulleted tabs need to be included in the tab. The 'isletterordigit' should not occur for supinfo items -
// and this includes the parent of the supinfo since that is the tab used for supinfo concatenated with its parent. (B2017-120)
// // B2020-154: Added check for the tab to start with '(', tabs that started with this were not included in the combined tab
if (thisTab != null && thisTab != "" && (!char.IsLetterOrDigit(thisTab[0]) && thisTab[0] != '(') && !vcbHeaderCheck && !itemInfo.IsInSupInfo && (itemInfo.SupInfos == null || itemInfo.SupInfos.Count <= 0 )) return pTab;
if (thisTab != null && thisTab != "" && (!char.IsLetterOrDigit(thisTab[0]) && thisTab[0] != '(') && !vcbHeaderCheck && !itemInfo.IsInSupInfo && (itemInfo.SupInfos == null || itemInfo.SupInfos.Count <= 0)) return pTab;
if (itemInfo.FormatStepData.NumberWithLevel) pTab = itemInfo.MyHLS.MyTab.CleanText.Trim();
// if the parent tab ends with a alphanumeric and this tab is alphanumeric, add a '.' to separate them
// also, include use the separator for bullets if doing the supplemental information tab (B2017-120)
@@ -1286,7 +1285,7 @@ namespace VEPROMS.CSLA.Library
if (ms && mn) pTab = pTab.TrimEnd() + ".";
// remove ending '.' (if this is a hls, don't remove the '.')
if (!itemInfo.IsHigh && thisTab.EndsWith(".")) thisTab = thisTab.Substring(0, thisTab.Length - 1);
if (itemInfo.HasParentTab) return thisTab.Trim(); // F2020-023: if tab includes parent tab already, don't concatenate it
if (itemInfo.HasParentTab) return thisTab.Trim(); // F2020-023: if tab includes parent tab already, don't concatenate it
return pTab + thisTab.Trim();
}
@@ -1342,8 +1341,8 @@ namespace VEPROMS.CSLA.Library
// B2023-037: loading print text, resolve the RO symbols
bool GTLT = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
bool GLTArrows = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
string roval = lookup.GetTranslatedRoValue(rousage.ROID, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, GTLT || GLTArrows, itemInfo);
bool GLTArrows = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
string roval = lookup.GetTranslatedRoValue(rousage.ROID, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, GTLT || GLTArrows, itemInfo);
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
itemInfo.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, itemInfo);
}
@@ -1368,7 +1367,7 @@ namespace VEPROMS.CSLA.Library
}
}
}
if (itemInfo.MyContent.ContentTransitionCount > 0)
{
foreach (TransitionInfo traninfo in itemInfo.MyContent.ContentTransitions)
@@ -1441,14 +1440,14 @@ namespace VEPROMS.CSLA.Library
private float _MSWordPageCount = 0;
public float MSWordPageCount
{
get {
get {
if (_MSWordPageCount == 0) // C2018-011 Get the proper word page count from the saved pdf attachment
if (MyContent.MyEntry != null && MyContent.MyEntry.MyDocument != null)
{
PdfInfo pi = PdfInfo.Get(this, false);
if(pi != null) _MSWordPageCount = (float)pi.PageCount;// B2018-071 Don't crash on invalid MS Word section
if (pi != null) _MSWordPageCount = (float)pi.PageCount;// B2018-071 Don't crash on invalid MS Word section
}
return _MSWordPageCount;
return _MSWordPageCount;
}
set { _MSWordPageCount = value; }
}
@@ -1650,7 +1649,7 @@ namespace VEPROMS.CSLA.Library
// the addition of the parent.IsNote, the note was breaking between 2 ANDs (the 1st AND was a
// steplevel of 5, but the 2nd was a steplevel of 4). If something similar is seen with Cautions,
// that check could be added.
if (!item.IsRNOPart && !item.IsHigh && (item.MyPrevious == null || (((item.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.EnhancedBackgrounds) != E_PurchaseOptions.EnhancedBackgrounds)
if (!item.IsRNOPart && !item.IsHigh && (item.MyPrevious == null || (((item.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.EnhancedBackgrounds) != E_PurchaseOptions.EnhancedBackgrounds)
&& item.MyParent != null && item.MyParent.IsNote)))
level += firstInc;
else
@@ -1717,7 +1716,7 @@ namespace VEPROMS.CSLA.Library
}
return maxRNOLevel;
}
}
private bool ParentAndOr
{
@@ -1768,7 +1767,7 @@ namespace VEPROMS.CSLA.Library
RemoveEnhancedFromConfig(false);
}
public void RemoveEnhancedFromConfig(bool doOneStepOnly)
public void RemoveEnhancedFromConfig(bool doOneStepOnly)
{
XmlDocument xd = new XmlDocument();
if (this.MyContent.Config == null || this.MyContent.Config == "") return; // B2017-164 & B2017-172 check for null or empty config
@@ -1783,7 +1782,7 @@ namespace VEPROMS.CSLA.Library
ctmp.Config = config;
ctmp.Save();
ContentInfo.Refresh(ctmp);
_MyConfig = null; // refresh the memory value
_MyConfig = null; // refresh the memory value
}
}
if (doOneStepOnly) return;
@@ -2072,7 +2071,7 @@ namespace VEPROMS.CSLA.Library
{
bool rval = false;
ItemInfo itm = this;
while (itm != null &&!itm.IsHigh && !rval)
while (itm != null && !itm.IsHigh && !rval)
{
rval = itm.IsCautionOrNotePart;
if (!rval) itm = itm.MyParent;
@@ -2112,6 +2111,66 @@ namespace VEPROMS.CSLA.Library
return (sd.Type == type);
}
// C2025-024 - Electronic Procedures - Export
//return if should export blanks
public bool EPexportblank(int AnnTypeID)
{
if (ActiveFormat.PlantFormat.EPFormatFiles.Count == 0 || !ActiveFormat.PlantFormat.EPFormatFiles.Exists(x => x.AnnotationTypeID == AnnTypeID))
return true;
else
return ActiveFormat.PlantFormat.EPFormatFiles.Find(x => x.AnnotationTypeID == AnnTypeID).exportblank;
}
// C2025-023 - Electronic Procedures - Modifications to PROMS
//return EPFields that match this step type or a parent step type
public EPFields GetValidEPFields(int AnnTypeID)
{
EPFields filtered = new EPFields();
if (ActiveFormat.PlantFormat.EPFormatFiles.Count == 0) return filtered;
if ((int)MyContent.Type < 20000) return filtered;
EPFields unfiltered = ActiveFormat.PlantFormat.EPFormatFiles.Find(x => x.AnnotationTypeID == AnnTypeID)?.FieldList;
if (unfiltered == null) return filtered;
//Build list of step type and step type of it's parents
List<string> steptypelist = new List<string>();
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
List<string> tmpEP = EP.validforsteptypes();
if (tmpEP.Any(steptypelist.Contains))
filtered.Add(EP);
}
return filtered;
}
// C2025-023 - Electronic Procedures - Modifications to PROMS
//return true if any EP Format files attached to the item's
public bool HasEPformat(int AnnTypeID)
{
return GetValidEPFields(AnnTypeID).Count > 0;
}
// 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.
public bool IncludeOnContActSum
@@ -4655,43 +4714,50 @@ namespace VEPROMS.CSLA.Library
int localPrintLevel = PrintLevel;
StepSectionData sd = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData;
bool doMeta = false;
if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections)
if (sd.StepSectionLayoutData.TieTabToLevel) // C2025-036 reduce un-needed processing
{
if (sd.StepSectionLayoutData.ShowSectionTitles
&& !MyDocStyle.CancelSectTitle
&& !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel))
localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential)) ? 0 : CurrentSectionLevel());
if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true;
}
if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel)
if (SectionLevel() > 1)
if (ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections)
{
if (sd.StepSectionLayoutData.ShowSectionTitles
&& !MyDocStyle.CancelSectTitle
&& !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel))
localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential)) ? 0 : CurrentSectionLevel());
if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true;
}
if (ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel && (SectionLevel() > 1))
localPrintLevel += 1;
}
SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList;
// Start with basic cases of alpha/numeric/seq:
// If we have metasections AND...
// If the seqtabs for this given level does not get a section number, use the seqtab rather than
// the ident of the step:
bool useSubStepTabs = false;
if (doMeta && IsHigh
&& !seqtabs[(localPrintLevel < 0 ? 0 : localPrintLevel) % seqtabs.MaxIndex].TabToken.Contains("{numericWpar}")
&& tbformat.Contains("{")) useSubStepTabs = true;
// Check to be sure the parent tab should be included... If this sequential is within a note
// or caution or equipment list, don't use parent tab AND always start the numbering as a numeric
if (doMeta && IsSequential && (InNote() || InCaution() ||
(MyParent.IsEquipmentList && !MyParent.FormatStepData.TabData.IdentPrint.Contains("{seq}"))))
if (doMeta) // C2025-036 reduce un-needed processing
{
// if immediate parent is note, caution or equip, use numeric, otherwise use alpha.
localPrintLevel = 0;
int lv = 0;
ItemInfo ii = MyParent;
while (!ii.IsCaution && !ii.IsNote && !ii.IsEquipmentList)
if (IsHigh
&& !seqtabs[(localPrintLevel < 0 ? 0 : localPrintLevel) % seqtabs.MaxIndex].TabToken.Contains("{numericWpar}")
&& tbformat.Contains("{")) useSubStepTabs = true;
// Check to be sure the parent tab should be included... If this sequential is within a note
// or caution or equipment list, don't use parent tab AND always start the numbering as a numeric
if (IsSequential && (InNote() || InCaution() ||
(MyParent.IsEquipmentList && !MyParent.FormatStepData.TabData.IdentPrint.Contains("{seq}"))))
{
lv++;
ii = ii.MyParent;
// if immediate parent is note, caution or equip, use numeric, otherwise use alpha.
localPrintLevel = 0;
int lv = 0;
ItemInfo ii = MyParent;
while (!ii.IsCaution && !ii.IsNote && !ii.IsEquipmentList)
{
lv++;
ii = ii.MyParent;
}
lv = lv % 2;
tbformat = (lv == 0) ? "{numeric}." : "{alpha}.";
}
lv = lv % 2;
tbformat = (lv == 0) ? "{numeric}." : "{alpha}.";
}
bool trimTabStart = false;
bool dontTrimParentTabBeforeAppending = false; // B2019-011 for Barakah Alarm format
@@ -4757,7 +4823,7 @@ namespace VEPROMS.CSLA.Library
PrintLevel = 0;
// If token includes 'Wpar', the parent tab prefix's the tab.
if (localPrintLevel > 0 && (tbformat.IndexOf("{numericWpar}") > -1 || tbformat.IndexOf("{alphaWpar}") > -1 || tbformat.IndexOf("{ALPHAWpar}") > -1))
if (localPrintLevel > 0 && tbformat.Contains("Wpar}")) // C2025-036 reduce un-needed processing
{
string parentTab = null;
ItemInfo myparent = ActiveParent as ItemInfo;
@@ -4872,18 +4938,21 @@ namespace VEPROMS.CSLA.Library
}
string alpha = useLinked?LinkedTab.Trim():AlphabeticalNumbering(ordinal);
if (trimSeqValue) alpha = alpha.Trim(); // F2024-043 trim white around SEQ tab value (for sub-steps)
// B2017-211 Roman High Level steps should be followed by Uppercase alpha substeps - This is being limited to Calvert SAMG Format
if (_ActiveFormat.Name =="BGESAM1" &&MyParent != null && MyParent.IsHigh && MyParent.IsStep && MyParent.FormatStepData.TabData.IdentEdit.Contains("ROMAN"))
tbformat = tbformat.Replace("{alpha}", alpha);
else
tbformat = tbformat.Replace("{alpha}", alpha.ToLower());
tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower());
if (ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && tbformat.Contains("{ALPHA}") && alpha.Length > 1)
tbformat = tbformat.Replace("{ALPHA}. ", alpha + "."); // if double chars, remove one of the space for BGE
else
tbformat = tbformat.Replace("{ALPHA}", alpha);
if (tbformat.ToUpper().Contains("{ALPHA")) // C2025-036 reduce un-needed processing
{
// B2017-211 Roman High Level steps should be followed by Uppercase alpha substeps - This is being limited to Calvert SAMG Format
if (_ActiveFormat.Name == "BGESAM1" && MyParent != null && MyParent.IsHigh && MyParent.IsStep && MyParent.FormatStepData.TabData.IdentEdit.Contains("ROMAN"))
tbformat = tbformat.Replace("{alpha}", alpha);
else
tbformat = tbformat.Replace("{alpha}", alpha.ToLower());
tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower());
if (ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && tbformat.Contains("{ALPHA}") && alpha.Length > 1)
tbformat = tbformat.Replace("{ALPHA}. ", alpha + "."); // if double chars, remove one of the space for BGE
else
tbformat = tbformat.Replace("{ALPHA}", alpha);
tbformat = tbformat.Replace("{ALPHAWpar}", alpha);
tbformat = tbformat.Replace("{ALPHAWpar}", alpha);
}
if (tbformat.ToUpper().Contains("ROMAN"))
{
string roman = RomanNumbering(ordinal);
@@ -4891,15 +4960,18 @@ namespace VEPROMS.CSLA.Library
tbformat = tbformat.Replace("{ROMAN}", roman);
tbformat = tbformat.Substring(0, tbformat.Length - ((roman.Length - 1) > 0 ? (roman.Length - 1) : 0));
}
if (tbformat.Contains("{numeric}") && ((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002)
if (tbformat.Contains("{numeric}")) // C2025-036 reduce un-needed processing
{
tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0");
tbformat = tbformat.Substring(0, tbformat.Length - 2);
}
if (tbformat.Contains("{numeric}") && (this.FormatStepData.AppendDotZero)) // F2018-022 Added step type flag to append a ".0" to the end of the high level step - put in for Westinghouse single column format (wst1)
{
string numtxt = ordinal.ToString().PadLeft(2) + ".0";
tbformat = tbformat.Replace("{numeric}.", numtxt).Replace("{numeric}", numtxt);
if (((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002)
{
tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0");
tbformat = tbformat.Substring(0, tbformat.Length - 2);
}
if (this.FormatStepData.AppendDotZero) // F2018-022 Added step type flag to append a ".0" to the end of the high level step - put in for Westinghouse single column format (wst1)
{
string numtxt = ordinal.ToString().PadLeft(2) + ".0";
tbformat = tbformat.Replace("{numeric}.", numtxt).Replace("{numeric}", numtxt);
}
}
// if this is a wolf creek background, if the tbformat ends with a '.' don't add a space,
// otherwise add a space.
@@ -6097,9 +6169,10 @@ namespace VEPROMS.CSLA.Library
}
private bool IsLowestLevelStep
{
//F2025-015 added check for IsInCautionOrNote for sub-step inside Notes and Cautions
get
{
return (!(IsCaution || IsNote || IsTable || IsFigure || Steps != null || MyParent.IsCaution || MyParent.IsNote));
return (!(IsCaution || IsNote || IsInCautionOrNote || IsTable || IsFigure || Steps != null || MyParent.IsCaution || MyParent.IsNote));
}
}
private bool RNOsHighHasCheckOff()

View File

@@ -0,0 +1,443 @@
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");
}
}
// Return Name of Annotation that EP Format File is Attached to
public string AnnotationName()
{
return AnnotationTypeInfo.Get((int) AnnotationTypeID).Name;
}
//if xml value is blank, should element export?
//defaults to true
private LazyLoad<bool> _exportblank;
[DisplayName("exportblank")]
[Description("if xml value is blank, should element export?")]
public bool exportblank
{
get
{
return LazyLoad(ref _exportblank, "@exportblank");
}
}
// returns a list of fields that are defined in the EP format's structure
private EPFields _FieldList;
public EPFields FieldList
{
get
{
XmlDocument xd = GetEPFormatData(Name);
return _FieldList ?? (_FieldList = new EPFields(xd.SelectNodes("/EPFormat/EPField")));
}
}
#endregion
#region Business Methods
// update all in-use annotation types that have Electronic Procedures
public static void UpdateAllInUseEPAnnotationTypes()
{
foreach (int formatid in GetAllInUseFormats())
{
PlantFormat frmt = FormatInfo.Get(formatid).PlantFormat;
foreach (EPFormatFile EP in frmt.EPFormatFiles)
{
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");
}
}
//roid of group item that individual sub-items will be the choices for the list/combobox for ROSINGLE and ROMULTI
private LazyLoad<string> _rosource;
public string rosource
{
get
{
return LazyLoad(ref _rosource, "@rosource");
}
}
//the columns in the RO that will be included in the exports
private LazyLoad<string> _returncols;
public List<string> returncols()
{
try
{
string tmp = LazyLoad(ref _returncols, "@returncols");
if (string.IsNullOrEmpty(tmp))
return new List<string>();
else
return tmp.Split(',').Select(p => p.Trim()).ToList();
}
catch
{
throw new ArgumentException($"Error in returncols for EP file, field: {name}");
}
}
//number of lines for a multi-line text box to span
private LazyLoad<int?> _numlines;
public int numlines
{
get
{
int? tmp = LazyLoad(ref _numlines, "@numlines");
if (tmp == null)
return 1;
return (int) tmp;
}
}
//step types that the EPForma Item is valid for (as a list of types)
private LazyLoad<string> _validforsteptypes;
public List<string> validforsteptypes()
{
try
{
string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes");
return tmp.Split(',').Select(p => p.Trim()).ToList();
}
catch
{
throw new ArgumentException($"Error in validforsteptypes for EP file, field: {name}");
}
}
public bool IsValidForStepType(string StepType)
{
List<string> tmp = validforsteptypes();
return tmp.Contains(StepType);
}
//return a list of items based on the ROsource specified in the EPFormat File
//will return all RO items under the Group that's roid = the rosource
public List<ROListItem> getROList(AnnotationInfo currAnn, bool includeblank)
{
if (string.IsNullOrEmpty(rosource))
return new List<ROListItem>();
try
{
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
if (MyDocVersion.DocVersionAssociations != null && MyDocVersion.DocVersionAssociations.Any())
{
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
string roid = FormatRoidKey(rosource, false);
rochild[] children = lookup.GetRoChildrenByRoid(roid);
List<ROListItem> mylist = children.Select(x => new ROListItem(x.title, x.roid.Substring(0, 12))).ToList();
if (includeblank)
mylist.Insert(0, new ROListItem("", ""));
return mylist;
}
else
{
return new List<ROListItem>
{
new ROListItem("", "")
};
}
}
catch
{
throw new ArgumentException($"Error in rosource for EP file, field: {name}");
}
}
//return a list of values for the specified ROID
//given the EP items return columns
//will return all RO items under the Group that's roid = the rosource
public List<string> getROValuesList(AnnotationInfo currAnn, string roid)
{
if (string.IsNullOrEmpty(roid))
return new List<string>();
List<string> values = new List<string>();
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
rochild ro = lookup.GetRoChild(roid);
List<string> rtncols = returncols();
if (rtncols.Count == 0)
{
values.Add(ro.value);
}
else
{
foreach (string rcol in rtncols)
{
rochild ro_indiv = Array.Find(ro.children, x => x.appid.EndsWith($".{rcol}"));
if (ro_indiv.value != null) values.Add(ro_indiv.value);
}
}
return values;
}
}
#endregion
//C2025-023 - Electronic Procedures - Modifications to PROMS
// class to handle return of RO Lists
#region EPFormatFiles
public class ROListItem
{
public string Text { get; private set; }
public string Value { get; private set; }
public ROListItem(string _text, string _value)
{
Text = _text; Value = _value;
}
}
#endregion
}

View File

@@ -244,6 +244,16 @@ namespace VEPROMS.CSLA.Library
return LazyLoad(ref _TrimEnding, "@TrimEnding");
}
}
// C2025-033 to specify to print pagestyle item for a specific Child procedure
private LazyLoad<int?> _ChildNum;
public int? ChildNum
{
get
{
return (LazyLoad(ref _ChildNum, "@ChildNum"));
}
}
#endregion
#region Override ToString
public override string ToString()

View File

@@ -192,6 +192,18 @@ namespace VEPROMS.CSLA.Library
}
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
#region VE_Font

View File

@@ -57,6 +57,8 @@ namespace VEPROMS.CSLA.Library
XmlNode xn = xmlNode.SelectSingleNode(path);
if (xmlNode.Name == "Box") return xn; // if box, don't do inheritance.
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")
{
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.Collections.Generic;
using Csla.Validation;
using System.Linq;
namespace VEPROMS.CSLA.Library
{
/// <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 int _AnnotationTypeAnnotationCount = 0;
/// <summary>
@@ -712,6 +735,8 @@ namespace VEPROMS.CSLA.Library
_UserID = dr.GetString("UserID");
dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8);
_AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount");
if (dr.GetSchemaTable().Rows.OfType<DataRow>().Any(row => row["ColumnName"].ToString() == "IsEPAnnotationType"))
_IsEPAnnotationType = (bool)dr.GetValue("IsEPAnnotationType");
MarkOld();
}
catch (Exception ex)

View File

@@ -17,6 +17,8 @@ using System.Configuration;
using System.IO;
using System.ComponentModel;
using System.Collections.Generic;
using System.Linq;
namespace VEPROMS.CSLA.Library
{
public delegate void AnnotationTypeInfoEvent(object sender);
@@ -135,6 +137,19 @@ namespace VEPROMS.CSLA.Library
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;
/// <summary>
/// Count of AnnotationTypeAnnotations for this AnnotationType
@@ -312,6 +327,8 @@ namespace VEPROMS.CSLA.Library
_DTS = dr.GetDateTime("DTS");
_UserID = dr.GetString("UserID");
_AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount");
if (dr.GetSchemaTable().Rows.OfType<DataRow>().Any(row => row["ColumnName"].ToString() == "IsEPAnnotationType"))
_IsEPAnnotationType = (bool)dr.GetValue("IsEPAnnotationType");
}
catch (Exception ex)
{

View File

@@ -16,6 +16,7 @@ namespace VEPROMS.CSLA.Library
#region Public Properties
public bool UserSetting_OpenTabs_Remember { get; protected set; } = false;
public bool UserSetting_OpenTabs_AutoOpen { get; protected set; } = true;
public bool UserSetting_MSWord_Summary_Prompt { get; protected set; } = true;
#endregion
@@ -31,7 +32,7 @@ namespace VEPROMS.CSLA.Library
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.Text;
cm.CommandText = "Select RememberOpenTabs, AutoOpenTabs FROM Users where UserID = @UID";
cm.CommandText = "Select RememberOpenTabs, AutoOpenTabs, MSWordSummaryPrompt FROM Users where UserID = @UID";
cm.Parameters.AddWithValue("@UID", _userid);
cm.CommandTimeout = Database.DefaultTimeout;
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
@@ -40,6 +41,7 @@ namespace VEPROMS.CSLA.Library
{
UserSetting_OpenTabs_Remember = (bool) dr.GetValue("RememberOpenTabs");
UserSetting_OpenTabs_AutoOpen = (bool) dr.GetValue("AutoOpenTabs");
UserSetting_MSWord_Summary_Prompt = (bool) dr.GetValue("MSWordSummaryPrompt");
}
}
}
@@ -84,6 +86,33 @@ namespace VEPROMS.CSLA.Library
throw new DbCslaException("UserSettings_SetUserSettings", ex);
}
}
public void SetUserSetting_MSWord_Summary_Prompt(bool prompt)
{
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "vesp_UpdateUserSettingMSWordSummaryPrompt";
cm.Parameters.AddWithValue("@UID", _userid);
UserSetting_MSWord_Summary_Prompt = prompt;
cm.Parameters.AddWithValue("@Prompt", prompt);
cm.CommandTimeout = Database.DefaultTimeout;
cm.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
Database.LogException("UserSettings_SetUserSettings", ex);
throw new DbCslaException("UserSettings_SetUserSettings", ex);
}
}
#endregion
}

View File

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

View File

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

View File

@@ -329,14 +329,22 @@ namespace Volian.Controls.Library
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))
CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index];
else
CurrentAnnotation = null;
if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0))
{
CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index];
if (CurrentAnnotation.MyAnnotationType.IsEPAnnotationType && CurrentItem.HasEPformat(CurrentAnnotation.MyAnnotationType.TypeID))
btnEPAnnotation.Visible = true;
}
else
CurrentAnnotation = null;
}
}
@@ -600,6 +608,7 @@ namespace Volian.Controls.Library
public void UpdateAnnotationGrid(ItemInfo currentitem)
{
CurrentItem = currentitem;
btnEPAnnotation.Visible = false;
UpdateAnnotationGrid();
}
@@ -702,5 +711,12 @@ namespace Volian.Controls.Library
}
#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

@@ -10,6 +10,7 @@ using Volian.Controls.Library;
using DevComponents.DotNetBar;
using JR.Utils.GUI.Forms;
using Volian.Base.Library;
using Microsoft.Win32;
namespace Volian.Controls.Library
{
@@ -658,11 +659,35 @@ namespace Volian.Controls.Library
}
else // Otherwise open it in the Word editor
{
Document.ConvertWordSectionToDOCX(myItemInfo); // B2023-093 Convert a Word section to the DOCX Word format if needed before opening it for edit
return OpenDSOTabPage(myItemInfo);
}
}
// B2025-034 Check to make sure that EDWord is installed in PROMS. If not return NULL.
object EDOfficeViewerX = GetValue<object>(@"HKEY_CLASSES_ROOT\EDOfficeViewerX.Connect\CLSID\", @"", null);
object EDWordCtrl = GetValue<object>(@"HKEY_CLASSES_ROOT\EDWORD.EDWordCtrl.1\CLSID\", @"", null);
if (EDOfficeViewerX == null || EDWordCtrl == null)
{
MessageBox.Show("Edraw needs to be installed or reinstalled on this device. " + Environment.NewLine + "" + Environment.NewLine +
"Please contact your IT Administrator to install and register Edraw that was provided with the PROMS Installation media. If additional support is needed, please contact Volian.", "Error in Word section",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return null;
}
else
{
Document.ConvertWordSectionToDOCX(myItemInfo); // B2023-093 Convert a Word section to the DOCX Word format if needed before opening it for edit
return OpenDSOTabPage(myItemInfo);
}
}
}
public T GetValue<T>(string registryKeyPath, string value, T defaultValue = default(T))
{
T retVal = default(T);
retVal = (T)Registry.GetValue(registryKeyPath, value, defaultValue);
return retVal;
}
public bool PasteRTBItem(ItemInfo myItemInfo, int copyStartID, ItemInfo.EAddpingPart pasteType, int type)
{
CleanUpClosedItems();

File diff suppressed because it is too large Load Diff

View File

@@ -524,7 +524,55 @@ namespace Volian.Controls.Library
ItemInfo secitm = (ItemInfo)cbTranSects.SelectedItem;
bool hasMetaSubs = secitm.IsSection && secitm.Sections != null && secitm.Sections.Count > 0;
bool editSteps = !hasMetaSubs || (secitm.MyConfig is SectionConfig && (secitm.MyConfig as SectionConfig).SubSection_Edit == "Y");
if (!editSteps) return;
if (!editSteps)
{
if (secitm.Sections != null)
{
// if the transition to point is a section or procedure, just return
if (startitm.MyContent.Type < 20000) return;
groupPanelTranstionSteps.Style.BackColor = Color.Cornsilk;
// For the tree view, use parent, unless already at HLS. If at HLS, use this level.
//ItemInfo selitm2 = startitm.MyHLS;
ItemInfo selSubSec = secitm.Sections[0];
// The commented out code below is for displaying the steps from the first sub-section B2025-035
//ItemInfo subSelStep = selSubSec.Steps[0];
//E_TransUI etm2 = (E_TransUI)_CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[listBoxTranFmt.SelectedIndex].TransUI;
//if (subSelStep.IsInRNO)
// startitm = subSelStep.FirstSibling; // if in RNO tree, start out with HLS
//else
// startitm = subSelStep != null ? subSelStep.FirstSibling : startitm.FirstSibling;
// B2025-035
ItemInfo subSelStep = secitm.Sections[0];
E_TransUI etm2 = (E_TransUI)_CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[listBoxTranFmt.SelectedIndex].TransUI;
if (subSelStep.IsInRNO)
startitm = subSelStep.FirstSibling; // if in RNO tree, start out with HLS
else
startitm = subSelStep != null ? subSelStep.FirstSibling : startitm.FirstSibling;
// B2025-035
bool setsel2 = false;
while (startitm != null)
{
VETreeNode tvn = new VETreeNode(startitm, false);
tvn.Tag = startitm;
int active = this.tvTran.Nodes.Add(tvn);
if (subSelStep != null && startitm.ItemID == subSelStep.ItemID)
{
tvTran.SelectedNode = tvTran.Nodes[active];
setsel2 = true;
}
startitm = startitm.GetNext();
}
if (!setsel2) tvTran.SelectedNode = tvTran.Nodes[0];
tvTran.BeforeExpand += new TreeViewCancelEventHandler(tvTran_BeforeExpand);
// bug fix. TreeView needs the next two lines to properly display the bottom node. jsj 01/08/2010
tvTran.ItemHeight++;
tvTran.ItemHeight--;
}
return;
}
// if the transition to point is a section or procedure, just return
if (startitm.MyContent.Type < 20000) return;
@@ -934,7 +982,13 @@ namespace Volian.Controls.Library
// a different section was selected, if step section, update step list, otherwise, empty
// it & disable.
ItemInfo secitm = (ItemInfo)cbTranSects.SelectedItem;
if (!secitm.IsStepSection)
//if (secitm.IsStepSection)
//{
// cbTranSects.SelectedItem.Sections[0];
//}
if (!secitm.IsStepSection)
{
tvTran.Nodes.Clear();
tvTran.Enabled = false;

View File

@@ -758,7 +758,7 @@ namespace Volian.Controls.Library
// clear tabs, clears then all so that next 'get' will calculate new.
public void SetAllTabs()
{
RefreshTab();
RefreshTab();
if (_MyAfterEditItems != null) _MyAfterEditItems[0].SetAllTabs(); // B2020-043: used to loop through all, but then recursion would redo.
if (_MyNextEditItem != null) _MyNextEditItem.SetAllTabs();
@@ -1160,7 +1160,7 @@ namespace Volian.Controls.Library
{
if (myItemInfoList != null)
foreach (ItemInfo item in myItemInfoList)
AddChildBefore(item, expand);
AddChildBefore(item, expand);
}
public EditItem AddChildBefore(ItemInfoList myItemInfoList, EditItem nextEditItem)
{
@@ -3994,7 +3994,8 @@ namespace Volian.Controls.Library
// TODO: Adjust top based upon format
// TODO: Remove Label and just output ident on the paint event
TabLeft = 20;
SetupHeader(itemInfo);
if (!itemInfo.IsStep) // C2025-036 reduce un-needed processing - this will prevent duplicat calls that generate step tabs when loading a procedure
SetupHeader(itemInfo);
SetupAlarmTableView(itemInfo); // C2021-018 display alarm point table information in the step editor (if the format flag is set)
this.Paint += new PaintEventHandler(EditItem_Paint);
this.BackColorChanged += new EventHandler(EditItem_BackColorChanged);

View File

@@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Volian.Controls.Library
{
//Class to handle bug in Windows WinForms ListBox
// that autoselects first item when no items are selected
public partial class ListBoxMulti : ListBox
{
public ListBoxMulti()
{
Visible = true;
SelectionMode = SelectionMode.MultiSimple;
SelectedIndexChanged += lb_SelectedIndexChanged;
Disposed += ListBoxMulti_Disposed;
}
//singleselectedindex
// will help to fix bug in Winforms ListBox
// that autoselects first item when no items are selected
// -1 = multi or set to this after 1st initialization
// if this = 0 and only 1 item selected,
// that means item was autoselected, so clear all items.
public int singleselectedindex { get; set; }
private void lb_SelectedIndexChanged(object sender, EventArgs e)
{
ListBoxMulti tmp = (ListBoxMulti)sender;
if (tmp.SelectedItems.Count == 1 && tmp.singleselectedindex == 0)
{
tmp.ClearSelected();
}
else if (tmp.SelectedItems.Count == 1)
tmp.singleselectedindex = tmp.SelectedIndex;
else
tmp.singleselectedindex = -1;
}
//remove event when get rid of object
private void ListBoxMulti_Disposed(object sender, EventArgs e)
{
SelectedIndexChanged -= lb_SelectedIndexChanged;
}
}
}

View File

@@ -0,0 +1,149 @@

namespace Volian.Controls.Library
{
partial class TablePropertiesControl
{
/// <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 Component 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.lbl_Rows = new System.Windows.Forms.Label();
this.lbl_Cols = new System.Windows.Forms.Label();
this.NumRows = new System.Windows.Forms.NumericUpDown();
this.NumCols = new System.Windows.Forms.NumericUpDown();
this.dataview = new System.Windows.Forms.DataGridView();
this.lbltitle = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.NumRows)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NumCols)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataview)).BeginInit();
this.SuspendLayout();
//
// lbl_Rows
//
this.lbl_Rows.AutoSize = true;
this.lbl_Rows.Location = new System.Drawing.Point(0, 34);
this.lbl_Rows.Name = "lbl_Rows";
this.lbl_Rows.Size = new System.Drawing.Size(89, 13);
this.lbl_Rows.TabIndex = 0;
this.lbl_Rows.Text = "Number of Rows:";
//
// lbl_Cols
//
this.lbl_Cols.AutoSize = true;
this.lbl_Cols.Location = new System.Drawing.Point(0, 56);
this.lbl_Cols.Name = "lbl_Cols";
this.lbl_Cols.Size = new System.Drawing.Size(102, 13);
this.lbl_Cols.TabIndex = 1;
this.lbl_Cols.Text = "Number of Columns:";
//
// NumRows
//
this.NumRows.Location = new System.Drawing.Point(114, 32);
this.NumRows.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.NumRows.Name = "NumRows";
this.NumRows.Size = new System.Drawing.Size(47, 20);
this.NumRows.TabIndex = 3;
this.NumRows.Value = new decimal(new int[] {
1,
0,
0,
0});
this.NumRows.ValueChanged += new System.EventHandler(this.NumRows_ValueChanged);
//
// NumCols
//
this.NumCols.Location = new System.Drawing.Point(114, 54);
this.NumCols.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.NumCols.Name = "NumCols";
this.NumCols.Size = new System.Drawing.Size(47, 20);
this.NumCols.TabIndex = 4;
this.NumCols.Value = new decimal(new int[] {
1,
0,
0,
0});
this.NumCols.ValueChanged += new System.EventHandler(this.NumCols_ValueChanged);
//
// dataview
//
this.dataview.AllowUserToAddRows = false;
this.dataview.AllowUserToDeleteRows = false;
this.dataview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dataview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataview.ColumnHeadersVisible = false;
this.dataview.Location = new System.Drawing.Point(3, 73);
this.dataview.Name = "dataview";
this.dataview.Size = new System.Drawing.Size(316, 150);
this.dataview.TabIndex = 5;
this.dataview.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataview_CellEndEdit);
//
// lbltitle
//
this.lbltitle.AutoSize = true;
this.lbltitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbltitle.Location = new System.Drawing.Point(3, 4);
this.lbltitle.Name = "lbltitle";
this.lbltitle.Size = new System.Drawing.Size(0, 17);
this.lbltitle.TabIndex = 6;
//
// TablePropertiesControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.lbltitle);
this.Controls.Add(this.dataview);
this.Controls.Add(this.NumCols);
this.Controls.Add(this.NumRows);
this.Controls.Add(this.lbl_Cols);
this.Controls.Add(this.lbl_Rows);
this.Name = "TablePropertiesControl";
this.Size = new System.Drawing.Size(319, 252);
((System.ComponentModel.ISupportInitialize)(this.NumRows)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NumCols)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataview)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lbl_Rows;
private System.Windows.Forms.Label lbl_Cols;
private System.Windows.Forms.NumericUpDown NumRows;
private System.Windows.Forms.NumericUpDown NumCols;
private System.Windows.Forms.DataGridView dataview;
private System.Windows.Forms.Label lbltitle;
}
}

View File

@@ -0,0 +1,240 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Volian.Controls.Library
{
//C2025-023 Electronic Procedures
//Control for designating which cells in a table require EP input
public partial class TablePropertiesControl : UserControl
{
//defines the type of possible inputs from an EP viewer
public enum EPinputtype
{
none,
textbox,
checkbox
};
private DataTable values;
private BindingSource bindingSource = null;
private int totalrows = 1;
private int totalcols = 1;
public readonly string epname;
private bool IsInitializing;
//initialization / data will be in the format:
// totalnumrows,totalnumcols;(row,col):value|(row,col):value...
public TablePropertiesControl(string name, string title, string initialvalues)
{
InitializeComponent();
IsInitializing = true;
epname = name;
lbltitle.Text = title;
initializevalues(initialvalues);
bindingSource = new BindingSource(values, "");
dataview.DataSource = bindingSource;
dataview.AutoGenerateColumns = false;
Load += new EventHandler(FormLoad_setDefaults);
}
//initialization / data will be in the format:
// totalnumrows,totalnumcols;(row,col):value|(row,col):value...
private void initializevalues(string initialvalues)
{
values = new DataTable("values");
if (!string.IsNullOrEmpty(initialvalues))
{
string[] grp = initialvalues.Split(';');
string[] total = grp[0].Split(',');
initializedt(int.Parse(total[0]), int.Parse(total[1]));
string[] ivs = grp[1].Split('|');
//pair will be of format:
//(row,col):value
foreach (string pair in ivs)
{
Match m = Regex.Match(pair, @"\(([\d]),([\d])\):([\w]+)");
if (m.Success)
{
int row = int.Parse(m.Groups[1].Value);
int col = int.Parse(m.Groups[2].Value);
string v = m.Groups[3].Value;
values.Rows[row][col] = v;
}
}
values.AcceptChanges();
}
else
{
initializedt(1, 1);
}
}
//initialize the blank datatable
private void initializedt(int numrows, int numcols)
{
totalrows = numrows;
totalcols = numcols;
for (int c = 0; c < totalcols; c++)
{
values.Columns.Add(new DataColumn($"Column{c}") { DefaultValue = "none" });
}
for (int rw = 0; rw < totalrows; rw++)
{
values.Rows.Add();
}
}
void FormLoad_setDefaults(object sender, EventArgs e)
{
BindingSource bindingSourceDropDown = new BindingSource();
bindingSourceDropDown.DataSource = Enum.GetNames(typeof(EPinputtype));
//in order to achieve a dropdown of possible values need
//to remove the auto-inserted columns
//that were auto-generated of type type text
//when values was bound to the datagrid
for (int c = 0; c < totalcols; c++)
{
dataview.Columns.RemoveAt(c);
var cName = new DataGridViewComboBoxColumn();
cName.DataSource = bindingSourceDropDown;
cName.DefaultCellStyle.NullValue = "none";
dataview.Columns.Insert(c, cName);
}
NumRows.Value = totalrows;
NumCols.Value = totalcols;
IsInitializing = false;
setDataViewtoValues();
}
//set the display cells to match the values in the datatable for initialization
//and resize of the dataviewgrid
void setDataViewtoValues()
{
if (!IsInitializing)
{
for (int c = 0; c < totalcols; c++)
{
for (int rw = 0; rw < totalrows; rw++)
{
dataview.Rows[rw].Cells[c].Value = values.Rows[rw][c];
}
}
}
}
//Get storage string for storing table values in db
// data will be returned in the format:
// totalnumrows,totalnumcols;(row,col):value|(row,col):value...
public string GetStorageValue()
{
//force any in progress editing to commit.
((BindingSource)dataview.DataSource).EndEdit();
StringBuilder bldr = new StringBuilder();
bldr.Append($"{totalrows},{totalcols}");
List<string> points = new List<string>();
for (int rw = 0; rw < values.Rows.Count; rw++)
{
for (int col = 0; col < values.Columns.Count; col++)
{
if ((string) values.Rows[rw][col] != "none")
points.Add($"({rw},{col}):{values.Rows[rw][col]}");
}
}
if (points.Count > 0)
{
bldr.Append(";");
bldr.Append(string.Join("|", points));
}
return bldr.ToString();
}
private void NumRows_ValueChanged(object sender, EventArgs e)
{
int endNumRows = (int)NumRows.Value;
int curNumRows = totalrows;
//remove rows till equal
while (curNumRows > endNumRows)
{
values.Rows.RemoveAt(curNumRows - 1);
curNumRows--;
}
//add rows till equal
while (curNumRows < endNumRows)
{
values.Rows.Add();
curNumRows++;
}
totalrows = endNumRows;
setDataViewtoValues();
}
private void NumCols_ValueChanged(object sender, EventArgs e)
{
int endNumCols = (int)NumCols.Value;
int curNumCols = totalcols;
BindingSource bindingSourceDropDown = new BindingSource();
bindingSourceDropDown.DataSource = Enum.GetNames(typeof(EPinputtype));
//remove cols till equal
while (curNumCols > endNumCols)
{
values.Columns.RemoveAt(curNumCols - 1);
dataview.Columns.RemoveAt(curNumCols - 1);
curNumCols--;
}
//add cols till equal
while (curNumCols < endNumCols)
{
values.Columns.Add(new DataColumn($"Column{curNumCols + 1}") { DefaultValue = "none"});
if (dataview.Columns.Count > curNumCols) dataview.Columns.RemoveAt(curNumCols);
var cName = new DataGridViewComboBoxColumn();
cName.DataSource = bindingSourceDropDown;
cName.DefaultCellStyle.NullValue = "none";
dataview.Columns.Add(cName);
curNumCols++;
}
totalcols = endNumCols;
setDataViewtoValues();
}
//set the datatable value to match the changed datagridview value
//for some reason despite being bound, does not automatically update
// (it may be that datatable as a bindingsource does not implement INotifyProperty
// and thus needs manually set like this)
private void dataview_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
values.Rows[e.RowIndex][e.ColumnIndex] = (string) dataview.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
}
}
}

View File

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

View File

@@ -243,6 +243,12 @@
<Compile Include="frmEnhanced.Designer.cs">
<DependentUpon>frmEnhanced.cs</DependentUpon>
</Compile>
<Compile Include="frmEPAnnotationDetails.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmEPAnnotationDetails.Designer.cs">
<DependentUpon>frmEPAnnotationDetails.cs</DependentUpon>
</Compile>
<Compile Include="frmImportWordContents.cs">
<SubType>Form</SubType>
</Compile>
@@ -274,6 +280,9 @@
<DependentUpon>ImageItem.cs</DependentUpon>
</Compile>
<Compile Include="LinkText.cs" />
<Compile Include="ListBoxMulti.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="PreviewMultiLineRO.cs">
<SubType>Form</SubType>
</Compile>
@@ -374,6 +383,12 @@
</Compile>
<Compile Include="RomanNumeral.cs" />
<Compile Include="RTBAPI.cs" />
<Compile Include="TablePropertiesControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="TablePropertiesControl.Designer.cs">
<DependentUpon>TablePropertiesControl.cs</DependentUpon>
</Compile>
<Compile Include="TransPanel.cs">
<SubType>Component</SubType>
</Compile>
@@ -474,6 +489,10 @@
<EmbeddedResource Include="frmEnhanced.resx">
<DependentUpon>frmEnhanced.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmEPAnnotationDetails.resx">
<DependentUpon>frmEPAnnotationDetails.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmImportWordContents.resx">
<DependentUpon>frmImportWordContents.cs</DependentUpon>
</EmbeddedResource>
@@ -515,6 +534,9 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="TablePropertiesControl.resx">
<DependentUpon>TablePropertiesControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="vlnExpander.resx">
<DependentUpon>vlnExpander.cs</DependentUpon>
<SubType>Designer</SubType>

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,320 @@
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, TextBox> _DicTB;
private Dictionary<string, CheckBox> _DicCheckBox;
private Dictionary<string, ComboBox> _DicComboBox;
private Dictionary<string, ComboBox> _DicSingleRO;
private Dictionary<string, ListBoxMulti> _DicMultiRO;
private TablePropertiesControl _TablePropControl;
private string multiseparator = ",";
public frmEPAnnotationDetails(AnnotationInfo currAnn)
{
InitializeComponent();
_DicTB = new Dictionary<string, TextBox>();
_DicCheckBox = new Dictionary<string, CheckBox>();
_DicComboBox = new Dictionary<string, ComboBox>();
_DicSingleRO = new Dictionary<string, ComboBox>();
_DicMultiRO = new Dictionary<string, ListBoxMulti>();
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.Where(y => y.type.ToLower() != "tableinput").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;
if (EP.type.ToLower() != "tableinput")
{
Label wlbl = new Label();
wlbl.Text = EP.label;
wlbl.Visible = true;
wlbl.TextAlign = ContentAlignment.MiddleLeft;
wlbl.Anchor = AnchorStyles.Left | AnchorStyles.Top;
wlbl.Width = (8 * MaxCharsInLabel) + 5;
panelEP.Controls.Add(wlbl, 0, panelEP.RowCount - 1);
}
if (EP.type.ToLower() == "text")
{
TextBox tb = new TextBox();
tb.Font = tb.Font = new Font("Arial", 8);
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;
string val = MyConfig.GetValue("EP", EP.name).Replace("\\u8209?", "-").Replace(@"\u9586?", @"\");
tb.Text = val;
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 = ScrollBars.Both;
panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.Absolute, 50));
}
else
{
panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.AutoSize));
}
_DicTB.Add(EP.name, tb);
panelEP.Controls.Add(tb, 1, panelEP.RowCount - 1);
}
else
{
panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.AutoSize));
}
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.Trim());
string val = MyConfig.GetValue("EP", EP.name);
if (val != null && val != "") cmb.SelectedItem = val;
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Length).FirstOrDefault(), cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
cmb.Width = cmb.DropDownWidth;
_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;
List<ROListItem> tmps = EP.getROList(currAnn, true);
cmb.DisplayMember = "Text";
cmb.ValueMember = "Value";
cmb.DataSource = tmps;
cmb.DropDownStyle = ComboBoxStyle.DropDownList;
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).FirstOrDefault()?.Text, cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
cmb.Width = cmb.DropDownWidth;
_DicSingleRO.Add(EP.name, cmb);
panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1);
}
if (EP.type.ToLower() == "romulti")
{
ListBoxMulti lb = new ListBoxMulti();
List<ROListItem> tmps = EP.getROList(currAnn, false);
lb.DisplayMember = "Text";
lb.ValueMember = "Value";
lb.Width = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).FirstOrDefault()?.Text, lb.Font).Width + SystemInformation.VerticalScrollBarWidth;
lb.DataSource = tmps;
_DicMultiRO.Add(EP.name, lb);
panelEP.Controls.Add(lb, 1, panelEP.RowCount - 1);
}
//note will allow only 1 tableproperties control since it is a 1:1 match with the table that is in the step
if (EP.type.ToLower() == "tableinput" && _TablePropControl == null)
{
string val = MyConfig.GetValue("EP", EP.name);
_TablePropControl = new TablePropertiesControl(EP.name, EP.label, val);
_TablePropControl.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
panelEP.Controls.Add(_TablePropControl, 1, panelEP.RowCount - 1);
}
}
Load += new EventHandler(Form1Load_setDefaults);
}
void Form1Load_setDefaults(object sender, EventArgs e)
{
foreach (KeyValuePair<string, ComboBox> pair in _DicSingleRO)
{
string val = MyConfig.GetValue("EP", pair.Key);
if (!string.IsNullOrEmpty(val) && pair.Value.Items.OfType<ROListItem>().Any(x=> x.Value == val))
pair.Value.SelectedValue = val;
else
pair.Value.SelectedValue = "";
}
foreach (KeyValuePair<string, ListBoxMulti> pair in _DicMultiRO)
{
//clear all items at start in case items were autoselected - bug in Winforms ListBox
pair.Value.ClearSelected();
string val = MyConfig.GetValue("EP", pair.Key);
if (val != null && val != "")
{
var selectedvalues = val.Split(multiseparator.ToCharArray());
foreach (string item in selectedvalues)
{
string text = ((List<ROListItem>)pair.Value.DataSource).Find(x => x.Value == item)?.Text;
if (!string.IsNullOrEmpty(text)) pair.Value.SetSelected(pair.Value.FindString(text), true);
}
}
//set this to -1 after initial setting of values
//this will help to fix bug in Winforms ListBox
//that autoselects first item when no items are selected
pair.Value.singleselectedindex = -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")
{
TextBox cur = _DicTB[EP.name];
string newval = cur.Text;
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 == "-1") newval = "";
if (newval != oldval)
{
isDirty = true;
MyConfig.SetValue("EP", EP.name, newval);
}
}
else if (EP.type.ToLower() == "romulti")
{
ListBoxMulti lbcur = _DicMultiRO[EP.name];
string newvalues = String.Join(multiseparator, lbcur.SelectedItems.OfType<ROListItem>().Select(item => item.Value));
string oldvalues = MyConfig.GetValue("EP", EP.name);
if (newvalues != oldvalues)
{
isDirty = true;
MyConfig.SetValue("EP", EP.name, newvalues);
}
}
else if (EP.type.ToLower() == "tableinput" && EP.name == _TablePropControl.epname)
{
string newvalues = _TablePropControl.GetStorageValue();
string oldvalues = MyConfig.GetValue("EP", EP.name);
if (newvalues != oldvalues)
{
isDirty = true;
MyConfig.SetValue("EP", EP.name, newvalues);
}
}
}
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 (ListBoxMulti lb in _DicMultiRO.Values)
{
lb.Dispose();
}
Load -= Form1Load_setDefaults;
}
}
}

View File

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

View File

@@ -57,7 +57,7 @@ namespace Volian.Controls.Library
{
_MySectionInfo = mySectionInfo;
}
public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo,bool isDeleting)
public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo, bool isDeleting)
{
_MySectionInfo = mySectionInfo;
_IsDeleting = isDeleting;
@@ -140,7 +140,7 @@ namespace Volian.Controls.Library
get { return _Node; }
set { _Node = value; }
}
private TreeNode _Destination=null;
private TreeNode _Destination = null;
public TreeNode Destination
{
get { return _Destination; }
@@ -152,6 +152,15 @@ namespace Volian.Controls.Library
get { return _Index; }
set { _Index = value; }
}
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
//AnnotationType that would be doing an export for
private int _AnnotationTypeId = -1;
public int AnnotationTypeId
{
get { return _AnnotationTypeId; }
set { _AnnotationTypeId = value; }
}
//jcb multiunit
private string _Unit;
public string Unit
@@ -168,7 +177,7 @@ namespace Volian.Controls.Library
//end jcb multiunit
#endregion
#region Factory Methods
private vlnTreeEventArgs() { ;}
private vlnTreeEventArgs() {; }
public vlnTreeEventArgs(TreeNode node)
{
_Node = node;
@@ -179,6 +188,13 @@ namespace Volian.Controls.Library
_Destination = destination;
_Index = index;
}
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, int annTypeId)
{
_Node = node;
_Destination = destination;
_Index = index;
_AnnotationTypeId = annTypeId;
}
//jcb multiunit
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex)
{
@@ -188,11 +204,20 @@ namespace Volian.Controls.Library
_Unit = unit;
_UnitIndex = unitIndex;
}
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex, int annTypeId)
{
_Node = node;
_Destination = destination;
_Index = index;
_Unit = unit;
_UnitIndex = unitIndex;
_AnnotationTypeId = annTypeId;
}
//end jcb multiunit
#endregion
public override string ToString()
{
return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}",NodePath(this.Node),this.Destination, this.Index,this.Unit, this.UnitIndex);
return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}", NodePath(this.Node), this.Destination, this.Index, this.Unit, this.UnitIndex);
}
private string NodePath(TreeNode node)
@@ -215,7 +240,7 @@ namespace Volian.Controls.Library
}
#endregion
#region Factory Methods
private vlnTreeItemInfoEventArgs() { ;}
private vlnTreeItemInfoEventArgs() {; }
public vlnTreeItemInfoEventArgs(ItemInfo myItemInfo)
{
_MyItemInfo = myItemInfo;
@@ -231,7 +256,7 @@ namespace Volian.Controls.Library
FolderId = folderId;
}
}
public enum E_InsertType {Before, After, Child};
public enum E_InsertType { Before, After, Child };
public partial class vlnTreeItemInfoInsertEventArgs
{
#region Business Methods
@@ -267,7 +292,7 @@ namespace Volian.Controls.Library
}
#endregion
#region Factory Methods
private vlnTreeItemInfoInsertEventArgs() { ;}
private vlnTreeItemInfoInsertEventArgs() {; }
public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText)
{
_MyItemInfo = myItemInfo;
@@ -314,7 +339,7 @@ namespace Volian.Controls.Library
}
#endregion
#region Factory Methods
private vlnTreeItemInfoPasteEventArgs() { ;}
private vlnTreeItemInfoPasteEventArgs() {; }
public vlnTreeItemInfoPasteEventArgs(ItemInfo myItemInfo, int copyStartId, ItemInfo.EAddpingPart pasteType, int? type)
{
_MyItemInfo = myItemInfo;
@@ -364,7 +389,7 @@ namespace Volian.Controls.Library
get { return _SectionConfig; }
set { _ConfigObject = _SectionConfig = value; }
}
private vlnTreePropertyEventArgs() { ;}
private vlnTreePropertyEventArgs() {; }
public vlnTreePropertyEventArgs(string title, FolderConfig folderConfig)
{
_Title = title;
@@ -528,6 +553,11 @@ namespace Volian.Controls.Library
{
if (PrintSection != null) PrintSection(sender, args);
}
public event vlnTreeViewEvent QPrintSection;
private void OnQPrintSection(object sender, vlnTreeEventArgs args)
{
if (QPrintSection != null) QPrintSection(sender, args);
}
public event vlnTreeViewEvent PrintAllProcedures;
private void OnPrintAllProcedures(object sender, vlnTreeEventArgs args)
{
@@ -706,7 +736,10 @@ namespace Volian.Controls.Library
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))// && fi.MyParent == null) //VEPROMS level
{
if (fi.HasWorkingDraft)
{
cm.MenuItems.Add("Export Procedure Set", new EventHandler(mi_Click));
//AddEPExport(cm.MenuItems, 0, null);
}
else
cm.MenuItems.Add("Import Procedure Set", new EventHandler(mi_Click));
if (DoSpecificInfo)
@@ -715,11 +748,11 @@ namespace Volian.Controls.Library
//_MyLog.WarnFormat("Context Menu 1b - {0}", GC.GetTotalMemory(true));
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))
{
if (fi.MyParent != null) // don't allow insert before/after if at top node
if (fi.MyParent != null) // don't allow insert before/after if at top node
{
if (!ui.IsAdministrator() && DoSpecificInfo) cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click));
// B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate
if (ui.IsAdministrator()||ui.IsSetAdministrator(fi.MyParent))
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent))
{
cm.MenuItems.Add("Insert Folder Before", new EventHandler(mi_Click));
cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click));
@@ -734,7 +767,7 @@ namespace Volian.Controls.Library
if (fi.HasWorkingDraft)
cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click));
}
else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs
else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs
{
isWrkDftNode = true;
//_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true));
@@ -834,15 +867,18 @@ namespace Volian.Controls.Library
urv.Enabled = !dvi.ROfstLastCompleted || dvi.NewerRoFst;
}
}
else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections
else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections
{
isProcNode = true;
ProcedureInfo pri = tn.VEObject as ProcedureInfo;
oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure);
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion))
{
cm.MenuItems.Add("Export Procedure", mi_Click);
}
{
cm.MenuItems.Add("Export Procedure", mi_Click);
//C2025-024 Proms XML Output - if have any EP Format files, add dropdown menu for exporting EP formats
if (pri.ActiveFormat.PlantFormat.EPFormatFiles.Count > 0)
AddEPExport(cm.MenuItems, pri.MyDocVersion.MultiUnitCount, pri.MyDocVersion.UnitNames, pri.ActiveFormat.PlantFormat.EPFormatFiles);
}
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion))
{
if (oi != null && oi.SessionID != MySessionInfo.SessionID)
@@ -994,11 +1030,26 @@ namespace Volian.Controls.Library
mp.Tag = k;
}
cm.MenuItems.Add(mps);
//C2025-028 Add a Quick Print Section option
MenuItem mps_qp = new MenuItem("Quick Print Section");
int k_qp = 0;
foreach (string s in si2.MyDocVersion.UnitNames)
{
k_qp++;
MenuItem mp_qp = mps_qp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mp_qp.Tag = k_qp;
}
cm.MenuItems.Add(mps_qp);
}
}
else
{
if(!si2.IsSubsection) cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
if (!si2.IsSubsection)
{
cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click));
}
}
}
}
@@ -1061,9 +1112,37 @@ namespace Volian.Controls.Library
// require clearing of all enhanced config data or mapping it to existing data (quite complicated)
if ((ui.IsAdministrator() || ui.IsSetAdministrator(i.MyProcedure.MyDocVersion) || ui.IsWriter(i.MyProcedure.MyDocVersion)) && (!i.IsEnhancedStep && !i.IsEnhancedProcedure && !i.IsEnhancedSection && !i.IsRtfRaw && !i.IsFigure))
cm.MenuItems.Add("Copy", new EventHandler(mi_Click));
//if (i.HasWordContent)
//{
// cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
// cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click));
//}
if (i.HasWordContent)
{
cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
if (i.MyDocVersion.MultiUnitCount > 1)
{
if (!i.IsSubsection)
{
MenuItem mps = new MenuItem("Print Section");
MenuItem mqps = new MenuItem("Quick Print Section");
int k = 0;
foreach (string s in i.MyDocVersion.UnitNames)
{
k++;
MenuItem mp = mps.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mp.Tag = k;
MenuItem mqp = mqps.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mqp.Tag = k;
}
cm.MenuItems.Add(mps);
cm.MenuItems.Add(mqps);
}
}
else
{
cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click));
}
}
}
#endregion
@@ -1077,7 +1156,7 @@ namespace Volian.Controls.Library
ok = true;
else if (tn.VEObject is ItemInfo && (ui.IsAdministrator() || ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)))
ok = true;
if(ok)
if (ok)
Menu_Paste(tn, cm);
#endregion
//_MyLog.WarnFormat("Context Menu 5 - {0}", GC.GetTotalMemory(true));
@@ -1093,13 +1172,13 @@ namespace Volian.Controls.Library
// Add delete to the menu unless at the very 'top' node, on a grouping (partinfo)
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
PartInfo pi = tn.VEObject as PartInfo;
if (pi == null && tn.Parent != null) // it's not a part and it's not the top....
if (pi == null && tn.Parent != null) // it's not a part and it's not the top....
{
fi = tn.VEObject as FolderInfo;
if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children
if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children
{
DocVersionInfo di = tn.VEObject as DocVersionInfo;
if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children
if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children
{
// if it's an enhanced step that was linked from a source, don't allow delete
bool canDoDel = true;
@@ -1148,13 +1227,13 @@ namespace Volian.Controls.Library
}
doclink = string.Format("Unlink Source and {0} Procedure", doclink);
MenuItem mix = cm.MenuItems.Add(doclink, new EventHandler(miEnhanced_Click));
mix.Tag = -1; // NOTE this is what flags what gets processed on menu click, i.e. -1
mix.Tag = -1; // NOTE this is what flags what gets processed on menu click, i.e. -1
}
// if this is a source procedure that has enhanced, for example Background and/or deviation, ask which should be unlinked including all
else if (eds != null && eds.Count > 1)
{
MenuItem miu = new MenuItem("Unlink Enhanced Procedure(s) from Source");
miu.Tag = -2; // this menu item doesn't get used.
miu.Tag = -2; // this menu item doesn't get used.
int k = 0;
foreach (EnhancedDocument ed in eds)
{
@@ -1165,7 +1244,7 @@ namespace Volian.Controls.Library
}
// add all submenu item
MenuItem mp1 = miu.MenuItems.Add("All", new EventHandler(miEnhanced_Click));
mp1.Tag = 0; // Tag of 0 flags All
mp1.Tag = 0; // Tag of 0 flags All
cm.MenuItems.Add(miu);
}
}
@@ -1175,8 +1254,8 @@ namespace Volian.Controls.Library
// Add Properties to the menu unless at the very 'top' node or on a grouping (partinfo)
// node (RNOs, Steps, Cautions, Notes) or at the step level.
// B2020-105 Allow Set Administrators to rename folder's (sets of procedures) to which they have been given access.
if ( tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo));
else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))
if (tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo));
else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))
: (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)
|| ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)));
PartInfo pia = tn.VEObject as PartInfo;
@@ -1287,7 +1366,7 @@ namespace Volian.Controls.Library
// F2022-024 added Time Critical Action Summary option
foreach (MenuItem itm in cm.MenuItems)
{
if(itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" ||
if (itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" ||
itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" ||
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure")
@@ -1298,7 +1377,7 @@ namespace Volian.Controls.Library
{
foreach (MenuItem itm in cm.MenuItems)
{
if(!itm.Text.StartsWith("Document Checked Out"))
if (!itm.Text.StartsWith("Document Checked Out"))
itm.Enabled = false;
}
}
@@ -1311,11 +1390,48 @@ namespace Volian.Controls.Library
}
}
private void AddApprovedRevisionsMultiUnit(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
// Add context menu for exporting Electronic Procedures
// if has an Electronic procedure
// then loop through and add an Export for each EP Viewer
private void AddEPExport(Menu.MenuItemCollection menuItems, int MultiUnitCount, string[] UnitNames, EPFormatFiles EPFiles)
{
//add outer menu
MenuItem mi = menuItems.Add("Electronic Procedure Viewer Export");
foreach (EPFormatFile epAnnType in EPFiles)
{
//Add item for each individual EP Viewer
MenuItem mv = mi.MenuItems.Add(epAnnType.AnnotationName());
//tag will be of format:
//{EP Annotation Type ID},{Unit}
//if not multi-unit, unit will be zero.
if (MultiUnitCount > 1)
{
//if multi-unit, add menu item for each unit
int k = 0;
foreach (string s in UnitNames)
{
k++;
MenuItem multiunit_mv = mv.MenuItems.Add(s);
multiunit_mv.Tag = $"{epAnnType.AnnotationTypeID},{k}";
multiunit_mv.Click += new EventHandler(miEP_Click);
}
}
else
{
mv.Tag = $"{epAnnType.AnnotationTypeID},0";
mv.Click += new EventHandler(miEP_Click);
}
}
}
private void AddApprovedRevisionsMultiUnit(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
{
_currentPri = pri;
RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID);
if (ril.Count == 0) return; // no versions to list
if (ril.Count == 0) return; // no versions to list
MenuItem mi = menuItemCollection.Add("Versions");
int k = 0;
int lastApprovedRevisionID = 0;
@@ -1456,7 +1572,7 @@ namespace Volian.Controls.Library
RevisionConfig rc = ri.MyConfig as RevisionConfig;
// bug fix: B2016-183 - add the child's name (ex Unit 1) to the export file name for Parent/Child procedures.
int applIdx = rc.Applicability_Index;
string str = (applIdx > 0)?_currentPri.MyDocVersion.UnitNames[applIdx-1] +"_":""; // if parent/child get the defined child name to inlcude the export filename
string str = (applIdx > 0) ? _currentPri.MyDocVersion.UnitNames[applIdx - 1] + "_" : ""; // if parent/child get the defined child name to inlcude the export filename
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
xd.LoadXml(ri.LatestVersion.ApprovedXML);
string PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
@@ -1504,7 +1620,7 @@ namespace Volian.Controls.Library
{
MenuItem mip = mi.Parent as MenuItem;
//B2021-086 Added the check for the last revision stage is an Approved stage
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved!=0)
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0)
superceded = true;
}
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
@@ -1622,7 +1738,7 @@ namespace Volian.Controls.Library
// 'from' is object copied
// 'to' is object where paste was selected from
#region Menu_Paste_ToDocVersion
if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc
if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc
{
if (iiClipboard.IsProcedure)
{
@@ -1664,7 +1780,7 @@ namespace Volian.Controls.Library
{
SectionInfo si = (tn.VEObject as SectionInfo != null) ? tn.VEObject as SectionInfo : null;
#region Menu_Paste_ToFromProcedure
if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after
if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after
{
// Enhanced considerations, in order to paste a procedure around another procedure: NOTE that an 'enhanced' procedure cannot be in paste buffer!
// 1) 'to' & 'from' both 'non', i.e. Neither can have enhanced config data (be source or enhanced)
@@ -1688,16 +1804,16 @@ namespace Volian.Controls.Library
bool prFromIsEnhanced = iiClipboard.IsEnhancedProcedure;
bool prFromIsSource = pcFromCfg.MyEnhancedDocuments != null && pcFromCfg.MyEnhancedDocuments.Count > 0 && pcFromCfg.MyEnhancedDocuments[0].Type != 0;
bool prCanPaste = false;
if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1)
// else if ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false
else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3)
if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1)
// else if ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false
else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3)
{
prCanPaste = true;
okToReplace = false;
}
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4)
//else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID != iiClipboard.MyDocVersion.VersionID) prCanPaste = false; // 5) commented out because already set to false
//else if (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4)
//else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID != iiClipboard.MyDocVersion.VersionID) prCanPaste = false; // 5) commented out because already set to false
//else if (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false
if (iiClipboard.IsRtfRaw) prCanPaste = okToReplace = prCanPaste = false; // never paste an equation.
if (prCanPaste) cm.MenuItems.Add("Paste Procedure Before", new EventHandler(mi_Click));
if (okToReplace && prCanPaste) cm.MenuItems.Add("Replace Existing Procedure", new EventHandler(mi_Click));
@@ -1729,9 +1845,9 @@ namespace Volian.Controls.Library
bool scFromIsEnhanced = iiClipboard.IsEnhancedSection;
bool scFromIsSource = scFromCfg.MyEnhancedDocuments != null && scFromCfg.MyEnhancedDocuments.Count > 0 && scFromCfg.MyEnhancedDocuments[0].Type != 0;
bool scCanPaste = false;
if (!prToIsEnhanced && !prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; // 1)
if (!prToIsEnhanced && !prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; // 1)
else if (prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true;
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) scCanPaste = true; // 3)
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) scCanPaste = true; // 3)
if (iiClipboard.IsRtfRaw) scCanPaste = false; // never paste an equation.
if (scCanPaste) cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click));
}
@@ -1803,9 +1919,9 @@ namespace Volian.Controls.Library
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
bool stpCanPaste = false;
if (!secToIsEnhanced && !secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
if (!secToIsEnhanced && !secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
else if (secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 2)
else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) stpCanPaste = true; // 3)
else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) stpCanPaste = true; // 3)
if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation.
if (stpCanPaste) cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click));
}
@@ -1829,8 +1945,8 @@ namespace Volian.Controls.Library
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
bool stpCanPaste = false;
if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2)
if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2)
{
stpCanPaste = true;
okToReplace = false;
@@ -1838,7 +1954,7 @@ namespace Volian.Controls.Library
else if (stpToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) // 3
{
stpCanPaste = true;
if (stpFromIsSource) okToReplace = false; // B2017-183: don't allow a replace to source steps
if (stpFromIsSource) okToReplace = false; // B2017-183: don't allow a replace to source steps
}
if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation.
if (stpCanPaste && AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click));
@@ -1867,8 +1983,11 @@ namespace Volian.Controls.Library
case "Print Section":
OnPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Quick Print Section":
OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Print All Procedures for":
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag));
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Approve":
OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
@@ -1880,10 +1999,10 @@ namespace Volian.Controls.Library
OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Create Continuous Action Summary":
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0,mi.Text,(int)mi.Tag));
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Create Time Critical Action Summary":
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0,mi.Text,(int)mi.Tag));
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
default:
if (mip.Text.StartsWith("Showing Change Bars Starting"))
@@ -1921,7 +2040,7 @@ namespace Volian.Controls.Library
{
if (selprc.IsEnhancedProcedure)
{
selprc.DoUnlinkEnhanced(selprc, 0, !hasValidConnectingProc); // if no valid linked: enhtype = 0 since this an enhanced doc is getting unlinked
selprc.DoUnlinkEnhanced(selprc, 0, !hasValidConnectingProc); // if no valid linked: enhtype = 0 since this an enhanced doc is getting unlinked
}
else // from source
{
@@ -2014,6 +2133,10 @@ namespace Volian.Controls.Library
VETreeNode tn2 = SelectedNode as VETreeNode;
OnPrintSection(this, new vlnTreeEventArgs(tn2 as VETreeNode, null, 0));
break;
case "Quick Print Section":
VETreeNode tn2qp = SelectedNode as VETreeNode;
OnQPrintSection(this, new vlnTreeEventArgs(tn2qp as VETreeNode, null, 0));
break;
case "Open":
OpenNode();
break;
@@ -2169,11 +2292,11 @@ namespace Volian.Controls.Library
UpdateROValues(SelectedNode as VETreeNode);
break;
case "Create Continuous Action Summary":
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0));
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
break;
// F2022-024 Time Critical Action Summary
case "Create Time Critical Action Summary":
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0));
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
break;
// B2017-243 added the following two Cannot Paste items when dealing with enhanced documents
// when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted
@@ -2200,6 +2323,23 @@ namespace Volian.Controls.Library
break;
}
}
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
// Handles clicking of items in the context menu
// for exporting Electronic Procedures
// tag will be of format:
// {EP Annotation Type ID},{Unit}
// if not multi-unit, unit will be zero.
void miEP_Click(object sender, EventArgs e)
{
MenuItem mi = sender as MenuItem;
int annTypeid = int.Parse(((string)mi.Tag).Split(',')[0]);
int unit = int.Parse(((string)mi.Tag).Split(',')[1]);
if (unit == 0)
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, annTypeid));
else
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, "", unit, annTypeid));
}
private bool _doingCollapseNode = false; // B2016-058 when collapse is done, it always calls the drag node event which doesn't appear to be needed
private void CollapseProcedures()
{
@@ -2273,7 +2413,7 @@ namespace Volian.Controls.Library
FinalProgressBarMessage = "Cannot check-out Working Draft";
return;
}
Cursor = Cursors.WaitCursor; // C2023-002: move wait cursor after check out error
Cursor = Cursors.WaitCursor; // C2023-002: move wait cursor after check out error
int ownerid = MySessionInfo.CheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion);
using (DocVersion dv = DocVersion.Get(MyDVI.VersionID))
{
@@ -2306,7 +2446,7 @@ namespace Volian.Controls.Library
swROUpdate.Write(string.Format("Fixed Referenced Object for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID));
}
private ProgressBarItem _ProgressBar=null;
private ProgressBarItem _ProgressBar = null;
public ProgressBarItem ProgressBar
{
get { return _ProgressBar; }
@@ -2484,7 +2624,7 @@ namespace Volian.Controls.Library
// assume that item to paste is a procedure, otherwise the menuing would not have
// included the paste options
tn = (VETreeNode) tn.Nodes[tn.Nodes.Count - 1];
tn = (VETreeNode)tn.Nodes[tn.Nodes.Count - 1];
p = "After";
}
else // this is an empty docversion:
@@ -2546,7 +2686,7 @@ namespace Volian.Controls.Library
}
ItemInfo newProc = dvi.PasteChild(copyStartID);
VETreeNode tn1 = new VETreeNode(newProc);
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
SelectedNode = tn1;
}
@@ -2583,7 +2723,7 @@ namespace Volian.Controls.Library
}
if (pasteSectIntoEmptySect)
{
tn.ChildrenLoaded = false; // force a reload of treenode
tn.ChildrenLoaded = false; // force a reload of treenode
tn.LoadChildren(true);
}
SelectedNode = tn;
@@ -2621,8 +2761,8 @@ namespace Volian.Controls.Library
}
private ItemInfo PasteReplace(VETreeNode tn, int copyStartID)
{
VETreeNode prevtn = (VETreeNode) tn.PrevNode;
VETreeNode partn = (VETreeNode) tn.Parent;
VETreeNode prevtn = (VETreeNode)tn.PrevNode;
VETreeNode partn = (VETreeNode)tn.Parent;
ItemInfo ii = tn.VEObject as ItemInfo;
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, true);
@@ -2673,7 +2813,7 @@ namespace Volian.Controls.Library
private void SetupNodeProperties()
{
VETreeNode tn = SelectedNode as VETreeNode;
if (tn==null)return;
if (tn == null) return;
if ((tn.VEObject as FolderInfo) != null)
OpenProperties(tn.VEObject as FolderInfo);
@@ -2685,7 +2825,7 @@ namespace Volian.Controls.Library
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0) rofstid = dvi.DocVersionAssociations[0].MyROFst.ROFstID;
OpenProperties(tn.VEObject as DocVersionInfo);
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0 && rofstid != dvi.DocVersionAssociations[0].MyROFst.ROFstID)
OnTabDisplay(this,new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST"));
OnTabDisplay(this, new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST"));
}
else if ((tn.VEObject as ProcedureInfo) != null)
OpenProperties(tn.VEObject as ProcedureInfo);
@@ -2780,7 +2920,7 @@ namespace Volian.Controls.Library
{
if (newtype == MenuSelections.DocVersion)
{
int dvid = -1; // flag to allow user to cancel from dialog & then we remove it.
int dvid = -1; // flag to allow user to cancel from dialog & then we remove it.
using (DocVersion docversion = DocVersion.MakeDocVersion(parentfolder, "Working Draft", "Title", null, null, null))
{
ShowBrokenRules(docversion.BrokenRulesCollection);
@@ -2789,7 +2929,7 @@ namespace Volian.Controls.Library
{
docversion.Save();
tn = new VETreeNode(_LastDocVersionInfo);
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
parentfolder.Reset_ChildFolders();
parentfolder.Reset_FolderDocVersions();
}
@@ -2800,7 +2940,7 @@ namespace Volian.Controls.Library
}
else if (newtype == MenuSelections.Folder)
{
int f1 = -1; // flag to allow user to cancel from dialog & then we remove it.
int f1 = -1; // flag to allow user to cancel from dialog & then we remove it.
string uniquename = _LastFolderInfo.UniqueChildName("New Folder");
using (Folder folder = Folder.MakeFolder(parentfolder, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, string.Empty, DateTime.Now, VlnSettings.UserID))
{
@@ -2812,14 +2952,14 @@ namespace Volian.Controls.Library
{
folder.Save();
tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo);
SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist.
SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist.
}
else
f1 = folder.FolderID;
}
if (f1 != -1) Folder.Delete(f1);
}
else if (newtype == MenuSelections.FolderAfter||newtype == MenuSelections.FolderBefore)
else if (newtype == MenuSelections.FolderAfter || newtype == MenuSelections.FolderBefore)
{
int f2 = -1;
string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder");
@@ -2828,7 +2968,8 @@ namespace Volian.Controls.Library
//since before/after folder is at same level as current folder
//so need to use the parents order to determine where to place it
using (FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.MyParent.FolderID))
{ double? myorder = parfolderinfo.NewManualOrder(myindex);
{
double? myorder = parfolderinfo.NewManualOrder(myindex);
using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID))
{
ShowBrokenRules(folder.BrokenRulesCollection);
@@ -2853,7 +2994,7 @@ namespace Volian.Controls.Library
else if (newtype == MenuSelections.Procedure)
{
int p1 = -1;
using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count!=0?_LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count-1]:null, null, "New Procedure", 0))
using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count != 0 ? _LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count - 1] : null, null, "New Procedure", 0))
{
ShowBrokenRules(procedure.BrokenRulesCollection);
SetLastValues(ProcedureInfo.Get(procedure.ItemID));
@@ -2862,7 +3003,7 @@ namespace Volian.Controls.Library
{
procedure.Save();
tn = new VETreeNode(_LastProcedureInfo);
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
// The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034)
if (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures();
if (procedure.MyProcedureInfo.CreateEnhanced)
@@ -2910,7 +3051,7 @@ namespace Volian.Controls.Library
}
#endregion
#region InsertSection
else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list
else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list
{
string message = string.Empty;
if (_LastProcedureInfo != null)
@@ -2949,7 +3090,7 @@ namespace Volian.Controls.Library
"If you would like to view or copy these hidden steps you will need to go\n" +
"into the properties of this section and check the Editable Data checkbox.\n" +
"You will then be able to view and copy those steps. When finished, open\n" +
"the properties page again and uncheck the Editable Data checkbox.\n\n"+
"the properties page again and uncheck the Editable Data checkbox.\n\n" +
"Do you want to continue creating the subsection?";
if (FlexibleMessageBox.Show(this, msgstr, "Subsection Insert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
@@ -2961,7 +3102,7 @@ namespace Volian.Controls.Library
if (!hasMetaSubs) doPseudo = true;
}
}
using(Section section = CreateNewSection())
using (Section section = CreateNewSection())
{
ShowBrokenRules(section.BrokenRulesCollection);
SectionInfo savLastSectionInfo = _LastSectionInfo;
@@ -2971,10 +3112,10 @@ namespace Volian.Controls.Library
if (!doPseudo)
{
tn = new VETreeNode(_LastSectionInfo);
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
// Enhanced section:
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
sectiontmp.Dispose();
@@ -2985,7 +3126,7 @@ namespace Volian.Controls.Library
// may have to add a 'steps' node if a step(s) already exist...
ItemInfo ii = (SelectedNode as VETreeNode).VEObject as ItemInfo;
int cpindx = 0;
if (SelectedNode.Nodes.Count>0)
if (SelectedNode.Nodes.Count > 0)
{
VETreeNode vtn = SelectedNode.Nodes[0] as VETreeNode;
// B2017-014: removed code that was adding a 2nd section part node. and also select node to
@@ -2995,7 +3136,7 @@ namespace Volian.Controls.Library
// B2017-014: removed code that was adding a 2nd section part node.
}
}
else // Properties was canceled out of:
else // Properties was canceled out of:
s1 = section.ItemID;
}
if (s1 != -1)
@@ -3029,14 +3170,14 @@ namespace Volian.Controls.Library
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK)
{
int indx = tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1);
int itemido = (indx >= par.Nodes.Count)?-1:(((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).ItemID;
if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido !=section.ItemID)
int itemido = (indx >= par.Nodes.Count) ? -1 : (((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).ItemID;
if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido != section.ItemID)
{
tn = new VETreeNode(_LastSectionInfo);
par.Nodes.Insert(indx, tn);
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
// Enhanced section:
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
sectiontmp.Dispose();
@@ -3056,7 +3197,7 @@ namespace Volian.Controls.Library
}
#endregion
#region InsertStep
else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree.
else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree.
{
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
@@ -3133,7 +3274,7 @@ namespace Volian.Controls.Library
using (Procedure newenhProcedure = Procedure.MakeProcedure(enhDVInfo, enhDVInfo.Procedures.Count != 0 ? enhDVInfo.Procedures[enhDVInfo.Procedures.Count - 1] : null, null, "New Procedure", 0))
{
SaveEnhancedForProcedure(sourceProc, newenhProcedure, ded.Type);
RefreshRelatedNode(ProcedureInfo.Get(newenhProcedure.ItemID)); // this updates the treeview to include the new enhanced procedure
RefreshRelatedNode(ProcedureInfo.Get(newenhProcedure.ItemID)); // this updates the treeview to include the new enhanced procedure
}
}
}
@@ -3231,7 +3372,7 @@ namespace Volian.Controls.Library
{
SectionConfig newenhcfg = new SectionConfig(newenhSection);
newenhcfg.AddEnhancedDocument(0, sourceSect.ItemID);
newenhcfg.SaveEnhancedDocuments(); // does this save data?
newenhcfg.SaveEnhancedDocuments(); // does this save data?
using (Content c1 = Content.Get(newenhSection.ContentID))
{
c1.Config = newenhcfg.ToString();
@@ -3312,12 +3453,12 @@ namespace Volian.Controls.Library
// see if enhanced related steps need created:
SectionConfig scfgE = _LastItemInfo.ActiveSection.MyConfig as SectionConfig; // C2018-003 fixed use of getting the active section
if (scfgE != null && scfgE.Section_LnkEnh=="Y")
if (scfgE != null && scfgE.Section_LnkEnh == "Y")
{
// set up which item to insert from based on whether editor was open (see comment from 11/17 above).
EnhancedDocuments enhdocs = null;
ItemInfo.EAddpingPart addpart = ItemInfo.EAddpingPart.Child;
if (_LastItemInfo.MyPrevious != null) // the code above will do the MakeStep regardless of whether editor is up if this is the only step.
if (_LastItemInfo.MyPrevious != null) // the code above will do the MakeStep regardless of whether editor is up if this is the only step.
{
addpart = ItemInfo.EAddpingPart.After;
ItemInfo lstSrc = _LastItemInfo.MyPrevious;
@@ -3489,7 +3630,7 @@ namespace Volian.Controls.Library
result = FlexibleMessageBox.Show("Are you sure you want to delete this " + typeDescription + "?", "Verify Delete",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
}
if (_LastProcedureInfo != null || result == DialogResult.Yes)
if (_LastProcedureInfo != null || result == DialogResult.Yes)
{
if (_LastFolderInfo != null)
{
@@ -3595,7 +3736,7 @@ namespace Volian.Controls.Library
// just clear enhanced links back
_LastSectionInfo.ClearEnhancedSectionLink();
}
OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo,true));
OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo, true));
// always return false because an event gets fired to delete tree nodes.
if (!DeleteItemInfoAndChildren(_LastSectionInfo))
{
@@ -3696,11 +3837,11 @@ namespace Volian.Controls.Library
// do delete using RTBItem - this manages windowing from the step editor.
// If the procedure is open & you're deleting procedure, you want to close open
// window - this is done in DisplayTabControl-DeleteStepTabItem.
OnProcessing(true,"Deleting");
OnProcessing(true, "Deleting");
if (!OnDeleteItemInfo(this, new vlnTreeItemInfoEventArgs(ii)))
Item.DeleteItemAndChildren(ii);
OnProcessing(false,"Deleted");
OnProcessingComplete(dtStart,"Deleted");
OnProcessing(false, "Deleted");
OnProcessingComplete(dtStart, "Deleted");
if (deletedSection)
{
// B2020-087 if we deleted the last sub section, then clear the SubSection_Edit in the parent's config
@@ -3719,8 +3860,8 @@ namespace Volian.Controls.Library
}
catch (System.Data.SqlClient.SqlException ex)
{
OnProcessing(false,"Delete Failed");
OnProcessingComplete(dtStart,"Delete Failed");
OnProcessing(false, "Delete Failed");
OnProcessingComplete(dtStart, "Delete Failed");
// C2020-033: Support delete to bring up Search/Incoming Transitions panel
if (ex.Message.Contains("has External Transitions"))
{
@@ -3740,13 +3881,13 @@ namespace Volian.Controls.Library
private void OnProcessingComplete(DateTime dtStart, string message)
{
if (ProcessingComplete != null)
ProcessingComplete(this, new vlnTreeTimeEventArgs(dtStart,message));
ProcessingComplete(this, new vlnTreeTimeEventArgs(dtStart, message));
}
public event vlnTreeViewStatusEvent Processing;
private void OnProcessing(bool status, string message)
{
if (Processing != null)
Processing(this, new vlnTreeStatusEventArgs(status,message));
Processing(this, new vlnTreeStatusEventArgs(status, message));
}
#endregion
#region SetLastValuesAndSaveIfChangedStuff
@@ -3837,7 +3978,7 @@ namespace Volian.Controls.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_ItemDrag", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_ItemDrag", ex);
}
}
#endregion
@@ -4032,7 +4173,7 @@ namespace Volian.Controls.Library
//tv.SelectedNode = dropNode;
Graphics g = tv.CreateGraphics();
TreeNodeTriangle(g);
if (_position != DropPosition.Child)InsertPointer(tmp, g);
if (_position != DropPosition.Child) InsertPointer(tmp, g);
}
}
// }
@@ -4098,11 +4239,11 @@ namespace Volian.Controls.Library
ee = DragDropEffects.Move;
else
ee = DragDropEffects.None; // Default - Do nothing
if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node
if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node
ee = DragDropEffects.None;
else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions
else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions
ee = DragDropEffects.None;
else if (IsFolder((VETreeNode)dragNode)) // Folder move is only valid if moving to folder with NO docversions
else if (IsFolder((VETreeNode)dragNode)) // Folder move is only valid if moving to folder with NO docversions
{
FolderInfo fdropi = ((VETreeNode)dl.DropNode).VEObject as FolderInfo;
if (fdropi == null || fdropi.FolderDocVersionCount > 0) ee = DragDropEffects.None;
@@ -4113,7 +4254,7 @@ namespace Volian.Controls.Library
// For HLP, just move within the same procedure
// TODO: allow for section move within subsections.
ProcedureInfo pdropi = ((VETreeNode)dl.DropNode).VEObject as ProcedureInfo;
if (pdropi == null || (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None;
if (pdropi == null || (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None;
}
else if (!IsFolder((VETreeNode)dragNode) && (dragNode.Parent != dl.DropNode))
ee = DragDropEffects.None;
@@ -4124,7 +4265,7 @@ namespace Volian.Controls.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragOver", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragOver", ex);
}
}
@@ -4178,7 +4319,7 @@ namespace Volian.Controls.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("GetTreeNodeFromData", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("GetTreeNodeFromData", ex);
}
}
return null;
@@ -4204,7 +4345,7 @@ namespace Volian.Controls.Library
this.SelectedNode = dragNode;
FolderInfo fdragi = ((VETreeNode)dragNode).VEObject as FolderInfo;
FolderInfo fdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as FolderInfo;
if (fdragi != null && fdropi != null && fdropi.FolderDocVersionCount==0)
if (fdragi != null && fdropi != null && fdropi.FolderDocVersionCount == 0)
{
using (Folder fdrag = fdragi.Get())
{
@@ -4223,7 +4364,7 @@ namespace Volian.Controls.Library
// may either be a document version or a procedure depending on where the user wants to position the procedure.
ProcedureInfo pdragi = ((VETreeNode)dragNode).VEObject as ProcedureInfo;
ProcedureInfo pdropi = null;
if (pdragi != null) // moving a procedure
if (pdragi != null) // moving a procedure
{
pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo;
if (pdropi != null && pdragi.ActiveParent == pdropi.ActiveParent)
@@ -4243,7 +4384,7 @@ namespace Volian.Controls.Library
// Allow drag/drop of sections within the same procedure or same section (if subsection) (must have same parent)
SectionInfo sdragi = ((VETreeNode)dragNode).VEObject as SectionInfo;
SectionInfo sdropi = null;
if (sdragi != null) // moving a section
if (sdragi != null) // moving a section
{
sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo;
if (sdropi != null && sdragi.ActiveParent == sdropi.ActiveParent)
@@ -4264,7 +4405,7 @@ namespace Volian.Controls.Library
// Allow drag/drop of steps within the same parent only
StepInfo stdragi = ((VETreeNode)dragNode).VEObject as StepInfo;
StepInfo stdropi = null;
if (stdragi != null) // moving a step
if (stdragi != null) // moving a step
{
stdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as StepInfo;
if (stdropi != null && stdragi.ActiveParent == stdropi.ActiveParent)
@@ -4288,7 +4429,7 @@ namespace Volian.Controls.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragDrop", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragDrop", ex);
}
}
// private void DumpMembers(object o)
@@ -4317,7 +4458,7 @@ namespace Volian.Controls.Library
{
TreeNode tmp = (TreeNode)tn.Clone();
ExpandMatch(tmp,tn);
ExpandMatch(tmp, tn);
return tmp;
}
private void tv_DragDropOld(object sender, System.Windows.Forms.DragEventArgs e)

View File

@@ -1688,7 +1688,7 @@ namespace Volian.Print.Library
System.Windows.Forms.MessageBox.Show(msg.ToString(), "Error during PDF creation for search:", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Exclamation);
}
private static string BuildStepTab(ItemInfo item)
public static string BuildStepTab(ItemInfo item)
{
if (item == null)
return string.Empty;

View File

@@ -252,6 +252,14 @@ namespace Volian.Print.Library
get { return _CountInApplProcs; }
set { _CountInApplProcs = value; }
}
// C2025-033 Child (slave) being printed
private static int _PrintingChild = 0;
public static int PrintingChild
{
get { return _PrintingChild; }
set { _PrintingChild = value; }
}
//private bool _AddBlankPagesForDuplexPrinting = false;
//public bool AddBlankPagesForDuplexPrinting // Tells us if a the option to add a blank page is turn on (for procedures with duplex foldouts)
//{
@@ -1363,6 +1371,8 @@ i = 0;
foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems)
{
if (pageItem.Token == null) continue; // can be null if token is dependent on PSI lookup!
// 2024-089 selectively print pagestyle item base on Child Procedure being printed
if (PrintingChild > 0 && pageItem.ChildNum > 0 && pageItem.ChildNum != PrintingChild) continue; // C2025-033 item should not be printed for this child
DidHLSText = false; // reset to false for this group of tokens.
//if (pageItem.Token.Contains("HLSTEXT"))
// Console.WriteLine("{0} - PageList Token", pageItem.Token);

View File

@@ -4390,7 +4390,8 @@ namespace Volian.Print.Library
SectionConfig sch = MyItemInfo.MyConfig as SectionConfig;
if (sch != null && sch.Section_PrintHdr != "Y") doprint = false;
}
if (doprint && !UseTemplateKeepOnCurLine(itemInfo))
//C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed.
if (doprint && !UseTemplateKeepOnCurLine(itemInfo) && !itemInfo.IsType("InvisibleHigh"))
{
float tyoff = yoff;
if (itemInfo.Steps != null)
@@ -5751,9 +5752,21 @@ namespace Volian.Print.Library
private StringBuilder _RtfSB = null;
public string GetRtf(ItemInfo itemInfo, string prefix, string suffix)
{
int profileDepth = ProfileTimer.Push(">>>> GetRtf");
int profileDepth = ProfileTimer.Push(">>>> GetRtf");
_RtfSB = new StringBuilder();
DisplayText vlntxt = new DisplayText(itemInfo, E_EditPrintMode.Print, E_ViewMode.View, true, E_FieldToEdit.StepText, false, prefix, suffix, MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces != null);
//C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed.
if (itemInfo.IsType("InvisibleHigh"))
{
System.Drawing.Font myHighFont = vlntxt.TextFont.WindowsFont;
_RtfSB.Append(AddFontTable(myHighFont));
_RtfSB.Append("}");
string rtfHigh = _RtfSB.ToString();
ProfileTimer.Pop(profileDepth);
return rtfHigh;
}
// C2021-010: Remove trailing returns/spaces & manual page breaks & allow save.
if (DisplayText.RemoveTrailingBlankID > 0 && !MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces.Contains(itemInfo.ItemID)) MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces.Add(DisplayText.RemoveTrailingBlankID);
System.Drawing.Font myFont = vlntxt.TextFont.WindowsFont;

View File

@@ -69,7 +69,7 @@ namespace Volian.Print.Library
private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab
// add symbol characters as needed
// "\u25CF" - solid bullet
// \x0394 - delta
// \u0394 - delta
private System.Drawing.FontStyle GetSysFontStyle(VE_Font f)
{
@@ -267,7 +267,8 @@ namespace Volian.Print.Library
}
}
Rtf = GetRtf(origTab, vFont);
Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394
Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394
Rtf = Rtf.Replace("\u03BF", @"\f1\u959?\f0 "); // F2025-015 lowercase omicron check with hex value replace with RTF string
if (ScriptCaution)
{
Rtf = GetRtf("\u25CFCaution ", vFont);