Compare commits

...

34 Commits

Author SHA1 Message Date
648ac8e744 C2024-041-Disable-UCF-(User-Control-of-Format)-options 2025-03-20 15:05:12 -04:00
992a8bfc49 C2024-041-Disable-UCF-(User-Control-of-Format)-options 2025-03-19 23:05:14 -04:00
74f9fc0c18 Merge pull request 'F2025-004 Customer requested the addition of a Two Column Attachment section type' (#531) from F2025-004_Ginna into Development
Format only change.  Good for testing phase
2025-03-06 16:15:32 -05:00
c2c90a2c2e F2025-004 Customer requested the addition of a Two Column Attachment section type 2025-03-06 16:13:52 -05:00
05ab077dda Merge pull request 'B2025-017-Print-Section-Sub-Section-v2' (#529) from B2025-017-Print-Section-Sub-Section-v2 into Development
good for testing phase
2025-02-28 08:16:52 -05:00
1ae422c74e B2025-017-Print-Section-Sub-Section-v2 2025-02-27 19:16:47 -05:00
5da62c3a5d Merge pull request 'Updated the developer tool that copied the format files to the FMTall an GENMACall folders. Added a list box to show what format files will not be copied.' (#528) from DeveloperToolUpdate into Development
This is an update to a tool that the developers use and is not released to the customers.
No testing required,
2025-02-27 11:21:53 -05:00
86a98118fb Updated the developer tool that copied the format files to the FMTall an GENMACall folders. Added a list box to show what format files will not be copied. 2025-02-27 11:20:31 -05:00
6a51208a13 Merge pull request 'B2025-020 Fixed NULL reference error while running the Refresh Transitions administrator tool.' (#527) from B2025-020_UpdateTransitions into Development
Looks good.
Ready for QA.
2025-02-26 11:48:06 -05:00
0749f5e724 B2025-020 Fixed NULL reference error while running the Refresh Transitions administrator tool. 2025-02-26 11:07:17 -05:00
f65644f553 Merge pull request 'B2025-018 PROMS - Issues with folder order in tree view.' (#526) from B2025-018 into Development
good for testing phase
2025-02-21 16:05:19 -05:00
dc74da6e86 B2025-018 PROMS - Issues with folder order in tree view. 2025-02-21 15:52:16 -05:00
301c4c2c97 Merge pull request 'C2025-019 RO Editor - Update the Orphaned RO Record text file to save in the current RO folder instead of the users appdata folder.' (#525) from C2025-019 into Development
Good for testing phase.
2025-02-20 16:04:06 -05:00
8ec820a7f7 C2025-019 RO Editor - Update the Orphaned RO Record text file to save in the current RO folder instead of the users appdata folder.
Found while using the WEP ROMOD database and the ROEPU folder.
Note for Word doc:  Update D.2.10 in the PROMS Manual for this update
2025-02-20 15:54:29 -05:00
18734e0f85 Merge pull request 'B2025-015 RO Editor - PROMS will get stuck in a loop (hang) while placing RO.FST information in the plant database (loading RO's) when Unit Values contain brackets. Example is Point Beach data.' (#523) from B2025-015 into Development
good for testing phase
2025-02-20 10:08:52 -05:00
9980504c47 B2025-015 RO Editor - PROMS will get stuck in a loop (hang) while placing RO.FST information in the plant database (loading RO's) when Unit Values contain brackets. Example is Point Beach data.
Some of Point Beach RO's have curly braces in the RO return value for the units in P/C.  Found this on some (5-7) Annunciator RO values.  The definition of the return value (multiple return values) uses curly braces so PROMS cannot distinguish between brackets being part of a unit value or part of the format for multiple return values.

Equipment Designation, Main Steam (MS), Annunciators have examples of return values with curly braces.  Look at the Referenced Object Definition on the Annunciators tree node for the definition of the return value.
2025-02-20 10:03:05 -05:00
626960da9f Merge pull request 'C2025-014 The zoom setting on step level bookmarks in generated PDFs will now jump to the page containing the step (like it does when a section bookmark is selected) instead of zooming in on the step.' (#522) from C2025-014_PDF_Step_BckMrk_Zoom into Development
Looks Good - Ready for QA testing
2025-02-18 15:52:52 -05:00
535728b982 C2025-014 The zoom setting on step level bookmarks in generated PDFs will now jump to the page containing the step (like it does when a section bookmark is selected) instead of zooming in on the step. 2025-02-18 15:39:55 -05:00
ace9672a2e Merge pull request 'B2025-019 RO Editor - When selecting an RO Definition, clicking the X in the corner or selecting Cancel prompts you to verify you want to close without saving changes when no changes were made if there is Parent/Child & applicability was never set for …' (#521) from B2025-019 into Development
good for testing phase (remember to build the Reference Objects project)
2025-02-18 15:38:10 -05:00
05a13861ac B2025-019 RO Editor - When selecting an RO Definition, clicking the X in the corner or selecting Cancel prompts you to verify you want to close without saving changes when no changes were made if there is Parent/Child & applicability was never set for the in-use fields. 2025-02-18 15:21:19 -05:00
24374b85c1 Merge pull request 'C2024-038 - Bringing date control to the front so left side of box shows' (#520) from C2024-038_v2 into Development
good for testing phase
2025-02-18 09:01:05 -05:00
8c358f1e3c C2024-038 - Bringing date control to the front so left side of box shows 2025-02-18 07:42:35 -05:00
289285f517 Merge pull request 'F2025-002 Per customer, remove the newly added Action Verbs from the PROMS ReplaceWords list.' (#519) from F2025-002_Farley into Development
Format only change.  Good for testing.
2025-02-17 15:12:22 -05:00
3ee9e0f4eb F2025-002 Per customer, remove the newly added Action Verbs from the PROMS ReplaceWords list. 2025-02-17 15:12:06 -05:00
d6c924a51f Merge pull request 'B2025-016 – Quick Print Shortcut Key' (#518) from B2025-016 into Development
good for testing phase
2025-02-17 08:41:17 -05:00
3a739c5b64 B2025-016 – Quick Print Shortcut Key
Found during Functional Testing:
Using "ALT R" shortcut key shows that Quick Print PDF & Create PDF both then have "P" as their shortcut. Kept Create PDF/Print as Ctrl-P. Changed Quick Print to be shortcut of Ctrl-Q.
2025-02-17 08:21:16 -05:00
3564f4ba8e Merge pull request 'C2024-038 PROMS – Summary of Changes report generation enhancements' (#517) from C2024-038 into Development
Good for testing phase
2025-02-14 15:21:08 -05:00
5ad9d81cc1 C2024-038 PROMS – Summary of Changes report generation enhancements
This is an upgrade item to add a method to exclude annotations and a way run the summary of changes report from a specific date.
2025-02-14 15:10:40 -05:00
0292634374 Merge pull request 'We are reverting back to the last DotNetBar install. We found issues on the developer side of maintaining the dialogs and forms in PROMS.' (#515) from OrgDotNetBar into Development
Software Development Environment update.  No source control document  needed.
2025-02-11 15:06:39 -05:00
d4418b8d8a We are reverting back to the last DotNetBar install. We found issues on the developer side of maintaining the dialogs and forms in PROMS. 2025-02-11 15:02:58 -05:00
a33f136e77 Merge pull request 'B2025-011-Global-search-is-not-finding-question-marks' (#514) from B2025-011-Global-search-is-not-finding-question-marks into Development
good for testing phase
2025-02-11 09:07:12 -05:00
f85f8e9e2c Merge pull request 'B2025-013 PROMS –Admin Tool Tree Behavior' (#513) from B2025-013 into Development
good for testing phase
2025-02-10 11:04:07 -05:00
4bfffc945a Merge remote-tracking branch 'origin/Development' into B2025-011-Global-search-is-not-finding-question-marks 2025-02-10 10:23:24 -05:00
16509c2eab B2025-011-Global-search-is-not-finding-question-marks 2025-02-09 22:44:01 -05:00
42 changed files with 451 additions and 570 deletions

View File

@@ -48,7 +48,7 @@
<ItemGroup>
<Reference Include="DevComponents.DotNetBar2, Version=14.1.0.37, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.8.1Build\DevComponents.DotNetBar2.dll</HintPath>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -33,6 +33,8 @@ namespace Formats
this.btnCopyFormats = new DevComponents.DotNetBar.ButtonX();
this.btnBrowse = new DevComponents.DotNetBar.ButtonX();
this.buttonX2 = new DevComponents.DotNetBar.ButtonX();
this.labelX2 = new DevComponents.DotNetBar.LabelX();
this.LstBxExcludeFiles = new DevComponents.DotNetBar.ListBoxAdv();
this.SuspendLayout();
//
// txbxPROMSFormatsPath
@@ -64,7 +66,7 @@ namespace Formats
//
this.btnCopyFormats.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnCopyFormats.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnCopyFormats.Location = new System.Drawing.Point(152, 68);
this.btnCopyFormats.Location = new System.Drawing.Point(232, 156);
this.btnCopyFormats.Name = "btnCopyFormats";
this.btnCopyFormats.Size = new System.Drawing.Size(84, 27);
this.btnCopyFormats.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
@@ -88,7 +90,7 @@ namespace Formats
//
this.buttonX2.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.buttonX2.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.buttonX2.Location = new System.Drawing.Point(329, 68);
this.buttonX2.Location = new System.Drawing.Point(409, 156);
this.buttonX2.Name = "buttonX2";
this.buttonX2.Size = new System.Drawing.Size(75, 23);
this.buttonX2.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
@@ -96,17 +98,52 @@ namespace Formats
this.buttonX2.Text = "Exit";
this.buttonX2.Click += new System.EventHandler(this.buttonX2_Click);
//
// Form1
// labelX2
//
//
//
//
this.labelX2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX2.Location = new System.Drawing.Point(12, 41);
this.labelX2.Name = "labelX2";
this.labelX2.Size = new System.Drawing.Size(200, 23);
this.labelX2.TabIndex = 5;
this.labelX2.Text = "Excluding Format Files that Start with:";
//
// LstBxExcludeFiles
//
this.LstBxExcludeFiles.AutoScroll = true;
//
//
//
this.LstBxExcludeFiles.BackgroundStyle.Class = "ListBoxAdv";
this.LstBxExcludeFiles.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.LstBxExcludeFiles.CausesValidation = false;
this.LstBxExcludeFiles.CheckStateMember = null;
this.LstBxExcludeFiles.ContainerControlProcessDialogKey = true;
this.LstBxExcludeFiles.DragDropSupport = true;
this.LstBxExcludeFiles.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LstBxExcludeFiles.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
this.LstBxExcludeFiles.Location = new System.Drawing.Point(57, 70);
this.LstBxExcludeFiles.Name = "LstBxExcludeFiles";
this.LstBxExcludeFiles.ShowToolTips = false;
this.LstBxExcludeFiles.Size = new System.Drawing.Size(134, 76);
this.LstBxExcludeFiles.TabIndex = 6;
this.LstBxExcludeFiles.Text = "listBoxAdv1";
//
// frmFormatCopy
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(496, 107);
this.ClientSize = new System.Drawing.Size(496, 191);
this.Controls.Add(this.LstBxExcludeFiles);
this.Controls.Add(this.labelX2);
this.Controls.Add(this.buttonX2);
this.Controls.Add(this.btnBrowse);
this.Controls.Add(this.btnCopyFormats);
this.Controls.Add(this.labelX1);
this.Controls.Add(this.txbxPROMSFormatsPath);
this.Name = "Form1";
this.Name = "frmFormatCopy";
this.Text = "Form1";
this.ResumeLayout(false);
@@ -119,6 +156,8 @@ namespace Formats
private DevComponents.DotNetBar.ButtonX btnCopyFormats;
private DevComponents.DotNetBar.ButtonX btnBrowse;
private DevComponents.DotNetBar.ButtonX buttonX2;
private DevComponents.DotNetBar.LabelX labelX2;
private DevComponents.DotNetBar.ListBoxAdv LstBxExcludeFiles;
}
}

View File

@@ -14,7 +14,11 @@ namespace Formats
public frmFormatCopy()
{
InitializeComponent();
SetDefaults();
foreach (string excludeThis in excludeThese)
{
LstBxExcludeFiles.Items.Add(excludeThis);
}
SetDefaults();
}
private void SetDefaults()
@@ -92,10 +96,11 @@ namespace Formats
if (!txbxPROMSFormatsPath.Text.EndsWith(@"\")) txbxPROMSFormatsPath.Text += @"\";
}
public string[] excludeThese = { "WPS", "WPB", "VCBEPP" };
private bool ExcludeFromCopy(string fn)
{
// don't copy formats whos file name starts with..
string[] excludeThese = { "WPS", "WEP", "WPB", "VCBEPP" };
foreach (string excludeThis in excludeThese)
if (fn.ToUpper().StartsWith(excludeThis)) return true;
return false;

View File

@@ -112,9 +112,9 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -1584,7 +1584,7 @@ namespace ROEditor
if (i + 1 < InUseList.Count) inuserecs = inuserecs + " ";
}
}
if (inuserecs != origFieldsInUse)
if ((inuserecs ?? "") != (origFieldsInUse ?? ""))
return true;
@@ -1599,7 +1599,7 @@ namespace ROEditor
if (i + 1 < InUseApplcList.Count) applicfieldrecs = applicfieldrecs + " ";
}
}
if (applicfieldrecs != origApplicFields)
if ((applicfieldrecs ?? "") != (origApplicFields ?? ""))
return true;
//nothing has changed

View File

@@ -264,9 +264,11 @@ namespace ROEditor
File.Delete(FstNew); // remove ROFST.NEW
if (OrphanedRecords.Length > 0)
{
StreamWriter sw = new StreamWriter(VlnSettings.TemporaryFolder + @"\Orphaned RO Records.txt");
sw.Write(OrphanedRecords.ToString());
sw.Close();
using (StreamWriter sw = new StreamWriter(Path.Combine(FstDir, @"Orphaned RO Records.txt"), false))
{
sw.Write(OrphanedRecords.ToString());
sw.Close();
}
MessageBox.Show("The file Orphaned RO Records.txt has been created", "Warning - Orphan RO Record");
}

View File

@@ -834,7 +834,7 @@ namespace RODBInterface
ValueType |= FldType;
if (PCApplicability)
text = GetPCReturnValues(theDb, pcChildern, elm, PCApplicability, inusename, text); // C2021-026 Get P/C Children return values
strbld.Append(text);
strbld.Append(text.Replace("{", "&123;").Replace("}", "&125;"));
}
else
{

View File

@@ -43,7 +43,7 @@
<ItemGroup>
<Reference Include="DevComponents.DotNetBar2, Version=14.1.0.37, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.8.1Build\DevComponents.DotNetBar2.dll</HintPath>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>

View File

@@ -19791,9 +19791,11 @@ GO
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 06/23/2022
Description: Inserts New Rofst Child Record / Default Values
Modified: 02/19/2025
Modification
Description: Added support for ROs with brackets in Unit Values
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstChildInsert]
@@ -19806,19 +19808,26 @@ GO
@title VarChar(Max),
@roid VarChar(50),
@appid VarChar(Max) = null,
@value VarChar(Max) = null
@value VarChar(Max) = null,
@missingDefaultValue VarChar(Max) = null
)
With Execute as Owner
As
Begin
Declare @AccPageID VarChar(Max) = null;
Declare @BaseAccPageID VarChar(Max) = null;
Declare @DefaultValues VarChar(Max);
Declare @RoidExt VarChar(Max);
Declare @AccPageExt VarChar(Max);
-- Create Rofst Child/Group Record
-- Default missing value if Null (Null values not allowed for the [value] field in the RofstDefaultValue table
if (DataLength(IsNull(@missingDefaultValue, '')) <= 0)
Set @missingDefaultValue = '[TBD]';
-- Create Rofst Child/Group Record --> [Roid = (12) Digits]
Insert Into RofstChild (RofstID, ID, ParentID, dbiID, [type], title, roid, appid, [value])
Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, @value);
Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, REPLACE(REPLACE(@value, '&123;', '{'), '&125;', '}'));
-- Check for appid, if exists, then insert the default value for each return type if multi-value
@@ -19826,37 +19835,58 @@ GO
Begin
-- Get Accessory Page ID
Select @AccPageID = Concat(d.dbiAP, '-', @appid)
Select @BaseAccPageID = dbo.vefn_RofstDataCleanUnitInfoTags(Concat(d.dbiAP, '-', @appid), 1)
From RofstDatabase d with (NoLock)
Where d.RofstID = @RofstID And d.dbiID = @dbiID;
-- Insert Rofst Default Value (Parent RoChild) [roid = 12]
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Values (@RofstID, @roid, Replace(@title, '\u160?', ' '), @AccPageID);
Select @DefaultValues = dbo.vefn_RofstDataReplaceVars(@value);
-- Insert Rofst Default Value(s) (Children RoChild) [roid = 16] (Do Not Insert Duplicates)
Select @DefaultValues = Replace(dbo.vefn_RofstDataReplaceVars(@value), '{', '');
If (PatIndex('%=%', @DefaultValues) > 0)
Begin
-- Insert Rofst Default Values (Multi-Values) --> [Roid = (16) Digits]
Select @DefaultValues = Replace(@DefaultValues, '{', '');
With ChildrenValues as
(
Select (x.ListPosition + 40) as 'OffsetIndex',
Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue'
From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x
Where Len(x.ListValue) > 0
)
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Select @RofstID as 'RofstID',
Concat(@roid, Cast(Format(Min(OffsetIndex), 'D4') as VarChar(4))) as 'roid',
DefaultValue as 'value',
null as 'AccPageID'
From ChildrenValues
Group By DefaultValue
Order By Min(OffsetIndex) Asc
With ChildrenValues as
(
Select x.ListPosition as 'OffsetIndex',
Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue'
From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x
Where Len(x.ListValue) > 0
)
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Select @RofstID as 'RofstID',
Concat(@roid, re.RoidExt) as 'roid',
Case When (DataLength(cv.DefaultValue) > 0) Then
REPLACE(REPLACE(REPLACE(dbo.vefn_RofstDataCleanUnitInfoTags(cv.DefaultValue, 0), '&123;', '{'), '&125;}', '}'), '&125;', '}')
Else @missingDefaultValue End as 'value',
Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID'
From ChildrenValues cv
inner join vwRofstData_RofstExtensions re on re.Offset = cv.OffsetIndex
Order By cv.OffsetIndex Asc
End
Else
Begin
-- Insert Rofst Default Value (Single Value) --> [Roid = (16) Digits]
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Select @RofstID as 'RofstID',
Concat(@roid, re.RoidExt) as 'roid',
Case When (DataLength(@DefaultValues) > 0) Then
REPLACE(REPLACE(REPLACE(dbo.vefn_RofstDataCleanUnitInfoTags(@DefaultValues, 0), '&123;', '{'), '&125;}', '}'), '&125;', '}')
Else @missingDefaultValue End as 'value',
Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID'
From vwRofstData_RofstExtensions re
Where re.Offset = 1;
End
End -- (Len(@appid) > 0)
Return;
End
Go
@@ -20448,98 +20478,6 @@ GO
ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetExtensions] Error on Creation'
GO
/****** Object: StoredProcedure [dbo].[vesp_RofstChildInsert] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstChildInsert' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstChildInsert]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2020 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 03/24/2022
Description:
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstChildInsert]
(
@RofstID Int,
@ID Int,
@ParentID Int,
@dbiID Int,
@type Int,
@title VarChar(Max),
@roid VarChar(50),
@appid VarChar(Max) = null,
@value VarChar(Max) = null
)
With Execute as Owner
As
Begin
Declare @BaseAccPageID VarChar(Max) = null;
Declare @DefaultValues VarChar(Max);
-- Create Rofst Child/Group Record --> [Roid = (12) Digits]
Insert Into RofstChild (RofstID, ID, ParentID, dbiID, [type], title, roid, appid, [value])
Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, @value);
-- Check for appid, if exists, then insert the default value for each return type if multi-value
If (Len(@appid) > 0)
Begin
-- Get Accessory Page ID
Select @BaseAccPageID = dbo.vefn_RofstDataCleanUnitInfoTags(Concat(d.dbiAP, '-', @appid), 1)
From RofstDatabase d with (NoLock)
Where d.RofstID = @RofstID And d.dbiID = @dbiID;
-- Insert Rofst Default Value(s) (Children RoChild) --> [Roid = (16) Digits]
Select @DefaultValues = Replace(dbo.vefn_RofstDataReplaceVars(@value), '{', '');
With ChildrenValues as
(
Select x.ListPosition as 'OffsetIndex',
Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue'
From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x
Where Len(x.ListValue) > 0
)
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Select @RofstID as 'RofstID',
Concat(@roid, re.RoidExt) as 'roid',
Case When (Len(RTrim(LTrim(cv.DefaultValue))) > 0 ) Then dbo.vefn_RofstDataCleanUnitInfoTags(cv.DefaultValue, 0) Else '[TBD]' End as 'value',
Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID'
From ChildrenValues cv
inner join vwRofstData_RofstExtensions re on re.Offset = cv.OffsetIndex
Order By cv.OffsetIndex Asc
End -- (Len(@appid) > 0)
Return;
End
Go
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstChildInsert] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstChildInsert] Error on Creation'
GO
/****** Object: StoredProcedure [dbo].[vesp_RofstDataSearch] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataSearch' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataSearch]
@@ -21239,121 +21177,6 @@ GO
==========================================================================================================
*/
IF EXISTS (Select * From dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vesp_RofstChildInsert]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP Procedure [dbo].[vesp_RofstChildInsert];
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2020 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 03/24/2022
Description: Inserts the RO Child object and associated return values
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstChildInsert]
(
@RofstID Int,
@ID Int,
@ParentID Int,
@dbiID Int,
@type Int,
@title VarChar(Max),
@roid VarChar(50),
@appid VarChar(Max) = null,
@value VarChar(Max) = null
)
With Execute as Owner
As
Begin
Declare @BaseAccPageID VarChar(Max) = null;
Declare @DefaultValues VarChar(Max);
Declare @RoidExt VarChar(Max);
Declare @AccPageExt VarChar(Max);
-- Create Rofst Child/Group Record --> [Roid = (12) Digits]
Insert Into RofstChild (RofstID, ID, ParentID, dbiID, [type], title, roid, appid, [value])
Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, @value);
-- Check for appid, if exists, then insert the default value for each return type if multi-value
If (Len(@appid) > 0)
Begin
-- Get Accessory Page ID
Select @BaseAccPageID = dbo.vefn_RofstDataCleanUnitInfoTags(Concat(d.dbiAP, '-', @appid), 1)
From RofstDatabase d with (NoLock)
Where d.RofstID = @RofstID And d.dbiID = @dbiID;
Select @DefaultValues = dbo.vefn_RofstDataReplaceVars(@value);
If (PatIndex('%=%', @DefaultValues) > 0)
Begin
-- Insert Rofst Default Values (Multi-Values) --> [Roid = (16) Digits]
Select @DefaultValues = Replace(@DefaultValues, '{', '');
With ChildrenValues as
(
Select x.ListPosition as 'OffsetIndex',
Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue'
From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x
Where Len(x.ListValue) > 0
)
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Select @RofstID as 'RofstID',
Concat(@roid, re.RoidExt) as 'roid',
Case When (Len(RTrim(LTrim(cv.DefaultValue))) > 0 ) Then dbo.vefn_RofstDataCleanUnitInfoTags(cv.DefaultValue, 0) Else '[TBD]' End as 'value',
Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID'
From ChildrenValues cv
inner join vwRofstData_RofstExtensions re on re.Offset = cv.OffsetIndex
Order By cv.OffsetIndex Asc
End
Else
Begin
-- Insert Rofst Default Value (Single Value) --> [Roid = (16) Digits]
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Select @RofstID as 'RofstID',
Concat(@roid, re.RoidExt) as 'roid',
Case When (Len(RTrim(LTrim(@DefaultValues))) > 0 ) Then dbo.vefn_RofstDataCleanUnitInfoTags(@DefaultValues, 0) Else '[TBD]' End as 'value',
Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID'
From vwRofstData_RofstExtensions re
Where re.Offset = 1;
End
End -- (Len(@appid) > 0)
Return;
End
Go
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstChildInsert] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstChildInsert] Error on Creation'
GO
If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceVars' AND type in (N'FN'))
DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars]
GO
@@ -21632,124 +21455,6 @@ GO
ELSE PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Error on Creation'
GO
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstChildInsert' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstChildInsert]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2020 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 03/24/2022
Description: Inserts the RO Child object and associated return values
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstChildInsert]
(
@RofstID Int,
@ID Int,
@ParentID Int,
@dbiID Int,
@type Int,
@title VarChar(Max),
@roid VarChar(50),
@appid VarChar(Max) = null,
@value VarChar(Max) = null,
@missingDefaultValue VarChar(Max) = null
)
With Execute as Owner
As
Begin
Declare @BaseAccPageID VarChar(Max) = null;
Declare @DefaultValues VarChar(Max);
Declare @RoidExt VarChar(Max);
Declare @AccPageExt VarChar(Max);
-- Default missing value if Null (Null values not allowed for the [value] field in the RofstDefaultValue table
if (DataLength(IsNull(@missingDefaultValue, '')) <= 0)
Set @missingDefaultValue = '[TBD]';
-- Create Rofst Child/Group Record --> [Roid = (12) Digits]
Insert Into RofstChild (RofstID, ID, ParentID, dbiID, [type], title, roid, appid, [value])
Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, @value);
-- Check for appid, if exists, then insert the default value for each return type if multi-value
If (Len(@appid) > 0)
Begin
-- Get Accessory Page ID
Select @BaseAccPageID = dbo.vefn_RofstDataCleanUnitInfoTags(Concat(d.dbiAP, '-', @appid), 1)
From RofstDatabase d with (NoLock)
Where d.RofstID = @RofstID And d.dbiID = @dbiID;
Select @DefaultValues = dbo.vefn_RofstDataReplaceVars(@value);
If (PatIndex('%=%', @DefaultValues) > 0)
Begin
-- Insert Rofst Default Values (Multi-Values) --> [Roid = (16) Digits]
Select @DefaultValues = Replace(@DefaultValues, '{', '');
With ChildrenValues as
(
Select x.ListPosition as 'OffsetIndex',
Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue'
From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x
Where Len(x.ListValue) > 0
)
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Select @RofstID as 'RofstID',
Concat(@roid, re.RoidExt) as 'roid',
Case When (DataLength(cv.DefaultValue) > 0) Then dbo.vefn_RofstDataCleanUnitInfoTags(cv.DefaultValue, 0) Else @missingDefaultValue End as 'value',
Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID'
From ChildrenValues cv
inner join vwRofstData_RofstExtensions re on re.Offset = cv.OffsetIndex
Order By cv.OffsetIndex Asc
End
Else
Begin
-- Insert Rofst Default Value (Single Value) --> [Roid = (16) Digits]
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
Select @RofstID as 'RofstID',
Concat(@roid, re.RoidExt) as 'roid',
Case When (DataLength(@DefaultValues) > 0) Then dbo.vefn_RofstDataCleanUnitInfoTags(@DefaultValues, 0) Else @missingDefaultValue End as 'value',
Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID'
From vwRofstData_RofstExtensions re
Where re.Offset = 1;
End
End -- (Len(@appid) > 0)
Return;
End
Go
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstChildInsert] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstChildInsert] Error on Creation'
GO
/*
==========================================================================================================
End: B2022-124: [JPR] Blank RO Values (All Spaces) printing as ?
@@ -24132,8 +23837,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
set @RevDate = '10/28/2024 11:24'
set @RevDescription = 'Add the ability for PROMS to remember the procedure tabs that were open when you closed PROMS'
set @RevDate = '2/19/2025 11:24'
set @RevDescription = 'Added support for legacy ROs with brackets in Unit Values'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription

View File

@@ -103,13 +103,13 @@
<Reference Include="C1.Win.C1Command.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=e808566f358766d8" />
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="C1.Win.C1Input.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=7e7ff60f0c214f9a, processorArchitecture=MSIL" />
<Reference Include="Csla, Version=2.1.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<Reference Include="Csla, Version=3.8.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\CSLA20cs_DLL_Net_4.8.1_Build\Csla.dll</HintPath>
</Reference>
<Reference Include="DevComponents.DotNetBar2, Version=14.1.0.37, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.8.1Build\DevComponents.DotNetBar2.dll</HintPath>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>

View File

@@ -2121,16 +2121,17 @@ namespace VEPROMS
btnSecurity = new ButtonItem("btnSecurity", "Security"); // C2019-002: move security & format items into submenus
btnFormats = new ButtonItem("btnFormats", "Formats");
btnAdmin.SubItems.Add(btnSecurity);
btnAdmin.SubItems.Add(btnFormats);
// btnAdmin.SubItems.Add(btnFormats); // C2024 - 041 remove from Admin(V button) menu
btnAdmin.SubItems.Add(btnUpdateFormats); // C2024 - 041 remove from Admin(V button) menu
btnUserControlOfFormats = new ButtonItem("btnUserControlOfFormats", "User Control of Formats");
btnFormats.SubItems.Add(btnUpdateFormats);
btnFormats.SubItems.Add(btnUserControlOfFormats);
//btnFormats.SubItems.Add(btnUpdateFormats);
//btnFormats.SubItems.Add(btnUserControlOfFormats); // C2024-041 remove from Admin (V button) menu
btnUserControlOfFormats.Click += new EventHandler(btnUserControlOfFormats_Click);
btnUserControlOfFormatsExport = new ButtonItem("btnUserControlOfFormatsExport", "Export User Control of Formats");
btnFormats.SubItems.Add(btnUserControlOfFormatsExport);
//btnFormats.SubItems.Add(btnUserControlOfFormatsExport); // C2024-041 remove from Admin (V button) menu
btnUserControlOfFormatsExport.Click += new EventHandler(btnUserControlOfFormatsExport_Click);
btnUserControlOfFormatsImport = new ButtonItem("btnUserControlOfFormatsImport", "Import User Control of Formats");
btnFormats.SubItems.Add(btnUserControlOfFormatsImport);
//btnFormats.SubItems.Add(btnUserControlOfFormatsImport); // C2024-041 remove from Admin (V button) menu
btnUserControlOfFormatsImport.Click += new EventHandler(btnUserControlOfFormatsImport_Click);
btnManageSecurity = new ButtonItem("btnManageSecurity", "Manage Security");
btnSecurity.SubItems.Add(btnManageSecurity);

View File

@@ -194,6 +194,23 @@ namespace VEPROMS.CSLA.Library
public partial class AnnotationAuditInfoList
{
/// <summary>
/// C2024- 038 - Summary of Changes report generation enhancements
/// Constructor - takes a Generic list of AnnotationAuditInfo
/// and creates a AnnotationAuditInfoList
/// </summary>
public AnnotationAuditInfoList(List<AnnotationAuditInfo> lst)
{
IsReadOnly = false;
if (lst != null)
{
foreach (AnnotationAuditInfo itm in lst)
this.Add(itm);
}
IsReadOnly = true;
}
/// <summary>
/// Return a list of all AnnotationAuditInfo by ItemID.
/// </summary>
@@ -487,6 +504,23 @@ namespace VEPROMS.CSLA.Library
public partial class ContentAuditInfoList
{
/// <summary>
/// C2024- 038 - Summary of Changes report generation enhancements
/// Constructor - takes a Generic list of ContentAuditInfo
/// and creates a ContentAuditInfoList
/// </summary>
public ContentAuditInfoList(List<ContentAuditInfo> lst)
{
IsReadOnly = false;
if (lst != null)
{
foreach (ContentAuditInfo itm in lst)
this.Add(itm);
}
IsReadOnly = true;
}
/// <summary>
/// Return a list of all ContentAuditInfo by ContentID.
/// </summary>

View File

@@ -19,6 +19,7 @@ using System.Drawing;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text.RegularExpressions;
using System.Linq;
namespace VEPROMS.CSLA.Library
{
@@ -143,6 +144,8 @@ namespace VEPROMS.CSLA.Library
}
#endregion
#region SortingChildren
private static bool IsInManualOrderNullFix = false;
[NonSerialized]
public Csla.SortedBindingList<FolderInfo> _SortedChildFolders;
public Csla.SortedBindingList<FolderInfo> SortedChildFolders
@@ -151,6 +154,29 @@ namespace VEPROMS.CSLA.Library
{
if (ChildFolders != null)
{
//B2025-018 Issues with folder order in tree view
// if any ChildFolders with a missing Manual Order
// set them to the end of the list
// use IsInManualOrderNullFix - so, if setting ChildFolders Currently,
// do not try to set them (thus creating an infinite loop)
if (!IsInManualOrderNullFix && ChildFolders.Any(x => x.ManualOrder == null))
{
IsInManualOrderNullFix = true;
foreach (FolderInfo fi in ChildFolders.Where(x => x.ManualOrder == null))
{
using (FolderInfo parfolderinfo = FolderInfo.Get(fi.ParentID))
{
using (Folder fldr = fi.Get())
{
fldr.ManualOrder = parfolderinfo.NewManualOrder(9999);
fldr.Save();
}
}
}
RefreshChildFolders();
IsInManualOrderNullFix = false;
}
if (_SortedChildFolders == null)
{
_SortedChildFolders = new SortedBindingList<FolderInfo>(ChildFolders);
@@ -166,6 +192,10 @@ namespace VEPROMS.CSLA.Library
return _SortedChildFolders;
}
}
//B2025-018 Issues with folder order in tree view
//Note: this should be called from the parent item
//As you want to put this into the sorted order of the parent item
public double? NewManualOrder(int index)
{
double? retval = 1;
@@ -174,13 +204,27 @@ namespace VEPROMS.CSLA.Library
else if (index == 0)
{
if (retval >= SortedChildFolders[index].ManualOrder) // If one is too big, then divide first value in half
retval = SortedChildFolders[index].ManualOrder / 2;
retval = SortedChildFolders[index].ManualOrder / 2.0;
}
else if (SortedChildFolders.Count > index)
{
retval += SortedChildFolders[index - 1].ManualOrder; // Just go to the next whole number
if (retval >= SortedChildFolders[index].ManualOrder)
retval = (SortedChildFolders[index - 1].ManualOrder + SortedChildFolders[index].ManualOrder) / 2;
//B2025-018 Issues with folder order in tree view
//filter to just items with the same parent
//want new order to be halfway between the previous item
//and the next ManualOrder
var tmp = SortedChildFolders.Where(x => x.ParentID == FolderID);
var lbound = SortedChildFolders[index - 1].ManualOrder;
var ubound = tmp.OrderBy(y => y.ManualOrder).FirstOrDefault(x => x.ManualOrder > lbound)?.ManualOrder;
if (ubound != null)
{
retval = ((ubound - lbound) / 2.0) + lbound;
}
else
{
//in this case, item before is highest for that parent
//so just make this 1 more
retval = lbound + 1;
}
}
else
{

View File

@@ -805,7 +805,21 @@ namespace VEPROMS.CSLA.Library
}
}
}
// B2025-020 Null Reference fix. Added check for valid index into the TransitionTypeList
if (!forceConvertToText)
{
if (traninfo.TranType >= itemInfo.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList.Count)
{
forceConvertToText = true;
TranFixCount++;
itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition type is not available");
using (Content content = Content.Get(itemInfo.MyContent.ContentID))
{
content.FixTransitionText(traninfo, true);
content.Save();
}
}
}
if (!forceConvertToText)
{
if (itemInfo.MyProcedure.ItemID != traninfo.MyItemToID.MyProcedure.ItemID) //different proc

View File

@@ -769,6 +769,15 @@ namespace VEPROMS.CSLA.Library
tmp.MyParent = myParent;
tmp.Name = name;
tmp.ShortName = shortName;
//B2025-018 Issues with folder order in tree view
//if no manual order is set, add it at the end
if (myParent != null)
{
using (FolderInfo parfolderinfo = FolderInfo.Get(myParent.FolderID))
tmp.ManualOrder = parfolderinfo.NewManualOrder(9999);
}
return tmp;
}
public static Folder New(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config, DateTime dts, string usrID)
@@ -784,6 +793,15 @@ namespace VEPROMS.CSLA.Library
tmp.Config = config;
tmp.DTS = dts;
tmp.UsrID = usrID;
//B2025-018 Issues with folder order in tree view
//if no manual order is set, add it at the end
if (myParent != null && manualOrder == null)
{
using (FolderInfo parfolderinfo = FolderInfo.Get(myParent.FolderID))
tmp.ManualOrder = parfolderinfo.NewManualOrder(9999);
}
return tmp;
}
public static Folder MakeFolder(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config, DateTime dts, string usrID)
@@ -813,6 +831,15 @@ namespace VEPROMS.CSLA.Library
tmp.MyFormat = myFormat;
tmp.ManualOrder = manualOrder;
tmp.Config = config;
//B2025-018 Issues with folder order in tree view
//if no manual order is set, add it at the end
if (myParent != null && manualOrder == null)
{
using (FolderInfo parfolderinfo = FolderInfo.Get(myParent.FolderID))
tmp.ManualOrder = parfolderinfo.NewManualOrder(9999);
}
return tmp;
}
public static Folder MakeFolder(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config)

View File

@@ -83,13 +83,13 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Csla, Version=2.1.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<Reference Include="Csla, Version=3.8.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\CSLA20cs_DLL_Net_4.8.1_Build\Csla.dll</HintPath>
</Reference>
<Reference Include="DevComponents.DotNetBar2, Version=14.1.0.37, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.8.1Build\DevComponents.DotNetBar2.dll</HintPath>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -167,9 +167,7 @@
<Compile Include="Format\PageStyles.cs" />
<Compile Include="Format\PlantFormat.cs" />
<Compile Include="Format\vlnFormat.cs" />
<Compile Include="frmRofstLoadStatus.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmRofstLoadStatus.cs" />
<Compile Include="frmRofstLoadStatus.designer.cs">
<DependentUpon>frmRofstLoadStatus.cs</DependentUpon>
</Compile>

View File

@@ -66,7 +66,7 @@
<ItemGroup>
<Reference Include="DevComponents.DotNetBar2, Version=14.1.0.37, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.8.1Build\DevComponents.DotNetBar2.dll</HintPath>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

View File

@@ -10,6 +10,7 @@ using System.IO;
using System.Text.RegularExpressions;
using JR.Utils.GUI.Forms;
using Volian.Base.Library;
using System.Linq;
namespace Volian.Controls.Library
{
@@ -163,7 +164,7 @@ namespace Volian.Controls.Library
else
{
DateTime revDate;
if (!DateTime.TryParse(cfg.Print_RevDate, out revDate)) revDate = MyProcedureInfo.ChangeBarDate; // DateTime.Now;
if (!DateTime.TryParse(cfg.Print_RevDate, out revDate)) revDate = MyProcedureInfo.ChangeBarDate; // DateTime.Now;
SetRevDate(revDate);
//SetRevDate(DateTime.Parse(cfg.Print_RevDate));
}
@@ -263,7 +264,7 @@ namespace Volian.Controls.Library
{
AnnotationTypeInfo ati = AnnotationTypeInfo.Get(aai.TypeID);
// B2023-066: Crash when trying to access a deleted annotation type (added the ati==null check)
tn = annotationDeleted.Nodes.Add(ati==null?"Deleted Annotation Type":ati.Name);
tn = annotationDeleted.Nodes.Add(ati == null ? "Deleted Annotation Type" : ati.Name);
}
TreeNode cn = tn.Nodes.Add(aai.ListString());
cn.Tag = aai;
@@ -517,7 +518,7 @@ namespace Volian.Controls.Library
if (delC.Type >= 0 && delC.Type < 1000)
{
int indx = delC.Config.IndexOf("DelProcReason");
if (indx >= 0 && delC.Config.Length > indx+15) // 15 accounts for 'DelProcReason = "'
if (indx >= 0 && delC.Config.Length > indx + 15) // 15 accounts for 'DelProcReason = "'
{
string reason = delC.Config.Substring(indx + 15);
if (reason != null && reason.Length > 0)
@@ -529,7 +530,7 @@ namespace Volian.Controls.Library
}
}
}
TreeNode tnn = deletedItems.Nodes.Add(iai.ToString()+"; Reason: " + strR);
TreeNode tnn = deletedItems.Nodes.Add(iai.ToString() + "; Reason: " + strR);
tnn.Tag = iai;
#endregion
}
@@ -558,7 +559,7 @@ namespace Volian.Controls.Library
if (MyProcedureInfo == null)
{
this.ParentForm.Cursor = Cursors.Default;
btnViewSummaryReport.Enabled = btnViewChronologyReport.Enabled = lbChanges.Items.Count > 0;
btnViewSummaryReport.Enabled = btnViewChronologyReport.Enabled = cbSumExcludeAnn.Enabled = DT_SumAsOf.Enabled = lbChanges.Items.Count > 0;
return;
}
ContentAuditInfoList cail2;
@@ -586,7 +587,7 @@ namespace Volian.Controls.Library
// B2020-156: When procedure title is changed, it does not print in Summary/Chronolgy of changes.
// Need to only check the date (not the date/time) for some procedures, the original item was listed
// in the list box and should not be because some MyRevDate's did not have time included.
if (CompareDateOrDateTime(cai.DTS,MyRevDate) || cai.ActionWhen > MyRevDate)
if (CompareDateOrDateTime(cai.DTS, MyRevDate) || cai.ActionWhen > MyRevDate)
{
string itemTitle = FixPath(cai.Path);
lbChanges.Items.Add(cai);
@@ -614,7 +615,7 @@ namespace Volian.Controls.Library
}
//Console.WriteLine("WalkProcedure fini: {0} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalSeconds);
this.ParentForm.Cursor = Cursors.Default;
btnViewSummaryReport.Enabled = btnViewChronologyReport.Enabled = lbChanges.Items.Count > 0;
btnViewSummaryReport.Enabled = btnViewChronologyReport.Enabled = cbSumExcludeAnn.Enabled = DT_SumAsOf.Enabled = lbChanges.Items.Count > 0;
RefreshRequired = false;
return;
}
@@ -648,9 +649,73 @@ namespace Volian.Controls.Library
//_AnnotationList = AnnotationAuditInfoList.GetChronology(0, 0, MyProcedureInfo.ChangeBarDate);
//added setting selected slave in order for reports to replace unit number,etc jcb 20101010
MyItemInfo.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = ApplDisplayMode;
// OnSummaryPrintRequest(new DisplayHistoryReportEventArgs(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MySummary.pdf", MyItemInfo.MyProcedure, _SummaryAuditList, _AnnotationList));
OnSummaryPrintRequest(new DisplayHistoryReportEventArgs(string.Format(@"{0}\{1} Summary of Changes.pdf", Volian.Base.Library.VlnSettings.TemporaryFolder, MyItemInfo.MyProcedure.PDFNumber), MyItemInfo.MyProcedure, _SummaryAuditList, _AnnotationList));
//}
var dhr = new DisplayHistoryReportEventArgs(string.Format(@"{0}\{1} Summary of Changes.pdf", Volian.Base.Library.VlnSettings.TemporaryFolder, MyItemInfo.MyProcedure.PDFNumber), MyItemInfo.MyProcedure, null, null);
//C2024- 038 - Summary of Changes report generation enhancements
//check if need to modify
// _SummaryAuditList
if (DT_SumAsOf.Checked)
dhr.AuditList = FilterSummaryByDate(_SummaryAuditList, DT_SumAsOf.Value);
else
dhr.AuditList = _SummaryAuditList;
//C2024- 038 - Summary of Changes report generation enhancements
// if Exclude Annotations Checked
// send an empty list instead of
//_AnnotationList
if (cbSumExcludeAnn.Checked)
dhr.AnnotationList = new AnnotationAuditInfoList(null);
else if (DT_SumAsOf.Checked)
dhr.AnnotationList = FilterSummaryByDate_Annotations(_AnnotationList, DT_SumAsOf.Value);
else
{ dhr.AnnotationList = _AnnotationList; }
OnSummaryPrintRequest(dhr);
}
//C2024- 038 - Summary of Changes report generation enhancements
//modify _SummaryAuditList
//to limit to a specific date
private ContentAuditInfoList FilterSummaryByDate(ContentAuditInfoList summaryAuditList, DateTime value)
{
List<ContentAuditInfo> slst = summaryAuditList.Clone().ToList();
//Grab the first change to each item before the date and set that to the AsOf date
foreach (ContentAuditInfo firstbeforedate in slst.GroupBy(x => x.ItemID).Select(x => x.OrderByDescending(y => y.DTS).FirstOrDefault(d => d.DTS < value)))
{
if (firstbeforedate != null && firstbeforedate.ActionWhat != "Deleted")
{
firstbeforedate.ActionWhat = $"As Of: {value.ToShortDateString()}";
}
}
//remove all items before the date we are checking against
//note that for deleted - sometimes the DTS is not correct and
//need to use the ActionWhen
slst.RemoveAll(x => x.DTS < value && !x.ActionWhat.StartsWith("As Of:") && (x.ActionWhat != "Deleted" || (x.ActionWhen < x.DTS ? x.DTS : x.ActionWhen) < value));
//remove all items where first text matches the last text
//unless it was added after the date we are checking against
//or the last item is a deletion that occurred after
//the date we are checking against
var itms = slst.Select(x => x.ItemID).Distinct().ToList();
foreach (int itmID in itms)
{
ContentAuditInfo first = slst.Where(i => i.ItemID == itmID).OrderBy(y => y.DTS).FirstOrDefault();
ContentAuditInfo last = slst.Where(i => i.ItemID == itmID).OrderByDescending(y => y.DTS).FirstOrDefault();
if (first != null && last != null && first.DTS < value && (last.ActionWhat != "Deleted" || (last.ActionWhen < last.DTS ? last.DTS : last.ActionWhen) < value) && ItemInfo.ConvertToDisplayText(first.Text) == ItemInfo.ConvertToDisplayText(last.Text))
slst.RemoveAll(x => x.ItemID == itmID);
}
return new ContentAuditInfoList(slst);
}
//C2024- 038 - Summary of Changes report generation enhancements
//modify _SummaryAuditList
//to limit to a specific date
private AnnotationAuditInfoList FilterSummaryByDate_Annotations(AnnotationAuditInfoList annotationAuditList, DateTime value)
{
return new AnnotationAuditInfoList(annotationAuditList.Where(x => x.DTS >= value).ToList());
}
private void btnRefresh_Click(object sender, EventArgs e)
{
@@ -1060,7 +1125,7 @@ namespace Volian.Controls.Library
set { _AuditList = value; }
}
private AnnotationAuditInfoList _AnnotationList;
public AnnotationAuditInfoList AnnotationList
public AnnotationAuditInfoList AnnotationList
{
get { return _AnnotationList; }
set { _AnnotationList = value; }

View File

@@ -1699,6 +1699,8 @@ namespace Volian.Controls.Library
else lbSrchResultsIncTrans.DisplayMember = _DisplayMember;
if (_SearchResults != null)
{
// record count flag
bool reccnt = true;
// B2021-076: Proms search results are not presented in order when printed to PDF
// B2023-041 - backed out previous change as it was not needed and was preventing the sorting of search results text
if (cbSorted.Checked)
@@ -1713,11 +1715,37 @@ namespace Volian.Controls.Library
// B2021-076: Proms search results are not presented in order when printed to PDF
var sortedResults = _SearchResults.OrderBy(x => x.SearchDefaultSort).ToList();
// if searching for just a "?" remove all the special code matches and leaving only the true matches.
if (SearchString == "\\?")
{
string pat = @"\?";
Regex r = new Regex(pat, RegexOptions.IgnoreCase);
for (int i = 0; i < sortedResults.Count; i++)
{
Match m = r.Match(sortedResults[i].DisplayText);
if (m.Success)
{
continue;
}
else
{
sortedResults.Remove(sortedResults[i]);
i--;
}
}
grpPanSearchResults.Text = string.Format("Search Results Found: {0}", sortedResults.Count);
reccnt = false;
}
if (tabSearchTypes.SelectedTab != tabSearchTypes.Tabs[4]) lbSrchResults.DataSource = sortedResults;
else lbSrchResultsIncTrans.DataSource = sortedResults;
}
grpPanSearchResults.Text = string.Format("Search Results Found: {0}", _SearchResults.Count);
if (reccnt)
{
grpPanSearchResults.Text = string.Format("Search Results Found: {0}", _SearchResults.Count);
}
grpPanSearchResults.Style.BackColor = Color.LightGreen;// Color.YellowGreen; Color.DarkSeaGreen;
}
else
@@ -2076,6 +2104,7 @@ namespace Volian.Controls.Library
//TypesSelected = (typstr != null) ? "Searched Step Types: " + typstr : "Searched All Step Types";
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types");
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString /*.Replace(@"\",@"\u9586?")*/, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, byWordPrefix, byWordSuffix);
cmbResultsStyleIndex = 3; // display step text in results
//}
}

