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 (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
 | 
			
		||||
 
 | 
			
		||||
@@ -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");
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
			{
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -2812,23 +2812,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);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user