Compare commits

..
9 changed files with 76 additions and 55 deletions
Binary file not shown.
Binary file not shown.
+31 -14
View File
@@ -5547,6 +5547,12 @@ ELSE PRINT 'Function: ve_GetItemDerivedApplicability Error on Creation'
GO
-------
-- =============================================
-- Author: Matthew Schill
-- Modify date: 07/14/2026
-- Description: Reworked ve_GetParentItem for Performance improvement
-- =============================================
/****** Object: UserDefinedFunction [dbo].[vefn_GetParentItem] Script Date: 03/28/2012 17:58:48 ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetParentItem]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1)
DROP FUNCTION [ve_GetParentItem];
@@ -5555,35 +5561,46 @@ GO
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
CREATE FUNCTION [dbo].[ve_GetParentItem] (@ItemID int) RETURNS int
CREATE OR ALTER FUNCTION [dbo].[ve_GetParentItem] (@ItemID int) RETURNS int
WITH EXECUTE AS OWNER
AS
BEGIN
DECLARE @ParentID int;
WITH Itemz([ItemID],[IsFound]) as
WITH Itemz([ItemID]) as
(
select ii.itemid,0 from items ii where ii.itemid = @ItemID
select ii.itemid from items ii WITH (NOLOCK) where ii.itemid = @ItemID
union all
select ii.previousid,0 from items ii
select ii.previousid from items ii WITH (NOLOCK)
join itemz zz on ii.itemid = zz.itemid
where ii.previousid is not null
and zz.isfound = 0
union all
select ii.itemid,1
from parts pp
join itemz zz on pp.itemid = zz.itemid
join items ii on ii.contentid = pp.contentid
)
select top 1 @ParentID = itemid from itemz
where isfound = 1 OPTION (MAXRECURSION 10000)
select top 1 @ParentID = ii.itemid
from itemz
inner join parts pp WITH (NOLOCK) on pp.itemid = itemz.itemid
inner join items ii WITH (NOLOCK) on ii.contentid = pp.contentid
OPTION (MAXRECURSION 10000)
RETURN @ParentID
END
GO
IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetParentItem] Succeeded'
ELSE PRINT 'ScalerFunction [vefn_GetParentItem] Error on Creation'
go
IF EXISTS (SELECT * FROM dbo.sysIndexes WHERE name like 'IX_PartsItemID')
DROP INDEX [IX_PartsItemID] ON [dbo].[tblParts];
GO
CREATE NONCLUSTERED INDEX IX_PartsItemID
ON [dbo].[tblParts] ([ItemID] ASC)
INCLUDE([ContentID],[DeleteStatus],[FromType]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
PRINT 'Added IX_PartsItemID Index. Speeds up Getting Parent Items'
GO
/****** Object: UserDefinedFunction [dbo].[vefn_CanTransitionBeCreated] Script Date: 10/14/2012 02:03:30 ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CanTransitionBeCreated]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1)
DROP FUNCTION [vefn_CanTransitionBeCreated];
@@ -25051,8 +25068,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
set @RevDate = '06/29/2026 7:00 AM'
set @RevDescription = 'Update to Grid Deletion Audits'
set @RevDate = '07/16/2026 8:30 AM'
set @RevDescription = 'Reworked ve_GetParentItem for Performance improvement'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
@@ -262,8 +262,10 @@ namespace VEPROMS.CSLA.Library
if (dvi.DocVersionAssociations[0].MyROFst.ROFstID != newfstid)
{
dv.DocVersionAssociations[0].MyROFst = localROFst.GetJustROFst();
SetAssociationLastCompleted(dv, DateTime.Now.ToString());
}
// B2026-066 moved this out of if statement above
// - was not resetting the datetime and thus not disabling the Update RO Values button and menu item
SetAssociationLastCompleted(dv, DateTime.Now.ToString());
}
}
@@ -326,7 +328,9 @@ namespace VEPROMS.CSLA.Library
// all of the calls aways set the flags to not update the RO values
public static ROFst UpdateRoFst(RODbInfo rdi, DocVersion docver, ROFstInfo origROFst, ROFstInfoProgressBarRefresh myProgressBarRefresh)
{
if (myProgressBarRefresh != null) myProgressBarRefresh(0, 100, "Starting Update");
ROWorkingDraftAsk.ClearWorkingDrafts();
if (myProgressBarRefresh != null) myProgressBarRefresh(0, 100, "Starting Update");
int origFSTid = origROFst.ROFstID;
@@ -0,0 +1,18 @@
using System.Collections.Generic;
namespace VEPROMS.CSLA.Library
{
public static class ROWorkingDraftAsk
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
private static List<int> WorkingDrafts = new List<int>();
public static void AddWorkingDrafts(int wd) => WorkingDrafts.Add(wd);
public static void ClearWorkingDrafts() => WorkingDrafts.Clear();
public static bool ContainsWorkingDraft(int wd) => WorkingDrafts.Contains(wd);
}
}
@@ -396,6 +396,7 @@
<Compile Include="Minimal\UserReports.cs" />
<Compile Include="Minimal\UserSettings.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Session\ROWorkingDraftAsk.cs" />
<Compile Include="VEObjects\VEDrillDown.cs" />
<Compile Include="VEObjects\VETreeNode.cs" />
</ItemGroup>
+4 -1
View File
@@ -652,7 +652,7 @@ namespace Volian.Controls.Library
{
//do nothing - is still checked out
}
else if (changedDocVersion && !askedAboutchangedDocVersion)
else if (changedDocVersion && !askedAboutchangedDocVersion && !ROWorkingDraftAsk.ContainsWorkingDraft(_docVersionInfo.VersionID))
{
if (MessageBox.Show($"There exists a newer ROFST for this RO database that was loaded for other sets.\r\n\r\nDo you want to update this set's ROs to be consistent/use the latest loaded ROFST?", "Load ROs", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
@@ -671,10 +671,13 @@ namespace Volian.Controls.Library
updatedROs = true;
askedAboutchangedDocVersion = false;
ROWorkingDraftAsk.ClearWorkingDrafts();
}
else
{
askedAboutchangedDocVersion = true;
if (!ROWorkingDraftAsk.ContainsWorkingDraft(_docVersionInfo.VersionID))
ROWorkingDraftAsk.AddWorkingDrafts(_docVersionInfo.VersionID);
}
}
+1 -5
View File
@@ -1,5 +1,4 @@
using System;
using System.Windows.Forms;
namespace Volian.Controls.Library
{
@@ -79,10 +78,7 @@ namespace Volian.Controls.Library
// VlnFlexGrid
//
this.Rows.DefaultSize = 19;
this.AllowDrop = true;
this.DragEnter += new DragEventHandler(Control_DragEnter);
this.DragDrop += new DragEventHandler(Control_DragDrop);
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
this.ResumeLayout(false);
+15 -33
View File
@@ -1,23 +1,22 @@
using C1.Win.C1FlexGrid;
using C1.Win.C1SpellChecker;
using DevComponents.DotNetBar.Controls;
using JR.Utils.GUI.Forms;
using System;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Xml;
using System.Xml.Serialization;
using VEPROMS.CSLA.Library;
using Volian.Base.Library;
using System.IO;
using Volian.Controls.Library;
using VEPROMS.CSLA.Library;
using C1.Win.C1FlexGrid;
using C1.Win.C1SpellChecker;
using System.Text.RegularExpressions;
using System.Xml.Serialization;
using Volian.Base.Library;
using JR.Utils.GUI.Forms;
namespace Volian.Controls.Library
{
@@ -4439,28 +4438,11 @@ namespace Volian.Controls.Library
// }
//}
private void Control_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Copy; // Allow copy
}
else
{
e.Effect = DragDropEffects.None; // Disallow
}
}
private void Control_DragDrop(object sender, DragEventArgs e)
{
string data = (string)e.Data.GetData(DataFormats.Text);
// Process the data (e.g., display it in a TextBox)
this.Text = data;
}
#region Uneven Selections
/// <summary>
/// True if the top and bottom row of the selection is the same for every column
/// </summary>
public bool EvenSelection
/// <summary>
/// True if the top and bottom row of the selection is the same for every column
/// </summary>
public bool EvenSelection
{
get
{