View File

@@ -89,13 +89,13 @@
</Reference>
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="C1.Win.C1SpellChecker.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="Csla, Version=2.1.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<Reference Include="Csla, Version=3.8.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\CSLA20cs_DLL_Net_4.8.1_Build\Csla.dll</HintPath>
</Reference>
<Reference Include="DevComponents.DotNetBar2, Version=14.1.0.37, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.8.1Build\DevComponents.DotNetBar2.dll</HintPath>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<SpecificVersion>False</SpecificVersion>
@@ -125,164 +125,110 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AlphabeticalNumbering.cs" />
<Compile Include="AnnotationDetails.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="AnnotationDetails.cs" />
<Compile Include="AnnotationDetails.designer.cs">
<DependentUpon>AnnotationDetails.cs</DependentUpon>
</Compile>
<Compile Include="AnnotationSearch.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="AnnotationSearch.cs" />
<Compile Include="AnnotationSearch.designer.cs">
<DependentUpon>AnnotationSearch.cs</DependentUpon>
</Compile>
<Compile Include="BorderListBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="BorderListBox.cs" />
<Compile Include="BorderListBox.designer.cs">
<DependentUpon>BorderListBox.cs</DependentUpon>
</Compile>
<Compile Include="BorderSelectionPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="BorderSelectionPanel.cs" />
<Compile Include="BorderSelectionPanel.Designer.cs">
<DependentUpon>BorderSelectionPanel.cs</DependentUpon>
</Compile>
<Compile Include="ConvertTable.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DisplayApplicability.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="ConvertTable.cs" />
<Compile Include="DisplayApplicability.cs" />
<Compile Include="DisplayApplicability.designer.cs">
<DependentUpon>DisplayApplicability.cs</DependentUpon>
</Compile>
<Compile Include="DisplayBookMarks.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplayBookMarks.cs" />
<Compile Include="DisplayBookMarks.Designer.cs">
<DependentUpon>DisplayBookMarks.cs</DependentUpon>
</Compile>
<Compile Include="DisplayFoldoutMaint.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplayFoldoutMaint.cs" />
<Compile Include="DisplayFoldoutMaint.Designer.cs">
<DependentUpon>DisplayFoldoutMaint.cs</DependentUpon>
</Compile>
<Compile Include="DisplayHistory.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplayHistory.cs" />
<Compile Include="DisplayHistory.designer.cs">
<DependentUpon>DisplayHistory.cs</DependentUpon>
</Compile>
<Compile Include="DisplayLibDocs.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplayLibDocs.cs" />
<Compile Include="DisplayLibDocs.Designer.cs">
<DependentUpon>DisplayLibDocs.cs</DependentUpon>
</Compile>
<Compile Include="DisplayReports.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplayReports.cs" />
<Compile Include="DisplayReports.designer.cs">
<DependentUpon>DisplayReports.cs</DependentUpon>
</Compile>
<Compile Include="DisplaySearch.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplaySearch.cs" />
<Compile Include="DisplaySearch.Designer.cs">
<DependentUpon>DisplaySearch.cs</DependentUpon>
</Compile>
<Compile Include="DisplayTags.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplayTags.cs" />
<Compile Include="DisplayTags.Designer.cs">
<DependentUpon>DisplayTags.cs</DependentUpon>
</Compile>
<Compile Include="dlgChgId.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgChgId.cs" />
<Compile Include="dlgChgId.designer.cs">
<DependentUpon>dlgChgId.cs</DependentUpon>
</Compile>
<Compile Include="dlgDelProcReason.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgDelProcReason.cs" />
<Compile Include="dlgDelProcReason.designer.cs">
<DependentUpon>dlgDelProcReason.cs</DependentUpon>
</Compile>
<Compile Include="dlgEnhMissingItem.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgEnhMissingItem.cs" />
<Compile Include="dlgEnhMissingItem.Designer.cs">
<DependentUpon>dlgEnhMissingItem.cs</DependentUpon>
</Compile>
<Compile Include="dlgUCFImportOptions.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgUCFImportOptions.cs" />
<Compile Include="dlgUCFImportOptions.Designer.cs">
<DependentUpon>dlgUCFImportOptions.cs</DependentUpon>
</Compile>
<Compile Include="EditItem.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="EditItem.cs" />
<Compile Include="EditItem.Designer.cs">
<DependentUpon>EditItem.cs</DependentUpon>
</Compile>
<Compile Include="FindReplace.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FindReplace.cs" />
<Compile Include="FindReplace.designer.cs">
<DependentUpon>FindReplace.cs</DependentUpon>
</Compile>
<Compile Include="FormatUtility.cs" />
<Compile Include="frmEnhanced.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmEnhanced.cs" />
<Compile Include="frmEnhanced.Designer.cs">
<DependentUpon>frmEnhanced.cs</DependentUpon>
</Compile>
<Compile Include="frmImportWordContents.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmImportWordContents.cs" />
<Compile Include="frmImportWordContents.Designer.cs">
<DependentUpon>frmImportWordContents.cs</DependentUpon>
</Compile>
<Compile Include="frmSendErrorLog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmSendErrorLog.cs" />
<Compile Include="frmSendErrorLog.designer.cs">
<DependentUpon>frmSendErrorLog.cs</DependentUpon>
</Compile>
<Compile Include="frmViewTextFile.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmViewTextFile.cs" />
<Compile Include="frmViewTextFile.designer.cs">
<DependentUpon>frmViewTextFile.cs</DependentUpon>
</Compile>
<Compile Include="GridItem.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="GridItem.cs" />
<Compile Include="GridItem.Designer.cs">
<DependentUpon>GridItem.cs</DependentUpon>
</Compile>
<Compile Include="ImageItem.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="ImageItem.cs" />
<Compile Include="ImageItem.designer.cs">
<DependentUpon>ImageItem.cs</DependentUpon>
</Compile>
<Compile Include="LinkText.cs" />
<Compile Include="PreviewMultiLineRO.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PreviewMultiLineRO.cs" />
<Compile Include="PreviewMultiLineRO.designer.cs">
<DependentUpon>PreviewMultiLineRO.cs</DependentUpon>
</Compile>
<Compile Include="PreviewROImage.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PreviewROImage.cs" />
<Compile Include="PreviewROImage.designer.cs">
<DependentUpon>PreviewROImage.cs</DependentUpon>
</Compile>
@@ -291,28 +237,20 @@
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="RTBItem.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="RTBItem.cs" />
<Compile Include="RTBItem.designer.cs">
<DependentUpon>RTBItem.cs</DependentUpon>
</Compile>
<Compile Include="RtfRawItem.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="RtfRawItem.cs" />
<Compile Include="RtfRawItem.designer.cs">
<DependentUpon>RtfRawItem.cs</DependentUpon>
</Compile>
<Compile Include="Settings.cs" />
<Compile Include="StepPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="StepPanel.cs" />
<Compile Include="StepPanel.designer.cs">
<DependentUpon>StepPanel.cs</DependentUpon>
</Compile>
<Compile Include="DisplayRO.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplayRO.cs" />
<Compile Include="DisplayRO.Designer.cs">
<DependentUpon>DisplayRO.cs</DependentUpon>
</Compile>
@@ -322,43 +260,29 @@
<Compile Include="DisplayTabControl.designer.cs">
<DependentUpon>DisplayTabControl.cs</DependentUpon>
</Compile>
<Compile Include="DisplayTabItem.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DisplayTabItem.cs" />
<Compile Include="DisplayTabItem.designer.cs">
<DependentUpon>DisplayTabItem.cs</DependentUpon>
</Compile>
<Compile Include="StepTabPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="StepTabPanel.cs" />
<Compile Include="StepTabPanel.designer.cs">
<DependentUpon>StepTabPanel.cs</DependentUpon>
</Compile>
<Compile Include="StepTabRibbon.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="StepTabRibbon.cs" />
<Compile Include="StepTabRibbon.designer.cs">
<DependentUpon>StepTabRibbon.cs</DependentUpon>
</Compile>
<Compile Include="DisplayTransition.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="DisplayTransition.cs" />
<Compile Include="DisplayTransition.Designer.cs">
<DependentUpon>DisplayTransition.cs</DependentUpon>
</Compile>
<Compile Include="DropDownNode.cs" />
<Compile Include="DropDownTree.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DSOTabPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DropDownTree.cs" />
<Compile Include="DSOTabPanel.cs" />
<Compile Include="DSOTabPanel.designer.cs">
<DependentUpon>DSOTabPanel.cs</DependentUpon>
</Compile>
<Compile Include="FlagEnumEditor.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="FlagEnumEditor.cs" />
<Compile Include="MostRecentItem.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
@@ -366,65 +290,47 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="RichTextBox41.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="RichTextBox41.cs" />
<Compile Include="RichTextBox41.Designer.cs">
<DependentUpon>RichTextBox41.cs</DependentUpon>
</Compile>
<Compile Include="RomanNumeral.cs" />
<Compile Include="RTBAPI.cs" />
<Compile Include="TransPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="TransPanel.cs" />
<Compile Include="TransPanel.designer.cs">
<DependentUpon>TransPanel.cs</DependentUpon>
</Compile>
<Compile Include="VlnBorders.cs" />
<Compile Include="vlnExpander.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="vlnExpander.cs" />
<Compile Include="vlnExpander.designer.cs">
<DependentUpon>vlnExpander.cs</DependentUpon>
</Compile>
<Compile Include="StepRTB.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="StepRTB.cs" />
<Compile Include="StepRTB.designer.cs">
<DependentUpon>StepRTB.cs</DependentUpon>
</Compile>
<Compile Include="VlnFlexGrid.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="VlnFlexGrid.cs" />
<Compile Include="VlnFlexGrid.Designer.cs">
<DependentUpon>VlnFlexGrid.cs</DependentUpon>
</Compile>
<Compile Include="VlnGridCellShading.cs" />
<Compile Include="VlnSpellCheck.cs" />
<Compile Include="VlnSpellCheckDlg.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="VlnSpellCheckDlg.cs" />
<Compile Include="VlnSpellCheckDlg.designer.cs">
<DependentUpon>VlnSpellCheckDlg.cs</DependentUpon>
</Compile>
<Compile Include="vlnTreeCombo.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="vlnTreeCombo.cs" />
<Compile Include="vlnTreeView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="vlnTreeView.Designer.cs">
<DependentUpon>vlnTreeView.cs</DependentUpon>
</Compile>
<Compile Include="vlnTreeView3.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="vlnTreeView3.cs" />
<Compile Include="vlnTreeView3.Designer.cs">
<DependentUpon>vlnTreeView3.cs</DependentUpon>
</Compile>
<Compile Include="WebBrowser.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="WebBrowser.cs" />
<Compile Include="WebBrowser.designer.cs">
<DependentUpon>WebBrowser.cs</DependentUpon>
</Compile>
@@ -443,6 +349,9 @@
<DependentUpon>DisplayBookMarks.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="DisplayHistory.resx">
<DependentUpon>DisplayHistory.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DisplayLibDocs.resx">
<DependentUpon>DisplayLibDocs.cs</DependentUpon>
<SubType>Designer</SubType>

