Compare commits
55 Commits
Author | SHA1 | Date | |
---|---|---|---|
28c681a562 | |||
44025c3978 | |||
8c32d18aec | |||
20c31153de | |||
ecb9a805e5 | |||
0577acad93 | |||
d7f83fa4d4 | |||
4c4f4d52d2 | |||
0bf9025c0d | |||
2784b57a05 | |||
b9fc9748c7 | |||
ec25f6426a | |||
00283b4f28 | |||
ec8e4c36a4 | |||
92522b1229 | |||
9ef9dcd7b9 | |||
5fd8096ef0 | |||
5f59543a14 | |||
d44593d6d4 | |||
38744ff8e8 | |||
83e935a3f4 | |||
4d96e73866 | |||
a55ce75e2e | |||
c45dbf1dac | |||
2d08629608 | |||
49bc67a64f | |||
abec4d9281 | |||
149bc601e2 | |||
66deede936 | |||
0df5511bf7 | |||
2e68218cfe | |||
80f3568dbd | |||
5fd0ff9e71 | |||
4dcfa05157 | |||
42648f31a5 | |||
e0b628dce9 | |||
8f31532917 | |||
5a7e63871d | |||
7ade7f6e24 | |||
e470ef0553 | |||
f49c888307 | |||
04a2da4371 | |||
31f608a9ec | |||
3e53ec9191 | |||
637cbd9954 | |||
e9e934cfb1 | |||
a417ddda85 | |||
f273a8839a | |||
62ae81c7b3 | |||
6db9567eb9 | |||
8ef08c53b3 | |||
9fdbdb05f4 | |||
d392131005 | |||
389b9e382b | |||
6fd84e2f2a |
@@ -92,6 +92,10 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<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">
|
<Content Include="fmtall\AEPall.xml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
@@ -176,6 +180,8 @@
|
|||||||
<Content Include="fmtall\CPL_03all.xml" />
|
<Content Include="fmtall\CPL_03all.xml" />
|
||||||
<Content Include="fmtall\CPSAMGDataall.xml" />
|
<Content Include="fmtall\CPSAMGDataall.xml" />
|
||||||
<Content Include="fmtall\CPSAMGDEVall.xml" />
|
<Content Include="fmtall\CPSAMGDEVall.xml" />
|
||||||
|
<Content Include="fmtall\EPTSTBCK1all.xml" />
|
||||||
|
<Content Include="fmtall\EPTST1all.xml" />
|
||||||
<Content Include="fmtall\CWEall.xml" />
|
<Content Include="fmtall\CWEall.xml" />
|
||||||
<Content Include="fmtall\CWEDEVall.xml" />
|
<Content Include="fmtall\CWEDEVall.xml" />
|
||||||
<Content Include="fmtall\CWERall.xml" />
|
<Content Include="fmtall\CWERall.xml" />
|
||||||
@@ -187,6 +193,7 @@
|
|||||||
<Content Include="fmtall\EFSGBCKall.xml" />
|
<Content Include="fmtall\EFSGBCKall.xml" />
|
||||||
<Content Include="fmtall\ELFDEVall.xml" />
|
<Content Include="fmtall\ELFDEVall.xml" />
|
||||||
<Content Include="fmtall\ENall.xml" />
|
<Content Include="fmtall\ENall.xml" />
|
||||||
|
<Content Include="fmtall\EPTST2all.xml" />
|
||||||
<Content Include="fmtall\ESFDEVall.xml" />
|
<Content Include="fmtall\ESFDEVall.xml" />
|
||||||
<Content Include="fmtall\EXCLNall.xml" />
|
<Content Include="fmtall\EXCLNall.xml" />
|
||||||
<Content Include="fmtall\EXCLN_00all.xml" />
|
<Content Include="fmtall\EXCLN_00all.xml" />
|
||||||
|
BIN
PROMS/Formats/epall/EPFormatTST1.xml
Normal file
BIN
PROMS/Formats/epall/EPFormatTST1.xml
Normal file
Binary file not shown.
BIN
PROMS/Formats/epall/EPFormatTST2.xml
Normal file
BIN
PROMS/Formats/epall/EPFormatTST2.xml
Normal file
Binary file not shown.
BIN
PROMS/Formats/epall/EPFormatTST3.xml
Normal file
BIN
PROMS/Formats/epall/EPFormatTST3.xml
Normal file
Binary file not shown.
BIN
PROMS/Formats/epall/EPFormatTST4.xml
Normal file
BIN
PROMS/Formats/epall/EPFormatTST4.xml
Normal file
Binary file not shown.
BIN
PROMS/Formats/fmtall/EPTST1all.xml
Normal file
BIN
PROMS/Formats/fmtall/EPTST1all.xml
Normal file
Binary file not shown.
BIN
PROMS/Formats/fmtall/EPTST2all.xml
Normal file
BIN
PROMS/Formats/fmtall/EPTST2all.xml
Normal file
Binary file not shown.
BIN
PROMS/Formats/fmtall/EPTSTBCK1all.xml
Normal file
BIN
PROMS/Formats/fmtall/EPTSTBCK1all.xml
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -23864,6 +23864,226 @@ IF (@@Error = 0) PRINT 'Running vesp_UpdateUserSettingMSWordSummaryPrompt Succee
|
|||||||
ELSE PRINT 'Running vesp_UpdateUserSettingMSWordSummaryPrompt Failed to Execute'
|
ELSE PRINT 'Running vesp_UpdateUserSettingMSWordSummaryPrompt Failed to Execute'
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
--- begin changes for:
|
||||||
|
---C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
--- The following IsEPAnnotationType column was added for EP Annotations.
|
||||||
|
--- IsEPAnnotationType = Is for EPs
|
||||||
|
IF NOT EXISTS(SELECT *
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE TABLE_NAME = 'AnnotationTypes'
|
||||||
|
AND COLUMN_NAME = 'IsEPAnnotationType')
|
||||||
|
ALTER TABLE AnnotationTypes ADD IsEPAnnotationType bit NOT NULL DEFAULT(0);
|
||||||
|
go
|
||||||
|
-- Display the status
|
||||||
|
IF (@@Error = 0) PRINT 'Altered table [AnnotationTypes] Succeeded for IsEPAnnotationType'
|
||||||
|
ELSE PRINT 'Altered table [AnnotationTypes] Error on Alter for IsEPAnnotationType'
|
||||||
|
go
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||||
|
DROP PROCEDURE [getAnnotationType];
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
-- =============================================
|
||||||
|
-- Author: Matthew Schill
|
||||||
|
-- Create date: 3/21/2025
|
||||||
|
-- Description: Add EP to AnnotationTypes
|
||||||
|
-- =============================================
|
||||||
|
CREATE PROCEDURE [dbo].[getAnnotationType]
|
||||||
|
(
|
||||||
|
@TypeID int
|
||||||
|
)
|
||||||
|
WITH EXECUTE AS OWNER
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
[TypeID],
|
||||||
|
[Name],
|
||||||
|
[Config],
|
||||||
|
[DTS],
|
||||||
|
[UserID],
|
||||||
|
[LastChanged],
|
||||||
|
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount],
|
||||||
|
[IsEPAnnotationType]
|
||||||
|
FROM [AnnotationTypes]
|
||||||
|
WHERE [TypeID]=@TypeID
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
[Annotations].[AnnotationID],
|
||||||
|
[Annotations].[ItemID],
|
||||||
|
[Annotations].[TypeID],
|
||||||
|
[Annotations].[RtfText],
|
||||||
|
[Annotations].[SearchText],
|
||||||
|
[Annotations].[Config],
|
||||||
|
[Annotations].[DTS],
|
||||||
|
[Annotations].[UserID],
|
||||||
|
[Annotations].[LastChanged],
|
||||||
|
[Items].[PreviousID] [Item_PreviousID],
|
||||||
|
[Items].[ContentID] [Item_ContentID],
|
||||||
|
[Items].[DTS] [Item_DTS],
|
||||||
|
[Items].[UserID] [Item_UserID]
|
||||||
|
FROM [Annotations]
|
||||||
|
JOIN [Items] ON
|
||||||
|
[Items].[ItemID]=[Annotations].[ItemID]
|
||||||
|
WHERE
|
||||||
|
[Annotations].[TypeID]=@TypeID
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (@@Error = 0) PRINT 'Running getAnnotationType Succeeded'
|
||||||
|
ELSE PRINT 'Running getAnnotationType Failed to Execute'
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationTypeByName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||||
|
DROP PROCEDURE [getAnnotationTypeByName];
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
-- =============================================
|
||||||
|
-- Author: Matthew Schill
|
||||||
|
-- Create date: 3/21/2025
|
||||||
|
-- Description: Add EP to AnnotationTypes
|
||||||
|
-- =============================================
|
||||||
|
CREATE PROCEDURE [dbo].[getAnnotationTypeByName]
|
||||||
|
(
|
||||||
|
@Name nvarchar(100)
|
||||||
|
)
|
||||||
|
WITH EXECUTE AS OWNER
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
[TypeID],
|
||||||
|
[Name],
|
||||||
|
[Config],
|
||||||
|
[DTS],
|
||||||
|
[UserID],
|
||||||
|
[LastChanged],
|
||||||
|
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount],
|
||||||
|
[IsEPAnnotationType]
|
||||||
|
FROM [AnnotationTypes]
|
||||||
|
WHERE [Name]=@Name
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (@@Error = 0) PRINT 'Running getAnnotationTypeByName Succeeded'
|
||||||
|
ELSE PRINT 'Running getAnnotationTypeByName Failed to Execute'
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationTypes]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||||
|
DROP PROCEDURE [getAnnotationTypes];
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
-- =============================================
|
||||||
|
-- Author: Matthew Schill
|
||||||
|
-- Create date: 3/21/2025
|
||||||
|
-- Description: Add EP to AnnotationTypes
|
||||||
|
-- =============================================
|
||||||
|
CREATE PROCEDURE [dbo].[getAnnotationTypes]
|
||||||
|
WITH EXECUTE AS OWNER
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
[TypeID],
|
||||||
|
[Name],
|
||||||
|
[Config],
|
||||||
|
[DTS],
|
||||||
|
[UserID],
|
||||||
|
[LastChanged],
|
||||||
|
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount],
|
||||||
|
[IsEPAnnotationType]
|
||||||
|
FROM [AnnotationTypes]
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (@@Error = 0) PRINT 'Running getAnnotationTypes Succeeded'
|
||||||
|
ELSE PRINT 'Running getAnnotationTypes Failed to Execute'
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF Not Exists(SELECT * FROM sys.objects Where name = 'EPFormats' AND type in (N'U'))
|
||||||
|
Begin -- Rofst Tables
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
|
||||||
|
CREATE TABLE [dbo].[EPFormats](
|
||||||
|
[FormatID] [int] IDENTITY(1,1) NOT NULL,
|
||||||
|
[Name] [nvarchar](100) NOT NULL,
|
||||||
|
[Data] [xml] NULL,
|
||||||
|
[Created] [datetime] NOT NULL DEFAULT (getdate()),
|
||||||
|
[CreatedBy] [nvarchar](100) NOT NULL DEFAULT (upper(suser_sname())),
|
||||||
|
[Updated] [datetime] NOT NULL DEFAULT (getdate()),
|
||||||
|
[UpdatedBy] [nvarchar](100) NOT NULL DEFAULT (upper(suser_sname()))
|
||||||
|
CONSTRAINT [PK_EPFormats] PRIMARY KEY CLUSTERED
|
||||||
|
(
|
||||||
|
[FormatID] ASC
|
||||||
|
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
||||||
|
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||||
|
|
||||||
|
IF (@@Error = 0) PRINT 'Table Creation: [EPFormats] Succeeded'
|
||||||
|
ELSE PRINT 'Table Creation: [EPFormats] Error on Creation'
|
||||||
|
|
||||||
|
End
|
||||||
|
Go
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_UpdateEPFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||||
|
DROP PROCEDURE [vesp_UpdateEPFormat];
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
-- =============================================
|
||||||
|
-- Author: Matthew Schill
|
||||||
|
-- Create date: 3/26/2025
|
||||||
|
-- Description: Update / Insert EP Format
|
||||||
|
-- =============================================
|
||||||
|
CREATE PROCEDURE [dbo].[vesp_UpdateEPFormat]
|
||||||
|
(
|
||||||
|
@name nvarchar(100),
|
||||||
|
@data nvarchar(max),
|
||||||
|
@userID nvarchar(15)
|
||||||
|
)
|
||||||
|
WITH EXECUTE AS OWNER
|
||||||
|
AS
|
||||||
|
|
||||||
|
IF EXISTS(Select 1 FROM EPFormats where Name = @name )
|
||||||
|
BEGIN
|
||||||
|
UpDate EPFormats
|
||||||
|
SET Name = @name,
|
||||||
|
Data = @data,
|
||||||
|
Updated = getdate(),
|
||||||
|
UpdatedBy = upper(@userID)
|
||||||
|
WHERE Name = @name
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO EPFormats (Name, Data, CreatedBy, UpdatedBy)
|
||||||
|
values (@name, @data, 'Migration', 'Migration')
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (@@Error = 0) PRINT 'Running vesp_UpdateEPFormat Succeeded'
|
||||||
|
ELSE PRINT 'Running vesp_UpdateEPFormat Failed to Execute'
|
||||||
|
GO
|
||||||
|
UPDATE Formats SET ApplicablePlant = 1000 WHERE [Name] LIKE 'EPTST%';
|
||||||
|
Go
|
||||||
|
--- end changes for:
|
||||||
|
---C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
| ADD New Code Before this Block |
|
| ADD New Code Before this Block |
|
||||||
@@ -23897,8 +24117,8 @@ BEGIN TRY -- Try Block
|
|||||||
DECLARE @RevDate varchar(255)
|
DECLARE @RevDate varchar(255)
|
||||||
DECLARE @RevDescription varchar(255)
|
DECLARE @RevDescription varchar(255)
|
||||||
|
|
||||||
set @RevDate = '5/19/2025 8:44 AM'
|
set @RevDate = '6/20/2025 3:07 PM'
|
||||||
set @RevDescription = 'C2025-013 Add ability to disable message that opening Summaries in MS Word'
|
set @RevDescription = 'Annotation Support'
|
||||||
|
|
||||||
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
||||||
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
||||||
|
@@ -164,6 +164,9 @@
|
|||||||
<Compile Include="dlgCheckedOutProcedure.designer.cs">
|
<Compile Include="dlgCheckedOutProcedure.designer.cs">
|
||||||
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
|
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="dlgExportImportEP.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="dlgMSWordMessage.cs">
|
<Compile Include="dlgMSWordMessage.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
File diff suppressed because it is too large
Load Diff
347
PROMS/VEPROMS User Interface/dlgExportImportEP.cs
Normal file
347
PROMS/VEPROMS User Interface/dlgExportImportEP.cs
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -708,15 +708,32 @@ namespace VEPROMS
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
|
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);
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
//form for exporting Electronic Procedures from FolderInfo
|
||||||
if (args.Index == 1 && dlg.MyNewFolder != null)
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -742,18 +759,40 @@ namespace VEPROMS
|
|||||||
|
|
||||||
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
|
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
|
||||||
|
|
||||||
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
dlg.MyNewProcedure = null;
|
//form for exporting Electronic Procedures from DocVersionInfo
|
||||||
dlg.ExternalTransitionItem = null;
|
if (args.AnnotationTypeId > 0)
|
||||||
dlg.ShowDialog(this);
|
{
|
||||||
|
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)
|
if (dlg.MyNewProcedure != null)
|
||||||
tv.AddNewNode(dlg.MyNewProcedure);
|
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -769,10 +808,24 @@ namespace VEPROMS
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1216,7 +1269,7 @@ namespace VEPROMS
|
|||||||
|
|
||||||
//Print Section
|
//Print Section
|
||||||
//C2025-028 Add a Quick Print Section option
|
//C2025-028 Add a Quick Print Section option
|
||||||
|
|
||||||
void tv_PrintSection(object sender, vlnTreeEventArgs args)
|
void tv_PrintSection(object sender, vlnTreeEventArgs args)
|
||||||
{
|
{
|
||||||
PrintSection(sender, args, false);
|
PrintSection(sender, args, false);
|
||||||
@@ -1226,7 +1279,7 @@ namespace VEPROMS
|
|||||||
PrintSection(sender, args, true);
|
PrintSection(sender, args, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint)
|
void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -2195,7 +2248,7 @@ namespace VEPROMS
|
|||||||
this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", "", "WARNING this will \nREMOVE ALL PROMS USERS and Reset to the\nOriginal Volian Defaults", null, null, eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(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(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));
|
this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats", "", "Install New Formats \n or Re-Install Formats", null, null, eTooltipColor.Gray));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MyUserInfo = UserInfo.GetByUserID(VlnSettings.UserID);
|
MyUserInfo = UserInfo.GetByUserID(VlnSettings.UserID);
|
||||||
|
45
PROMS/VEPROMS.CSLA.Library/Config/AnnotationConfig.cs
Normal file
45
PROMS/VEPROMS.CSLA.Library/Config/AnnotationConfig.cs
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -19,6 +19,7 @@ using System.Xml;
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Volian.Base.Library;
|
||||||
|
|
||||||
namespace VEPROMS.CSLA.Library
|
namespace VEPROMS.CSLA.Library
|
||||||
{
|
{
|
||||||
@@ -226,6 +227,34 @@ namespace VEPROMS.CSLA.Library
|
|||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
OnFormatLoaded(null, new FormatEventArgs("Formats Updated"));
|
OnFormatLoaded(null, new FormatEventArgs("Formats Updated"));
|
||||||
|
|
||||||
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
//Begin section for processing Electronic Procedure (EP) Format Files
|
||||||
|
// now loop through all EP format files
|
||||||
|
string epPath = fmtPath.Replace("\\fmtall", "\\epall");
|
||||||
|
DirectoryInfo diEP = new DirectoryInfo(epPath);
|
||||||
|
if (diEP.Exists)
|
||||||
|
{
|
||||||
|
FileInfo[] fisEP = diEP.GetFiles("*.xml");
|
||||||
|
OnFormatLoaded(null, new FormatEventArgs(fisEP.Length.ToString() + " EP Formats to Load"));
|
||||||
|
foreach (FileInfo fi in fisEP)
|
||||||
|
{
|
||||||
|
string fmtname = Path.GetFileNameWithoutExtension(fi.Name);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
AddEPFormatToDB(fmtname, DateTime.Now, VlnSettings.UserID, epPath);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OnFormatLoaded(null, new FormatEventArgs("EP Formats Updated"));
|
||||||
|
|
||||||
|
// update all in-use annotation types that have Electronic Procedures
|
||||||
|
EPFormatFile.UpdateAllInUseEPAnnotationTypes();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Dictionary<string, int> _LookupFormats;
|
private static Dictionary<string, int> _LookupFormats;
|
||||||
@@ -338,8 +367,54 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
//Procedure to load the EP format fiels into the DB
|
||||||
|
private static void AddEPFormatToDB(string formatname, DateTime Dts, string Userid, string epPath)
|
||||||
|
{
|
||||||
|
string fmtdata = null;
|
||||||
|
FileInfo fmtfi = null;
|
||||||
|
XmlDocument xd = null;
|
||||||
|
|
||||||
|
OnFormatLoaded(null, new FormatEventArgs("Loading Format " + formatname));
|
||||||
|
|
||||||
|
string path = Path.Combine(epPath, formatname + ".xml");
|
||||||
|
if (File.Exists(path))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (StreamReader srf = new StreamReader(path))
|
||||||
|
{
|
||||||
|
fmtfi = new FileInfo(path);
|
||||||
|
xd = new XmlDocument();
|
||||||
|
xd.XmlResolver = null;
|
||||||
|
xd.Load(srf);
|
||||||
|
fmtdata = xd.OuterXml;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
OnFormatLoaded(null, new FormatEventArgs("Error Loading Format " + formatname));
|
||||||
|
_MyLog.ErrorFormat($"AddEPFormatToDB('{path}')");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(Userid)) Userid = "Migration";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
EPFormatFile.UpdateEPFormat(formatname, fmtdata, Userid);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_MyLog.ErrorFormat($"AddFormatToDB-make format('{path}')");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public partial class FormatInfo : IFormatOrFormatInfo
|
|
||||||
|
public partial class FormatInfo : IFormatOrFormatInfo
|
||||||
{
|
{
|
||||||
//transition report stuff
|
//transition report stuff
|
||||||
private static Dictionary<int, string> _TransitionTypes;
|
private static Dictionary<int, string> _TransitionTypes;
|
||||||
|
@@ -346,21 +346,21 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
var ii = _CacheByPrimaryKey.FirstOrDefault();
|
var ii = _CacheByPrimaryKey.FirstOrDefault();
|
||||||
|
|
||||||
while (ii.Value.Count > 0)
|
while (ii.Value.Count > 0)
|
||||||
{
|
{
|
||||||
if (ii.Value[0]?.MyContent?.ContentParts != null)
|
if (ii.Value[0]?.MyContent?.ContentParts != null)
|
||||||
{ foreach (PartInfo pi in ii.Value[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
{ foreach (PartInfo pi in ii.Value[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
||||||
ii.Value[0].Dispose();
|
ii.Value[0].Dispose();
|
||||||
}
|
}
|
||||||
_CacheByPrimaryKey.Remove(ii.Key);
|
_CacheByPrimaryKey.Remove(ii.Key);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (_CacheList.Count > 0)
|
while (_CacheList.Count > 0)
|
||||||
{
|
{
|
||||||
if (_CacheList[0]?.MyContent?.ContentParts != null)
|
if (_CacheList[0]?.MyContent?.ContentParts != null)
|
||||||
{foreach (PartInfo pi in _CacheList[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
{foreach (PartInfo pi in _CacheList[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
||||||
_CacheList[0].Dispose();
|
_CacheList[0].Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _PrintAllAtOnce = false;
|
private bool _PrintAllAtOnce = false;
|
||||||
@@ -449,88 +449,87 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
StringBuilder sret = new StringBuilder();
|
StringBuilder sret = new StringBuilder();
|
||||||
ItemInfo pitem = this;
|
ItemInfo pitem = this;
|
||||||
|
|
||||||
while (!pitem.IsSection && !pitem.IsHigh)
|
while (!pitem.IsSection && !pitem.IsHigh)
|
||||||
{
|
{
|
||||||
using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID))
|
using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID))
|
||||||
{
|
{
|
||||||
string thisTab = stpinfo.MyTab.CleanText;
|
string thisTab = stpinfo.MyTab.CleanText;
|
||||||
|
|
||||||
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
|
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(thisTab))
|
if (!string.IsNullOrEmpty(thisTab))
|
||||||
{
|
{
|
||||||
thisTab = thisTab.Trim();
|
thisTab = thisTab.Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the tab is null or
|
// if the tab is null or
|
||||||
// if the the tab is not a letter or number 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"
|
// 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
|
// then reset the tab an empty string so that the type name along with the count of that type
|
||||||
// (ex. "AND 2", "OR 3")
|
// (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")))))
|
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;
|
thisTab = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pitem.IsRNOPart)
|
if (pitem.IsRNOPart)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(thisTab))
|
if (string.IsNullOrEmpty(thisTab))
|
||||||
{
|
{
|
||||||
sret.Insert(0, "RNO.");
|
sret.Insert(0, "RNO.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thisTab = thisTab.Trim();
|
thisTab = thisTab.Trim();
|
||||||
|
|
||||||
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
||||||
{
|
{
|
||||||
thisTab += ".";
|
thisTab += ".";
|
||||||
}
|
}
|
||||||
|
|
||||||
sret.Insert(0, "RNO." + thisTab);
|
sret.Insert(0, "RNO." + thisTab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pitem.IsCaution || pitem.IsNote)
|
else if (pitem.IsCaution || pitem.IsNote)
|
||||||
{
|
{
|
||||||
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
|
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
|
||||||
if (string.IsNullOrEmpty(thisTab))
|
if (string.IsNullOrEmpty(thisTab))
|
||||||
{
|
{
|
||||||
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
|
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thisTab = thisTab.Trim(" ".ToCharArray());
|
thisTab = thisTab.Trim(" ".ToCharArray());
|
||||||
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
|
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(thisTab))
|
if (!string.IsNullOrEmpty(thisTab))
|
||||||
{
|
{
|
||||||
thisTab = thisTab.Trim(" ".ToCharArray());
|
thisTab = thisTab.Trim(" ".ToCharArray());
|
||||||
|
|
||||||
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
||||||
{
|
{
|
||||||
thisTab += ".";
|
thisTab += ".";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thisTab = "{" + typeName + " " + pitem.Ordinal.ToString() + "}.";
|
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)
|
if (pitem == null)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sret.ToString().Trim(" .)".ToCharArray());
|
return sret.ToString().Trim(" .)".ToCharArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetHeader(VE_Font myFont, string myText)
|
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
|
_MyPrevious = null; // Reset list so that the next line gets a new list
|
||||||
if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value
|
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
|
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for old value
|
||||||
_ContentID = tmp.ContentID; // Update the value
|
_ContentID = tmp.ContentID; // Update the value
|
||||||
//}
|
//}
|
||||||
_MyContent = null; // Reset list so that the next line gets a new list
|
_MyContent = null; // Reset list so that the next line gets a new list
|
||||||
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for new value
|
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for new value
|
||||||
_DTS = tmp.DTS;
|
_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)
|
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
|
// 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
|
// Added Optional Parameter "bool isAutomatic = false" to disable the RofstLoadingStatus pop-up screen when printing baselines
|
||||||
|
|
||||||
if (itemInfo == null) return;
|
if (itemInfo == null) return;
|
||||||
itemInfo.LoadAllAtOnce = true;
|
itemInfo.LoadAllAtOnce = true;
|
||||||
itemInfo.ActiveParent = itemParent;
|
itemInfo.ActiveParent = itemParent;
|
||||||
@@ -722,7 +721,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The following method is used only in print because the 'printed' data is loaded into
|
/// 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).
|
/// 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;
|
bool forceConvertToText = false;
|
||||||
TranCheckCount++;
|
TranCheckCount++;
|
||||||
|
|
||||||
if (!forceConvertToText)
|
if (!forceConvertToText)
|
||||||
{
|
{
|
||||||
if (traninfo.MyItemToID.ActiveSection != null)
|
if (traninfo.MyItemToID.ActiveSection != null)
|
||||||
@@ -803,7 +802,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
content.FixTransitionText(traninfo, true);
|
content.FixTransitionText(traninfo, true);
|
||||||
content.Save();
|
content.Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// B2025-020 Null Reference fix. Added check for valid index into the TransitionTypeList
|
// B2025-020 Null Reference fix. Added check for valid index into the TransitionTypeList
|
||||||
if (!forceConvertToText)
|
if (!forceConvertToText)
|
||||||
@@ -813,7 +812,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
forceConvertToText = true;
|
forceConvertToText = true;
|
||||||
TranFixCount++;
|
TranFixCount++;
|
||||||
itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition type is not available");
|
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.FixTransitionText(traninfo, true);
|
||||||
content.Save();
|
content.Save();
|
||||||
@@ -836,14 +835,14 @@ namespace VEPROMS.CSLA.Library
|
|||||||
content.FixTransitionText(traninfo, true);
|
content.FixTransitionText(traninfo, true);
|
||||||
content.Save();
|
content.Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!forceConvertToText)
|
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
|
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"))
|
if (itemInfo.MyContent.Text.Contains("Link:Transition"))
|
||||||
{
|
{
|
||||||
Content content = Content.Get(itemInfo.MyContent.ContentID);
|
Content content = Content.Get(itemInfo.MyContent.ContentID);
|
||||||
|
|
||||||
if (itemInfo.MyContent.ContentTransitions != null)
|
if (itemInfo.MyContent.ContentTransitions != null)
|
||||||
{
|
{
|
||||||
foreach (TransitionInfo ct in itemInfo.MyContent.ContentTransitions)
|
foreach (TransitionInfo ct in itemInfo.MyContent.ContentTransitions)
|
||||||
@@ -914,7 +913,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
|
|
||||||
itemInfo.MyContent.RefreshContentTransitions();
|
itemInfo.MyContent.RefreshContentTransitions();
|
||||||
|
|
||||||
while (content.Text.Contains("Link:Transition"))
|
while (content.Text.Contains("Link:Transition"))
|
||||||
{
|
{
|
||||||
TranCheckCount++;
|
TranCheckCount++;
|
||||||
@@ -932,7 +931,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
else // B2018-043 Eliminate infinite loop for invalid transition structure
|
else // B2018-043 Eliminate infinite loop for invalid transition structure
|
||||||
{
|
{
|
||||||
// Add annotation for Invalid Transition
|
// Add annotation for Invalid Transition
|
||||||
AddInvalidTransitionAnnotation(itemInfo,"Invalid Transition Format");
|
AddInvalidTransitionAnnotation(itemInfo, "Invalid Transition Format");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -985,16 +984,16 @@ namespace VEPROMS.CSLA.Library
|
|||||||
ContentInfo myContent = itemInfo.MyContent;
|
ContentInfo myContent = itemInfo.MyContent;
|
||||||
string txt = myContent.Text;
|
string txt = myContent.Text;
|
||||||
string regDelete = @"(\\v |)\<START\]\#Link\:Transition(|Range)\:[0-9]+ [0-9]+ [0-9]+(| [0-9]+)\[END\>(\\v0 |)";
|
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;
|
txt = txt2;
|
||||||
txt2 = Regex.Replace(txt, regDelete, "");
|
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.Text = txt2;
|
||||||
tmp.Save();
|
tmp.Save();
|
||||||
@@ -1002,7 +1001,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
AddInvalidTransitionAnnotation(itemInfo, "Removed Empty Transition Text");
|
AddInvalidTransitionAnnotation(itemInfo, "Removed Empty Transition Text");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsTransitionToNonEditable(TransitionInfo ti)
|
private static bool IsTransitionToNonEditable(TransitionInfo ti)
|
||||||
{
|
{
|
||||||
foreach (TransitionInfo til in TransitionsToNonEditable)
|
foreach (TransitionInfo til in TransitionsToNonEditable)
|
||||||
@@ -1033,7 +1032,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
public static int ROCheckCount = 0;
|
public static int ROCheckCount = 0;
|
||||||
public static int ROFixCount = 0;
|
public static int ROFixCount = 0;
|
||||||
private static AnnotationType _VolianCommentType = null; // Using this to flag ro value issues with byron to braidwood
|
private static AnnotationType _VolianCommentType = null; // Using this to flag ro value issues with byron to braidwood
|
||||||
|
|
||||||
public static AnnotationType VolianCommentType
|
public static AnnotationType VolianCommentType
|
||||||
{
|
{
|
||||||
get
|
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);
|
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);
|
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
|
||||||
|
|
||||||
this.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, this);
|
this.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, this);
|
||||||
string newText = this.MyContent.Text;
|
string newText = this.MyContent.Text;
|
||||||
|
|
||||||
@@ -1264,7 +1263,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetCombinedTab(ItemInfo itemInfo, string parTab)
|
public static string GetCombinedTab(ItemInfo itemInfo, string parTab)
|
||||||
{
|
{
|
||||||
string pTab = parTab == null ? "" : 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 -
|
// 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)
|
// 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
|
// // 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 (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
|
// 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)
|
// 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() + ".";
|
if (ms && mn) pTab = pTab.TrimEnd() + ".";
|
||||||
// remove ending '.' (if this is a hls, don't remove the '.')
|
// 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.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();
|
return pTab + thisTab.Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1342,8 +1341,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// B2023-037: loading print text, resolve the RO symbols
|
// B2023-037: loading print text, resolve the RO symbols
|
||||||
|
|
||||||
bool GTLT = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
|
bool GTLT = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
|
||||||
bool GLTArrows = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
|
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);
|
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);
|
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
|
||||||
itemInfo.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, itemInfo);
|
itemInfo.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, itemInfo);
|
||||||
}
|
}
|
||||||
@@ -1368,7 +1367,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemInfo.MyContent.ContentTransitionCount > 0)
|
if (itemInfo.MyContent.ContentTransitionCount > 0)
|
||||||
{
|
{
|
||||||
foreach (TransitionInfo traninfo in itemInfo.MyContent.ContentTransitions)
|
foreach (TransitionInfo traninfo in itemInfo.MyContent.ContentTransitions)
|
||||||
@@ -1441,14 +1440,14 @@ namespace VEPROMS.CSLA.Library
|
|||||||
private float _MSWordPageCount = 0;
|
private float _MSWordPageCount = 0;
|
||||||
public float MSWordPageCount
|
public float MSWordPageCount
|
||||||
{
|
{
|
||||||
get {
|
get {
|
||||||
if (_MSWordPageCount == 0) // C2018-011 Get the proper word page count from the saved pdf attachment
|
if (_MSWordPageCount == 0) // C2018-011 Get the proper word page count from the saved pdf attachment
|
||||||
if (MyContent.MyEntry != null && MyContent.MyEntry.MyDocument != null)
|
if (MyContent.MyEntry != null && MyContent.MyEntry.MyDocument != null)
|
||||||
{
|
{
|
||||||
PdfInfo pi = PdfInfo.Get(this, false);
|
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; }
|
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
|
// 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,
|
// steplevel of 5, but the 2nd was a steplevel of 4). If something similar is seen with Cautions,
|
||||||
// that check could be added.
|
// 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)))
|
&& item.MyParent != null && item.MyParent.IsNote)))
|
||||||
level += firstInc;
|
level += firstInc;
|
||||||
else
|
else
|
||||||
@@ -1717,7 +1716,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
return maxRNOLevel;
|
return maxRNOLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
private bool ParentAndOr
|
private bool ParentAndOr
|
||||||
{
|
{
|
||||||
@@ -1768,7 +1767,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
RemoveEnhancedFromConfig(false);
|
RemoveEnhancedFromConfig(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveEnhancedFromConfig(bool doOneStepOnly)
|
public void RemoveEnhancedFromConfig(bool doOneStepOnly)
|
||||||
{
|
{
|
||||||
XmlDocument xd = new XmlDocument();
|
XmlDocument xd = new XmlDocument();
|
||||||
if (this.MyContent.Config == null || this.MyContent.Config == "") return; // B2017-164 & B2017-172 check for null or empty config
|
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.Config = config;
|
||||||
ctmp.Save();
|
ctmp.Save();
|
||||||
ContentInfo.Refresh(ctmp);
|
ContentInfo.Refresh(ctmp);
|
||||||
_MyConfig = null; // refresh the memory value
|
_MyConfig = null; // refresh the memory value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (doOneStepOnly) return;
|
if (doOneStepOnly) return;
|
||||||
@@ -2072,7 +2071,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
bool rval = false;
|
bool rval = false;
|
||||||
ItemInfo itm = this;
|
ItemInfo itm = this;
|
||||||
while (itm != null &&!itm.IsHigh && !rval)
|
while (itm != null && !itm.IsHigh && !rval)
|
||||||
{
|
{
|
||||||
rval = itm.IsCautionOrNotePart;
|
rval = itm.IsCautionOrNotePart;
|
||||||
if (!rval) itm = itm.MyParent;
|
if (!rval) itm = itm.MyParent;
|
||||||
@@ -2112,6 +2111,66 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return (sd.Type == type);
|
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
|
// determine if the the current step should automatically be placed on the Continuous Action Summary
|
||||||
// Note, this logic only checks the format setting of the step. We will check the value of the Tag's Check Box later on.
|
// Note, this logic only checks the format setting of the step. We will check the value of the Tag's Check Box later on.
|
||||||
public bool IncludeOnContActSum
|
public bool IncludeOnContActSum
|
||||||
@@ -4655,43 +4714,50 @@ namespace VEPROMS.CSLA.Library
|
|||||||
int localPrintLevel = PrintLevel;
|
int localPrintLevel = PrintLevel;
|
||||||
StepSectionData sd = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData;
|
StepSectionData sd = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData;
|
||||||
bool doMeta = false;
|
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
|
if (ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections)
|
||||||
&& !MyDocStyle.CancelSectTitle
|
{
|
||||||
&& !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel))
|
if (sd.StepSectionLayoutData.ShowSectionTitles
|
||||||
localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential)) ? 0 : CurrentSectionLevel());
|
&& !MyDocStyle.CancelSectTitle
|
||||||
if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true;
|
&& !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel))
|
||||||
}
|
localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential)) ? 0 : CurrentSectionLevel());
|
||||||
if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel)
|
if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true;
|
||||||
if (SectionLevel() > 1)
|
}
|
||||||
|
if (ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel && (SectionLevel() > 1))
|
||||||
localPrintLevel += 1;
|
localPrintLevel += 1;
|
||||||
|
}
|
||||||
|
|
||||||
SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList;
|
SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList;
|
||||||
|
|
||||||
// Start with basic cases of alpha/numeric/seq:
|
// Start with basic cases of alpha/numeric/seq:
|
||||||
// If we have metasections AND...
|
// If we have metasections AND...
|
||||||
// If the seqtabs for this given level does not get a section number, use the seqtab rather than
|
// If the seqtabs for this given level does not get a section number, use the seqtab rather than
|
||||||
// the ident of the step:
|
// the ident of the step:
|
||||||
bool useSubStepTabs = false;
|
bool useSubStepTabs = false;
|
||||||
if (doMeta && IsHigh
|
if (doMeta) // C2025-036 reduce un-needed processing
|
||||||
&& !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 immediate parent is note, caution or equip, use numeric, otherwise use alpha.
|
if (IsHigh
|
||||||
localPrintLevel = 0;
|
&& !seqtabs[(localPrintLevel < 0 ? 0 : localPrintLevel) % seqtabs.MaxIndex].TabToken.Contains("{numericWpar}")
|
||||||
int lv = 0;
|
&& tbformat.Contains("{")) useSubStepTabs = true;
|
||||||
ItemInfo ii = MyParent;
|
|
||||||
while (!ii.IsCaution && !ii.IsNote && !ii.IsEquipmentList)
|
// 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++;
|
// if immediate parent is note, caution or equip, use numeric, otherwise use alpha.
|
||||||
ii = ii.MyParent;
|
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 trimTabStart = false;
|
||||||
bool dontTrimParentTabBeforeAppending = false; // B2019-011 for Barakah Alarm format
|
bool dontTrimParentTabBeforeAppending = false; // B2019-011 for Barakah Alarm format
|
||||||
@@ -4757,7 +4823,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
PrintLevel = 0;
|
PrintLevel = 0;
|
||||||
|
|
||||||
// If token includes 'Wpar', the parent tab prefix's the tab.
|
// 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;
|
string parentTab = null;
|
||||||
ItemInfo myparent = ActiveParent as ItemInfo;
|
ItemInfo myparent = ActiveParent as ItemInfo;
|
||||||
@@ -4872,18 +4938,21 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
string alpha = useLinked?LinkedTab.Trim():AlphabeticalNumbering(ordinal);
|
string alpha = useLinked?LinkedTab.Trim():AlphabeticalNumbering(ordinal);
|
||||||
if (trimSeqValue) alpha = alpha.Trim(); // F2024-043 trim white around SEQ tab value (for sub-steps)
|
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 (tbformat.ToUpper().Contains("{ALPHA")) // C2025-036 reduce un-needed processing
|
||||||
if (_ActiveFormat.Name =="BGESAM1" &&MyParent != null && MyParent.IsHigh && MyParent.IsStep && MyParent.FormatStepData.TabData.IdentEdit.Contains("ROMAN"))
|
{
|
||||||
tbformat = tbformat.Replace("{alpha}", alpha);
|
// B2017-211 Roman High Level steps should be followed by Uppercase alpha substeps - This is being limited to Calvert SAMG Format
|
||||||
else
|
if (_ActiveFormat.Name == "BGESAM1" && MyParent != null && MyParent.IsHigh && MyParent.IsStep && MyParent.FormatStepData.TabData.IdentEdit.Contains("ROMAN"))
|
||||||
tbformat = tbformat.Replace("{alpha}", alpha.ToLower());
|
tbformat = tbformat.Replace("{alpha}", alpha);
|
||||||
tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower());
|
else
|
||||||
if (ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && tbformat.Contains("{ALPHA}") && alpha.Length > 1)
|
tbformat = tbformat.Replace("{alpha}", alpha.ToLower());
|
||||||
tbformat = tbformat.Replace("{ALPHA}. ", alpha + "."); // if double chars, remove one of the space for BGE
|
tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower());
|
||||||
else
|
if (ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && tbformat.Contains("{ALPHA}") && alpha.Length > 1)
|
||||||
tbformat = tbformat.Replace("{ALPHA}", alpha);
|
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"))
|
if (tbformat.ToUpper().Contains("ROMAN"))
|
||||||
{
|
{
|
||||||
string roman = RomanNumbering(ordinal);
|
string roman = RomanNumbering(ordinal);
|
||||||
@@ -4891,15 +4960,18 @@ namespace VEPROMS.CSLA.Library
|
|||||||
tbformat = tbformat.Replace("{ROMAN}", roman);
|
tbformat = tbformat.Replace("{ROMAN}", roman);
|
||||||
tbformat = tbformat.Substring(0, tbformat.Length - ((roman.Length - 1) > 0 ? (roman.Length - 1) : 0));
|
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");
|
if (((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002)
|
||||||
tbformat = tbformat.Substring(0, tbformat.Length - 2);
|
{
|
||||||
}
|
tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0");
|
||||||
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)
|
tbformat = tbformat.Substring(0, tbformat.Length - 2);
|
||||||
{
|
}
|
||||||
string numtxt = ordinal.ToString().PadLeft(2) + ".0";
|
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)
|
||||||
tbformat = tbformat.Replace("{numeric}.", numtxt).Replace("{numeric}", numtxt);
|
{
|
||||||
|
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,
|
// if this is a wolf creek background, if the tbformat ends with a '.' don't add a space,
|
||||||
// otherwise add a space.
|
// otherwise add a space.
|
||||||
@@ -6097,9 +6169,10 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
private bool IsLowestLevelStep
|
private bool IsLowestLevelStep
|
||||||
{
|
{
|
||||||
|
//F2025-015 added check for IsInCautionOrNote for sub-step inside Notes and Cautions
|
||||||
get
|
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()
|
private bool RNOsHighHasCheckOff()
|
||||||
|
443
PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs
Normal file
443
PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs
Normal 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
|
||||||
|
}
|
||||||
|
|
@@ -192,6 +192,18 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
return (retlist);
|
return (retlist);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
// EPFormatFiles contains which Electronic Procedure Format files apply to this main format file.
|
||||||
|
private EPFormatFiles _EPFormatFiles;
|
||||||
|
public EPFormatFiles EPFormatFiles
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_EPFormatFiles == null) _EPFormatFiles = new EPFormatFiles(XmlDoc.SelectNodes("/PlantFormat/EPFormatFiles/EPFormatFile"));
|
||||||
|
return _EPFormatFiles;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region VE_Font
|
#region VE_Font
|
||||||
|
@@ -57,6 +57,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
XmlNode xn = xmlNode.SelectSingleNode(path);
|
XmlNode xn = xmlNode.SelectSingleNode(path);
|
||||||
if (xmlNode.Name == "Box") return xn; // if box, don't do inheritance.
|
if (xmlNode.Name == "Box") return xn; // if box, don't do inheritance.
|
||||||
if (xmlNode.Name == "DocStyle") return xn;
|
if (xmlNode.Name == "DocStyle") return xn;
|
||||||
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
if (xmlNode.Name == "EPField") return xn; // if Electronic Procedure Field, don't do inheritance.
|
||||||
if (xmlNode.Name == "StructureStyle")
|
if (xmlNode.Name == "StructureStyle")
|
||||||
{
|
{
|
||||||
Volian.Base.Library.DebugText.WriteLine("vlnFormatDocument:LookupSingleNode:StructureStyle - shouldn't get to this line of code.\r\nPath = {0}", path);
|
Volian.Base.Library.DebugText.WriteLine("vlnFormatDocument:LookupSingleNode:StructureStyle - shouldn't get to this line of code.\r\nPath = {0}", path);
|
||||||
|
@@ -18,6 +18,8 @@ using System.IO;
|
|||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Csla.Validation;
|
using Csla.Validation;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace VEPROMS.CSLA.Library
|
namespace VEPROMS.CSLA.Library
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -207,6 +209,27 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
// Is Annotation Type an EP Annotation?
|
||||||
|
private bool _IsEPAnnotationType = false;
|
||||||
|
public bool IsEPAnnotationType
|
||||||
|
{
|
||||||
|
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _IsEPAnnotationType;
|
||||||
|
}
|
||||||
|
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_IsEPAnnotationType != value)
|
||||||
|
{
|
||||||
|
_IsEPAnnotationType = value;
|
||||||
|
PropertyHasChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
private byte[] _LastChanged = new byte[8];//timestamp
|
private byte[] _LastChanged = new byte[8];//timestamp
|
||||||
private int _AnnotationTypeAnnotationCount = 0;
|
private int _AnnotationTypeAnnotationCount = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -712,6 +735,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
_UserID = dr.GetString("UserID");
|
_UserID = dr.GetString("UserID");
|
||||||
dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8);
|
dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8);
|
||||||
_AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount");
|
_AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount");
|
||||||
|
if (dr.GetSchemaTable().Rows.OfType<DataRow>().Any(row => row["ColumnName"].ToString() == "IsEPAnnotationType"))
|
||||||
|
_IsEPAnnotationType = (bool)dr.GetValue("IsEPAnnotationType");
|
||||||
MarkOld();
|
MarkOld();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@@ -17,6 +17,8 @@ using System.Configuration;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace VEPROMS.CSLA.Library
|
namespace VEPROMS.CSLA.Library
|
||||||
{
|
{
|
||||||
public delegate void AnnotationTypeInfoEvent(object sender);
|
public delegate void AnnotationTypeInfoEvent(object sender);
|
||||||
@@ -135,6 +137,19 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return _UserID;
|
return _UserID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
// Is Annotation Type an EP Annotation?
|
||||||
|
private bool _IsEPAnnotationType = false;
|
||||||
|
public bool IsEPAnnotationType
|
||||||
|
{
|
||||||
|
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _IsEPAnnotationType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private int _AnnotationTypeAnnotationCount = 0;
|
private int _AnnotationTypeAnnotationCount = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Count of AnnotationTypeAnnotations for this AnnotationType
|
/// Count of AnnotationTypeAnnotations for this AnnotationType
|
||||||
@@ -312,6 +327,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
_DTS = dr.GetDateTime("DTS");
|
_DTS = dr.GetDateTime("DTS");
|
||||||
_UserID = dr.GetString("UserID");
|
_UserID = dr.GetString("UserID");
|
||||||
_AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount");
|
_AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount");
|
||||||
|
if (dr.GetSchemaTable().Rows.OfType<DataRow>().Any(row => row["ColumnName"].ToString() == "IsEPAnnotationType"))
|
||||||
|
_IsEPAnnotationType = (bool)dr.GetValue("IsEPAnnotationType");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@@ -98,6 +98,7 @@
|
|||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.configuration" />
|
<Reference Include="System.configuration" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="System.Design" />
|
<Reference Include="System.Design" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
@@ -107,6 +108,7 @@
|
|||||||
<Compile Include="..\VEPROMS User Interface\Properties\Settings.Designer.cs">
|
<Compile Include="..\VEPROMS User Interface\Properties\Settings.Designer.cs">
|
||||||
<Link>Properties\Settings.Designer.cs</Link>
|
<Link>Properties\Settings.Designer.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Config\AnnotationConfig.cs" />
|
||||||
<Compile Include="Config\AnnotationTypeConfig.cs" />
|
<Compile Include="Config\AnnotationTypeConfig.cs" />
|
||||||
<Compile Include="Config\AssocConfig.cs" />
|
<Compile Include="Config\AssocConfig.cs" />
|
||||||
<Compile Include="Config\ColorConfig.cs" />
|
<Compile Include="Config\ColorConfig.cs" />
|
||||||
@@ -164,6 +166,7 @@
|
|||||||
<Compile Include="Format\Comparator.cs" />
|
<Compile Include="Format\Comparator.cs" />
|
||||||
<Compile Include="Format\DocStyles.cs" />
|
<Compile Include="Format\DocStyles.cs" />
|
||||||
<Compile Include="Format\ENums.cs" />
|
<Compile Include="Format\ENums.cs" />
|
||||||
|
<Compile Include="Format\EPFormatFile.cs" />
|
||||||
<Compile Include="Format\PageStyles.cs" />
|
<Compile Include="Format\PageStyles.cs" />
|
||||||
<Compile Include="Format\PlantFormat.cs" />
|
<Compile Include="Format\PlantFormat.cs" />
|
||||||
<Compile Include="Format\vlnFormat.cs" />
|
<Compile Include="Format\vlnFormat.cs" />
|
||||||
|
@@ -28,326 +28,341 @@ namespace Volian.Controls.Library
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
this.components = new System.ComponentModel.Container();
|
||||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
|
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
|
||||||
this.rtxbComment = new System.Windows.Forms.RichTextBox();
|
this.rtxbComment = new System.Windows.Forms.RichTextBox();
|
||||||
this.btnSaveAnnotation = new DevComponents.DotNetBar.ButtonX();
|
this.btnSaveAnnotation = new DevComponents.DotNetBar.ButtonX();
|
||||||
this.btnCancelAnnoation = new DevComponents.DotNetBar.ButtonX();
|
this.btnCancelAnnoation = new DevComponents.DotNetBar.ButtonX();
|
||||||
this.cbGridAnnoType = new DevComponents.DotNetBar.Controls.ComboBoxEx();
|
this.cbGridAnnoType = new DevComponents.DotNetBar.Controls.ComboBoxEx();
|
||||||
this.btnRemoveAnnotation = new DevComponents.DotNetBar.ButtonX();
|
this.btnRemoveAnnotation = new DevComponents.DotNetBar.ButtonX();
|
||||||
this.btnAddAnnotation = new DevComponents.DotNetBar.ButtonX();
|
this.btnAddAnnotation = new DevComponents.DotNetBar.ButtonX();
|
||||||
this.pannelAnnoEdit = new DevComponents.DotNetBar.PanelEx();
|
this.btnEPAnnotation = new DevComponents.DotNetBar.ButtonX();
|
||||||
this.labelX1 = new DevComponents.DotNetBar.LabelX();
|
this.pannelAnnoEdit = new DevComponents.DotNetBar.PanelEx();
|
||||||
this.panelAnnoEditBtns = new DevComponents.DotNetBar.PanelEx();
|
this.labelX1 = new DevComponents.DotNetBar.LabelX();
|
||||||
this.expandableSplitter4 = new DevComponents.DotNetBar.ExpandableSplitter();
|
this.panelAnnoEditBtns = new DevComponents.DotNetBar.PanelEx();
|
||||||
this.pannelAnnoGrid = new DevComponents.DotNetBar.PanelEx();
|
this.expandableSplitter4 = new DevComponents.DotNetBar.ExpandableSplitter();
|
||||||
this.dgAnnotations = new DevComponents.DotNetBar.Controls.DataGridViewX();
|
this.pannelAnnoGrid = new DevComponents.DotNetBar.PanelEx();
|
||||||
this.myAnnotationTypeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
this.dgAnnotations = new DevComponents.DotNetBar.Controls.DataGridViewX();
|
||||||
this.dTSDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
this.myAnnotationTypeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||||
this.userIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
this.dTSDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||||
this.searchTextDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
this.userIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||||
this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components);
|
this.searchTextDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||||
this.pannelAnnoEdit.SuspendLayout();
|
this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components);
|
||||||
this.panelAnnoEditBtns.SuspendLayout();
|
this.pannelAnnoEdit.SuspendLayout();
|
||||||
this.pannelAnnoGrid.SuspendLayout();
|
this.panelAnnoEditBtns.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).BeginInit();
|
this.pannelAnnoGrid.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).BeginInit();
|
||||||
this.SuspendLayout();
|
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit();
|
||||||
//
|
this.SuspendLayout();
|
||||||
// superTooltip1
|
//
|
||||||
//
|
// superTooltip1
|
||||||
this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
|
//
|
||||||
this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
|
this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
|
||||||
//
|
this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
|
||||||
// rtxbComment
|
//
|
||||||
//
|
// rtxbComment
|
||||||
this.rtxbComment.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
//
|
||||||
|
this.rtxbComment.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.rtxbComment.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
|
this.rtxbComment.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
|
||||||
this.rtxbComment.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.rtxbComment.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.rtxbComment.Location = new System.Drawing.Point(87, 33);
|
this.rtxbComment.Location = new System.Drawing.Point(65, 27);
|
||||||
this.rtxbComment.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.rtxbComment.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.rtxbComment.Name = "rtxbComment";
|
this.rtxbComment.Name = "rtxbComment";
|
||||||
this.rtxbComment.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
this.rtxbComment.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||||
this.rtxbComment.Size = new System.Drawing.Size(489, 291);
|
this.rtxbComment.Size = new System.Drawing.Size(368, 237);
|
||||||
this.superTooltip1.SetSuperTooltip(this.rtxbComment, new DevComponents.DotNetBar.SuperTooltipInfo("Annotation", "", "Enter the annotation information here.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(this.rtxbComment, new DevComponents.DotNetBar.SuperTooltipInfo("Annotation", "", "Enter the annotation information here.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||||
this.rtxbComment.TabIndex = 1;
|
this.rtxbComment.TabIndex = 1;
|
||||||
this.rtxbComment.Text = "";
|
this.rtxbComment.Text = "";
|
||||||
this.rtxbComment.TextChanged += new System.EventHandler(this.rtxbComment_TextChanged);
|
this.rtxbComment.TextChanged += new System.EventHandler(this.rtxbComment_TextChanged);
|
||||||
//
|
//
|
||||||
// btnSaveAnnotation
|
// btnSaveAnnotation
|
||||||
//
|
//
|
||||||
this.btnSaveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
this.btnSaveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||||
this.btnSaveAnnotation.Enabled = false;
|
this.btnSaveAnnotation.Enabled = false;
|
||||||
this.btnSaveAnnotation.Location = new System.Drawing.Point(491, 4);
|
this.btnSaveAnnotation.Location = new System.Drawing.Point(368, 3);
|
||||||
this.btnSaveAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.btnSaveAnnotation.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.btnSaveAnnotation.Name = "btnSaveAnnotation";
|
this.btnSaveAnnotation.Name = "btnSaveAnnotation";
|
||||||
this.btnSaveAnnotation.Size = new System.Drawing.Size(71, 25);
|
this.btnSaveAnnotation.Size = new System.Drawing.Size(53, 20);
|
||||||
this.superTooltip1.SetSuperTooltip(this.btnSaveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Save Changes", "", "This will save the new annotation or changes made to an existing annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(this.btnSaveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Save Changes", "", "This will save the new annotation or changes made to an existing annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||||
this.btnSaveAnnotation.TabIndex = 9;
|
this.btnSaveAnnotation.TabIndex = 9;
|
||||||
this.btnSaveAnnotation.Text = "Save";
|
this.btnSaveAnnotation.Text = "Save";
|
||||||
this.btnSaveAnnotation.Click += new System.EventHandler(this.btnSaveAnnotation_Click);
|
this.btnSaveAnnotation.Click += new System.EventHandler(this.btnSaveAnnotation_Click);
|
||||||
//
|
//
|
||||||
// btnCancelAnnoation
|
// btnCancelAnnoation
|
||||||
//
|
//
|
||||||
this.btnCancelAnnoation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
this.btnCancelAnnoation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||||
this.btnCancelAnnoation.Enabled = false;
|
this.btnCancelAnnoation.Enabled = false;
|
||||||
this.btnCancelAnnoation.Location = new System.Drawing.Point(401, 4);
|
this.btnCancelAnnoation.Location = new System.Drawing.Point(301, 3);
|
||||||
this.btnCancelAnnoation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.btnCancelAnnoation.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.btnCancelAnnoation.Name = "btnCancelAnnoation";
|
this.btnCancelAnnoation.Name = "btnCancelAnnoation";
|
||||||
this.btnCancelAnnoation.Size = new System.Drawing.Size(69, 25);
|
this.btnCancelAnnoation.Size = new System.Drawing.Size(52, 20);
|
||||||
this.superTooltip1.SetSuperTooltip(this.btnCancelAnnoation, new DevComponents.DotNetBar.SuperTooltipInfo("Cancel", "", "This will cancel the changes made to the annotation text and type selection", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(145, 100)));
|
this.superTooltip1.SetSuperTooltip(this.btnCancelAnnoation, new DevComponents.DotNetBar.SuperTooltipInfo("Cancel", "", "This will cancel the changes made to the annotation text and type selection", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(145, 100)));
|
||||||
this.btnCancelAnnoation.TabIndex = 8;
|
this.btnCancelAnnoation.TabIndex = 8;
|
||||||
this.btnCancelAnnoation.Text = "Cancel";
|
this.btnCancelAnnoation.Text = "Cancel";
|
||||||
this.btnCancelAnnoation.Click += new System.EventHandler(this.btnCancelAnnoation_Click);
|
this.btnCancelAnnoation.Click += new System.EventHandler(this.btnCancelAnnoation_Click);
|
||||||
//
|
//
|
||||||
// cbGridAnnoType
|
// cbGridAnnoType
|
||||||
//
|
//
|
||||||
this.cbGridAnnoType.DisplayMember = "Text";
|
this.cbGridAnnoType.DisplayMember = "Text";
|
||||||
this.cbGridAnnoType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
this.cbGridAnnoType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||||
this.cbGridAnnoType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cbGridAnnoType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cbGridAnnoType.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
|
this.cbGridAnnoType.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
|
||||||
this.cbGridAnnoType.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.cbGridAnnoType.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.cbGridAnnoType.ForeColor = System.Drawing.SystemColors.WindowText;
|
this.cbGridAnnoType.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||||
this.cbGridAnnoType.ItemHeight = 17;
|
this.cbGridAnnoType.ItemHeight = 17;
|
||||||
this.cbGridAnnoType.Location = new System.Drawing.Point(133, 4);
|
this.cbGridAnnoType.Location = new System.Drawing.Point(100, 3);
|
||||||
this.cbGridAnnoType.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.cbGridAnnoType.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.cbGridAnnoType.Name = "cbGridAnnoType";
|
this.cbGridAnnoType.Name = "cbGridAnnoType";
|
||||||
this.cbGridAnnoType.PreventEnterBeep = true;
|
this.cbGridAnnoType.PreventEnterBeep = true;
|
||||||
this.cbGridAnnoType.Size = new System.Drawing.Size(244, 23);
|
this.cbGridAnnoType.Size = new System.Drawing.Size(184, 23);
|
||||||
this.superTooltip1.SetSuperTooltip(this.cbGridAnnoType, new DevComponents.DotNetBar.SuperTooltipInfo("Select Annotation Type", "", "This drop down list contains the possible annotation types.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(this.cbGridAnnoType, new DevComponents.DotNetBar.SuperTooltipInfo("Select Annotation Type", "", "This drop down list contains the possible annotation types.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||||
this.cbGridAnnoType.TabIndex = 7;
|
this.cbGridAnnoType.TabIndex = 7;
|
||||||
this.cbGridAnnoType.WatermarkBehavior = DevComponents.DotNetBar.eWatermarkBehavior.HideNonEmpty;
|
this.cbGridAnnoType.WatermarkBehavior = DevComponents.DotNetBar.eWatermarkBehavior.HideNonEmpty;
|
||||||
this.cbGridAnnoType.WatermarkText = "Select Annotation Type";
|
this.cbGridAnnoType.WatermarkText = "Select Annotation Type";
|
||||||
this.cbGridAnnoType.SelectedValueChanged += new System.EventHandler(this.cbGridAnnoType_SelectedValueChanged);
|
this.cbGridAnnoType.SelectedValueChanged += new System.EventHandler(this.cbGridAnnoType_SelectedValueChanged);
|
||||||
//
|
//
|
||||||
// btnRemoveAnnotation
|
// btnRemoveAnnotation
|
||||||
//
|
//
|
||||||
this.btnRemoveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
this.btnRemoveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||||
this.btnRemoveAnnotation.Location = new System.Drawing.Point(5, 34);
|
this.btnRemoveAnnotation.Location = new System.Drawing.Point(4, 28);
|
||||||
this.btnRemoveAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.btnRemoveAnnotation.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.btnRemoveAnnotation.Name = "btnRemoveAnnotation";
|
this.btnRemoveAnnotation.Name = "btnRemoveAnnotation";
|
||||||
this.btnRemoveAnnotation.Size = new System.Drawing.Size(71, 25);
|
this.btnRemoveAnnotation.Size = new System.Drawing.Size(53, 20);
|
||||||
this.superTooltip1.SetSuperTooltip(this.btnRemoveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(this.btnRemoveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||||
this.btnRemoveAnnotation.TabIndex = 4;
|
this.btnRemoveAnnotation.TabIndex = 4;
|
||||||
this.btnRemoveAnnotation.Text = "Remove";
|
this.btnRemoveAnnotation.Text = "Remove";
|
||||||
this.btnRemoveAnnotation.Click += new System.EventHandler(this.btnRemoveAnnotation_Click);
|
this.btnRemoveAnnotation.Click += new System.EventHandler(this.btnRemoveAnnotation_Click);
|
||||||
//
|
//
|
||||||
// btnAddAnnotation
|
// btnAddAnnotation
|
||||||
//
|
//
|
||||||
this.btnAddAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
this.btnAddAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||||
this.btnAddAnnotation.Location = new System.Drawing.Point(5, 4);
|
this.btnAddAnnotation.Location = new System.Drawing.Point(4, 3);
|
||||||
this.btnAddAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.btnAddAnnotation.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.btnAddAnnotation.Name = "btnAddAnnotation";
|
this.btnAddAnnotation.Name = "btnAddAnnotation";
|
||||||
this.btnAddAnnotation.Size = new System.Drawing.Size(71, 25);
|
this.btnAddAnnotation.Size = new System.Drawing.Size(53, 20);
|
||||||
this.superTooltip1.SetSuperTooltip(this.btnAddAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Add New Annotation", "", "This button will create a new annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(this.btnAddAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Add New Annotation", "", "This button will create a new annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||||
this.btnAddAnnotation.TabIndex = 3;
|
this.btnAddAnnotation.TabIndex = 3;
|
||||||
this.btnAddAnnotation.Text = "Add";
|
this.btnAddAnnotation.Text = "Add";
|
||||||
this.btnAddAnnotation.Click += new System.EventHandler(this.btnAddAnnotation_Click);
|
this.btnAddAnnotation.Click += new System.EventHandler(this.btnAddAnnotation_Click);
|
||||||
//
|
//
|
||||||
// pannelAnnoEdit
|
// btnEPAnnotation
|
||||||
//
|
//
|
||||||
this.pannelAnnoEdit.CanvasColor = System.Drawing.SystemColors.Control;
|
this.btnEPAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||||
this.pannelAnnoEdit.Controls.Add(this.rtxbComment);
|
this.btnEPAnnotation.Location = new System.Drawing.Point(4, 52);
|
||||||
this.pannelAnnoEdit.Controls.Add(this.btnSaveAnnotation);
|
this.btnEPAnnotation.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.pannelAnnoEdit.Controls.Add(this.btnCancelAnnoation);
|
this.btnEPAnnotation.Name = "btnEPAnnotation";
|
||||||
this.pannelAnnoEdit.Controls.Add(this.labelX1);
|
this.btnEPAnnotation.Size = new System.Drawing.Size(53, 20);
|
||||||
this.pannelAnnoEdit.Controls.Add(this.cbGridAnnoType);
|
this.superTooltip1.SetSuperTooltip(this.btnEPAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Open Annotation", "", "This will open Electronic Procedure Details for this Annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||||
this.pannelAnnoEdit.Controls.Add(this.panelAnnoEditBtns);
|
this.btnEPAnnotation.TabIndex = 5;
|
||||||
this.pannelAnnoEdit.DisabledBackColor = System.Drawing.Color.Empty;
|
this.btnEPAnnotation.Text = "Open";
|
||||||
this.pannelAnnoEdit.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.btnEPAnnotation.Visible = false;
|
||||||
this.pannelAnnoEdit.Location = new System.Drawing.Point(548, 0);
|
this.btnEPAnnotation.Click += new System.EventHandler(this.btnEPAnnotation_Click);
|
||||||
this.pannelAnnoEdit.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
//
|
||||||
this.pannelAnnoEdit.Name = "pannelAnnoEdit";
|
// pannelAnnoEdit
|
||||||
this.pannelAnnoEdit.Size = new System.Drawing.Size(576, 325);
|
//
|
||||||
this.pannelAnnoEdit.Style.Alignment = System.Drawing.StringAlignment.Center;
|
this.pannelAnnoEdit.CanvasColor = System.Drawing.SystemColors.Control;
|
||||||
this.pannelAnnoEdit.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
this.pannelAnnoEdit.Controls.Add(this.rtxbComment);
|
||||||
this.pannelAnnoEdit.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
|
this.pannelAnnoEdit.Controls.Add(this.btnSaveAnnotation);
|
||||||
this.pannelAnnoEdit.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
this.pannelAnnoEdit.Controls.Add(this.btnCancelAnnoation);
|
||||||
this.pannelAnnoEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
this.pannelAnnoEdit.Controls.Add(this.labelX1);
|
||||||
this.pannelAnnoEdit.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
this.pannelAnnoEdit.Controls.Add(this.cbGridAnnoType);
|
||||||
this.pannelAnnoEdit.Style.GradientAngle = 90;
|
this.pannelAnnoEdit.Controls.Add(this.panelAnnoEditBtns);
|
||||||
this.pannelAnnoEdit.TabIndex = 16;
|
this.pannelAnnoEdit.DisabledBackColor = System.Drawing.Color.Empty;
|
||||||
this.pannelAnnoEdit.Text = "panelEx2";
|
this.pannelAnnoEdit.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.pannelAnnoEdit.ThemeAware = true;
|
this.pannelAnnoEdit.Location = new System.Drawing.Point(411, 0);
|
||||||
//
|
this.pannelAnnoEdit.Margin = new System.Windows.Forms.Padding(2);
|
||||||
// labelX1
|
this.pannelAnnoEdit.Name = "pannelAnnoEdit";
|
||||||
//
|
this.pannelAnnoEdit.Size = new System.Drawing.Size(432, 264);
|
||||||
this.labelX1.AutoSize = true;
|
this.pannelAnnoEdit.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||||
//
|
this.pannelAnnoEdit.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
||||||
//
|
this.pannelAnnoEdit.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
|
||||||
//
|
this.pannelAnnoEdit.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||||
this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
this.pannelAnnoEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||||
this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.pannelAnnoEdit.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||||
this.labelX1.Location = new System.Drawing.Point(93, 7);
|
this.pannelAnnoEdit.Style.GradientAngle = 90;
|
||||||
this.labelX1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.pannelAnnoEdit.TabIndex = 16;
|
||||||
this.labelX1.Name = "labelX1";
|
this.pannelAnnoEdit.Text = "panelEx2";
|
||||||
this.labelX1.Size = new System.Drawing.Size(35, 17);
|
this.pannelAnnoEdit.ThemeAware = true;
|
||||||
this.labelX1.TabIndex = 10;
|
//
|
||||||
this.labelX1.Text = "Type:";
|
// labelX1
|
||||||
//
|
//
|
||||||
// panelAnnoEditBtns
|
this.labelX1.AutoSize = true;
|
||||||
//
|
//
|
||||||
this.panelAnnoEditBtns.CanvasColor = System.Drawing.SystemColors.Control;
|
//
|
||||||
this.panelAnnoEditBtns.Controls.Add(this.btnRemoveAnnotation);
|
//
|
||||||
this.panelAnnoEditBtns.Controls.Add(this.btnAddAnnotation);
|
this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||||
this.panelAnnoEditBtns.DisabledBackColor = System.Drawing.Color.Empty;
|
this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.panelAnnoEditBtns.Dock = System.Windows.Forms.DockStyle.Left;
|
this.labelX1.Location = new System.Drawing.Point(70, 6);
|
||||||
this.panelAnnoEditBtns.Location = new System.Drawing.Point(0, 0);
|
this.labelX1.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.panelAnnoEditBtns.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.labelX1.Name = "labelX1";
|
||||||
this.panelAnnoEditBtns.Name = "panelAnnoEditBtns";
|
this.labelX1.Size = new System.Drawing.Size(29, 14);
|
||||||
this.panelAnnoEditBtns.Size = new System.Drawing.Size(87, 325);
|
this.labelX1.TabIndex = 10;
|
||||||
this.panelAnnoEditBtns.Style.Alignment = System.Drawing.StringAlignment.Center;
|
this.labelX1.Text = "Type:";
|
||||||
this.panelAnnoEditBtns.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
//
|
||||||
this.panelAnnoEditBtns.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
|
// panelAnnoEditBtns
|
||||||
this.panelAnnoEditBtns.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
//
|
||||||
this.panelAnnoEditBtns.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
this.panelAnnoEditBtns.CanvasColor = System.Drawing.SystemColors.Control;
|
||||||
this.panelAnnoEditBtns.Style.GradientAngle = 90;
|
this.panelAnnoEditBtns.Controls.Add(this.btnEPAnnotation);
|
||||||
this.panelAnnoEditBtns.TabIndex = 11;
|
this.panelAnnoEditBtns.Controls.Add(this.btnRemoveAnnotation);
|
||||||
this.panelAnnoEditBtns.ThemeAware = true;
|
this.panelAnnoEditBtns.Controls.Add(this.btnAddAnnotation);
|
||||||
//
|
this.panelAnnoEditBtns.DisabledBackColor = System.Drawing.Color.Empty;
|
||||||
// expandableSplitter4
|
this.panelAnnoEditBtns.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
//
|
this.panelAnnoEditBtns.Location = new System.Drawing.Point(0, 0);
|
||||||
this.expandableSplitter4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
|
this.panelAnnoEditBtns.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.expandableSplitter4.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
this.panelAnnoEditBtns.Name = "panelAnnoEditBtns";
|
||||||
this.expandableSplitter4.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
this.panelAnnoEditBtns.Size = new System.Drawing.Size(65, 264);
|
||||||
this.expandableSplitter4.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
|
this.panelAnnoEditBtns.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||||
this.expandableSplitter4.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
this.panelAnnoEditBtns.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
||||||
this.expandableSplitter4.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
this.panelAnnoEditBtns.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
|
||||||
this.expandableSplitter4.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
|
this.panelAnnoEditBtns.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||||
this.expandableSplitter4.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
this.panelAnnoEditBtns.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||||
this.expandableSplitter4.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
|
this.panelAnnoEditBtns.Style.GradientAngle = 90;
|
||||||
this.expandableSplitter4.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
|
this.panelAnnoEditBtns.TabIndex = 11;
|
||||||
this.expandableSplitter4.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
|
this.panelAnnoEditBtns.ThemeAware = true;
|
||||||
this.expandableSplitter4.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61)))));
|
//
|
||||||
this.expandableSplitter4.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94)))));
|
// expandableSplitter4
|
||||||
this.expandableSplitter4.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2;
|
//
|
||||||
this.expandableSplitter4.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground;
|
this.expandableSplitter4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
|
||||||
this.expandableSplitter4.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
|
this.expandableSplitter4.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||||
this.expandableSplitter4.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
this.expandableSplitter4.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
||||||
this.expandableSplitter4.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
this.expandableSplitter4.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
|
||||||
this.expandableSplitter4.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
|
this.expandableSplitter4.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||||
this.expandableSplitter4.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
|
this.expandableSplitter4.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||||
this.expandableSplitter4.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
this.expandableSplitter4.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
|
||||||
this.expandableSplitter4.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
|
this.expandableSplitter4.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||||
this.expandableSplitter4.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
|
this.expandableSplitter4.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
|
||||||
this.expandableSplitter4.Location = new System.Drawing.Point(545, 0);
|
this.expandableSplitter4.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
|
||||||
this.expandableSplitter4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.expandableSplitter4.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
|
||||||
this.expandableSplitter4.Name = "expandableSplitter4";
|
this.expandableSplitter4.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61)))));
|
||||||
this.expandableSplitter4.Size = new System.Drawing.Size(3, 325);
|
this.expandableSplitter4.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94)))));
|
||||||
this.expandableSplitter4.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007;
|
this.expandableSplitter4.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2;
|
||||||
this.expandableSplitter4.TabIndex = 15;
|
this.expandableSplitter4.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground;
|
||||||
this.expandableSplitter4.TabStop = false;
|
this.expandableSplitter4.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
|
||||||
//
|
this.expandableSplitter4.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||||
// pannelAnnoGrid
|
this.expandableSplitter4.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||||
//
|
this.expandableSplitter4.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
|
||||||
this.pannelAnnoGrid.CanvasColor = System.Drawing.SystemColors.Control;
|
this.expandableSplitter4.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
|
||||||
this.pannelAnnoGrid.Controls.Add(this.dgAnnotations);
|
this.expandableSplitter4.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||||
this.pannelAnnoGrid.DisabledBackColor = System.Drawing.Color.Empty;
|
this.expandableSplitter4.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
|
||||||
this.pannelAnnoGrid.Dock = System.Windows.Forms.DockStyle.Left;
|
this.expandableSplitter4.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
|
||||||
this.pannelAnnoGrid.Location = new System.Drawing.Point(0, 0);
|
this.expandableSplitter4.Location = new System.Drawing.Point(409, 0);
|
||||||
this.pannelAnnoGrid.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.expandableSplitter4.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.pannelAnnoGrid.Name = "pannelAnnoGrid";
|
this.expandableSplitter4.Name = "expandableSplitter4";
|
||||||
this.pannelAnnoGrid.Size = new System.Drawing.Size(545, 325);
|
this.expandableSplitter4.Size = new System.Drawing.Size(2, 264);
|
||||||
this.pannelAnnoGrid.Style.Alignment = System.Drawing.StringAlignment.Center;
|
this.expandableSplitter4.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007;
|
||||||
this.pannelAnnoGrid.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
this.expandableSplitter4.TabIndex = 15;
|
||||||
this.pannelAnnoGrid.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
|
this.expandableSplitter4.TabStop = false;
|
||||||
this.pannelAnnoGrid.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
//
|
||||||
this.pannelAnnoGrid.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
// pannelAnnoGrid
|
||||||
this.pannelAnnoGrid.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
//
|
||||||
this.pannelAnnoGrid.Style.GradientAngle = 90;
|
this.pannelAnnoGrid.CanvasColor = System.Drawing.SystemColors.Control;
|
||||||
this.pannelAnnoGrid.TabIndex = 14;
|
this.pannelAnnoGrid.Controls.Add(this.dgAnnotations);
|
||||||
this.pannelAnnoGrid.Text = "panelEx2";
|
this.pannelAnnoGrid.DisabledBackColor = System.Drawing.Color.Empty;
|
||||||
this.pannelAnnoGrid.ThemeAware = true;
|
this.pannelAnnoGrid.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
//
|
this.pannelAnnoGrid.Location = new System.Drawing.Point(0, 0);
|
||||||
// dgAnnotations
|
this.pannelAnnoGrid.Margin = new System.Windows.Forms.Padding(2);
|
||||||
//
|
this.pannelAnnoGrid.Name = "pannelAnnoGrid";
|
||||||
this.dgAnnotations.AutoGenerateColumns = false;
|
this.pannelAnnoGrid.Size = new System.Drawing.Size(409, 264);
|
||||||
this.dgAnnotations.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
|
this.pannelAnnoGrid.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||||
this.dgAnnotations.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
|
this.pannelAnnoGrid.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
||||||
this.dgAnnotations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
this.pannelAnnoGrid.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
|
||||||
this.dgAnnotations.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
this.pannelAnnoGrid.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||||
|
this.pannelAnnoGrid.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||||
|
this.pannelAnnoGrid.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||||
|
this.pannelAnnoGrid.Style.GradientAngle = 90;
|
||||||
|
this.pannelAnnoGrid.TabIndex = 14;
|
||||||
|
this.pannelAnnoGrid.Text = "panelEx2";
|
||||||
|
this.pannelAnnoGrid.ThemeAware = true;
|
||||||
|
//
|
||||||
|
// dgAnnotations
|
||||||
|
//
|
||||||
|
this.dgAnnotations.AutoGenerateColumns = false;
|
||||||
|
this.dgAnnotations.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
|
||||||
|
this.dgAnnotations.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
|
||||||
|
this.dgAnnotations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.dgAnnotations.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||||
this.myAnnotationTypeDataGridViewTextBoxColumn,
|
this.myAnnotationTypeDataGridViewTextBoxColumn,
|
||||||
this.dTSDataGridViewTextBoxColumn,
|
this.dTSDataGridViewTextBoxColumn,
|
||||||
this.userIDDataGridViewTextBoxColumn,
|
this.userIDDataGridViewTextBoxColumn,
|
||||||
this.searchTextDataGridViewTextBoxColumn});
|
this.searchTextDataGridViewTextBoxColumn});
|
||||||
this.dgAnnotations.DataSource = this.itemAnnotationsBindingSource;
|
this.dgAnnotations.DataSource = this.itemAnnotationsBindingSource;
|
||||||
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||||
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
|
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window;
|
||||||
dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
|
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||||
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.ControlText;
|
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||||
this.dgAnnotations.DefaultCellStyle = dataGridViewCellStyle2;
|
this.dgAnnotations.DefaultCellStyle = dataGridViewCellStyle1;
|
||||||
this.dgAnnotations.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.dgAnnotations.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.dgAnnotations.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229)))));
|
this.dgAnnotations.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229)))));
|
||||||
this.dgAnnotations.HighlightSelectedColumnHeaders = false;
|
this.dgAnnotations.HighlightSelectedColumnHeaders = false;
|
||||||
this.dgAnnotations.Location = new System.Drawing.Point(0, 0);
|
this.dgAnnotations.Location = new System.Drawing.Point(0, 0);
|
||||||
this.dgAnnotations.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.dgAnnotations.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.dgAnnotations.MultiSelect = false;
|
this.dgAnnotations.MultiSelect = false;
|
||||||
this.dgAnnotations.Name = "dgAnnotations";
|
this.dgAnnotations.Name = "dgAnnotations";
|
||||||
this.dgAnnotations.RowHeadersVisible = false;
|
this.dgAnnotations.RowHeadersVisible = false;
|
||||||
this.dgAnnotations.RowTemplate.Height = 24;
|
this.dgAnnotations.RowTemplate.Height = 24;
|
||||||
this.dgAnnotations.RowTemplate.ReadOnly = true;
|
this.dgAnnotations.RowTemplate.ReadOnly = true;
|
||||||
this.dgAnnotations.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
this.dgAnnotations.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||||
this.dgAnnotations.SelectAllSignVisible = false;
|
this.dgAnnotations.SelectAllSignVisible = false;
|
||||||
this.dgAnnotations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
this.dgAnnotations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
this.dgAnnotations.Size = new System.Drawing.Size(545, 325);
|
this.dgAnnotations.Size = new System.Drawing.Size(409, 264);
|
||||||
this.dgAnnotations.TabIndex = 1;
|
this.dgAnnotations.TabIndex = 1;
|
||||||
this.dgAnnotations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgAnnotations_CellClick);
|
this.dgAnnotations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgAnnotations_CellClick);
|
||||||
//
|
//
|
||||||
// myAnnotationTypeDataGridViewTextBoxColumn
|
// myAnnotationTypeDataGridViewTextBoxColumn
|
||||||
//
|
//
|
||||||
this.myAnnotationTypeDataGridViewTextBoxColumn.DataPropertyName = "MyAnnotationType";
|
this.myAnnotationTypeDataGridViewTextBoxColumn.DataPropertyName = "MyAnnotationType";
|
||||||
this.myAnnotationTypeDataGridViewTextBoxColumn.HeaderText = "Type";
|
this.myAnnotationTypeDataGridViewTextBoxColumn.HeaderText = "Type";
|
||||||
this.myAnnotationTypeDataGridViewTextBoxColumn.Name = "myAnnotationTypeDataGridViewTextBoxColumn";
|
this.myAnnotationTypeDataGridViewTextBoxColumn.Name = "myAnnotationTypeDataGridViewTextBoxColumn";
|
||||||
this.myAnnotationTypeDataGridViewTextBoxColumn.Width = 69;
|
this.myAnnotationTypeDataGridViewTextBoxColumn.Width = 56;
|
||||||
//
|
//
|
||||||
// dTSDataGridViewTextBoxColumn
|
// dTSDataGridViewTextBoxColumn
|
||||||
//
|
//
|
||||||
this.dTSDataGridViewTextBoxColumn.DataPropertyName = "DTS";
|
this.dTSDataGridViewTextBoxColumn.DataPropertyName = "DTS";
|
||||||
this.dTSDataGridViewTextBoxColumn.HeaderText = "Date";
|
this.dTSDataGridViewTextBoxColumn.HeaderText = "Date";
|
||||||
this.dTSDataGridViewTextBoxColumn.Name = "dTSDataGridViewTextBoxColumn";
|
this.dTSDataGridViewTextBoxColumn.Name = "dTSDataGridViewTextBoxColumn";
|
||||||
this.dTSDataGridViewTextBoxColumn.Width = 67;
|
this.dTSDataGridViewTextBoxColumn.Width = 55;
|
||||||
//
|
//
|
||||||
// userIDDataGridViewTextBoxColumn
|
// userIDDataGridViewTextBoxColumn
|
||||||
//
|
//
|
||||||
this.userIDDataGridViewTextBoxColumn.DataPropertyName = "UserID";
|
this.userIDDataGridViewTextBoxColumn.DataPropertyName = "UserID";
|
||||||
this.userIDDataGridViewTextBoxColumn.HeaderText = "User";
|
this.userIDDataGridViewTextBoxColumn.HeaderText = "User";
|
||||||
this.userIDDataGridViewTextBoxColumn.Name = "userIDDataGridViewTextBoxColumn";
|
this.userIDDataGridViewTextBoxColumn.Name = "userIDDataGridViewTextBoxColumn";
|
||||||
this.userIDDataGridViewTextBoxColumn.Width = 67;
|
this.userIDDataGridViewTextBoxColumn.Width = 54;
|
||||||
//
|
//
|
||||||
// searchTextDataGridViewTextBoxColumn
|
// searchTextDataGridViewTextBoxColumn
|
||||||
//
|
//
|
||||||
this.searchTextDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
this.searchTextDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||||
this.searchTextDataGridViewTextBoxColumn.DataPropertyName = "SearchText";
|
this.searchTextDataGridViewTextBoxColumn.DataPropertyName = "SearchText";
|
||||||
this.searchTextDataGridViewTextBoxColumn.HeaderText = "Description";
|
this.searchTextDataGridViewTextBoxColumn.HeaderText = "Description";
|
||||||
this.searchTextDataGridViewTextBoxColumn.Name = "searchTextDataGridViewTextBoxColumn";
|
this.searchTextDataGridViewTextBoxColumn.Name = "searchTextDataGridViewTextBoxColumn";
|
||||||
//
|
//
|
||||||
// itemAnnotationsBindingSource
|
// itemAnnotationsBindingSource
|
||||||
//
|
//
|
||||||
this.itemAnnotationsBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.ItemAnnotation);
|
this.itemAnnotationsBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.ItemAnnotation);
|
||||||
//
|
//
|
||||||
// AnnotationDetails
|
// AnnotationDetails
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.pannelAnnoEdit);
|
this.Controls.Add(this.pannelAnnoEdit);
|
||||||
this.Controls.Add(this.expandableSplitter4);
|
this.Controls.Add(this.expandableSplitter4);
|
||||||
this.Controls.Add(this.pannelAnnoGrid);
|
this.Controls.Add(this.pannelAnnoGrid);
|
||||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.Name = "AnnotationDetails";
|
this.Name = "AnnotationDetails";
|
||||||
this.Size = new System.Drawing.Size(1124, 325);
|
this.Size = new System.Drawing.Size(843, 264);
|
||||||
this.pannelAnnoEdit.ResumeLayout(false);
|
this.pannelAnnoEdit.ResumeLayout(false);
|
||||||
this.pannelAnnoEdit.PerformLayout();
|
this.pannelAnnoEdit.PerformLayout();
|
||||||
this.panelAnnoEditBtns.ResumeLayout(false);
|
this.panelAnnoEditBtns.ResumeLayout(false);
|
||||||
this.pannelAnnoGrid.ResumeLayout(false);
|
this.pannelAnnoGrid.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).EndInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -371,5 +386,6 @@ namespace Volian.Controls.Library
|
|||||||
private System.Windows.Forms.DataGridViewTextBoxColumn dTSDataGridViewTextBoxColumn;
|
private System.Windows.Forms.DataGridViewTextBoxColumn dTSDataGridViewTextBoxColumn;
|
||||||
private System.Windows.Forms.DataGridViewTextBoxColumn userIDDataGridViewTextBoxColumn;
|
private System.Windows.Forms.DataGridViewTextBoxColumn userIDDataGridViewTextBoxColumn;
|
||||||
private System.Windows.Forms.DataGridViewTextBoxColumn searchTextDataGridViewTextBoxColumn;
|
private System.Windows.Forms.DataGridViewTextBoxColumn searchTextDataGridViewTextBoxColumn;
|
||||||
}
|
private DevComponents.DotNetBar.ButtonX btnEPAnnotation;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -329,14 +329,22 @@ namespace Volian.Controls.Library
|
|||||||
AnnotationDirty = true;
|
AnnotationDirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dgAnnotations_CellClick(object sender, DataGridViewCellEventArgs e)
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
// Only show Open button if it is an EPAnnotationType
|
||||||
|
private void dgAnnotations_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||||
{
|
{
|
||||||
if (!_LoadingGrid) // Only set the Current Annotation when not loading the grid
|
btnEPAnnotation.Visible = false;
|
||||||
|
|
||||||
|
if (!_LoadingGrid) // Only set the Current Annotation when not loading the grid
|
||||||
{
|
{
|
||||||
if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0))
|
if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0))
|
||||||
CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index];
|
{
|
||||||
else
|
CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index];
|
||||||
CurrentAnnotation = null;
|
if (CurrentAnnotation.MyAnnotationType.IsEPAnnotationType && CurrentItem.HasEPformat(CurrentAnnotation.MyAnnotationType.TypeID))
|
||||||
|
btnEPAnnotation.Visible = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
CurrentAnnotation = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -600,6 +608,7 @@ namespace Volian.Controls.Library
|
|||||||
public void UpdateAnnotationGrid(ItemInfo currentitem)
|
public void UpdateAnnotationGrid(ItemInfo currentitem)
|
||||||
{
|
{
|
||||||
CurrentItem = currentitem;
|
CurrentItem = currentitem;
|
||||||
|
btnEPAnnotation.Visible = false;
|
||||||
UpdateAnnotationGrid();
|
UpdateAnnotationGrid();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -702,5 +711,12 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
|
// Open new Dynamic Form if open button selected
|
||||||
|
private void btnEPAnnotation_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
frmEPAnnotationDetails EPfrm = new frmEPAnnotationDetails(CurrentAnnotation);
|
||||||
|
DialogResult dr = EPfrm.ShowDialog(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -10,6 +10,7 @@ using Volian.Controls.Library;
|
|||||||
using DevComponents.DotNetBar;
|
using DevComponents.DotNetBar;
|
||||||
using JR.Utils.GUI.Forms;
|
using JR.Utils.GUI.Forms;
|
||||||
using Volian.Base.Library;
|
using Volian.Base.Library;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
|
||||||
namespace Volian.Controls.Library
|
namespace Volian.Controls.Library
|
||||||
{
|
{
|
||||||
@@ -658,11 +659,35 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else // Otherwise open it in the Word editor
|
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
|
// B2025-034 Check to make sure that EDWord is installed in PROMS. If not return NULL.
|
||||||
return OpenDSOTabPage(myItemInfo);
|
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)
|
public bool PasteRTBItem(ItemInfo myItemInfo, int copyStartID, ItemInfo.EAddpingPart pasteType, int type)
|
||||||
{
|
{
|
||||||
CleanUpClosedItems();
|
CleanUpClosedItems();
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -524,7 +524,55 @@ namespace Volian.Controls.Library
|
|||||||
ItemInfo secitm = (ItemInfo)cbTranSects.SelectedItem;
|
ItemInfo secitm = (ItemInfo)cbTranSects.SelectedItem;
|
||||||
bool hasMetaSubs = secitm.IsSection && secitm.Sections != null && secitm.Sections.Count > 0;
|
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");
|
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 the transition to point is a section or procedure, just return
|
||||||
if (startitm.MyContent.Type < 20000) 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
|
// a different section was selected, if step section, update step list, otherwise, empty
|
||||||
// it & disable.
|
// it & disable.
|
||||||
ItemInfo secitm = (ItemInfo)cbTranSects.SelectedItem;
|
ItemInfo secitm = (ItemInfo)cbTranSects.SelectedItem;
|
||||||
if (!secitm.IsStepSection)
|
|
||||||
|
//if (secitm.IsStepSection)
|
||||||
|
//{
|
||||||
|
// cbTranSects.SelectedItem.Sections[0];
|
||||||
|
|
||||||
|
//}
|
||||||
|
if (!secitm.IsStepSection)
|
||||||
{
|
{
|
||||||
tvTran.Nodes.Clear();
|
tvTran.Nodes.Clear();
|
||||||
tvTran.Enabled = false;
|
tvTran.Enabled = false;
|
||||||
|
@@ -758,7 +758,7 @@ namespace Volian.Controls.Library
|
|||||||
// clear tabs, clears then all so that next 'get' will calculate new.
|
// clear tabs, clears then all so that next 'get' will calculate new.
|
||||||
public void SetAllTabs()
|
public void SetAllTabs()
|
||||||
{
|
{
|
||||||
RefreshTab();
|
RefreshTab();
|
||||||
|
|
||||||
if (_MyAfterEditItems != null) _MyAfterEditItems[0].SetAllTabs(); // B2020-043: used to loop through all, but then recursion would redo.
|
if (_MyAfterEditItems != null) _MyAfterEditItems[0].SetAllTabs(); // B2020-043: used to loop through all, but then recursion would redo.
|
||||||
if (_MyNextEditItem != null) _MyNextEditItem.SetAllTabs();
|
if (_MyNextEditItem != null) _MyNextEditItem.SetAllTabs();
|
||||||
@@ -1160,7 +1160,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (myItemInfoList != null)
|
if (myItemInfoList != null)
|
||||||
foreach (ItemInfo item in myItemInfoList)
|
foreach (ItemInfo item in myItemInfoList)
|
||||||
AddChildBefore(item, expand);
|
AddChildBefore(item, expand);
|
||||||
}
|
}
|
||||||
public EditItem AddChildBefore(ItemInfoList myItemInfoList, EditItem nextEditItem)
|
public EditItem AddChildBefore(ItemInfoList myItemInfoList, EditItem nextEditItem)
|
||||||
{
|
{
|
||||||
@@ -3994,7 +3994,8 @@ namespace Volian.Controls.Library
|
|||||||
// TODO: Adjust top based upon format
|
// TODO: Adjust top based upon format
|
||||||
// TODO: Remove Label and just output ident on the paint event
|
// TODO: Remove Label and just output ident on the paint event
|
||||||
TabLeft = 20;
|
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)
|
SetupAlarmTableView(itemInfo); // C2021-018 display alarm point table information in the step editor (if the format flag is set)
|
||||||
this.Paint += new PaintEventHandler(EditItem_Paint);
|
this.Paint += new PaintEventHandler(EditItem_Paint);
|
||||||
this.BackColorChanged += new EventHandler(EditItem_BackColorChanged);
|
this.BackColorChanged += new EventHandler(EditItem_BackColorChanged);
|
||||||
|
52
PROMS/Volian.Controls.Library/ListBoxMulti.cs
Normal file
52
PROMS/Volian.Controls.Library/ListBoxMulti.cs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
149
PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs
generated
Normal file
149
PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs
generated
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
240
PROMS/Volian.Controls.Library/TablePropertiesControl.cs
Normal file
240
PROMS/Volian.Controls.Library/TablePropertiesControl.cs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
120
PROMS/Volian.Controls.Library/TablePropertiesControl.resx
Normal file
120
PROMS/Volian.Controls.Library/TablePropertiesControl.resx
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
@@ -243,6 +243,12 @@
|
|||||||
<Compile Include="frmEnhanced.Designer.cs">
|
<Compile Include="frmEnhanced.Designer.cs">
|
||||||
<DependentUpon>frmEnhanced.cs</DependentUpon>
|
<DependentUpon>frmEnhanced.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="frmEPAnnotationDetails.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmEPAnnotationDetails.Designer.cs">
|
||||||
|
<DependentUpon>frmEPAnnotationDetails.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="frmImportWordContents.cs">
|
<Compile Include="frmImportWordContents.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -274,6 +280,9 @@
|
|||||||
<DependentUpon>ImageItem.cs</DependentUpon>
|
<DependentUpon>ImageItem.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="LinkText.cs" />
|
<Compile Include="LinkText.cs" />
|
||||||
|
<Compile Include="ListBoxMulti.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="PreviewMultiLineRO.cs">
|
<Compile Include="PreviewMultiLineRO.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -374,6 +383,12 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="RomanNumeral.cs" />
|
<Compile Include="RomanNumeral.cs" />
|
||||||
<Compile Include="RTBAPI.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">
|
<Compile Include="TransPanel.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -474,6 +489,10 @@
|
|||||||
<EmbeddedResource Include="frmEnhanced.resx">
|
<EmbeddedResource Include="frmEnhanced.resx">
|
||||||
<DependentUpon>frmEnhanced.cs</DependentUpon>
|
<DependentUpon>frmEnhanced.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmEPAnnotationDetails.resx">
|
||||||
|
<DependentUpon>frmEPAnnotationDetails.cs</DependentUpon>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmImportWordContents.resx">
|
<EmbeddedResource Include="frmImportWordContents.resx">
|
||||||
<DependentUpon>frmImportWordContents.cs</DependentUpon>
|
<DependentUpon>frmImportWordContents.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
@@ -515,6 +534,9 @@
|
|||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="TablePropertiesControl.resx">
|
||||||
|
<DependentUpon>TablePropertiesControl.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="vlnExpander.resx">
|
<EmbeddedResource Include="vlnExpander.resx">
|
||||||
<DependentUpon>vlnExpander.cs</DependentUpon>
|
<DependentUpon>vlnExpander.cs</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
|
111
PROMS/Volian.Controls.Library/frmEPAnnotationDetails.Designer.cs
generated
Normal file
111
PROMS/Volian.Controls.Library/frmEPAnnotationDetails.Designer.cs
generated
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
320
PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs
Normal file
320
PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
PROMS/Volian.Controls.Library/frmEPAnnotationDetails.resx
Normal file
120
PROMS/Volian.Controls.Library/frmEPAnnotationDetails.resx
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
@@ -57,7 +57,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
_MySectionInfo = mySectionInfo;
|
_MySectionInfo = mySectionInfo;
|
||||||
}
|
}
|
||||||
public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo,bool isDeleting)
|
public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo, bool isDeleting)
|
||||||
{
|
{
|
||||||
_MySectionInfo = mySectionInfo;
|
_MySectionInfo = mySectionInfo;
|
||||||
_IsDeleting = isDeleting;
|
_IsDeleting = isDeleting;
|
||||||
@@ -140,7 +140,7 @@ namespace Volian.Controls.Library
|
|||||||
get { return _Node; }
|
get { return _Node; }
|
||||||
set { _Node = value; }
|
set { _Node = value; }
|
||||||
}
|
}
|
||||||
private TreeNode _Destination=null;
|
private TreeNode _Destination = null;
|
||||||
public TreeNode Destination
|
public TreeNode Destination
|
||||||
{
|
{
|
||||||
get { return _Destination; }
|
get { return _Destination; }
|
||||||
@@ -152,6 +152,15 @@ namespace Volian.Controls.Library
|
|||||||
get { return _Index; }
|
get { return _Index; }
|
||||||
set { _Index = value; }
|
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
|
//jcb multiunit
|
||||||
private string _Unit;
|
private string _Unit;
|
||||||
public string Unit
|
public string Unit
|
||||||
@@ -168,7 +177,7 @@ namespace Volian.Controls.Library
|
|||||||
//end jcb multiunit
|
//end jcb multiunit
|
||||||
#endregion
|
#endregion
|
||||||
#region Factory Methods
|
#region Factory Methods
|
||||||
private vlnTreeEventArgs() { ;}
|
private vlnTreeEventArgs() {; }
|
||||||
public vlnTreeEventArgs(TreeNode node)
|
public vlnTreeEventArgs(TreeNode node)
|
||||||
{
|
{
|
||||||
_Node = node;
|
_Node = node;
|
||||||
@@ -179,6 +188,13 @@ namespace Volian.Controls.Library
|
|||||||
_Destination = destination;
|
_Destination = destination;
|
||||||
_Index = index;
|
_Index = index;
|
||||||
}
|
}
|
||||||
|
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, int annTypeId)
|
||||||
|
{
|
||||||
|
_Node = node;
|
||||||
|
_Destination = destination;
|
||||||
|
_Index = index;
|
||||||
|
_AnnotationTypeId = annTypeId;
|
||||||
|
}
|
||||||
//jcb multiunit
|
//jcb multiunit
|
||||||
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex)
|
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex)
|
||||||
{
|
{
|
||||||
@@ -188,11 +204,20 @@ namespace Volian.Controls.Library
|
|||||||
_Unit = unit;
|
_Unit = unit;
|
||||||
_UnitIndex = unitIndex;
|
_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
|
//end jcb multiunit
|
||||||
#endregion
|
#endregion
|
||||||
public override string ToString()
|
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)
|
private string NodePath(TreeNode node)
|
||||||
@@ -215,7 +240,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region Factory Methods
|
#region Factory Methods
|
||||||
private vlnTreeItemInfoEventArgs() { ;}
|
private vlnTreeItemInfoEventArgs() {; }
|
||||||
public vlnTreeItemInfoEventArgs(ItemInfo myItemInfo)
|
public vlnTreeItemInfoEventArgs(ItemInfo myItemInfo)
|
||||||
{
|
{
|
||||||
_MyItemInfo = myItemInfo;
|
_MyItemInfo = myItemInfo;
|
||||||
@@ -231,7 +256,7 @@ namespace Volian.Controls.Library
|
|||||||
FolderId = folderId;
|
FolderId = folderId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public enum E_InsertType {Before, After, Child};
|
public enum E_InsertType { Before, After, Child };
|
||||||
public partial class vlnTreeItemInfoInsertEventArgs
|
public partial class vlnTreeItemInfoInsertEventArgs
|
||||||
{
|
{
|
||||||
#region Business Methods
|
#region Business Methods
|
||||||
@@ -267,7 +292,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region Factory Methods
|
#region Factory Methods
|
||||||
private vlnTreeItemInfoInsertEventArgs() { ;}
|
private vlnTreeItemInfoInsertEventArgs() {; }
|
||||||
public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText)
|
public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText)
|
||||||
{
|
{
|
||||||
_MyItemInfo = myItemInfo;
|
_MyItemInfo = myItemInfo;
|
||||||
@@ -314,7 +339,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region Factory Methods
|
#region Factory Methods
|
||||||
private vlnTreeItemInfoPasteEventArgs() { ;}
|
private vlnTreeItemInfoPasteEventArgs() {; }
|
||||||
public vlnTreeItemInfoPasteEventArgs(ItemInfo myItemInfo, int copyStartId, ItemInfo.EAddpingPart pasteType, int? type)
|
public vlnTreeItemInfoPasteEventArgs(ItemInfo myItemInfo, int copyStartId, ItemInfo.EAddpingPart pasteType, int? type)
|
||||||
{
|
{
|
||||||
_MyItemInfo = myItemInfo;
|
_MyItemInfo = myItemInfo;
|
||||||
@@ -364,7 +389,7 @@ namespace Volian.Controls.Library
|
|||||||
get { return _SectionConfig; }
|
get { return _SectionConfig; }
|
||||||
set { _ConfigObject = _SectionConfig = value; }
|
set { _ConfigObject = _SectionConfig = value; }
|
||||||
}
|
}
|
||||||
private vlnTreePropertyEventArgs() { ;}
|
private vlnTreePropertyEventArgs() {; }
|
||||||
public vlnTreePropertyEventArgs(string title, FolderConfig folderConfig)
|
public vlnTreePropertyEventArgs(string title, FolderConfig folderConfig)
|
||||||
{
|
{
|
||||||
_Title = title;
|
_Title = title;
|
||||||
@@ -711,7 +736,10 @@ namespace Volian.Controls.Library
|
|||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))// && fi.MyParent == null) //VEPROMS level
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))// && fi.MyParent == null) //VEPROMS level
|
||||||
{
|
{
|
||||||
if (fi.HasWorkingDraft)
|
if (fi.HasWorkingDraft)
|
||||||
|
{
|
||||||
cm.MenuItems.Add("Export Procedure Set", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Export Procedure Set", new EventHandler(mi_Click));
|
||||||
|
//AddEPExport(cm.MenuItems, 0, null);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
cm.MenuItems.Add("Import Procedure Set", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Import Procedure Set", new EventHandler(mi_Click));
|
||||||
if (DoSpecificInfo)
|
if (DoSpecificInfo)
|
||||||
@@ -720,11 +748,11 @@ namespace Volian.Controls.Library
|
|||||||
//_MyLog.WarnFormat("Context Menu 1b - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 1b - {0}", GC.GetTotalMemory(true));
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))
|
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));
|
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
|
// 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 Before", new EventHandler(mi_Click));
|
||||||
cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click));
|
||||||
@@ -739,7 +767,7 @@ namespace Volian.Controls.Library
|
|||||||
if (fi.HasWorkingDraft)
|
if (fi.HasWorkingDraft)
|
||||||
cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click));
|
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;
|
isWrkDftNode = true;
|
||||||
//_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true));
|
||||||
@@ -839,15 +867,18 @@ namespace Volian.Controls.Library
|
|||||||
urv.Enabled = !dvi.ROfstLastCompleted || dvi.NewerRoFst;
|
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;
|
isProcNode = true;
|
||||||
ProcedureInfo pri = tn.VEObject as ProcedureInfo;
|
ProcedureInfo pri = tn.VEObject as ProcedureInfo;
|
||||||
oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure);
|
oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure);
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion))
|
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 (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion))
|
||||||
{
|
{
|
||||||
if (oi != null && oi.SessionID != MySessionInfo.SessionID)
|
if (oi != null && oi.SessionID != MySessionInfo.SessionID)
|
||||||
@@ -1081,10 +1112,37 @@ namespace Volian.Controls.Library
|
|||||||
// require clearing of all enhanced config data or mapping it to existing data (quite complicated)
|
// 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))
|
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));
|
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)
|
if (i.HasWordContent)
|
||||||
{
|
{
|
||||||
cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
|
if (i.MyDocVersion.MultiUnitCount > 1)
|
||||||
cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click));
|
{
|
||||||
|
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
|
#endregion
|
||||||
@@ -1098,7 +1156,7 @@ namespace Volian.Controls.Library
|
|||||||
ok = true;
|
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)))
|
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;
|
ok = true;
|
||||||
if(ok)
|
if (ok)
|
||||||
Menu_Paste(tn, cm);
|
Menu_Paste(tn, cm);
|
||||||
#endregion
|
#endregion
|
||||||
//_MyLog.WarnFormat("Context Menu 5 - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 5 - {0}", GC.GetTotalMemory(true));
|
||||||
@@ -1114,13 +1172,13 @@ namespace Volian.Controls.Library
|
|||||||
// Add delete to the menu unless at the very 'top' node, on a grouping (partinfo)
|
// 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.
|
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
|
||||||
PartInfo pi = tn.VEObject as PartInfo;
|
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;
|
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;
|
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
|
// if it's an enhanced step that was linked from a source, don't allow delete
|
||||||
bool canDoDel = true;
|
bool canDoDel = true;
|
||||||
@@ -1169,13 +1227,13 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
doclink = string.Format("Unlink Source and {0} Procedure", doclink);
|
doclink = string.Format("Unlink Source and {0} Procedure", doclink);
|
||||||
MenuItem mix = cm.MenuItems.Add(doclink, new EventHandler(miEnhanced_Click));
|
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
|
// 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)
|
else if (eds != null && eds.Count > 1)
|
||||||
{
|
{
|
||||||
MenuItem miu = new MenuItem("Unlink Enhanced Procedure(s) from Source");
|
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;
|
int k = 0;
|
||||||
foreach (EnhancedDocument ed in eds)
|
foreach (EnhancedDocument ed in eds)
|
||||||
{
|
{
|
||||||
@@ -1186,7 +1244,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
// add all submenu item
|
// add all submenu item
|
||||||
MenuItem mp1 = miu.MenuItems.Add("All", new EventHandler(miEnhanced_Click));
|
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);
|
cm.MenuItems.Add(miu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1196,8 +1254,8 @@ namespace Volian.Controls.Library
|
|||||||
// Add Properties to the menu unless at the very 'top' node or on a grouping (partinfo)
|
// 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.
|
// 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.
|
// 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));
|
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))
|
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.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)
|
||||||
|| ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)));
|
|| ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)));
|
||||||
PartInfo pia = tn.VEObject as PartInfo;
|
PartInfo pia = tn.VEObject as PartInfo;
|
||||||
@@ -1308,7 +1366,7 @@ namespace Volian.Controls.Library
|
|||||||
// F2022-024 added Time Critical Action Summary option
|
// F2022-024 added Time Critical Action Summary option
|
||||||
foreach (MenuItem itm in cm.MenuItems)
|
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 == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" ||
|
||||||
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
|
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
|
||||||
itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure")
|
itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure")
|
||||||
@@ -1319,7 +1377,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
foreach (MenuItem itm in cm.MenuItems)
|
foreach (MenuItem itm in cm.MenuItems)
|
||||||
{
|
{
|
||||||
if(!itm.Text.StartsWith("Document Checked Out"))
|
if (!itm.Text.StartsWith("Document Checked Out"))
|
||||||
itm.Enabled = false;
|
itm.Enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1332,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;
|
_currentPri = pri;
|
||||||
RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID);
|
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");
|
MenuItem mi = menuItemCollection.Add("Versions");
|
||||||
int k = 0;
|
int k = 0;
|
||||||
int lastApprovedRevisionID = 0;
|
int lastApprovedRevisionID = 0;
|
||||||
@@ -1477,7 +1572,7 @@ namespace Volian.Controls.Library
|
|||||||
RevisionConfig rc = ri.MyConfig as RevisionConfig;
|
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.
|
// 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;
|
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();
|
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
|
||||||
xd.LoadXml(ri.LatestVersion.ApprovedXML);
|
xd.LoadXml(ri.LatestVersion.ApprovedXML);
|
||||||
string PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
|
string PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
|
||||||
@@ -1525,7 +1620,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
MenuItem mip = mi.Parent as MenuItem;
|
MenuItem mip = mi.Parent as MenuItem;
|
||||||
//B2021-086 Added the check for the last revision stage is an Approved stage
|
//B2021-086 Added the check for the last revision stage is an Approved stage
|
||||||
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved!=0)
|
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0)
|
||||||
superceded = true;
|
superceded = true;
|
||||||
}
|
}
|
||||||
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
|
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
|
||||||
@@ -1643,7 +1738,7 @@ namespace Volian.Controls.Library
|
|||||||
// 'from' is object copied
|
// 'from' is object copied
|
||||||
// 'to' is object where paste was selected from
|
// 'to' is object where paste was selected from
|
||||||
#region Menu_Paste_ToDocVersion
|
#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)
|
if (iiClipboard.IsProcedure)
|
||||||
{
|
{
|
||||||
@@ -1685,7 +1780,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
SectionInfo si = (tn.VEObject as SectionInfo != null) ? tn.VEObject as SectionInfo : null;
|
SectionInfo si = (tn.VEObject as SectionInfo != null) ? tn.VEObject as SectionInfo : null;
|
||||||
#region Menu_Paste_ToFromProcedure
|
#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!
|
// 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)
|
// 1) 'to' & 'from' both 'non', i.e. Neither can have enhanced config data (be source or enhanced)
|
||||||
@@ -1709,16 +1804,16 @@ namespace Volian.Controls.Library
|
|||||||
bool prFromIsEnhanced = iiClipboard.IsEnhancedProcedure;
|
bool prFromIsEnhanced = iiClipboard.IsEnhancedProcedure;
|
||||||
bool prFromIsSource = pcFromCfg.MyEnhancedDocuments != null && pcFromCfg.MyEnhancedDocuments.Count > 0 && pcFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool prFromIsSource = pcFromCfg.MyEnhancedDocuments != null && pcFromCfg.MyEnhancedDocuments.Count > 0 && pcFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool prCanPaste = false;
|
bool prCanPaste = false;
|
||||||
if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1)
|
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 ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false
|
||||||
else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3)
|
else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3)
|
||||||
{
|
{
|
||||||
prCanPaste = true;
|
prCanPaste = true;
|
||||||
okToReplace = false;
|
okToReplace = false;
|
||||||
}
|
}
|
||||||
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4)
|
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 (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 (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false
|
||||||
if (iiClipboard.IsRtfRaw) prCanPaste = okToReplace = prCanPaste = false; // never paste an equation.
|
if (iiClipboard.IsRtfRaw) prCanPaste = okToReplace = prCanPaste = false; // never paste an equation.
|
||||||
if (prCanPaste) cm.MenuItems.Add("Paste Procedure Before", new EventHandler(mi_Click));
|
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));
|
if (okToReplace && prCanPaste) cm.MenuItems.Add("Replace Existing Procedure", new EventHandler(mi_Click));
|
||||||
@@ -1750,9 +1845,9 @@ namespace Volian.Controls.Library
|
|||||||
bool scFromIsEnhanced = iiClipboard.IsEnhancedSection;
|
bool scFromIsEnhanced = iiClipboard.IsEnhancedSection;
|
||||||
bool scFromIsSource = scFromCfg.MyEnhancedDocuments != null && scFromCfg.MyEnhancedDocuments.Count > 0 && scFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool scFromIsSource = scFromCfg.MyEnhancedDocuments != null && scFromCfg.MyEnhancedDocuments.Count > 0 && scFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool scCanPaste = false;
|
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 && !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 (iiClipboard.IsRtfRaw) scCanPaste = false; // never paste an equation.
|
||||||
if (scCanPaste) cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click));
|
if (scCanPaste) cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
@@ -1824,9 +1919,9 @@ namespace Volian.Controls.Library
|
|||||||
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
|
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
|
||||||
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool stpCanPaste = false;
|
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 && !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 (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation.
|
||||||
if (stpCanPaste) cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click));
|
if (stpCanPaste) cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
@@ -1850,8 +1945,8 @@ namespace Volian.Controls.Library
|
|||||||
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
|
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
|
||||||
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool stpCanPaste = false;
|
bool stpCanPaste = false;
|
||||||
if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
|
if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
|
||||||
else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2)
|
else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2)
|
||||||
{
|
{
|
||||||
stpCanPaste = true;
|
stpCanPaste = true;
|
||||||
okToReplace = false;
|
okToReplace = false;
|
||||||
@@ -1859,7 +1954,7 @@ namespace Volian.Controls.Library
|
|||||||
else if (stpToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) // 3
|
else if (stpToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) // 3
|
||||||
{
|
{
|
||||||
stpCanPaste = true;
|
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 (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation.
|
||||||
if (stpCanPaste && AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click));
|
if (stpCanPaste && AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click));
|
||||||
@@ -1892,7 +1987,7 @@ namespace Volian.Controls.Library
|
|||||||
OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
case "Print All Procedures for":
|
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;
|
break;
|
||||||
case "Approve":
|
case "Approve":
|
||||||
OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
@@ -1904,10 +1999,10 @@ namespace Volian.Controls.Library
|
|||||||
OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
case "Create Continuous Action Summary":
|
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;
|
break;
|
||||||
case "Create Time Critical Action Summary":
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
if (mip.Text.StartsWith("Showing Change Bars Starting"))
|
if (mip.Text.StartsWith("Showing Change Bars Starting"))
|
||||||
@@ -1945,7 +2040,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (selprc.IsEnhancedProcedure)
|
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
|
else // from source
|
||||||
{
|
{
|
||||||
@@ -2197,11 +2292,11 @@ namespace Volian.Controls.Library
|
|||||||
UpdateROValues(SelectedNode as VETreeNode);
|
UpdateROValues(SelectedNode as VETreeNode);
|
||||||
break;
|
break;
|
||||||
case "Create Continuous Action Summary":
|
case "Create Continuous Action Summary":
|
||||||
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0));
|
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
break;
|
break;
|
||||||
// F2022-024 Time Critical Action Summary
|
// F2022-024 Time Critical Action Summary
|
||||||
case "Create 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;
|
break;
|
||||||
// B2017-243 added the following two Cannot Paste items when dealing with enhanced documents
|
// 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
|
// when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted
|
||||||
@@ -2228,6 +2323,23 @@ namespace Volian.Controls.Library
|
|||||||
break;
|
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 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()
|
private void CollapseProcedures()
|
||||||
{
|
{
|
||||||
@@ -2301,7 +2413,7 @@ namespace Volian.Controls.Library
|
|||||||
FinalProgressBarMessage = "Cannot check-out Working Draft";
|
FinalProgressBarMessage = "Cannot check-out Working Draft";
|
||||||
return;
|
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);
|
int ownerid = MySessionInfo.CheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion);
|
||||||
using (DocVersion dv = DocVersion.Get(MyDVI.VersionID))
|
using (DocVersion dv = DocVersion.Get(MyDVI.VersionID))
|
||||||
{
|
{
|
||||||
@@ -2334,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));
|
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
|
public ProgressBarItem ProgressBar
|
||||||
{
|
{
|
||||||
get { return _ProgressBar; }
|
get { return _ProgressBar; }
|
||||||
@@ -2512,7 +2624,7 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
// assume that item to paste is a procedure, otherwise the menuing would not have
|
// assume that item to paste is a procedure, otherwise the menuing would not have
|
||||||
// included the paste options
|
// included the paste options
|
||||||
tn = (VETreeNode) tn.Nodes[tn.Nodes.Count - 1];
|
tn = (VETreeNode)tn.Nodes[tn.Nodes.Count - 1];
|
||||||
p = "After";
|
p = "After";
|
||||||
}
|
}
|
||||||
else // this is an empty docversion:
|
else // this is an empty docversion:
|
||||||
@@ -2574,7 +2686,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
ItemInfo newProc = dvi.PasteChild(copyStartID);
|
ItemInfo newProc = dvi.PasteChild(copyStartID);
|
||||||
VETreeNode tn1 = new VETreeNode(newProc);
|
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;
|
SelectedNode = tn1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2611,7 +2723,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
if (pasteSectIntoEmptySect)
|
if (pasteSectIntoEmptySect)
|
||||||
{
|
{
|
||||||
tn.ChildrenLoaded = false; // force a reload of treenode
|
tn.ChildrenLoaded = false; // force a reload of treenode
|
||||||
tn.LoadChildren(true);
|
tn.LoadChildren(true);
|
||||||
}
|
}
|
||||||
SelectedNode = tn;
|
SelectedNode = tn;
|
||||||
@@ -2649,8 +2761,8 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
private ItemInfo PasteReplace(VETreeNode tn, int copyStartID)
|
private ItemInfo PasteReplace(VETreeNode tn, int copyStartID)
|
||||||
{
|
{
|
||||||
VETreeNode prevtn = (VETreeNode) tn.PrevNode;
|
VETreeNode prevtn = (VETreeNode)tn.PrevNode;
|
||||||
VETreeNode partn = (VETreeNode) tn.Parent;
|
VETreeNode partn = (VETreeNode)tn.Parent;
|
||||||
ItemInfo ii = tn.VEObject as ItemInfo;
|
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
|
// 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);
|
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, true);
|
||||||
@@ -2701,7 +2813,7 @@ namespace Volian.Controls.Library
|
|||||||
private void SetupNodeProperties()
|
private void SetupNodeProperties()
|
||||||
{
|
{
|
||||||
VETreeNode tn = SelectedNode as VETreeNode;
|
VETreeNode tn = SelectedNode as VETreeNode;
|
||||||
if (tn==null)return;
|
if (tn == null) return;
|
||||||
|
|
||||||
if ((tn.VEObject as FolderInfo) != null)
|
if ((tn.VEObject as FolderInfo) != null)
|
||||||
OpenProperties(tn.VEObject as FolderInfo);
|
OpenProperties(tn.VEObject as FolderInfo);
|
||||||
@@ -2713,7 +2825,7 @@ namespace Volian.Controls.Library
|
|||||||
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0) rofstid = dvi.DocVersionAssociations[0].MyROFst.ROFstID;
|
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0) rofstid = dvi.DocVersionAssociations[0].MyROFst.ROFstID;
|
||||||
OpenProperties(tn.VEObject as DocVersionInfo);
|
OpenProperties(tn.VEObject as DocVersionInfo);
|
||||||
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0 && rofstid != dvi.DocVersionAssociations[0].MyROFst.ROFstID)
|
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)
|
else if ((tn.VEObject as ProcedureInfo) != null)
|
||||||
OpenProperties(tn.VEObject as ProcedureInfo);
|
OpenProperties(tn.VEObject as ProcedureInfo);
|
||||||
@@ -2808,7 +2920,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (newtype == MenuSelections.DocVersion)
|
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))
|
using (DocVersion docversion = DocVersion.MakeDocVersion(parentfolder, "Working Draft", "Title", null, null, null))
|
||||||
{
|
{
|
||||||
ShowBrokenRules(docversion.BrokenRulesCollection);
|
ShowBrokenRules(docversion.BrokenRulesCollection);
|
||||||
@@ -2817,7 +2929,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
docversion.Save();
|
docversion.Save();
|
||||||
tn = new VETreeNode(_LastDocVersionInfo);
|
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_ChildFolders();
|
||||||
parentfolder.Reset_FolderDocVersions();
|
parentfolder.Reset_FolderDocVersions();
|
||||||
}
|
}
|
||||||
@@ -2828,7 +2940,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else if (newtype == MenuSelections.Folder)
|
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");
|
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))
|
using (Folder folder = Folder.MakeFolder(parentfolder, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, string.Empty, DateTime.Now, VlnSettings.UserID))
|
||||||
{
|
{
|
||||||
@@ -2840,14 +2952,14 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
folder.Save();
|
folder.Save();
|
||||||
tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo);
|
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
|
else
|
||||||
f1 = folder.FolderID;
|
f1 = folder.FolderID;
|
||||||
}
|
}
|
||||||
if (f1 != -1) Folder.Delete(f1);
|
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;
|
int f2 = -1;
|
||||||
string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder");
|
string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder");
|
||||||
@@ -2856,7 +2968,8 @@ namespace Volian.Controls.Library
|
|||||||
//since before/after folder is at same level as current folder
|
//since before/after folder is at same level as current folder
|
||||||
//so need to use the parents order to determine where to place it
|
//so need to use the parents order to determine where to place it
|
||||||
using (FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.MyParent.FolderID))
|
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))
|
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);
|
ShowBrokenRules(folder.BrokenRulesCollection);
|
||||||
@@ -2881,7 +2994,7 @@ namespace Volian.Controls.Library
|
|||||||
else if (newtype == MenuSelections.Procedure)
|
else if (newtype == MenuSelections.Procedure)
|
||||||
{
|
{
|
||||||
int p1 = -1;
|
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);
|
ShowBrokenRules(procedure.BrokenRulesCollection);
|
||||||
SetLastValues(ProcedureInfo.Get(procedure.ItemID));
|
SetLastValues(ProcedureInfo.Get(procedure.ItemID));
|
||||||
@@ -2890,7 +3003,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
procedure.Save();
|
procedure.Save();
|
||||||
tn = new VETreeNode(_LastProcedureInfo);
|
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)
|
// 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 (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures();
|
||||||
if (procedure.MyProcedureInfo.CreateEnhanced)
|
if (procedure.MyProcedureInfo.CreateEnhanced)
|
||||||
@@ -2938,7 +3051,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region InsertSection
|
#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;
|
string message = string.Empty;
|
||||||
if (_LastProcedureInfo != null)
|
if (_LastProcedureInfo != null)
|
||||||
@@ -2977,7 +3090,7 @@ namespace Volian.Controls.Library
|
|||||||
"If you would like to view or copy these hidden steps you will need to go\n" +
|
"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" +
|
"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" +
|
"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?";
|
"Do you want to continue creating the subsection?";
|
||||||
if (FlexibleMessageBox.Show(this, msgstr, "Subsection Insert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
if (FlexibleMessageBox.Show(this, msgstr, "Subsection Insert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||||
{
|
{
|
||||||
@@ -2989,7 +3102,7 @@ namespace Volian.Controls.Library
|
|||||||
if (!hasMetaSubs) doPseudo = true;
|
if (!hasMetaSubs) doPseudo = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
using(Section section = CreateNewSection())
|
using (Section section = CreateNewSection())
|
||||||
{
|
{
|
||||||
ShowBrokenRules(section.BrokenRulesCollection);
|
ShowBrokenRules(section.BrokenRulesCollection);
|
||||||
SectionInfo savLastSectionInfo = _LastSectionInfo;
|
SectionInfo savLastSectionInfo = _LastSectionInfo;
|
||||||
@@ -2999,10 +3112,10 @@ namespace Volian.Controls.Library
|
|||||||
if (!doPseudo)
|
if (!doPseudo)
|
||||||
{
|
{
|
||||||
tn = new VETreeNode(_LastSectionInfo);
|
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
|
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
||||||
// Enhanced section:
|
// 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")
|
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
||||||
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
||||||
sectiontmp.Dispose();
|
sectiontmp.Dispose();
|
||||||
@@ -3013,7 +3126,7 @@ namespace Volian.Controls.Library
|
|||||||
// may have to add a 'steps' node if a step(s) already exist...
|
// may have to add a 'steps' node if a step(s) already exist...
|
||||||
ItemInfo ii = (SelectedNode as VETreeNode).VEObject as ItemInfo;
|
ItemInfo ii = (SelectedNode as VETreeNode).VEObject as ItemInfo;
|
||||||
int cpindx = 0;
|
int cpindx = 0;
|
||||||
if (SelectedNode.Nodes.Count>0)
|
if (SelectedNode.Nodes.Count > 0)
|
||||||
{
|
{
|
||||||
VETreeNode vtn = SelectedNode.Nodes[0] as VETreeNode;
|
VETreeNode vtn = SelectedNode.Nodes[0] as VETreeNode;
|
||||||
// B2017-014: removed code that was adding a 2nd section part node. and also select node to
|
// B2017-014: removed code that was adding a 2nd section part node. and also select node to
|
||||||
@@ -3023,7 +3136,7 @@ namespace Volian.Controls.Library
|
|||||||
// B2017-014: removed code that was adding a 2nd section part node.
|
// 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;
|
s1 = section.ItemID;
|
||||||
}
|
}
|
||||||
if (s1 != -1)
|
if (s1 != -1)
|
||||||
@@ -3057,14 +3170,14 @@ namespace Volian.Controls.Library
|
|||||||
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK)
|
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK)
|
||||||
{
|
{
|
||||||
int indx = tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1);
|
int indx = tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1);
|
||||||
int itemido = (indx >= par.Nodes.Count)?-1:(((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).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)
|
if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido != section.ItemID)
|
||||||
{
|
{
|
||||||
tn = new VETreeNode(_LastSectionInfo);
|
tn = new VETreeNode(_LastSectionInfo);
|
||||||
par.Nodes.Insert(indx, tn);
|
par.Nodes.Insert(indx, tn);
|
||||||
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
||||||
// Enhanced section:
|
// 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")
|
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
||||||
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
||||||
sectiontmp.Dispose();
|
sectiontmp.Dispose();
|
||||||
@@ -3084,7 +3197,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region InsertStep
|
#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;
|
string message = string.Empty;
|
||||||
if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
|
if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
|
||||||
@@ -3161,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))
|
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);
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3259,7 +3372,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
SectionConfig newenhcfg = new SectionConfig(newenhSection);
|
SectionConfig newenhcfg = new SectionConfig(newenhSection);
|
||||||
newenhcfg.AddEnhancedDocument(0, sourceSect.ItemID);
|
newenhcfg.AddEnhancedDocument(0, sourceSect.ItemID);
|
||||||
newenhcfg.SaveEnhancedDocuments(); // does this save data?
|
newenhcfg.SaveEnhancedDocuments(); // does this save data?
|
||||||
using (Content c1 = Content.Get(newenhSection.ContentID))
|
using (Content c1 = Content.Get(newenhSection.ContentID))
|
||||||
{
|
{
|
||||||
c1.Config = newenhcfg.ToString();
|
c1.Config = newenhcfg.ToString();
|
||||||
@@ -3340,12 +3453,12 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
// see if enhanced related steps need created:
|
// see if enhanced related steps need created:
|
||||||
SectionConfig scfgE = _LastItemInfo.ActiveSection.MyConfig as SectionConfig; // C2018-003 fixed use of getting the active section
|
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).
|
// set up which item to insert from based on whether editor was open (see comment from 11/17 above).
|
||||||
EnhancedDocuments enhdocs = null;
|
EnhancedDocuments enhdocs = null;
|
||||||
ItemInfo.EAddpingPart addpart = ItemInfo.EAddpingPart.Child;
|
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;
|
addpart = ItemInfo.EAddpingPart.After;
|
||||||
ItemInfo lstSrc = _LastItemInfo.MyPrevious;
|
ItemInfo lstSrc = _LastItemInfo.MyPrevious;
|
||||||
@@ -3517,7 +3630,7 @@ namespace Volian.Controls.Library
|
|||||||
result = FlexibleMessageBox.Show("Are you sure you want to delete this " + typeDescription + "?", "Verify Delete",
|
result = FlexibleMessageBox.Show("Are you sure you want to delete this " + typeDescription + "?", "Verify Delete",
|
||||||
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||||||
}
|
}
|
||||||
if (_LastProcedureInfo != null || result == DialogResult.Yes)
|
if (_LastProcedureInfo != null || result == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
if (_LastFolderInfo != null)
|
if (_LastFolderInfo != null)
|
||||||
{
|
{
|
||||||
@@ -3623,7 +3736,7 @@ namespace Volian.Controls.Library
|
|||||||
// just clear enhanced links back
|
// just clear enhanced links back
|
||||||
_LastSectionInfo.ClearEnhancedSectionLink();
|
_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.
|
// always return false because an event gets fired to delete tree nodes.
|
||||||
if (!DeleteItemInfoAndChildren(_LastSectionInfo))
|
if (!DeleteItemInfoAndChildren(_LastSectionInfo))
|
||||||
{
|
{
|
||||||
@@ -3724,11 +3837,11 @@ namespace Volian.Controls.Library
|
|||||||
// do delete using RTBItem - this manages windowing from the step editor.
|
// 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
|
// If the procedure is open & you're deleting procedure, you want to close open
|
||||||
// window - this is done in DisplayTabControl-DeleteStepTabItem.
|
// window - this is done in DisplayTabControl-DeleteStepTabItem.
|
||||||
OnProcessing(true,"Deleting");
|
OnProcessing(true, "Deleting");
|
||||||
if (!OnDeleteItemInfo(this, new vlnTreeItemInfoEventArgs(ii)))
|
if (!OnDeleteItemInfo(this, new vlnTreeItemInfoEventArgs(ii)))
|
||||||
Item.DeleteItemAndChildren(ii);
|
Item.DeleteItemAndChildren(ii);
|
||||||
OnProcessing(false,"Deleted");
|
OnProcessing(false, "Deleted");
|
||||||
OnProcessingComplete(dtStart,"Deleted");
|
OnProcessingComplete(dtStart, "Deleted");
|
||||||
if (deletedSection)
|
if (deletedSection)
|
||||||
{
|
{
|
||||||
// B2020-087 if we deleted the last sub section, then clear the SubSection_Edit in the parent's config
|
// B2020-087 if we deleted the last sub section, then clear the SubSection_Edit in the parent's config
|
||||||
@@ -3747,8 +3860,8 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
catch (System.Data.SqlClient.SqlException ex)
|
catch (System.Data.SqlClient.SqlException ex)
|
||||||
{
|
{
|
||||||
OnProcessing(false,"Delete Failed");
|
OnProcessing(false, "Delete Failed");
|
||||||
OnProcessingComplete(dtStart,"Delete Failed");
|
OnProcessingComplete(dtStart, "Delete Failed");
|
||||||
// C2020-033: Support delete to bring up Search/Incoming Transitions panel
|
// C2020-033: Support delete to bring up Search/Incoming Transitions panel
|
||||||
if (ex.Message.Contains("has External Transitions"))
|
if (ex.Message.Contains("has External Transitions"))
|
||||||
{
|
{
|
||||||
@@ -3768,13 +3881,13 @@ namespace Volian.Controls.Library
|
|||||||
private void OnProcessingComplete(DateTime dtStart, string message)
|
private void OnProcessingComplete(DateTime dtStart, string message)
|
||||||
{
|
{
|
||||||
if (ProcessingComplete != null)
|
if (ProcessingComplete != null)
|
||||||
ProcessingComplete(this, new vlnTreeTimeEventArgs(dtStart,message));
|
ProcessingComplete(this, new vlnTreeTimeEventArgs(dtStart, message));
|
||||||
}
|
}
|
||||||
public event vlnTreeViewStatusEvent Processing;
|
public event vlnTreeViewStatusEvent Processing;
|
||||||
private void OnProcessing(bool status, string message)
|
private void OnProcessing(bool status, string message)
|
||||||
{
|
{
|
||||||
if (Processing != null)
|
if (Processing != null)
|
||||||
Processing(this, new vlnTreeStatusEventArgs(status,message));
|
Processing(this, new vlnTreeStatusEventArgs(status, message));
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region SetLastValuesAndSaveIfChangedStuff
|
#region SetLastValuesAndSaveIfChangedStuff
|
||||||
@@ -3865,7 +3978,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_ItemDrag", ex);
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_ItemDrag", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@@ -4060,7 +4173,7 @@ namespace Volian.Controls.Library
|
|||||||
//tv.SelectedNode = dropNode;
|
//tv.SelectedNode = dropNode;
|
||||||
Graphics g = tv.CreateGraphics();
|
Graphics g = tv.CreateGraphics();
|
||||||
TreeNodeTriangle(g);
|
TreeNodeTriangle(g);
|
||||||
if (_position != DropPosition.Child)InsertPointer(tmp, g);
|
if (_position != DropPosition.Child) InsertPointer(tmp, g);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
@@ -4126,11 +4239,11 @@ namespace Volian.Controls.Library
|
|||||||
ee = DragDropEffects.Move;
|
ee = DragDropEffects.Move;
|
||||||
else
|
else
|
||||||
ee = DragDropEffects.None; // Default - Do nothing
|
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;
|
ee = DragDropEffects.None;
|
||||||
else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions
|
else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions
|
||||||
ee = DragDropEffects.None;
|
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;
|
FolderInfo fdropi = ((VETreeNode)dl.DropNode).VEObject as FolderInfo;
|
||||||
if (fdropi == null || fdropi.FolderDocVersionCount > 0) ee = DragDropEffects.None;
|
if (fdropi == null || fdropi.FolderDocVersionCount > 0) ee = DragDropEffects.None;
|
||||||
@@ -4141,7 +4254,7 @@ namespace Volian.Controls.Library
|
|||||||
// For HLP, just move within the same procedure
|
// For HLP, just move within the same procedure
|
||||||
// TODO: allow for section move within subsections.
|
// TODO: allow for section move within subsections.
|
||||||
ProcedureInfo pdropi = ((VETreeNode)dl.DropNode).VEObject as ProcedureInfo;
|
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))
|
else if (!IsFolder((VETreeNode)dragNode) && (dragNode.Parent != dl.DropNode))
|
||||||
ee = DragDropEffects.None;
|
ee = DragDropEffects.None;
|
||||||
@@ -4152,7 +4265,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragOver", ex);
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragOver", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4206,7 +4319,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
if(_MyLog.IsErrorEnabled)_MyLog.Error("GetTreeNodeFromData", ex);
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("GetTreeNodeFromData", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -4232,7 +4345,7 @@ namespace Volian.Controls.Library
|
|||||||
this.SelectedNode = dragNode;
|
this.SelectedNode = dragNode;
|
||||||
FolderInfo fdragi = ((VETreeNode)dragNode).VEObject as FolderInfo;
|
FolderInfo fdragi = ((VETreeNode)dragNode).VEObject as FolderInfo;
|
||||||
FolderInfo fdropi = ((VETreeNode)_LastDropLocation.DropNode).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())
|
using (Folder fdrag = fdragi.Get())
|
||||||
{
|
{
|
||||||
@@ -4251,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.
|
// 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 pdragi = ((VETreeNode)dragNode).VEObject as ProcedureInfo;
|
||||||
ProcedureInfo pdropi = null;
|
ProcedureInfo pdropi = null;
|
||||||
if (pdragi != null) // moving a procedure
|
if (pdragi != null) // moving a procedure
|
||||||
{
|
{
|
||||||
pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo;
|
pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo;
|
||||||
if (pdropi != null && pdragi.ActiveParent == pdropi.ActiveParent)
|
if (pdropi != null && pdragi.ActiveParent == pdropi.ActiveParent)
|
||||||
@@ -4271,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)
|
// 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 sdragi = ((VETreeNode)dragNode).VEObject as SectionInfo;
|
||||||
SectionInfo sdropi = null;
|
SectionInfo sdropi = null;
|
||||||
if (sdragi != null) // moving a section
|
if (sdragi != null) // moving a section
|
||||||
{
|
{
|
||||||
sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo;
|
sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo;
|
||||||
if (sdropi != null && sdragi.ActiveParent == sdropi.ActiveParent)
|
if (sdropi != null && sdragi.ActiveParent == sdropi.ActiveParent)
|
||||||
@@ -4292,7 +4405,7 @@ namespace Volian.Controls.Library
|
|||||||
// Allow drag/drop of steps within the same parent only
|
// Allow drag/drop of steps within the same parent only
|
||||||
StepInfo stdragi = ((VETreeNode)dragNode).VEObject as StepInfo;
|
StepInfo stdragi = ((VETreeNode)dragNode).VEObject as StepInfo;
|
||||||
StepInfo stdropi = null;
|
StepInfo stdropi = null;
|
||||||
if (stdragi != null) // moving a step
|
if (stdragi != null) // moving a step
|
||||||
{
|
{
|
||||||
stdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as StepInfo;
|
stdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as StepInfo;
|
||||||
if (stdropi != null && stdragi.ActiveParent == stdropi.ActiveParent)
|
if (stdropi != null && stdragi.ActiveParent == stdropi.ActiveParent)
|
||||||
@@ -4316,7 +4429,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragDrop", ex);
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragDrop", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// private void DumpMembers(object o)
|
// private void DumpMembers(object o)
|
||||||
@@ -4345,7 +4458,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
|
|
||||||
TreeNode tmp = (TreeNode)tn.Clone();
|
TreeNode tmp = (TreeNode)tn.Clone();
|
||||||
ExpandMatch(tmp,tn);
|
ExpandMatch(tmp, tn);
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
private void tv_DragDropOld(object sender, System.Windows.Forms.DragEventArgs e)
|
private void tv_DragDropOld(object sender, System.Windows.Forms.DragEventArgs e)
|
||||||
|
@@ -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);
|
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)
|
if (item == null)
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
@@ -69,7 +69,7 @@ namespace Volian.Print.Library
|
|||||||
private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab
|
private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab
|
||||||
// add symbol characters as needed
|
// add symbol characters as needed
|
||||||
// "\u25CF" - solid bullet
|
// "\u25CF" - solid bullet
|
||||||
// \x0394 - delta
|
// \u0394 - delta
|
||||||
|
|
||||||
private System.Drawing.FontStyle GetSysFontStyle(VE_Font f)
|
private System.Drawing.FontStyle GetSysFontStyle(VE_Font f)
|
||||||
{
|
{
|
||||||
@@ -267,7 +267,8 @@ namespace Volian.Print.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Rtf = GetRtf(origTab, vFont);
|
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)
|
if (ScriptCaution)
|
||||||
{
|
{
|
||||||
Rtf = GetRtf("\u25CFCaution ", vFont);
|
Rtf = GetRtf("\u25CFCaution ", vFont);
|
||||||
|
Reference in New Issue
Block a user