Compare commits

..

No commits in common. "928fba3b3750b57c3c4d91818dadfd653a1fe53e" and "3b88b78b347d9b6b903420884c50e478e542945b" have entirely different histories.

20 changed files with 896 additions and 1205 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

@ -64,7 +64,7 @@
</logger> </logger>
</log4net> </log4net>
<appSettings> <appSettings>
<add key="OperatingMode" value="Production" /> <add key="OperatingMode" value="Debug"/>
<!--"Debug" "Production" "Demo"/--> <!--"Debug" "Production" "Demo"/-->
<add key="OriginalPageBreak" value="False"/> <add key="OriginalPageBreak" value="False"/>
<add key="CslaAuthentication" value="Windows"/> <add key="CslaAuthentication" value="Windows"/>
@ -85,7 +85,6 @@
value="EnterpriseServicesHost.EnterpriseServicesProxy, value="EnterpriseServicesHost.EnterpriseServicesProxy,
EnterpriseServicesHost"/> EnterpriseServicesHost"/>
--> -->
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings> </appSettings>
<connectionStrings> <connectionStrings>
<add name="VEPROMS" connectionString="Data Source=VOLIAN-SERVER;User Id=proms2010;password=proms2010;Initial Catalog=VEPROMS" providerName="System.Data.SqlClient"/> <add name="VEPROMS" connectionString="Data Source=VOLIAN-SERVER;User Id=proms2010;password=proms2010;Initial Catalog=VEPROMS" providerName="System.Data.SqlClient"/>
@ -180,19 +179,4 @@
</setting> </setting>
</UISampleNetBar1.Properties.Settings> </UISampleNetBar1.Properties.Settings>
</userSettings> </userSettings>
<startup> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/></startup></configuration>
<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,210 +21941,6 @@ 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
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
/* /*
@ -22180,8 +21976,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255) DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255) DECLARE @RevDescription varchar(255)
set @RevDate = '10/03/2023 11:00 AM' set @RevDate = '10/03/2022 2:00 PM'
set @RevDescription = 'C2023-017: Added logic to filter the format list when selecting a format to be applied to a section' set @RevDescription = 'B2022-124: [JPR] Blank RO Values (All Spaces) printing as ?'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
@ -22199,6 +21995,3 @@ ELSE PRINT 'StoredProcedure [vesp_GetSQLCodeRevision] Error on Creation'
go go
Exec vesp_GetSQLCodeRevision; Exec vesp_GetSQLCodeRevision;

View File

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

View File

@ -11,8 +11,6 @@ using DescriptiveEnum;
using DevComponents.DotNetBar; using DevComponents.DotNetBar;
using DevComponents.DotNetBar.Controls; using DevComponents.DotNetBar.Controls;
using Volian.Controls.Library; using Volian.Controls.Library;
using System.Xml;
using Csla;
namespace VEPROMS namespace VEPROMS
{ {
@ -186,9 +184,7 @@ namespace VEPROMS
ppCmbxFormat.DataSource = null; ppCmbxFormat.DataSource = null;
ppCmbxFormat.DisplayMember = "FullName"; ppCmbxFormat.DisplayMember = "FullName";
ppCmbxFormat.ValueMember = "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.MyProcedure.MyProcedureInfo.ActiveFormat != null) _cmbxformatOriginal = _ProcedureConfig.MyProcedure.MyProcedureInfo.ActiveFormat.FormatID;
if (_ProcedureConfig.FormatSelection != null) if (_ProcedureConfig.FormatSelection != null)
ppCmbxFormat.SelectedValue = _ProcedureConfig.FormatSelection; ppCmbxFormat.SelectedValue = _ProcedureConfig.FormatSelection;

View File

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

View File

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

View File

@ -192,16 +192,6 @@ namespace VEPROMS.CSLA.Library
return _UserID; 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; private int _FormatContentCount = 0;
/// <summary> /// <summary>
/// Count of FormatContents for this Format /// Count of FormatContents for this Format
@ -528,7 +518,6 @@ namespace VEPROMS.CSLA.Library
_FormatDocVersionCount = dr.GetInt32("DocVersionCount"); _FormatDocVersionCount = dr.GetInt32("DocVersionCount");
_FormatFolderCount = dr.GetInt32("FolderCount"); _FormatFolderCount = dr.GetInt32("FolderCount");
_ChildFormatCount = dr.GetInt32("ChildCount"); _ChildFormatCount = dr.GetInt32("ChildCount");
_ApplicablePlant = dr.GetInt32("ApplicablePlant");
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -570,9 +570,7 @@ namespace Volian.Controls.Library
/// </summary> /// </summary>
/// <param name="myItemInfo"></param> /// <param name="myItemInfo"></param>
/// <returns></returns> /// <returns></returns>
// C2023-016 Added doingFindReplace where if true Word section will not be opened - used only when doing Find/Replace public DisplayTabItem OpenItem(ItemInfo myItemInfo2, bool setFocus)
// 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; ItemInfo myItemInfo = myItemInfo2;
@ -651,8 +649,7 @@ namespace Volian.Controls.Library
_MyBar = GetParentBar(myItemInfo); // Get the docking bar associated with this item. _MyBar = GetParentBar(myItemInfo); // Get the docking bar associated with this item.
// 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) // If it is not a Word document open in step editor
if (myItemInfo.MyContent.MyEntry == null || doingFindReplace) // If it is not a Word document open in step editor
{ {
return OpenStepTabPage(myItemInfo, setFocus); return OpenStepTabPage(myItemInfo, setFocus);
} }

View File

@ -183,6 +183,7 @@ 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.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.WatermarkText = "Enter text to find";
this.cmboFindText.TextChanged += new System.EventHandler(this.cmboFindText_TextChanged); this.cmboFindText.TextChanged += new System.EventHandler(this.cmboFindText_TextChanged);
this.cmboFindText.Leave += new System.EventHandler(this.cmboFindText_Leave);
// //
// labelX3 // labelX3
// //
@ -348,7 +349,6 @@ namespace Volian.Controls.Library
this.cbxReverse.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.cbxReverse.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbxReverse.TabIndex = 5; this.cbxReverse.TabIndex = 5;
this.cbxReverse.Text = "Reverse Find"; this.cbxReverse.Text = "Reverse Find";
this.cbxReverse.CheckedChanged += new System.EventHandler(this.cbxReverse_CheckedChanged);
// //
// cbxWholeWord // cbxWholeWord
// //
@ -363,7 +363,6 @@ namespace Volian.Controls.Library
this.cbxWholeWord.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.cbxWholeWord.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbxWholeWord.TabIndex = 4; this.cbxWholeWord.TabIndex = 4;
this.cbxWholeWord.Text = "Whole Word"; this.cbxWholeWord.Text = "Whole Word";
this.cbxWholeWord.CheckedChanged += new System.EventHandler(this.cbxWholeWord_CheckedChanged);
// //
// cbxCaseSensitive // cbxCaseSensitive
// //
@ -378,7 +377,6 @@ namespace Volian.Controls.Library
this.cbxCaseSensitive.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.cbxCaseSensitive.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbxCaseSensitive.TabIndex = 3; this.cbxCaseSensitive.TabIndex = 3;
this.cbxCaseSensitive.Text = "Case Sensitive"; this.cbxCaseSensitive.Text = "Case Sensitive";
this.cbxCaseSensitive.CheckedChanged += new System.EventHandler(this.cbxCaseSensitive_CheckedChanged);
// //
// cmbScope // cmbScope
// //

View File

@ -11,13 +11,11 @@ using JR.Utils.GUI.Forms;
namespace Volian.Controls.Library 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 public partial class FindReplace : DevComponents.DotNetBar.Office2007Form
{ {
private bool doingfind = false; private bool doingfind = false;
private bool findingbookmarks = false; private bool findingbookmarks = false;
private bool _FoundIt = false; private bool _FoundIt = false;
private ItemInfo _StartingItemInfo = null;// C2023-016 used to remember where we started doing the Find/Replace
public bool FoundIt public bool FoundIt
{ {
get { return _FoundIt; } get { return _FoundIt; }
@ -27,7 +25,7 @@ namespace Volian.Controls.Library
{ {
get get
{ {
// B2022-067 get display text version to convert 8209 dash to normal (keyboard) dash // B2022-067 get display text version to convert 8209 dash to nornal (keyboard) dash
string selStr = ItemInfo.ConvertToDisplayText(MyEditItem.MyStepRTB.SelectedText); string selStr = ItemInfo.ConvertToDisplayText(MyEditItem.MyStepRTB.SelectedText);
if (!cbxCaseSensitive.Checked) if (!cbxCaseSensitive.Checked)
return selStr.ToUpper() == cmboFindText.Text.ToUpper(); return selStr.ToUpper() == cmboFindText.Text.ToUpper();
@ -35,6 +33,7 @@ namespace Volian.Controls.Library
return selStr == cmboFindText.Text; return selStr == cmboFindText.Text;
} }
} }
//private bool _offsetStartPos = false;
private EditItem _MyEditItem; private EditItem _MyEditItem;
public EditItem MyEditItem public EditItem MyEditItem
{ {
@ -45,13 +44,25 @@ namespace Volian.Controls.Library
if (_MyEditItem == null) return; if (_MyEditItem == null) return;
_MyDocVersion = _MyEditItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; _MyDocVersion = _MyEditItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo;
SetupContextMenu(); SetupContextMenu();
//_offsetStartPos = false; // in a different rtf box, don't offset find position first time around
} }
} }
private DocVersionInfo _MyDocVersion; private DocVersionInfo _MyDocVersion;
public DocVersionInfo Mydocversion public DocVersionInfo Mydocversion
{ {
get { return _MyDocVersion; } get { return _MyDocVersion; }
set {_MyDocVersion = value; } set
{
_MyDocVersion = value;
//if (_MyDocVersion != null)
//{
// if (_MyDocVersion.DocVersionAssociationCount > 0)
// {
// MyROFSTLookup = _MyDocVersion.DocVersionAssociations[0].MyROFst.ROFSTLookup;
// _MyRODbID = _MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID;
// }
//}
}
} }
private DisplayBookMarks _myDisplayBookMarks; private DisplayBookMarks _myDisplayBookMarks;
@ -72,12 +83,17 @@ namespace Volian.Controls.Library
{ {
InitializeComponent(); InitializeComponent();
LoadFindReplaceTextListBox(); LoadFindReplaceTextListBox();
//if (dvi != null && dvi.VersionType > 127)
// InApproved = false; // in approved
cmbScope.SelectedIndex = 0; cmbScope.SelectedIndex = 0;
btnBookMrkAll.Enabled = false; btnBookMrkAll.Enabled = false;
btnFindNext.Enabled = false; btnFindNext.Enabled = false;
btnReplace.Enabled = false; btnReplace.Enabled = false;
btnRplAll.Enabled = false; btnRplAll.Enabled = false;
//if (MyRTBItem.MyStepRTB.SelectionLength > 0)
// cmboFindText.Text = MyRTBItem.MyStepRTB.SelectedText;
cmboFindText.Focus(); cmboFindText.Focus();
//SetupContextMenu();
} }
private void LoadFindReplaceTextListBox() private void LoadFindReplaceTextListBox()
{ {
@ -97,34 +113,51 @@ 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) // 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() public void SetFocusToTextBox()
{ {
cmboFindText.Focus(); cmboFindText.Focus();
} }
private bool DoingClick = false; // Don't allow a button to be clicked until processing is complete for the last button 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) 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 if (DoingClick) return;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true;// We started processing a click DoingClick = true;// Don't allow a button to be clicked until processing is complete for the last button
DoReplace(); DoReplace();
DoingClick = false;// we're done processing the click DoingClick = false;// Don't allow a button to be clicked until processing is complete for the last button
} }
private void DoReplace() private void DoReplace()
{ {
if (!IsFound) if (!IsFound)
DoFindNext(); DoFindNext();
else else
{
MyEditItem.ReplaceText(cmboReplaceText.Text, cmboFindText.Text, cbxCaseSensitive.Checked, cbxWholeWord.Checked, cbxReverse.Checked, false, null); MyEditItem.ReplaceText(cmboReplaceText.Text, cmboFindText.Text, cbxCaseSensitive.Checked, cbxWholeWord.Checked, cbxReverse.Checked, false, null);
} }
}
private void btnRplAll_Click(object sender, EventArgs e) 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 if (DoingClick) return;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true; // We started processing a click DoingClick = true;// Don't allow a button to be clicked until processing is complete for the last button
DoRplAll(); DoRplAll();
DoingClick = false; // we're done processing the click DoingClick = false;// Don't allow a button to be clicked until processing is complete for the last button
} }
private void DoRplAll() private void DoRplAll()
{ {
@ -139,9 +172,9 @@ namespace Volian.Controls.Library
private void btnBookMrkAll_Click(object sender, EventArgs e) 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 if (DoingClick) return;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true; // We started processing a click DoingClick = true;// Don't allow a button to be clicked until processing is complete for the last button
DoBookMrkAll(); DoBookMrkAll();
DoingClick = false; // we're done processing the click DoingClick = false;// Don't allow a button to be clicked until processing is complete for the last button
} }
private void DoBookMrkAll() private void DoBookMrkAll()
{ {
@ -160,6 +193,7 @@ namespace Volian.Controls.Library
} }
private void btnFndRplDone_Click(object sender, EventArgs e) private void btnFndRplDone_Click(object sender, EventArgs e)
{ {
//this.Close();
doingfind = false; doingfind = false;
this.Visible = false; this.Visible = false;
} }
@ -195,48 +229,10 @@ namespace Volian.Controls.Library
private void btnFindNext_Click(object sender, EventArgs e) 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 if (DoingClick) return;// Don't allow a button to be clicked until processing is complete for the last button
DoingClick = true;// We started processing a click DoingClick = true;// Don't allow a button to be clicked until processing is complete for the last button
DoFindNext(); DoFindNext();
DoingClick = false;// we're done processing the click DoingClick = false;// Don't allow a button to be clicked until processing is complete for the last button
} }
// 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() private void DoFindNext()
{ {
AddToComboLists(); AddToComboLists();
@ -244,21 +240,32 @@ namespace Volian.Controls.Library
string fndStr = FixSymbol(cmboFindText.Text.Replace(@"\", @"\u9586?").Replace("-", @"\u8209?").Replace("\xa0", @"\u160?")); string fndStr = FixSymbol(cmboFindText.Text.Replace(@"\", @"\u9586?").Replace("-", @"\u8209?").Replace("\xa0", @"\u160?"));
while (!MyEditItem.FindText(cmboFindText.Text, cbxCaseSensitive.Checked, cbxWholeWord.Checked, cbxReverse.Checked)) while (!MyEditItem.FindText(cmboFindText.Text, cbxCaseSensitive.Checked, cbxWholeWord.Checked, cbxReverse.Checked))
{ {
ItemInfo next = FindNextStepElement(MyEditItem.MyItemInfo, fndStr); ItemInfo next = (cbxReverse.Checked) ? MyEditItem.MyItemInfo.SearchPrev : MyEditItem.MyItemInfo.SearchNext;
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) // 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);
if (cbxReverse.Checked) if (cbxReverse.Checked)
MyEditItem.PositionToEnd(); MyEditItem.PositionToEnd();
if (next.IsTable && !cbxReverse.Checked) MyEditItem.PositionToStart(); 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) if (MyEditItem.MyStepRTB != null && !MyEditItem.MyStepRTB.Visible)
{ {
@ -279,7 +286,7 @@ namespace Volian.Controls.Library
{ {
if (cmboFindText.Items.Count >= 10) if (cmboFindText.Items.Count >= 10)
cmboFindText.Items.RemoveAt(9); cmboFindText.Items.RemoveAt(9);
cmboFindText.Items.Insert(0, cmboFindText.Text); cmboFindText.Items.Insert(0, cmboFindText.Text);//.Add(cmboFindText.Text);
} }
hastext = this.cmboReplaceText.Text.Length > 0; hastext = this.cmboReplaceText.Text.Length > 0;
if (hastext && btnReplace.Enabled && !cmboReplaceText.Items.Contains(cmboReplaceText.Text)) if (hastext && btnReplace.Enabled && !cmboReplaceText.Items.Contains(cmboReplaceText.Text))
@ -295,13 +302,11 @@ namespace Volian.Controls.Library
btnFindNext.Enabled = hastext; btnFindNext.Enabled = hastext;
btnBookMrkAll.Enabled = hastext; btnBookMrkAll.Enabled = hastext;
btnReplace.Enabled = btnRplAll.Enabled = hastext && !InApproved; btnReplace.Enabled = btnRplAll.Enabled = hastext && !InApproved;
_StartingItemInfo = null; //C2023-016 reset the starting position
} }
private void cmboReplaceText_TextChanged(object sender, EventArgs e) private void cmboReplaceText_TextChanged(object sender, EventArgs e)
{ {
btnReplace.Enabled = btnRplAll.Enabled = !InApproved && cmboFindText.Text.Length > 0; btnReplace.Enabled = btnRplAll.Enabled = !InApproved && cmboFindText.Text.Length > 0;
_StartingItemInfo = null;//C2023-016 reset the starting position
} }
public void PerformFindNext() public void PerformFindNext()
@ -331,6 +336,17 @@ namespace Volian.Controls.Library
e.Cancel = true; // cancel the form close event - the Done_Click() will hide it instead 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) private void btnCmCut_Click(object sender, EventArgs e)
{ {
Clipboard.Clear(); Clipboard.Clear();
@ -440,22 +456,6 @@ namespace Volian.Controls.Library
tabReplace.Visible = true; tabReplace.Visible = true;
Text = "Find and Replace";//C2021-021 change the dialog title 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

@ -1,61 +0,0 @@
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,7 +240,6 @@
<Compile Include="FindReplace.designer.cs"> <Compile Include="FindReplace.designer.cs">
<DependentUpon>FindReplace.cs</DependentUpon> <DependentUpon>FindReplace.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="FormatUtility.cs" />
<Compile Include="frmEnhanced.cs"> <Compile Include="frmEnhanced.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>

View File

@ -2339,10 +2339,7 @@ namespace Volian.Print.Library
{ // Center the bottom message { // Center the bottom message
float wtpm = (float)docstyle.Layout.PageWidth - (float)docstyle.Layout.LeftMargin; float wtpm = (float)docstyle.Layout.PageWidth - (float)docstyle.Layout.LeftMargin;
//B2022-126 was using the wrong font definition to calaculate the centering position //B2022-126 was using the wrong font definition to calaculate the centering position
// ** B2023-099 commented out and restored the previous calculation. This caused problems centering the END message in Ginna xpos = XOffsetBox + (float)docstyle.Layout.LeftMargin + (wtpm - (myMsg.Length * docstyle.End.Font.CharsToTwips)) / 2;
// 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); xpos = Math.Max(xpos, XOffsetBox + (float)docstyle.Layout.LeftMargin);
vlnText vttmp = new vlnText(cb, this, myMsg, myMsg, xpos, msg_yLocation, docstyle.End.Font); vlnText vttmp = new vlnText(cb, this, myMsg, myMsg, xpos, msg_yLocation, docstyle.End.Font);
MyPageHelper.BottomMessage.Add(vttmp); MyPageHelper.BottomMessage.Add(vttmp);