View File

@@ -983,19 +983,22 @@ namespace Volian.Controls.Library
SectionInfo si2 = (tn as VETreeNode).VEObject as SectionInfo;
if (si2.MyDocVersion.MultiUnitCount > 1)
{
MenuItem mps = new MenuItem("Print Section");
int k = 0;
foreach (string s in si2.MyDocVersion.UnitNames)
if (!si2.IsSubsection)
{
k++;
MenuItem mp = mps.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mp.Tag = k;
MenuItem mps = new MenuItem("Print Section");
int k = 0;
foreach (string s in si2.MyDocVersion.UnitNames)
{
k++;
MenuItem mp = mps.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mp.Tag = k;
}
cm.MenuItems.Add(mps);
}
cm.MenuItems.Add(mps);
}
else
{
cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
if(!si2.IsSubsection) cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
}
}
}
@@ -2812,23 +2815,27 @@ namespace Volian.Controls.Library
int f2 = -1;
string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder");
int myindex = SelectedNode.Index + ((newtype == MenuSelections.FolderAfter) ? 1 : 0);
FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.FolderID);
double? myorder = parfolderinfo.NewManualOrder(myindex);
using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID))
{
ShowBrokenRules(folder.BrokenRulesCollection);
SetLastValues(FolderInfo.Get(folder.FolderID));
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(uniquename, folder.FolderConfig)) == DialogResult.OK)
//B2025-018 Issues with folder order in tree view
//since before/after folder is at same level as current folder
//so need to use the parents order to determine where to place it
using (FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.MyParent.FolderID))
{ double? myorder = parfolderinfo.NewManualOrder(myindex);
using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID))
{
folder.Save();
tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo);
if (newtype == MenuSelections.FolderBefore) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index, tn);
if (newtype == MenuSelections.FolderAfter) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index + 1, tn);
ShowBrokenRules(folder.BrokenRulesCollection);
SetLastValues(FolderInfo.Get(folder.FolderID));
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(uniquename, folder.FolderConfig)) == DialogResult.OK)
{
folder.Save();
tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo);
if (newtype == MenuSelections.FolderBefore) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index, tn);
if (newtype == MenuSelections.FolderAfter) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index + 1, tn);
}
else
f2 = folder.FolderID;
}
else
f2 = folder.FolderID;
if (f2 != -1) Folder.Delete(f2);
}
if (f2 != -1) Folder.Delete(f2);
}
}
}

