B2022-083: Support Conditional RO Values (v2.1) [Part-2]

This commit is contained in:
Jake 2022-07-28 10:03:07 +00:00
parent bcbc52c774
commit 6dff9463ad
10 changed files with 2722 additions and 735 deletions

View File

@ -20041,15 +20041,909 @@ GO
GO
/*
==========================================================================================================
End: B2022-026 RO Memory reduction coding (Jakes Merge) [Version 2.0]
==========================================================================================================
*/
/*
==========================================================================================================
Start: B2022-083: Support Conditional RO Values (v2.1)
==========================================================================================================
*/
/*
----------------------------------------------------------------------------------
Tables:
----------------------------------------------------------------------------------
[RofstExtension] [Created]
*/
-- If RofstExtension table already exists then don't drop and recreate it
IF Not Exists(SELECT * FROM sys.objects Where name = 'RofstExtension' AND type in (N'U'))
Begin
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[RofstExtension](
[Offset] [int] NOT NULL,
[RoidExt] [varchar](4) NOT NULL,
[AccPageExt] [varchar](5) NOT NULL,
CONSTRAINT [PK_RofstExtension] PRIMARY KEY CLUSTERED
(
[Offset] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
IF (@@Error = 0) PRINT 'Table Creation: [RofstExtension] Succeeded'
ELSE PRINT 'Table Creation: [RofstExtension] Error on Creation'
IF (@@Error = 0)
Begin
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (1,'0041','A');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (2,'0042','B');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (3,'0043','C');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (4,'0044','D');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (5,'0045','E');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (6,'0046','F');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (7,'0047','G');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (8,'0048','H');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (9,'0049','I');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (10,'004A','J');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (11,'004B','K');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (12,'004C','L');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (13,'004D','M');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (14,'004E','N');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (15,'004F','O');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (16,'0050','P');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (17,'0051','Q');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (18,'0052','R');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (19,'0053','S');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (20,'0054','T');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (21,'0055','U');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (22,'0056','V');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (23,'0057','W');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (24,'0058','X');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (25,'0059','Y');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (26,'005A','Z');
End
End
Go
/*
----------------------------------------------------------------------------------
Functions:
----------------------------------------------------------------------------------
[dbo].[vefn_RofstDataCleanUnitInfoTags] [Created]
[dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults] [Created]
[dbo].[vefn_RofstDataReplaceVars] [Modified]
*/
/****** Object: UserDefinedFunction [dbo].[vefn_RofstDataCleanUnitInfoTags] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataCleanUnitInfoTags' AND type in (N'FN'))
DROP FUNCTION [dbo].[vefn_RofstDataCleanUnitInfoTags]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- Author: Jake Ropar
-- Create Date: 06/21/2022
-- Description: Removes any legacy legacy unit info variables and fixes older applicability tags
-- ==========================================================================================
CREATE FUNCTION [dbo].[vefn_RofstDataCleanUnitInfoTags](@Values VarChar(Max), @RemoveUnitInfoVars bit = 0) Returns VarChar(Max)
WITH EXECUTE AS OWNER
AS
BEGIN
Declare @RetVal VarChar(Max) = '';
Set @RetVal = dbo.vefn_Clean(@Values, 1, null);
If (Len(@RetVal) > 0)
Begin
-- Make Sure all tag/var instances are upper case & Remove any internal spaces
Set @RetVal = Replace(@RetVal, 'U-OTHER TEXT', 'U-OTHERTEXT');
Set @RetVal = Replace(@RetVal, 'U-OTHER NUMBER', 'U-OTHERNUMBER');
Set @RetVal = Replace(@RetVal, 'U-OTHER NAME', 'U-OTHERNAME');
Set @RetVal = Replace(@RetVal, 'U-OTHER ID', 'U-OTHERID');
Set @RetVal = Replace(@RetVal, '<u>', '<U-ID>');
If (@RemoveUnitInfoVars > 0)
Begin
-- Remove any Unit Info Variables
Set @RetVal = Replace(@RetVal, '<u>', '');
Set @RetVal = Replace(@RetVal, '<U-ID>', '');
Set @RetVal = Replace(@RetVal, '<U-NUMBER>', '');
Set @RetVal = Replace(@RetVal, '<U-NAME>', '');
Set @RetVal = Replace(@RetVal, '<U-TEXT>', '');
Set @RetVal = Replace(@RetVal, '<U-OTHERID>', '');
Set @RetVal = Replace(@RetVal, '<U-OTHERNUMBER>', '');
Set @RetVal = Replace(@RetVal, '<U-OTHERNAME>', '');
Set @RetVal = Replace(@RetVal, '<U-OTHERTEXT>', '');
End
End
Return @RetVal;
END
Go
IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Succeeded'
ELSE PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Error on Creation'
GO
/****** Object: UserDefinedFunction [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceLegacyTagsWithDefaults' AND type in (N'FN'))
DROP FUNCTION [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- Author: Jake Ropar
-- Create Date: 06/21/2022
-- Description: Replaces any legacy applicability tags with the default value
-- ==========================================================================================
CREATE FUNCTION [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults](@Values VarChar(Max)) Returns VarChar(Max)
WITH EXECUTE AS OWNER
AS
BEGIN
Declare @RetVal VarChar(Max) = '';
Declare @DefaultValue VarChar(Max) = '';
Declare @StartTagIndex Int;
Declare @EndTagIndex Int;
Declare @StartTagValue VarChar(Max);
Declare @StartValIndex Int;
Declare @EndValIndex Int;
Declare @TagName VarChar(Max);
Declare @LegacyTagNames VarChar(Max) = 'U-ID,U-NUMBER,U-NAME,U-TEXT,U-OTHERID,U-OTHERNUMBER,U-OTHERNAME,U-OTHERTEXT';
-- Make Sure all tag instances are upper case & Remove any internal spaces
Set @RetVal = dbo.vefn_RofstDataCleanUnitInfoTags(@Values, 0);
Declare LegacyTags_Cursor Cursor Fast_Forward For
Select '{' + x.ListValue + '{' as 'TagName'
From [dbo].[vefn_ParseStringListToTable](@LegacyTagNames, ',') x
Open LegacyTags_Cursor
Fetch Next From LegacyTags_Cursor Into @TagName
While (@@FETCH_STATUS = 0)
Begin
-- Get Start/End Index of Tag
Set @StartTagIndex = PatIndex('%' + @TagName + '%', @RetVal);
Set @EndTagIndex = PatIndex('%}}%', @RetVal);
While (@StartTagIndex > 0)
Begin
Set @StartTagValue = SubString(@RetVal, @StartTagIndex, (@EndTagIndex - @StartTagIndex) + 2);
Set @StartValIndex = PatIndex('%=%', @StartTagValue);
Set @EndValIndex = PatIndex('%}%', @StartTagValue);
Set @DefaultValue = SubString(@StartTagValue, @StartValIndex + 1, (@EndValIndex - @StartValIndex) - 1);
Set @RetVal = Replace(@RetVal, @StartTagValue, @DefaultValue);
Set @StartTagIndex = PatIndex('%' + @TagName + '%', @RetVal);
Set @EndTagIndex = PatIndex('%}}%', @RetVal);
End -- While (@StartTagIndex > 0)
Fetch Next From LegacyTags_Cursor Into @TagName
End
Close LegacyTags_Cursor;
Deallocate LegacyTags_Cursor;
Return @RetVal;
END
Go
IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceLegacyTagsWithDefaults] Succeeded'
ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceLegacyTagsWithDefaults] Error on Creation'
GO
/****** Object: UserDefinedFunction [dbo].[vefn_RofstDataReplaceVars] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceVars' AND type in (N'FN'))
DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- Author: Jake Ropar
-- Create Date: 3/25/2022
-- Description: Replaces Any Variables and returns the rest of the value string
-- ==========================================================================================
CREATE FUNCTION [dbo].[vefn_RofstDataReplaceVars](@Values VarChar(Max)) Returns VarChar(Max)
WITH EXECUTE AS OWNER
AS
BEGIN
Declare @RetVal VarChar(Max) = '';
Declare @EqualsIndex Int;
Declare @EndIndex Int;
Declare @NameValPairStartIndex Int;
Declare @NameValPairEndIndex Int;
Declare @VarPair VarChar(Max);
Declare @VarName VarChar(Max);
Declare @VarValue VarChar(Max);
-- Replace Any "<APL /APL>" Tags with the Default Value first
Select @RetVal = dbo.vefn_RofstDataReplaceApplTagsWithDefaults(@Values);
-- Replace Any Legacy Applicability Tags with the Default Value second
Select @RetVal = dbo.vefn_RofstDataReplaceLegacyTagsWithDefaults(@RetVal);
If (PatIndex('%{{A%', @RetVal) > 0)
Set @EndIndex = PatIndex('%{{A%', @RetVal);
Else
Set @EndIndex = Len(@RetVal) -1;
Set @NameValPairStartIndex = PatIndex('%{%', @RetVal);
Set @NameValPairEndIndex = PatIndex('%}%', @RetVal);
While(@NameValPairStartIndex > 0 And @NameValPairStartIndex < @EndIndex)
Begin
-- Get Name Value Pair [ex. {EGS=1214}]
Set @VarPair = SubString(@RetVal, @NameValPairStartIndex, (@NameValPairEndIndex - @NameValPairStartIndex) + 1);
-- Remove Name Value Pair From Return Val
Set @RetVal = Replace(@RetVal, @VarPair, '');
-- Get Variable Name and Value
Set @EqualsIndex = PatIndex('%=%', @VarPair);
If (@EqualsIndex > 0)
Begin
Set @VarName = SubString(@VarPair, 2, @EqualsIndex - 2);
Set @VarValue = SubString(@VarPair, @EqualsIndex + 1, Len(@VarPair) - @EqualsIndex - 1);
Set @VarName = Concat('{', @VarName, '}');
-- Replace All Occurences
Set @RetVal = Replace(@RetVal, @VarName, @VarValue);
End
-- Get Updated Index Values
If (PatIndex('%{{A%', @RetVal) > 0)
Set @EndIndex = PatIndex('%{{A%', @RetVal);
Else
Set @EndIndex = Len(@RetVal) -1;
Set @NameValPairStartIndex = PatIndex('%{%', @RetVal);
Set @NameValPairEndIndex = PatIndex('%}%', @RetVal);
End -- End While(@ReplaceVarEndTagIndex > 0)
Return @RetVal;
END
Go
IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Succeeded'
ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Error on Creation'
GO
/*
----------------------------------------------------------------------------------
Views:
----------------------------------------------------------------------------------
[dbo].[vwRofstData_RofstExtensions] [Created]
[dbo].[vwRofstData_RofstValueTypes] [Created]
[dbo].[vwRofstData_RofstBaseRoids] [Created]
[dbo].[vwRofstData_RofstChildren] [Modified]
*/
/****** Object: View [dbo].[vwRofstData_RofstExtensions] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstExtensions' AND type in (N'V'))
DROP VIEW [dbo].[vwRofstData_RofstExtensions]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 06/21/2024
Description: (RofstData) Master View for RofstExtensions
==========================================================================================================
*/
Create View [dbo].[vwRofstData_RofstExtensions]
As
Select re.Offset as 'Offset',
re.RoidExt as 'RoidExt',
re.AccPageExt as 'AccPageExt'
From RofstExtension re With (NoLock)
GO
IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstExtensions] Succeeded'
ELSE PRINT 'View Creation: [vwRofstData_RofstExtensions] Error on Creation'
GO
/****** Object: View [dbo].[vwRofstData_RofstValueTypes] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstValueTypes' AND type in (N'V'))
DROP VIEW [dbo].[vwRofstData_RofstValueTypes]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 06/21/2022
Description: (RofstData) Master View for Rofst Value Types
(0) Unknown (1) Single Line Text (2) Table (3) Multiple Line Text (4) X/Y Plot (8) Image
==========================================================================================================
*/
Create View [dbo].[vwRofstData_RofstValueTypes]
As
Select '0' as 'TypeID', 'Unknown' as 'TypeDescription'
Union All
Select '1' as 'TypeID', 'Single Line Text' as 'TypeDescription' -- Fixed Length Text
Union All
Select '2' as 'TypeID', 'Table' as 'TypeDescription'
Union All
Select '3' as 'TypeID', 'Multiple Line Text' as 'TypeDescription'
Union All
Select '4' as 'TypeID', 'X/Y Plot' as 'TypeDescription'
Union All
Select '8' as 'TypeID', 'Image' as 'TypeDescription'
GO
IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstValueTypes] Succeeded'
ELSE PRINT 'View Creation: [vwRofstData_RofstValueTypes] Error on Creation'
GO
/****** Object: View [dbo].[vwRofstData_RofstBaseRoids] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstBaseRoids' AND type in (N'V'))
DROP VIEW [dbo].[vwRofstData_RofstBaseRoids]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 03/24/2024
Description: (RofstData) Master View for Rofst Base Roid / AccPageID Values
==========================================================================================================
*/
Create View [dbo].[vwRofstData_RofstBaseRoids]
As
Select RofstID as 'RofstID',
Left(roid, 12) as 'BaseRoid',
Left(AccPageID, (Len(AccPageID)-2)) as 'BaseAccPageID'
From vwRofstData_RofstDefaultValues
Where AccPageID like '%.A';
GO
IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstBaseRoids] Succeeded'
ELSE PRINT 'View Creation: [vwRofstData_RofstBaseRoids] Error on Creation'
GO
/****** Object: View [dbo].[vwRofstData_RofstChildren] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstChildren' AND type in (N'V'))
DROP VIEW [dbo].[vwRofstData_RofstChildren]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 03/24/2024
Description: (RofstData) Master View for RofstChildren (RoChild & Groups)
==========================================================================================================
*/
Create View [dbo].[vwRofstData_RofstChildren]
As
Select rc.RofstChildID as 'RofstChildID',
rd.RofstID as 'RofstID',
-- RoDatabase Info
rd.dbiID as 'dbiID',
rd.dbiType as 'dbiType',
rd.dbiAW as 'dbiAW',
rd.dbiTitle as 'dbiTitle',
rd.dbiAP as 'dbiAP',
-- RoChild Info
rc.ID as 'ID',
rc.ParentID as 'ParentID',
rc.[type] as 'type',
IsNull(vt.TypeDescription, 'Unknown') as 'TypeDescription',
rc.title as 'title',
rc.roid as 'roid',
rc.appid as 'appid',
rc.[value] as 'value',
Case When (Not rc.[value] is null) Then rd.dbiAP + '-' + rc.appid Else null End as 'AccPageID'
From RofstChild rc With (NoLock)
inner join RofstDatabase rd With (NoLock) on rc.RofstID = rd.RofstID and rc.dbiID = rd.dbiID
left outer join vwRofstData_RofstValueTypes vt on vt.TypeID = rc.[type];
GO
IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstChildren] Succeeded'
ELSE PRINT 'View Creation: [vwRofstData_RofstChildren] Error on Creation'
GO
/*
----------------------------------------------------------------------------------
Stored Procs:
----------------------------------------------------------------------------------
[dbo].[vesp_RofstDataGetChildByID] [Deleted]
[dbo].[vesp_RofstDataGetExtensions] [Created]
[dbo].[vesp_RofstChildInsert] [Modified]
[dbo].[vesp_RofstDataSearch] [Modified]
[dbo].[vesp_RofstDataGetChildByAccPageID] [Modified]
[dbo].[vesp_RofstDataGetChildByRoid] [Modified]
*/
/****** Object: StoredProcedure [dbo].[vesp_RofstHeaderInsert] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByID' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByID]
GO
IF (@@Error = 0) PRINT 'Procedure Deletion: [vesp_RofstDataGetChildByID] Succeeded'
ELSE PRINT 'Procedure Deletion: [vesp_RofstDataGetChildByID] Error on Creation'
GO
/****** Object: StoredProcedure [dbo].[vesp_RofstDataGetExtensions] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetExtensions' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataGetExtensions]
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: 06/21/2022
Description: Gets the Ro Lookup Extensions
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstDataGetExtensions]
With Execute as Owner
As
Begin
Select re.Offset,
re.RoidExt,
re.AccPageExt
From vwRofstData_RofstExtensions re
Order By re.Offset Asc;
Return;
End
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetExtensions] Succeeded'
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]
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: RO Default Value Search
@SearchTypeID => (1) Starts With (2) Ends With (3) Contains (4) Exact Match
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstDataSearch]
(
@RofstID int,
@Value VarChar(Max) = null,
@SearchTypeID Int = 1, -- Starts With
@OnlyRoid16 Bit = 1, -- Return Only Roid16 Records
@MaxNumOfRecords Int = null
)
With Execute as Owner
As
Begin
-- Remove any leading/trailing white spaces
Set @Value = dbo.vefn_Clean( @Value, 0, null );
-- Escape any % signs in the search value
Set @Value = Replace( @Value, '%', '[%]' );
-- Format search value
If (Len(@Value) = 0) Set @Value = null;
-- Create Temp Results Table
Create Table #SearchResults (roid VarChar(50) Not Null, [value] VarChar(Max), RowNum Int Not Null Primary Key);
-- Select roids/values based on search criteria
Insert Into #SearchResults (roid, [value], RowNum)
Select rdv.roid,
rdv.[value],
Row_Number() Over (Order By rdv.[value] Asc, rdv.roid Asc) as 'RowNum'
From vwRofstData_RofstDefaultValues rdv
Where rdv.RofstID = @RofstID
And (@OnlyRoid16 = 0 Or Len(rdv.roid) = 16)
And ((@Value is null)
Or (@SearchTypeID = 1 And rdv.[value] like @Value + '%') -- Starts With
Or (@SearchTypeID = 2 And rdv.[value] like '%' + @Value) -- Ends With
Or (@SearchTypeID = 3 And rdv.[value] like '%' + @Value + '%') -- Contains
Or (@SearchTypeID = 4 And rdv.[value] = @Value)) -- Exact Match
Order By rdv.[value] Asc, rdv.roid Asc
Option (Recompile);
-- Return the specified number of results
Select sr.roid, sr.[value]
From #SearchResults sr
Where (@MaxNumOfRecords is null Or sr.RowNum <= @MaxNumOfRecords)
Order By sr.RowNum Asc;
Return;
End
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataSearch] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstDataSearch] Error on Creation'
GO
/****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByAccPageID] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByAccPageID' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByAccPageID]
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: Check if the AccPageID passed in has a specific Return Value Type Extension (.A, .B, .C, etc.)
If so, then strip off the return value specific extension to get the BaseAccPageID for the lookup.
Use the BaseAccPageID to lookup the BaseRoid, then use the Roid to lookup the Ro Child Object
Note** Using the AccPageID to first lookup the roid, then using the roid to lookup the data is
significantly faster than directly looking up the data using the AccPageID because of the indexes
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstDataGetChildByAccPageID]
(
@RofstID int,
@AccPageID VarChar(50)
)
With Execute as Owner
As
Begin
Declare @BaseAccPageID VarChar(Max);
Declare @Roid VarChar(Max);
If (PatIndex('%.[A-Z]', @AccPageID) > 0)
Set @BaseAccPageID = Left(@AccPageID, Len(@AccPageID)-2);
Else
Set @BaseAccPageID = @AccPageID;
-- First use the AccPageID to get the BaseRoid
Select @Roid = rb.BaseRoid
From vwRofstData_RofstBaseRoids rb
Where rb.RofstID = @RofstID
And rb.BaseAccPageID = @BaseAccPageID;
-- Then use the Roid to lookup the Ro Child Object
Select rc.ROFstID,
rc.dbiID,
rc.ID,
rc.ParentID,
rc.[type],
rc.title,
rc.roid,
rc.appid,
rc.[value],
rc.AccPageID
From vwRofstData_RofstChildren rc
Where rc.RofstID = @RofstID
And rc.roid = @Roid;
Return;
End
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Error on Creation'
GO
/****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByRoid] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByRoid' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByRoid]
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: The data in the Rofst Children table currently only goes down to the (12) digit roid level.
To look up a specific return type value (16) digit roid for a RO object, you first have to
load the base RO object by its (12) digit roid in code, and then look for the specific
return value in the RO objects children collection because the values for any
multiple/variable return type formats can vary at runtime, based on your current selected
DocVersion and the Selected Slave (Unit) / OtherChild Override.
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstDataGetChildByRoid]
(
@RofstID int,
@Roid VarChar(50)
)
With Execute as Owner
As
Begin
-- Only use the first (12) characters to lookup an RoChild by its roid
-- If its a (16) digit roid, then use its last (4) characters [roidExt ==> specific to a return type value]
-- to select the specified return value format type in the code once all of the children Ro Return types have
-- been loaded into memory in the code
Set @Roid = Left(@Roid + '00000000', 12);
Select rc.ROFstID,
rc.dbiID,
rc.ID,
rc.ParentID,
rc.[type],
rc.title,
rc.roid,
rc.appid,
rc.[value],
rc.AccPageID
From vwRofstData_RofstChildren rc
Where rc.RofstID = @RofstID
And rc.roid = @Roid;
Return;
End
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByRoid] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByRoid] Error on Creation'
GO
-- Delete All Existing Rofst Table Data
Delete From RofstHeader;
/*
==========================================================================================================
End: B2022-083: Support Conditional RO Values (v2.1)
==========================================================================================================
*/
-----------------------------------------------------------------------------
/*
@ -20073,7 +20967,7 @@ GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2021 - Volian Enterprises, Inc. All rights reserved.
Copyright 2022 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
CREATE PROCEDURE [dbo].[vesp_GetSQLCodeRevision]
WITH EXECUTE AS OWNER
@ -20085,8 +20979,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
set @RevDate = '07/12/2022 11:15 AM'
set @RevDescription = 'ROFST Lookup / Memory Fixes (v2.0) - New procedures for Reduction of Memory Use'
set @RevDate = '07/27/2022 1:20 PM'
set @RevDescription = 'B2022-083: Support Conditional RO Values (v2.1)'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription

File diff suppressed because it is too large Load Diff

View File

@ -20041,15 +20041,909 @@ GO
GO
/*
==========================================================================================================
End: B2022-026 RO Memory reduction coding (Jakes Merge) [Version 2.0]
==========================================================================================================
*/
/*
==========================================================================================================
Start: B2022-083: Support Conditional RO Values (v2.1)
==========================================================================================================
*/
/*
----------------------------------------------------------------------------------
Tables:
----------------------------------------------------------------------------------
[RofstExtension] [Created]
*/
-- If RofstExtension table already exists then don't drop and recreate it
IF Not Exists(SELECT * FROM sys.objects Where name = 'RofstExtension' AND type in (N'U'))
Begin
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[RofstExtension](
[Offset] [int] NOT NULL,
[RoidExt] [varchar](4) NOT NULL,
[AccPageExt] [varchar](5) NOT NULL,
CONSTRAINT [PK_RofstExtension] PRIMARY KEY CLUSTERED
(
[Offset] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
IF (@@Error = 0) PRINT 'Table Creation: [RofstExtension] Succeeded'
ELSE PRINT 'Table Creation: [RofstExtension] Error on Creation'
IF (@@Error = 0)
Begin
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (1,'0041','A');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (2,'0042','B');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (3,'0043','C');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (4,'0044','D');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (5,'0045','E');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (6,'0046','F');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (7,'0047','G');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (8,'0048','H');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (9,'0049','I');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (10,'004A','J');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (11,'004B','K');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (12,'004C','L');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (13,'004D','M');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (14,'004E','N');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (15,'004F','O');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (16,'0050','P');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (17,'0051','Q');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (18,'0052','R');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (19,'0053','S');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (20,'0054','T');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (21,'0055','U');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (22,'0056','V');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (23,'0057','W');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (24,'0058','X');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (25,'0059','Y');
Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (26,'005A','Z');
End
End
Go
/*
----------------------------------------------------------------------------------
Functions:
----------------------------------------------------------------------------------
[dbo].[vefn_RofstDataCleanUnitInfoTags] [Created]
[dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults] [Created]
[dbo].[vefn_RofstDataReplaceVars] [Modified]
*/
/****** Object: UserDefinedFunction [dbo].[vefn_RofstDataCleanUnitInfoTags] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataCleanUnitInfoTags' AND type in (N'FN'))
DROP FUNCTION [dbo].[vefn_RofstDataCleanUnitInfoTags]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- Author: Jake Ropar
-- Create Date: 06/21/2022
-- Description: Removes any legacy legacy unit info variables and fixes older applicability tags
-- ==========================================================================================
CREATE FUNCTION [dbo].[vefn_RofstDataCleanUnitInfoTags](@Values VarChar(Max), @RemoveUnitInfoVars bit = 0) Returns VarChar(Max)
WITH EXECUTE AS OWNER
AS
BEGIN
Declare @RetVal VarChar(Max) = '';
Set @RetVal = dbo.vefn_Clean(@Values, 1, null);
If (Len(@RetVal) > 0)
Begin
-- Make Sure all tag/var instances are upper case & Remove any internal spaces
Set @RetVal = Replace(@RetVal, 'U-OTHER TEXT', 'U-OTHERTEXT');
Set @RetVal = Replace(@RetVal, 'U-OTHER NUMBER', 'U-OTHERNUMBER');
Set @RetVal = Replace(@RetVal, 'U-OTHER NAME', 'U-OTHERNAME');
Set @RetVal = Replace(@RetVal, 'U-OTHER ID', 'U-OTHERID');
Set @RetVal = Replace(@RetVal, '<u>', '<U-ID>');
If (@RemoveUnitInfoVars > 0)
Begin
-- Remove any Unit Info Variables
Set @RetVal = Replace(@RetVal, '<u>', '');
Set @RetVal = Replace(@RetVal, '<U-ID>', '');
Set @RetVal = Replace(@RetVal, '<U-NUMBER>', '');
Set @RetVal = Replace(@RetVal, '<U-NAME>', '');
Set @RetVal = Replace(@RetVal, '<U-TEXT>', '');
Set @RetVal = Replace(@RetVal, '<U-OTHERID>', '');
Set @RetVal = Replace(@RetVal, '<U-OTHERNUMBER>', '');
Set @RetVal = Replace(@RetVal, '<U-OTHERNAME>', '');
Set @RetVal = Replace(@RetVal, '<U-OTHERTEXT>', '');
End
End
Return @RetVal;
END
Go
IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Succeeded'
ELSE PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Error on Creation'
GO
/****** Object: UserDefinedFunction [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceLegacyTagsWithDefaults' AND type in (N'FN'))
DROP FUNCTION [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- Author: Jake Ropar
-- Create Date: 06/21/2022
-- Description: Replaces any legacy applicability tags with the default value
-- ==========================================================================================
CREATE FUNCTION [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults](@Values VarChar(Max)) Returns VarChar(Max)
WITH EXECUTE AS OWNER
AS
BEGIN
Declare @RetVal VarChar(Max) = '';
Declare @DefaultValue VarChar(Max) = '';
Declare @StartTagIndex Int;
Declare @EndTagIndex Int;
Declare @StartTagValue VarChar(Max);
Declare @StartValIndex Int;
Declare @EndValIndex Int;
Declare @TagName VarChar(Max);
Declare @LegacyTagNames VarChar(Max) = 'U-ID,U-NUMBER,U-NAME,U-TEXT,U-OTHERID,U-OTHERNUMBER,U-OTHERNAME,U-OTHERTEXT';
-- Make Sure all tag instances are upper case & Remove any internal spaces
Set @RetVal = dbo.vefn_RofstDataCleanUnitInfoTags(@Values, 0);
Declare LegacyTags_Cursor Cursor Fast_Forward For
Select '{' + x.ListValue + '{' as 'TagName'
From [dbo].[vefn_ParseStringListToTable](@LegacyTagNames, ',') x
Open LegacyTags_Cursor
Fetch Next From LegacyTags_Cursor Into @TagName
While (@@FETCH_STATUS = 0)
Begin
-- Get Start/End Index of Tag
Set @StartTagIndex = PatIndex('%' + @TagName + '%', @RetVal);
Set @EndTagIndex = PatIndex('%}}%', @RetVal);
While (@StartTagIndex > 0)
Begin
Set @StartTagValue = SubString(@RetVal, @StartTagIndex, (@EndTagIndex - @StartTagIndex) + 2);
Set @StartValIndex = PatIndex('%=%', @StartTagValue);
Set @EndValIndex = PatIndex('%}%', @StartTagValue);
Set @DefaultValue = SubString(@StartTagValue, @StartValIndex + 1, (@EndValIndex - @StartValIndex) - 1);
Set @RetVal = Replace(@RetVal, @StartTagValue, @DefaultValue);
Set @StartTagIndex = PatIndex('%' + @TagName + '%', @RetVal);
Set @EndTagIndex = PatIndex('%}}%', @RetVal);
End -- While (@StartTagIndex > 0)
Fetch Next From LegacyTags_Cursor Into @TagName
End
Close LegacyTags_Cursor;
Deallocate LegacyTags_Cursor;
Return @RetVal;
END
Go
IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceLegacyTagsWithDefaults] Succeeded'
ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceLegacyTagsWithDefaults] Error on Creation'
GO
/****** Object: UserDefinedFunction [dbo].[vefn_RofstDataReplaceVars] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceVars' AND type in (N'FN'))
DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- Author: Jake Ropar
-- Create Date: 3/25/2022
-- Description: Replaces Any Variables and returns the rest of the value string
-- ==========================================================================================
CREATE FUNCTION [dbo].[vefn_RofstDataReplaceVars](@Values VarChar(Max)) Returns VarChar(Max)
WITH EXECUTE AS OWNER
AS
BEGIN
Declare @RetVal VarChar(Max) = '';
Declare @EqualsIndex Int;
Declare @EndIndex Int;
Declare @NameValPairStartIndex Int;
Declare @NameValPairEndIndex Int;
Declare @VarPair VarChar(Max);
Declare @VarName VarChar(Max);
Declare @VarValue VarChar(Max);
-- Replace Any "<APL /APL>" Tags with the Default Value first
Select @RetVal = dbo.vefn_RofstDataReplaceApplTagsWithDefaults(@Values);
-- Replace Any Legacy Applicability Tags with the Default Value second
Select @RetVal = dbo.vefn_RofstDataReplaceLegacyTagsWithDefaults(@RetVal);
If (PatIndex('%{{A%', @RetVal) > 0)
Set @EndIndex = PatIndex('%{{A%', @RetVal);
Else
Set @EndIndex = Len(@RetVal) -1;
Set @NameValPairStartIndex = PatIndex('%{%', @RetVal);
Set @NameValPairEndIndex = PatIndex('%}%', @RetVal);
While(@NameValPairStartIndex > 0 And @NameValPairStartIndex < @EndIndex)
Begin
-- Get Name Value Pair [ex. {EGS=1214}]
Set @VarPair = SubString(@RetVal, @NameValPairStartIndex, (@NameValPairEndIndex - @NameValPairStartIndex) + 1);
-- Remove Name Value Pair From Return Val
Set @RetVal = Replace(@RetVal, @VarPair, '');
-- Get Variable Name and Value
Set @EqualsIndex = PatIndex('%=%', @VarPair);
If (@EqualsIndex > 0)
Begin
Set @VarName = SubString(@VarPair, 2, @EqualsIndex - 2);
Set @VarValue = SubString(@VarPair, @EqualsIndex + 1, Len(@VarPair) - @EqualsIndex - 1);
Set @VarName = Concat('{', @VarName, '}');
-- Replace All Occurences
Set @RetVal = Replace(@RetVal, @VarName, @VarValue);
End
-- Get Updated Index Values
If (PatIndex('%{{A%', @RetVal) > 0)
Set @EndIndex = PatIndex('%{{A%', @RetVal);
Else
Set @EndIndex = Len(@RetVal) -1;
Set @NameValPairStartIndex = PatIndex('%{%', @RetVal);
Set @NameValPairEndIndex = PatIndex('%}%', @RetVal);
End -- End While(@ReplaceVarEndTagIndex > 0)
Return @RetVal;
END
Go
IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Succeeded'
ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Error on Creation'
GO
/*
----------------------------------------------------------------------------------
Views:
----------------------------------------------------------------------------------
[dbo].[vwRofstData_RofstExtensions] [Created]
[dbo].[vwRofstData_RofstValueTypes] [Created]
[dbo].[vwRofstData_RofstBaseRoids] [Created]
[dbo].[vwRofstData_RofstChildren] [Modified]
*/
/****** Object: View [dbo].[vwRofstData_RofstExtensions] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstExtensions' AND type in (N'V'))
DROP VIEW [dbo].[vwRofstData_RofstExtensions]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 06/21/2024
Description: (RofstData) Master View for RofstExtensions
==========================================================================================================
*/
Create View [dbo].[vwRofstData_RofstExtensions]
As
Select re.Offset as 'Offset',
re.RoidExt as 'RoidExt',
re.AccPageExt as 'AccPageExt'
From RofstExtension re With (NoLock)
GO
IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstExtensions] Succeeded'
ELSE PRINT 'View Creation: [vwRofstData_RofstExtensions] Error on Creation'
GO
/****** Object: View [dbo].[vwRofstData_RofstValueTypes] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstValueTypes' AND type in (N'V'))
DROP VIEW [dbo].[vwRofstData_RofstValueTypes]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 06/21/2022
Description: (RofstData) Master View for Rofst Value Types
(0) Unknown (1) Single Line Text (2) Table (3) Multiple Line Text (4) X/Y Plot (8) Image
==========================================================================================================
*/
Create View [dbo].[vwRofstData_RofstValueTypes]
As
Select '0' as 'TypeID', 'Unknown' as 'TypeDescription'
Union All
Select '1' as 'TypeID', 'Single Line Text' as 'TypeDescription' -- Fixed Length Text
Union All
Select '2' as 'TypeID', 'Table' as 'TypeDescription'
Union All
Select '3' as 'TypeID', 'Multiple Line Text' as 'TypeDescription'
Union All
Select '4' as 'TypeID', 'X/Y Plot' as 'TypeDescription'
Union All
Select '8' as 'TypeID', 'Image' as 'TypeDescription'
GO
IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstValueTypes] Succeeded'
ELSE PRINT 'View Creation: [vwRofstData_RofstValueTypes] Error on Creation'
GO
/****** Object: View [dbo].[vwRofstData_RofstBaseRoids] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstBaseRoids' AND type in (N'V'))
DROP VIEW [dbo].[vwRofstData_RofstBaseRoids]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 03/24/2024
Description: (RofstData) Master View for Rofst Base Roid / AccPageID Values
==========================================================================================================
*/
Create View [dbo].[vwRofstData_RofstBaseRoids]
As
Select RofstID as 'RofstID',
Left(roid, 12) as 'BaseRoid',
Left(AccPageID, (Len(AccPageID)-2)) as 'BaseAccPageID'
From vwRofstData_RofstDefaultValues
Where AccPageID like '%.A';
GO
IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstBaseRoids] Succeeded'
ELSE PRINT 'View Creation: [vwRofstData_RofstBaseRoids] Error on Creation'
GO
/****** Object: View [dbo].[vwRofstData_RofstChildren] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstChildren' AND type in (N'V'))
DROP VIEW [dbo].[vwRofstData_RofstChildren]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Create Date: 03/24/2024
Description: (RofstData) Master View for RofstChildren (RoChild & Groups)
==========================================================================================================
*/
Create View [dbo].[vwRofstData_RofstChildren]
As
Select rc.RofstChildID as 'RofstChildID',
rd.RofstID as 'RofstID',
-- RoDatabase Info
rd.dbiID as 'dbiID',
rd.dbiType as 'dbiType',
rd.dbiAW as 'dbiAW',
rd.dbiTitle as 'dbiTitle',
rd.dbiAP as 'dbiAP',
-- RoChild Info
rc.ID as 'ID',
rc.ParentID as 'ParentID',
rc.[type] as 'type',
IsNull(vt.TypeDescription, 'Unknown') as 'TypeDescription',
rc.title as 'title',
rc.roid as 'roid',
rc.appid as 'appid',
rc.[value] as 'value',
Case When (Not rc.[value] is null) Then rd.dbiAP + '-' + rc.appid Else null End as 'AccPageID'
From RofstChild rc With (NoLock)
inner join RofstDatabase rd With (NoLock) on rc.RofstID = rd.RofstID and rc.dbiID = rd.dbiID
left outer join vwRofstData_RofstValueTypes vt on vt.TypeID = rc.[type];
GO
IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstChildren] Succeeded'
ELSE PRINT 'View Creation: [vwRofstData_RofstChildren] Error on Creation'
GO
/*
----------------------------------------------------------------------------------
Stored Procs:
----------------------------------------------------------------------------------
[dbo].[vesp_RofstDataGetChildByID] [Deleted]
[dbo].[vesp_RofstDataGetExtensions] [Created]
[dbo].[vesp_RofstChildInsert] [Modified]
[dbo].[vesp_RofstDataSearch] [Modified]
[dbo].[vesp_RofstDataGetChildByAccPageID] [Modified]
[dbo].[vesp_RofstDataGetChildByRoid] [Modified]
*/
/****** Object: StoredProcedure [dbo].[vesp_RofstHeaderInsert] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByID' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByID]
GO
IF (@@Error = 0) PRINT 'Procedure Deletion: [vesp_RofstDataGetChildByID] Succeeded'
ELSE PRINT 'Procedure Deletion: [vesp_RofstDataGetChildByID] Error on Creation'
GO
/****** Object: StoredProcedure [dbo].[vesp_RofstDataGetExtensions] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetExtensions' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataGetExtensions]
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: 06/21/2022
Description: Gets the Ro Lookup Extensions
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstDataGetExtensions]
With Execute as Owner
As
Begin
Select re.Offset,
re.RoidExt,
re.AccPageExt
From vwRofstData_RofstExtensions re
Order By re.Offset Asc;
Return;
End
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetExtensions] Succeeded'
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]
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: RO Default Value Search
@SearchTypeID => (1) Starts With (2) Ends With (3) Contains (4) Exact Match
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstDataSearch]
(
@RofstID int,
@Value VarChar(Max) = null,
@SearchTypeID Int = 1, -- Starts With
@OnlyRoid16 Bit = 1, -- Return Only Roid16 Records
@MaxNumOfRecords Int = null
)
With Execute as Owner
As
Begin
-- Remove any leading/trailing white spaces
Set @Value = dbo.vefn_Clean( @Value, 0, null );
-- Escape any % signs in the search value
Set @Value = Replace( @Value, '%', '[%]' );
-- Format search value
If (Len(@Value) = 0) Set @Value = null;
-- Create Temp Results Table
Create Table #SearchResults (roid VarChar(50) Not Null, [value] VarChar(Max), RowNum Int Not Null Primary Key);
-- Select roids/values based on search criteria
Insert Into #SearchResults (roid, [value], RowNum)
Select rdv.roid,
rdv.[value],
Row_Number() Over (Order By rdv.[value] Asc, rdv.roid Asc) as 'RowNum'
From vwRofstData_RofstDefaultValues rdv
Where rdv.RofstID = @RofstID
And (@OnlyRoid16 = 0 Or Len(rdv.roid) = 16)
And ((@Value is null)
Or (@SearchTypeID = 1 And rdv.[value] like @Value + '%') -- Starts With
Or (@SearchTypeID = 2 And rdv.[value] like '%' + @Value) -- Ends With
Or (@SearchTypeID = 3 And rdv.[value] like '%' + @Value + '%') -- Contains
Or (@SearchTypeID = 4 And rdv.[value] = @Value)) -- Exact Match
Order By rdv.[value] Asc, rdv.roid Asc
Option (Recompile);
-- Return the specified number of results
Select sr.roid, sr.[value]
From #SearchResults sr
Where (@MaxNumOfRecords is null Or sr.RowNum <= @MaxNumOfRecords)
Order By sr.RowNum Asc;
Return;
End
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataSearch] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstDataSearch] Error on Creation'
GO
/****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByAccPageID] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByAccPageID' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByAccPageID]
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: Check if the AccPageID passed in has a specific Return Value Type Extension (.A, .B, .C, etc.)
If so, then strip off the return value specific extension to get the BaseAccPageID for the lookup.
Use the BaseAccPageID to lookup the BaseRoid, then use the Roid to lookup the Ro Child Object
Note** Using the AccPageID to first lookup the roid, then using the roid to lookup the data is
significantly faster than directly looking up the data using the AccPageID because of the indexes
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstDataGetChildByAccPageID]
(
@RofstID int,
@AccPageID VarChar(50)
)
With Execute as Owner
As
Begin
Declare @BaseAccPageID VarChar(Max);
Declare @Roid VarChar(Max);
If (PatIndex('%.[A-Z]', @AccPageID) > 0)
Set @BaseAccPageID = Left(@AccPageID, Len(@AccPageID)-2);
Else
Set @BaseAccPageID = @AccPageID;
-- First use the AccPageID to get the BaseRoid
Select @Roid = rb.BaseRoid
From vwRofstData_RofstBaseRoids rb
Where rb.RofstID = @RofstID
And rb.BaseAccPageID = @BaseAccPageID;
-- Then use the Roid to lookup the Ro Child Object
Select rc.ROFstID,
rc.dbiID,
rc.ID,
rc.ParentID,
rc.[type],
rc.title,
rc.roid,
rc.appid,
rc.[value],
rc.AccPageID
From vwRofstData_RofstChildren rc
Where rc.RofstID = @RofstID
And rc.roid = @Roid;
Return;
End
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Error on Creation'
GO
/****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByRoid] ***********************/
If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByRoid' AND type in (N'P'))
DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByRoid]
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: The data in the Rofst Children table currently only goes down to the (12) digit roid level.
To look up a specific return type value (16) digit roid for a RO object, you first have to
load the base RO object by its (12) digit roid in code, and then look for the specific
return value in the RO objects children collection because the values for any
multiple/variable return type formats can vary at runtime, based on your current selected
DocVersion and the Selected Slave (Unit) / OtherChild Override.
==========================================================================================================
*/
Create Procedure [dbo].[vesp_RofstDataGetChildByRoid]
(
@RofstID int,
@Roid VarChar(50)
)
With Execute as Owner
As
Begin
-- Only use the first (12) characters to lookup an RoChild by its roid
-- If its a (16) digit roid, then use its last (4) characters [roidExt ==> specific to a return type value]
-- to select the specified return value format type in the code once all of the children Ro Return types have
-- been loaded into memory in the code
Set @Roid = Left(@Roid + '00000000', 12);
Select rc.ROFstID,
rc.dbiID,
rc.ID,
rc.ParentID,
rc.[type],
rc.title,
rc.roid,
rc.appid,
rc.[value],
rc.AccPageID
From vwRofstData_RofstChildren rc
Where rc.RofstID = @RofstID
And rc.roid = @Roid;
Return;
End
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByRoid] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByRoid] Error on Creation'
GO
-- Delete All Existing Rofst Table Data
Delete From RofstHeader;
/*
==========================================================================================================
End: B2022-083: Support Conditional RO Values (v2.1)
==========================================================================================================
*/
-----------------------------------------------------------------------------
/*
@ -20073,7 +20967,7 @@ GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2021 - Volian Enterprises, Inc. All rights reserved.
Copyright 2022 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
CREATE PROCEDURE [dbo].[vesp_GetSQLCodeRevision]
WITH EXECUTE AS OWNER
@ -20085,8 +20979,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
set @RevDate = '07/12/2022 11:15 AM'
set @RevDescription = 'ROFST Lookup / Memory Fixes (v2.0) - New procedures for Reduction of Memory Use'
set @RevDate = '07/27/2022 1:20 PM'
set @RevDescription = 'B2022-083: Support Conditional RO Values (v2.1)'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription

View File

@ -47,7 +47,7 @@ namespace VEPROMS
this.lblStatus.Location = new System.Drawing.Point(9, 17);
this.lblStatus.Margin = new System.Windows.Forms.Padding(2);
this.lblStatus.Name = "lblStatus";
this.lblStatus.Size = new System.Drawing.Size(228, 19);
this.lblStatus.Size = new System.Drawing.Size(542, 19);
this.lblStatus.TabIndex = 0;
this.lblStatus.Text = "Ready";
//
@ -60,7 +60,7 @@ namespace VEPROMS
this.pb.Location = new System.Drawing.Point(9, 53);
this.pb.Margin = new System.Windows.Forms.Padding(2);
this.pb.Name = "pb";
this.pb.Size = new System.Drawing.Size(541, 19);
this.pb.Size = new System.Drawing.Size(716, 19);
this.pb.TabIndex = 1;
this.pb.TextVisible = true;
//
@ -72,7 +72,7 @@ namespace VEPROMS
//
this.btnOpenFolder.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnOpenFolder.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnOpenFolder.Location = new System.Drawing.Point(473, 23);
this.btnOpenFolder.Location = new System.Drawing.Point(643, 17);
this.btnOpenFolder.Margin = new System.Windows.Forms.Padding(2);
this.btnOpenFolder.Name = "btnOpenFolder";
this.btnOpenFolder.Size = new System.Drawing.Size(77, 19);
@ -86,7 +86,7 @@ namespace VEPROMS
//
this.btnOpenPDF.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnOpenPDF.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnOpenPDF.Location = new System.Drawing.Point(394, 23);
this.btnOpenPDF.Location = new System.Drawing.Point(564, 17);
this.btnOpenPDF.Margin = new System.Windows.Forms.Padding(2);
this.btnOpenPDF.Name = "btnOpenPDF";
this.btnOpenPDF.Size = new System.Drawing.Size(75, 19);
@ -100,7 +100,7 @@ namespace VEPROMS
//
this.btnCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnCancel.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnCancel.Location = new System.Drawing.Point(453, 21);
this.btnCancel.Location = new System.Drawing.Point(623, 17);
this.btnCancel.Margin = new System.Windows.Forms.Padding(2);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(77, 19);
@ -114,7 +114,7 @@ namespace VEPROMS
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(559, 84);
this.ClientSize = new System.Drawing.Size(736, 84);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOpenPDF);
this.Controls.Add(this.btnOpenFolder);

View File

@ -112,15 +112,15 @@
<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>
<metadata name="tmrRun.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<metadata name="tmrRun.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAA4AMDAQAAEABABoBgAA5gAAACAgEAABAAQA6AIAAE4HAAAYGBAAAQAEAOgBAAA2CgAAEBAQAAEA

View File

@ -105,20 +105,21 @@ namespace VEPROMS
ProcedureInfo pi = args.Proc as ProcedureInfo;
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
if (pi == null) return;
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave;
if (pi == null) return;
DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi);
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave;
prnDlg.SelectedSlave = (pi.ProcedureConfig.SelectedSlave == 0) ? -1 : pi.ProcedureConfig.SelectedSlave;
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.Automatic = true;
prnDlg.CreateContinuousActionSummary = true;
prnDlg.OpenAfterCreate = (dr == System.Windows.Forms.DialogResult.Yes);
prnDlg.Prefix = "CASTMP_"; // A temporary procedure PDF is created to grab page numbers
prnDlg.SetupForProcedure();
prnDlg.CreatePDF();
@ -379,7 +380,6 @@ namespace VEPROMS
}
void displaySearch1_SearchComplete(object sender, DisplaySearchEventArgs args)
{
ProgBarText = string.Format("{0} Seconds", args.HowLong.TotalSeconds);
@ -628,7 +628,7 @@ namespace VEPROMS
else
{
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
//int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, (args.Index == 0) ? CheckOutType.Folder : CheckOutType.Session);
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
dlg.ShowDialog(this);
@ -661,6 +661,7 @@ namespace VEPROMS
}
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
dlg.MyNewProcedure = null;
dlg.ExternalTransitionItem = null;
@ -894,6 +895,7 @@ namespace VEPROMS
}
tc.SaveCurrentEditItem();
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref message))
@ -904,13 +906,15 @@ namespace VEPROMS
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
dvi.DocVersionConfig.SelectedSlave = args.UnitIndex;
dlgApproveProcedure dlg = new dlgApproveProcedure(dvi, true, this);
dlg.MySessionInfo = MySessionInfo;
dlg.ShowDialog(this);
displayHistory.RefreshList();
dvi.DocVersionConfig.SelectedSlave = 0;
MySessionInfo.CheckInItem(ownerid);
dvi.DocVersionConfig.SelectedSlave = 0;
}
void tv_ApproveAllProcedures(object sender, vlnTreeEventArgs args)
@ -924,11 +928,12 @@ namespace VEPROMS
// C2020-036 display list of duplicate procedure numbers
FlexibleMessageBox.Show("This procedure set has two or more procedures with the same procedure number.\n\n" +
"Please make each procedure number unique before approving.\n\n" +
"Below is a list of the dupicate procedure numbers:\n\n" + dupProcList, "Approve All Procedures", MessageBoxButtons.OK, MessageBoxIcon.Warning);
"Below is a list of the duplicate procedure numbers:\n\n" + dupProcList, "Approve All Procedures", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
tc.SaveCurrentEditItem();
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref message))
@ -939,13 +944,15 @@ namespace VEPROMS
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
dvi.DocVersionConfig.SelectedSlave = args.UnitIndex;
dlgApproveProcedure dlg = new dlgApproveProcedure(dvi, this);//Added frmVEPROMS Parameter
dlg.MySessionInfo = MySessionInfo;
dlg.ShowDialog(this);
displayHistory.RefreshList();
dvi.DocVersionConfig.SelectedSlave = 0;
MySessionInfo.CheckInItem(ownerid);
dvi.DocVersionConfig.SelectedSlave = 0;
}
void tv_RefreshCheckedOutProcedures(object sender, vlnTreeEventArgs args)
@ -1020,7 +1027,6 @@ namespace VEPROMS
void tv_ApproveProcedure(object sender, vlnTreeEventArgs args)
{
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
if (pi == null) return;
// B2017-242 added check for duplicate procedure numbers in a procedure set?
@ -1033,6 +1039,7 @@ namespace VEPROMS
}
tc.SaveCurrentEditItem(pi);
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref message))
@ -1042,13 +1049,16 @@ namespace VEPROMS
}
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, 0);
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
dlgApproveProcedure dlg = new dlgApproveProcedure(pi, this);//Added frmVEPROMS Parameter
dlg.MySessionInfo = MySessionInfo;
dlg.ShowDialog(this);
displayHistory.RefreshList();
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
MySessionInfo.CheckInItem(ownerid);
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
}
void tv_PrintAllProcedures(object sender, vlnTreeEventArgs args)
@ -1058,23 +1068,28 @@ namespace VEPROMS
tc.SaveCurrentEditItem();
dvi.DocVersionConfig.SelectedSlave = args.UnitIndex;
DlgPrintProcedure prnDlg = new DlgPrintProcedure(dvi);
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SelectedSlave = args.UnitIndex;
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
dvi.DocVersionConfig.SelectedSlave = 0;
}
void tv_PrintProcedure(object sender, vlnTreeEventArgs args)
{
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
if (pi == null) return;
tc.SaveCurrentEditItem(pi);
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi);
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SelectedSlave = args.UnitIndex;
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
@ -1083,12 +1098,14 @@ namespace VEPROMS
void tv_CreateContinuousActionSummary(object sender, vlnTreeEventArgs args)
{
DialogResult dr = System.Windows.Forms.DialogResult.Yes;
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
if (pi == null) return;
tc.SaveCurrentEditItem(pi);
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi, true);
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SelectedSlave = args.UnitIndex;
@ -1096,7 +1113,6 @@ namespace VEPROMS
prnDlg.CreateContinuousActionSummary = true;
prnDlg.OpenAfterCreate = (dr == System.Windows.Forms.DialogResult.Yes);
prnDlg.Prefix = "CASTMP_"; // prefix the temporary procedure PDF file that is generated (to grab page numbers)
prnDlg.SetupForProcedure();
prnDlg.CreatePDF();
@ -1264,21 +1280,17 @@ namespace VEPROMS
ProcedureInfo pi = args.Proc as ProcedureInfo;
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave;
// Check if Procedure Info is null
if (pi == null) return;
DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi);
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave;
prnDlg.MySessionInfo = MySessionInfo;
pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave;
// RHM 20120925 - Center dialog over PROMS window
prnDlg.ShowDialog(this);
DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi);
prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; //added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
@ -2291,16 +2303,15 @@ namespace VEPROMS
{
ProcedureInfo proc = dicProcs[key];
//Console.WriteLine("{0}", proc.ShortPath);
DlgPrintProcedure prnDlg = new DlgPrintProcedure(proc, true);
prnDlg.MySessionInfo = MySessionInfo;
//prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
prnDlg.Prefix = proc.MyDocVersion.VersionID.ToString() + "_";
prnDlg.Automatic = true;
prnDlg.OpenAfterCreate = (dr == System.Windows.Forms.DialogResult.Yes);
prnDlg.SetupForProcedure();
prnDlg.CreatePDF();
//prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
}
}
@ -2625,7 +2636,7 @@ namespace VEPROMS
- Jess- Volian0
- John- Volian0
- Kathy- Volian0
- Jake- Volian0
- Jake- Volian0
- Jim- JCB2-HP
- Rich- WINDOWS7-RHM
- Rich - RICH-WINDOWS10
@ -2699,6 +2710,7 @@ namespace VEPROMS
void btnUserControlOfFormatsExport_Click(object sender, EventArgs e)
{
DocVersionInfo dvi = null;
dlgExportImport dlg = new dlgExportImport("Export Formats", dvi, this, (E_UCFImportOptions)0);
dlg.MyNewProcedure = null;
dlg.ExternalTransitionItem = null;
@ -2708,6 +2720,7 @@ namespace VEPROMS
void btnUserControlOfFormatsImport_Click(object sender, EventArgs e)
{
DocVersionInfo dvi = null;
dlgExportImport dlg = new dlgExportImport("Import Formats", dvi, this, (E_UCFImportOptions)0);
dlg.MyNewProcedure = null;
dlg.ExternalTransitionItem = null;
@ -2879,14 +2892,13 @@ namespace VEPROMS
foreach (string dvstr in dvstrs)
{
if (dvstr != "")
if (dvstr != string.Empty)
{
DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(dvstr));
if (dvi != null)
{
DlgPrintProcedure prnDlg = new DlgPrintProcedure(dvi, true);
if (dvi.MultiUnitCount == 0) prnDlg.SelectedSlave = -1;
prnDlg.AllowDateTimePrefixSuffix = false; //C2018-033 don't append any selected date/time pdf file prefix or suffix (defined in working draft properties)
prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window

View File

@ -353,11 +353,11 @@ namespace VEPROMS.CSLA.Library
if (!string.IsNullOrEmpty(rc.roid) && Regex.IsMatch(accPageKey, @".*\.[A-Z]") && rc.children != null && rc.children.Count() > 0)
{
// Check if AccPageID/Key has a return value specific extension. Try to find the RoChild record with the specific return value type,
// If not found then return the first/default return value type in the list of children
// If not found Or the specific extension value is (Null or Empty), then just return the first/default return value type in the list of children
var accPageExt = Convert.ToString(accPageKey.ToCharArray().LastOrDefault());
var roExt = Extensions.Where(x => x.AccPageExt.Equals(accPageExt)).SingleOrDefault();
return (rc.children.Where(x => x.roid.Substring(12, 4) == roExt.RoidExt).Any()) ? rc.children.Where(x => x.roid.Substring(12, 4) == roExt.RoidExt).Single() : rc.children.First();
return (rc.children.Where(x => x.roid.Substring(12, 4) == roExt.RoidExt && !string.IsNullOrEmpty(x.value)).Any()) ? rc.children.Where(x => x.roid.Substring(12, 4) == roExt.RoidExt).Single() : rc.children.First();
}
return rc; // If RoChild is not found, then a default (ROFSTLookup.rochild) object will be returned, but its ID will be -1
@ -421,6 +421,7 @@ namespace VEPROMS.CSLA.Library
}
public string GetRoValue(string roid)
{
return GetRoChild(roid).value;
@ -603,13 +604,11 @@ namespace VEPROMS.CSLA.Library
public void LoadChildren(ref ROFSTLookup.rochild child)
{
// If Children is null then it hasn't been loaded yet
//if (child.children == null || child.children.Length <= 0)
if (child.children == null)
{
if (!string.IsNullOrEmpty(child.appid))
child = GetRoChild12(child.roid, true);
else
//child.children = GetRoChildrenByRoid(child.roid, true);
child.children = GetRoChildrenByRoid(child.roid, false);
}
}
@ -617,9 +616,7 @@ namespace VEPROMS.CSLA.Library
public void LoadChildren(ref ROFSTLookup.rodbi db)
{
// If Children is null then it hasn't been loaded yet
//if (child.children == null || child.children.Length <= 0)
if (db.children == null)
//db.children = GetRoChildrenByID(db.ID, db.dbiID, true);
db.children = GetRoChildrenByID(db.ID, db.dbiID, false);
}
@ -1957,10 +1954,11 @@ namespace VEPROMS.CSLA.Library
if (!string.IsNullOrEmpty(roid))
{
rc.roid = FormatRoidKey(roid).Substring(0, 12);
DocVersionConfig dvc = (_myDocVersionInfo != null) ? _myDocVersionInfo.DocVersionConfig : null;
rc.roid = FormatRoidKey(roid).Substring(0, 12);
if (dvc != null) dvc.SelectedSlave = this.SelectedSlave;
switch (rc.roid)
{
case "FFFF00000001":

View File

@ -410,12 +410,14 @@ namespace VEPROMS.CSLA.Library
public class DSOFile : IDisposable
{
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
#region Fields
private bool _IsDisposed;
private DocumentInfo _MyDocument = null;
private FileInfo _MyFile = null;
private string _Extension = "DOC";
#endregion
#region Properties
public DocumentInfo MyDocument
{
@ -438,6 +440,7 @@ namespace VEPROMS.CSLA.Library
set { _Extension = value; }
}
#endregion
#region Private Methods
private void TryDelete()
{
@ -757,7 +760,7 @@ namespace VEPROMS.CSLA.Library
private static List<int> _MissingDocs = new List<int>();
private static bool _Automatic = false;
// [JAKE CODE]: Added an internal rochild dictionary cache specifically for printing
// B2022-083: Support Conditional RO Values --> Added an internal rochild dictionary cache specifically for printing
//
// As you loop through all of the specific RO AccPageKeys for the current MsWord Document Section, the code will first
// check the internal rochild cache for the base (12) digit roid Key/Value, if it doesn't already exist, then load the
@ -825,11 +828,9 @@ namespace VEPROMS.CSLA.Library
set { MSWordToPDF._FormForPlotGraphics = value; }
}
/// <summary>
/// C2018-035 Don't use a MessageBox if in automatic (Baseline) testing mode.
/// </summary>
public static bool Automatic
{
// C2018-035 Don't use a MessageBox if in automatic (Baseline) testing mode.
get { return MSWordToPDF._Automatic; }
set { MSWordToPDF._Automatic = value; }
}
@ -940,9 +941,11 @@ namespace VEPROMS.CSLA.Library
DocStyle myDocStyle = sect.MyDocStyle;
ProcedureInfo proc = sect.MyProcedure;
DocVersionInfo dvi = proc.ActiveParent as DocVersionInfo;
bool hasRos = false;
ROFstInfo rofst = null;
ROFSTLookup lookup = null;
string igPrefix = null;
string spPrefix = null;
bool convertCaretToDeltaSymbol = (sect.ActiveSection != null) ? sect.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta : false; // C2018-003 fixed use of getting the active section
@ -1321,6 +1324,8 @@ namespace VEPROMS.CSLA.Library
}
lastStart = sel.Start;
sel = FindRO();
if (sel != null && !string.IsNullOrEmpty(sel.Text) && sel.Start == lastStart)
@ -1371,16 +1376,16 @@ namespace VEPROMS.CSLA.Library
if (statusChange != null) statusChange(VolianStatusType.Complete, 0, string.Empty);
if (Volian.Base.Library.BaselineMetaFile.IsOpen && Volian.Base.Library.BaselineMetaFile.IncludeWordSecText) Volian.Base.Library.BaselineMetaFile.WriteLine("++EndTxt++");
//GC.Collect(); //jsj 2-15-2016 - for memory garbage collection
// [jpr 2022.07.26] - For memory optimization
//GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
//GC.Collect();
//jsj 2-15-2016 - for memory garbage collection
//GC.Collect();
return fileName;
}
}
private static ROFSTLookup.rochild GetCachedRoByAccPageID(ROFSTLookup lookup, string selText, string spPrefix, string igPrefix, bool convertCaretToDeltaSymbol)
{
string accPageBase = string.Empty;
@ -1415,14 +1420,18 @@ namespace VEPROMS.CSLA.Library
return roc;
// All ROs should have a specific accPageExt or the default (A/0041), except for the "Unit Information" ("FFFF")
roc = (roc.children.Where(x => x.appid.EndsWith(accPageExt)).Any()) ? roc.children.Where(x => x.appid.EndsWith(accPageExt)).Single() : roc.children.First();
// All ROs at this point should have a specific accPageExt or the default (A/0041)
roc = (roc.children.Where(x => x.appid.EndsWith(accPageExt) && !string.IsNullOrEmpty(x.value)).Any()) ? roc.children.Where(x => x.appid.EndsWith(accPageExt)).Single() : roc.children.First();
// Check the RoType
roc.type = ((roc.type & 4) == 4 && roc.value.StartsWith("<<G")) ? 4 : roc.type;
// Check the RoValue
if (roc.type != 8 && !string.IsNullOrEmpty(roc.value)) // Exclude Images
if (string.IsNullOrEmpty(roc.value))
{
roc.value = null;
}
else if (roc.type != 8) // Exclude Images
{
roc.value = roc.value.Replace("`", "\xB0");
roc.value = roc.value.Replace("\xF8", "\xB0");
@ -1437,59 +1446,6 @@ namespace VEPROMS.CSLA.Library
return ROFSTLookup.GetEmptyRoChild();
}
//if (roc.children != null && roc.children.Count() > 0)
//{
// roc = (roc.children.Where(x => x.appid.EndsWith(accPageExt)).Any()) ? roc.children.Where(x => x.appid.EndsWith(accPageExt)).Single() : roc.children.First();
// //roc = (roc.children.Where(x => x.roid.Substring(12, 4) == roExt.RoidExt).Any()) ? rc.children.Where(x => x.roid.Substring(12, 4) == roExt.RoidExt).Single() : rc.children.First();
// // Convert.ToString(accPageKey.ToCharArray().LastOrDefault())
//}
//// All ROs should have a specific accPageExt, except for the "Unit Information" ("FFFF")
//// if (!string.IsNullOrEmpty(rc.roid) && Regex.IsMatch(accPageKey, @".*\.[A-Z]") && rc.children != null && rc.children.Count() > 0)
//if (!string.IsNullOrEmpty(accPageExt))
//{
// if (roc.children != null && roc.children.Count() > 0)
// {
// roc = (roc.children.Where(x => x.appid.EndsWith(accPageExt)).Any()) ? roc.children.Where(x => x.appid.EndsWith(accPageExt)).Single() : roc.children.First();
// //roc = (roc.children.Where(x => x.roid.Substring(12, 4) == roExt.RoidExt).Any()) ? rc.children.Where(x => x.roid.Substring(12, 4) == roExt.RoidExt).Single() : rc.children.First();
// // Convert.ToString(accPageKey.ToCharArray().LastOrDefault())
// }
// // Get specific RO return value by Extension, if not exists then return default ("0041")
// // var roExt = lookup.Extensions.Where(x => x.AccPageExt.Equals(accPageExt)).SingleOrDefault();
//}
// var accPageExt = Convert.ToString(accPageKey.ToCharArray().LastOrDefault());
// Regex.IsMatch(accPageKey, @".*\.[A-Z]")
// Get the RoChild object once and cache it for any future calls to the same Ro while printing
//ROFSTLookup.rochild roc = lookup.GetROChildByAccPageID(sel.Text, spPrefix, igPrefix);
//if (!_roPrintCache.ContainsKey(accPageKey))
// _roPrintCache.Add(accPageKey, roc);
//// Check the RoType
//int roType = roType = ((roc.type & 4) == 4 && roc.value.StartsWith("<<G")) ? 4 : roc.type;
//// If multiple return values includes X-Y Plot, check to see if it is an X-Y Plot
////string roValue = (roc.value == null) ? lookup.GetUnitInfoTagValue(sel.Text.ToUpper()) : roc.value;
//string roValue = roc.value;
//if (roType != 8 && !string.IsNullOrEmpty(roValue)) // Exclude Images
//{
// roValue = roValue.Replace("`", "\xB0");
// roValue = roValue.Replace("\xF8", "\xB0");
// roValue = roValue.Replace("\x7F", "\x394"); //delta
// if (convertCaretToDeltaSymbol) roValue = roValue.Replace("^", "\x394"); // delta
//}
}
public static RectangleF CreatePlot(string pngFile, string xyPlot, float resolution, System.Windows.Forms.Form myForm)
@ -1757,14 +1713,6 @@ namespace VEPROMS.CSLA.Library
}
}
//public static void CloseApp()
//{
// // WaitMS(900);// This was added because MSWord will sometimes get the following error: [Microsoft Office Word has stopped working]
// // It appears that this is caused by quitting the MS Word application to soon after closing the document or doing an export.
// MyApp.Quit(false);
// _MyApp = null;
//}
/// <summary>
/// This closes the MS Word Application, but, delays for about 1 second.
/// It appears that closing MSWord to quickly causes a:
@ -1781,16 +1729,6 @@ namespace VEPROMS.CSLA.Library
#region Private Methods
//private static void WaitMS(int n)
//{
// DateTime dtw = DateTime.Now.AddMilliseconds(n);
// while (DateTime.Now < dtw)
// {
// System.Windows.Forms.Application.DoEvents();
// }
//}
private static void CloseDocument()
{
int attempts = 0;
@ -1800,7 +1738,7 @@ namespace VEPROMS.CSLA.Library
System.Windows.Forms.Application.DoEvents();
if (TryToClose(attempts)) return;
System.Threading.Thread.Sleep(1000);
System.Threading.Thread.Sleep(500);
//WaitMS(1000);
}
}
@ -1829,13 +1767,13 @@ namespace VEPROMS.CSLA.Library
private static void InsertROValue(LBSelection sel, string roValue, bool upRoIfPrevUpper, float indent, bool convertUnderline)
{
if (roValue == null)
if (string.IsNullOrEmpty(roValue))
{
string orgtext = sel.Text;
sel.Text = string.Format("RO ({0}) Not Found", orgtext.Replace("<", string.Empty).Replace(">", string.Empty));
sel.Font.Color = LBWdColor.wdColorRed;
}
else if (roValue != string.Empty)
else // RO has a value
{
if (upRoIfPrevUpper && sel.LastWasUpper) roValue = roValue.ToUpper();
@ -2167,11 +2105,16 @@ namespace VEPROMS.CSLA.Library
private class CloseWordApp : System.Windows.Forms.Timer
{
#region Fields
// B2019-161 When tracking timing time this action
private static VolianTimer _TimeActivity = new VolianTimer("DocumentExt.cs CloseWordApp_Tick", 1548);
LBApplicationClass _MyApp;
#endregion
#region Constructor
public LBApplicationClass MyApp
{
@ -2179,6 +2122,9 @@ namespace VEPROMS.CSLA.Library
set { _MyApp = value; }
}
#endregion
#region Public Methods
public CloseWordApp(LBApplicationClass myApp, int interval)
{
@ -2188,6 +2134,10 @@ namespace VEPROMS.CSLA.Library
Enabled = true;
}
#endregion
#region Private Methods
private void CloseWordApp_Tick(object sender, EventArgs e)
{
_TimeActivity.Open();
@ -2205,6 +2155,8 @@ namespace VEPROMS.CSLA.Library
Dispose();
_TimeActivity.Close();
}
#endregion
}
#endregion

View File

@ -715,6 +715,8 @@ namespace Volian.Controls.Library
roc.appid = roc.children.First().appid;
roc.roid = roc.children.First().roid;
roc.value = roc.children.First().value;
roc.children = new List<ROFSTLookup.rochild>().ToArray();
}
}

View File

@ -494,7 +494,7 @@ namespace Volian.Print.Library
MSWordToPDF.DocReplace = DocReplace;
MSWordFile = MSWordToPDF.GetDocPdf(section, PrintOverride.TextColor);
MSWordToPDF.DocReplace = null;
GC.Collect(); // memory garbage collection
//GC.Collect(); // memory garbage collection
OnStatusChanged("MSWord converted to PDF " + MSWordFile, PromsPrinterStatusType.MSWordToPDF);
}
return MSWordFile;