Compare commits
12 Commits
C2024-038_
...
B2025-020_
Author | SHA1 | Date | |
---|---|---|---|
0749f5e724 | |||
f65644f553 | |||
dc74da6e86 | |||
301c4c2c97 | |||
8ec820a7f7 | |||
18734e0f85 | |||
9980504c47 | |||
626960da9f | |||
535728b982 | |||
ace9672a2e | |||
05a13861ac | |||
24374b85c1 |
@@ -1584,7 +1584,7 @@ namespace ROEditor
|
|||||||
if (i + 1 < InUseList.Count) inuserecs = inuserecs + " ";
|
if (i + 1 < InUseList.Count) inuserecs = inuserecs + " ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (inuserecs != origFieldsInUse)
|
if ((inuserecs ?? "") != (origFieldsInUse ?? ""))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
||||||
@@ -1599,7 +1599,7 @@ namespace ROEditor
|
|||||||
if (i + 1 < InUseApplcList.Count) applicfieldrecs = applicfieldrecs + " ";
|
if (i + 1 < InUseApplcList.Count) applicfieldrecs = applicfieldrecs + " ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (applicfieldrecs != origApplicFields)
|
if ((applicfieldrecs ?? "") != (origApplicFields ?? ""))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
//nothing has changed
|
//nothing has changed
|
||||||
|
@@ -264,9 +264,11 @@ namespace ROEditor
|
|||||||
File.Delete(FstNew); // remove ROFST.NEW
|
File.Delete(FstNew); // remove ROFST.NEW
|
||||||
if (OrphanedRecords.Length > 0)
|
if (OrphanedRecords.Length > 0)
|
||||||
{
|
{
|
||||||
StreamWriter sw = new StreamWriter(VlnSettings.TemporaryFolder + @"\Orphaned RO Records.txt");
|
using (StreamWriter sw = new StreamWriter(Path.Combine(FstDir, @"Orphaned RO Records.txt"), false))
|
||||||
sw.Write(OrphanedRecords.ToString());
|
{
|
||||||
sw.Close();
|
sw.Write(OrphanedRecords.ToString());
|
||||||
|
sw.Close();
|
||||||
|
}
|
||||||
MessageBox.Show("The file Orphaned RO Records.txt has been created", "Warning - Orphan RO Record");
|
MessageBox.Show("The file Orphaned RO Records.txt has been created", "Warning - Orphan RO Record");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -834,7 +834,7 @@ namespace RODBInterface
|
|||||||
ValueType |= FldType;
|
ValueType |= FldType;
|
||||||
if (PCApplicability)
|
if (PCApplicability)
|
||||||
text = GetPCReturnValues(theDb, pcChildern, elm, PCApplicability, inusename, text); // C2021-026 Get P/C Children return values
|
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
|
else
|
||||||
{
|
{
|
||||||
|
@@ -19791,9 +19791,11 @@ GO
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
/*
|
/*
|
||||||
==========================================================================================================
|
==========================================================================================================
|
||||||
Author: Jake Ropar
|
|
||||||
Create Date: 06/23/2022
|
Create Date: 06/23/2022
|
||||||
Description: Inserts New Rofst Child Record / Default Values
|
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]
|
Create Procedure [dbo].[vesp_RofstChildInsert]
|
||||||
@@ -19806,19 +19808,26 @@ GO
|
|||||||
@title VarChar(Max),
|
@title VarChar(Max),
|
||||||
@roid VarChar(50),
|
@roid VarChar(50),
|
||||||
@appid VarChar(Max) = null,
|
@appid VarChar(Max) = null,
|
||||||
@value VarChar(Max) = null
|
@value VarChar(Max) = null,
|
||||||
|
@missingDefaultValue VarChar(Max) = null
|
||||||
)
|
)
|
||||||
With Execute as Owner
|
With Execute as Owner
|
||||||
As
|
As
|
||||||
Begin
|
Begin
|
||||||
|
|
||||||
Declare @AccPageID VarChar(Max) = null;
|
Declare @BaseAccPageID VarChar(Max) = null;
|
||||||
Declare @DefaultValues VarChar(Max);
|
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])
|
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
|
-- Check for appid, if exists, then insert the default value for each return type if multi-value
|
||||||
@@ -19826,37 +19835,58 @@ GO
|
|||||||
Begin
|
Begin
|
||||||
|
|
||||||
-- Get Accessory Page ID
|
-- 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)
|
From RofstDatabase d with (NoLock)
|
||||||
Where d.RofstID = @RofstID And d.dbiID = @dbiID;
|
Where d.RofstID = @RofstID And d.dbiID = @dbiID;
|
||||||
|
|
||||||
-- Insert Rofst Default Value (Parent RoChild) [roid = 12]
|
Select @DefaultValues = dbo.vefn_RofstDataReplaceVars(@value);
|
||||||
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
|
|
||||||
Values (@RofstID, @roid, Replace(@title, '\u160?', ' '), @AccPageID);
|
|
||||||
|
|
||||||
-- Insert Rofst Default Value(s) (Children RoChild) [roid = 16] (Do Not Insert Duplicates)
|
If (PatIndex('%=%', @DefaultValues) > 0)
|
||||||
Select @DefaultValues = Replace(dbo.vefn_RofstDataReplaceVars(@value), '{', '');
|
Begin
|
||||||
|
|
||||||
|
-- Insert Rofst Default Values (Multi-Values) --> [Roid = (16) Digits]
|
||||||
|
Select @DefaultValues = Replace(@DefaultValues, '{', '');
|
||||||
|
|
||||||
With ChildrenValues as
|
With ChildrenValues as
|
||||||
(
|
(
|
||||||
Select (x.ListPosition + 40) as 'OffsetIndex',
|
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'
|
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
|
From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x
|
||||||
Where Len(x.ListValue) > 0
|
Where Len(x.ListValue) > 0
|
||||||
)
|
)
|
||||||
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
|
Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID)
|
||||||
Select @RofstID as 'RofstID',
|
Select @RofstID as 'RofstID',
|
||||||
Concat(@roid, Cast(Format(Min(OffsetIndex), 'D4') as VarChar(4))) as 'roid',
|
Concat(@roid, re.RoidExt) as 'roid',
|
||||||
DefaultValue as 'value',
|
Case When (DataLength(cv.DefaultValue) > 0) Then
|
||||||
null as 'AccPageID'
|
REPLACE(REPLACE(REPLACE(dbo.vefn_RofstDataCleanUnitInfoTags(cv.DefaultValue, 0), '&123;', '{'), '&125;}', '}'), '&125;', '}')
|
||||||
From ChildrenValues
|
Else @missingDefaultValue End as 'value',
|
||||||
Group By DefaultValue
|
Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID'
|
||||||
Order By Min(OffsetIndex) Asc
|
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)
|
End -- (Len(@appid) > 0)
|
||||||
|
|
||||||
|
|
||||||
Return;
|
Return;
|
||||||
|
|
||||||
End
|
End
|
||||||
Go
|
Go
|
||||||
|
|
||||||
@@ -20448,98 +20478,6 @@ GO
|
|||||||
ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetExtensions] Error on Creation'
|
ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetExtensions] Error on Creation'
|
||||||
GO
|
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] ***********************/
|
/****** Object: StoredProcedure [dbo].[vesp_RofstDataSearch] ***********************/
|
||||||
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataSearch' AND type in (N'P'))
|
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataSearch' AND type in (N'P'))
|
||||||
DROP PROCEDURE [dbo].[vesp_RofstDataSearch]
|
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'))
|
If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceVars' AND type in (N'FN'))
|
||||||
DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars]
|
DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars]
|
||||||
GO
|
GO
|
||||||
@@ -21632,124 +21455,6 @@ GO
|
|||||||
ELSE PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Error on Creation'
|
ELSE PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Error on Creation'
|
||||||
GO
|
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 ?
|
End: B2022-124: [JPR] Blank RO Values (All Spaces) printing as ?
|
||||||
@@ -24132,8 +23837,8 @@ BEGIN TRY -- Try Block
|
|||||||
DECLARE @RevDate varchar(255)
|
DECLARE @RevDate varchar(255)
|
||||||
DECLARE @RevDescription varchar(255)
|
DECLARE @RevDescription varchar(255)
|
||||||
|
|
||||||
set @RevDate = '10/28/2024 11:24'
|
set @RevDate = '2/19/2025 11:24'
|
||||||
set @RevDescription = 'Add the ability for PROMS to remember the procedure tabs that were open when you closed PROMS'
|
set @RevDescription = 'Added support for legacy ROs with brackets in Unit Values'
|
||||||
|
|
||||||
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
|
||||||
|
@@ -19,6 +19,7 @@ using System.Drawing;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace VEPROMS.CSLA.Library
|
namespace VEPROMS.CSLA.Library
|
||||||
{
|
{
|
||||||
@@ -143,6 +144,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region SortingChildren
|
#region SortingChildren
|
||||||
|
private static bool IsInManualOrderNullFix = false;
|
||||||
|
|
||||||
[NonSerialized]
|
[NonSerialized]
|
||||||
public Csla.SortedBindingList<FolderInfo> _SortedChildFolders;
|
public Csla.SortedBindingList<FolderInfo> _SortedChildFolders;
|
||||||
public Csla.SortedBindingList<FolderInfo> SortedChildFolders
|
public Csla.SortedBindingList<FolderInfo> SortedChildFolders
|
||||||
@@ -151,6 +154,29 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
if (ChildFolders != null)
|
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)
|
if (_SortedChildFolders == null)
|
||||||
{
|
{
|
||||||
_SortedChildFolders = new SortedBindingList<FolderInfo>(ChildFolders);
|
_SortedChildFolders = new SortedBindingList<FolderInfo>(ChildFolders);
|
||||||
@@ -166,6 +192,10 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return _SortedChildFolders;
|
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)
|
public double? NewManualOrder(int index)
|
||||||
{
|
{
|
||||||
double? retval = 1;
|
double? retval = 1;
|
||||||
@@ -174,13 +204,27 @@ namespace VEPROMS.CSLA.Library
|
|||||||
else if (index == 0)
|
else if (index == 0)
|
||||||
{
|
{
|
||||||
if (retval >= SortedChildFolders[index].ManualOrder) // If one is too big, then divide first value in half
|
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)
|
else if (SortedChildFolders.Count > index)
|
||||||
{
|
{
|
||||||
retval += SortedChildFolders[index - 1].ManualOrder; // Just go to the next whole number
|
//B2025-018 Issues with folder order in tree view
|
||||||
if (retval >= SortedChildFolders[index].ManualOrder)
|
//filter to just items with the same parent
|
||||||
retval = (SortedChildFolders[index - 1].ManualOrder + SortedChildFolders[index].ManualOrder) / 2;
|
//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
|
else
|
||||||
{
|
{
|
||||||
|
@@ -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 (!forceConvertToText)
|
||||||
{
|
{
|
||||||
if (itemInfo.MyProcedure.ItemID != traninfo.MyItemToID.MyProcedure.ItemID) //different proc
|
if (itemInfo.MyProcedure.ItemID != traninfo.MyItemToID.MyProcedure.ItemID) //different proc
|
||||||
|
@@ -769,6 +769,15 @@ namespace VEPROMS.CSLA.Library
|
|||||||
tmp.MyParent = myParent;
|
tmp.MyParent = myParent;
|
||||||
tmp.Name = name;
|
tmp.Name = name;
|
||||||
tmp.ShortName = shortName;
|
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;
|
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)
|
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.Config = config;
|
||||||
tmp.DTS = dts;
|
tmp.DTS = dts;
|
||||||
tmp.UsrID = usrID;
|
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;
|
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)
|
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.MyFormat = myFormat;
|
||||||
tmp.ManualOrder = manualOrder;
|
tmp.ManualOrder = manualOrder;
|
||||||
tmp.Config = config;
|
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;
|
return tmp;
|
||||||
}
|
}
|
||||||
public static Folder MakeFolder(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config)
|
public static Folder MakeFolder(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config)
|
||||||
|
@@ -2812,23 +2812,27 @@ namespace Volian.Controls.Library
|
|||||||
int f2 = -1;
|
int f2 = -1;
|
||||||
string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder");
|
string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder");
|
||||||
int myindex = SelectedNode.Index + ((newtype == MenuSelections.FolderAfter) ? 1 : 0);
|
int myindex = SelectedNode.Index + ((newtype == MenuSelections.FolderAfter) ? 1 : 0);
|
||||||
FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.FolderID);
|
//B2025-018 Issues with folder order in tree view
|
||||||
double? myorder = parfolderinfo.NewManualOrder(myindex);
|
//since before/after folder is at same level as current folder
|
||||||
using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID))
|
//so need to use the parents order to determine where to place it
|
||||||
{
|
using (FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.MyParent.FolderID))
|
||||||
ShowBrokenRules(folder.BrokenRulesCollection);
|
{ double? myorder = parfolderinfo.NewManualOrder(myindex);
|
||||||
SetLastValues(FolderInfo.Get(folder.FolderID));
|
using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID))
|
||||||
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(uniquename, folder.FolderConfig)) == DialogResult.OK)
|
|
||||||
{
|
{
|
||||||
folder.Save();
|
ShowBrokenRules(folder.BrokenRulesCollection);
|
||||||
tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo);
|
SetLastValues(FolderInfo.Get(folder.FolderID));
|
||||||
if (newtype == MenuSelections.FolderBefore) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index, tn);
|
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(uniquename, folder.FolderConfig)) == DialogResult.OK)
|
||||||
if (newtype == MenuSelections.FolderAfter) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index + 1, tn);
|
{
|
||||||
|
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
|
if (f2 != -1) Folder.Delete(f2);
|
||||||
f2 = folder.FolderID;
|
|
||||||
}
|
}
|
||||||
if (f2 != -1) Folder.Delete(f2);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -647,8 +647,10 @@ namespace Volian.Print.Library
|
|||||||
}
|
}
|
||||||
if (MyItemInfo.IsHigh)
|
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,
|
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)
|
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WolfcreekCKLFormat)
|
||||||
|
Reference in New Issue
Block a user