View File

@@ -1090,7 +1090,7 @@ namespace Volian.Print.Library
firstCAI = null;
lastCAI = null;
}
else if (firstCAI.ActionWhat == lastCAI.ActionWhat)
else if (firstCAI.ActionWhat == lastCAI.ActionWhat || firstCAI.ActionWhat.StartsWith("As Of:"))
{
auditList1.Add(firstCAI);
auditList1.Add(lastCAI);
@@ -1153,7 +1153,7 @@ namespace Volian.Print.Library
firstCAI = null;
lastCAI = null;
}
else if (firstCAI.ActionWhat == lastCAI.ActionWhat)
else if (firstCAI.ActionWhat == lastCAI.ActionWhat || firstCAI.ActionWhat.StartsWith("As Of:"))
{
auditList1.Add(firstCAI);
auditList1.Add(lastCAI);

View File

@@ -66,7 +66,7 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="Csla, Version=2.1.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<Reference Include="Csla, Version=3.8.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\CSLA20cs_DLL_Net_4.8.1_Build\Csla.dll</HintPath>
</Reference>

View File

@@ -647,8 +647,10 @@ namespace Volian.Print.Library
}
if (MyItemInfo.IsHigh)
{
// C2025-014 change the zoom setting on the bookmark of a step from FITBH to FITV so that instead of zooming in
// on the step it will zoom to the page level ( like it does when you select a bookmark on a section.
MyPageHelper.PageBookmarks.Add(MyItemInfo, (MyItemInfo.MyTab == null) ? "" : MyItemInfo.MyTab.CleanText + " " + MyItemInfo.DisplayText,
new PdfDestination(PdfDestination.FITBH, yLocation + YVeryTop - YTopMost + SixLinesPerInch));
new PdfDestination(PdfDestination.FITV, yLocation + YVeryTop - YTopMost + SixLinesPerInch));
}
}
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WolfcreekCKLFormat)