Compare commits

...

25 Commits

Author SHA1 Message Date
0da2d38bd8 C2025-009 Added a report for tracking when a user is added into PROMS / when a user is added to specific PROMS security groups. Report can be run from the V-button->General Tools->Reports. 2025-09-08 14:38:36 -04:00
3a6ce52ead Merge pull request 'C2025-022-PROMS-FIXES_CHECKIN' (#609) from C2025-022-PROMS-FIXES_CHECKIN into Development
good for testing
2025-09-04 17:03:41 -04:00
eb0582ae69 C2025-022-PROMS-FIXES_CHECKIN 2025-09-04 16:59:48 -04:00
3143d094e8 C2025-022-PROMS-FIXES_CHECKIN 2025-09-04 16:28:23 -04:00
f265a23f97 C2025-022-PROMS-FIXES_CHECKIN 2025-09-04 16:22:29 -04:00
dceeb410c6 Merge pull request 'C2024-036 Add Filtering ability to the main PROMS procedure tree.' (#608) from C2024-036 into Development
good for testing phase
2025-09-04 15:52:57 -04:00
30be08fe4d C2024-036 Add Filtering ability to the main PROMS procedure tree.
Typing a procedure number or title into the search box and pressing enter/clicking the tree view search button will down base the PROMS procedure tree to matching procedures/folders.
2025-09-04 15:48:29 -04:00
20247d0bc2 Merge pull request 'C2025-017 Added an option to print (generate) all of the current Approved versions of PDFs and place them in a user specified folder' (#607) from C2025-017_PrintAllApproved into Development
Looks good. Ready for QA.
2025-09-04 15:44:01 -04:00
c0ac325911 C2025-017 Added an option to print (generate) all of the current Approved versions of PDFs and place them in a user specified folder 2025-09-04 14:38:26 -04:00
c02ab116cd Merge pull request 'C2025-022-Remove-UCF-2' (#606) from C2025-022-Remove-UCF-2 into Development
Good for QA Testing
2025-09-04 06:55:25 -04:00
7ec4f2a61e C2025-022-Remove-UCF-2 2025-09-03 15:56:22 -04:00
16129ba742 C2025-022-Remove-UCF-2 2025-09-03 15:53:05 -04:00
61853fb71f C2025-022-Remove-UCF-2 2025-09-03 13:56:31 -04:00
58f13eb1dc C2025-022-Remove-UCF-2 2025-09-03 12:32:05 -04:00
b999f17445 C2025-022-Remove-UCF-2 2025-09-03 09:57:33 -04:00
3bf24b838b Merge pull request 'B2025-044 Intermittent caching refresh issue with importing procedure sets.' (#605) from B2025-044 into Development
good for testing phase
2025-08-28 08:42:58 -04:00
e37928bf89 B2025-044 Intermittent caching refresh issue with importing procedure sets. 2025-08-28 07:53:54 -04:00
aa6dacf0c5 Merge pull request 'C2025-051 Missed one default when removing Check and Users Tabs from Admin Tool' (#604) from C2025-051 into Development
good for testing phase
2025-08-27 08:15:39 -04:00
69cc71ab3b C2025-051 Missed one default when removing Check and Users Tabs from Admin Tool 2025-08-27 07:01:39 -04:00
fe52d31168 Merge pull request 'C2025-051 Add a "General Tools" option to the V->Proms Menu.' (#603) from C2025-051 into Development
good for testing phase
2025-08-26 11:13:03 -04:00
3ea4307716 C2025-051 Add a "General Tools" option to the V->Proms Menu. 2025-08-26 06:57:57 -04:00
5650df1a9f Merge pull request 'C2025-001 Replace 3rd party Ionic.zip component' (#602) from C2025-001 into Development
good for testing phase
2025-08-25 08:40:01 -04:00
8f154ebf48 C2025-001 Replace 3rd party Ionic.zip component 2025-08-21 14:25:53 -04:00
ba9d56811c Merge pull request 'C2025-035 RO Performance Improvement' (#601) from C2025-035 into Development
Reviewed-on: #601
Reviewed-by: Paul Larsen <plarsen@volian.com>
2025-08-19 14:24:55 -04:00
8eb8a328d1 C2025-035 RO Performance Improvement
Add some code to rebuild specific indexes (like [IX_RofstID_DbiID_ParentID] ON [dbo].[RofstChild])
after a new RO.FST is imported.
2025-08-19 13:32:23 -04:00
31 changed files with 3720 additions and 19708 deletions

View File

@@ -135,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>
@@ -150,17 +150,14 @@
<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>
</setting>
<setting name="cbShwRplWrdsColor" serializeAs="String">
<value>False</value>
</setting>
<setting name="PasteNoReturns" serializeAs="String">
<value>False</value>
</setting>
@@ -173,9 +170,6 @@
<setting name="SeparateWindows" serializeAs="String">
<value>False</value>
</setting>
<setting name="VisioPath" serializeAs="String">
<value />
</setting>
</VEPROMS.Properties.Settings>
<UISampleNetBar1.Properties.Settings>
<setting name="ShowDefaultFolderProp" serializeAs="String">

View File

@@ -18799,8 +18799,9 @@ GO
*****************************************************************************/
/*
==========================================================================================================
Author: Jake Ropar
Author: Jake Ropar / Matthew Schill
Create Date: 06/23/2022
Modify Date: 08/18/2025
Description: Finalizes Rofst Header Record / Updates LoadedDate if Success
==========================================================================================================
*/
@@ -18817,13 +18818,18 @@ GO
Set LoadedDate = GetDate()
Where RofstID = @RofstID;
--always rebuild the rofst child and default indexes
DBCC DBREINDEX ('RofstChild');
DBCC DBREINDEX ('RofstDefaultValue');
-- Rebuild/Reorganize Indexes
Exec [dbo].[vesp_UtilityCheckIndexes] 20.0, 5.0, 0, 1;
Return;
End
Go
GO
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstHeaderFinalizeLoad] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_RofstHeaderFinalizeLoad] Error on Creation'
@@ -24225,6 +24231,39 @@ GO
==========================================================================================================
*/
-- C2025-009 Report for tracking PROMS Users / Security
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getUserAcessControl]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getUserAcessControl];
GO
/****** Object: StoredProcedure [dbo].[getUserAcessControl] Script Date: 9/5/2025 6:51:42 AM ******/
-- =============================================
-- Author: Matthew Schill
-- Create date: 09/05/2025
-- Description: Get Data on When Users were added to PROMS and when they were added to Security Groups
-- =============================================
CREATE PROCEDURE [dbo].[getUserAcessControl]
AS
BEGIN
SELECT Users.UserID,
WhenUserAddedToPROMS = Users.[DTS],
GroupName = Groups.GroupName,
WhenUserAddedToGroup = Memberships.[DTS],
WhoAddedUserToGroup = CASE WHEN
Memberships.UsrID = Users.UsrID
AND Users.UsrID = Users.UserID
THEN 'INITIAL_SETUP'
ELSE Memberships.UsrID END,
DateUserRemovedFromGroup = Memberships.EndDate
FROM Memberships
inner join Groups on Memberships.GID = Groups.GID
right outer join Users on Users.UID = Memberships.UID
order by UserID, Memberships.[DTS]
RETURN
END
/*
---------------------------------------------------------------------------
| ADD New Code Before this Block |
@@ -24258,8 +24297,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
set @RevDate = '08/13/2025 8:07 AM'
set @RevDescription = 'Improve Performance loading procedures with Alarms'
set @RevDate = '09/05/2025 7:00 AM'
set @RevDescription = 'Added stored procedure for User Access Control Report'
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

@@ -250,6 +250,16 @@ namespace VEPROMS.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap toolbox {
get {
object obj = ResourceManager.GetObject("toolbox", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -111,10 +111,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\Ionic\Ionic.Zip.dll</HintPath>
</Reference>
<Reference Include="Itenso.Rtf.Interpreter">
<HintPath>..\..\..\..\3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Interpreter.dll</HintPath>
</Reference>
@@ -125,6 +121,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\Log4Net\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Data">
@@ -133,6 +133,8 @@
<Reference Include="System.Deployment" />
<Reference Include="System.Design" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Runtime.Remoting" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
@@ -226,6 +228,12 @@
<Compile Include="dlgPickROFolder.designer.cs">
<DependentUpon>dlgPickROFolder.cs</DependentUpon>
</Compile>
<Compile Include="dlgPrintAllApprovedProcedures.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgPrintAllApprovedProcedures.Designer.cs">
<DependentUpon>dlgPrintAllApprovedProcedures.cs</DependentUpon>
</Compile>
<Compile Include="DlgPrintProcedure.cs">
<SubType>Form</SubType>
</Compile>
@@ -262,6 +270,12 @@
<Compile Include="frmBatchRefreshCheckedOut.designer.cs">
<DependentUpon>frmBatchRefreshCheckedOut.cs</DependentUpon>
</Compile>
<Compile Include="frmGenTools.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmGenTools.designer.cs">
<DependentUpon>frmGenTools.cs</DependentUpon>
</Compile>
<Compile Include="frmManageUser.cs">
<SubType>Form</SubType>
</Compile>
@@ -355,6 +369,9 @@
<EmbeddedResource Include="dlgImpHowToHandleROs.resx">
<DependentUpon>dlgImpHowToHandleROs.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="dlgPrintAllApprovedProcedures.resx">
<DependentUpon>dlgPrintAllApprovedProcedures.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DlgPrintProcedure.resx">
<DependentUpon>DlgPrintProcedure.cs</DependentUpon>
<SubType>Designer</SubType>
@@ -365,6 +382,9 @@
<EmbeddedResource Include="frmAnnotationsCleanup.resx">
<DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmGenTools.resx">
<DependentUpon>frmGenTools.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmPDFStatusForm.resx">
<DependentUpon>frmPDFStatusForm.cs</DependentUpon>
<SubType>Designer</SubType>
@@ -487,6 +507,7 @@
<Content Include="PROMSRollback %28v2.0%29.Sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Resources\toolbox.png" />
<Content Include="ROBuild.Sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

View File

@@ -1,655 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{8D1C47B4-F302-4C5A-87CC-24FDC5529872}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>VEPROMS</RootNamespace>
<AssemblyName>VEPROMS</AssemblyName>
<ApplicationIcon>veproms.ico</ApplicationIcon>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>2.0</OldToolsVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Demo|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Demo\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\debug\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Demo|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Demo\</OutputPath>
<DefineConstants>TRACE;DEMO</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="C1.Win.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=944ae1ea0e47ca04" />
<Reference Include="C1.Win.C1Command.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=e808566f358766d8" />
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="C1.Win.C1Input.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=7e7ff60f0c214f9a, processorArchitecture=MSIL" />
<Reference Include="Csla, Version=2.1.4.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\CSLA20cs_DLL_Net_4.8.1_Build\Csla.dll</HintPath>
</Reference>
<Reference Include="DevComponents.DotNetBar2, Version=14.1.0.37, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\Ionic\Ionic.Zip.dll</HintPath>
</Reference>
<Reference Include="Itenso.Rtf.Interpreter">
<HintPath>..\..\..\..\3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Interpreter.dll</HintPath>
</Reference>
<Reference Include="Itenso.Rtf.Parser">
<HintPath>..\..\..\..\3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Parser.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\Log4Net\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Data">
<Private>True</Private>
</Reference>
<Reference Include="System.Deployment" />
<Reference Include="System.Design" />
<Reference Include="System.Drawing" />
<Reference Include="System.Runtime.Remoting" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="UIAutomationProvider" />
<Reference Include="VEPROMS.CSLA.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AboutVEPROMS.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AboutVEPROMS.Designer.cs">
<DependentUpon>AboutVEPROMS.cs</DependentUpon>
</Compile>
<Compile Include="BookMarks.cs" />
<Compile Include="dlgAnnotationsSelect.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgAnnotationsSelect.Designer.cs">
<DependentUpon>dlgAnnotationsSelect.cs</DependentUpon>
</Compile>
<Compile Include="dlgAnnotationsSelect.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>dlgAnnotationsSelect.resx</DependentUpon>
</Compile>
<Compile Include="dlgApproveProcedure.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgApproveProcedure.Designer.cs">
<DependentUpon>dlgApproveProcedure.cs</DependentUpon>
</Compile>
<Compile Include="dlgCheckedOutProcedure.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgCheckedOutProcedure.designer.cs">
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
</Compile>
<Compile Include="dlgExportImportEP.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgMSWordMessage.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgMSWordMessage.Designer.cs">
<DependentUpon>dlgMSWordMessage.cs</DependentUpon>
</Compile>
<Compile Include="dlgCheckOpenTabs.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgCheckOpenTabs.Designer.cs">
<DependentUpon>dlgCheckOpenTabs.cs</DependentUpon>
</Compile>
<Compile Include="DlgCloseTabsOrExit.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DlgCloseTabsOrExit.Designer.cs">
<DependentUpon>DlgCloseTabsOrExit.cs</DependentUpon>
</Compile>
<Compile Include="dlgExportImport.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgExportImport.designer.cs">
<DependentUpon>dlgExportImport.cs</DependentUpon>
</Compile>
<Compile Include="dlgImpHowToHandleROs.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgImpHowToHandleROs.Designer.cs">
<DependentUpon>dlgImpHowToHandleROs.cs</DependentUpon>
</Compile>
<Compile Include="dlgManageSecurity.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgManageSecurity.designer.cs">
<DependentUpon>dlgManageSecurity.cs</DependentUpon>
</Compile>
<Compile Include="dlgPhoneList.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgPhoneList.Designer.cs">
<DependentUpon>dlgPhoneList.cs</DependentUpon>
</Compile>
<Compile Include="dlgPickROFolder.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgPickROFolder.designer.cs">
<DependentUpon>dlgPickROFolder.cs</DependentUpon>
</Compile>
<Compile Include="DlgPrintProcedure.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DlgPrintProcedure.designer.cs">
<DependentUpon>DlgPrintProcedure.cs</DependentUpon>
</Compile>
<Compile Include="dlgSetChangeBarStartDate.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgSetChangeBarStartDate.Designer.cs">
<DependentUpon>dlgSetChangeBarStartDate.cs</DependentUpon>
</Compile>
<Compile Include="dlgTransitionReport.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgTransitionReport.designer.cs">
<DependentUpon>dlgTransitionReport.cs</DependentUpon>
</Compile>
<Compile Include="dlgUCFDetail.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgUCFDetail.Designer.cs">
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
</Compile>
<Compile Include="frmAnnotationsCleanup.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmAnnotationsCleanup.Designer.cs">
<DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
</Compile>
<Compile Include="frmBatchRefresh.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmBatchRefresh.designer.cs">
<DependentUpon>frmBatchRefresh.cs</DependentUpon>
</Compile>
<Compile Include="frmBatchRefreshCheckedOut.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmBatchRefreshCheckedOut.designer.cs">
<DependentUpon>frmBatchRefreshCheckedOut.cs</DependentUpon>
</Compile>
<Compile Include="frmManageUser.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmManageUser.designer.cs">
<DependentUpon>frmManageUser.cs</DependentUpon>
</Compile>
<Compile Include="frmPDFStatusForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmPDFStatusForm.designer.cs">
<DependentUpon>frmPDFStatusForm.cs</DependentUpon>
</Compile>
<Compile Include="frmPSI.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmPSI.Designer.cs">
<DependentUpon>frmPSI.cs</DependentUpon>
</Compile>
<Compile Include="frmRODbProperties.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmRODbProperties.Designer.cs">
<DependentUpon>frmRODbProperties.cs</DependentUpon>
</Compile>
<Compile Include="frmSI.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmSI.Designer.cs">
<DependentUpon>frmSI.cs</DependentUpon>
</Compile>
<Compile Include="frmVEPROMS.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmVEPROMS.Designer.cs">
<DependentUpon>frmVEPROMS.cs</DependentUpon>
</Compile>
<Compile Include="frmFolderProperties.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmFolderProperties.Designer.cs">
<DependentUpon>frmFolderProperties.cs</DependentUpon>
</Compile>
<Compile Include="frmProcedureProperties.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmProcedureProperties.Designer.cs">
<DependentUpon>frmProcedureProperties.cs</DependentUpon>
</Compile>
<Compile Include="frmPropGrid.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmPropGrid.Designer.cs">
<DependentUpon>frmPropGrid.cs</DependentUpon>
</Compile>
<Compile Include="frmSectionProperties.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmSectionProperties.Designer.cs">
<DependentUpon>frmSectionProperties.cs</DependentUpon>
</Compile>
<Compile Include="frmSysOptions.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmSysOptions.Designer.cs">
<DependentUpon>frmSysOptions.cs</DependentUpon>
</Compile>
<Compile Include="frmVersionsProperties.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmVersionsProperties.Designer.cs">
<DependentUpon>frmVersionsProperties.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<EmbeddedResource Include="AboutVEPROMS.resx">
<SubType>Designer</SubType>
<DependentUpon>AboutVEPROMS.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="dlgAnnotationsSelect.resx">
<DependentUpon>dlgAnnotationsSelect.cs</DependentUpon>
<Generator>ResXFileCodeGenerator</Generator>
</EmbeddedResource>
<EmbeddedResource Include="dlgMSWordMessage.resx">
<DependentUpon>dlgMSWordMessage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="dlgCheckOpenTabs.resx">
<DependentUpon>dlgCheckOpenTabs.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DlgCloseTabsOrExit.resx">
<DependentUpon>DlgCloseTabsOrExit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="dlgImpHowToHandleROs.resx">
<DependentUpon>dlgImpHowToHandleROs.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DlgPrintProcedure.resx">
<DependentUpon>DlgPrintProcedure.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="dlgSetChangeBarStartDate.resx">
<DependentUpon>dlgSetChangeBarStartDate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="dlgUCFDetail.resx">
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmAnnotationsCleanup.resx">
<DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmPDFStatusForm.resx">
<DependentUpon>frmPDFStatusForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmPSI.resx">
<SubType>Designer</SubType>
<DependentUpon>frmPSI.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmRODbProperties.resx">
<SubType>Designer</SubType>
<DependentUpon>frmRODbProperties.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmSI.resx">
<DependentUpon>frmSI.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmVEPROMS.resx">
<SubType>Designer</SubType>
<DependentUpon>frmVEPROMS.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmFolderProperties.resx">
<DependentUpon>frmFolderProperties.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmProcedureProperties.resx">
<DependentUpon>frmProcedureProperties.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmPropGrid.resx">
<SubType>Designer</SubType>
<DependentUpon>frmPropGrid.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmSectionProperties.resx">
<DependentUpon>frmSectionProperties.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmSysOptions.resx">
<SubType>Designer</SubType>
<DependentUpon>frmSysOptions.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmVersionsProperties.resx">
<DependentUpon>frmVersionsProperties.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<SubType>Designer</SubType>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="ShortcutLists.resx">
<DependentUpon>ShortcutLists.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="VlnWeb.resx">
<DependentUpon>VlnWeb.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<None Include="App.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<SubType>Designer</SubType>
</None>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="Settings.cs" />
<Compile Include="ShortcutLists.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ShortcutLists.designer.cs">
<DependentUpon>ShortcutLists.cs</DependentUpon>
</Compile>
<Compile Include="VlnWeb.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="VlnWeb.Designer.cs">
<DependentUpon>VlnWeb.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="VEPROMS.gclicx" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Separator.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\ProtectFormHS.png" />
</ItemGroup>
<ItemGroup>
<None Include="FixRev.Bat" />
<None Include="MSWordVBA\vlnNextROForm.frm" />
<None Include="MSWordVBA\vlnNextROForm.frx" />
<None Include="MSWordVBA\vlnWestROConvert.frm" />
<None Include="MSWordVBA\vlnWestROConvert.frx" />
<None Include="Properties\DataSources\System.Drawing.Imaging.ImageCodecInfo.datasource" />
<None Include="Properties\DataSources\VEPROMS.CSLA.Library.DocVersionConfig.datasource" />
<None Include="Properties\DataSources\VEPROMS.CSLA.Library.FormatInfoList.datasource" />
<None Include="Properties\DataSources\VEPROMS.CSLA.Library.ItemAnnotations.datasource" />
<None Include="Properties\DataSources\VEPROMS.CSLA.Library.RODbInfoList.datasource" />
<None Include="Properties\DataSources\VEPROMS.CSLA.Library.SectionConfig.datasource" />
<None Include="Resources\UnProtectFormHS.png" />
<None Include="veproms.dct">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<Content Include="BarakahEULA.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="PROMSFixes.Sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="PROMSRollback %28v2.0%29.Sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="ROBuild.Sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="ROFixes.Sql">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SORTCUTS_INSERT.RTF">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="SORTCUTS_MISC.rtf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="SORTCUTS_NAVIGATION.rtf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="SORTCUTS_RIBBON.rtf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="SORTCUTS_TXTMODS.rtf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="DBConnection_Sample.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="DemoEULA.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="EULA.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="MSWordVBA\VlnWROMacros.bas" />
<Content Include="Resources\Admin.png" />
<EmbeddedResource Include="dlgApproveProcedure.resx">
<DependentUpon>dlgApproveProcedure.cs</DependentUpon>
<SubType>Designer</SubType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="dlgCheckedOutProcedure.resx">
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="dlgExportImport.resx">
<DependentUpon>dlgExportImport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="dlgManageSecurity.resx">
<DependentUpon>dlgManageSecurity.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="dlgPhoneList.resx">
<SubType>Designer</SubType>
<DependentUpon>dlgPhoneList.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="dlgPickROFolder.resx">
<DependentUpon>dlgPickROFolder.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="dlgTransitionReport.resx">
<DependentUpon>dlgTransitionReport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmBatchRefresh.resx">
<DependentUpon>frmBatchRefresh.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmBatchRefreshCheckedOut.resx">
<DependentUpon>frmBatchRefreshCheckedOut.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmManageUser.resx">
<DependentUpon>frmManageUser.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Resources\ATOM.BMP">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Resources\CPLLOGO.BMP">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Resources\DOMLOGO.BMP">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Resources\GPCLOGO.BMP">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<Content Include="Resources\Save.png" />
<Content Include="Resources\SaveAllHS.png" />
<Content Include="Resources\SaveAs.png" />
<Content Include="VEicon.ico" />
<Content Include="veproms.ico" />
<Content Include="Vicon.ico" />
<Content Include="WestinghouseEULA.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<COMReference Include="stdole">
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FlexableMessageBox\FlexableMessageBox.csproj">
<Project>{b22ce5ad-288c-44cd-8a22-b3bcf77b7161}</Project>
<Name>FlexableMessageBox</Name>
</ProjectReference>
<ProjectReference Include="..\LBWordLibrary\LBWordLibrary.csproj">
<Project>{70F23722-19A3-4AC1-A900-55831C945786}</Project>
<Name>LBWordLibrary</Name>
</ProjectReference>
<ProjectReference Include="..\Volian.Base.Library\Volian.Base.Library.csproj">
<Project>{AEEE9FD1-6892-45E2-A67E-418C06D46FF9}</Project>
<Name>Volian.Base.Library</Name>
</ProjectReference>
<ProjectReference Include="..\Volian.Controls.Library\Volian.Controls.Library.csproj">
<Project>{8556527C-6615-487F-8AF7-22EBC3EF0268}</Project>
<Name>Volian.Controls.Library</Name>
</ProjectReference>
<ProjectReference Include="..\Volian.Print.Library\Volian.Print.Library.csproj">
<Project>{94830C07-6A3A-450E-9674-C9B4293A7726}</Project>
<Name>Volian.Print.Library</Name>
</ProjectReference>
<ProjectReference Include="..\Volian.Utils.Library\Volian.Utils.Library.csproj">
<Project>{62314B9C-DA84-4037-8B68-AA18C1F641F5}</Project>
<Name>Volian.Utils.Library</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PreBuildEvent>cmd /c "$(ProjectDir)FixRev.bat"</PreBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -7,7 +7,7 @@ using Volian.Controls.Library;
using Volian.Base.Library;
using System.Xml;
using System.IO;
using Ionic.Zip;
using System.IO.Compression;
using System.Text.RegularExpressions;
using JR.Utils.GUI.Forms;
using System.Linq;
@@ -190,8 +190,7 @@ namespace VEPROMS
txtExport.Text = sfd.FileName;
if (File.Exists(txtExport.Text))
File.Delete(txtExport.Text);
MyExpxZipFile = new ZipFile(txtExport.Text, Encoding.UTF8);
MyExpxZipFile.Save();
MyExpZipFileName = txtExport.Text;
}
}
else if (MyProcedure != null)
@@ -208,8 +207,8 @@ namespace VEPROMS
else
lblExportStatus.Text = "Awaiting Export File Name:";
}
private ZipFile MyExpxZipFile = null;
private ZipFile MyImpxZipFile = null;
private string MyExpZipFileName = null;
private string MyImpZipFileName = null;
private DateTime MyStart;
private bool successfullExport = true;
@@ -721,28 +720,9 @@ namespace VEPROMS
ImportProcedureNew(xd);
isImported = true;
}
//if (isImported && UCFImportCase == E_UCFImportOptions.LoadForSetOnly) UpdateFormatForUCFInSet();
return true;// Import Suceeded
}
//private void UpdateFormatForUCFInSet()
//{
// // this gets called if the UCFImportCase == LoadForSetOnly, i.e. only items in this PROCEDURE Set whose formats point to a
// // UCF format should point to the updated (copied) UCF format.
// if (renamedUCFFormatId == null) return;
// foreach (int key in renamedUCFFormatId.Keys)
// {
// using (ContentInfoList cil = ContentInfoList.FixFormatIDAfterImport(MyDocVersion.VersionID.ToString(), renamedUCFFormatId[key], key))
// {
// foreach (ContentInfo ci in cil)
// {
// using (Content c = ci.Get())
// {
// ContentInfo.Refresh(c);
// }
// }
// }
// }
//}
// Added Error Handling to assure that Change Manager is turned-on regardless of success or failure of the import
// B2019-046: improved error handling (added return value & error message)
private bool TryToLoadImportDataDocument()
@@ -888,11 +868,17 @@ namespace VEPROMS
return true;
}
private bool LoadImportDataDocument()
{
using (FileStream zipToOpen = new FileStream(MyExpZipFileName, FileMode.OpenOrCreate))
{
using (ZipArchive MyExpxZipFile = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
{
floatFoldout = new Dictionary<int, int>();
ZipEntry ze = MyExpxZipFile[0];
string fn = PEIPath + @"\" + ze.FileName;
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
ZipArchiveEntry ze = MyExpxZipFile.Entries[0];
if (!Directory.Exists(Path.Combine(PEIPath, "folder")))
Directory.CreateDirectory(Path.Combine(PEIPath, "folder"));
string fn = Path.Combine(PEIPath, "folder", ze.Name);
ze.ExtractToFile(fn, true);
XmlDocument xd = new XmlDocument();
xd.Load(fn);
bool didImp = LoadFormats(xd, "folder/formats/format");
@@ -915,6 +901,7 @@ namespace VEPROMS
{
string number = "";
int max = -1;
MyFolder.RefreshChildFolders();
// get maximum number of existing copies.
foreach (FolderInfo fi in MyFolder.ChildFolders)
{
@@ -948,11 +935,13 @@ namespace VEPROMS
ProcedureInfo pi = null;
pbImportProcedure.Value = 0;
pbImportProcedure.Maximum = MyExpxZipFile.Entries.Count - 1;
if (!Directory.Exists(Path.Combine(PEIPath, "procedures")))
Directory.CreateDirectory(Path.Combine(PEIPath, "procedures"));
for (int i = 1; i < MyExpxZipFile.Entries.Count; i++)
{
ze = MyExpxZipFile[i];
fn = PEIPath + @"\" + ze.FileName;
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
ze = MyExpxZipFile.Entries[i];
fn = Path.Combine(PEIPath, "procedures", ze.Name);
ze.ExtractToFile(fn, true);
xd = new XmlDocument();
xd.Load(fn);
pi = AddProcedure(xd.DocumentElement, dvi, pi);
@@ -968,6 +957,8 @@ namespace VEPROMS
SaveTransitionAndItemContentIDs();
return true;
}
}
}
private void FixSectionStart(ProcedureInfo pi)
{
Content c = Content.Get(pi.MyContent.ContentID);
@@ -1011,8 +1002,6 @@ namespace VEPROMS
c.Save();
}
}
//private E_UCFImportOptions UCFImportDefaultFromSettings;
//private E_UCFImportOptions UCFImportCase = E_UCFImportOptions.LoadOnlyImported;
Dictionary<string, string> existingCopyFCName = new Dictionary<string, string>();
// note that this is used when importing a folder or a procedure (procedure was added for UCF changes)
private bool LoadFormats(XmlDocument xd, string xmlpath)
@@ -1113,102 +1102,12 @@ namespace VEPROMS
// various cases listed above:
if (existingFormat.ContainsKey(name))
{
//// if case 0 and this ucf already exists, ignore it:
//if (UCFImportCase == E_UCFImportOptions.Ignore) continue;
//// if case 1, 2, 4 and the name exists, make a 'copy' of the newly imported format:
//// need to add this format - name must be unique so add 'COPY(x) of 'original name'' where x is unique number:
//if (UCFImportCase == E_UCFImportOptions.LoadNotUsed || UCFImportCase == E_UCFImportOptions.LoadOnlyImported || UCFImportCase == E_UCFImportOptions.LoadForSetOnly)
//{
// int count = (fil.Where(fi => fi.Name.EndsWith(name))).Count();
// if (count > 0)
// {
// string origname = name;
// name = string.Format("Copy {0} of {1}", count.ToString(), name);
// if (UCFImportCase == E_UCFImportOptions.LoadOnlyImported || UCFImportCase == E_UCFImportOptions.LoadForSetOnly)
// {
// if (renamedUCFFormatName == null) renamedUCFFormatName = new Dictionary<string, string>();
// renamedUCFFormatName.Add(origname, name);
// }
// }
//}
// if case 3, take the existing config data and create in a record whose name is Old(x) of 'original name' (the record
// creation gets done below). Then modify the existing record to have the config data. The result is that any
// sections that used this UCF throughout the database will have the new config data.
//if (UCFImportCase == E_UCFImportOptions.LoadUseAll)
//{
// string savname = name;
// int count = (fil.Where(fi => fi.Name.EndsWith(name))).Count();
// if (count > 0)
// {
// name = string.Format("Old {0} of {1}", count.ToString(), name);
// }
// // update the 'old' record by getting the original config data.
// string savdesc = null;
// DateTime savdts = DateTime.Now;
// string savuid = null;
// int savpar = 0;
// string savconfig = null;
// using (Format origRecord = Format.Get(existingFormat[savname]))
// {
// savdesc = origRecord.Description;
// savdts = origRecord.DTS;
// savuid = origRecord.UserID;
// savpar = origRecord.ParentID;
// savconfig = origRecord.Config;
// origRecord.Name = savname;
// origRecord.Description = description;
// origRecord.DTS = dts;
// origRecord.UserID = userid;
// origRecord.MyParent = pformat;
// origRecord.Config = config;
// origRecord.Save();
// description = savdesc;
// dts = savdts;
// userid = savuid;
// pformat = Format.Get(savpar);
// config = savconfig;
// }
//}
}
//if (UCFImportCase == 0) // ignore it
//{
importedFormat.Add(formatid, name);
//}
//else
//{
// Format rec = Format.MakeFormat(pformat, name, description, null, null, dts, userid);
// rec.Config = config;
// rec.Save();
// if (UCFImportCase == E_UCFImportOptions.LoadNotUsed || UCFImportCase == E_UCFImportOptions.LoadUseAll) // don't reset format id (case 1 don't use it, case 3 copies new data into original record
// importedFormat.Add(formatid, name);
// else if (UCFImportCase == E_UCFImportOptions.LoadOnlyImported || UCFImportCase == E_UCFImportOptions.LoadForSetOnly) // case 2 uses it for any items imported, case 4 uses it for any sections within current set
// {
// existingFormat.Add(name, rec.FormatID); // change to original name?
// importedFormat.Add(rec.FormatID, name);
// // get format id for the original named format
// if (UCFImportCase == E_UCFImportOptions.LoadForSetOnly && renamedUCFFormatName != null)
// {
// int origformatid = -1;
// foreach (var kvp in renamedUCFFormatName)
// {
// if (kvp.Value == name)
// {
// origformatid = existingFormat[kvp.Key];
// break;
// }
// }
// if (origformatid != -1)
// {
// if (renamedUCFFormatId == null) renamedUCFFormatId = new Dictionary<int, int>();
// renamedUCFFormatId.Add(rec.FormatID, origformatid);
// }
// }
// }
//}
importedFormat.Add(formatid, name);
}
FormatInfoList.Reset();
return true;
@@ -1233,6 +1132,10 @@ namespace VEPROMS
// This will create and save the ItemIDs (old and new), ContentIDs (old andnew), library document IDs (old and new), and pending transitions each in their own xml file
// the xml files are then added (or replaced) in the .impx file.
private void SaveTransitionAndItemContentIDs()
{
using (FileStream zipToOpen = new FileStream(MyImpZipFileName, FileMode.OpenOrCreate))
{
using (ZipArchive MyImpxZipFile = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
{
XmlDocument xd = new XmlDocument();
XmlElement xe = xd.CreateElement("items");
@@ -1246,11 +1149,9 @@ namespace VEPROMS
xd.DocumentElement.AppendChild(xe);
}
xd.Save(fn);
ZipEntry ze = MyImpxZipFile["items.xml"];
MyImpxZipFile.RemoveEntry(ze);
MyImpxZipFile.Save();
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
ZipArchiveEntry ze = MyImpxZipFile.GetEntry("items.xml");
ze.Delete();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
xd = new XmlDocument();
xe = xd.CreateElement("contents");
@@ -1264,11 +1165,9 @@ namespace VEPROMS
xd.DocumentElement.AppendChild(xe);
}
xd.Save(fn);
ze = MyImpxZipFile["contents.xml"];
MyImpxZipFile.RemoveEntry(ze);
MyImpxZipFile.Save();
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
ze = MyImpxZipFile.GetEntry("contents.xml");
ze.Delete();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
xd = new XmlDocument();
xe = xd.CreateElement("transitions");
@@ -1283,36 +1182,36 @@ namespace VEPROMS
}
}
xd.Save(fn);
ze = MyImpxZipFile["transitions.xml"];
MyImpxZipFile.RemoveEntry(ze);
MyImpxZipFile.Save();
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
ze = MyImpxZipFile.GetEntry("transitions.xml");
ze.Delete();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
}
}
}
// This is called only when we are importing an entire folder and there is a .impx file (a zip file)
// the name of the .impx file is based on the folder name containing the export file being imported
// This will read in the saved ItemIDs (old and new), ContentIDs (old andnew), library document IDs (old and new), and pending transitions
private void ReadTransitionAndItemContentIDs()
private void ReadTransitionAndItemContentIDs(ZipArchive MyImpxZipFile)
{
ZipEntry ze = MyImpxZipFile["items.xml"];
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
ZipArchiveEntry ze = MyImpxZipFile.GetEntry("items.xml");
string fn = PEIPath + @"\items.xml";
ze.ExtractToFile(fn, true);
XmlDocument xd = new XmlDocument();
xd.Load(fn);
// B2016-176, B2016-197 Transitions were no always properly resolved - don't load in the old item ids
File.Delete(fn);
ze = MyImpxZipFile["contents.xml"];
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
ze = MyImpxZipFile.GetEntry("contents.xml");
fn = PEIPath + @"\contents.xml";
ze.ExtractToFile(fn, true);
xd = new XmlDocument();
xd.Load(fn);
// B2016-176, B2016-197 Transitions were no always properly resolved - don't load in the old content ids
File.Delete(fn);
ze = MyImpxZipFile["libdocs.xml"];
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
ze = MyImpxZipFile.GetEntry("libdocs.xml");
fn = PEIPath + @"\libdocs.xml";
ze.ExtractToFile(fn, true);
xd = new XmlDocument();
xd.Load(fn);
XmlNodeList nl = xd.SelectNodes("//libdoc");
@@ -1324,9 +1223,9 @@ namespace VEPROMS
Old2NewLibDoc.Add(oldid, newid);
}
File.Delete(fn);
ze = MyImpxZipFile["transitions.xml"];
ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently);
ze = MyImpxZipFile.GetEntry("transitions.xml");
fn = PEIPath + @"\transitions.xml";
ze.ExtractToFile(fn, true);
PendingTransitions.Load(fn);
File.Delete(fn);
}
@@ -1354,25 +1253,26 @@ namespace VEPROMS
else
dn = fi.Name.Substring(0, fi.Name.IndexOf("."));
txtImport.Text = ofd.FileName;
ReadOptions ro = new ReadOptions();
ro.Encoding = Encoding.UTF8;
MyExpxZipFile = ZipFile.Read(txtImport.Text, ro);
MyExpZipFileName = txtImport.Text;
string fn = string.Format(@"{0}\{1}.impx", PEIPath, dn);
MyImpZipFileName = fn;
if (File.Exists(fn))
{
MyImpxZipFile = ZipFile.Read(fn, ro);
ReadTransitionAndItemContentIDs();
using (ZipArchive MyImpxZipFile = ZipFile.OpenRead(fn))
ReadTransitionAndItemContentIDs(MyImpxZipFile);
}
else
{
MyImpxZipFile = new ZipFile(fn, Encoding.UTF8);
using (FileStream zipToOpen = new FileStream(fn, FileMode.OpenOrCreate))
{
using (ZipArchive MyImpxZipFile = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
{
//transitions
XmlElement xe = PendingTransitions.CreateElement("transitions");
PendingTransitions.AppendChild(xe);
fn = PEIPath + @"\transitions.xml";
PendingTransitions.Save(fn);
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
//itemids
XmlDocument xd = new XmlDocument();
@@ -1380,8 +1280,7 @@ namespace VEPROMS
xd.AppendChild(xe);
fn = PEIPath + @"\items.xml";
xd.Save(fn);
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
//contentids
xd = new XmlDocument();
@@ -1389,8 +1288,7 @@ namespace VEPROMS
xd.AppendChild(xe);
fn = PEIPath + @"\contents.xml";
xd.Save(fn);
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
//libdocids
xd = new XmlDocument();
@@ -1398,11 +1296,12 @@ namespace VEPROMS
xd.AppendChild(xe);
fn = PEIPath + @"\libdocs.xml";
xd.Save(fn);
MyImpxZipFile.AddFile(fn, "");
MyImpxZipFile.Save();
_ = MyImpxZipFile.CreateEntryFromFile(fn, Path.GetFileName(fn));
File.Delete(fn);
}
}
}
}
if (MyDocVersion != null)
{
ofd.Filter = "PROMS Procedure Export Files|*.pxml";
@@ -1575,8 +1474,11 @@ namespace VEPROMS
ExportAssociation(xe, ai, "association");
string fn = PEIPath + @"\folder.xml";
xn.OwnerDocument.Save(fn);
MyExpxZipFile.AddFile(fn, "folder");
MyExpxZipFile.Save();
using (FileStream zipToOpen = new FileStream(MyExpZipFileName, FileMode.OpenOrCreate))
{
using (ZipArchive MyExpxZipFile = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
{
_ = MyExpxZipFile.CreateEntryFromFile(fn, $"folder/{Path.GetFileName(fn)}");
File.Delete(fn);
//here
lblExportStatus.Text = "Exporting Procedures...";
@@ -1592,13 +1494,14 @@ namespace VEPROMS
ExportItem(xd, ii, "procedure");
fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0'));
xd.Save(fn);
MyExpxZipFile.AddFile(fn, "procedures");
MyExpxZipFile.Save();
_ = MyExpxZipFile.CreateEntryFromFile(fn, $"procedures/{Path.GetFileName(fn)}");
File.Delete(fn);
xd = null;
}
}
}
}
}
private void ExportAssociation(XmlElement xn, AssociationInfo ai, string nodename)
{
/*
@@ -1819,12 +1722,14 @@ namespace VEPROMS
//and handled/overridden in dlgExportEP.cs
}
protected virtual void SetROLocation(ref XmlElement xindivid, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
protected virtual void SetEPEnhancedDocLinks(ref XmlElement xe, ItemInfo ii)
{
//do nothing - this will be for Electronic procedures only
//and handled/overridden in dlgExportEP.cs
}
protected virtual void SetEPEnhancedDocLinks(ref XmlElement xe, ItemInfo ii)
protected virtual void SetROLocation(ref XmlElement xindivid, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
{
//do nothing - this will be for Electronic procedures only
//and handled/overridden in dlgExportEP.cs

View File

@@ -0,0 +1,136 @@

namespace VEPROMS
{
partial class dlgPrintAllApprovedProcedures
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(dlgPrintAllApprovedProcedures));
this.txbApprovedPDFsPath = new DevComponents.DotNetBar.Controls.TextBoxX();
this.labelX1 = new DevComponents.DotNetBar.LabelX();
this.ppBtnPDFLoc = new DevComponents.DotNetBar.ButtonX();
this.ApprovedPDFsFolderDlg = new System.Windows.Forms.FolderBrowserDialog();
this.btnPrntAllAprv = new DevComponents.DotNetBar.ButtonX();
this.btnCancel = new DevComponents.DotNetBar.ButtonX();
this.SuspendLayout();
//
// txbApprovedPDFsPath
//
//
//
//
this.txbApprovedPDFsPath.Border.Class = "TextBoxBorder";
this.txbApprovedPDFsPath.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txbApprovedPDFsPath.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txbApprovedPDFsPath.Location = new System.Drawing.Point(11, 45);
this.txbApprovedPDFsPath.Name = "txbApprovedPDFsPath";
this.txbApprovedPDFsPath.PreventEnterBeep = true;
this.txbApprovedPDFsPath.Size = new System.Drawing.Size(611, 22);
this.txbApprovedPDFsPath.TabIndex = 0;
this.txbApprovedPDFsPath.WatermarkText = "Enter to Path of where to Place All Approved PDFs";
this.txbApprovedPDFsPath.TextChanged += new System.EventHandler(this.txbApprovedPDFsPath_TextChanged);
//
// labelX1
//
//
//
//
this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX1.Location = new System.Drawing.Point(12, 22);
this.labelX1.Name = "labelX1";
this.labelX1.Size = new System.Drawing.Size(360, 23);
this.labelX1.TabIndex = 1;
this.labelX1.Text = "Approved PDFs Location:";
//
// ppBtnPDFLoc
//
this.ppBtnPDFLoc.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.ppBtnPDFLoc.Image = ((System.Drawing.Image)(resources.GetObject("ppBtnPDFLoc.Image")));
this.ppBtnPDFLoc.Location = new System.Drawing.Point(627, 45);
this.ppBtnPDFLoc.Margin = new System.Windows.Forms.Padding(2);
this.ppBtnPDFLoc.Name = "ppBtnPDFLoc";
this.ppBtnPDFLoc.Size = new System.Drawing.Size(37, 22);
this.ppBtnPDFLoc.TabIndex = 32;
this.ppBtnPDFLoc.Click += new System.EventHandler(this.ppBtnPDFLoc_Click);
//
// btnPrntAllAprv
//
this.btnPrntAllAprv.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnPrntAllAprv.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnPrntAllAprv.Enabled = false;
this.btnPrntAllAprv.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnPrntAllAprv.Location = new System.Drawing.Point(397, 120);
this.btnPrntAllAprv.Name = "btnPrntAllAprv";
this.btnPrntAllAprv.Size = new System.Drawing.Size(132, 26);
this.btnPrntAllAprv.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnPrntAllAprv.TabIndex = 33;
this.btnPrntAllAprv.Text = "Print All Approved";
this.btnPrntAllAprv.Click += new System.EventHandler(this.btnPrntAllAprv_Click);
//
// btnCancel
//
this.btnCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnCancel.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnCancel.Location = new System.Drawing.Point(564, 120);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(99, 26);
this.btnCancel.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnCancel.TabIndex = 34;
this.btnCancel.Text = "Close";
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// dlgPrintAllApprovedProcedures
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(675, 161);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnPrntAllAprv);
this.Controls.Add(this.ppBtnPDFLoc);
this.Controls.Add(this.labelX1);
this.Controls.Add(this.txbApprovedPDFsPath);
this.Cursor = System.Windows.Forms.Cursors.Default;
this.DoubleBuffered = true;
this.Name = "dlgPrintAllApprovedProcedures";
this.ShowIcon = false;
this.Text = "Print All Approved Procedures";
this.ResumeLayout(false);
}
#endregion
private DevComponents.DotNetBar.Controls.TextBoxX txbApprovedPDFsPath;
private DevComponents.DotNetBar.LabelX labelX1;
private DevComponents.DotNetBar.ButtonX ppBtnPDFLoc;
private System.Windows.Forms.FolderBrowserDialog ApprovedPDFsFolderDlg;
private DevComponents.DotNetBar.ButtonX btnPrntAllAprv;
private DevComponents.DotNetBar.ButtonX btnCancel;
}
}

View File

@@ -0,0 +1,202 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using VEPROMS.CSLA.Library;
using JR.Utils.GUI.Forms;
namespace VEPROMS
{
public partial class dlgPrintAllApprovedProcedures : DevComponents.DotNetBar.Office2007Form
{
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private StringBuilder NotApproved;
private DocVersionInfo _DocVersionInfo = null;
private int unitId = 0;
public dlgPrintAllApprovedProcedures(DocVersionInfo dvi)
{
InitializeComponent();
_DocVersionInfo = dvi;
unitId = (_DocVersionInfo.DocVersionConfig.SelectedSlave < 0) ? 0 : _DocVersionInfo.DocVersionConfig.SelectedSlave; // set unitId to zero if not Parent/Child
NotApproved = new StringBuilder();
txbApprovedPDFsPath.Text = BuildInitialPDFPath(); // set to default approved PDF path
}
// create an approved PDFs path based on the user's Documents folder and the tree path to the working draft
private string BuildInitialPDFPath()
{
// start with the SearchDVPath which is the node path staring with the top of the PROMS Procedure tree (VEPROMS)
string rtnstr = _DocVersionInfo.ActiveParent.SearchDVPath;
// remove top tree node (VEPROMS) and put a " - " between each tree node name
rtnstr = rtnstr.Substring(rtnstr.IndexOf("\a") + 1).Replace("\a", " - ");
// add the user's path to the My Documments folder to the start of the path
rtnstr = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + rtnstr;
// check if we are printing Approved Child Procedures
// if SelectedSlave is > 0 then we are printing Approved Child Procedures and
// subtract one from the index (unitId) into the list of child names (UnitNames)
if (unitId > 0)
rtnstr += "\\" + _DocVersionInfo.UnitNames[unitId - 1]; // append Child name to path
return rtnstr;
}
private void ppBtnPDFLoc_Click(object sender, EventArgs e)
{
if (txbApprovedPDFsPath.Text.Length > 0)
ApprovedPDFsFolderDlg.SelectedPath = txbApprovedPDFsPath.Text;
DialogResult dr = ApprovedPDFsFolderDlg.ShowDialog();
if (dr == DialogResult.OK)
{
txbApprovedPDFsPath.Text = ApprovedPDFsFolderDlg.SelectedPath;
}
}
private bool FolderIsWritable(string dirPath)
{
try
{
using (FileStream fs = File.Create(Path.Combine(dirPath, Path.GetRandomFileName()), 1, FileOptions.DeleteOnClose))
{ }
return true;
}
catch
{
return false;
}
}
private void btnPrntAllAprv_Click(object sender, EventArgs e)
{
try
{
// Create folder if needed, clear the folder
if (!Directory.Exists(txbApprovedPDFsPath.Text))
Directory.CreateDirectory(txbApprovedPDFsPath.Text);
// check if the folder location is writable
if (!FolderIsWritable(txbApprovedPDFsPath.Text))
{
MessageBox.Show("Cannot Write to this folder.\n\nSelect a different location.", "Invalid Folder Access", MessageBoxButtons.OK, MessageBoxIcon.Error);
btnPrntAllAprv.Enabled = false;
}
else
{
int pdfCount = 0;
DeleteExistingPDFs(); // delete existing PDFs in the target folder
// Get the Child index for Parent/Child procedure - if not Parent/Child this will be zero
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures)
{
RevisionInfoList ril = RevisionInfoList.GetByItemID(myProc.ItemID);
if (ril.Count == 0)
{
NotApproved.AppendLine(string.Format("No approved Version for {0}", (myProc.PDFNumber.Length > 0) ? myProc.PDFNumber : myProc.DisplayText));
}
else
{
bool foundApproved = false;
foreach (RevisionInfo revinfo in ril)
{
// if not Parent/Child, "unitId" and "Applicability_index" will be zero
if (unitId == revinfo.MyConfig.Applicability_Index)
{
if (revinfo.LatestVersion.MyStage.IsApproved > 0)
{
foundApproved = true;
ItemInfo ii = ItemInfo.Get(revinfo.ItemID);
ii.MyDocVersion.DocVersionConfig.SelectedSlave = unitId;
ProcedureInfo prcInfo = ProcedureInfo.Get(ii.ItemID);
SaveApprovedPDFToFolder(revinfo, prcInfo.PDFNumber);// save PDF to folder
pdfCount++;
break; // got the latest Approved - jump out of foreach revision info loop
}
}
}
if (!foundApproved) NotApproved.AppendLine(string.Format("No approved Version for {0}", myProc.PDFNumber));
}
}
// if no Approved PDFs were save, display general message and exit
if (pdfCount == 0)
{
string msg = "There are no Approved Procedure PDFs in this procedure set.\n\n Approved Procedures PDFs are created when a procedure is approved using the PROMS Approval function.";
FlexibleMessageBox.Show(msg, "Print PDFs Completed", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else // we saved some approved PDFs tell user how many were saved and list procedures that were not approved
{
string msg = string.Format("{0} PDFs were saved at\n\n{1}", pdfCount, txbApprovedPDFsPath.Text);
if (NotApproved.Length > 0)
{
msg += string.Format("\n\n--------------------------------------------\n\nPDFs for the Following were not Generated:\n\n{0}", NotApproved.ToString());
}
FlexibleMessageBox.Show(msg, "Print PDFs Completed", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
catch (Exception ex)
{
_MyLog.Error("Print All Approved PDFs", ex);// save error in PROMS error log
MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
this.Close(); // close dialog
}
private void SaveApprovedPDFToFolder(RevisionInfo revInfo,string PDFName)
{
byte[] buffer = revInfo.LatestVersion.PDF;
string PDFFilePath = string.Format("{0}\\{1}.PDF", txbApprovedPDFsPath.Text, PDFName);
try
{
FileStream fs = new FileStream(PDFFilePath, FileMode.Create);
fs.Write(buffer, 0, buffer.Length);
fs.Close();
}
catch (Exception ex)
{
string str = string.Format("Could not create {0}", PDFFilePath);
NotApproved.AppendLine(str); // save to list of procedure that were not approved
_MyLog.Info(str, ex);// save error in PROMS error log
}
}
private void DeleteExistingPDFs()
{
DirectoryInfo di = new DirectoryInfo(txbApprovedPDFsPath.Text);
FileInfo[] fis;
//DirectoryInfo[] diAry = di.GetDirectories(txbApprovedPDFsPath.Text);
//DirectoryInfo di_fmtgen;
// remove all of the PDF fils
//di_fmtgen = diAry[0];
try
{
fis = di.GetFiles("*.pdf");
foreach (FileInfo fi in fis)
{
if (fi.IsReadOnly) fi.IsReadOnly = false;
fi.Delete();
}
}
catch (Exception ex)
{
string str = string.Format("Cannot delete files in {0}", txbApprovedPDFsPath.Text);
MessageBox.Show(str, "Error deleting files", MessageBoxButtons.OK, MessageBoxIcon.Error);
_MyLog.Info(str, ex); // save error in PROMS error log
}
}
private void txbApprovedPDFsPath_TextChanged(object sender, EventArgs e)
{
btnPrntAllAprv.Enabled = txbApprovedPDFsPath.Text.Length > 0;
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

View File

@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ppBtnPDFLoc.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACc0lE
QVQ4T6WSWUjUURSH/w899GSRGoVgZIlYIAaGVA8hSouaUm6FkiaUWyWGYq7NuM7oLI46pWLOqNOoo5Wl
GFYIhSIRWi6UmJoFhaWYGiq5feFIg9tL9fDBvYf7+ziccwVA+B82FDYjs1DnKlbpuSktJ1ttIEmmTf4r
QUisGp8IedDy+VpCmWWaSk9chsYvOLYQoU6nDKjTKVlPU41Evl70h8ikojO+UXK8I/KMAvq7tcxO1Br5
Na5nflSDoVxOvS4jbX14GZ9IBd7hKjzDChBqKxTMjFetCS+OFDHfG0NVmZTK4iw0hWmU5KVyR5ZIgSSe
1TKhWpvLzHetKbw0UgT9idAbtikbBPdKJfz8WmIKN9flGnliyKFBL+FhZRYGTTr6EjHl6lvcVSVTrEhE
nZtglAmVJVlMfco3tj3UKqK+SsHikBiGM9byUQyDSdAXC++i6KrxJzrUq0LQqNOZHJDCZxmPquW0P5Wt
PFrd+ttg6PBloc2D2WcufKhw4OrFk5PRoV4HhVKViB/vxQy3pVCvl7E0KIKe8JVgVyh0nGeh3YvZlhNM
NR1jrO4Q4ghbLrhZ5BlnUKRIYaw7gfu6XDpfSqEvBnouQ2cQS6/OMvfiNNPNxxmvd+JbtT0dmdsJ9LDB
yc7MzihQ5yTS05LKA10ODKTCm2B47cdcqyfTz12YaHBm1ODAF+1+emXmiML24XjAqtG0hfzseGrLpfQ+
jqRDKZhol22hRbKVxrRt1CRboom34vaNPQS6711ydrR2NwmUGXEoRVfITggh6XrA8mS55O/GuVNHcD3q
wGEHW+xtrLDebcHOHWbsMjdb+w9WX/6F370P0Tty1Sp4AAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ApprovedPDFsFolderDlg.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -70,17 +70,6 @@
this.labelX6 = new DevComponents.DotNetBar.LabelX();
this.warningBox1 = new DevComponents.DotNetBar.Controls.WarningBox();
this.btnFixLinks = new DevComponents.DotNetBar.ButtonX();
this.sideNavPanel1 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.warningBox3 = new DevComponents.DotNetBar.Controls.WarningBox();
this.labelX7 = new DevComponents.DotNetBar.LabelX();
this.line1 = new DevComponents.DotNetBar.Controls.Line();
this.swCkObsoleteROData = new DevComponents.DotNetBar.Controls.SwitchButton();
this.swHiddenDataLocs = new DevComponents.DotNetBar.Controls.SwitchButton();
this.labelX3 = new DevComponents.DotNetBar.LabelX();
this.labelX2 = new DevComponents.DotNetBar.LabelX();
this.swCkOrphanDataRecs = new DevComponents.DotNetBar.Controls.SwitchButton();
this.labelX1 = new DevComponents.DotNetBar.LabelX();
this.btnRunCheck = new DevComponents.DotNetBar.ButtonX();
this.sideNavPanel2 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.swRefreshTblsForSrch = new DevComponents.DotNetBar.Controls.SwitchButton();
this.lblRefreshTblForSrch = new DevComponents.DotNetBar.LabelX();
@@ -97,14 +86,10 @@
this.labelX8 = new DevComponents.DotNetBar.LabelX();
this.line2 = new DevComponents.DotNetBar.Controls.Line();
this.btnRunRepair = new DevComponents.DotNetBar.ButtonX();
this.sideNavPanel5 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.btn_ShowUsers = new DevComponents.DotNetBar.ButtonX();
this.sideNavItem1 = new DevComponents.DotNetBar.Controls.SideNavItem();
this.separator1 = new DevComponents.DotNetBar.Separator();
this.sideNavItmCheck = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmRepair = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmLinks = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmUsers = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmDelete = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmExit = new DevComponents.DotNetBar.Controls.SideNavItem();
this.panelEx4 = new DevComponents.DotNetBar.PanelEx();
@@ -129,9 +114,7 @@
this.sideNav1.SuspendLayout();
this.sideNavPanel4.SuspendLayout();
this.sideNavPanel3.SuspendLayout();
this.sideNavPanel1.SuspendLayout();
this.sideNavPanel2.SuspendLayout();
this.sideNavPanel5.SuspendLayout();
this.panelEx4.SuspendLayout();
this.SuspendLayout();
//
@@ -467,21 +450,17 @@
// sideNav1
//
this.sideNav1.BackColor = System.Drawing.SystemColors.Control;
this.sideNav1.Controls.Add(this.sideNavPanel2);
this.sideNav1.Controls.Add(this.sideNavPanel4);
this.sideNav1.Controls.Add(this.sideNavPanel3);
this.sideNav1.Controls.Add(this.sideNavPanel1);
this.sideNav1.Controls.Add(this.sideNavPanel2);
this.sideNav1.Controls.Add(this.sideNavPanel5);
this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNav1.EnableClose = false;
this.sideNav1.EnableMaximize = false;
this.sideNav1.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] {
this.sideNavItem1,
this.separator1,
this.sideNavItmCheck,
this.sideNavItmRepair,
this.sideNavItmLinks,
this.sideNavItmUsers,
this.sideNavItmDelete,
this.sideNavItmExit});
this.sideNav1.Location = new System.Drawing.Point(0, 0);
@@ -505,6 +484,7 @@
this.sideNavPanel4.Name = "sideNavPanel4";
this.sideNavPanel4.Size = new System.Drawing.Size(299, 493);
this.sideNavPanel4.TabIndex = 27;
this.sideNavPanel4.Visible = false;
//
// swDeleteFolder
//
@@ -759,173 +739,6 @@
this.btnFixLinks.Text = "Process Links";
this.btnFixLinks.Click += new System.EventHandler(this.btnFixLinks_Click);
//
// sideNavPanel1
//
this.sideNavPanel1.Controls.Add(this.warningBox3);
this.sideNavPanel1.Controls.Add(this.labelX7);
this.sideNavPanel1.Controls.Add(this.line1);
this.sideNavPanel1.Controls.Add(this.swCkObsoleteROData);
this.sideNavPanel1.Controls.Add(this.swHiddenDataLocs);
this.sideNavPanel1.Controls.Add(this.labelX3);
this.sideNavPanel1.Controls.Add(this.labelX2);
this.sideNavPanel1.Controls.Add(this.swCkOrphanDataRecs);
this.sideNavPanel1.Controls.Add(this.labelX1);
this.sideNavPanel1.Controls.Add(this.btnRunCheck);
this.sideNavPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel1.Location = new System.Drawing.Point(89, 31);
this.sideNavPanel1.Name = "sideNavPanel1";
this.sideNavPanel1.Size = new System.Drawing.Size(291, 494);
this.sideNavPanel1.TabIndex = 2;
this.sideNavPanel1.Visible = false;
//
// warningBox3
//
this.warningBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
this.warningBox3.CloseButtonVisible = false;
this.warningBox3.Image = ((System.Drawing.Image)(resources.GetObject("warningBox3.Image")));
this.warningBox3.Location = new System.Drawing.Point(17, 207);
this.warningBox3.Margin = new System.Windows.Forms.Padding(4);
this.warningBox3.Name = "warningBox3";
this.warningBox3.OptionsButtonVisible = false;
this.warningBox3.Size = new System.Drawing.Size(264, 32);
this.warningBox3.TabIndex = 29;
this.warningBox3.Text = "<b>NOTE</b> These tools can take a long time to run";
//
// labelX7
//
this.labelX7.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX7.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX7.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX7.Location = new System.Drawing.Point(5, 3);
this.labelX7.Name = "labelX7";
this.labelX7.Size = new System.Drawing.Size(251, 22);
this.labelX7.TabIndex = 19;
this.labelX7.Text = "Check for these Data Issues:";
//
// line1
//
this.line1.BackColor = System.Drawing.Color.Transparent;
this.line1.Location = new System.Drawing.Point(8, 179);
this.line1.Name = "line1";
this.line1.Size = new System.Drawing.Size(285, 12);
this.line1.TabIndex = 18;
this.line1.Text = "line1";
//
// swCkObsoleteROData
//
//
//
//
this.swCkObsoleteROData.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swCkObsoleteROData.Location = new System.Drawing.Point(10, 99);
this.swCkObsoleteROData.Name = "swCkObsoleteROData";
this.swCkObsoleteROData.Size = new System.Drawing.Size(91, 22);
this.swCkObsoleteROData.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swCkObsoleteROData, new DevComponents.DotNetBar.SuperTooltipInfo("Obsolete RO Data", "", resources.GetString("swCkObsoleteROData.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 135)));
this.swCkObsoleteROData.SwitchClickTogglesValue = true;
this.swCkObsoleteROData.TabIndex = 14;
this.swCkObsoleteROData.Value = true;
this.swCkObsoleteROData.ValueObject = "Y";
this.swCkObsoleteROData.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
//
// swHiddenDataLocs
//
//
//
//
this.swHiddenDataLocs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swHiddenDataLocs.Location = new System.Drawing.Point(10, 71);
this.swHiddenDataLocs.Name = "swHiddenDataLocs";
this.swHiddenDataLocs.Size = new System.Drawing.Size(91, 22);
this.swHiddenDataLocs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swHiddenDataLocs, new DevComponents.DotNetBar.SuperTooltipInfo("Hidden Data Locations", "", resources.GetString("swHiddenDataLocs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.swHiddenDataLocs.SwitchClickTogglesValue = true;
this.swHiddenDataLocs.TabIndex = 15;
this.swHiddenDataLocs.Value = true;
this.swHiddenDataLocs.ValueObject = "Y";
this.swHiddenDataLocs.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
//
// labelX3
//
this.labelX3.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX3.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX3.Location = new System.Drawing.Point(107, 99);
this.labelX3.Name = "labelX3";
this.labelX3.Size = new System.Drawing.Size(154, 22);
this.superTooltip1.SetSuperTooltip(this.labelX3, new DevComponents.DotNetBar.SuperTooltipInfo("Obsolete RO Data", "", resources.GetString("labelX3.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 135)));
this.labelX3.TabIndex = 11;
this.labelX3.Text = "Obsolete RO Data";
//
// labelX2
//
this.labelX2.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX2.Location = new System.Drawing.Point(107, 71);
this.labelX2.Name = "labelX2";
this.labelX2.Size = new System.Drawing.Size(140, 22);
this.superTooltip1.SetSuperTooltip(this.labelX2, new DevComponents.DotNetBar.SuperTooltipInfo("Hidden Data Locations", "", resources.GetString("labelX2.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.labelX2.TabIndex = 12;
this.labelX2.Text = "Hidden Data Locations";
//
// swCkOrphanDataRecs
//
//
//
//
this.swCkOrphanDataRecs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swCkOrphanDataRecs.Location = new System.Drawing.Point(10, 43);
this.swCkOrphanDataRecs.Name = "swCkOrphanDataRecs";
this.swCkOrphanDataRecs.Size = new System.Drawing.Size(91, 22);
this.swCkOrphanDataRecs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swCkOrphanDataRecs, new DevComponents.DotNetBar.SuperTooltipInfo("Orphan Data Records", "", resources.GetString("swCkOrphanDataRecs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(275, 193)));
this.swCkOrphanDataRecs.SwitchClickTogglesValue = true;
this.swCkOrphanDataRecs.TabIndex = 9;
this.swCkOrphanDataRecs.Value = true;
this.swCkOrphanDataRecs.ValueObject = "Y";
this.swCkOrphanDataRecs.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
//
// labelX1
//
this.labelX1.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX1.Location = new System.Drawing.Point(107, 43);
this.labelX1.Name = "labelX1";
this.labelX1.Size = new System.Drawing.Size(172, 22);
this.superTooltip1.SetSuperTooltip(this.labelX1, new DevComponents.DotNetBar.SuperTooltipInfo("Orphan Data Records", "", resources.GetString("labelX1.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(275, 190)));
this.labelX1.TabIndex = 8;
this.labelX1.Text = "Orphan Data Records";
//
// btnRunCheck
//
this.btnRunCheck.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnRunCheck.Checked = true;
this.btnRunCheck.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnRunCheck.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnRunCheck.Location = new System.Drawing.Point(5, 150);
this.btnRunCheck.Name = "btnRunCheck";
this.btnRunCheck.Size = new System.Drawing.Size(286, 23);
this.btnRunCheck.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.btnRunCheck, new DevComponents.DotNetBar.SuperTooltipInfo("Run Check", "", "This will run the database check tools selected.\r\n\r\nClick on the on/off switches " +
"to turn on/off each tool.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 100)));
this.btnRunCheck.TabIndex = 7;
this.btnRunCheck.Text = "Run Check";
this.btnRunCheck.Click += new System.EventHandler(this.btnRunCheck_Click);
//
// sideNavPanel2
//
this.sideNavPanel2.Controls.Add(this.swRefreshTblsForSrch);
@@ -944,11 +757,10 @@
this.sideNavPanel2.Controls.Add(this.line2);
this.sideNavPanel2.Controls.Add(this.btnRunRepair);
this.sideNavPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel2.Location = new System.Drawing.Point(89, 31);
this.sideNavPanel2.Location = new System.Drawing.Point(81, 31);
this.sideNavPanel2.Name = "sideNavPanel2";
this.sideNavPanel2.Size = new System.Drawing.Size(291, 494);
this.sideNavPanel2.Size = new System.Drawing.Size(299, 493);
this.sideNavPanel2.TabIndex = 6;
this.sideNavPanel2.Visible = false;
//
// swRefreshTblsForSrch
//
@@ -1176,31 +988,6 @@
this.btnRunRepair.Text = "Run Repair";
this.btnRunRepair.Click += new System.EventHandler(this.btnRunRepair_Click);
//
// sideNavPanel5
//
this.sideNavPanel5.Controls.Add(this.btn_ShowUsers);
this.sideNavPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel5.Location = new System.Drawing.Point(81, 31);
this.sideNavPanel5.Name = "sideNavPanel5";
this.sideNavPanel5.Size = new System.Drawing.Size(299, 494);
this.sideNavPanel5.TabIndex = 14;
this.sideNavPanel5.Visible = false;
//
// btn_ShowUsers
//
this.btn_ShowUsers.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btn_ShowUsers.Checked = true;
this.btn_ShowUsers.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btn_ShowUsers.Location = new System.Drawing.Point(57, 37);
this.btn_ShowUsers.Name = "btn_ShowUsers";
this.btn_ShowUsers.Size = new System.Drawing.Size(171, 23);
this.btn_ShowUsers.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.btn_ShowUsers, new DevComponents.DotNetBar.SuperTooltipInfo("Show Users", "", "This will return all of the users currently with open sessions in the database an" +
"d the details of any items they have checked out.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 80)));
this.btn_ShowUsers.TabIndex = 0;
this.btn_ShowUsers.Text = "Show Users";
this.btn_ShowUsers.Click += new System.EventHandler(this.btn_ShowUsers_Click);
//
// sideNavItem1
//
this.sideNavItem1.IsSystemMenu = true;
@@ -1218,16 +1005,9 @@
this.separator1.Padding.Top = 2;
this.separator1.SeparatorOrientation = DevComponents.DotNetBar.eDesignMarkerOrientation.Vertical;
//
// sideNavItmCheck
//
this.sideNavItmCheck.Name = "sideNavItmCheck";
this.sideNavItmCheck.Panel = this.sideNavPanel1;
this.sideNavItmCheck.Symbol = "";
this.sideNavItmCheck.Text = "Check";
this.sideNavItmCheck.Click += new System.EventHandler(this.sideNavItmCheck_Click);
//
// sideNavItmRepair
//
this.sideNavItmRepair.Checked = true;
this.sideNavItmRepair.Name = "sideNavItmRepair";
this.sideNavItmRepair.Panel = this.sideNavPanel2;
this.sideNavItmRepair.Symbol = "";
@@ -1242,17 +1022,8 @@
this.sideNavItmLinks.Text = "Links";
this.sideNavItmLinks.Click += new System.EventHandler(this.sideNavItmLinks_Click);
//
// sideNavItmUsers
//
this.sideNavItmUsers.Name = "sideNavItmUsers";
this.sideNavItmUsers.Panel = this.sideNavPanel5;
this.sideNavItmUsers.Symbol = "";
this.sideNavItmUsers.Text = "Users";
this.sideNavItmUsers.Click += new System.EventHandler(this.sideNavItmUsers_Click);
//
// sideNavItmDelete
//
this.sideNavItmDelete.Checked = true;
this.sideNavItmDelete.Name = "sideNavItmDelete";
this.sideNavItmDelete.Panel = this.sideNavPanel4;
this.sideNavItmDelete.Symbol = "";
@@ -1392,9 +1163,7 @@
this.sideNav1.PerformLayout();
this.sideNavPanel4.ResumeLayout(false);
this.sideNavPanel3.ResumeLayout(false);
this.sideNavPanel1.ResumeLayout(false);
this.sideNavPanel2.ResumeLayout(false);
this.sideNavPanel5.ResumeLayout(false);
this.panelEx4.ResumeLayout(false);
this.ResumeLayout(false);
@@ -1422,16 +1191,6 @@
private System.Windows.Forms.CheckBox chkLater;
private System.Windows.Forms.Label label4;
private DevComponents.DotNetBar.Controls.SideNav sideNav1;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel1;
private DevComponents.DotNetBar.LabelX labelX7;
private DevComponents.DotNetBar.Controls.Line line1;
private DevComponents.DotNetBar.Controls.SwitchButton swCkObsoleteROData;
private DevComponents.DotNetBar.Controls.SwitchButton swHiddenDataLocs;
private DevComponents.DotNetBar.LabelX labelX3;
private DevComponents.DotNetBar.LabelX labelX2;
private DevComponents.DotNetBar.Controls.SwitchButton swCkOrphanDataRecs;
private DevComponents.DotNetBar.LabelX labelX1;
private DevComponents.DotNetBar.ButtonX btnRunCheck;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel2;
private DevComponents.DotNetBar.Controls.SwitchButton swRmObsoleteROData;
private DevComponents.DotNetBar.Controls.SwitchButton swRefreshWordAttmts;
@@ -1444,16 +1203,12 @@
private DevComponents.DotNetBar.LabelX labelX8;
private DevComponents.DotNetBar.Controls.Line line2;
private DevComponents.DotNetBar.ButtonX btnRunRepair;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel5;
private DevComponents.DotNetBar.ButtonX btn_ShowUsers;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel3;
private DevComponents.DotNetBar.ButtonX btnFixLinks;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItem1;
private DevComponents.DotNetBar.Separator separator1;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmCheck;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmRepair;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmLinks;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmUsers;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmExit;
private DevComponents.DotNetBar.LabelX lblAdmToolProgressType;
private DevComponents.DotNetBar.ProgressSteps progressSteps1;
@@ -1473,7 +1228,6 @@
private DevComponents.DotNetBar.LabelX labelX6;
private DevComponents.DotNetBar.Controls.WarningBox warningBox5;
private DevComponents.DotNetBar.Controls.Line line3;
private DevComponents.DotNetBar.Controls.WarningBox warningBox3;
private DevComponents.DotNetBar.Controls.WarningBox warningBox4;
private DevComponents.DotNetBar.Controls.WarningBox warningBox2;
private DevComponents.DotNetBar.Controls.SwitchButton swRefreshTblsForSrch;

View File

@@ -34,8 +34,8 @@ namespace VEPROMS
_veProms = veProms;
// When opening Admin tools Check tab will be default.
this.sideNavItmCheck.Checked = true;
// When opening Admin tools Repair tab will be default.
this.sideNavItmRepair.Checked = true;
if (sideNavItmDelete.Checked)
{
@@ -95,7 +95,6 @@ namespace VEPROMS
int affectedRows = ESP_FixHyphens.Execute("vesp_FixHyphens") / 2;// Two results for each change
txtProcess.AppendText(string.Format("Fixed {0} Hyphens", affectedRows));
txtProcess.AppendText(Environment.NewLine);
//txtProcess.AppendText(Environment.NewLine);
txtResults.AppendText(string.Format("{0} Hyphens were Fixed.", affectedRows));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
@@ -143,16 +142,10 @@ namespace VEPROMS
return false;
}
private List<string> myTreeNodePath;
private void ResetTV()
{
ResetTV(false);
}
private void ResetTV(bool noProcs)
{
btnFixLinks.Enabled = false;
this.Cursor = Cursors.WaitCursor;
//myTreeNodePath = new List<string>();
myTV.Nodes.Clear();
myDocVersions.Clear();
myFolders.Clear();
@@ -165,10 +158,6 @@ namespace VEPROMS
myTV.SelectedNode.Expand();
this.Cursor = Cursors.Default;
}
private void ResetDelTV()
{
ResetDelTV(false);
}
private void ResetDelTV(bool noProcs)
{
btnFixLinks.Enabled = false;
@@ -208,11 +197,8 @@ namespace VEPROMS
TreeNode tnc = tn.Nodes.Add(fic.Name);
tnc.Tag = fic;
if (fic.ChildFolderCount > 0)
{
if (LoadChildFolders(fic, tnc, noProcs))
if (fic.ChildFolderCount > 0 && LoadChildFolders(fic, tnc, noProcs))
loadedChildWorkingDraft = true;
}
if (fic.FolderDocVersionCount > 0)
{
@@ -252,11 +238,8 @@ namespace VEPROMS
{
tnc.Tag = dvi;
myDocVersions.Add(tnc, dvi);
if (!noProcs)
{
if (dvi.Procedures.Count > 0)
if (!noProcs && dvi.Procedures.Count > 0)
LoadProcedures(dvi, tnc);
}
rtnval = true;
}
else
@@ -273,7 +256,7 @@ namespace VEPROMS
}
private void LoadProcedures(DocVersionInfo dvi, TreeNode tnc)
{
foreach (ProcedureInfo pi in dvi.Procedures)
foreach (ProcedureInfo pi in dvi.Procedures.OfType<ProcedureInfo>())
{
TreeNode tn = tnc.Nodes.Add(string.Format("{0} {1}", pi.DisplayNumber, pi.DisplayText));
myProcedures.Add(tn, pi);
@@ -327,7 +310,7 @@ namespace VEPROMS
// C2023-002: Loop through the docversion's procedures to determine which cannot be open and add to
// list. The frmBatchRefreshCheckedOut dialog operates on procedures, not docversions.
string msgp = string.Empty;
foreach (ProcedureInfo pi in dq.Procedures)
foreach (ProcedureInfo pi in dq.Procedures.OfType<ProcedureInfo>())
{
if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref msgp)) pil.Add(pi);
}
@@ -520,7 +503,6 @@ namespace VEPROMS
foreach (TreeNode tn in myProcedures.Keys)
if (tn.Checked)
pil.Add(myProcedures[tn]);
//PopulateTransitionInfoLists(pil);
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Refresh Transitions");
txtProcess.AppendText(Environment.NewLine);
@@ -710,7 +692,7 @@ namespace VEPROMS
cc.Save();
}
}
catch (Exception ex)
catch
{
this.Cursor = Cursors.Default;
return -cntfix;
@@ -722,42 +704,6 @@ namespace VEPROMS
}
return cntfix;
}
// C2017-030 - new Admin Tools user interface
// tool renamed to Identify Orphan Items
private void IdentifyDisconnectedItems()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Identifing Orphan Items");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
txtProcess.AppendText(string.Format("Orphan Items Count: {0}", rowCount));
txtProcess.AppendText(Environment.NewLine);
if (rowCount > 0)
{
txtResults.AppendText(string.Format("The database contains {0} Orphan items.", rowCount));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText("These can be removed via the Remove Orphan Data Records in the Repair tools");
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
else
{
txtResults.AppendText("No Orphan Records Found");// B2017-108 Always output results even if there isn't any
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
//MessageBox.Show(string.Format("{0} Completed", "Orphan Items Check"), "Orphan Items");
}
// C2017-030 - new Admin Tools user interface
// tool renamed to Remove Orphan Items
@@ -777,8 +723,6 @@ namespace VEPROMS
int rowCount2 = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
txtProcess.AppendText(string.Format("Orphan Items Purged: {0}", rowCount));
txtProcess.AppendText(Environment.NewLine);
//txtProcess.AppendText(Environment.NewLine);
//txtResults.Clear();
txtResults.AppendText(string.Format("The database contained {0} Orphan items.", rowCount));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
@@ -795,11 +739,10 @@ namespace VEPROMS
}
else
{
//txtResults.Clear();
txtResults.AppendText(string.Format("The database contained {0} Orphan items.", rowCount));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(string.Format("No Orpan Items to Purge!"));
txtResults.AppendText("No Orpan Items to Purge!");
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
@@ -811,45 +754,6 @@ namespace VEPROMS
this.Cursor = Cursors.Default;
}
// C2017-030 - new Admin Tools user interface
// is one of two tools run from Check Obsolete RO Data
private void IdentifyUnusedRoFstsAndFigures()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Identifing Unused RoFsts and Figures");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
int rowCountFigures = ESP_GetUnusedFigures.Execute("vesp_GetUnusedFiguresCount");
txtProcess.AppendText(string.Format("Unused RoFsts Count: {0}, Unused Figures Count: {1}", rowCountRoFst, rowCountFigures));
txtProcess.AppendText(Environment.NewLine);
if (rowCountRoFst > 0 || rowCountFigures > 0)
{
txtResults.AppendText(string.Format("The database contains {0} unused RoFsts.", rowCountRoFst));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(string.Format("The database contains {0} unused Figures items.", rowCountFigures));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
else
{
txtResults.AppendText("No Unused RoFsts or Figures Found"); // B2017-108 Always output results even if there isn't any
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
}
// C2017-030 - new Admin Tools user interface is one of two tools run from Remove Obsolete RO Data
private void RemoveUnusedRoFstsAndFigures()
{
@@ -893,41 +797,7 @@ namespace VEPROMS
{
txtProcess.AppendText(string.Format("The database contained {0} unused RoFSTs or Figures.", rowCountRoFst + rowCountFigures));
txtProcess.AppendText(Environment.NewLine);
txtResults.AppendText(string.Format("No Unused ROFSTs To Remove."));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
}
// C2017-030 - new Admin Tools user interface
// is one of two tools run from Check Obsolete RO Data
private void IdentifyROAssociations()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Identifing Unused RO Associations");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
txtProcess.AppendText(string.Format("Unused RO Associations Count: {0}", rowCount));
txtProcess.AppendText(Environment.NewLine);
if (rowCount > 0)
{
txtResults.AppendText(string.Format("The database contains {0} unused RO Associations.", rowCount));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
else
{
txtResults.AppendText("No unused RO Associations Found");// B2017-108 Always output results even if there isn't any
txtResults.AppendText("No Unused ROFSTs To Remove.");
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
@@ -976,7 +846,7 @@ namespace VEPROMS
txtResults.AppendText(string.Format("The database contained {0} Unused RO Associations.", rowCount));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(string.Format("No Unused RO Associations to Purge."));
txtResults.AppendText("No Unused RO Associations to Purge.");
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
@@ -988,49 +858,6 @@ namespace VEPROMS
this.Cursor = Cursors.Default;
}
// C2017-030 - new Admin Tools user interface
// tool was renamed to Hidden Data Locations (on Check list)
private void IdentifyNonEditableItems()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Identifing Hidden Item Locations");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
List<ItemInfo> myItems = ESP_IdentifyNonEditableItems.Execute("vesp_GetNonEditableItems");
txtProcess.AppendText(string.Format("Hidden Items Count: {0}", myItems.Count));
txtProcess.AppendText(Environment.NewLine);
if (myItems.Count > 0)
{
txtResults.AppendText("The following items are hidden (non-editable)...");
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
foreach (ItemInfo ii in myItems)
{
txtResults.AppendText(ii.Path);
txtResults.AppendText(Environment.NewLine);
}
txtResults.AppendText(Environment.NewLine);
}
else
{
txtResults.AppendText("No Hidden Data Found");// B2017-108 Always output results even if there isn't any
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
//C2025-011 RO Update Admin Tool Memory Enhancements
//clear the list since no longer using it
myItems.Clear();
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
}
// C2017-030 - new Admin Tools user interface
// tool was renamed to Show Users
private void GetDatabaseSessions()
@@ -1095,7 +922,6 @@ namespace VEPROMS
return;
}
//FileInfo fiRofst = new FileInfo(rofstPath);
Cursor = Cursors.WaitCursor;
using (DocVersion dv = DocVersion.Get(dq.VersionID))
@@ -1109,7 +935,6 @@ namespace VEPROMS
}
roFstInfo.ROTableUpdate += new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate);
ROFst newrofst = ROFstInfo.RefreshROFst(dv, roFstInfo, DoProgressBarRefresh, txtProcess);
//ROFst newrofst = ROFstInfo.RefreshROFst(dv, roFstInfo, DoProgressBarRefresh, null);
roFstInfo.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate);
}
@@ -1122,14 +947,13 @@ namespace VEPROMS
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
return;
}
private void RefreshProcedureTransitions(ProcedureInfo pq)
{
DateTime start = DateTime.Now;
ProcedureInfo.ResetTranCounters();
ProcedureInfo.RefreshTransitions(pq);//, transitionsToDisconnected, transitionsToNonEditable);
ProcedureInfo.RefreshTransitions(pq);
TimeSpan ts = DateTime.Now - start;
// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
txtProcess.AppendText(string.Format("Procedure: {1}{0}Checked {2} Transitions{0}Fixed {3} Transitions{0}Converted to Text {4} Transitions{0}Cant Fix (Annotation: Bad Transition Link) {5} Transitions{0}Elapsed Seconds:{6}{0}{0}", Environment.NewLine, pq.DisplayNumber, ProcedureInfo.TranCheckCount, ProcedureInfo.TranFixCount, ProcedureInfo.TranConvertCount, ProcedureInfo.TranCantFixCount, ts.TotalSeconds));
@@ -1145,41 +969,6 @@ namespace VEPROMS
return VlnFlexGrid.ROTableUpdate(sender, args);
}
private void PopulateTransitionInfoLists(List<ProcedureInfo> pil)
{
Dictionary<int, int> dic = new Dictionary<int, int>();
StringBuilder sb = new StringBuilder();
foreach (ProcedureInfo pi in pil)
if (!dic.ContainsKey(pi.MyDocVersion.VersionID))
{
dic.Add(pi.MyDocVersion.VersionID, pi.MyDocVersion.VersionID);
sb.Append(sb.Length == 0 ? pi.MyDocVersion.VersionID.ToString() : "," + pi.MyDocVersion.VersionID.ToString());
}
txtProcess.AppendText("Preparing to process...");
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
//transitionsToDisconnected = TransitionInfoList.GetTransitionsToDisconnected(sb.ToString());
//transitionsToNonEditable = TransitionInfoList.GetTransitionsToNonEditable(sb.ToString());
}
private void ProgressBarShowText()
{
pbProcess.Refresh();
int percent = (int)(((double)(pbProcess.Value - pbProcess.Minimum) /
(double)(pbProcess.Maximum - pbProcess.Minimum)) * 100);
using (Graphics gr = pbProcess.CreateGraphics())
{
gr.DrawString(percent.ToString() + "%",
SystemFonts.DefaultFont,
Brushes.Black,
new PointF(pbProcess.Width / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Width / 2.0F),
pbProcess.Height / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Height / 2.0F)));
}
Application.DoEvents();
}
StringBuilder myFixes;
int myFixesCount = 0;
int myConvertCount = 0;
@@ -1199,7 +988,6 @@ namespace VEPROMS
{
txtResults.AppendText(string.Format("Fixed Referenced Object for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID));
Application.DoEvents();
//myFixes.AppendLine(string.Format("Fixed Referenced Object for {1}{0}Old Text: {2}{0}New Text: {3}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue));
}
else // B2018-002 - Invalid Transitions - Display Transition Cconversion Statistics
{
@@ -1354,14 +1142,6 @@ namespace VEPROMS
pnlLater.Enabled = chkLater.Checked;
}
// C2017-030 new Admin Tools user interface
private void sideNavItmCheck_Click(object sender, EventArgs e)
{
AdminToolType = E_AdminToolType.Check;
lblAdmToolProgressType.Text = "Checking:";
setupProgessSteps1();
}
// C2017-030 new Admin Tools user interface
private void sideNavItmRepair_Click(object sender, EventArgs e)
{
@@ -1387,13 +1167,6 @@ namespace VEPROMS
ResetTV(false);
}
// C2017-030 new Admin Tools user interface
private void sideNavItmUsers_Click(object sender, EventArgs e)
{
AdminToolType = E_AdminToolType.Users;
setupProgessSteps1();
}
// C2017-030 new Admin Tools user interface
private void sideNavItmExit_Click(object sender, EventArgs e)
{
@@ -1413,27 +1186,18 @@ namespace VEPROMS
ResetDelTV(false);
}
// new Admin Tools user interface for deletes
//private void sideNavItmDelete_Click_1(object sender, EventArgs e)
//{
//}
#region On/Off Swiches
// C2017-030 new Admin Tools user interface
private enum E_AdminToolType : int
{
Check = 0,
Repair = 1,
Links = 2,
Users = 3,
Delete = 4
};
private E_AdminToolType AdminToolType = 0;
private E_AdminToolType AdminToolType = E_AdminToolType.Repair;
DevComponents.DotNetBar.StepItem siOrphDatRecs = new DevComponents.DotNetBar.StepItem("siOrphDatRecs", "Orphan Data Records");
DevComponents.DotNetBar.StepItem siHiddenDataLocs = new DevComponents.DotNetBar.StepItem("siHiddenDataLocs", "Hidden Data");
DevComponents.DotNetBar.StepItem siObsoleteROData = new DevComponents.DotNetBar.StepItem("siObsoleteROData", "Obsolete RO Data");
DevComponents.DotNetBar.StepItem siStandardHyphens = new DevComponents.DotNetBar.StepItem("siStandardHyphens", "Standardize Hyphens");
DevComponents.DotNetBar.StepItem siRefreshAttmts = new DevComponents.DotNetBar.StepItem("siRefreshAttmts", "Refresh Word Attachments");
@@ -1446,18 +1210,6 @@ namespace VEPROMS
switch (AdminToolType)
{
case E_AdminToolType.Check:
if (swCkOrphanDataRecs.Value)
progressSteps1.Items.Add(siOrphDatRecs);
if (swHiddenDataLocs.Value)
progressSteps1.Items.Add(siHiddenDataLocs);
if (swCkObsoleteROData.Value)
progressSteps1.Items.Add(siObsoleteROData);
splitContainer3.Panel2Collapsed = false;
progressSteps1.Visible = true;
progressSteps1.Refresh();
break;
case E_AdminToolType.Repair:
if (swRmOrphanDataRecs.Value)
progressSteps1.Items.Add(siOrphDatRecs);
@@ -1475,7 +1227,6 @@ namespace VEPROMS
break;
case E_AdminToolType.Links:
case E_AdminToolType.Users:
splitContainer3.Panel2Collapsed = true;
progressSteps1.Visible = false;
break;
@@ -1532,7 +1283,6 @@ namespace VEPROMS
private void StepProgress(int prgStpIdx, int val)
{
((DevComponents.DotNetBar.StepItem)progressSteps1.Items[prgStpIdx]).Value = val;
return;
}
private void ClearStepProgress()
@@ -1595,42 +1345,6 @@ namespace VEPROMS
CheckROLinks(); // C2022-028 check for Bad RO Links
}
private void btnRunCheck_Click(object sender, EventArgs e)
{
if (!CheckProcessLater()) return; // delay processing if set//B2017-221 Allow the batch dialog to close when waiting to process.
int prgStpIdx = -1;
txtResults.Clear();
txtProcess.Clear();
if (swCkOrphanDataRecs.Value)
{
StepProgress(++prgStpIdx, 50);
IdentifyDisconnectedItems(); // orphan items
StepProgress(prgStpIdx, 100);
}
if (swHiddenDataLocs.Value)
{
StepProgress(++prgStpIdx, 50);
IdentifyNonEditableItems(); // hidden items
StepProgress(prgStpIdx, 100);
}
if (swCkObsoleteROData.Value)
{
StepProgress(++prgStpIdx, 25);
IdentifyROAssociations();
StepProgress(prgStpIdx, 50);
IdentifyUnusedRoFstsAndFigures();
StepProgress(prgStpIdx, 100);
}
MessageBox.Show("Check Functions Completed", "Check");
ClearStepProgress();
}
private void btnRunRepair_Click(object sender, EventArgs e)
{
if (!CheckProcessLater()) return; // delay processing if set//B2017-221 Allow the batch dialog to close when waiting to process.
@@ -1755,12 +1469,12 @@ namespace VEPROMS
if (!MySessionInfo.CanCheckOutItem(dq.VersionID, CheckOutType.DocVersion, ref msg))
{
string msgp = string.Empty;
foreach (ProcedureInfo pi in dq.Procedures)
foreach (ProcedureInfo pi in dq.Procedures.OfType<ProcedureInfo>())
{
if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref msgp))
{
FolderInfo fi = (FolderInfo)dq.ActiveParent;
int itemID = (int)fi.FolderID;
int itemID = fi.FolderID;
string folderName = fi.Name;
if (swDeleteFolder.Value)
@@ -1853,7 +1567,7 @@ namespace VEPROMS
{
//Gather folder information
FolderInfo fi = (FolderInfo)kvp.ActiveParent;
int itemID = (int)fi.FolderID;
int itemID = fi.FolderID;
string folderName = fi.Name;
// Perform the deletion operation
@@ -1877,8 +1591,8 @@ namespace VEPROMS
foreach (var kvp in emptyFoldersToDelete)
{
//Gather folder information
FolderInfo fi = (FolderInfo)kvp;
int itemID = (int)fi.FolderID;
FolderInfo fi = kvp;
int itemID = fi.FolderID;
string folderName = fi.Name;
// Perform the deletion operation
@@ -1929,9 +1643,8 @@ namespace VEPROMS
return true;
}
catch (Exception ex)
catch
{
string err = ex.ToString();
return false;
}
}

View File

@@ -120,196 +120,6 @@
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="swDeleteFolder.SuperTooltip" xml:space="preserve">
<value>This allows the user to remove folders and sub folders as well as their contents.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="labelX13.SuperTooltip" xml:space="preserve">
<value>This allows the user to remove folders and sub folders as well as their contents.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="swDeleteAnnotations.SuperTooltip" xml:space="preserve">
<value>This function will allow the user to remove annotations from the selected working drafts.
Be sure a current backup of the database exists prior to running this function.
If more than one working draft is selected, it is recommended that this be performed during off hours.</value>
</data>
<data name="labelX14.SuperTooltip" xml:space="preserve">
<value>This function will allow the user to remove annotations from the selected working drafts.
Be sure a current backup of the database exists prior to running this function.
If more than one working draft is selected, it is recommended that this be performed during off hours.</value>
</data>
<data name="btnDeleteItems.SuperTooltip" xml:space="preserve">
<value>This will allow for the deletion of groups of annotations and allow for deleting entire folders within PROMS. Use the tree nodes to select which items to delete.
Click on the on/off switches to turn on/off each tool.
Note that only one of these tools can be run at a time.</value>
</data>
<data name="swCheckROLinks.SuperTooltip" xml:space="preserve">
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="labelX12.SuperTooltip" xml:space="preserve">
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="warningBox5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="swUpdateROVals.SuperTooltip" xml:space="preserve">
<value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="swRefreshTrans.SuperTooltip" xml:space="preserve">
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
Be sure a current backup of the database exists prior to running this function.
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
</data>
<data name="labelX11.SuperTooltip" xml:space="preserve">
<value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="labelX6.SuperTooltip" xml:space="preserve">
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
Be sure a current backup of the database exists prior to running this function.
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
</data>
<data name="warningBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="warningBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="swCkObsoleteROData.SuperTooltip" xml:space="preserve">
<value>Referenced Objects databases are associated with a procedure set (such as Working Draft).
RO paths, ROFST versions, and the contents of RO figures are stored in the database when referenced. This tool will identify stored RO Paths, ROFST versions, and Figures that are no longer used.
</value>
</data>
<data name="swHiddenDataLocs.SuperTooltip" xml:space="preserve">
<value>Typically, a section in PROMS only has sub-sections or steps. When and existing section is divided into sub-sections, the resulting main section might have both.
When this occurs, the step data in the main section can be marked as non-editable. The user can no longer get to these steps and they can become forgotten as PROMS will ignore these non-editable steps when the procedure is printed.
This tool will identify if the database has non-editable steps and provide a listing of these steps. The use can then go to these main sections, make them editable via the property page, and delete or move these steps.
This tool may take an extended period of time to execute.
</value>
</data>
<data name="labelX3.SuperTooltip" xml:space="preserve">
<value>Referenced Objects databases are associated with a procedure set (such as Working Draft).
RO paths, ROFST versions, and the contents of RO figures are stored in the database when referenced. This tool will identify stored RO Paths, ROFST versions, and Figures that are no longer used.
</value>
</data>
<data name="labelX2.SuperTooltip" xml:space="preserve">
<value>Typically, a section in PROMS only has sub-sections or steps. When and existing section is divided into sub-sections, the resulting main section might have both.
When this occurs, the step data in the main section can be marked as non-editable. The user can no longer get to these steps and they can become forgotten as PROMS will ignore these non-editable steps when the procedure is printed.
This tool will identify if the database has non-editable steps and provide a listing of these steps. The use can then go to these main sections, make them editable via the property page, and delete or move these steps.
This tool may take an extended period of time to execute.
</value>
</data>
<data name="swCkOrphanDataRecs.SuperTooltip" xml:space="preserve">
<value>Everything in PROMS is inter-related. A working draft knows what is its first procedure and a procedure knows what is its first step. Likewise, a procedure knows what procedure is before it and after it.
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible. This tool detects any orphaned items in the database.
This tool may take an extended period of time to execute.
</value>
</data>
<data name="labelX1.SuperTooltip" xml:space="preserve">
<value>Everything in PROMS is inter-related. A working draft knows what is its first procedure and a procedure knows what is its first step. Likewise, a procedure knows what procedure is before it and after it.
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible. This tool detects any orphaned items in the database.
This tool may take an extended period of time to execute.
</value>
</data>
<data name="swRefreshTblsForSrch.SuperTooltip" xml:space="preserve">
<value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all the of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents.
@@ -322,6 +132,7 @@ This function will remove all of the saved attachment PDFS stored in the databas
This function will remove all of the saved attachment PDFS stored in the database (not the PDFs of the entire procedure that you had previous printed). This will force PROMS to regenerate (and save) the word attachment PDFs the next time the procedure is printed.
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="warningBox4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
@@ -404,6 +215,130 @@ Should an item become orphaned (disconnected) from the rest of the data, it will
<value>Everything in PROMS is inter-related. A working draft knows what is its first procedure and a procedure knows what is its first step. Likewise, a procedure knows what procedure is before it and after it.
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible. This tool removes any orphaned items from the database.
</value>
</data>
<data name="swDeleteFolder.SuperTooltip" xml:space="preserve">
<value>This allows the user to remove folders and sub folders as well as their contents.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="labelX13.SuperTooltip" xml:space="preserve">
<value>This allows the user to remove folders and sub folders as well as their contents.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="swDeleteAnnotations.SuperTooltip" xml:space="preserve">
<value>This function will allow the user to remove annotations from the selected working drafts.
Be sure a current backup of the database exists prior to running this function.
If more than one working draft is selected, it is recommended that this be performed during off hours.</value>
</data>
<data name="labelX14.SuperTooltip" xml:space="preserve">
<value>This function will allow the user to remove annotations from the selected working drafts.
Be sure a current backup of the database exists prior to running this function.
If more than one working draft is selected, it is recommended that this be performed during off hours.</value>
</data>
<data name="btnDeleteItems.SuperTooltip" xml:space="preserve">
<value>This will allow for the deletion of groups of annotations and allow for deleting entire folders within PROMS. Use the tree nodes to select which items to delete.
Click on the on/off switches to turn on/off each tool.
Note that only one of these tools can be run at a time.</value>
</data>
<data name="swCheckROLinks.SuperTooltip" xml:space="preserve">
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="labelX12.SuperTooltip" xml:space="preserve">
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="warningBox5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="swUpdateROVals.SuperTooltip" xml:space="preserve">
<value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="swRefreshTrans.SuperTooltip" xml:space="preserve">
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
Be sure a current backup of the database exists prior to running this function.
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
</data>
<data name="labelX11.SuperTooltip" xml:space="preserve">
<value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
Be sure a current backup of the database exists prior performing this function.
It is recommended that this be done during off hours.
</value>
</data>
<data name="labelX6.SuperTooltip" xml:space="preserve">
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
Be sure a current backup of the database exists prior to running this function.
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
</data>
<data name="warningBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@@ -128,7 +128,7 @@ namespace VEPROMS
private LocalAnnotationTypeInfoList myLocalAnnotationTypeInfoList = null;
private StageInfoList myStageInfoList = null;
private LocalStageInfoList myLocalStageInfoList = null;
private int? _cmbxformatOriginal = null;
private void frmFolderProperties_Load(object sender, EventArgs e)
{
_Initializing = true;
@@ -149,7 +149,7 @@ namespace VEPROMS
ppCmbxFormat.DisplayMember = "FullName";
ppCmbxFormat.ValueMember = "FullName";
ppCmbxFormat.DataSource = FormatUtility.GetFilteredFormatList(FormatInfoList.SortedFormatInfoList);
if (_FolderConfig != null && _FolderConfig.MyFolder != null) _cmbxformatOriginal = _FolderConfig.MyFolder.FormatID;
if (_FolderConfig.FormatSelection != null)
{
ppCmbxFormat.SelectedValue = _FolderConfig.FormatSelection;
@@ -337,24 +337,7 @@ namespace VEPROMS
btnAnnoTypeUndo.PerformClick();
//if (btnAnnoTypeSave.Enabled) return;
folderConfigBindingSource.EndEdit();
// if there is a change to the format, clean up any overridden formats that point to the selected item before saving the format change:
//if (_FolderConfig.MyFolder.FormatID != _cmbxformatOriginal)
//{
// // clean up & then refresh the configs
// using (ContentInfoList cil = ContentInfoList.ClearOverrideFormatsByFolder(_FolderConfig.MyFolder.FolderID, _cmbxformatOriginal, _FolderConfig.MyFolder.FormatID))
// {
// foreach (ContentInfo ci in cil)
// {
// using (Content c = ci.Get())
// {
// // first refresh configs because the ContentInfo.Refresh causes events to occur that refresh screen
// // and if configs aren't done first, the screen refresh, if based on config data, will not be correct.
// foreach (ItemInfo ii in ci.ContentItems) ii.RefreshConfig();
// ContentInfo.Refresh(c);
// }
// }
// }
//}
// Save Default settings for User
//
// Save whether we should display the default values on this property page

View File

@@ -0,0 +1,572 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using VEPROMS.CSLA.Library;
using System.IO;
using Volian.Controls.Library;
using DevComponents.DotNetBar;
using JR.Utils.GUI.Forms;
using System.Linq;
using System.Data;
using xls = Microsoft.Office.Interop.Excel;
namespace VEPROMS
{
public partial class frmGenTools : Form
{
private SessionInfo _MySessionInfo;
public SessionInfo MySessionInfo
{
get { return _MySessionInfo; }
set { _MySessionInfo = value; }
}
public frmGenTools(SessionInfo sessionInfo, frmVEPROMS veProms)
{
InitializeComponent();
_MySessionInfo = sessionInfo;
// When opening General tools Check tab will be default.
this.sideNavItmCheck.Checked = true;
setupProgessSteps1(); // C2017-030 - new Tools user interface
}
private void frmGenTools_Load(object sender, EventArgs e)
{
IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
}
private bool IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
private void frmGenTools_FormClosing(object sender, EventArgs e)
{
IsClosing = true;//B2017-221 Allow the batch dialog to close when waiting to process.
}
// C2017-030 - new Tools user interface
// tool renamed to Identify Orphan Items
private void IdentifyDisconnectedItems()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Identifing Orphan Items");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
txtProcess.AppendText(string.Format("Orphan Items Count: {0}", rowCount));
txtProcess.AppendText(Environment.NewLine);
if (rowCount > 0)
{
txtResults.AppendText(string.Format("The database contains {0} Orphan items.", rowCount));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText("These can be removed via the Remove Orphan Data Records in the Repair tools");
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
else
{
txtResults.AppendText("No Orphan Records Found");// B2017-108 Always output results even if there isn't any
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
}
// C2017-030 - new Tools user interface
// is one of two tools run from Check Obsolete RO Data
private void IdentifyUnusedRoFstsAndFigures()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Identifing Unused RoFsts and Figures");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
int rowCountFigures = ESP_GetUnusedFigures.Execute("vesp_GetUnusedFiguresCount");
txtProcess.AppendText(string.Format("Unused RoFsts Count: {0}, Unused Figures Count: {1}", rowCountRoFst, rowCountFigures));
txtProcess.AppendText(Environment.NewLine);
if (rowCountRoFst > 0 || rowCountFigures > 0)
{
txtResults.AppendText(string.Format("The database contains {0} unused RoFsts.", rowCountRoFst));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(string.Format("The database contains {0} unused Figures items.", rowCountFigures));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
else
{
txtResults.AppendText("No Unused RoFsts or Figures Found"); // B2017-108 Always output results even if there isn't any
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
}
// C2017-030 - new Tools user interface
// is one of two tools run from Check Obsolete RO Data
private void IdentifyROAssociations()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Identifing Unused RO Associations");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
txtProcess.AppendText(string.Format("Unused RO Associations Count: {0}", rowCount));
txtProcess.AppendText(Environment.NewLine);
if (rowCount > 0)
{
txtResults.AppendText(string.Format("The database contains {0} unused RO Associations.", rowCount));
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
else
{
txtResults.AppendText("No unused RO Associations Found");// B2017-108 Always output results even if there isn't any
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
}
// C2017-030 - new Tools user interface
// tool was renamed to Hidden Data Locations (on Check list)
private void IdentifyNonEditableItems()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Identifing Hidden Item Locations");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
List<ItemInfo> myItems = ESP_IdentifyNonEditableItems.Execute("vesp_GetNonEditableItems");
txtProcess.AppendText(string.Format("Hidden Items Count: {0}", myItems.Count));
txtProcess.AppendText(Environment.NewLine);
if (myItems.Count > 0)
{
txtResults.AppendText("The following items are hidden (non-editable)...");
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
foreach (ItemInfo ii in myItems)
{
txtResults.AppendText(ii.Path);
txtResults.AppendText(Environment.NewLine);
}
txtResults.AppendText(Environment.NewLine);
}
else
{
txtResults.AppendText("No Hidden Data Found");// B2017-108 Always output results even if there isn't any
txtResults.AppendText(Environment.NewLine);
txtResults.AppendText(Environment.NewLine);
}
//C2025-011 RO Update Tool Memory Enhancements
//clear the list since no longer using it
myItems.Clear();
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
}
// C2017-030 - new Tools user interface
// tool was renamed to Show Users
private void GetDatabaseSessions()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Show Users in PROMS");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
txtResults.Clear();
txtResults.AppendText(ESP_GetDatabaseSessions.Execute("vesp_GetDatabaseSessions"));
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
Application.DoEvents();
this.Cursor = Cursors.Default;
MessageBox.Show("Show Users Completed", "Show Users");
}
public List<string> roFstInfo_ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args)
{
return VlnFlexGrid.ROTableUpdate(sender, args);
}
private void btnClear_Click(object sender, EventArgs e)
{
txtResults.Clear();
}
private void btnSave_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.DefaultExt = "txt";
sfd.AddExtension = true;
sfd.Filter = "Text Files (*.txt)|*.txt";
sfd.FileName = string.Format("BatchRefreshResults_{0}", DateTime.Now.ToString("yyyyMMdd_HHmm"));
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS";
DialogResult dr = sfd.ShowDialog();
if (dr == DialogResult.OK)
{
System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName);
sw.Write(txtResults.Text);
sw.Close();
}
}
private ProgressBarItem _ProgressBar = null;
public ProgressBarItem ProgressBar
{
get { return _ProgressBar; }
set
{
_ProgressBar = value;
_ProgressBar.TextVisible = true;
}
}
private void chkLater_CheckedChanged(object sender, EventArgs e)
{
pnlLater.Enabled = chkLater.Checked;
}
// C2017-030 new Tools user interface
private void sideNavItmCheck_Click(object sender, EventArgs e)
{
GenToolType = E_GenToolType.Check;
lblAdmToolProgressType.Text = "Checking:";
setupProgessSteps1();
}
// C2017-030 new Tools user interface
private void sideNavItmUsers_Click(object sender, EventArgs e)
{
GenToolType = E_GenToolType.Users;
setupProgessSteps1();
}
//C2025-009 Report for tracking PROMS Users / security
private void sideNavItmReports_Click(object sender, EventArgs e)
{
GenToolType = E_GenToolType.Reports;
setupProgessSteps1();
}
// C2017-030 new Tools user interface
private void sideNavItmExit_Click(object sender, EventArgs e)
{
this.Close();
}
#region On/Off Swiches
// C2017-030 new Tools user interface
private enum E_GenToolType : int
{
Check = 0,
Users = 3,
Reports = 5
};
private E_GenToolType GenToolType = 0;
DevComponents.DotNetBar.StepItem siOrphDatRecs = new DevComponents.DotNetBar.StepItem("siOrphDatRecs", "Orphan Data Records");
DevComponents.DotNetBar.StepItem siHiddenDataLocs = new DevComponents.DotNetBar.StepItem("siHiddenDataLocs", "Hidden Data");
DevComponents.DotNetBar.StepItem siObsoleteROData = new DevComponents.DotNetBar.StepItem("siObsoleteROData", "Obsolete RO Data");
// this will update/rebuild the progress bar in the bottom panel of Tools
private void setupProgessSteps1()
{
progressSteps1.Visible = false;
progressSteps1.Items.Clear();
switch (GenToolType)
{
case E_GenToolType.Check:
if (swCkOrphanDataRecs.Value)
progressSteps1.Items.Add(siOrphDatRecs);
if (swHiddenDataLocs.Value)
progressSteps1.Items.Add(siHiddenDataLocs);
if (swCkObsoleteROData.Value)
progressSteps1.Items.Add(siObsoleteROData);
splitContainer3.Panel2Collapsed = false;
progressSteps1.Visible = true;
progressSteps1.Refresh();
break;
case E_GenToolType.Users:
case E_GenToolType.Reports:
splitContainer3.Panel2Collapsed = true;
progressSteps1.Visible = false;
break;
}
}
// used for all of the Switch buttons (ON/OFF buttons)
private void swCk_ValueChanged(object sender, EventArgs e)
{
setupProgessSteps1();
}
#endregion
// C2017-030 New Tools user interface
// functions to handle the progress bar in the bottom panel of Tools
private void StepProgress(int prgStpIdx, int val)
{
((DevComponents.DotNetBar.StepItem)progressSteps1.Items[prgStpIdx]).Value = val;
}
private void ClearStepProgress()
{
for (int i = 0; i < progressSteps1.Items.Count; i++)
{
((DevComponents.DotNetBar.StepItem)progressSteps1.Items[i]).Value = 0;
}
}
// C2017-030 New Tools user interface
// button clicks for processing selected tools
//B2017-221 Allow the batch dialog to close when waiting to process.
private bool CheckProcessLater() // see if we should delay processing until later
{
if (chkLater.Checked)
{
long later = long.Parse(dtpDate.Value.ToString("yyyyMMdd") + dtpTime.Value.ToString("HHmm"));
long now = long.Parse(DateTime.Now.ToString("yyyyMMddHHmm"));
while (now < later)
{
txtProcess.Clear();
txtProcess.AppendText("Waiting...");
System.Threading.Thread.Sleep(1000);//Check each second
if (IsClosing) return false;//B2017-221 Allow the batch dialog to close when waiting to process.
Application.DoEvents();// Allow user interface to react
now = long.Parse(DateTime.Now.ToString("yyyyMMddHHmm"));
}
}
return true;// Close after complete
}
// C2017-030 new Tools user interface
private void btn_ShowUsers_Click(object sender, EventArgs e)
{
if (!CheckProcessLater()) return; // delay processing if set//B2017-221 Allow the batch dialog to close when waiting to process.
txtProcess.Clear();
txtResults.Clear();
GetDatabaseSessions();
}
private void btnRunCheck_Click(object sender, EventArgs e)
{
if (!CheckProcessLater()) return; // delay processing if set//B2017-221 Allow the batch dialog to close when waiting to process.
int prgStpIdx = -1;
txtResults.Clear();
txtProcess.Clear();
if (swCkOrphanDataRecs.Value)
{
StepProgress(++prgStpIdx, 50);
IdentifyDisconnectedItems(); // orphan items
StepProgress(prgStpIdx, 100);
}
if (swHiddenDataLocs.Value)
{
StepProgress(++prgStpIdx, 50);
IdentifyNonEditableItems(); // hidden items
StepProgress(prgStpIdx, 100);
}
if (swCkObsoleteROData.Value)
{
StepProgress(++prgStpIdx, 25);
IdentifyROAssociations();
StepProgress(prgStpIdx, 50);
IdentifyUnusedRoFstsAndFigures();
StepProgress(prgStpIdx, 100);
}
MessageBox.Show("Check Functions Completed", "Check");
ClearStepProgress();
}
//C2025-009 Report for tracking PROMS Users / security
//UACfilename will hold the filename for cases when scheduled for later
private string UACfilename;
//C2025-009 Report for tracking PROMS Users / security
private void btnUAC_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(UACfilename))
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Excel XLS (*.xlsx)|*.xlsx";
sfd.FileName = "UACReport.xlsx";
if (sfd.ShowDialog() == DialogResult.OK)
{
UACfilename = sfd.FileName;
}
}
if (!CheckProcessLater()) return; // delay processing if set//B2017-221 Allow the batch dialog to close when waiting to process.
txtProcess.Clear();
txtResults.Clear();
if (!string.IsNullOrEmpty(UACfilename))
{
Generate_UAC_Report(UACfilename);
}
UACfilename = null;
}
//C2025-009 Report for tracking PROMS Users / security
//Get Datatable of results then loop through outputting into excel
private void Generate_UAC_Report(string filename)
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Generate User Access Control Report in PROMS");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
txtResults.Clear();
txtResults.AppendText("Generating User Access Control Report");
using (DataTable dt = UserReports.GetUserAccessControlData())
{
// Start Excel and get Application object.
xls.Application excel = new xls.Application
{
// Make Excel invisible and disable alerts.
Visible = false,
DisplayAlerts = false
};
// Create a new Workbook.
xls.Workbook excelworkBook = excel.Workbooks.Add();
// Create a Worksheet.
var workSheet = (xls.Worksheet)excelworkBook.ActiveSheet;
workSheet.Name = "UAC Report";
// column headings
for (var i = 0; i < dt.Columns.Count; i++)
{
workSheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
}
// rows
for (var i = 0; i < dt.Rows.Count; i++)
{
for (var j = 0; j < dt.Columns.Count; j++)
{
workSheet.Cells[i + 2, j + 1] = dt.Rows[i][j];
}
}
//resize the columns to match the data
workSheet.Columns.AutoFit();
//freeze the top row, and highlight those cells
workSheet.Application.ActiveWindow.SplitRow = 1;
workSheet.Application.ActiveWindow.FreezePanes = true;
workSheet.Cells.Range[workSheet.Cells[1, 1], workSheet.Cells[1, dt.Columns.Count]].Interior.Color = xls.XlRgbColor.rgbLightBlue;
//save the excel file
excelworkBook.SaveAs(filename);
excelworkBook.Close();
excel.Quit();
//release any in use com objects
releaseObject(workSheet);
releaseObject(excelworkBook);
releaseObject(excel);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
Application.DoEvents();
this.Cursor = Cursors.Default;
MessageBox.Show("Generate User Access Control Report Completed", "User Access Control Report");
}
//C2025-009 Report for tracking PROMS Users / security
//for releasing any Excel com objects still in memory
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Exception Occurred while releasing object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
//C2025-011 RO Update Tool Memory Enhancements
private void txtProcess_TextChanged(object sender, EventArgs e)
{
//clears the stack to help with memory - should never need to undo text changes to this.
txtProcess.ClearUndo();
}
private void txtResults_TextChanged(object sender, EventArgs e)
{
//clears the stack to help with memory - should never need to undo text changes to this.
txtResults.ClearUndo();
}
}
}

View File

@@ -0,0 +1,895 @@
namespace VEPROMS
{
partial class frmGenTools
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmGenTools));
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
this.panelEx3 = new DevComponents.DotNetBar.PanelEx();
this.txtResults = new System.Windows.Forms.TextBox();
this.panel1 = new System.Windows.Forms.Panel();
this.btnSave = new System.Windows.Forms.Button();
this.btnClear = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.expandableSplitter2 = new DevComponents.DotNetBar.ExpandableSplitter();
this.panelEx2 = new DevComponents.DotNetBar.PanelEx();
this.txtProcess = new System.Windows.Forms.TextBox();
this.pbProcess = new System.Windows.Forms.ProgressBar();
this.label6 = new System.Windows.Forms.Label();
this.panel3 = new System.Windows.Forms.Panel();
this.pnlLater = new System.Windows.Forms.Panel();
this.label5 = new System.Windows.Forms.Label();
this.dtpTime = new System.Windows.Forms.DateTimePicker();
this.dtpDate = new System.Windows.Forms.DateTimePicker();
this.chkLater = new System.Windows.Forms.CheckBox();
this.label4 = new System.Windows.Forms.Label();
this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter();
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
this.sideNav1 = new DevComponents.DotNetBar.Controls.SideNav();
this.sideNavPanel6 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.sideNavPanel5 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.btn_ShowUsers = new DevComponents.DotNetBar.ButtonX();
this.sideNavPanel1 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.warningBox3 = new DevComponents.DotNetBar.Controls.WarningBox();
this.labelX7 = new DevComponents.DotNetBar.LabelX();
this.line1 = new DevComponents.DotNetBar.Controls.Line();
this.swCkObsoleteROData = new DevComponents.DotNetBar.Controls.SwitchButton();
this.swHiddenDataLocs = new DevComponents.DotNetBar.Controls.SwitchButton();
this.labelX3 = new DevComponents.DotNetBar.LabelX();
this.labelX2 = new DevComponents.DotNetBar.LabelX();
this.swCkOrphanDataRecs = new DevComponents.DotNetBar.Controls.SwitchButton();
this.labelX1 = new DevComponents.DotNetBar.LabelX();
this.btnRunCheck = new DevComponents.DotNetBar.ButtonX();
this.sideNavItem1 = new DevComponents.DotNetBar.Controls.SideNavItem();
this.separator1 = new DevComponents.DotNetBar.Separator();
this.sideNavItmCheck = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmUsers = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmReports = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmExit = new DevComponents.DotNetBar.Controls.SideNavItem();
this.panelEx4 = new DevComponents.DotNetBar.PanelEx();
this.progressSteps1 = new DevComponents.DotNetBar.ProgressSteps();
this.stepItem1 = new DevComponents.DotNetBar.StepItem();
this.stepItem2 = new DevComponents.DotNetBar.StepItem();
this.stepItem3 = new DevComponents.DotNetBar.StepItem();
this.stepItem4 = new DevComponents.DotNetBar.StepItem();
this.lblAdmToolProgressType = new DevComponents.DotNetBar.LabelX();
this.buttonItem1 = new DevComponents.DotNetBar.ButtonItem();
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
this.btnUAC = new DevComponents.DotNetBar.ButtonX();
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
this.splitContainer3.Panel1.SuspendLayout();
this.splitContainer3.Panel2.SuspendLayout();
this.splitContainer3.SuspendLayout();
this.panelEx3.SuspendLayout();
this.panel1.SuspendLayout();
this.panelEx2.SuspendLayout();
this.panel3.SuspendLayout();
this.pnlLater.SuspendLayout();
this.panelEx1.SuspendLayout();
this.sideNav1.SuspendLayout();
this.sideNavPanel6.SuspendLayout();
this.sideNavPanel5.SuspendLayout();
this.sideNavPanel1.SuspendLayout();
this.panelEx4.SuspendLayout();
this.SuspendLayout();
//
// splitContainer3
//
this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer3.Location = new System.Drawing.Point(0, 0);
this.splitContainer3.Name = "splitContainer3";
this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer3.Panel1
//
this.splitContainer3.Panel1.Controls.Add(this.panelEx3);
this.splitContainer3.Panel1.Controls.Add(this.expandableSplitter2);
this.splitContainer3.Panel1.Controls.Add(this.panelEx2);
this.splitContainer3.Panel1.Controls.Add(this.expandableSplitter1);
this.splitContainer3.Panel1.Controls.Add(this.panelEx1);
//
// splitContainer3.Panel2
//
this.splitContainer3.Panel2.BackColor = System.Drawing.SystemColors.Control;
this.splitContainer3.Panel2.Controls.Add(this.panelEx4);
this.splitContainer3.Size = new System.Drawing.Size(1177, 586);
this.splitContainer3.SplitterDistance = 525;
this.splitContainer3.TabIndex = 2;
//
// panelEx3
//
this.panelEx3.CanvasColor = System.Drawing.SystemColors.Control;
this.panelEx3.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.panelEx3.Controls.Add(this.txtResults);
this.panelEx3.Controls.Add(this.panel1);
this.panelEx3.Controls.Add(this.label3);
this.panelEx3.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelEx3.Location = new System.Drawing.Point(688, 0);
this.panelEx3.Name = "panelEx3";
this.panelEx3.Size = new System.Drawing.Size(489, 525);
this.panelEx3.Style.Alignment = System.Drawing.StringAlignment.Center;
this.panelEx3.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.panelEx3.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.panelEx3.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.panelEx3.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.panelEx3.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.panelEx3.Style.GradientAngle = 90;
this.panelEx3.TabIndex = 31;
this.panelEx3.Text = "panelEx3";
//
// txtResults
//
this.txtResults.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtResults.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtResults.Location = new System.Drawing.Point(0, 52);
this.txtResults.Multiline = true;
this.txtResults.Name = "txtResults";
this.txtResults.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtResults.Size = new System.Drawing.Size(489, 473);
this.txtResults.TabIndex = 4;
this.txtResults.TextChanged += new System.EventHandler(this.txtResults_TextChanged);
//
// panel1
//
this.panel1.Controls.Add(this.btnSave);
this.panel1.Controls.Add(this.btnClear);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 23);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(489, 29);
this.panel1.TabIndex = 3;
//
// btnSave
//
this.btnSave.Dock = System.Windows.Forms.DockStyle.Left;
this.btnSave.Location = new System.Drawing.Point(95, 0);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(95, 29);
this.btnSave.TabIndex = 3;
this.btnSave.Text = "Save Results";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// btnClear
//
this.btnClear.Dock = System.Windows.Forms.DockStyle.Left;
this.btnClear.Location = new System.Drawing.Point(0, 0);
this.btnClear.Name = "btnClear";
this.btnClear.Size = new System.Drawing.Size(95, 29);
this.btnClear.TabIndex = 2;
this.btnClear.Text = "Clear Results";
this.btnClear.UseVisualStyleBackColor = true;
this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
//
// label3
//
this.label3.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.label3.Dock = System.Windows.Forms.DockStyle.Top;
this.label3.Location = new System.Drawing.Point(0, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(489, 23);
this.label3.TabIndex = 2;
this.label3.Text = "Results";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// expandableSplitter2
//
this.expandableSplitter2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter2.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter2.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.expandableSplitter2.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter2.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter2.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.expandableSplitter2.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.expandableSplitter2.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.expandableSplitter2.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.expandableSplitter2.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
this.expandableSplitter2.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
this.expandableSplitter2.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61)))));
this.expandableSplitter2.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94)))));
this.expandableSplitter2.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2;
this.expandableSplitter2.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground;
this.expandableSplitter2.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter2.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter2.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.expandableSplitter2.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.expandableSplitter2.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter2.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter2.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
this.expandableSplitter2.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
this.expandableSplitter2.Location = new System.Drawing.Point(682, 0);
this.expandableSplitter2.Name = "expandableSplitter2";
this.expandableSplitter2.Size = new System.Drawing.Size(6, 525);
this.expandableSplitter2.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007;
this.expandableSplitter2.TabIndex = 38;
this.expandableSplitter2.TabStop = false;
//
// panelEx2
//
this.panelEx2.CanvasColor = System.Drawing.SystemColors.Control;
this.panelEx2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.panelEx2.Controls.Add(this.txtProcess);
this.panelEx2.Controls.Add(this.pbProcess);
this.panelEx2.Controls.Add(this.label6);
this.panelEx2.Controls.Add(this.panel3);
this.panelEx2.Controls.Add(this.label4);
this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx2.Dock = System.Windows.Forms.DockStyle.Left;
this.panelEx2.Location = new System.Drawing.Point(391, 0);
this.panelEx2.Name = "panelEx2";
this.panelEx2.Size = new System.Drawing.Size(291, 525);
this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center;
this.panelEx2.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.panelEx2.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.panelEx2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.panelEx2.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.panelEx2.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.panelEx2.Style.GradientAngle = 90;
this.panelEx2.TabIndex = 22;
this.panelEx2.Text = "panelEx2";
//
// txtProcess
//
this.txtProcess.AcceptsReturn = true;
this.txtProcess.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtProcess.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtProcess.Location = new System.Drawing.Point(0, 150);
this.txtProcess.Multiline = true;
this.txtProcess.Name = "txtProcess";
this.txtProcess.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtProcess.Size = new System.Drawing.Size(291, 375);
this.txtProcess.TabIndex = 5;
this.txtProcess.TextChanged += new System.EventHandler(this.txtProcess_TextChanged);
//
// pbProcess
//
this.pbProcess.Dock = System.Windows.Forms.DockStyle.Top;
this.pbProcess.Location = new System.Drawing.Point(0, 125);
this.pbProcess.Name = "pbProcess";
this.pbProcess.Size = new System.Drawing.Size(291, 25);
this.pbProcess.TabIndex = 6;
//
// label6
//
this.label6.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.label6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.label6.Dock = System.Windows.Forms.DockStyle.Top;
this.label6.Location = new System.Drawing.Point(0, 102);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(291, 23);
this.label6.TabIndex = 3;
this.label6.Text = "Process Status";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel3
//
this.panel3.Controls.Add(this.pnlLater);
this.panel3.Controls.Add(this.chkLater);
this.panel3.Dock = System.Windows.Forms.DockStyle.Top;
this.panel3.Location = new System.Drawing.Point(0, 23);
this.panel3.Name = "panel3";
this.panel3.Padding = new System.Windows.Forms.Padding(6);
this.panel3.Size = new System.Drawing.Size(291, 79);
this.panel3.TabIndex = 2;
//
// pnlLater
//
this.pnlLater.Controls.Add(this.label5);
this.pnlLater.Controls.Add(this.dtpTime);
this.pnlLater.Controls.Add(this.dtpDate);
this.pnlLater.Dock = System.Windows.Forms.DockStyle.Top;
this.pnlLater.Enabled = false;
this.pnlLater.Location = new System.Drawing.Point(6, 23);
this.pnlLater.Name = "pnlLater";
this.pnlLater.Padding = new System.Windows.Forms.Padding(6);
this.pnlLater.Size = new System.Drawing.Size(279, 37);
this.pnlLater.TabIndex = 3;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(105, 15);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(18, 13);
this.label5.TabIndex = 5;
this.label5.Text = "@";
//
// dtpTime
//
this.dtpTime.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dtpTime.CustomFormat = "HH:mm";
this.dtpTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dtpTime.Location = new System.Drawing.Point(129, 9);
this.dtpTime.Name = "dtpTime";
this.dtpTime.ShowUpDown = true;
this.dtpTime.Size = new System.Drawing.Size(133, 20);
this.dtpTime.TabIndex = 4;
//
// dtpDate
//
this.dtpDate.Format = System.Windows.Forms.DateTimePickerFormat.Short;
this.dtpDate.Location = new System.Drawing.Point(9, 9);
this.dtpDate.Name = "dtpDate";
this.dtpDate.Size = new System.Drawing.Size(90, 20);
this.dtpDate.TabIndex = 3;
//
// chkLater
//
this.chkLater.AutoSize = true;
this.chkLater.Dock = System.Windows.Forms.DockStyle.Top;
this.chkLater.Location = new System.Drawing.Point(6, 6);
this.chkLater.Name = "chkLater";
this.chkLater.Size = new System.Drawing.Size(279, 17);
this.chkLater.TabIndex = 4;
this.chkLater.Text = "Process Later";
this.chkLater.UseVisualStyleBackColor = true;
this.chkLater.CheckedChanged += new System.EventHandler(this.chkLater_CheckedChanged);
//
// label4
//
this.label4.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.label4.Dock = System.Windows.Forms.DockStyle.Top;
this.label4.Location = new System.Drawing.Point(0, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(291, 23);
this.label4.TabIndex = 3;
this.label4.Text = "Process";
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// expandableSplitter1
//
this.expandableSplitter1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter1.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter1.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.expandableSplitter1.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter1.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter1.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.expandableSplitter1.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.expandableSplitter1.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.expandableSplitter1.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.expandableSplitter1.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
this.expandableSplitter1.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
this.expandableSplitter1.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61)))));
this.expandableSplitter1.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94)))));
this.expandableSplitter1.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2;
this.expandableSplitter1.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground;
this.expandableSplitter1.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter1.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter1.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.expandableSplitter1.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
this.expandableSplitter1.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207)))));
this.expandableSplitter1.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.expandableSplitter1.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
this.expandableSplitter1.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
this.expandableSplitter1.Location = new System.Drawing.Point(385, 0);
this.expandableSplitter1.Name = "expandableSplitter1";
this.expandableSplitter1.Size = new System.Drawing.Size(6, 525);
this.expandableSplitter1.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007;
this.expandableSplitter1.TabIndex = 4;
this.expandableSplitter1.TabStop = false;
//
// panelEx1
//
this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control;
this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.panelEx1.Controls.Add(this.sideNav1);
this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx1.Dock = System.Windows.Forms.DockStyle.Left;
this.panelEx1.Location = new System.Drawing.Point(0, 0);
this.panelEx1.Name = "panelEx1";
this.panelEx1.Size = new System.Drawing.Size(385, 525);
this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center;
this.panelEx1.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.panelEx1.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.panelEx1.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.panelEx1.Style.GradientAngle = 90;
this.panelEx1.TabIndex = 0;
this.panelEx1.Text = "panelEx1";
//
// sideNav1
//
this.sideNav1.BackColor = System.Drawing.SystemColors.Control;
this.sideNav1.Controls.Add(this.sideNavPanel6);
this.sideNav1.Controls.Add(this.sideNavPanel5);
this.sideNav1.Controls.Add(this.sideNavPanel1);
this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNav1.EnableClose = false;
this.sideNav1.EnableMaximize = false;
this.sideNav1.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] {
this.sideNavItem1,
this.separator1,
this.sideNavItmCheck,
this.sideNavItmUsers,
this.sideNavItmReports,
this.sideNavItmExit});
this.sideNav1.Location = new System.Drawing.Point(0, 0);
this.sideNav1.Name = "sideNav1";
this.sideNav1.Padding = new System.Windows.Forms.Padding(1);
this.sideNav1.Size = new System.Drawing.Size(385, 525);
this.sideNav1.TabIndex = 3;
this.sideNav1.Text = "sideNav1";
//
// sideNavPanel6
//
this.sideNavPanel6.Controls.Add(this.btnUAC);
this.sideNavPanel6.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel6.Location = new System.Drawing.Point(88, 31);
this.sideNavPanel6.Name = "sideNavPanel6";
this.sideNavPanel6.Size = new System.Drawing.Size(292, 493);
this.sideNavPanel6.TabIndex = 14;
//
// sideNavPanel5
//
this.sideNavPanel5.Controls.Add(this.btn_ShowUsers);
this.sideNavPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel5.Location = new System.Drawing.Point(88, 31);
this.sideNavPanel5.Name = "sideNavPanel5";
this.sideNavPanel5.Size = new System.Drawing.Size(292, 493);
this.sideNavPanel5.TabIndex = 14;
this.sideNavPanel5.Visible = false;
//
// btn_ShowUsers
//
this.btn_ShowUsers.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btn_ShowUsers.Checked = true;
this.btn_ShowUsers.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btn_ShowUsers.Location = new System.Drawing.Point(57, 37);
this.btn_ShowUsers.Name = "btn_ShowUsers";
this.btn_ShowUsers.Size = new System.Drawing.Size(171, 23);
this.btn_ShowUsers.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.btn_ShowUsers, new DevComponents.DotNetBar.SuperTooltipInfo("Show Users", "", "This will return all of the users currently with open sessions in the database an" +
"d the details of any items they have checked out.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 80)));
this.btn_ShowUsers.TabIndex = 0;
this.btn_ShowUsers.Text = "Show Users";
this.btn_ShowUsers.Click += new System.EventHandler(this.btn_ShowUsers_Click);
//
// sideNavPanel1
//
this.sideNavPanel1.Controls.Add(this.warningBox3);
this.sideNavPanel1.Controls.Add(this.labelX7);
this.sideNavPanel1.Controls.Add(this.line1);
this.sideNavPanel1.Controls.Add(this.swCkObsoleteROData);
this.sideNavPanel1.Controls.Add(this.swHiddenDataLocs);
this.sideNavPanel1.Controls.Add(this.labelX3);
this.sideNavPanel1.Controls.Add(this.labelX2);
this.sideNavPanel1.Controls.Add(this.swCkOrphanDataRecs);
this.sideNavPanel1.Controls.Add(this.labelX1);
this.sideNavPanel1.Controls.Add(this.btnRunCheck);
this.sideNavPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel1.Location = new System.Drawing.Point(88, 31);
this.sideNavPanel1.Name = "sideNavPanel1";
this.sideNavPanel1.Size = new System.Drawing.Size(292, 493);
this.sideNavPanel1.TabIndex = 2;
this.sideNavPanel1.Visible = false;
//
// warningBox3
//
this.warningBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
this.warningBox3.CloseButtonVisible = false;
this.warningBox3.Image = ((System.Drawing.Image)(resources.GetObject("warningBox3.Image")));
this.warningBox3.Location = new System.Drawing.Point(17, 207);
this.warningBox3.Margin = new System.Windows.Forms.Padding(4);
this.warningBox3.Name = "warningBox3";
this.warningBox3.OptionsButtonVisible = false;
this.warningBox3.Size = new System.Drawing.Size(264, 32);
this.warningBox3.TabIndex = 29;
this.warningBox3.Text = "<b>NOTE</b> These tools can take a long time to run";
//
// labelX7
//
this.labelX7.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX7.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX7.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX7.Location = new System.Drawing.Point(5, 3);
this.labelX7.Name = "labelX7";
this.labelX7.Size = new System.Drawing.Size(251, 22);
this.labelX7.TabIndex = 19;
this.labelX7.Text = "Check for these Data Issues:";
//
// line1
//
this.line1.BackColor = System.Drawing.Color.Transparent;
this.line1.Location = new System.Drawing.Point(8, 179);
this.line1.Name = "line1";
this.line1.Size = new System.Drawing.Size(285, 12);
this.line1.TabIndex = 18;
this.line1.Text = "line1";
//
// swCkObsoleteROData
//
//
//
//
this.swCkObsoleteROData.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swCkObsoleteROData.Location = new System.Drawing.Point(10, 99);
this.swCkObsoleteROData.Name = "swCkObsoleteROData";
this.swCkObsoleteROData.Size = new System.Drawing.Size(91, 22);
this.swCkObsoleteROData.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swCkObsoleteROData, new DevComponents.DotNetBar.SuperTooltipInfo("Obsolete RO Data", "", resources.GetString("swCkObsoleteROData.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 135)));
this.swCkObsoleteROData.SwitchClickTogglesValue = true;
this.swCkObsoleteROData.TabIndex = 14;
this.swCkObsoleteROData.Value = true;
this.swCkObsoleteROData.ValueObject = "Y";
this.swCkObsoleteROData.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
//
// swHiddenDataLocs
//
//
//
//
this.swHiddenDataLocs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swHiddenDataLocs.Location = new System.Drawing.Point(10, 71);
this.swHiddenDataLocs.Name = "swHiddenDataLocs";
this.swHiddenDataLocs.Size = new System.Drawing.Size(91, 22);
this.swHiddenDataLocs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swHiddenDataLocs, new DevComponents.DotNetBar.SuperTooltipInfo("Hidden Data Locations", "", resources.GetString("swHiddenDataLocs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.swHiddenDataLocs.SwitchClickTogglesValue = true;
this.swHiddenDataLocs.TabIndex = 15;
this.swHiddenDataLocs.Value = true;
this.swHiddenDataLocs.ValueObject = "Y";
this.swHiddenDataLocs.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
//
// labelX3
//
this.labelX3.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX3.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX3.Location = new System.Drawing.Point(107, 99);
this.labelX3.Name = "labelX3";
this.labelX3.Size = new System.Drawing.Size(154, 22);
this.superTooltip1.SetSuperTooltip(this.labelX3, new DevComponents.DotNetBar.SuperTooltipInfo("Obsolete RO Data", "", resources.GetString("labelX3.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 135)));
this.labelX3.TabIndex = 11;
this.labelX3.Text = "Obsolete RO Data";
//
// labelX2
//
this.labelX2.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX2.Location = new System.Drawing.Point(107, 71);
this.labelX2.Name = "labelX2";
this.labelX2.Size = new System.Drawing.Size(140, 22);
this.superTooltip1.SetSuperTooltip(this.labelX2, new DevComponents.DotNetBar.SuperTooltipInfo("Hidden Data Locations", "", resources.GetString("labelX2.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.labelX2.TabIndex = 12;
this.labelX2.Text = "Hidden Data Locations";
//
// swCkOrphanDataRecs
//
//
//
//
this.swCkOrphanDataRecs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swCkOrphanDataRecs.Location = new System.Drawing.Point(10, 43);
this.swCkOrphanDataRecs.Name = "swCkOrphanDataRecs";
this.swCkOrphanDataRecs.Size = new System.Drawing.Size(91, 22);
this.swCkOrphanDataRecs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swCkOrphanDataRecs, new DevComponents.DotNetBar.SuperTooltipInfo("Orphan Data Records", "", resources.GetString("swCkOrphanDataRecs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(275, 193)));
this.swCkOrphanDataRecs.SwitchClickTogglesValue = true;
this.swCkOrphanDataRecs.TabIndex = 9;
this.swCkOrphanDataRecs.Value = true;
this.swCkOrphanDataRecs.ValueObject = "Y";
this.swCkOrphanDataRecs.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
//
// labelX1
//
this.labelX1.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX1.Location = new System.Drawing.Point(107, 43);
this.labelX1.Name = "labelX1";
this.labelX1.Size = new System.Drawing.Size(172, 22);
this.superTooltip1.SetSuperTooltip(this.labelX1, new DevComponents.DotNetBar.SuperTooltipInfo("Orphan Data Records", "", resources.GetString("labelX1.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(275, 190)));
this.labelX1.TabIndex = 8;
this.labelX1.Text = "Orphan Data Records";
//
// btnRunCheck
//
this.btnRunCheck.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnRunCheck.Checked = true;
this.btnRunCheck.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnRunCheck.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnRunCheck.Location = new System.Drawing.Point(5, 150);
this.btnRunCheck.Name = "btnRunCheck";
this.btnRunCheck.Size = new System.Drawing.Size(286, 23);
this.btnRunCheck.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.btnRunCheck, new DevComponents.DotNetBar.SuperTooltipInfo("Run Check", "", "This will run the database check tools selected.\r\n\r\nClick on the on/off switches " +
"to turn on/off each tool.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 100)));
this.btnRunCheck.TabIndex = 7;
this.btnRunCheck.Text = "Run Check";
this.btnRunCheck.Click += new System.EventHandler(this.btnRunCheck_Click);
//
// sideNavItem1
//
this.sideNavItem1.IsSystemMenu = true;
this.sideNavItem1.Name = "sideNavItem1";
this.sideNavItem1.Symbol = "";
this.sideNavItem1.Text = "General\r\nTools";
//
// separator1
//
this.separator1.FixedSize = new System.Drawing.Size(3, 1);
this.separator1.Name = "separator1";
this.separator1.Padding.Bottom = 2;
this.separator1.Padding.Left = 6;
this.separator1.Padding.Right = 6;
this.separator1.Padding.Top = 2;
this.separator1.SeparatorOrientation = DevComponents.DotNetBar.eDesignMarkerOrientation.Vertical;
//
// sideNavItmCheck
//
this.sideNavItmCheck.Name = "sideNavItmCheck";
this.sideNavItmCheck.Panel = this.sideNavPanel1;
this.sideNavItmCheck.Symbol = "";
this.sideNavItmCheck.Text = "Check";
this.sideNavItmCheck.Click += new System.EventHandler(this.sideNavItmCheck_Click);
//
// sideNavItmUsers
//
this.sideNavItmUsers.Name = "sideNavItmUsers";
this.sideNavItmUsers.Panel = this.sideNavPanel5;
this.sideNavItmUsers.Symbol = "";
this.sideNavItmUsers.Text = "Users";
this.sideNavItmUsers.Click += new System.EventHandler(this.sideNavItmUsers_Click);
//
// sideNavItmReports
//
this.sideNavItmReports.Checked = true;
this.sideNavItmReports.Name = "sideNavItmReports";
this.sideNavItmReports.Panel = this.sideNavPanel6;
this.sideNavItmReports.Symbol = "";
this.sideNavItmReports.Text = "Reports";
this.sideNavItmReports.Click += new System.EventHandler(this.sideNavItmReports_Click);
//
// sideNavItmExit
//
this.sideNavItmExit.Name = "sideNavItmExit";
this.sideNavItmExit.Symbol = "";
this.sideNavItmExit.Text = "Exit";
this.sideNavItmExit.Click += new System.EventHandler(this.sideNavItmExit_Click);
//
// panelEx4
//
this.panelEx4.CanvasColor = System.Drawing.SystemColors.Control;
this.panelEx4.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.panelEx4.Controls.Add(this.progressSteps1);
this.panelEx4.Controls.Add(this.lblAdmToolProgressType);
this.panelEx4.DialogResult = System.Windows.Forms.DialogResult.OK;
this.panelEx4.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx4.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelEx4.Location = new System.Drawing.Point(0, 0);
this.panelEx4.Name = "panelEx4";
this.panelEx4.Size = new System.Drawing.Size(1177, 57);
this.panelEx4.Style.Alignment = System.Drawing.StringAlignment.Center;
this.panelEx4.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.panelEx4.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.panelEx4.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.panelEx4.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.panelEx4.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.panelEx4.Style.GradientAngle = 90;
this.panelEx4.TabIndex = 20;
//
// progressSteps1
//
this.progressSteps1.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.progressSteps1.BackgroundStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))));
this.progressSteps1.BackgroundStyle.Class = "ProgressSteps";
this.progressSteps1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.progressSteps1.ContainerControlProcessDialogKey = true;
this.progressSteps1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.progressSteps1.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] {
this.stepItem1,
this.stepItem2,
this.stepItem3,
this.stepItem4});
this.progressSteps1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
this.progressSteps1.Location = new System.Drawing.Point(123, 18);
this.progressSteps1.Name = "progressSteps1";
this.progressSteps1.Size = new System.Drawing.Size(1032, 26);
this.progressSteps1.TabIndex = 18;
//
// stepItem1
//
this.stepItem1.Maximum = 10;
this.stepItem1.Name = "stepItem1";
this.stepItem1.SymbolSize = 13F;
this.stepItem1.Text = "Discon";
//
// stepItem2
//
this.stepItem2.Maximum = 10;
this.stepItem2.Name = "stepItem2";
this.stepItem2.SymbolSize = 13F;
this.stepItem2.Text = "Non-Edit";
//
// stepItem3
//
this.stepItem3.Maximum = 10;
this.stepItem3.Name = "stepItem3";
this.stepItem3.SymbolSize = 13F;
this.stepItem3.Text = "RO Assoc";
//
// stepItem4
//
this.stepItem4.Maximum = 10;
this.stepItem4.Name = "stepItem4";
this.stepItem4.SymbolSize = 13F;
this.stepItem4.Text = "FST+Figs";
//
// lblAdmToolProgressType
//
this.lblAdmToolProgressType.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.lblAdmToolProgressType.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.lblAdmToolProgressType.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblAdmToolProgressType.Location = new System.Drawing.Point(19, 10);
this.lblAdmToolProgressType.Name = "lblAdmToolProgressType";
this.lblAdmToolProgressType.Size = new System.Drawing.Size(98, 34);
this.lblAdmToolProgressType.TabIndex = 19;
this.lblAdmToolProgressType.Text = "Checking:";
//
// buttonItem1
//
this.buttonItem1.Name = "buttonItem1";
this.buttonItem1.Text = "buttonItem1";
//
// superTooltip1
//
this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
//
// btnUAC
//
this.btnUAC.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnUAC.Checked = true;
this.btnUAC.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnUAC.Location = new System.Drawing.Point(35, 30);
this.btnUAC.Name = "btnUAC";
this.btnUAC.Size = new System.Drawing.Size(187, 23);
this.btnUAC.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnUAC.TabIndex = 0;
this.btnUAC.Text = "Run User Access Control Report";
this.superTooltip1.SetSuperTooltip(this.btnUAC, new DevComponents.DotNetBar.SuperTooltipInfo("UAC Report", "", "This will return a report containing info on when users were added to PROMS and when users were added to specific PROMS security groups.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnUAC.Click += new System.EventHandler(this.btnUAC_Click);
//
// frmGenTools
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1177, 586);
this.Controls.Add(this.splitContainer3);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "frmGenTools";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "General Tools";
this.Load += new System.EventHandler(this.frmGenTools_Load);
this.splitContainer3.Panel1.ResumeLayout(false);
this.splitContainer3.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
this.splitContainer3.ResumeLayout(false);
this.panelEx3.ResumeLayout(false);
this.panelEx3.PerformLayout();
this.panel1.ResumeLayout(false);
this.panelEx2.ResumeLayout(false);
this.panelEx2.PerformLayout();
this.panel3.ResumeLayout(false);
this.panel3.PerformLayout();
this.pnlLater.ResumeLayout(false);
this.pnlLater.PerformLayout();
this.panelEx1.ResumeLayout(false);
this.sideNav1.ResumeLayout(false);
this.sideNav1.PerformLayout();
this.sideNavPanel6.ResumeLayout(false);
this.sideNavPanel5.ResumeLayout(false);
this.sideNavPanel1.ResumeLayout(false);
this.panelEx4.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer3;
private DevComponents.DotNetBar.PanelEx panelEx3;
private System.Windows.Forms.TextBox txtResults;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Button btnClear;
private System.Windows.Forms.Label label3;
private DevComponents.DotNetBar.PanelEx panelEx2;
private System.Windows.Forms.TextBox txtProcess;
private System.Windows.Forms.ProgressBar pbProcess;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Panel pnlLater;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.DateTimePicker dtpTime;
private System.Windows.Forms.DateTimePicker dtpDate;
private System.Windows.Forms.CheckBox chkLater;
private System.Windows.Forms.Label label4;
private DevComponents.DotNetBar.Controls.SideNav sideNav1;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel1;
private DevComponents.DotNetBar.LabelX labelX7;
private DevComponents.DotNetBar.Controls.Line line1;
private DevComponents.DotNetBar.Controls.SwitchButton swCkObsoleteROData;
private DevComponents.DotNetBar.Controls.SwitchButton swHiddenDataLocs;
private DevComponents.DotNetBar.LabelX labelX3;
private DevComponents.DotNetBar.LabelX labelX2;
private DevComponents.DotNetBar.Controls.SwitchButton swCkOrphanDataRecs;
private DevComponents.DotNetBar.LabelX labelX1;
private DevComponents.DotNetBar.ButtonX btnRunCheck;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel5;
private DevComponents.DotNetBar.ButtonX btn_ShowUsers;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel6;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItem1;
private DevComponents.DotNetBar.Separator separator1;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmCheck;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmUsers;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmReports;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmExit;
private DevComponents.DotNetBar.LabelX lblAdmToolProgressType;
private DevComponents.DotNetBar.ProgressSteps progressSteps1;
private DevComponents.DotNetBar.StepItem stepItem1;
private DevComponents.DotNetBar.StepItem stepItem2;
private DevComponents.DotNetBar.StepItem stepItem3;
private DevComponents.DotNetBar.StepItem stepItem4;
private DevComponents.DotNetBar.SuperTooltip superTooltip1;
private DevComponents.DotNetBar.ExpandableSplitter expandableSplitter2;
private DevComponents.DotNetBar.ExpandableSplitter expandableSplitter1;
private DevComponents.DotNetBar.PanelEx panelEx1;
private DevComponents.DotNetBar.PanelEx panelEx4;
private DevComponents.DotNetBar.Controls.WarningBox warningBox3;
private DevComponents.DotNetBar.ButtonItem buttonItem1;
private DevComponents.DotNetBar.ButtonX btnUAC;
}
}

View File

@@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="superTooltip1.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=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="warningBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="swCkObsoleteROData.SuperTooltip" xml:space="preserve">
<value>Referenced Objects databases are associated with a procedure set (such as Working Draft).
RO paths, ROFST versions, and the contents of RO figures are stored in the database when referenced. This tool will identify stored RO Paths, ROFST versions, and Figures that are no longer used.
</value>
</data>
<data name="swHiddenDataLocs.SuperTooltip" xml:space="preserve">
<value>Typically, a section in PROMS only has sub-sections or steps. When and existing section is divided into sub-sections, the resulting main section might have both.
When this occurs, the step data in the main section can be marked as non-editable. The user can no longer get to these steps and they can become forgotten as PROMS will ignore these non-editable steps when the procedure is printed.
This tool will identify if the database has non-editable steps and provide a listing of these steps. The use can then go to these main sections, make them editable via the property page, and delete or move these steps.
This tool may take an extended period of time to execute.
</value>
</data>
<data name="labelX3.SuperTooltip" xml:space="preserve">
<value>Referenced Objects databases are associated with a procedure set (such as Working Draft).
RO paths, ROFST versions, and the contents of RO figures are stored in the database when referenced. This tool will identify stored RO Paths, ROFST versions, and Figures that are no longer used.
</value>
</data>
<data name="labelX2.SuperTooltip" xml:space="preserve">
<value>Typically, a section in PROMS only has sub-sections or steps. When and existing section is divided into sub-sections, the resulting main section might have both.
When this occurs, the step data in the main section can be marked as non-editable. The user can no longer get to these steps and they can become forgotten as PROMS will ignore these non-editable steps when the procedure is printed.
This tool will identify if the database has non-editable steps and provide a listing of these steps. The use can then go to these main sections, make them editable via the property page, and delete or move these steps.
This tool may take an extended period of time to execute.
</value>
</data>
<data name="swCkOrphanDataRecs.SuperTooltip" xml:space="preserve">
<value>Everything in PROMS is inter-related. A working draft knows what is its first procedure and a procedure knows what is its first step. Likewise, a procedure knows what procedure is before it and after it.
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible. This tool detects any orphaned items in the database.
This tool may take an extended period of time to execute.
</value>
</data>
<data name="labelX1.SuperTooltip" xml:space="preserve">
<value>Everything in PROMS is inter-related. A working draft knows what is its first procedure and a procedure knows what is its first step. Likewise, a procedure knows what procedure is before it and after it.
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible. This tool detects any orphaned items in the database.
This tool may take an extended period of time to execute.
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>46</value>
</metadata>
</root>

View File

@@ -1211,7 +1211,6 @@ namespace VEPROMS
this.cbUCFLForSetOnly.Size = new System.Drawing.Size(105, 19);
this.cbUCFLForSetOnly.TabIndex = 5;
this.cbUCFLForSetOnly.Text = "Load For Set Only";
//this.cbUCFLForSetOnly.CheckedChanged += new System.EventHandler(this.cbUCFLForSetOnly_CheckedChanged);
//
// cbUCFLUseAll
//
@@ -1227,7 +1226,6 @@ namespace VEPROMS
this.cbUCFLUseAll.Size = new System.Drawing.Size(105, 19);
this.cbUCFLUseAll.TabIndex = 4;
this.cbUCFLUseAll.Text = "Load Use All";
//this.cbUCFLUseAll.CheckedChanged += new System.EventHandler(this.cbUCFLUseAll_CheckedChanged);
//
// cbUCFLOnlyImport
//
@@ -1243,7 +1241,6 @@ namespace VEPROMS
this.cbUCFLOnlyImport.Size = new System.Drawing.Size(105, 19);
this.cbUCFLOnlyImport.TabIndex = 3;
this.cbUCFLOnlyImport.Text = "Load Only Imported";
//this.cbUCFLOnlyImport.CheckedChanged += new System.EventHandler(this.cbUCFLOnlyImport_CheckedChanged);
//
// cbUCFLNotUsed
//
@@ -1259,7 +1256,6 @@ namespace VEPROMS
this.cbUCFLNotUsed.Size = new System.Drawing.Size(88, 19);
this.cbUCFLNotUsed.TabIndex = 2;
this.cbUCFLNotUsed.Text = "Load Not Used";
//this.cbUCFLNotUsed.CheckedChanged += new System.EventHandler(this.cbUCFLNotUsed_CheckedChanged);
//
// cbUCFIgnore
//
@@ -1275,7 +1271,6 @@ namespace VEPROMS
this.cbUCFIgnore.Size = new System.Drawing.Size(67, 19);
this.cbUCFIgnore.TabIndex = 1;
this.cbUCFIgnore.Text = "Ignore";
//this.cbUCFIgnore.CheckedChanged += new System.EventHandler(this.cbUCFIgnore_CheckedChanged);
//
// btnReset
//

View File

@@ -75,24 +75,6 @@ namespace VEPROMS
cbEnhancedDocumentSync.Checked = Settings.Default.SyncEnhancedDocuments;
cbSeparateWindows.Checked = Settings.Default.SeparateWindows;
txbxVisioPath.Text = Settings.Default.VisioPath;
//switch (Settings.Default.UCFImportOpt) // see dlgExportImport for descripton of these options.
//{
// case 0:
// cbUCFIgnore.Checked = true;
// break;
// case 1:
// cbUCFLNotUsed.Checked = true;
// break;
// case 2:
// cbUCFLOnlyImport.Checked = true;
// break;
// case 3:
// cbUCFLUseAll.Checked = true;
// break;
// case 4:
// cbUCFLForSetOnly.Checked = true;
// break;
//}
//CSM - C2024-031 - Getting User Settings
//and set checkboxes based on what they are set to
@@ -118,6 +100,7 @@ namespace VEPROMS
Settings.Default.PastePlainText = cbPastePlainText.Checked;
}
}
private void cbPasteNoReturns_CheckedChanged(object sender, EventArgs e)
{
if (!_initializing)
@@ -193,7 +176,6 @@ namespace VEPROMS
private bool ss_SyncEnhancedDocuments;
private bool ss_SeparateWindows;
private string ss_VisioPath;
//private int ss_UCFImportOpt;
private void SaveStartingSettings()
{
@@ -210,7 +192,6 @@ namespace VEPROMS
ss_SyncEnhancedDocuments = Settings.Default.SyncEnhancedDocuments;
ss_SeparateWindows = Settings.Default.SeparateWindows;
ss_VisioPath = Settings.Default.VisioPath;
//ss_UCFImportOpt = Settings.Default.UCFImportOpt;
}
private void RestoreStartingSettings() // used with the cancel button
@@ -227,7 +208,6 @@ namespace VEPROMS
Settings.Default.SyncEnhancedDocuments = ss_SyncEnhancedDocuments;
Settings.Default.SeparateWindows = ss_SeparateWindows;
Settings.Default.VisioPath = ss_VisioPath;
//Settings.Default.UCFImportOpt = ss_UCFImportOpt;
}
@@ -315,45 +295,7 @@ namespace VEPROMS
Settings.Default.VisioPath = txbxVisioPath.Text;
}
//private void cbUCFIgnore_CheckedChanged(object sender, EventArgs e)
//{
// if (!_initializing)
// {
// Settings.Default.UCFImportOpt = 0;
// }
//}
//private void cbUCFLNotUsed_CheckedChanged(object sender, EventArgs e)
//{
// if (!_initializing)
// {
// Settings.Default.UCFImportOpt = 1;
// }
//}
//private void cbUCFLOnlyImport_CheckedChanged(object sender, EventArgs e)
//{
// if (!_initializing)
// {
// Settings.Default.UCFImportOpt = 2;
// }
//}
//private void cbUCFLUseAll_CheckedChanged(object sender, EventArgs e)
//{
// if (!_initializing)
// {
// Settings.Default.UCFImportOpt = 3;
// }
//}
//private void cbUCFLForSetOnly_CheckedChanged(object sender, EventArgs e)
//{
// if (!_initializing)
// {
// Settings.Default.UCFImportOpt = 4;
// }
//}
private void cbOTRemember_CheckedChanged(object sender, EventArgs e)
{
cbOTAutoOpen.Enabled = cbOTAutoOpen.Visible = cbShwRplWrdsColor.Checked;

View File

@@ -71,9 +71,12 @@ namespace VEPROMS
this.labelItem10 = new DevComponents.DotNetBar.LabelItem();
this.bottomProgBar = new DevComponents.DotNetBar.ProgressBarItem();
this.labelItem9 = new DevComponents.DotNetBar.LabelItem();
this.lblPreEditView = new DevComponents.DotNetBar.LabelItem();
this.lblEditView = new DevComponents.DotNetBar.LabelItem();
this.labelItem11 = new DevComponents.DotNetBar.LabelItem();
this.btnItemInfo = new DevComponents.DotNetBar.ButtonItem();
this.btnFilter = new DevComponents.DotNetBar.ButtonItem();
this.txtFilter = new DevComponents.DotNetBar.TextBoxItem();
this.lblItemID = new DevComponents.DotNetBar.LabelItem();
this.lblResolution = new DevComponents.DotNetBar.LabelItem();
this.btnEditItem = new DevComponents.DotNetBar.ButtonItem();
@@ -524,9 +527,12 @@ namespace VEPROMS
this.bottomBar.Font = new System.Drawing.Font("Segoe UI", 9F);
this.bottomBar.IsMaximized = false;
this.bottomBar.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] {
this.btnFilter,
this.txtFilter,
this.labelItem10,
this.bottomProgBar,
this.labelItem9,
this.lblPreEditView,
this.lblEditView,
this.labelItem11,
this.btnItemInfo,
@@ -546,6 +552,21 @@ namespace VEPROMS
this.bottomBar.TabStop = false;
this.bottomBar.Text = "bar1";
//
// btnFilter
//
this.btnFilter.Name = "btnFilter";
this.btnFilter.Text = "Tree View Search:";
this.btnFilter.Click += SubmitFilter;
//
// txtFilter
//
this.txtFilter.TextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F);
this.txtFilter.Name = "txtFilter";
this.txtFilter.TextBoxWidth = 120;
this.txtFilter.TextBox.TabIndex = 0;
this.txtFilter.TextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.FilterEnterKey);
this.superTooltip1.SetSuperTooltip(this.txtFilter, new DevComponents.DotNetBar.SuperTooltipInfo("Filter", "", "This will filter the Procedure Tree in PROMS to Procedures containing entered words in the Procedure Number or Title. Press enter or the Tree View Search button to submit.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
//
// txtSearch
//
this.txtSearch.Dock = System.Windows.Forms.DockStyle.Right;
@@ -647,6 +668,11 @@ namespace VEPROMS
this.lblEditView.ForeColor = System.Drawing.SystemColors.MenuText;
this.lblEditView.Name = "lblEditView";
this.lblEditView.Text = "Edit";
// lblEditView
//
this.lblPreEditView.BorderSide = DevComponents.DotNetBar.eBorderSide.Left;
this.lblPreEditView.BorderType = DevComponents.DotNetBar.eBorderType.Bump;
this.lblPreEditView.Name = "lblPreEditView";
//
// labelItem11
//
@@ -1744,8 +1770,11 @@ namespace VEPROMS
private DevComponents.DotNetBar.TabItem tabItemLibDocs;
private Volian.Controls.Library.DisplayTags displayTags;
private Volian.Controls.Library.DisplaySearch displaySearch1;
private DevComponents.DotNetBar.LabelItem lblPreEditView;
private DevComponents.DotNetBar.LabelItem lblEditView;
private DevComponents.DotNetBar.ButtonItem btnItemInfo;
private DevComponents.DotNetBar.ButtonItem btnFilter;
private DevComponents.DotNetBar.TextBoxItem txtFilter;
private DevComponents.DotNetBar.ButtonItem btnFixMSWord;
private Volian.Controls.Library.DisplayBookMarks displayBookMarks;
//private DevComponents.DotNetBar.LabelItem lblLocked;

View File

@@ -22,6 +22,9 @@ using Volian.Base.Library;
using Volian.Print.Library;
using JR.Utils.GUI.Forms;
using System.Diagnostics;
using System.Linq;
using System.Collections.Concurrent;
using System.Threading.Tasks;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
@@ -534,6 +537,7 @@ namespace VEPROMS
tv.QPrintSection += new vlnTreeViewEvent(tv_QPrintSection);
tv.QPrintProcedure += new vlnTreeViewEvent(tv_QPrintProcedure);
tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures);
tv.PrintAllApprovedProcedures += new vlnTreeViewEvent(tv_PrintAllApprovedProcedures);
tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure);
tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures);
tv.ApproveSomeProcedures += new vlnTreeViewEvent(tv_ApproveSomeProcedures);
@@ -1213,6 +1217,26 @@ namespace VEPROMS
dvi.DocVersionConfig.SelectedSlave = 0;
}
// C2025-017 print all approved procedure to a specified folder
void tv_PrintAllApprovedProcedures(object sender, vlnTreeEventArgs args)
{
using (DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo)
{
if (dvi == null) return;
tc.SaveCurrentEditItem(); // save the current edit item if user happens to be editing a procedure
// add a diaglog to prompt for the path inwhich to put the approved pdfs
int currentChildSetting = dvi.DocVersionConfig.SelectedSlave;
dvi.DocVersionConfig.SelectedSlave = args.UnitIndex; // set to selected child - will be -1 for non Parent/Child
dlgPrintAllApprovedProcedures dlgPrnAllAprv = new dlgPrintAllApprovedProcedures(dvi);
dlgPrnAllAprv.ShowDialog(this);
dvi.DocVersionConfig.SelectedSlave = currentChildSetting; // set back to what it was
}
}
void tv_PrintProcedure(object sender, vlnTreeEventArgs args)
{
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
@@ -2008,6 +2032,9 @@ namespace VEPROMS
private DevComponents.DotNetBar.ButtonItem btnAdministrativeTools;
private DevComponents.DotNetBar.ButtonItem btnSecurity;
private DevComponents.DotNetBar.ButtonItem btnFormats;
private DevComponents.DotNetBar.ButtonItem btnGeneralTools;
private TabItemsToClose _MyCloseTabList = new TabItemsToClose();
public TabItemsToClose MyCloseTabList
@@ -2216,11 +2243,22 @@ namespace VEPROMS
btnAdministrativeTools.Click += new EventHandler(btnAdministrativeTools_Click);
btnAdmin.SubItems.Add(btnAdministrativeTools);
//general Tools
btnGeneralTools = new ButtonItem("btnGeneralTools", "General Tools");
btnGeneralTools.Visible = btnGeneralTools.Enabled = true;
btnGeneralTools.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
btnGeneralTools.CanCustomize = false;
btnGeneralTools.Image = global::VEPROMS.Properties.Resources.toolbox;
btnGeneralTools.Click += new EventHandler(btnGeneralTools_Click);
itemContainer3.SubItems.Add(btnGeneralTools);
// C2025-031 added tool tip messages
this.superTooltip1.SetSuperTooltip(btnManageSecurity, new SuperTooltipInfo("Manage Security", "", "Add, Modify, and Delete PROMS User Access", null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", "", "WARNING this will \nREMOVE ALL PROMS USERS and Reset to the\nOriginal Volian Defaults", null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools", "", "Open the PROMS Adminstration Tools Window", null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats", "", "Install New Formats \n or Re-Install Formats", null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnGeneralTools, new SuperTooltipInfo("General Tools", "", "Open the PROMS General Tools Window", null, null, eTooltipColor.Gray));
try
{
@@ -2456,6 +2494,7 @@ namespace VEPROMS
int _ItemID = (int)TabState["ItemID"];
ItemInfo _Procedure = ItemInfo.Get(_ItemID);
// Open procedure in the editor.
if (_Procedure == null) continue; //skip and continue with foreach
OpenItem(_Procedure);
// SelectedStepTabPanel needs to be set so the print buttons on the ribbon will work.
SelectedStepTabPanel = tc.MyEditItem.MyStepPanel.MyStepTabPanel;
@@ -2735,6 +2774,199 @@ namespace VEPROMS
}
}
//C2024-036 IntelliSense
// Recursively Expand the Tree
// up to the procedure level
// Since items are only loaded as they are expanded,
// this is needed to search for matching text.
private void LoadAllProcedures(VETreeNode tn)
{
if (tn == null || tn.VEObject.IsProcedure)
return;
if (!tn.IsExpanded)
{ tn.Expand(); }
foreach (var nde in tn.Nodes)
LoadAllProcedures((VETreeNode)nde);
}
//C2024-036 IntelliSense
// Return a list containing all
// items in the Tree that match the entered text
// + any item that is a parent of those.
private List<IVEDrillDownReadOnly> GetMatchingTreeNodes(VETreeNode tn, string texttomatch)
{
List<IVEDrillDownReadOnly> matches = new List<IVEDrillDownReadOnly>();
//add any item that matches text
//and all parents back up to the top most item
if (tn.Text.ToLower().Contains(texttomatch.ToLower()))
{
matches.Add(tn.VEObject);
VETreeNode parent_tn = (VETreeNode) tn.Parent;
while (parent_tn != null)
{
if (!matches.Contains(parent_tn.VEObject))
{ matches.Add(parent_tn.VEObject); }
parent_tn = (VETreeNode)parent_tn.Parent;
}
}
if (!tn.VEObject.IsProcedure)
{
//if not at a procedure level,
//loop through sub items
//to check those for matches
foreach (VETreeNode nde in tn.Nodes.OfType<VETreeNode>())
{
if (nde.Text != "Dummy VETreeNode(IVEDrillDownReadOnly o)")
{
List<IVEDrillDownReadOnly> tmpmatches = GetMatchingTreeNodes(nde, texttomatch);
matches.AddRange(from mtch in tmpmatches
where !matches.Contains(mtch)
select mtch);
}
}
}
return matches;
}
//C2024-036 IntelliSense
// Recursively loop through the Child Nodes
// in the TreeView
// remove anything not in the list
private bool FilterTreeNodes(VETreeNode tn, List<IVEDrillDownReadOnly> filterlist)
{
if (tn == null)
return false;
if (!filterlist.Contains(tn.VEObject) && (tn != (VETreeNode) tv.Nodes[0])) //Note:Always keep the top node
{
return true;
}
else if (!tn.VEObject.IsProcedure)
{
//if not a procedure
//mark the sub-items that need removal
List<TreeNode> lst = (from VETreeNode nde in tn.Nodes.OfType<VETreeNode>()
where FilterTreeNodes(nde, filterlist)
select (TreeNode) nde).ToList();
//remove all items in the removal list
//need to do this separately as can't modify the collection while looping through it above
while (lst.Count > 0)
{
tn.Nodes.Remove(lst[0]);
lst.Remove(lst[0]);
}
//found a folder that matched that has no matching procedures
//if this is case, allow folder to be expanded
if (tn.Nodes.Count == 0 && filterlist.Contains(tn.VEObject))
{
tn.ChildrenLoaded = false;
tn.RefreshNode();
}
}
return false;
}
//C2024-036 IntelliSense
//Collection to block for task to complete
private BlockingCollection<string> blockingQueueFilter = new BlockingCollection<string>();
//C2024-036 IntelliSense
// When Text Changes, Perform the filtering
// Note that uses a blocking collection
// in case multiple events fire at the same time
// this is to prevent incorrect behavior when
//doing something like hitting backspace a bunch
private void SubmitFilter(object sender, EventArgs e)
{
//Consumer
Task.Run(() =>
{
//Blocks until a new filter is available
while (!blockingQueueFilter.IsCompleted)
{
string fltrtxt = blockingQueueFilter.Take();
ProcessFilter(fltrtxt);
}
});
//Producer
Task.Run(() => { blockingQueueFilter.Add(txtFilter?.Text); });
}
//C2024-036 IntelliSense
// When Enter Key is pressed in the TextBox
private void FilterEnterKey(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r') // enter key pressed
{
e.Handled = true;
SubmitFilter(sender, e);
}
}
//C2024-036 IntelliSense
// When Text Changes, Perform the filtering
// Note that uses Invoke to
// avoid multi-threaded problems
//with the blocking collection
private void ProcessFilter(string fltrtxt)
{
//Step 1: reload the base tree
VETreeNode tbase = (VETreeNode)tv.Nodes[0];
tbase.ChildrenLoaded = false;
this.Invoke((Action) (() => { tbase.RefreshNode(); }));
if (!string.IsNullOrEmpty(fltrtxt))
{
//Step 2: Expand all TreeNodes
this.Invoke((Action)(() => { LoadAllProcedures(tbase); }));
//Step 3: get items that match filter to those containing the title or number
List<IVEDrillDownReadOnly> filterlist = GetMatchingTreeNodes(tbase, fltrtxt);
//Step 4: filter to those containing the title or number
this.Invoke((Action)(() => {FilterTreeNodes(tbase, filterlist);}));
//Step 5: refresh the view
this.Invoke((Action)(() => {tv.Update();}));
//Step 6: select 1st procedure in tree view
this.Invoke((Action)(() => {SelectFirstProcedure(filterlist);}));
}
//Step 7: set progress bar as done
this.Invoke((Action)(() => {ProgBarText = "Filtering Complete";}));
}
//C2024-036 IntelliSense
//Gives Focus to last child in first section of treeview
//then given focus to treeview
//so that can click enter and open 1st found item/procedure
void SelectFirstProcedure(List<IVEDrillDownReadOnly> filterlist)
{
TreeNode tn = tv.Nodes[0];
while (tn.Nodes.Count > 0 && filterlist.Contains(((VETreeNode) tn).VEObject))
{
tn = tn.Nodes[0];
}
tv.SelectedNode = tn;
tv.Enabled = true;
tv.SelectedNode.Collapse();
tv.Focus();
}
void btnPrevious_Click(object sender, EventArgs e)
{
CurrentID = FindPreviousLine();
@@ -2914,6 +3146,13 @@ namespace VEPROMS
frm.ShowDialog(this);
}
void btnGeneralTools_Click(object sender, EventArgs e)
{
frmGenTools frm = new frmGenTools(MySessionInfo, this);
frm.ProgressBar = bottomProgBar;
frm.ShowDialog(this);
}
private static VolianTimer _TimeActivity1 = new VolianTimer("frmVEPROMS.cs tmrCloseTabItems_Tick", 2108);
void tmrCloseTabItems_Tick(object sender, EventArgs e)

View File

@@ -213,14 +213,7 @@ namespace VEPROMS.CSLA.Library
[TypeConverter(typeof(ExpandableObjectConverter))]
public class Flags
{
//private bool? _CheckOffUCF;
//[DisplayName("UCF CheckOffs")]
//[Description("Additional UCF Check Offs and Sign Offs")]
//public bool? CheckOffUCF
//{
// get { return _CheckOffUCF; }
// set { _CheckOffUCF = value; }
//}
private bool? _PartialStepCompression;
[DisplayName("Partial Step Compression")]
[Description("Automatically compress last sub-steps to fit on page")]
@@ -272,41 +265,7 @@ namespace VEPROMS.CSLA.Library
}
#endregion ReplaceStrData
#region ReplaceStr
//[Flags]
//public enum E_ReplaceFlags : uint
//{
// High = 0x0001, // Do ReplaceWords in HIGH LEVEL STEPS
// RNO = 0x0002, // Do ReplaceWords in RNOS
// Caution = 0x0004, // Do ReplaceWords in CAUTIONS
// Note = 0x0008, // Do ReplaceWords in NOTES
// Table = 0x0010, // Do ReplaceWords in TABLES
// Substep = 0x0020, // Do ReplaceWords in SUBSTEPS
// Attach = 0x0040, // Do ReplaceWords in ATTACHMENTS
// Bkgd = 0x0080, // Do ReplaceWords in BACKGROUNDS
// DiffUnit = 0x0100, // Do ReplaceWords ONLY for different UNIT #
// TOC = 0x0200, // Do in auto table-of-contents
// StatTree = 0x0400,
// HLSSetpnt = 0x0800, // Do ReplaceWords in HighLevelStep SETPoiNTs
// Trans = 0x1000, // Do ReplaceWords in TRANSITIONS
// Setpoint = 0x2000, // Do ReplaceWords in SETPOINTS
// // Case Sensitivity Flags - default is off (Case Sensitive Replace)
// CaseInsens = 0x0000C000, // Do ReplaceWords for all words thatmatch, regardless of case,
// // and replace with the ReplaceWith string as is
// // B2019-022: do not support CaseInsensFirst & CaseInsensAll - there is no supporting replace word code:
// //CaseInsensFirst = 0x4000, // Do ReplaceWords for all words thatexactly match the ReplaceWord,
// // except the case of the first character may be different
// //CaseInsensAll = 0x8000, // Do ReplaceWords for all words that match the ReplaceWord, regardless of case
// Partials = 0x10000, // Do replace even on partial matches
// Plackeep = 0x20000, // Do replace in PlaceKeepers
// InSecTitle = 0x40000,
// BeforeTrans = 0x80000, // Only do replace if the string occurs immediately before a transition.
// BeforeList = 0x100000, // C2021-045 Only if the text ends with a colon ":"
// PageList = 0x200000, // F2021-053 Do replace words for PageList items that are ROs
// FirstWord = 0x400000, // C2021-056 Do only if is the first word in the text
// NotInRO = 0x800000 // B2022-015 BNPPalr: Determine whether RO text should have Replace Words applied
//}
[Serializable]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class ReplaceStr
@@ -319,15 +278,7 @@ namespace VEPROMS.CSLA.Library
get { return _State; }
set { _State = value; }
}
//private E_ReplaceFlags _Flag;
//[Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))]
//[XmlAttribute("Flag")]
//[DisplayName("Flags (Use In)")] // Note that [Description] is not used in collection items (that use collection editor)
//public E_ReplaceFlags Flag
//{
// get { return (E_ReplaceFlags)_Flag; }
// set { _Flag = value; }
//}
private string _ReplaceWord;
[XmlAttribute("ReplaceWord")]
[DisplayName("Replace Word")]
@@ -341,7 +292,6 @@ namespace VEPROMS.CSLA.Library
}
}
private string _ReplaceWith;
//[Editor(typeof(RtfEditor), typeof(System.Drawing.Design.UITypeEditor))]
[XmlAttribute("ReplaceWith")]
[DisplayName("With")]

View File

@@ -839,7 +839,7 @@ namespace VEPROMS.CSLA.Library
{
using (SqlCommand cmd = cn.CreateCommand())
{
cmd.CommandTimeout = Database.DefaultTimeout;
cmd.CommandTimeout = 0;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "vesp_RofstHeaderFinalizeLoad";

View File

@@ -2178,7 +2178,6 @@ namespace VEPROMS.CSLA.Library
// F2021-053: BNPP Alarm - need ability to have super/sub scripts in the text of Alarm Tables (ROs).
// if doing replace words for Page List items, the current item is not a step, use _DoReplWordInPageList flags this
if (_MyItemInfo.MyContent.Type < 20000 && !_DoReplWordInPageList) return Text; // for now only replace in steps.
//FormatConfig.ReplaceStrData rsl = _MyFormat.PlantFormat.FormatConfig.UCFandReplaceStrData;
ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList;
if (rsl.Count == 1 && (rsl[0].ReplaceWord == null || rsl[0].ReplaceWord == "")) return Text;
@@ -2196,7 +2195,6 @@ namespace VEPROMS.CSLA.Library
//int profileDepth = ProfileTimer.Push(">>>> DoReplaceWords2.ForLoop");
foreach (ReplaceStr rs in rsl)
{
//bool dopartial = (E_ReplaceFlags)(rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.Partials; // save it may need to be changed back to this code.
bool dopartial = (rs.Flag & E_ReplaceFlags.Partials) == E_ReplaceFlags.Partials; // from pre-UCF
if (!dopartial) // F2021-093: Partials moved into their own method and done first
{

View File

@@ -6111,23 +6111,7 @@ namespace VEPROMS.CSLA.Library
if (!SectionHasCheckOffs()) return null;
int stpCoIndx = CheckOffIndex(); // this step has a checkoff defined
if (stpCoIndx == -1) return null;
//if (stpCoIndx > 1)
//{
// if (ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffUCF && stpCoIndx >= 100)
// {
// // get index, if greater than 100, store that - otherwise store index down list.
// // if this format does not have ucf signoffs, indx is just the selected index from the combo box.
// foreach (CheckOff co in ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList)
// {
// if (stpCoIndx == co.Index)
// {
// stpCoIndx = (int)co.Index;
// break;
// }
// }
// }
// return ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList[stpCoIndx]; // DO override of CheckOffList[] to get ucf
//}
int sectCoIndx = SectionDefaultCheckOffIndex(); // no checkoff on step, see if there is a section default.
if (sectCoIndx == -1) return null;
if ((ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffOnHLSOnly && IsHigh)

View File

@@ -0,0 +1,42 @@
using System;
using Csla.Data;
using System.Data;
using System.Data.SqlClient;
//CSM - C2025-009 - Minimal Class for User based Reports
namespace VEPROMS.CSLA.Library
{
public static class UserReports
{
#region Get User Reports
//CSM - C2025-009 Report for tracking PROMS Users / security
public static DataTable GetUserAccessControlData()
{
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getUserAcessControl";
cm.CommandTimeout = Database.DefaultTimeout;
using (SqlDataAdapter da = new SqlDataAdapter(cm))
{
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
}
}
}
catch (Exception ex)
{
throw new DbCslaException("Error in getUserAcessControl Report: retrieving data failed", ex);
}
}
#endregion
}
}

View File

@@ -388,6 +388,7 @@
<Compile Include="Generated\ZTransition.cs" />
<Compile Include="Generated\ZTransitionInfo.cs" />
<Compile Include="Minimal\AnnotationstypeSections.cs" />
<Compile Include="Minimal\UserReports.cs" />
<Compile Include="Minimal\UserSettings.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="VEObjects\VEDrillDown.cs" />

View File

@@ -563,6 +563,11 @@ namespace Volian.Controls.Library
{
if (PrintAllProcedures != null) PrintAllProcedures(sender, args);
}
public event vlnTreeViewEvent PrintAllApprovedProcedures; //C2025-017 print all approved procedures
private void OnPrintAllApprovedProcedures(object sender, vlnTreeEventArgs args)
{
if (PrintAllApprovedProcedures != null) PrintAllApprovedProcedures(sender, args);
}
public event vlnTreeViewEvent SelectDateToStartChangeBars;
private void OnSelectDateToStartChangeBars(object sender, vlnTreeEventArgs args)
{
@@ -784,6 +789,7 @@ namespace Volian.Controls.Library
MenuItem mip = new MenuItem("Print All Procedures for");
MenuItem mia = new MenuItem("Approve All Procedures for");
MenuItem mis = new MenuItem("Approve Some Procedures for");
MenuItem mir = new MenuItem("Print All Approved Procedures for"); // C2025-017 print all approved procedures
int k = 0;
foreach (string s in dvi.UnitNames)
{
@@ -794,6 +800,8 @@ namespace Volian.Controls.Library
ma.Tag = k;
MenuItem ms = mis.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
ms.Tag = k;
MenuItem mr = mir.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); // C2025-017 print all approved procedures
mr.Tag = k;
}
//MenuItem mmp = mip.MenuItems.Add("All Units", new EventHandler(miMultiUnit_Click));
//mmp.Tag = 0;
@@ -804,6 +812,7 @@ namespace Volian.Controls.Library
cm.MenuItems.Add(mip);
cm.MenuItems.Add(mia);
cm.MenuItems.Add(mis);
cm.MenuItems.Add(mir); // C2025-017 print all approved procedures
}
else
{
@@ -811,6 +820,7 @@ namespace Volian.Controls.Library
cm.MenuItems.Add("Print All Procedures", new EventHandler(mi_Click));
cm.MenuItems.Add("Approve All Procedures", new EventHandler(mi_Click));
cm.MenuItems.Add("Approve Some Procedures", new EventHandler(mi_Click));
cm.MenuItems.Add("Print All Approved Procedures", new EventHandler(mi_Click));
}
cm.MenuItems.Add("Report All Procedures Inconsistencies", new EventHandler(mi_Click));
}
@@ -2035,6 +2045,9 @@ namespace Volian.Controls.Library
case "Create Time Critical Action Summary":
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Print All Approved Procedures for": //C2025-017 print all approved procedures
OnPrintAllApprovedProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
default:
if (mip.Text.StartsWith("Showing Change Bars Starting"))
OnSelectDateToStartChangeBars(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
@@ -2133,16 +2146,6 @@ namespace Volian.Controls.Library
OnPrintTransitionReport(this, new vlnTreeEventArgs(SelectedNode as VETreeNode));
return;
}
if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure")
{
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
@@ -2346,6 +2349,9 @@ namespace Volian.Controls.Library
//case "Check In Procedure Set":
// CheckInDocVersion(SelectedNode as VETreeNode);
// break;
case "Print All Approved Procedures": //C2025-017 print all approved procedures
OnPrintAllApprovedProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
break;
default:
if (mi.Text.StartsWith("Showing Change Bars Starting"))
OnSelectDateToStartChangeBars(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));

View File

@@ -4458,12 +4458,6 @@ namespace Volian.Print.Library
xloc_co = XOffset + (relX > 0 ? Width : 0) + relX;
}
}
// if there is ucf value for adjusting the alignment for checkoffs, use it:
//FormatConfig fc = PlantFormat.GetFormatConfig(formatInfo);
//if (fc != null && fc.PlantFormat.FormatData.CheckOffXOffAdj != null)
//{
// if (co.Index > 99) xloc_co += ((float)fc.PlantFormat.FormatData.CheckOffXOffAdj * 72);
//}
// CheckOffXtraLines was introduced for the additional lines needed for the longer signoffs
// for VCBA (&WST1), for F2016-061.