Compare commits

...

22 Commits

Author SHA1 Message Date
928fba3b37 Merge pull request 'B2023-101 & 102: Incoming Transition & Copy/Paste Replace with Incoming Transitionis crashes' (#134) from GenWork into Development
Passed code review.  OK to generate test executable.
2023-10-12 09:12:16 -04:00
4e064786e0 Merge pull request 'C2023-018 Upgrade: sub-step pagination' (#132) from GenWork into Development
code changes look good to proceed with testing.
2023-10-10 08:22:32 -04:00
8ce9380afe Merge pull request 'C2023-016 – Expanded Find/Replace to search through all of the step editor sections in the same procedure.' (#129) from C2023-016_Find-Replace-all-step-sections into Development
Merging C2023-016 into development after successful code review
2023-10-06 10:13:07 -04:00
d275e9353f Merge pull request '~Modified PROMSFixes.sql to update ApplicablePlant formats that are Generic before updating plant-specific due to potential for a plant-specific format description to have the word generic in it.' (#130) from C2023-017 into Development
Merging into Development.  No code review needed.
2023-10-05 15:31:16 -04:00
8f17b49287 ~Modified PROMSFixes.sql to update ApplicablePlant formats that are Generic before updating plant-specific due to potential for a plant-specific format description to have the word generic in it. 2023-10-05 15:29:50 -04:00
f37872e209 C2023-016 – Expanded Find/Replace to search through all of the step editor sections in the same procedure. 2023-10-04 11:38:00 -04:00
b34fb42f94 Merge pull request 'C2023-017: Added logic to filter the format list when selecting a format to be applied to a section' (#126) from C2023-017 into Development
Code review completed.  Merging into Development.
2023-10-03 11:34:24 -04:00
cbcf7c845d ~Restructured PROMSFixes.sql to add updates above section that lists RevDate and RevDescription 2023-10-03 11:09:47 -04:00
4be7cdc6c7 ~Added database changes to PROMSFixes.sql 2023-10-03 09:18:53 -04:00
55a78eb845 C2023-017:
~Moved original code for populating the filtered list to a separate static class named FormatUtility in Volian.Controls.Library
~Renamed method to GetFilteredFormatList
~Updated code to reference new static class and method
~Added logic to other applicable forms
2023-10-03 09:03:06 -04:00
52a1e0dd5b Merge pull request 'F2023-137 Added a top continue message to the alarm point pages' (#127) from GeneralDebugging into Development
format only change
2023-10-02 11:19:14 -04:00
34e9c39d9b F2023-137 Added a top continue message to the alarm point pages 2023-10-02 11:17:33 -04:00
b83ec3520b C2023-017: Added logic to filter the format list when selecting a format to be applied to a section 2023-10-02 09:03:15 -04:00
0cd54eb2e4 Merge pull request 'B2023-100 Fixed the positioning of the header box for the Introduction section to match all of the other section types' (#125) from GeneralDebugging into Development
format only changes.
2023-09-29 11:01:49 -04:00
c4bfbcf1e6 B2023-100 Fixed the positioning of the header box for the Introduction section to match all of the other section types 2023-09-29 10:50:02 -04:00
42dea70a80 Merge pull request 'B2023-099 Restore the original calculation for finding he center point of the procedure and section END messages.' (#123) from GeneralDebugging into Development
no code review needed being code causing the bug was simply backed out and the original logic was restored.
2023-09-28 14:26:40 -04:00
7ecc3e578f B2023-099 Restore the original calculation for finding he center point of the procedure and section END messages. 2023-09-28 14:17:47 -04:00
94731c96b8 Merge pull request 'B2023-097 B2023-098 printing of figures for Byron and Braidwood' (#121) from B2023-097_B2023-098 into Development
format only changes
2023-09-26 11:02:42 -04:00
8a58426d89 B2023-097 B2023-098 printing of figures for Byron and Braidwood 2023-09-26 11:00:41 -04:00
ddfbb64359 Merge pull request 'B2023-094: RO Complete/Summary report crashes on tree view when RO group has no ROs' (#119) from GenWork into Development
Merging into Development after successful code review
2023-09-22 11:17:16 -04:00
f32553846f Merge pull request 'B2023-096 set PROMS to defaution to Production mode' (#116) from B2023-096_BuildForProduction into Development
Merging into Development after successful code review
2023-09-15 09:20:44 -04:00
5d56311d5e B2023-096 set PROMS to defaution to Production mode 2023-09-14 15:42:05 -04:00
20 changed files with 1205 additions and 896 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,73 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="VEPROMS.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
<section name="UISampleNetBar1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
<section name="VEPROMS.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="UISampleNetBar1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="${USERPROFILE}/My Documents/VEPROMS/ErrorLog.txt"/>
<param name="File" value="${USERPROFILE}/My Documents/VEPROMS/ErrorLog.txt" />
<!--<param name="File" value="${APPDATA}/Volian/Proms2010/ErrorLog.txt" />-->
<!--<param name="File" value="${LOCALAPPDATA}/Temp/VEPROMS/ErrorLog.txt" />-->
<param name="AppendToFile" value="true"/>
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<!--<param name="Header" value="[Header]\r\n" />-->
<!--<param name="Footer" value="[Footer]\r\n" />-->
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="--&gt; %date [%thread] %-5level %logger (%property{log4net:HostName}) [%ndc] - %message%newline"/>
<conversionPattern value="--&gt; %date [%thread] %-5level %logger (%property{log4net:HostName}) [%ndc] - %message%newline" />
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<threshold value="WARN"/>
<threshold value="WARN" />
<mapping>
<level value="DEBUG"/>
<eventLogEntryType value="Information"/>
<level value="DEBUG" />
<eventLogEntryType value="Information" />
</mapping>
<mapping>
<level value="INFO"/>
<eventLogEntryType value="Information"/>
<level value="INFO" />
<eventLogEntryType value="Information" />
</mapping>
<mapping>
<level value="WARN"/>
<eventLogEntryType value="Warning"/>
<level value="WARN" />
<eventLogEntryType value="Warning" />
</mapping>
<mapping>
<level value="ERROR"/>
<eventLogEntryType value="Error"/>
<level value="ERROR" />
<eventLogEntryType value="Error" />
</mapping>
<mapping>
<level value="FATAL"/>
<eventLogEntryType value="Error"/>
<level value="FATAL" />
<eventLogEntryType value="Error" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="---&gt; %d [%t] %-5p %c - %m%n"/>
<param name="ConversionPattern" value="---&gt; %d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="ConsoleAppender"/>
<appender-ref ref="LogFileAppender"/>
<appender-ref ref="EventLogAppender"/>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="EventLogAppender" />
</root>
<logger name="VEPROMS.CSLA.Library">
<level value="INFO"/>
<level value="INFO" />
</logger>
<logger name="Volian.Controls.Library">
<level value="INFO"/>
<level value="INFO" />
</logger>
</log4net>
<appSettings>
<add key="OperatingMode" value="Debug"/>
<add key="OperatingMode" value="Production" />
<!--"Debug" "Production" "Demo"/-->
<add key="OriginalPageBreak" value="False"/>
<add key="CslaAuthentication" value="Windows"/>
<add key="OriginalPageBreak" value="False" />
<add key="CslaAuthentication" value="Windows" />
<!--
<add key="CslaDataPortalProxy"
value="Csla.DataPortalClient.RemotingProxy, Csla"/>
@ -85,16 +85,17 @@
value="EnterpriseServicesHost.EnterpriseServicesProxy,
EnterpriseServicesHost"/>
-->
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
<connectionStrings>
<add name="VEPROMS" connectionString="Data Source=VOLIAN-SERVER;User Id=proms2010;password=proms2010;Initial Catalog=VEPROMS" providerName="System.Data.SqlClient"/>
<add name="VEPROMS_LOCAL" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="VEPROMS_RMARK_DEBUG" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="VEPROMS_RMARK_DEMO" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="VEPROMS" connectionString="Data Source=VOLIAN-SERVER;User Id=proms2010;password=proms2010;Initial Catalog=VEPROMS" providerName="System.Data.SqlClient" />
<add name="VEPROMS_LOCAL" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="VEPROMS_RMARK_DEBUG" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="VEPROMS_RMARK_DEMO" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />
<!--<add name="VEPROMS_BODINE_DEBUG" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="VEPROMS_BODINE_DEMO" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />-->
<add name="VEPROMS_BODINE_DEBUG" connectionString="Data Source=JCB2-HP\VOLIAN08;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="VEPROMS_BODINE_DEMO" connectionString="Data Source=JCB2-HP\VOLIAN08;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="VEPROMS_BODINE_DEBUG" connectionString="Data Source=JCB2-HP\VOLIAN08;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="VEPROMS_BODINE_DEMO" connectionString="Data Source=JCB2-HP\VOLIAN08;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />
<!--<add name="VEPROMS_BODINE_DEBUG" connectionString="Data Source=JCB2-HP\VOLIAN12;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="VEPROMS_BODINE_DEMO" connectionString="Data Source=JCB2-HP\VOLIAN12;Initial Catalog={MENU};Integrated Security=True" providerName="System.Data.SqlClient" />-->
</connectionStrings>
@ -134,10 +135,10 @@
<value>True</value>
</setting>
<setting name="QATItems" serializeAs="String">
<value/>
<value />
</setting>
<setting name="DefaultDB" serializeAs="String">
<value/>
<value />
</setting>
<setting name="LastVersion" serializeAs="String">
<value>0.0</value>
@ -149,10 +150,10 @@
<value>True</value>
</setting>
<setting name="SMTPServer" serializeAs="String">
<value/>
<value />
</setting>
<setting name="SMTPUser" serializeAs="String">
<value/>
<value />
</setting>
<setting name="UpdateSettings" serializeAs="String">
<value>True</value>
@ -179,4 +180,19 @@
</setting>
</UISampleNetBar1.Properties.Settings>
</userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/></startup></configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
</configuration>

View File

@ -21941,6 +21941,210 @@ GO
==========================================================================================================
*/
/****** Add the ApplicablePlant field to the Formats table ******/
ALTER TABLE Formats ADD ApplicablePlant int NULL;
GO
/****** Update the Formats table with the appropriate ApplicablePlant value ******/
--This update statement corrects a typo in the name of one of the format records
UPDATE Formats SET [Description] = REPLACE([Description], 'Robimson', 'Robinson') WHERE [Description] LIKE '%Robimson%';
UPDATE Formats SET ApplicablePlant = 1000 WHERE [Description] LIKE '%Proms%' OR [Description] LIKE '%Generic%' OR [Name] LIKE 'EXP%' OR [Name] LIKE 'Proms%' OR [Name] LIKE 'base%';
UPDATE Formats SET ApplicablePlant = 1 WHERE [Description] LIKE '%DC Cook%' OR [Name] LIKE 'AEP%';
UPDATE Formats SET ApplicablePlant = 2 WHERE [Description] LIKE '%Calvert%' OR [Name] LIKE 'BGE%';
UPDATE Formats SET ApplicablePlant = 3 WHERE [Description] LIKE '%BNPP%' OR [Name] LIKE 'BNPP%';
UPDATE Formats SET ApplicablePlant = 4 WHERE [Description] LIKE '%Beaver Valley%' OR [Name] LIKE 'BVPS%';
UPDATE Formats SET ApplicablePlant = 5 WHERE [Description] LIKE '%Byr-Bwd%' OR ([Name] LIKE 'EXC%' OR [Name] LIKE 'EXEB%' OR [Name] LIKE 'CWE%');
UPDATE Formats SET ApplicablePlant = 6 WHERE [Description] LIKE '%Callaway%' OR [Name] LIKE 'CAL%';
UPDATE Formats SET ApplicablePlant = 7 WHERE [Description] LIKE '%Catawba%' OR [Name] LIKE 'CAT%';
UPDATE Formats SET ApplicablePlant = 8 WHERE [Description] LIKE '%Comanche%' OR ([Name] LIKE 'CAT%' OR [Name] LIKE 'ComPeak%' OR [Name] LIKE 'CPD%' OR [Name] LIKE 'CPF%' OR [Name] LIKE 'CPS%' OR [Name] LIKE 'TUEC%');
UPDATE Formats SET ApplicablePlant = 9 WHERE [Description] LIKE '%Robinson%' OR [Name] LIKE 'AEP%' OR [Name] LIKE 'RNP%';
UPDATE Formats SET ApplicablePlant = 10 WHERE [Description] LIKE '%Harris%' OR ([Name] LIKE 'CPLS%' OR [Name] LIKE 'SHE%');
UPDATE Formats SET ApplicablePlant = 11 WHERE [Description] LIKE '%IP%' OR [Name] LIKE 'IP%';
UPDATE Formats SET ApplicablePlant = 12 WHERE [Description] LIKE '%Farley%' OR [Name] LIKE 'FNP%';
UPDATE Formats SET ApplicablePlant = 13 WHERE [Description] LIKE '%Turkey%' OR [Name] LIKE 'FPL%' OR [Name] LIKE 'TP%';
UPDATE Formats SET ApplicablePlant = 14 WHERE [Description] LIKE '%Ginna%' OR [Name] LIKE 'Ginna%' OR [Name] LIKE 'RGE%';
UPDATE Formats SET ApplicablePlant = 15 WHERE [Description] LIKE '%Vogtle%' OR [Name] LIKE 'GPC%' OR [Name] LIKE 'VEGP%';
UPDATE Formats SET ApplicablePlant = 16 WHERE [Description] LIKE '%South Texas%' OR [Name] LIKE 'HLP%' OR [Name] LIKE 'OHLP%';
UPDATE Formats SET ApplicablePlant = 17 WHERE [Description] LIKE '%McGuire%' OR [Name] LIKE 'MCG%';
UPDATE Formats SET ApplicablePlant = 18 WHERE [Description] LIKE '%PI%' OR [Name] LIKE 'NSP%';
UPDATE Formats SET ApplicablePlant = 19 WHERE [Description] LIKE '%Southern Nuclear%' OR [Name] LIKE 'STHN%';
UPDATE Formats SET ApplicablePlant = 20 WHERE [Description] LIKE '%VC Summer%' OR [Name] LIKE 'SUM%' OR [Name] LIKE 'VCB%' OR [Name] LIKE 'VCS%';
UPDATE Formats SET ApplicablePlant = 21 WHERE [Description] LIKE '%TVA%' OR [Name] LIKE 'TVA%';
UPDATE Formats SET ApplicablePlant = 22 WHERE [Description] LIKE '%Wolf%' OR [Name] LIKE 'WCN%';
UPDATE Formats SET ApplicablePlant = 23 WHERE [Description] LIKE '%Westinghouse%' OR [Name] LIKE 'WST%';
/****** Object: StoredProcedure [dbo].[getFormats] Script Date: 9/28/2023 8:42:56 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2018 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
ALTER PROCEDURE [dbo].[getFormats]
WITH EXECUTE AS OWNER
AS
BEGIN
with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged],[ApplicablePlant]) as
(select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged],[ApplicablePlant]
FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5
union all -- Child formats
select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged], fs.[ApplicablePlant]
from formats fs
join formatz fz on fz.FormatID = fs.ParentID
where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml)
select * from (
select *,
(SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount],
(SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount],
(SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount],
(SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz) t1
where Description not like '%(Unused)%' or (ContentCount + DocVersionCount + FolderCount + ChildCount > 0)
END
RETURN
/****** Object: StoredProcedure [dbo].[getAllFormats] Script Date: 9/28/2023 8:32:15 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2018 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
ALTER PROCEDURE [dbo].[getAllFormats]
WITH EXECUTE AS OWNER
AS
SELECT * From (SELECT
[FormatID],
[ParentID],
[Name],
[Description],
[Data],
[Config],
[GenMac],
[DTS],
[UserID],
[LastChanged],
[ApplicablePlant],
(SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount],
(SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount],
(SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount],
(SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount]
FROM [Formats] ) T1
RETURN
/****** Object: StoredProcedure [dbo].[getFormatByName] Script Date: 9/29/2023 12:16:48 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[getFormatByName]
(
@Name varchar(255)
)
WITH EXECUTE AS OWNER
AS
DECLARE @FormatID INT
Set @FormatID = (select FormatID from Formats where Name = @Name)
BEGIN
with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged],[ApplicablePlant]) as
(select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged],[ApplicablePlant]
FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5
union all -- Child formats
select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged], fs.[ApplicablePlant]
from formats fs
join formatz fz on fz.FormatID = fs.ParentID
where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml)
select *,
(SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount],
(SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount],
(SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount],
(SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz
WHERE [FormatID]=@FormatID
END
SELECT
[Contents].[ContentID],
[Contents].[Number],
[Contents].[Text],
[Contents].[Type],
[Contents].[FormatID],
[Contents].[Config],
[Contents].[DTS],
[Contents].[UserID],
[Contents].[LastChanged]
FROM [Contents]
WHERE
[Contents].[FormatID]=@FormatID
SELECT
[DocVersions].[VersionID],
[DocVersions].[FolderID],
[DocVersions].[VersionType],
[DocVersions].[Name],
[DocVersions].[Title],
[DocVersions].[ItemID],
[DocVersions].[FormatID],
[DocVersions].[Config],
[DocVersions].[DTS],
[DocVersions].[UserID],
[DocVersions].[LastChanged],
[Folders].[ParentID] [Folder_ParentID],
[Folders].[DBID] [Folder_DBID],
[Folders].[Name] [Folder_Name],
[Folders].[Title] [Folder_Title],
[Folders].[ShortName] [Folder_ShortName],
[Folders].[FormatID] [Folder_FormatID],
[Folders].[ManualOrder] [Folder_ManualOrder],
[Folders].[Config] [Folder_Config],
[Folders].[DTS] [Folder_DTS],
[Folders].[UsrID] [Folder_UsrID]
FROM [DocVersions]
JOIN [Folders] ON
[Folders].[FolderID]=[DocVersions].[FolderID]
WHERE
[DocVersions].[FormatID]=@FormatID
SELECT
[Folders].[FolderID],
[Folders].[ParentID],
[Folders].[DBID],
[Folders].[Name],
[Folders].[Title],
[Folders].[ShortName],
[Folders].[FormatID],
[Folders].[ManualOrder],
[Folders].[Config],
[Folders].[DTS],
[Folders].[UsrID],
[Folders].[LastChanged],
[Connections].[Name] [Connection_Name],
[Connections].[Title] [Connection_Title],
[Connections].[ConnectionString] [Connection_ConnectionString],
[Connections].[ServerType] [Connection_ServerType],
[Connections].[Config] [Connection_Config],
[Connections].[DTS] [Connection_DTS],
[Connections].[UsrID] [Connection_UsrID]
FROM [Folders]
JOIN [Connections] ON
[Connections].[DBID]=[Folders].[DBID]
WHERE
[Folders].[FormatID]=@FormatID
RETURN
-----------------------------------------------------------------------------
/*
@ -21976,8 +22180,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
set @RevDate = '10/03/2022 2:00 PM'
set @RevDescription = 'B2022-124: [JPR] Blank RO Values (All Spaces) printing as ?'
set @RevDate = '10/03/2023 11:00 AM'
set @RevDescription = 'C2023-017: Added logic to filter the format list when selecting a format to be applied to a section'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
@ -21995,3 +22199,6 @@ ELSE PRINT 'StoredProcedure [vesp_GetSQLCodeRevision] Error on Creation'
go
Exec vesp_GetSQLCodeRevision;

View File

@ -13,6 +13,7 @@ using DevComponents.DotNetBar.Controls;
using System.Drawing.Imaging;
using VEPROMS.Properties;
using DescriptiveEnum;
using Volian.Controls.Library;
namespace VEPROMS
{
@ -150,7 +151,7 @@ namespace VEPROMS
ppCmbxFormat.DataSource = null;
ppCmbxFormat.DisplayMember = "FullName";
ppCmbxFormat.ValueMember = "FullName";
ppCmbxFormat.DataSource = FormatInfoList.SortedFormatInfoList;
ppCmbxFormat.DataSource = FormatUtility.GetFilteredFormatList(FormatInfoList.SortedFormatInfoList);
if (_FolderConfig != null && _FolderConfig.MyFolder != null) _cmbxformatOriginal = _FolderConfig.MyFolder.FormatID;
if (_FolderConfig.FormatSelection != null)
{

View File

@ -11,6 +11,8 @@ using DescriptiveEnum;
using DevComponents.DotNetBar;
using DevComponents.DotNetBar.Controls;
using Volian.Controls.Library;
using System.Xml;
using Csla;
namespace VEPROMS
{
@ -184,7 +186,9 @@ namespace VEPROMS
ppCmbxFormat.DataSource = null;
ppCmbxFormat.DisplayMember = "FullName";
ppCmbxFormat.ValueMember = "FullName";
ppCmbxFormat.DataSource = FormatInfoList.SortedFormatInfoList;
//C2023-017: Retrieves a filtered list of formats for the current plant
ppCmbxFormat.DataSource = FormatUtility.GetFilteredFormatList(FormatInfoList.SortedFormatInfoList);
if (_ProcedureConfig.MyProcedure.MyProcedureInfo.ActiveFormat != null) _cmbxformatOriginal = _ProcedureConfig.MyProcedure.MyProcedureInfo.ActiveFormat.FormatID;
if (_ProcedureConfig.FormatSelection != null)
ppCmbxFormat.SelectedValue = _ProcedureConfig.FormatSelection;

View File

@ -364,7 +364,7 @@ namespace VEPROMS
ppCmbxFormat.DataSource = null;
ppCmbxFormat.DisplayMember = "FullName";
ppCmbxFormat.ValueMember = "FullName";
ppCmbxFormat.DataSource = FormatInfoList.SortedFormatInfoList;
ppCmbxFormat.DataSource = FormatUtility.GetFilteredFormatList(FormatInfoList.SortedFormatInfoList);
if (_SectionConfig.MySection.MySectionInfo.ActiveFormat != null) _cmbxformatOriginal = (int)_SectionConfig.MySection.MySectionInfo.ActiveFormat.FormatID;
if (_SectionConfig.FormatSelection != null)
ppCmbxFormat.SelectedValue = _SectionConfig.FormatSelection;

View File

@ -168,7 +168,7 @@ namespace VEPROMS
ppCmbxFormat.DataSource = null;
ppCmbxFormat.DisplayMember = "FullName";
ppCmbxFormat.ValueMember = "FullName";
ppCmbxFormat.DataSource = FormatInfoList.SortedFormatInfoList;
ppCmbxFormat.DataSource = FormatUtility.GetFilteredFormatList(FormatInfoList.SortedFormatInfoList);
_cmbxformatOriginal = _DocVersionConfig.MyDocVersion.FormatID;
if (_DocVersionConfig.FormatSelection != null)

View File

@ -192,6 +192,16 @@ namespace VEPROMS.CSLA.Library
return _UserID;
}
}
private int _ApplicablePlant = 0;
public int ApplicablePlant
{
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("ApplicablePlant", true);
return _ApplicablePlant;
}
}
private int _FormatContentCount = 0;
/// <summary>
/// Count of FormatContents for this Format
@ -518,6 +528,7 @@ namespace VEPROMS.CSLA.Library
_FormatDocVersionCount = dr.GetInt32("DocVersionCount");
_FormatFolderCount = dr.GetInt32("FolderCount");
_ChildFormatCount = dr.GetInt32("ChildCount");
_ApplicablePlant = dr.GetInt32("ApplicablePlant");
}
catch (Exception ex)
{

View File

@ -570,7 +570,9 @@ namespace Volian.Controls.Library
/// </summary>
/// <param name="myItemInfo"></param>
/// <returns></returns>
public DisplayTabItem OpenItem(ItemInfo myItemInfo2, bool setFocus)
// C2023-016 Added doingFindReplace where if true Word section will not be opened - used only when doing Find/Replace
// We are not opening and searching inside Word sections, instead we just stop on the section title in the procedure editor (if a match is found in the title)
public DisplayTabItem OpenItem(ItemInfo myItemInfo2, bool setFocus, bool doingFindReplace=false)
{
ItemInfo myItemInfo = myItemInfo2;
@ -649,7 +651,8 @@ namespace Volian.Controls.Library
_MyBar = GetParentBar(myItemInfo); // Get the docking bar associated with this item.
if (myItemInfo.MyContent.MyEntry == null) // If it is not a Word document open in step editor
// C2023-016 if a Word section and doing Find/Replace don't open Word section, position to section title in step editor instead
if (myItemInfo.MyContent.MyEntry == null || doingFindReplace) // If it is not a Word document open in step editor
{
return OpenStepTabPage(myItemInfo, setFocus);
}

View File

@ -183,7 +183,6 @@ namespace Volian.Controls.Library
this.cmboFindText.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cmboFindText.WatermarkText = "Enter text to find";
this.cmboFindText.TextChanged += new System.EventHandler(this.cmboFindText_TextChanged);
this.cmboFindText.Leave += new System.EventHandler(this.cmboFindText_Leave);
//
// labelX3
//
@ -349,6 +348,7 @@ namespace Volian.Controls.Library
this.cbxReverse.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbxReverse.TabIndex = 5;
this.cbxReverse.Text = "Reverse Find";
this.cbxReverse.CheckedChanged += new System.EventHandler(this.cbxReverse_CheckedChanged);
//
// cbxWholeWord
//
@ -363,6 +363,7 @@ namespace Volian.Controls.Library
this.cbxWholeWord.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbxWholeWord.TabIndex = 4;
this.cbxWholeWord.Text = "Whole Word";
this.cbxWholeWord.CheckedChanged += new System.EventHandler(this.cbxWholeWord_CheckedChanged);
//
// cbxCaseSensitive
//
@ -377,6 +378,7 @@ namespace Volian.Controls.Library
this.cbxCaseSensitive.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbxCaseSensitive.TabIndex = 3;
this.cbxCaseSensitive.Text = "Case Sensitive";
this.cbxCaseSensitive.CheckedChanged += new System.EventHandler(this.cbxCaseSensitive_CheckedChanged);
//
// cmbScope
//

View File

@ -11,11 +11,13 @@ using JR.Utils.GUI.Forms;
namespace Volian.Controls.Library
{
// C2023-016 - Upgrade - have Find/Replace spin through all of the Step Editor sections within the current procedure
public partial class FindReplace : DevComponents.DotNetBar.Office2007Form
{
private bool doingfind = false;
private bool findingbookmarks = false;
private bool _FoundIt = false;
private ItemInfo _StartingItemInfo = null;// C2023-016 used to remember where we started doing the Find/Replace
public bool FoundIt
{
get { return _FoundIt; }
@ -25,7 +27,7 @@ namespace Volian.Controls.Library
{
get
{
// B2022-067 get display text version to convert 8209 dash to nornal (keyboard) dash
// B2022-067 get display text version to convert 8209 dash to normal (keyboard) dash
string selStr = ItemInfo.ConvertToDisplayText(MyEditItem.MyStepRTB.SelectedText);
if (!cbxCaseSensitive.Checked)
return selStr.ToUpper() == cmboFindText.Text.ToUpper();
@ -33,7 +35,6 @@ namespace Volian.Controls.Library
return selStr == cmboFindText.Text;
}
}
//private bool _offsetStartPos = false;
private EditItem _MyEditItem;
public EditItem MyEditItem
{
@ -44,25 +45,13 @@ namespace Volian.Controls.Library
if (_MyEditItem == null) return;
_MyDocVersion = _MyEditItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo;
SetupContextMenu();
//_offsetStartPos = false; // in a different rtf box, don't offset find position first time around
}
}
private DocVersionInfo _MyDocVersion;
public DocVersionInfo Mydocversion
{
get { return _MyDocVersion; }
set
{
_MyDocVersion = value;
//if (_MyDocVersion != null)
//{
// if (_MyDocVersion.DocVersionAssociationCount > 0)
// {
// MyROFSTLookup = _MyDocVersion.DocVersionAssociations[0].MyROFst.ROFSTLookup;
// _MyRODbID = _MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID;
// }
//}
}
set {_MyDocVersion = value; }
}
private DisplayBookMarks _myDisplayBookMarks;
@ -83,17 +72,12 @@ namespace Volian.Controls.Library
{
InitializeComponent();
LoadFindReplaceTextListBox();
//if (dvi != null && dvi.VersionType > 127)
// InApproved = false; // in approved
cmbScope.SelectedIndex = 0;
btnBookMrkAll.Enabled = false;
btnFindNext.Enabled = false;
btnReplace.Enabled = false;
btnRplAll.Enabled = false;
//if (MyRTBItem.MyStepRTB.SelectionLength > 0)
// cmboFindText.Text = MyRTBItem.MyStepRTB.SelectedText;
cmboFindText.Focus();
//SetupContextMenu();
}
private void LoadFindReplaceTextListBox()
{
@ -113,51 +97,34 @@ namespace Volian.Controls.Library
}
}
//public FindReplace(RTBItem stpitm)
//{
// MyRTBItem = stpitm;
// DocVersionInfo dvi = MyRTBItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo;
// InitializeComponent();
// if (dvi != null && dvi.VersionType > 127)
// InApproved = false; // in approved
// cmbScope.SelectedIndex = 0;
// btnBookMrkAll.Enabled = false;
// btnFindNext.Enabled = false;
// btnReplace.Enabled = false;
// btnRplAll.Enabled = false;
// if (MyRTBItem.MyStepRTB.SelectionLength > 0)
// cmboFindText.Text = MyRTBItem.MyStepRTB.SelectedText;
// cmboFindText.Focus();
//}
// bug fix: B2016-107, when Find/Replace is initially opened, set the cursor focus to the Find Text box (called from frmVEPROMS.cs)
public void SetFocusToTextBox()
{
cmboFindText.Focus();
}
private bool DoingClick = false; // Don't allow a button to be clicked until processing is complete for the last button
private void btnReplace_Click(object sender, EventArgs e)
{
if (DoingClick) return;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true;// We started processing a click
DoReplace();
DoingClick = false;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = false;// we're done processing the click
}
private void DoReplace()
{
if (!IsFound)
DoFindNext();
else
{
MyEditItem.ReplaceText(cmboReplaceText.Text, cmboFindText.Text, cbxCaseSensitive.Checked, cbxWholeWord.Checked, cbxReverse.Checked, false, null);
}
}
private void btnRplAll_Click(object sender, EventArgs e)
{
if (DoingClick) return;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true; // We started processing a click
DoRplAll();
DoingClick = false;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = false; // we're done processing the click
}
private void DoRplAll()
{
@ -172,9 +139,9 @@ namespace Volian.Controls.Library
private void btnBookMrkAll_Click(object sender, EventArgs e)
{
if (DoingClick) return;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true; // We started processing a click
DoBookMrkAll();
DoingClick = false;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = false; // we're done processing the click
}
private void DoBookMrkAll()
{
@ -193,7 +160,6 @@ namespace Volian.Controls.Library
}
private void btnFndRplDone_Click(object sender, EventArgs e)
{
//this.Close();
doingfind = false;
this.Visible = false;
}
@ -229,10 +195,48 @@ namespace Volian.Controls.Library
private void btnFindNext_Click(object sender, EventArgs e)
{
if (DoingClick) return;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true;// We started processing a click
DoFindNext();
DoingClick = false;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = false;// we're done processing the click
}
// C2023-016 Find the next element, but stay in the same procedure
private ItemInfo FindNextStepElement(ItemInfo curStepElem, string fndStr)
{
ItemInfo nxtStepElem = curStepElem;
if (_StartingItemInfo == null)
_StartingItemInfo = MyEditItem.MyItemInfo;
if (cbxReverse.Checked)
{
if (curStepElem.IsProcedure)
nxtStepElem = curStepElem.MyProcedure.SearchBottom; // at the top of the procedure, so next step would be the last step of the last section (or the section title if the last section is a Word section)
else
nxtStepElem = curStepElem.SearchPrev;
}
else if (curStepElem.SearchNext.IsProcedure) // searching(finding) forward but next is the next procedure, so jump to the top of the procedure (the procedure title in the step editor)
nxtStepElem = curStepElem.MyProcedure;
else
nxtStepElem = curStepElem.SearchNext;
// B2015-131 Find was not finding series of words when one or more of the words were bolded or underlined (ex finding "Any SG" where Any was bolded)
while (nxtStepElem != null && nxtStepElem.ItemID != _StartingItemInfo.ItemID)
{
if (nxtStepElem.MyContent != null && ContainsFndStr(RtfTools.RTFConvertedSymbolsToUnicode(nxtStepElem.MyContent.Text).ToUpper(), fndStr.ToUpper()))
break;
if (cbxReverse.Checked)
{
if (nxtStepElem.IsProcedure)
nxtStepElem = nxtStepElem.MyProcedure.SearchBottom;// at the top of the procedure, so next step would be the last step of the last section (or the section title if the last section is a Word section)
else
nxtStepElem = nxtStepElem.SearchPrev;
}
else if (nxtStepElem.SearchNext.IsProcedure)
nxtStepElem = nxtStepElem.MyProcedure;// searching(finding) forward but next is the next procedure, so jump to the top of the procedure(the procedure title in the step editor)
else
nxtStepElem = nxtStepElem.SearchNext;
}
return nxtStepElem;
}
private void DoFindNext()
{
AddToComboLists();
@ -240,32 +244,21 @@ namespace Volian.Controls.Library
string fndStr = FixSymbol(cmboFindText.Text.Replace(@"\", @"\u9586?").Replace("-", @"\u8209?").Replace("\xa0", @"\u160?"));
while (!MyEditItem.FindText(cmboFindText.Text, cbxCaseSensitive.Checked, cbxWholeWord.Checked, cbxReverse.Checked))
{
ItemInfo next = (cbxReverse.Checked) ? MyEditItem.MyItemInfo.SearchPrev : MyEditItem.MyItemInfo.SearchNext;
ItemInfo next = FindNextStepElement(MyEditItem.MyItemInfo, fndStr);
// B2015-131 Find was not finding series of words when one or more of the words were bolded or underlined (ex finding "Any SG" where Any was bolded)
while ((next != null) && !next.IsSection && !ContainsFndStr(RtfTools.RTFConvertedSymbolsToUnicode(next.MyContent.Text).ToUpper(), fndStr.ToUpper()))
{
next = (cbxReverse.Checked) ? next.SearchPrev : next.SearchNext;
}
//if (next != null) Console.WriteLine("next {0} {1}", next.ItemID, next.MyContent.Text);
if ((next == null) || next.IsSection)
{
if (!findingbookmarks)
{
// C2020-015: Improve dialog messaging
if (cbxReverse.Checked)
FlexibleMessageBox.Show(this, "Nothing found here to beginning of this section", "End of Find/Replace");
else
FlexibleMessageBox.Show(this, "Nothing found here to end of this section", "End of Find/Replace");
}
FoundIt = false;
return;
}
MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(next);
MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(next,true,true);// C2023-016 open item (next), set focus (true), doing Find/Replace so don't open Word section (true)
if (cbxReverse.Checked)
MyEditItem.PositionToEnd();
if (next.IsTable && !cbxReverse.Checked) MyEditItem.PositionToStart();
//C2023-016 if we spun through all of the step editor sections, stop and display a message
if (MyEditItem.MyItemInfo.ItemID == _StartingItemInfo.ItemID)
{
FoundIt = false;
string msg = string.Format("Back to the starting point of the Find/Replace.{0}",(findingbookmarks)?"\n\n The Tools Panel will display showing the locations.":"");
FlexibleMessageBox.Show(this, msg, "Find/Replace Completed");
_StartingItemInfo = null;
return;
}
}
if (MyEditItem.MyStepRTB != null && !MyEditItem.MyStepRTB.Visible)
{
@ -286,7 +279,7 @@ namespace Volian.Controls.Library
{
if (cmboFindText.Items.Count >= 10)
cmboFindText.Items.RemoveAt(9);
cmboFindText.Items.Insert(0, cmboFindText.Text);//.Add(cmboFindText.Text);
cmboFindText.Items.Insert(0, cmboFindText.Text);
}
hastext = this.cmboReplaceText.Text.Length > 0;
if (hastext && btnReplace.Enabled && !cmboReplaceText.Items.Contains(cmboReplaceText.Text))
@ -302,11 +295,13 @@ namespace Volian.Controls.Library
btnFindNext.Enabled = hastext;
btnBookMrkAll.Enabled = hastext;
btnReplace.Enabled = btnRplAll.Enabled = hastext && !InApproved;
_StartingItemInfo = null; //C2023-016 reset the starting position
}
private void cmboReplaceText_TextChanged(object sender, EventArgs e)
{
btnReplace.Enabled = btnRplAll.Enabled = !InApproved && cmboFindText.Text.Length > 0;
_StartingItemInfo = null;//C2023-016 reset the starting position
}
public void PerformFindNext()
@ -336,17 +331,6 @@ namespace Volian.Controls.Library
e.Cancel = true; // cancel the form close event - the Done_Click() will hide it instead
}
private void cmboFindText_Leave(object sender, EventArgs e)
{
//bool hastext = this.cmboFindText.Text.Length > 0;
//if (hastext && !cmboFindText.Items.Contains(cmboFindText.Text))
//{
// if (cmboFindText.Items.Count >= 10)
// cmboFindText.Items.RemoveAt(9);
// cmboFindText.Items.Insert(0, cmboFindText.Text);//.Add(cmboFindText.Text);
//}
}
private void btnCmCut_Click(object sender, EventArgs e)
{
Clipboard.Clear();
@ -456,6 +440,22 @@ namespace Volian.Controls.Library
tabReplace.Visible = true;
Text = "Find and Replace";//C2021-021 change the dialog title
}
_StartingItemInfo = null;//C2023-016 reset the starting position
}
private void cbxCaseSensitive_CheckedChanged(object sender, EventArgs e)
{
_StartingItemInfo = null;//C2023-016 reset the starting position
}
private void cbxWholeWord_CheckedChanged(object sender, EventArgs e)
{
_StartingItemInfo = null;//C2023-016 reset the starting position
}
private void cbxReverse_CheckedChanged(object sender, EventArgs e)
{
_StartingItemInfo = null;//C2023-016 reset the starting position
}
}
}

View File

@ -0,0 +1,61 @@
using Csla;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using VEPROMS.CSLA.Library;
namespace Volian.Controls.Library
{
public static class FormatUtility
{
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
//C2023-017: Remove any formats that are not applicable to the current plant
public static IList<FormatInfo> GetFilteredFormatList(SortedBindingList<FormatInfo> RawList)
{
List<FormatInfo> result = new List<FormatInfo>();
try
{
//Get the top folder configuration XML of the PROMS treeview and load
//the Formats node to retrieve the available formats for this plant
FolderInfo fi = FolderInfo.GetTop();
System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
xDoc.LoadXml(fi.Config);
XmlNodeList fList = xDoc.GetElementsByTagName("Formats");
//We need to check to see if the current database has been updated with the necessary changes
//to the folder configuration value. If so then build the list of available to be returned
//to the calling code
if (fList == null)
{
_MyLog.InfoFormat("Filtered format list not available: Database update needed for config value of top folder record");
return RawList;
}
else
{
//Create a string array that we can use to filter the raw list and add the format to the return value
string[] availableFormats = fList[0].Attributes["Active"].Value.Split(',');
foreach (FormatInfo item in RawList)
{
if (Array.IndexOf(availableFormats, item.ApplicablePlant.ToString()) > -1)
{
result.Add(item);
}
}
}
}
catch (Exception ex)
{
//On any exception simply return the original list that was passed in
_MyLog.ErrorFormat("Error loading filtered format list - PopulateFormatList(): {0}", ex.Message);
return RawList;
}
return result;
}
}
}

View File

@ -240,6 +240,7 @@
<Compile Include="FindReplace.designer.cs">
<DependentUpon>FindReplace.cs</DependentUpon>
</Compile>
<Compile Include="FormatUtility.cs" />
<Compile Include="frmEnhanced.cs">
<SubType>Form</SubType>
</Compile>

View File

@ -2339,7 +2339,10 @@ namespace Volian.Print.Library
{ // Center the bottom message
float wtpm = (float)docstyle.Layout.PageWidth - (float)docstyle.Layout.LeftMargin;
//B2022-126 was using the wrong font definition to calaculate the centering position
xpos = XOffsetBox + (float)docstyle.Layout.LeftMargin + (wtpm - (myMsg.Length * docstyle.End.Font.CharsToTwips)) / 2;
// ** B2023-099 commented out and restored the previous calculation. This caused problems centering the END message in Ginna
// their END message prints with the Prestige Elite font but he centering calc uses Courier New
//xpos = XOffsetBox + (float)docstyle.Layout.LeftMargin + (wtpm - (myMsg.Length * docstyle.End.Font.CharsToTwips)) / 2;
xpos = XOffsetBox + (float)docstyle.Layout.LeftMargin + (wtpm - (myMsg.Length * MyItemInfo.FormatStepData.Font.CharsToTwips)) / 2;
xpos = Math.Max(xpos, XOffsetBox + (float)docstyle.Layout.LeftMargin);
vlnText vttmp = new vlnText(cb, this, myMsg, myMsg, xpos, msg_yLocation, docstyle.End.Font);
MyPageHelper.BottomMessage.Add(vttmp);