Compare commits

...

68 Commits

Author SHA1 Message Date
331ea86e6e C2024-005-Annotations-Cleanup 2024-07-17 13:19:58 -04:00
b496f8b9ed C2024-005-Annotations-Cleanup 2024-07-17 09:09:00 -04:00
518e8bb827 C2024-005-Annotations-Cleanup 2024-07-16 16:57:11 -04:00
7e60f06c66 C2024-005-Annotations-Cleanup 2024-07-16 16:31:21 -04:00
74866388e6 C2024-005-Annotations-Cleanup 2024-07-10 16:25:01 -04:00
9f36ccf029 C2024-005-Annotations-Cleanup 2024-07-10 08:34:59 -04:00
3c0fa4295f C2024-005-Annotations-Cleanup 2024-06-26 09:09:31 -04:00
d0474b22f9 Merge pull request 'C2022-029 - Export Single Procedure (Overwrite/Rename/Cancel)' (#341) from C2022-029 into Development
passed code review. ready for testing phase
2024-06-20 10:02:52 -04:00
5bd1f94be0 Merge pull request 'C2024-004' (#339) from C2024-004 into Development
code changes look good. ready for testing phase.
2024-06-19 14:12:03 -04:00
Kevin Laskey
629fe1b615 Updated to include passing teh selected tree node parent for cases where the only procedure in a folder is being replaced. otherwise i pass null for that as its not really used. 2024-06-19 13:50:52 -04:00
Kevin Laskey
c92b888ec2 Update to close the procedure when opened during the paste/replace option. 2024-06-18 10:48:28 -04:00
5df42daa71 Merge pull request 'C2019-047' (#337) from C2019-047 into Development
changes approved.  Ready for testing phase
2024-06-14 13:24:51 -04:00
Kevin Laskey
9349396d9a Updates to display tags page for inital load of RO images and other images, updates to set some pre values for resizing and ratios. 2024-06-14 11:46:08 -04:00
Kevin Laskey
38425a05f9 Updates to pass through image details to the tag setting. 2024-06-13 15:14:35 -04:00
Kevin Laskey
9d1b99b08e Update 2024-06-13 09:00:49 -04:00
Kevin Laskey
4f7a762bf1 Updated to use modified date, shortened code a bit. 2024-06-13 08:35:13 -04:00
Kevin Laskey
11cb2e0efd Updated message 2024-06-07 15:14:33 -04:00
78f58bea19 Merge pull request 'C2019-047 - Show figure size under tags when adding a new figure.' (#336) from C2019-047 into Development
changes are good. ready for testing phase.
2024-06-07 15:04:14 -04:00
Kevin Laskey
a2e830d0c3 Update for "cancel" button action 2024-06-07 14:42:26 -04:00
Kevin Laskey
2ffab17caf Updates for adding custom buttons 2024-06-07 14:17:43 -04:00
Kevin Laskey
49aba5c67b update 2024-06-07 10:34:46 -04:00
1b24177b68 Merge pull request 'B2024-036 - Removed Print button from V Menu' (#334) from B2024-036 into Development
Code changes look good.  OK to generate test exe.
2024-06-06 08:59:41 -04:00
bf7a967633 Merge pull request 'F2024-063 Beaver Valley requested that the section number be underlined at the top of the pages of the Two Column Attachment section and an extra space was added between the top continue message and first line of step text on that page.' (#333) from F2024-063_BeaverValley into Development
format only change. OK to move to testing phase.
2024-06-05 16:26:57 -04:00
f5669e50a8 F2024-063 Beaver Valley requested that the section number be underlined at the top of the pages of the Two Column Attachment section and an extra space was added between the top continue message and first line of step text on that page. 2024-06-05 16:27:08 -04:00
Kevin Laskey
2ae0d0d454 Update to ensure some size is presetned for the figure when adding a new. 2024-06-05 10:48:51 -04:00
Kevin Laskey
241785846e Update for displaying when a figure is selected or added (as opposed to a step or some other type of option) 2024-06-04 11:55:17 -04:00
Kevin Laskey
0d6fd6950c C2019-047 - Show the figure size adjustment panel before a figure is selected or inserted, so that they dont have to open/close the area to see it. 2024-06-04 09:18:58 -04:00
Kevin Laskey
bb99d6444c B2024-036 - Removed Print button from V Menu 2024-06-04 09:05:22 -04:00
Kevin Laskey
db4f114caf C2022-029 - Export Import changes, Set path automatically for single proc export, provide overwrite message on single prompt export. 2024-06-04 08:51:57 -04:00
80d83da9c9 Merge pull request 'B2024-035-Overwrite-settings.' (#331) from B2024-035 into Development
OK to generate test exe.
2024-05-29 16:56:39 -04:00
54e02e6263 B2024-035-Overwrite-settings. 2024-05-29 15:30:25 -04:00
c4af911f15 Merge pull request 'F2024-062 Removed the Unit number that was mistakenly added to the procedure steps section header.' (#330) from F2024-062_BNPP into Development
format only change.
2024-05-23 14:20:46 -04:00
f9690ee772 F2024-062 Removed the Unit number that was mistakenly added to the procedure steps section header. 2024-05-23 14:19:14 -04:00
623c6a7941 Merge pull request 'B2024-034 Fix "Overwrite PDF File" functionality in Print Dialog Box' (#329) from B2024-034 into Development
passed code review and ready for testing
2024-05-22 16:09:56 -04:00
7a5129208c B2024-034 Fix Overwrite PDF File. 2024-05-22 16:08:12 -04:00
e15c56f1e2 Merge pull request 'B2024-023: UI fixes for insert section with associated enhanced section' (#328) from B2024-023 into Development
ready to be tested
2024-05-22 09:04:55 -04:00
Kathy Ruffing
5d808e436a B2024-023: UI fixes for insert section with associated enhanced section 2024-05-22 08:51:22 -04:00
20e40a5c49 Merge pull request 'F2024-061 Added an AOP Deviation format for Beaver Valley.' (#326) from F2024-061 into Development
format only change
2024-05-20 10:57:51 -04:00
885dae812d F2024-061 Added an AOP Deviation format for Beaver Valley. 2024-05-20 10:56:13 -04:00
35bd91f7e8 Merge pull request 'F2024-060 For the Byron and Braidwood formats, adjusted the text widths on the edit screen to be closer to that of which is printed.' (#324) from F2024-060_ByBwd_Bckgnd into Development
format only change
2024-05-16 14:58:23 -04:00
305f2768bb F2024-060 For the Byron and Braidwood formats, adjusted the text widths on the edit screen to be closer to that of which is printed. 2024-05-16 14:58:09 -04:00
5f733161c6 Merge pull request 'C2024-001-Update-Baseline-Auto-Testing' (#322) from C2024-011 into Development
passed code review
2024-05-16 11:44:32 -04:00
4fc13acd1a Merge pull request 'B2024-030 On the Working Draft properties page, added a check to see if we need to create the folder(s) for the path typed into the PDF Location text box.' (#320) from B2024-030_SetOuptputPath into Development
Reviewed-on: #320
2024-05-14 15:41:41 -04:00
365f6a23c8 B2024-030 On the Working Draft properties page, added a check to see if we need to create the folder(s) for the path typed into the PDF Location text box. 2024-05-14 14:24:01 -04:00
331d5751c3 C2024-001-Update-Baseline-Auto-Testing 2024-05-14 11:41:45 -04:00
dfb965edbc Merge pull request 'B2024-028 consistent paste menuing in enhanced set' (#319) from B2024-028 into Development
good to test
2024-05-14 10:20:00 -04:00
Kathy Ruffing
c7cc69fd73 B2024-028 consistent paste menuing in enhanced set 2024-05-14 10:09:20 -04:00
d187aa885d Merge pull request 'B2024-032 Fix Click Quick Print' (#318) from B2024-032 into Development
code OK to be tested
2024-05-13 08:46:14 -04:00
b1b4535d9b B2024-032 Fix Click Quick Print 2024-05-12 16:42:24 -04:00
b085a727f0 Merge pull request 'B2024-031Fix for Transitions hyperlinks in PDFs' (#317) from B2024-031_PDF_HyperLinks_Fix into Development
Reviewed-on: #317
2024-05-10 07:46:43 -04:00
e548e1da63 B2024-031Fix for Transitions hyperlinks in PDFs 2024-05-09 16:47:52 -04:00
c320634d3d Merge pull request 'C2024-010' (#316) from C2024-010 into Development
OK to generate test executable
2024-05-09 15:25:55 -04:00
af889a8818 C2024-010 Add quick print to tabstepribbonReview 2024-05-09 14:10:16 -04:00
c265975cbe C2024-010 Add quick print to tabstepribbonReview 2024-05-08 17:32:06 -04:00
a41a398e7e Merge pull request 'B2024-026: page number transitions duplicate page number' (#314) from B2024-026 into Development
ready to build for testing
2024-05-08 13:53:13 -04:00
Kathy Ruffing
5edaf30601 B2024-026: page number transitions duplicate page number 2024-05-08 12:07:11 -04:00
df0c5259c0 Merge pull request 'C2024-007 When link information is created in a PDF during print, the link information includes the PDF file name of where the link is referencing. Logic was added to include any file prefix or suffix to the PDF file name that is saved in the link info…' (#313) from PDFLinks_Fix into Development
Reviewed-on: #313
2024-05-08 09:49:17 -04:00
10c25dbe44 C2024-007 When link information is created in a PDF during print, the link information includes the PDF file name of where the link is referencing. Logic was added to include any file prefix or suffix to the PDF file name that is saved in the link information so the Adobe can locate the file and open it when the use clicks on the link in the PDF. 2024-05-08 09:00:58 -04:00
2df37533a8 Merge pull request 'F2024-059 Customer requested an Asterisk Single Spaced List sub-step type. This was added to all Calaway formats' (#312) from F2024-059_Callaway into Development
format only changes
2024-05-07 16:07:55 -04:00
6392ee3f0f F2024-059 Customer requested an Asterisk Single Spaced List sub-step type. This was added to all Calaway formats 2024-05-07 16:00:36 -04:00
96ddce8b73 Merge pull request 'B2024-029 A newer version of Component One Flex Grid caused issues when creating a new table in PROMS. We are reverting back to the prior version of Flex Grid.' (#310) from GeneralDebugging into Development
no code review needed. Testing Source Control Document will satisfy QA.
2024-05-07 14:34:49 -04:00
c88caefe5d B2024-029 A newer version of Component One Flex Grid caused issues when creating a new table in PROMS. We are reverting back to the prior version of Flex Grid. 2024-05-07 14:32:57 -04:00
eb26b7a123 Merge pull request 'B2024-025 Older Parent/Child procedure sets use applicability tokens that do not include the “U-“ prefix.' (#309) from B2024-025_ApplicabilityTokens into Development
Reviewed-on: #309
2024-05-06 15:02:56 -04:00
c865b67398 B2024-025 Older Parent/Child procedure sets use applicability tokens that do not include the “U-“ prefix. 2024-05-06 13:49:03 -04:00
89814777b4 Merge pull request 'F2024-057 F2024-058 bullet symbom in ERG note, Allow the insert of sub-steps in Notes and Cautions' (#308) from GeneralDebugging into Development
format only change.
2024-04-26 16:21:23 -04:00
de7e2d5f2a F2024-057 F2024-058 bullet symbom in ERG note, Allow the insert of sub-steps in Notes and Cautions 2024-04-26 16:18:51 -04:00
f51866236f Merge pull request 'B2024-024 - Fixes issue when creating an Approved procedure import file (from Versions context menu) from a non-Parent/Child procedure set.' (#306) from GeneralDebugging into Development
Reviewed-on: #306
2024-04-26 10:08:30 -04:00
a9eec83382 B2024-024 - Fixes issue when creating an Approved procedure import file (from Versions context menu) from a non-Parent/Child procedure set. 2024-04-25 16:32:20 -04:00
71 changed files with 1372783 additions and 746 deletions

View File

@@ -241,6 +241,21 @@ namespace JR.Utils.GUI.Forms
return FlexibleMessageBoxForm.Show(owner, text, caption, buttons, icon, defaultButton);
}
/// <summary>
/// Shows the specified message box.
/// </summary>
/// <param name="owner">The owner.</param>
/// <param name="text">The text.</param>
/// <param name="caption">The caption.</param>
/// <param name="buttons">The buttons.</param>
/// <param name="icon">The icon.</param>
/// <param name="defaultButton">The default button.</param>
/// <returns>The dialog result.</returns>
public static DialogResult ShowCustom(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
{
return FlexibleMessageBoxForm.ShowCustom(null, text, caption, buttons, icon);
}
#endregion
#region Internal form class
@@ -420,15 +435,15 @@ namespace JR.Utils.GUI.Forms
private static readonly String STANDARD_MESSAGEBOX_SEPARATOR_SPACES = " ";
//These are the possible buttons (in a standard MessageBox)
private enum ButtonID { OK = 0, CANCEL, YES, NO, ABORT, RETRY, IGNORE };
private enum ButtonID { OK = 0, CANCEL, YES, NO, ABORT, RETRY, IGNORE, OVERWRITE, RENAME };
//These are the buttons texts for different languages.
//If you want to add a new language, add it here and in the GetButtonText-Function
private enum TwoLetterISOLanguageID { en, de, es, it };
private static readonly String[] BUTTON_TEXTS_ENGLISH_EN = { "OK", "Cancel", "&Yes", "&No", "&Abort", "&Retry", "&Ignore" }; //Note: This is also the fallback language
private static readonly String[] BUTTON_TEXTS_GERMAN_DE = { "OK", "Abbrechen", "&Ja", "&Nein", "&Abbrechen", "&Wiederholen", "&Ignorieren" };
private static readonly String[] BUTTON_TEXTS_SPANISH_ES = { "Aceptar", "Cancelar", "&Sí", "&No", "&Abortar", "&Reintentar", "&Ignorar" };
private static readonly String[] BUTTON_TEXTS_ITALIAN_IT = { "OK", "Annulla", "&Sì", "&No", "&Interrompi", "&Riprova", "&Ignora" };
private static readonly String[] BUTTON_TEXTS_ENGLISH_EN = { "OK", "Cancel", "&Yes", "&No", "&Abort", "&Retry", "&Ignore", "&Overwrite", "&Rename" }; //Note: This is also the fallback language
private static readonly String[] BUTTON_TEXTS_GERMAN_DE = { "OK", "Abbrechen", "&Ja", "&Nein", "&Abbrechen", "&Wiederholen", "&Ignorieren", "&Overwrite", "&Rename" };
private static readonly String[] BUTTON_TEXTS_SPANISH_ES = { "Aceptar", "Cancelar", "&Sí", "&No", "&Abortar", "&Reintentar", "&Ignorar", "&Overwrite", "&Rename" };
private static readonly String[] BUTTON_TEXTS_ITALIAN_IT = { "OK", "Annulla", "&Sì", "&No", "&Interrompi", "&Riprova", "&Ignora", "&Overwrite", "&Rename" };
#endregion
@@ -693,6 +708,7 @@ namespace JR.Utils.GUI.Forms
flexibleMessageBoxForm.CancelButton = flexibleMessageBoxForm.button3;
break;
case MessageBoxButtons.OK:
default:
@@ -709,16 +725,38 @@ namespace JR.Utils.GUI.Forms
flexibleMessageBoxForm.defaultButton = defaultButton;
}
#endregion
private static void SetDialogButtonsCustom(FlexibleMessageBoxForm flexibleMessageBoxForm)
{
flexibleMessageBoxForm.visibleButtonsCount = 3;
#region Private event handlers
flexibleMessageBoxForm.button1.Visible = true;
flexibleMessageBoxForm.button1.Text = flexibleMessageBoxForm.GetButtonText(ButtonID.CANCEL);
flexibleMessageBoxForm.button1.DialogResult = DialogResult.Abort;
/// <summary>
/// Handles the Shown event of the FlexibleMessageBoxForm control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
private void FlexibleMessageBoxForm_Shown(object sender, EventArgs e)
flexibleMessageBoxForm.button2.Visible = true;
flexibleMessageBoxForm.button2.Text = flexibleMessageBoxForm.GetButtonText(ButtonID.OVERWRITE);
flexibleMessageBoxForm.button2.DialogResult = DialogResult.Retry;
flexibleMessageBoxForm.button3.Visible = true;
flexibleMessageBoxForm.button3.Text = flexibleMessageBoxForm.GetButtonText(ButtonID.RENAME);
flexibleMessageBoxForm.button3.DialogResult = DialogResult.Ignore;
flexibleMessageBoxForm.ControlBox = false;
}
#endregion
#region Private event handlers
/// <summary>
/// Handles the Shown event of the FlexibleMessageBoxForm control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
private void FlexibleMessageBoxForm_Shown(object sender, EventArgs e)
{
int buttonIndexToFocus = 1;
Button buttonToFocus;
@@ -866,6 +904,46 @@ namespace JR.Utils.GUI.Forms
return flexibleMessageBoxForm.ShowDialog(owner);
}
/// <summary>
/// Shows the specified message box.
/// </summary>
/// <param name="owner">The owner.</param>
/// <param name="text">The text.</param>
/// <param name="caption">The caption.</param>
/// <param name="buttons">The buttons.</param>
/// <param name="icon">The icon.</param>
/// <param name="defaultButton">The default button.</param>
/// <returns>The dialog result.</returns>
public static DialogResult ShowCustom(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
{
//Create a new instance of the FlexibleMessageBox form
var flexibleMessageBoxForm = new FlexibleMessageBoxForm();
flexibleMessageBoxForm.ShowInTaskbar = false;
//Bind the caption and the message text
flexibleMessageBoxForm.CaptionText = caption;
flexibleMessageBoxForm.MessageText = text;
flexibleMessageBoxForm.FlexibleMessageBoxFormBindingSource.DataSource = flexibleMessageBoxForm;
//Set the buttons visibilities and texts. Also set a default button.
SetDialogButtonsCustom(flexibleMessageBoxForm);
//Set the dialogs icon. When no icon is used: Correct placement and width of rich text box.
SetDialogIcon(flexibleMessageBoxForm, icon);
//Set the font for all controls
flexibleMessageBoxForm.Font = FONT;
flexibleMessageBoxForm.richTextBoxMessage.Font = FONT;
//Calculate the dialogs start size (Try to auto-size width to show longest text row). Also set the maximum dialog size.
SetDialogSizes(flexibleMessageBoxForm, text, caption);
//Set the dialogs start position when given. Otherwise center the dialog on the current screen.
SetDialogStartPosition(flexibleMessageBoxForm, owner);
//Show the dialog
return flexibleMessageBoxForm.ShowDialog(owner);
}
#endregion
} //class FlexibleMessageBoxForm

View File

@@ -126,6 +126,7 @@
<Content Include="fmtall\BVPSAOPall.xml" />
<Content Include="fmtall\BVPSAtchall.xml" />
<Content Include="fmtall\BVPSBCKall.xml" />
<Content Include="fmtall\BVPSAOPDEVall.xml" />
<Content Include="fmtall\BVPSFlexDEVall.xml" />
<Content Include="fmtall\BVPSDEVall.xml" />
<Content Include="fmtall\BVPSNIBCKall.xml" />
@@ -406,6 +407,7 @@
<Content Include="genmacall\BVPSAOP.svg" />
<Content Include="genmacall\BVPSAtch.svg" />
<Content Include="genmacall\BVPSbck.svg" />
<Content Include="genmacall\BVPSAOPdev.svg" />
<Content Include="genmacall\BVPSFlexdev.svg" />
<Content Include="genmacall\BVPSdev.svg" />
<Content Include="genmacall\BVPSNIBCK.svg" />

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,5 +1,3 @@
Set NoCount On;
If (db_name() in('master','model','msdn','tempdb'))
@@ -22226,6 +22224,688 @@ Go
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_ListUnlinkedItems] Succeeded'
ELSE PRINT 'Procedure Creation: [vesp_ListUnlinkedItems] Error on Creation'
GO
/*
==========================================================================================================
Begin: C2024-004: KL - Update Copy Replace functionality, (remove ''copy of'')
==========================================================================================================
*/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[CopyItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [CopyItemAndChildren];
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Kevin Laskey
Modified Date: 07/09/2024
Description: Copy Item and its Children
==========================================================================================================
*/
CREATE PROCEDURE [dbo].[CopyItemAndChildren]
(
@StartItemID INT,
@DestFormatID INT,
@UserID NVARCHAR(100),
@NewStartItemID int output
)
WITH EXECUTE AS OWNER
AS
BEGIN TRY -- Try Block
--+-----------------------------------------------------------------+
--& BEGIN TRANSACTION to make these changes temporary &
--+-----------------------------------------------------------------+
BEGIN TRANSACTION
if exists (select * from tblitems where itemid = @StartItemID and DeleteStatus !=0)
BEGIN
RAISERROR ('###Cannot Paste Step###This step has been deleted',16,1)
RETURN
END
DECLARE @Children AS TABLE
(
ItemID INT PRIMARY KEY,
NewItemID INT,
ContentID INT,
NewContentID INT,
FormatID INT,
NewFormatID INT
)
DECLARE @NewDocuments AS TABLE
(
DocID INT PRIMARY KEY,
NewDocID INT
)
-- Locals
DECLARE @DTS DATETIME -- DTS of all New Items
DECLARE @StartContentID INT
Select @StartContentID = ContentID from Items where ItemID = @StartItemID
SET @DTS = GETDATE() -- Get the current Date and Time
-- Get a list of all of the Items to be copied based upon StartItemID and EndItemID
-- If the StartItemID = EndItemID then it is a single item and it's children
INSERT INTO @Children SELECT ItemID,ItemID,ContentID,ContentID,FormatID,FormatID FROM vefn_ChildItemsRange(@StartItemID,@StartItemID,null)
-- <<< Copy Contents >>>
-- Create new content rows to match the existing rows. Set the type to the Current ContentID temporarily
-- so that the new content rows can be associated with the existing content rows.
-- Rem 'Copy Of ' + before first [Number] for C2024-004 (KL)
INSERT INTO Contents
([Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID])
select CASE when [ContentID] = @StartContentID and [Type]<20000 then [Number] else [Number] end,
[Text],[ContentID],[FormatID],[Config],@DTS,@UserID
from Contents where ContentID in(Select ContentID from @Children)
-- Update the @Children with the NewConentIDs
--print 'A ' + cast(datediff(s,@dts,getdate()) as varchar(100))
UPDATE NN set NN.NewContentID = CC.ContentID
From Contents CC
Join @Children NN on NN.ContentID = CC.Type AND CC.DTS = @DTS and CC.UserID = @UserID
-- Reset the Type column in the Contents table with the Type column from the original Records.
--print 'B ' + cast(datediff(s,@dts,getdate()) as varchar(100))
DECLARE @SourceType INT
Select @SourceType = Type from Contents where ContentID = @StartContentID
if @SourceType = 0
BEGIN
UPDATE CC set CC.Type = CC2.Type, CC.DTS = CC2.DTS, CC.UserID = CC2.UserID
From Contents CC
Join @Children NN on NN.NewContentID = CC.ContentID
Join Contents CC2 on NN.ContentID = CC2.ContentID
END
else
BEGIN
UPDATE CC set CC.Type = CC2.Type
From Contents CC
Join @Children NN on NN.NewContentID = CC.ContentID
Join Contents CC2 on NN.ContentID = CC2.ContentID
END
--print 'B1 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- Contents are done
-- SELECT * From Contents where DTS = @DTS and UserID = @UserID
-- <<< Copy Grids >>>
INSERT INTO [Grids]([ContentID],[Data],[Config],[DTS],[UserID])
SELECT NN.[NewContentID],[Data],[Config],@DTS,@UserID
FROM [Grids] GG Join @Children NN on GG.ContentID = NN.ContentID
-- <<< Copy Images >>>
--print 'B2 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
INSERT INTO [Images]([ContentID],[ImageType],[FileName],[Data],[Config],[DTS],[UserID])
SELECT NN.[NewContentID],[ImageType],[FileName],[Data],[Config],@DTS,@UserID
FROM [Images] II Join @Children NN on II.ContentID = NN.ContentID
-- Create new item rows based upon the current item rows and the @Children table, with the NewContentIDs
--print 'B3 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
INSERT INTO [Items] ([PreviousID],[ContentID],[DTS],[UserID])
SELECT II.[PreviousID], -- Leave the PreviousID as is for now
NN.NewContentID, @DTS, @UserID
from @Children NN
join Items II on II.ContentID = NN.ContentID
-- Update the @Children with the NewItemIDs
--print 'B4 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
UPDATE NN set NN.NewItemID = II.ItemID
From Items II
Join @Children NN on NN.NewContentID = II.ContentID AND II.DTS = @DTS and II.UserID = @UserID
DECLARE @NewItemID int
SELECT @NewItemID = NewItemID
FROM @Children
WHERE ItemID = @StartItemID
--print 'B5 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
UPDATE NN SET NN.[NewFormatID] = CC.[FormatID]
FROM @Children NN
Join vefn_ChildItemsRange(@NewItemID,@NewItemID,@DestFormatID) CC
ON NN.NewItemID = CC.ItemID
-- The @Children table is now complete
--SELECT * From @Children
-- Update the PreviousID in the new Item rows, to the new ItemIDs based upon the old ItemIDs
--print 'B6 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
Update II Set II.[PreviousID] = NN.NewItemID
from Items II
Join @Children NN on NN.ItemID = II.PreviousID AND II.DTS = @DTS and II.UserID = @UserID
-- Get the new ItemIDs based upon the old ItemIDs
SELECT @NewStartItemID = NewItemID from @Children where ItemID = @StartItemID
--SELECT @NewEndItemID = NewItemID from @Children where ItemID = @EndItemID
-- Set the PreviousID for the starting Item to null temporarily.
-- This will be adjusted based upon where the step is inserted.
--print 'B7 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
Update Items Set PreviousID = null where ItemID = @NewStartItemID
if @SourceType = 0
BEGIN
UPDATE II SET II.DTS = II2.DTS, II.UserID = II2.UserID
From Items II
Join @Children NN on NN.NewItemID = II.ItemID
Join Items II2 on NN.ItemID = II2.ItemID
WHERE NN.ItemID = @StartItemID
END
--print 'C ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- Items are done
--SELECT * From Items where DTS = @DTS and UserID = @UserID
-- <<< Copy Parts >>>
INSERT INTO [Parts] ([ContentID],[FromType],[ItemID],[DTS],[UserID])
Select NNF.NewContentID,[FromType],NNT.NewItemID, @DTS, @UserID from Parts PP
JOIN @Children NNF on PP.ContentID = NNF.ContentID
JOIN @Children NNT on PP.ItemID = NNT.ItemID
--print 'D ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- Parts are done
-- SELECT * From Parts where DTS = @DTS and UserID = @UserID
-- <<< Copy Annotations >>>
INSERT INTO [Annotations] ([ItemID],[TypeID],[RtfText],[SearchText],[Config],[DTS],[UserID])
Select NewItemID, TypeID, RtfText, SearchText, Config, @DTS, @UserID
from Annotations AA Join @Children NN on AA.ItemID = NN.ItemID
--print 'E ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- Annotations are done
-- SELECT * From Annotations where DTS = @DTS and UserID = @UserID
-- <<< Copy Documents and Entries>>>
-- logic to create Entries for Library Documents
INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID])
SELECT NN.[NewContentID],EE.[DocID],@DTS,@UserID
FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID
JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') <> ''
-- Logic to create new documents for any documents used that do not have libtitles
INSERT INTO [Documents] ([LibTitle],[DocContent],[DocAscii],[Config],[DTS],[UserID],[FileExtension])
OUTPUT CAST(INSERTED.[LibTitle] as INT),INSERTED.[DocID] INTO @NewDocuments
SELECT str(DD.[DocID]),[DocContent],[DocAscii],[Config],@DTS,@UserID,[FileExtension]
FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID
JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') = ''
UPDATE DD SET LibTitle = ''
FROM Documents DD JOIN @NewDocuments ND on DD.[DocID] = ND.[NewDocID]
where DTS = @DTS and UserID = @UserID
--print 'F ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- Documents are Done
-- SELECT * From Documents where DTS = @DTS and UserID = @UserID
-- Logic to create entries for these newly created documents
INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID])
SELECT NN.[NewContentID],ND.[NewDocID],@DTS,@UserID
FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID
JOIN @NewDocuments ND on EE.[DocID] = ND.[DocID]
-- Logic to Create DROUsages for these newly created documents
INSERT INTO [DROUsages] ([DocID],[ROID],[Config],[DTS],[UserID],[RODbID])
SELECT ND.[NewDocID],[ROID],[Config],@DTS,@UserID,[RODbID]
FROM [DROUsages] RR
JOIN @NewDocuments ND on RR.[DocID] = ND.[DocID]
--print 'G ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- Entries are done
-- SELECT * From Entries EE JOIN Documents DD on ee.DocID = DD.DocID where EE.DTS = @DTS and EE.UserID = @UserID
-- <<< Copy RoUsages >>>
INSERT INTO [RoUsages] ([ContentID],[ROID],[Config],[DTS],[UserID],[RODbID])
SELECT NN.[NewContentID],CAST([ROUsageID] as nvarchar(16)),[Config],@DTS,@UserID,[RODbID]
FROM [RoUsages] RR Join @Children NN on RR.ContentID = NN.ContentID
-- Update content records for newly copied records to use correct RO usage ids in the RO tags
DECLARE @RowsAffected int
SET @RowsAffected=1
WHILE @RowsAffected > 0
BEGIN
UPDATE CC SET [TEXT] = C2.NewText
FROM CONTENTS CC
JOIN (SELECT C1.ContentID, .dbo.vefn_FixROText(C1.Text, CAST([ROID] as int), [ROUsageID]) NewText
FROM CONTENTS C1
JOIN @Children NN on C1.ContentID = NN.NewContentID
JOIN RoUsages RO on NN.NewContentID = RO.ContentID where Len([ROID]) < 12) C2 ON CC.ContentID = C2.ContentID
WHERE [TEXT] <> C2.NewText
SET @RowsAffected = @@RowCount
END
-- Update grid records for newly copied records to use correct RO usage ids in the RO tags
SET @RowsAffected=1
WHILE @RowsAffected > 0
BEGIN
UPDATE GG SET [Data] = G2.NewData
FROM GRIDS GG
JOIN (SELECT G1.ContentID, .dbo.vefn_FixROData(G1.Data, CAST([ROID] as int), [ROUsageID]) NewData
FROM GRIDS G1
JOIN @Children NN on G1.ContentID = NN.NewContentID
JOIN RoUsages RO on NN.NewContentID = RO.ContentID where Len([ROID]) < 12) G2 ON GG.ContentID = G2.ContentID
WHERE Cast([Data] as nvarchar(max)) <> cast(G2.NewData as nvarchar(max))
SET @RowsAffected = @@RowCount
END
UPDATE RON SET [ROID] = ROO.[ROID]
FROM RoUsages RON
JOIN @Children NN on RON.ContentID = NN.NewContentID
JOIN RoUsages ROO on CAST(RON.ROID as int) = ROO.RoUsageID
where Len(RON.[ROID]) < 12
--print 'H ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- RoUsages are done
-- SELECT * From RoUsages where DTS = @DTS and UserID = @UserID
-- <<< Copy Transtions >>>
-- Note that the inserted record has the 'TranType' field set to old transitionid. This is done
-- so that the next step can replace the old transitionid with the new transitionid in the
-- content record's transition tokens. The TranType gets reset after the content records are
-- updated.
-- Also note that the 'toid/rangeid' may need converted to newly copied ids or may not. If it's
-- not a range, then it always is converted to new, if there is a new. If it's a range, both
-- the toid & the rangeid must be new in order for the conversion to be correct. You cannot
-- have part of the range pointing to the new and part of the range pointing to the original
-- locations.
INSERT INTO .[dbo].[Transitions] ([FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID])
SELECT NNF.[NewContentID],
-- if both toid & range are null, use the original toid & rangeid
CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [ToID] ELSE NNT.[NewItemID] END,
CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [RangeID] ELSE NNR.[NewItemID] END,
[IsRange],[TransitionID],[Config],@DTS,@UserID
FROM .[dbo].[Transitions] TT
JOIN @Children NNF on TT.[FromID] = NNF.[ContentID]
LEFT JOIN @Children NNT on TT.[ToID] = NNT.[ItemID]
LEFT JOIN @Children NNR on TT.[RangeID] = NNR.[ItemID]
--print 'H1 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- -- Update content records for newly copied records to use correct TransitionIDs in the Transition tags
SET @RowsAffected=1
WHILE @RowsAffected > 0
BEGIN
UPDATE CC SET [TEXT] = C2.NewText
FROM CONTENTS CC
JOIN (SELECT C1.ContentID, .dbo.vefn_FixTransitionTextForCopy(C1.Text, TRO.TransitionID, TRO.TranType, TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewText
FROM CONTENTS C1
JOIN @Children NN on C1.ContentID = NN.NewContentID
JOIN Transitions TR on NN.NewContentID = TR.FromID
JOIN Transitions TRO on TR.TranType = TRO.TransitionID) C2 ON CC.ContentID = C2.ContentID
WHERE [TEXT] <> C2.NewText
SET @RowsAffected = @@RowCount
END
--print 'H2 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
--set nocount off
-- -- Update grid records for newly copied records to use correct TransitionIDs in the Transition tags
declare @grids table
(
contentid int primary key,
data xml
)
insert into @grids select gg.contentid,gg.data from GRIDS GG
where gg.contentid in (select nn.newcontentid from
@Children NN
JOIN Transitions TR on NN.NewContentID = TR.FromID
JOIN Transitions TRO on TR.TranType = TRO.TransitionID)
--print 'H2.1 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
--select * from @grids
SET @RowsAffected=1
WHILE @RowsAffected > 0
BEGIN
UPDATE GG SET [DATA] = G2.NewData
FROM @GRIDS GG
JOIN (SELECT G1.ContentID, .dbo.vefn_FixTransitionDataForCopy(G1.Data, TRO.TransitionID, TRO.TranType, TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewData
FROM @GRIDS G1
JOIN @Children NN on G1.ContentID = NN.NewContentID
JOIN Transitions TR on NN.NewContentID = TR.FromID
JOIN Transitions TRO on TR.TranType = TRO.TransitionID) G2 ON GG.ContentID = G2.ContentID
WHERE Cast([DATA] as nvarchar(max)) <> CAST(G2.NewData as nvarchar(max))
SET @RowsAffected = @@RowCount
END
--print 'H2.2 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
update GG set data = g1.data from Grids gg join @grids g1 on gg.contentid = g1.contentid
--print 'H3 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
--set nocount on
-- Add 'Verification Required' AnnotationType
DECLARE @typeID int
SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required'
IF(@typeID IS NULL)
BEGIN
INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian')
SELECT @typeID = SCOPE_IDENTITY()
END
-- Add "Verification Required" Annotation for each Transition whose transition format changes
INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID])
SELECT NN.NewItemID, @typeID,'Verify Transition Format',@UserID
FROM Transitions TR
JOIN @Children NN on TR.FromID = NN.NewContentID
JOIN Transitions TRO on TR.TranType = TRO.TransitionID
WHERE .dbo.vefn_CompareTranFormat(NN.FormatID, NN.NewFormatID, TRO.TranType) <> 0
--print 'H4 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
UPDATE TR SET TR.[TranType] = .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)
FROM Transitions TR
JOIN @Children NN on TR.FromID = NN.NewContentID
JOIN Transitions TRO on TR.TranType = TRO.TransitionID
--print 'H5 ' + cast(datediff(s,@dts,getdate()) as varchar(100))
-- Transitions are done
-- SELECT * From Transitions where DTS = @DTS and UserID = @UserID
--print 'Z ' + cast(datediff(s,@dts,getdate()) as varchar(100))
--foldouts fixing code
if exists (select * from contents where contentid in (select newcontentid from @children) and config like '%FloatingFoldout%')
begin
--insert into #mytemp
select cc.contentid,xsteps.value('@FloatingFoldout','int') oldfoldoutid,(select newitemid
from @children
where itemid = xsteps.value('@FloatingFoldout','int')) newfoldoutid,xconfig
into #mytemp
from (select *,cast(config as xml) xconfig from contents where contentid in (select newcontentid from @children)) cc
cross apply xconfig.nodes('Config/Step') tsteps(xsteps)
--build @cmd string
declare @cmd nvarchar(max)
declare cmds cursor for
select distinct 'update #mytemp set xconfig.modify(''replace value of (Config/Step/@FloatingFoldout)[1] with "'
+ cast(newfoldoutid as varchar(10))
+ '"'') where xconfig.value(''(Config/Step/@FloatingFoldout)[1]'',''int'') = '
+ cast(oldfoldoutid as varchar(10))
from #mytemp
--execute cursor over rows
open cmds
fetch next from cmds into @cmd
while @@fetch_status = 0
begin
exec sp_executesql @cmd
fetch next from cmds into @cmd
end
close cmds
deallocate cmds
--actually update contents
update cc set config = cast(xconfig as varchar(max)) from contents cc join #mytemp mt on cc.contentid = mt.contentid
--get rid of #mytemp
drop table #mytemp
end
--end foldouts fixing code
--section start
DECLARE @NewContentID int
Select @NewContentID = NewContentID from @Children where ItemID = @StartItemID
DECLARE @Config varchar(max)
DECLARE @XConfig xml
select @Config = config from contents where contentid = @NewContentID
select @XConfig = cast(@Config as xml)
if @Config like '%SectionStart%' begin
DECLARE @SectionStart int
select @SectionStart = xproc.value('@SectionStart','int') from @xconfig.nodes('Config/Procedure') tproc(xproc)
DECLARE @NewSectionStart int
select @NewSectionStart = newitemid from @children where itemid = @SectionStart
DECLARE @cmd2 nvarchar(max)
set @cmd2 = '
declare @XConfig xml;
set @XConfig = cast(''' + @Config + ''' as xml);
set @XConfig.modify(''replace value of (Config/Procedure/@SectionStart)[1] with "' + cast(@NewSectionStart as nvarchar(10)) + '"'');
update contents set config = cast(@XConfig as varchar(max)) where contentid = ' + cast(@NewContentID as nvarchar(10)) + ';'
exec sp_executesql @cmd2
end
--end section start
IF( @@TRANCOUNT > 0 ) COMMIT
END TRY
BEGIN CATCH -- Catch Block
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
EXEC vlnErrorHandler
END CATCH
Go
IF (@@Error = 0) PRINT 'Procedure Creation: [CopyItemAndChildren] Succeeded'
ELSE PRINT 'Procedure Creation: [CopyItemAndChildren] Error on Creation'
GO
/*
==========================================================================================================
End: C2024-004: KL - Update Copy Replace functionality, (remove ''copy of'')
==========================================================================================================
*/
/*
==========================================================================================================
Begin: C2024-005: PRL - SPs to support Admin tool to clean Annotations
==========================================================================================================
*/
/****** Object: StoredProcedure [dbo].[deleteAnnotationsDocvByType] Script Date: 7/11/2024 2:39:59 PM ******/
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'deleteAnnotationsDocvByType')
DROP PROCEDURE [dbo].[deleteAnnotationsDocvByType]
GO
/****** Object: StoredProcedure [dbo].[deleteAnnotationsDocvByType] Script Date: 7/11/2024 2:39:59 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Paul Larsen
Modified Date: 07/11/2024
Description: Delete Annotations in DocVersions by Annotation Type
==========================================================================================================
*/
CREATE procedure [dbo].[deleteAnnotationsDocvByType]
(
@docvList varchar(MAX),
@typeid int
)
AS
DECLARE @docvs TABLE
(
RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
DocvVersionID int
)
DECLARE @Annotationitems table
(
RowID int NOT NULL IDENTITY(1,1),
AllItemIDs int
)
INSERT INTO @docvs (DocvVersionID) (select id from vefn_SplitInt(@docvList, ','))
DECLARE @cnt int = 0
DECLARE @cnt2 int
DECLARE @itemid int
DECLARE @i INT
SET @i = (SELECT MIN(RowID) FROM @docvs);
DECLARE @max INT;
SET @max = (SELECT MAX(RowID) FROM @docvs);
-- add all itemids relateted to requested Annotation cleaning.
while (@i <= @max)
BEGIN
SELECT @itemid = DocvVersionID from @docvs where RowID = @i
INSERT INTO @Annotationitems (AllItemIDs)
(SELECT cir.itemid FROM [vefn_GetVersionItems](@docvList) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
--vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
SET @i = @i + 1;
END
SELECT @i = MIN(RowID) FROM @docvs;
SELECT @max = MAX(RowID) FROM @docvs;
-- Delete Annotations
DELETE FROM Ann
FROM tblAnnotations Ann INNER JOIN @Annotationitems AI ON Ann.itemid = AI.AllItemIDs WHERE TypeID = @typeidI beleive the
GO
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'deleteAnnotationsProcByType')
DROP PROCEDURE [dbo].[deleteAnnotationsProcByType]
GO
/****** Object: StoredProcedure [dbo].[deleteAnnotationsProcByType] Script Date: 7/11/2024 2:46:05 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Paul Larsen
Modified Date: 07/11/2024
Description: Delete Annotations in Procedures by Annotation Type
==========================================================================================================
*/
CREATE procedure [dbo].[deleteAnnotationsProcByType]
(
@procList varchar(MAX),
@typeid int
)
AS
DECLARE @procs TABLE
(
RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
ProcItemIDs int
)
DECLARE @Annotationitems table
(
RowID int NOT NULL IDENTITY(1,1),
AllItemIDs int
)
DECLARE @cnt int = 0
DECLARE @cnt2 int
DECLARE @itemid int
INSERT INTO @procs (ProcItemIDs) (select id from vefn_SplitInt(@procList, ','))
DECLARE @i INT
SET @i = (SELECT MIN(RowID) FROM @procs);
DECLARE @max INT;
SET @max = (SELECT MAX(RowID) FROM @procs);
-- add all itemids relateted to requested Annotation cleaning.
while (@i <= @max)
BEGIN
SELECT @itemid = ProcItemIDs from @procs where RowID = @i
INSERT INTO @Annotationitems (AllItemIDs)
(SELECT cir.itemid FROM vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
SET @i = @i + 1;
END
SELECT @i = MIN(RowID) FROM @procs;
SELECT @max = MAX(RowID) FROM @procs;
-- Delete Annotations
DELETE FROM Ann
FROM tblAnnotations Ann INNER JOIN @Annotationitems AI ON Ann.itemid = AI.AllItemIDs WHERE TypeID = @typeid
GO
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'getAnnotationDocvCount')
DROP PROCEDURE [dbo].[getAnnotationDocvCount]
GO
/****** Object: StoredProcedure [dbo].[getAnnotationDocvCount] Script Date: 7/11/2024 2:48:35 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Paul Larsen
Modified Date: 07/11/2024
Description: Retrieve the number of Annotations that will be deleted (DocVersions)
==========================================================================================================
*/
CREATE procedure [dbo].[getAnnotationDocvCount]
(
@docvList varchar(MAX),
@typeid int
)
AS
DECLARE @docvs TABLE
(
RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
itemid int
)
--INSERT INTO @procs from STRING_SPLIT(@procList, ',')
INSERT INTO @docvs (itemid) (select id from vefn_SplitInt(@docvList, ','))
DECLARE @cnt int = 0
SELECT @cnt = count(cir.itemid) FROM [vefn_GetVersionItems](@docvList) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid
SELECT @cnt AS 'COUNT'
GO
/****** Object: StoredProcedure [dbo].[getAnnotationProcCount] Script Date: 7/11/2024 3:02:05 PM ******/
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'getAnnotationProcCount')
DROP PROCEDURE [dbo].[getAnnotationProcCount]
GO
/****** Object: StoredProcedure [dbo].[getAnnotationProcCount] Script Date: 7/11/2024 3:02:05 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
/*
==========================================================================================================
Author: Paul Larsen
Modified Date: 07/11/2024
Description: Retrieve the number of Annotations that will be deleted (Procedures)
==========================================================================================================
*/
CREATE procedure [dbo].[getAnnotationProcCount]
(
@procList varchar(MAX),
@typeid int
)
AS
DECLARE @procs TABLE
(
RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
itemid int
)
INSERT INTO @procs (itemid) (select id from vefn_SplitInt(@procList, ','))
DECLARE @cnt int = 0
DECLARE @cnt2 int
DECLARE @itemid int
DECLARE @i INT
SELECT @i = MIN(RowID) FROM @procs;
DECLARE @max INT;
SELECT @max = MAX(RowID) FROM @procs;
while (@i <= @max)
BEGIN
SELECT @itemid = itemid from @procs where RowID = @i
SELECT @cnt = @cnt + (SELECT count(cir.itemid) FROM vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
SET @i = @i + 1;
END
SELECT @cnt AS 'count'
GO
/*
==========================================================================================================
End: C2024-005: PRL - SPs to support Admin tool to clean Annotations
==========================================================================================================
*/
-----------------------------------------------------------------------------
/*
---------------------------------------------------------------------------
@@ -22260,8 +22940,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
set @RevDate = '03/27/2024 11:00 AM'
set @RevDescription = 'B2024-018: Enhanced link issue with sub-sections in source but not in enhanced'
set @RevDate = '07/16/2024 5:00 PM'
set @RevDescription = 'C2024-005: An Admin tool that can delete a group of annotations should be developed'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription

View File

@@ -0,0 +1,3 @@
C1.Win.C1Input.C1ComboBox, C1.Win.C1Input.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=7e7ff60f0c214f9a
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da
C1.Win.C1SpellChecker.C1SpellChecker, C1.Win.C1SpellChecker.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da

View File

@@ -1 +1,2 @@
da3d5d14-691f-4908-aa3c-fd3239734232;-8584908724854775808;VkVQUk9NUy5leGU=;ZGEzZDVkMTQtNjkxZi00OTA4LWFhM2MtZmQzMjM5NzM0MjMy,MjQyNzYxODZYWFhYWFhYWDAzNg,Sk9ITi1XSU4xMA,RmFsc2U,ODg0Mw,RmFsc2U,MA,MA,djIwMjQuMQ,,;PxeAWRi6mhDqvUMfJhk9Tniu/8ZnOLQv64hLh05xWM+MPyBs3yYfs3vEn5TLW779QNr1k8F6tV3gOAoLG+JSPZoG3NXmdTe6LJya05W+zWyb0H+jj2ReXN2dNR9fbZNDd3ClAeuzNpsM0pw62aYpOe2Tp6fx9gOFx1/0g8g4/8g
da3d5d14-691f-4908-aa3c-fd3239734232;-8584865524854775808;VkVQUk9NUy5leGU=;ZGEzZDVkMTQtNjkxZi00OTA4LWFhM2MtZmQzMjM5NzM0MjMy,NjE5MDczODdYWFhYWFhYWDA1Mw,Q0hSSVM,RmFsc2U,ODg5NA,RmFsc2U,MA,MA,djIwMjQuMQ,,;luo/kWHt4XRAYR+3s8m8QoRagBcvXLv0mHvCYU2VCIeACFord4tdtTGmSUvmGhEmUiAd7YvaTlDlFrlni6CWaVlxa1mdbWuWsNVUkRnyJZ8kOAt1A+3SGfHecCsqotTW7apXjwW5qXLZ/fcgutioe7xaXgniFQysshTdUWt26T8

View File

@@ -99,12 +99,10 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="C1.Win.4.8">
<HintPath>..\VEPROMS\packages\C1.Win.8.0.20233.631\lib\net48\C1.Win.4.8.dll</HintPath>
</Reference>
<Reference Include="C1.Win.C1FlexGrid.4.8">
<HintPath>..\VEPROMS\packages\C1.Win.C1FlexGrid.4.8.20233.631\lib\net48\C1.Win.C1FlexGrid.4.8.dll</HintPath>
</Reference>
<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">
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\Csla.dll</HintPath>
</Reference>
@@ -225,6 +223,12 @@
<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>
@@ -336,6 +340,9 @@
<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>
@@ -619,4 +626,4 @@
<PropertyGroup>
<PreBuildEvent>cmd /c "$(ProjectDir)FixRev.bat"</PreBuildEvent>
</PropertyGroup>
</Project>
</Project>

View File

@@ -99,6 +99,10 @@ namespace VEPROMS
MyProcedure = procedureInfo;
InitializeComponent();
this.Text = mode + " Dialog for " + procedureInfo.DisplayNumber;
//Preset path for single procedures.
PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
txtExport.Text = string.Format(@"{0}\{1}.pxml", PEIPath, MyProcedure.DisplayNumber.Replace("/", "_").Replace("\\", "_"));
}
private void dlgExportImport_Load(object sender, EventArgs e)
{
@@ -172,6 +176,7 @@ namespace VEPROMS
}
else if (MyProcedure != null)
{
txtExport.Enabled = true;
txtExport.Text = string.Format(@"{0}\{1}.pxml", PEIPath, MyProcedure.DisplayNumber.Replace("/", "_").Replace("\\", "_"));
}
}
@@ -190,6 +195,8 @@ namespace VEPROMS
private bool successfullExport = true;
private void btnDoExport_Click(object sender, EventArgs e)
{
btnExport.Enabled = false;
string msg = "Finished Exporting:\n\n";
if (_MyMode.ToUpper().Contains("FORMAT"))
@@ -220,6 +227,42 @@ namespace VEPROMS
}
else if (MyProcedure != null)
{
var fileLocation = txtExport.Text;
if (File.Exists(fileLocation))
{ // C2022-029 if an existing export of the same name is found, provide option to overwrite it
DialogResult ovewriteEx = FlexibleMessageBox.ShowCustom(null, "There is already another export file with the same name. You can choose to either overwrite the existing file or have the existing file renamed with the original creation date appended.\r\n\r\nSelecting 'Cancel' will cancel the export.", "What would you like to do?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);// == DialogResult.Yes;
// Extract directory, filename, and extension
string directory = Path.GetDirectoryName(fileLocation);
string filename = Path.GetFileNameWithoutExtension(fileLocation);
string extension = Path.GetExtension(fileLocation);
fileLocation = $"{directory}\\{filename}{extension}";
if (ovewriteEx == DialogResult.Abort)
{
MessageBox.Show("Export has been cancelled", "You have chosen to cancel the export.", MessageBoxButtons.OK, MessageBoxIcon.Information); // C2020-042 changed mesage box title
btnCloseExport.Enabled = true;
return;
}
else if (ovewriteEx == DialogResult.Retry)
{
//Overwrite will occur, set msg.
msg = "The export file has been overwritten. ";
}
else if (ovewriteEx == DialogResult.Ignore)
{
// Get the modified date of the existing file, create a datestamp for use in name, set newlocation to move to
DateTime modifiedDate = File.GetLastWriteTime(fileLocation);
string datestamp = modifiedDate.ToString("yyyyMMddHHmmss");
string newFileLocation = $"{directory}\\{filename}_{datestamp}{extension}";
//Move and set msg.
File.Move(fileLocation, newFileLocation);
msg = "The previous export has been renamed, the export file has been created. ";
}
}
this.Cursor = Cursors.WaitCursor;
MyStart = DateTime.Now;
btnDoExport.Enabled = false;
@@ -230,7 +273,7 @@ namespace VEPROMS
XmlElement xe = xd.CreateElement("formats");
xd.DocumentElement.AppendChild(xe);
ExportFormats(FormatInfoList.GetFormatInfoListUsed(), xe, "formats", false);
xd.Save(txtExport.Text);
xd.Save(fileLocation);
TimeSpan elapsed = DateTime.Now.Subtract(MyStart);
lblExportStatus.Text = "Export Completed in " + elapsed.ToString();
this.Cursor = Cursors.Default;
@@ -706,7 +749,7 @@ namespace VEPROMS
}
catch (Exception ex)
{
FlexibleMessageBox.Show("The import failed, check the error log for more information.", "Import Failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
FlexibleMessageBox.Show(null, "The import failed, check the error log for more information.", "Import Failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
_MyLog.Warn("Failure During Import", ex);
}
return false;

View File

@@ -400,6 +400,7 @@ namespace VEPROMS
this.pnlImport.PerformLayout();
this.ResumeLayout(false);
}
#endregion

View File

@@ -0,0 +1,131 @@

using VEPROMS.CSLA.Library;
using Volian.Base.Library;
namespace VEPROMS
{
partial class frmAnnotationsCleanup
{
/// <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()
{
this.components = new System.ComponentModel.Container();
this.lbAnnotationTypes = new System.Windows.Forms.ListBox();
this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.lblAnnotationsList = new System.Windows.Forms.Label();
this.btnClean = new System.Windows.Forms.Button();
this.lblCountNumber = new System.Windows.Forms.Label();
this.lblCount = new System.Windows.Forms.Label();
this.btnClose = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit();
this.SuspendLayout();
//
// lbAnnotationTypes
//
this.lbAnnotationTypes.DataSource = this.itemAnnotationsBindingSource;
this.lbAnnotationTypes.FormattingEnabled = true;
this.lbAnnotationTypes.Location = new System.Drawing.Point(25, 48);
this.lbAnnotationTypes.Name = "lbAnnotationTypes";
this.lbAnnotationTypes.Size = new System.Drawing.Size(295, 433);
this.lbAnnotationTypes.TabIndex = 0;
//
// lblAnnotationsList
//
this.lblAnnotationsList.AutoSize = true;
this.lblAnnotationsList.Location = new System.Drawing.Point(26, 21);
this.lblAnnotationsList.Name = "lblAnnotationsList";
this.lblAnnotationsList.Size = new System.Drawing.Size(169, 13);
this.lblAnnotationsList.TabIndex = 1;
this.lblAnnotationsList.Text = "Select a Annotation Type to Clean";
//
// btnClean
//
this.btnClean.Location = new System.Drawing.Point(365, 164);
this.btnClean.Name = "btnClean";
this.btnClean.Size = new System.Drawing.Size(131, 36);
this.btnClean.TabIndex = 2;
this.btnClean.Text = "Proceed?";
this.btnClean.UseVisualStyleBackColor = true;
this.btnClean.Click += new System.EventHandler(this.button1_Click);
//
// lblCountNumber
//
this.lblCountNumber.AutoSize = true;
this.lblCountNumber.Location = new System.Drawing.Point(392, 100);
this.lblCountNumber.Name = "lblCountNumber";
this.lblCountNumber.Size = new System.Drawing.Size(69, 13);
this.lblCountNumber.TabIndex = 3;
this.lblCountNumber.Text = "Delete Count";
//
// lblCount
//
this.lblCount.AutoSize = true;
this.lblCount.Location = new System.Drawing.Point(331, 70);
this.lblCount.Name = "lblCount";
this.lblCount.Size = new System.Drawing.Size(206, 13);
this.lblCount.TabIndex = 4;
this.lblCount.Text = "Number of Annotations that will be deleted";
//
// btnClose
//
this.btnClose.Location = new System.Drawing.Point(397, 457);
this.btnClose.Name = "btnClose";
this.btnClose.Size = new System.Drawing.Size(75, 23);
this.btnClose.TabIndex = 5;
this.btnClose.Text = "Close";
this.btnClose.UseVisualStyleBackColor = true;
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
//
// frmAnnotationsCleanup
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(549, 535);
this.Controls.Add(this.btnClose);
this.Controls.Add(this.lblCount);
this.Controls.Add(this.lblCountNumber);
this.Controls.Add(this.btnClean);
this.Controls.Add(this.lblAnnotationsList);
this.Controls.Add(this.lbAnnotationTypes);
this.Name = "frmAnnotationsCleanup";
this.Text = "Clean Annotations";
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ListBox lbAnnotationTypes;
private System.Windows.Forms.Label lblAnnotationsList;
private System.Windows.Forms.BindingSource itemAnnotationsBindingSource;
private System.Windows.Forms.Button btnClean;
private System.Windows.Forms.Label lblCountNumber;
private System.Windows.Forms.Label lblCount;
private System.Windows.Forms.Button btnClose;
}
}

View File

@@ -0,0 +1,156 @@
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 VEPROMS.CSLA.Library;
using Volian.Base.Library;
//using Volian.Pipe.Library;
using System.Xml;
using System.Diagnostics;
using JR.Utils.GUI.Forms;
namespace VEPROMS
{
public partial class frmAnnotationsCleanup : Form
{
Label mylab = new Label();
string procList = "";
string docvList = "";
int AnnotationTyp;
List<ProcedureInfo> pil2 = new List<ProcedureInfo>();
List<DocVersionInfo> dvil2 = new List<DocVersionInfo>();
private frmBatchRefresh mainForm = null;
// frmAnnotationsCleanup constructor passes users procedure and docversion selections from frmBatchRefresh
public frmAnnotationsCleanup(Form callingForm, List<ProcedureInfo> pil, List<DocVersionInfo> dvil)
{ // Set up link back to parent form.
mainForm = callingForm as frmBatchRefresh;
InitializeComponent();
pil2 = pil;
dvil2 = dvil;
// Get list of annotation types for plant.
myAnnotationTypeInfoList = AnnotationTypeInfoList.Get();
lbAnnotationTypes.DataSource = myLocalAnnotationTypeInfoList = new LocalAnnotationTypeInfoList(myAnnotationTypeInfoList);
Dictionary<string, string> AnnotationsList = new Dictionary<string, string>();
// Add name and type ID to form.
foreach (LocalAnnotationTypeInfo lati in myLocalAnnotationTypeInfoList)
{
AnnotationsList.Add(lati.TypeID.ToString(), lati.Name);
//cbAnnotationTypes.Items.Add(new { Name = lati.Name, Value = lati.TypeID });
}
lbAnnotationTypes.DataSource = new BindingSource(AnnotationsList, null);
lbAnnotationTypes.DisplayMember = "Value";
lbAnnotationTypes.ValueMember = "Key";
lbAnnotationTypes.SelectedIndexChanged += lbAnnotationTypes_SelectedIndexChanged;
}
// create comma delimited string of procedures selected by user.
private string getAnnotationProcItems(List<ProcedureInfo> pil2)
{
procList = "";
foreach (var p in pil2)
{
if (p.IsProcedure)
{
if (procList == "")
{
procList = procList + p.ItemID.ToString();
}
else
{
procList = procList + "," + p.ItemID.ToString();
}
}
}
return procList;
}
// create comma delimited string of doc versions selected by user.
private string getAnnotationDocvItems(List<DocVersionInfo> dvil2)
{
docvList = "";
foreach (var d in dvil2)
{
if (d.IsDocVersion)
{
if (docvList == "")
{
docvList = docvList + d.VersionID.ToString();
}
else
{
docvList = docvList + "," + d.VersionID.ToString();
}
}
}
return docvList;
}
private AnnotationTypeInfoList myAnnotationTypeInfoList = null;
private LocalAnnotationTypeInfoList myLocalAnnotationTypeInfoList = null;
// Process used to cleanup annotations "(Proceed?" button)
private void button1_Click(object sender, EventArgs e)
{
foreach (var p in pil2)
{
if (p.IsProcedure)
{
TextBox frm2 = mainForm.GettxtProcess();
frm2.AppendText(p.DisplayNumber + ' ' + p.DisplayText);
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
Annotation.DeleteAnnotationProcByType(AnnotationTyp, p.ItemID.ToString());
lblCountNumber.Text = "0";
}
}
foreach (var d in dvil2)
{
if (d.IsDocVersion)
{
TextBox frm2 = mainForm.GettxtProcess();
frm2.AppendText(d.ActiveParent.ToString());
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
Annotation.DeleteAnnotationDocvByType(AnnotationTyp, d.VersionID.ToString());
lblCountNumber.Text = "0";
}
}
}
// Retrieve number of annotations that will be deleted.
private void lbAnnotationTypes_SelectedIndexChanged(object sender, EventArgs e)
{
lblCountNumber.Text = "";
int deletecountProc = 0;
int deletecountDocv = 0;
if (pil2.Count > 0)
{
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
deletecountProc = Annotation.getAnnotationProcCnt(AnnotationTyp, getAnnotationProcItems(pil2));
}
if (dvil2.Count > 0)
{
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
deletecountDocv = Annotation.getAnnotationCountDocv(AnnotationTyp, getAnnotationDocvItems(dvil2));
}
lblCountNumber.Text = (deletecountProc + deletecountDocv).ToString();
}
// Close form.
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

View File

@@ -0,0 +1,124 @@
<?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="itemAnnotationsBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -52,6 +52,24 @@
this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter();
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
this.sideNav1 = new DevComponents.DotNetBar.Controls.SideNav();
this.sideNavPanel4 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.swDeleteFolder = new DevComponents.DotNetBar.Controls.SwitchButton();
this.labelX13 = new DevComponents.DotNetBar.LabelX();
this.swDeleteAnnotations = new DevComponents.DotNetBar.Controls.SwitchButton();
this.labelX14 = new DevComponents.DotNetBar.LabelX();
this.myTVdel = new System.Windows.Forms.TreeView();
this.btnDeleteItems = 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();
@@ -68,17 +86,6 @@
this.labelX8 = new DevComponents.DotNetBar.LabelX();
this.line2 = new DevComponents.DotNetBar.Controls.Line();
this.btnRunRepair = 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.sideNavPanel3 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.swCheckROLinks = new DevComponents.DotNetBar.Controls.SwitchButton();
this.labelX12 = new DevComponents.DotNetBar.LabelX();
@@ -90,14 +97,14 @@
this.labelX6 = new DevComponents.DotNetBar.LabelX();
this.warningBox1 = new DevComponents.DotNetBar.Controls.WarningBox();
this.btnFixLinks = new DevComponents.DotNetBar.ButtonX();
this.sideNavPanel4 = 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.buttonItem1 = new DevComponents.DotNetBar.ButtonItem();
this.sideNavItmDelete = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmExit = new DevComponents.DotNetBar.Controls.SideNavItem();
this.panelEx4 = new DevComponents.DotNetBar.PanelEx();
this.progressSteps1 = new DevComponents.DotNetBar.ProgressSteps();
@@ -118,10 +125,10 @@
this.pnlLater.SuspendLayout();
this.panelEx1.SuspendLayout();
this.sideNav1.SuspendLayout();
this.sideNavPanel2.SuspendLayout();
this.sideNavPanel1.SuspendLayout();
this.sideNavPanel3.SuspendLayout();
this.sideNavPanel4.SuspendLayout();
this.sideNavPanel1.SuspendLayout();
this.sideNavPanel2.SuspendLayout();
this.sideNavPanel3.SuspendLayout();
this.panelEx4.SuspendLayout();
this.SuspendLayout();
//
@@ -133,7 +140,7 @@
this.myTV.CheckBoxes = true;
this.myTV.Location = new System.Drawing.Point(0, 230);
this.myTV.Name = "myTV";
this.myTV.Size = new System.Drawing.Size(300, 264);
this.myTV.Size = new System.Drawing.Size(183, 226);
this.myTV.TabIndex = 4;
this.myTV.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck);
//
@@ -457,10 +464,10 @@
// sideNav1
//
this.sideNav1.BackColor = System.Drawing.SystemColors.Control;
this.sideNav1.Controls.Add(this.sideNavPanel1);
this.sideNav1.Controls.Add(this.sideNavPanel3);
this.sideNav1.Controls.Add(this.sideNavPanel2);
this.sideNav1.Controls.Add(this.sideNavPanel4);
this.sideNav1.Controls.Add(this.sideNavPanel1);
this.sideNav1.Controls.Add(this.sideNavPanel2);
this.sideNav1.Controls.Add(this.sideNavPanel3);
this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNav1.EnableClose = false;
this.sideNav1.EnableMaximize = false;
@@ -471,6 +478,7 @@
this.sideNavItmRepair,
this.sideNavItmLinks,
this.sideNavItmUsers,
this.sideNavItmDelete,
this.sideNavItmExit});
this.sideNav1.Location = new System.Drawing.Point(0, 0);
this.sideNav1.Name = "sideNav1";
@@ -479,6 +487,302 @@
this.sideNav1.TabIndex = 3;
this.sideNav1.Text = "sideNav1";
//
// sideNavPanel4
//
this.sideNavPanel4.Controls.Add(this.swDeleteFolder);
this.sideNavPanel4.Controls.Add(this.labelX13);
this.sideNavPanel4.Controls.Add(this.swDeleteAnnotations);
this.sideNavPanel4.Controls.Add(this.labelX14);
this.sideNavPanel4.Controls.Add(this.myTVdel);
this.sideNavPanel4.Controls.Add(this.btnDeleteItems);
this.sideNavPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel4.Location = new System.Drawing.Point(89, 31);
this.sideNavPanel4.Name = "sideNavPanel4";
this.sideNavPanel4.Size = new System.Drawing.Size(291, 494);
this.sideNavPanel4.TabIndex = 27;
//
// swDeleteFolder
//
//
//
//
this.swDeleteFolder.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swDeleteFolder.Location = new System.Drawing.Point(10, 43);
this.swDeleteFolder.Name = "swDeleteFolder";
this.swDeleteFolder.Size = new System.Drawing.Size(69, 22);
this.swDeleteFolder.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swDeleteFolder, new DevComponents.DotNetBar.SuperTooltipInfo("Check RO Links", "", resources.GetString("swDeleteFolder.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 150)));
this.swDeleteFolder.SwitchClickTogglesValue = true;
this.swDeleteFolder.TabIndex = 39;
this.swDeleteFolder.Visible = false;
this.swDeleteFolder.ValueChanged += new System.EventHandler(this.swDeleteFolder_ValueChanged);
//
// labelX13
//
this.labelX13.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX13.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX13.Location = new System.Drawing.Point(85, 42);
this.labelX13.Name = "labelX13";
this.labelX13.Size = new System.Drawing.Size(168, 22);
this.superTooltip1.SetSuperTooltip(this.labelX13, new DevComponents.DotNetBar.SuperTooltipInfo("Check RO Links", "", resources.GetString("labelX13.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(350, 175)));
this.labelX13.TabIndex = 38;
this.labelX13.Text = "Delete Folders";
this.labelX13.Visible = false;
//
// swDeleteAnnotations
//
//
//
//
this.swDeleteAnnotations.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swDeleteAnnotations.Location = new System.Drawing.Point(10, 15);
this.swDeleteAnnotations.Name = "swDeleteAnnotations";
this.swDeleteAnnotations.Size = new System.Drawing.Size(69, 22);
this.swDeleteAnnotations.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swDeleteAnnotations, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Transitions", "", resources.GetString("swDeleteAnnotations.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(265, 175)));
this.swDeleteAnnotations.SwitchClickTogglesValue = true;
this.swDeleteAnnotations.TabIndex = 37;
this.swDeleteAnnotations.Value = true;
this.swDeleteAnnotations.ValueObject = "Y";
this.swDeleteAnnotations.ValueChanged += new System.EventHandler(this.swDeleteAnnotations_ValueChanged);
//
// labelX14
//
this.labelX14.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.labelX14.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX14.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX14.Location = new System.Drawing.Point(85, 14);
this.labelX14.Name = "labelX14";
this.labelX14.Size = new System.Drawing.Size(186, 22);
this.superTooltip1.SetSuperTooltip(this.labelX14, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Transitions", "", resources.GetString("labelX14.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(256, 175)));
this.labelX14.TabIndex = 36;
this.labelX14.Text = "Delete Annotations";
//
// myTVdel
//
this.myTVdel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.myTVdel.CheckBoxes = true;
this.myTVdel.Location = new System.Drawing.Point(14, 145);
this.myTVdel.Name = "myTVdel";
this.myTVdel.Size = new System.Drawing.Size(267, 331);
this.myTVdel.TabIndex = 34;
//
// btnDeleteItems
//
this.btnDeleteItems.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnDeleteItems.Checked = true;
this.btnDeleteItems.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnDeleteItems.Location = new System.Drawing.Point(3, 98);
this.btnDeleteItems.Name = "btnDeleteItems";
this.btnDeleteItems.Size = new System.Drawing.Size(280, 23);
this.btnDeleteItems.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.btnDeleteItems, new DevComponents.DotNetBar.SuperTooltipInfo("Process Links", "", "This will run the selected RO Links or Transitions Links tool.\r\n\r\nClick on the on" +
"/off switches to turn on/off each tool.\r\n\r\nNote that only one of these tools can" +
" be run at a time.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 130)));
this.btnDeleteItems.TabIndex = 35;
this.btnDeleteItems.Text = "Process Deletions";
this.btnDeleteItems.Click += new System.EventHandler(this.btnDeleteItems_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);
this.sideNavPanel2.Controls.Add(this.lblRefreshTblForSrch);
this.sideNavPanel2.Controls.Add(this.warningBox4);
this.sideNavPanel2.Controls.Add(this.warningBox2);
this.sideNavPanel2.Controls.Add(this.swRmObsoleteROData);
this.sideNavPanel2.Controls.Add(this.swRefreshWordAttmts);
this.sideNavPanel2.Controls.Add(this.swStandardHypenChars);
this.sideNavPanel2.Controls.Add(this.labelX4);
this.sideNavPanel2.Controls.Add(this.labelX5);
this.sideNavPanel2.Controls.Add(this.labelX9);
this.sideNavPanel2.Controls.Add(this.swRmOrphanDataRecs);
this.sideNavPanel2.Controls.Add(this.labelX10);
this.sideNavPanel2.Controls.Add(this.labelX8);
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.Name = "sideNavPanel2";
this.sideNavPanel2.Size = new System.Drawing.Size(291, 494);
this.sideNavPanel2.TabIndex = 6;
this.sideNavPanel2.Visible = false;
//
// swRefreshTblsForSrch
//
//
@@ -517,6 +821,7 @@
this.warningBox4.CloseButtonVisible = false;
this.warningBox4.Image = ((System.Drawing.Image)(resources.GetObject("warningBox4.Image")));
this.warningBox4.Location = new System.Drawing.Point(12, 264);
this.warningBox4.Margin = new System.Windows.Forms.Padding(4);
this.warningBox4.Name = "warningBox4";
this.warningBox4.OptionsButtonVisible = false;
this.warningBox4.Size = new System.Drawing.Size(264, 32);
@@ -529,6 +834,7 @@
this.warningBox2.CloseButtonVisible = false;
this.warningBox2.Image = ((System.Drawing.Image)(resources.GetObject("warningBox2.Image")));
this.warningBox2.Location = new System.Drawing.Point(12, 302);
this.warningBox2.Margin = new System.Windows.Forms.Padding(4);
this.warningBox2.Name = "warningBox2";
this.warningBox2.OptionsButtonVisible = false;
this.warningBox2.Size = new System.Drawing.Size(264, 43);
@@ -698,176 +1004,11 @@
this.btnRunRepair.Size = new System.Drawing.Size(280, 23);
this.btnRunRepair.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.btnRunRepair, new DevComponents.DotNetBar.SuperTooltipInfo("Run Repair", "", "This will run the database repair 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, 103)));
" to turn on/off each tool.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 103)));
this.btnRunRepair.TabIndex = 3;
this.btnRunRepair.Text = "Run Repair";
this.btnRunRepair.Click += new System.EventHandler(this.btnRunRepair_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(80, 31);
this.sideNavPanel1.Name = "sideNavPanel1";
this.sideNavPanel1.Size = new System.Drawing.Size(300, 494);
this.sideNavPanel1.TabIndex = 2;
//
// 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.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);
//
// sideNavPanel3
//
this.sideNavPanel3.Controls.Add(this.swCheckROLinks);
@@ -882,9 +1023,9 @@
this.sideNavPanel3.Controls.Add(this.myTV);
this.sideNavPanel3.Controls.Add(this.btnFixLinks);
this.sideNavPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel3.Location = new System.Drawing.Point(80, 31);
this.sideNavPanel3.Location = new System.Drawing.Point(89, 31);
this.sideNavPanel3.Name = "sideNavPanel3";
this.sideNavPanel3.Size = new System.Drawing.Size(300, 494);
this.sideNavPanel3.Size = new System.Drawing.Size(291, 494);
this.sideNavPanel3.TabIndex = 10;
this.sideNavPanel3.Visible = false;
//
@@ -924,6 +1065,7 @@
this.warningBox5.CloseButtonVisible = false;
this.warningBox5.Image = ((System.Drawing.Image)(resources.GetObject("warningBox5.Image")));
this.warningBox5.Location = new System.Drawing.Point(17, 145);
this.warningBox5.Margin = new System.Windows.Forms.Padding(4);
this.warningBox5.Name = "warningBox5";
this.warningBox5.OptionsButtonVisible = false;
this.warningBox5.Size = new System.Drawing.Size(262, 32);
@@ -1007,6 +1149,7 @@
this.warningBox1.CloseButtonVisible = false;
this.warningBox1.Image = ((System.Drawing.Image)(resources.GetObject("warningBox1.Image")));
this.warningBox1.Location = new System.Drawing.Point(17, 181);
this.warningBox1.Margin = new System.Windows.Forms.Padding(4);
this.warningBox1.Name = "warningBox1";
this.warningBox1.OptionsButtonVisible = false;
this.warningBox1.Size = new System.Drawing.Size(262, 43);
@@ -1030,86 +1173,6 @@
this.btnFixLinks.Text = "Process Links";
this.btnFixLinks.Click += new System.EventHandler(this.btnFixLinks_Click);
//
// sideNavPanel2
//
this.sideNavPanel2.Controls.Add(this.swRefreshTblsForSrch);
this.sideNavPanel2.Controls.Add(this.lblRefreshTblForSrch);
this.sideNavPanel2.Controls.Add(this.warningBox4);
this.sideNavPanel2.Controls.Add(this.warningBox2);
this.sideNavPanel2.Controls.Add(this.swRmObsoleteROData);
this.sideNavPanel2.Controls.Add(this.swRefreshWordAttmts);
this.sideNavPanel2.Controls.Add(this.swStandardHypenChars);
this.sideNavPanel2.Controls.Add(this.labelX4);
this.sideNavPanel2.Controls.Add(this.labelX5);
this.sideNavPanel2.Controls.Add(this.labelX9);
this.sideNavPanel2.Controls.Add(this.swRmOrphanDataRecs);
this.sideNavPanel2.Controls.Add(this.labelX10);
this.sideNavPanel2.Controls.Add(this.labelX8);
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(80, 31);
this.sideNavPanel2.Name = "sideNavPanel2";
this.sideNavPanel2.Size = new System.Drawing.Size(300, 494);
this.sideNavPanel2.TabIndex = 6;
this.sideNavPanel2.Visible = false;
//
// swRefreshTblsForSrch
//
//
//
//
this.swRefreshTblsForSrch.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.swRefreshTblsForSrch.Location = new System.Drawing.Point(10, 153);
this.swRefreshTblsForSrch.Name = "swRefreshTblsForSrch";
this.swRefreshTblsForSrch.Size = new System.Drawing.Size(91, 22);
this.swRefreshTblsForSrch.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swRefreshTblsForSrch, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Word Attachments", "", resources.GetString("swRefreshTblsForSrch.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(300, 200)));
this.swRefreshTblsForSrch.SwitchClickTogglesValue = true;
this.swRefreshTblsForSrch.TabIndex = 32;
this.swRefreshTblsForSrch.Value = true;
this.swRefreshTblsForSrch.ValueObject = "Y";
//
// lblRefreshTblForSrch
//
this.lblRefreshTblForSrch.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.lblRefreshTblForSrch.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.lblRefreshTblForSrch.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblRefreshTblForSrch.Location = new System.Drawing.Point(107, 153);
this.lblRefreshTblForSrch.Name = "lblRefreshTblForSrch";
this.lblRefreshTblForSrch.Size = new System.Drawing.Size(186, 22);
this.superTooltip1.SetSuperTooltip(this.lblRefreshTblForSrch, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Word Attachments", "", resources.GetString("lblRefreshTblForSrch.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(300, 200)));
this.lblRefreshTblForSrch.TabIndex = 31;
this.lblRefreshTblForSrch.Text = "Refresh Tables For Search";
//
// sideNavPanel4
//
this.sideNavPanel4.Controls.Add(this.btn_ShowUsers);
this.sideNavPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
this.sideNavPanel4.Location = new System.Drawing.Point(81, 31);
this.sideNavPanel4.Name = "sideNavPanel4";
this.sideNavPanel4.Size = new System.Drawing.Size(299, 494);
this.sideNavPanel4.TabIndex = 14;
this.sideNavPanel4.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;
@@ -1129,7 +1192,6 @@
//
// sideNavItmCheck
//
this.sideNavItmCheck.Checked = true;
this.sideNavItmCheck.Name = "sideNavItmCheck";
this.sideNavItmCheck.Panel = this.sideNavPanel1;
this.sideNavItmCheck.Symbol = "";
@@ -1155,11 +1217,26 @@
// sideNavItmUsers
//
this.sideNavItmUsers.Name = "sideNavItmUsers";
this.sideNavItmUsers.Panel = this.sideNavPanel4;
this.sideNavItmUsers.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
this.buttonItem1});
this.sideNavItmUsers.Symbol = "";
this.sideNavItmUsers.Text = "Users";
this.sideNavItmUsers.Click += new System.EventHandler(this.sideNavItmUsers_Click);
//
// buttonItem1
//
this.buttonItem1.Name = "buttonItem1";
this.buttonItem1.Text = "buttonItem1";
//
// sideNavItmDelete
//
this.sideNavItmDelete.Checked = true;
this.sideNavItmDelete.Name = "sideNavItmDelete";
this.sideNavItmDelete.Panel = this.sideNavPanel4;
this.sideNavItmDelete.Symbol = "";
this.sideNavItmDelete.Text = "Delete";
this.sideNavItmDelete.Click += new System.EventHandler(this.sideNavItmDelete_Click);
//
// sideNavItmExit
//
this.sideNavItmExit.Name = "sideNavItmExit";
@@ -1286,11 +1363,10 @@
this.panelEx1.ResumeLayout(false);
this.sideNav1.ResumeLayout(false);
this.sideNav1.PerformLayout();
this.sideNavPanel2.ResumeLayout(false);
this.sideNavPanel1.ResumeLayout(false);
this.sideNavPanel3.ResumeLayout(false);
//this.sideNavPanel2.ResumeLayout(false);
this.sideNavPanel4.ResumeLayout(false);
this.sideNavPanel1.ResumeLayout(false);
this.sideNavPanel2.ResumeLayout(false);
this.sideNavPanel3.ResumeLayout(false);
this.panelEx4.ResumeLayout(false);
this.ResumeLayout(false);
@@ -1340,8 +1416,6 @@
private DevComponents.DotNetBar.LabelX labelX8;
private DevComponents.DotNetBar.Controls.Line line2;
private DevComponents.DotNetBar.ButtonX btnRunRepair;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel4;
private DevComponents.DotNetBar.ButtonX btn_ShowUsers;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel3;
private DevComponents.DotNetBar.ButtonX btnFixLinks;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItem1;
@@ -1376,5 +1450,16 @@
private DevComponents.DotNetBar.LabelX lblRefreshTblForSrch;
private DevComponents.DotNetBar.Controls.SwitchButton swCheckROLinks;
private DevComponents.DotNetBar.LabelX labelX12;
private DevComponents.DotNetBar.ButtonItem buttonItem1;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel4;
private DevComponents.DotNetBar.Controls.SwitchButton swDeleteFolder;
private DevComponents.DotNetBar.LabelX labelX13;
private DevComponents.DotNetBar.Controls.SwitchButton swDeleteAnnotations;
private DevComponents.DotNetBar.LabelX labelX14;
private System.Windows.Forms.TreeView myTVdel;
private DevComponents.DotNetBar.ButtonX btnDeleteItems;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmDelete;
}
}

View File

@@ -22,12 +22,22 @@ namespace VEPROMS
set { _MySessionInfo = value; }
}
private bool IsAdministratorUser = false; //C2020-035 used to control what Set Amins can do
// C2017-030 - new Admin Tools user interface
// pass in session info to constructor
// C2017-030 - new Admin Tools user interface
// pass in session info to constructor
public frmBatchRefresh(SessionInfo sessionInfo)
{
InitializeComponent();
_MySessionInfo = sessionInfo;
if (sideNavItmDelete.Checked)
{
AdminToolType = (E_AdminToolType)4;
if (swDeleteFolder.Value)
ResetDelTV(true);
else
ResetDelTV(false);
}
setupProgessSteps1(); // C2017-030 - new Admin Tools user interface
UserInfo ui = UserInfo.GetByUserID(MySessionInfo.UserID);
IsAdministratorUser = ui.IsAdministrator();
@@ -43,18 +53,25 @@ namespace VEPROMS
swStandardHypenChars.Enabled = false;
}
}
// Make txtProcess text box available to frmAnnotationsClean form.
internal TextBox GettxtProcess()
{
return txtProcess;
}
// NOTE: removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed)
// the Update ROs and Refresh ROs logic was merged together. The Update ROs will functionally do both
// also annotations will be placed on step elements that have RO changes
// make all of the hyphen character consistant so they can all be found with the Search function
private void FixHyphens()
{
this.Cursor = Cursors.WaitCursor;
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Standardizing Hyphens");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int affectedRows = ESP_FixHyphens.Execute("vesp_FixHyphens") / 2;// Two results for each change
@@ -65,7 +82,7 @@ namespace VEPROMS
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(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
@@ -125,6 +142,60 @@ namespace VEPROMS
myTV.SelectedNode.Expand();
this.Cursor = Cursors.Default;
}
private void ResetDelTV()
{
ResetDelTV(false);
}
private void ResetDelTV(bool noProcs)
{
btnFixLinks.Enabled = false;
this.Cursor = Cursors.WaitCursor;
myTVdel.Nodes.Clear();
myDocVersions.Clear();
FolderInfo fi = FolderInfo.GetTop();
if (fi.ChildFolderCount > 0)
{
if (noProcs)
{
LoadBottomLevelFolders(fi, myTVdel);
}
else
{
TreeNode tn = new TreeNode(fi.Name);
tn.Tag = fi;
tn.StateImageIndex = -1; // Hide the checkbox for the root node
LoadChildFolders(fi, tn, noProcs);
myTVdel.Nodes.Add(tn);
}
}
if (myTVdel.SelectedNode != null)
myTVdel.SelectedNode.Expand();
this.Cursor = Cursors.Default;
//btnFixLinks.Enabled = false;
//this.Cursor = Cursors.WaitCursor;
////myTreeNodePath = new List<string>();
//myTVdel.Nodes.Clear();
//myDocVersions.Clear();
//FolderInfo fi = FolderInfo.GetTop();
//TreeNode tn = myTVdel.Nodes.Add(fi.Name );
//tn.Tag = fi;
//if (fi.ChildFolderCount > 0)
//{
// if (noProcs)
// {
// LoadBottomLevelFolders(fi, myTVdel);
// }
// else
// LoadChildFolders(fi, tn, noProcs);
//}
//if (myTVdel.SelectedNode != null)
// myTVdel.SelectedNode.Expand();
//this.Cursor = Cursors.Default;
}
// B2021-060 Higher level folders where being removed from the tree even if there was a child folder that containe a working draft set
private bool LoadChildFolders(FolderInfo fi, TreeNode tn, bool noProcs)
{
@@ -135,8 +206,8 @@ namespace VEPROMS
TreeNode tnc = tn.Nodes.Add(fic.Name);
tnc.Tag = fic;
if (fic.ChildFolderCount > 0)
if(LoadChildFolders(fic, tnc, noProcs))
loadedChildWorkingDraft=true;
if (LoadChildFolders(fic, tnc, noProcs))
loadedChildWorkingDraft = true;
// B2020-114 and C2020-035 only show folders the Set Admin can access
if (fic.FolderDocVersionCount > 0)
{
@@ -151,6 +222,34 @@ namespace VEPROMS
tn.Remove();
return loadedWorkingDraft;
}
/// <summary>
/// Load only bottom layer of folders into treenode.
/// </summary>
/// <param name="fi"></param>
/// <param name="tn"></param>
private void LoadBottomLevelFolders(FolderInfo fi, TreeView treeView)
{
foreach (FolderInfo fic in fi.SortedChildFolders)
{
if (fic.ChildFolderCount > 0)
{
// Recursively call for child folders
LoadBottomLevelFolders(fic, treeView);
}
else
{
if (fic.Name != "PROMS")
{
// If the folder is a bottom-level folder (no child folders), add it directly to the TreeView
TreeNode tnc = treeView.Nodes.Add(fic.Name);
tnc.Tag = fic;
}
}
}
}
private bool LoadDocVersions(FolderInfo fic, TreeNode tnc, bool noProcs)
{
bool rtnval = false;
@@ -201,7 +300,7 @@ namespace VEPROMS
private void UpdateROValues()
{
this.Cursor = Cursors.WaitCursor;
List<ProcedureInfo> pil = new List<ProcedureInfo>(); // C2023-002: list of checked out procedures, used in frmBatchRefreshCheckedOut dialog
List<ProcedureInfo> pil = new List<ProcedureInfo>(); // C2023-002: list of checked out procedures, used in frmBatchRefreshCheckedOut dialog
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
foreach (TreeNode tn in myDocVersions.Keys)
if (tn.Checked)
@@ -251,7 +350,7 @@ namespace VEPROMS
Application.DoEvents();
}
}
Application.DoEvents();
// when processing more than one procedure set, display only one completed message after all are processed
if (ROFstInfo.MessageList != null)
@@ -273,7 +372,7 @@ namespace VEPROMS
sb.AppendLine("Have you requested the users to close the procedures and do you want to continue the process?");
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(1);
frmCO.MySessionInfo = MySessionInfo;
frmCO.CheckedOutProcedures = pil; // C2023-002: set list of checked out procedures
frmCO.CheckedOutProcedures = pil; // C2023-002: set list of checked out procedures
frmCO.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmCO.Width, Screen.PrimaryScreen.WorkingArea.Height - frmCO.Height);
// C2023-002: Allow close of dialog that has list of procedures that are checked out
if (frmCO.ShowDialog(this) != DialogResult.Cancel)
@@ -412,7 +511,7 @@ namespace VEPROMS
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Refresh Transitions");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtResults.AppendText("Refresh Transitions");
txtResults.AppendText(Environment.NewLine);
@@ -449,19 +548,19 @@ namespace VEPROMS
Application.DoEvents();
}
}
if (numTransFixed == 0 && numTransConverted ==0)
if (numTransFixed == 0 && numTransConverted == 0)
{
txtResults.AppendText("No Transitions Needed Updated.");
txtResults.AppendText(Environment.NewLine);
}
ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange);
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Transitions Checked: {0}",numTransProcessed));
txtProcess.AppendText(string.Format("Transitions Checked: {0}", numTransProcessed));
txtProcess.AppendText(Environment.NewLine);
// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
txtProcess.AppendText(string.Format("Transitions Correct As Is: {0}",numTransProcessed - (numTransConverted + numTransFixed)));
txtProcess.AppendText(string.Format("Transitions Correct As Is: {0}", numTransProcessed - (numTransConverted + numTransFixed)));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Transitions Modified: {0}", numTransFixed));
txtProcess.AppendText(Environment.NewLine);
@@ -490,10 +589,10 @@ namespace VEPROMS
}
this.Cursor = Cursors.Default;
// B2018-002 - Invalid Transitions - Display Transition Refresh Statisitic
if (numTransFixed == 0 && numTransConverted ==0)
MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.",numTransProcessed), "Refresh Transitions Completed");
if (numTransFixed == 0 && numTransConverted == 0)
MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.", numTransProcessed), "Refresh Transitions Completed");
else
MessageBox.Show(string.Format("{0} Transitions Checked.\n\n {1} Correct as is.\n\n {2} Transitions modified.\n\n {3} Transitions converted to text.", numTransProcessed, numTransProcessed - (numTransFixed + numTransConverted),numTransFixed, numTransConverted), "Refresh Transitions Completed");
MessageBox.Show(string.Format("{0} Transitions Checked.\n\n {1} Correct as is.\n\n {2} Transitions modified.\n\n {3} Transitions converted to text.", numTransProcessed, numTransProcessed - (numTransFixed + numTransConverted), numTransFixed, numTransConverted), "Refresh Transitions Completed");
}
// C2017-030 - new Admin Tools user interface
@@ -506,7 +605,7 @@ namespace VEPROMS
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Refreshing Word Attachments");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int affectedRows = ESP_DeletePDFs.Execute("vesp_DeletePDFs");
@@ -516,7 +615,7 @@ namespace VEPROMS
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(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
@@ -561,7 +660,7 @@ namespace VEPROMS
private int RefreshForSearch()
{
int cntfix = 0;
List<int> gids = GridInfoList.GetIds(); // get all grids in database
List<int> gids = GridInfoList.GetIds(); // get all grids in database
pbProcess.Minimum = 0;
pbProcess.Maximum = gids.Count;
pbProcess.Step = 1;
@@ -570,7 +669,7 @@ namespace VEPROMS
using (Content cc = Content.Get(cid))
{
StepConfig sc = new StepConfig(cc.Config);
if (!sc.Step_FixedTblForSrch) // if not processed through this code already, get searchable text & save
if (!sc.Step_FixedTblForSrch) // if not processed through this code already, get searchable text & save
{
try
{
@@ -588,7 +687,7 @@ namespace VEPROMS
cc.UserID = Volian.Base.Library.VlnSettings.UserID;
cc.DTS = DateTime.Now;
cc.Text = srchtxt;
}
sc.Step_FixedTblForSrch = true;
cc.Config = sc.ToString();
@@ -615,7 +714,7 @@ namespace VEPROMS
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(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
@@ -636,7 +735,7 @@ namespace VEPROMS
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
@@ -652,7 +751,7 @@ namespace VEPROMS
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Purging Orphan Items");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
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");
@@ -689,7 +788,7 @@ namespace VEPROMS
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
@@ -704,7 +803,7 @@ namespace VEPROMS
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(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
@@ -727,9 +826,9 @@ namespace VEPROMS
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
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(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
this.Cursor = Cursors.Default;
@@ -742,7 +841,7 @@ namespace VEPROMS
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Purging Unused RoFSTs and Figures Items");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
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");
@@ -783,7 +882,7 @@ namespace VEPROMS
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
@@ -798,7 +897,7 @@ namespace VEPROMS
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(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
@@ -817,7 +916,7 @@ namespace VEPROMS
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
@@ -832,7 +931,7 @@ namespace VEPROMS
DateTime pStart = DateTime.Now;
txtProcess.AppendText("Purging Unused Referenced Object Associations");
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
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");
@@ -866,7 +965,7 @@ namespace VEPROMS
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
@@ -881,11 +980,11 @@ namespace VEPROMS
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(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(string.Format("Hidden Items Count: {0}", myItems.Count));
txtProcess.AppendText(Environment.NewLine);
if (myItems.Count > 0)
{
@@ -906,7 +1005,7 @@ namespace VEPROMS
txtResults.AppendText(Environment.NewLine);
}
DateTime pEnd = DateTime.Now;
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(Environment.NewLine);
Application.DoEvents();
@@ -921,16 +1020,16 @@ namespace VEPROMS
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(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")));
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");
MessageBox.Show("Show Users Completed", "Show Users");
}
private void ProcessUpdateROValues(DocVersionInfo dq)
@@ -1068,7 +1167,7 @@ namespace VEPROMS
// show the changes made in the Results pannel, include the ItemId of the step element
void ContentInfo_StaticContentInfoChange(object sender, StaticContentInfoEventArgs args)
{
if (args.Type == "TX")
{
myFixesCount++;
@@ -1085,7 +1184,7 @@ namespace VEPROMS
}
else // B2018-002 - Invalid Transitions - Display Transition Cconversion Statistics
{
myFixes.AppendLine(string.Format("Converted Transition to text for {0}({1})", (sender as ItemInfo).ShortPath, (sender as ItemInfo).ItemID));
myFixes.AppendLine(string.Format("Converted Transition to text for {0}({1})", (sender as ItemInfo).ShortPath, (sender as ItemInfo).ItemID));
}
}
@@ -1121,10 +1220,40 @@ namespace VEPROMS
CheckChildNodes(e.Node, e.Node.Checked);
}
}
if (swDeleteAnnotations.Value)
{
if (e.Node.Checked)
{
DiselectParentNodes(e.Node.Parent);
DiselectChildNodes(e.Node.Nodes);
}
}
btnFixLinks.Enabled = AtLeastOneNodeChecked(); // C2017-030 support for Refresh Transitions/Update RO Values
}
private void DiselectParentNodes(TreeNode parent)
{
while (parent != null)
{
if (parent.Checked)
parent.Checked = false;
parent = parent.Parent;
}
}
private void DiselectChildNodes(TreeNodeCollection childes)
{
foreach (TreeNode oneChild in childes)
{
if (oneChild.Checked)
oneChild.Checked = false;
DiselectChildNodes(oneChild.Nodes);
}
}
private void CheckChildNodes(TreeNode treeNode, bool ischecked)
{
foreach (TreeNode tn in treeNode.Nodes)
@@ -1143,9 +1272,9 @@ namespace VEPROMS
public ProgressBarItem ProgressBar
{
get { return _ProgressBar; }
set
{
_ProgressBar = value;
set
{
_ProgressBar = value;
_ProgressBar.TextVisible = true;
}
}
@@ -1246,6 +1375,25 @@ namespace VEPROMS
this.Close();
}
// new Admin Tools user interface for deletes
private void sideNavItmDelete_Click(object sender, EventArgs e)
{
AdminToolType = E_AdminToolType.Delete;
lblAdmToolProgressType.Text = "";
setupProgessSteps1();
if (swDeleteFolder.Value)
ResetDelTV(true);
else
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
@@ -1254,7 +1402,8 @@ namespace VEPROMS
Check = 0,
Repair = 1,
Links = 2,
Users = 3
Users = 3,
Delete = 4
};
private E_AdminToolType AdminToolType = 0;
@@ -1305,6 +1454,11 @@ namespace VEPROMS
splitContainer3.Panel2Collapsed = true;
progressSteps1.Visible = false;
break;
case E_AdminToolType.Delete:
splitContainer3.Panel2Collapsed = true;
progressSteps1.Visible = false;
break;
}
}
@@ -1500,5 +1654,138 @@ namespace VEPROMS
}
}
//C2024-005 Delete Annotations, Delete Folders
private void swDeleteAnnotations_ValueChanged(object sender, EventArgs e)
{
swDeleteFolder.Value = !swDeleteAnnotations.Value;
if (swDeleteFolder.Value)
ResetDelTV(true);
else
ResetDelTV(false);
}
private void swDeleteFolder_ValueChanged(object sender, EventArgs e)
{
swDeleteAnnotations.Value = !swDeleteFolder.Value;
if (swDeleteFolder.Value)
ResetDelTV(true);
else
ResetDelTV(false);
}
private void btnDeleteItems_Click(object sender, EventArgs e)
{
//clear
txtResults.Clear();
txtProcess.Clear();
if (swDeleteFolder.Value)
{
//TODO process deletions of folders
txtProcess.AppendText("Deleting Folders...");
//List<ProcedureInfo> pil = new List<ProcedureInfo>();
//foreach (TreeNode tn in myProcedures.Keys)
// if (tn.Checked)
// pil.Add(myProcedures[tn]);
////Load Selected Folders
Dictionary<int, string> folderData = new Dictionary<int, string>();
//List<FolderInfo> Flist = new List<FolderInfo>();
//foreach (TreeNode tn in myDocVersions.Keys)
// if (tn.Checked)
// Flist.Add();
//List<DocVersionInfo> dvil = new List<DocVersionInfo>();
//foreach (TreeNode tn in myDocVersions.Keys)
// if (tn.Checked)
// dvil.Add(myDocVersions[tn]);
//foreach (TreeNode tn in myTVdel.Nodes)
//{
// if (tn.Checked)
// {
// var itemInfo = myProcedures[tn];
// folderData.Add(itemInfo.ItemID, itemInfo.DisplayText);
// }
//}
//ProcessDelete(dvil);
}
else
{
// Write progress status
txtProcess.AppendText("Deleting Annotations...");
// Create a list of procedures the user selected
List<ProcedureInfo> pil = new List<ProcedureInfo>();
foreach (TreeNode tn in myProcedures.Keys)
if (tn.Checked)
pil.Add(myProcedures[tn]);
// Create a list of doc versions the user selected
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
foreach (TreeNode tn in myDocVersions.Keys)
if (tn.Checked)
dvil.Add(myDocVersions[tn]);
frmAnnotationsCleanup frmAnnoDel = new frmAnnotationsCleanup(this, pil, dvil);
frmAnnoDel.ShowDialog();
}
}
private void ProcessDelete(List<DocVersionInfo> foldersToDelete)
{
DateTime pStart = DateTime.Now;
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm"));
txtProcess.AppendText(Environment.NewLine);
foreach (var kvp in foldersToDelete)
{
int itemID = (int)kvp.ItemID;
string folderName = kvp.Name;
// Perform the deletion operation
// Assume DeleteFolderByID is a method that deletes the folder by its ItemID
bool deletionSuccessful = DeleteFolderByID(itemID);
// Update txtProcess with the progress
if (deletionSuccessful)
{
txtProcess.AppendText($"Successfully deleted folder: {folderName} (ID: {itemID})");
}
else
{
txtProcess.AppendText($"Failed to delete folder: {folderName} (ID: {itemID})");
}
txtProcess.AppendText(Environment.NewLine);
}
}
// Example deletion method
private bool DeleteFolderByID(int itemID)
{
// Implement your folder deletion logic here
// Return true if deletion was successful, false otherwise
return true; // Placeholder
}
public List<ProcedureInfo> RetrieveChkAnnotations()
{
List<ProcedureInfo> pil = new List<ProcedureInfo>();
foreach (TreeNode tn in myProcedures.Keys)
if (tn.Checked)
pil.Add(myProcedures[tn]);
return pil;
}
}
}

View File

@@ -117,6 +117,44 @@
<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>
<data name="swDeleteFolder.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="labelX13.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="swDeleteAnnotations.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="labelX14.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>
<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>
@@ -135,9 +173,6 @@
zJwL4b/EAAAAAElFTkSuQmCC
</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).
@@ -184,91 +219,6 @@ This tool may take an extended period of time to execute.
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="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/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
</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/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
</value>
</data>
<data name="swRefreshTblsForSrch.SuperTooltip" xml:space="preserve">
@@ -365,9 +315,94 @@ 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="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/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
</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/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>38</value>
<value>46</value>
</metadata>
</root>

View File

@@ -45,7 +45,6 @@ namespace VEPROMS
this.itemContainer3 = new DevComponents.DotNetBar.ItemContainer();
this.btnNew = new DevComponents.DotNetBar.ButtonItem();
this.btnOpen = new DevComponents.DotNetBar.ButtonItem();
this.btnPrint = new DevComponents.DotNetBar.ButtonItem();
this.btnPrepare = new DevComponents.DotNetBar.ButtonItem();
this.btnAdmin = new DevComponents.DotNetBar.ButtonItem();
this.btnUpdateFormats = new DevComponents.DotNetBar.ButtonItem();
@@ -215,7 +214,7 @@ namespace VEPROMS
this.btnSendErrorLog,
this.btnShowErrFld,
this.btnShowPrtFld,
this.btnHelpAbout}); ;
this.btnHelpAbout});
this.btnHelp.Text = "Help";
//
// btnHelpManual
@@ -339,7 +338,6 @@ namespace VEPROMS
this.itemContainer3.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
this.btnNew,
this.btnOpen,
this.btnPrint,
this.btnPrepare,
this.btnAdmin});
//
@@ -365,16 +363,7 @@ namespace VEPROMS
this.btnOpen.SubItemsExpandWidth = 24;
this.btnOpen.Text = "&Open...";
this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click);
//
// btnPrint
//
this.btnPrint.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
this.btnPrint.Enabled = false;
this.btnPrint.Image = ((System.Drawing.Image)(resources.GetObject("btnPrint.Image")));
this.btnPrint.Name = "btnPrint";
this.btnPrint.SubItemsExpandWidth = 24;
this.btnPrint.Text = "Create &PDF";
this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click);
//
// btnPrepare
//
@@ -1646,7 +1635,6 @@ namespace VEPROMS
private DevComponents.DotNetBar.ButtonItem btnNew;
private DevComponents.DotNetBar.ButtonItem btnOpen;
private DevComponents.DotNetBar.ButtonItem btnPrepare;
private DevComponents.DotNetBar.ButtonItem btnPrint;
private DevComponents.DotNetBar.ItemContainer icRecentDocs;
private DevComponents.DotNetBar.LabelItem labelItem8;
private DevComponents.DotNetBar.ItemContainer itemContainer5;
@@ -1775,3 +1763,4 @@ namespace VEPROMS
}
}

View File

@@ -2098,7 +2098,6 @@ namespace VEPROMS
btnAdministrativeTools.Click += new EventHandler(btnAdministrativeTools_Click);
btnAdmin.SubItems.Add(btnAdministrativeTools);
this.superTooltip1.SetSuperTooltip(btnPrint, new SuperTooltipInfo("Create PDF", null, null, null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnExit, new SuperTooltipInfo("Exit", null, null, null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnOptions, new SuperTooltipInfo("Options", null, null, null, null, eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(btnManageSecurity, new SuperTooltipInfo("Manage Security", null, null, null, null, eTooltipColor.Gray));
@@ -3126,22 +3125,44 @@ namespace VEPROMS
if (dvi != null)
{
DlgPrintProcedure prnDlg = new DlgPrintProcedure(dvi, true);
if (dvi.MultiUnitCount == 0) prnDlg.SelectedSlave = -1;
if (dvi.MultiUnitCount == 0)
{
prnDlg.SelectedSlave = -1;
}
else if (dvi.MultiUnitCount > 0)
{
string[] arguments = Environment.GetCommandLineArgs();
for (int i = 0; i < arguments.Length; i++)
{
if (arguments[i].Contains("/C="))
{
Console.WriteLine("In arguments loop");
//int num;
string[] childarg = arguments[i].Split('=');
if (int.TryParse(childarg[1], out int num))
{
prnDlg.SelectedSlave = num;
}
}
}
}
prnDlg.AllowDateTimePrefixSuffix = false; //C2018-033 don't append any selected date/time pdf file prefix or suffix (defined in working draft properties)
prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
//prnDlg.FormClosed += new FormClosedEventHandler(prnDlg_FormClosed);
//while (!_RunNext) Application.DoEvents();
}
}
}
}
ranAuto = true;
}
}
}
if (ranAuto)
{
this.Close();
if (ranAuto)
{
this.Close();
}
}
}
}
@@ -4092,10 +4113,6 @@ namespace VEPROMS
lblUser.Text = tc.SelectedDisplayTabItem.MyUserRole;
if (tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion.MultiUnitCount > 1)
btnPrint.Visible = false;
else
btnPrint.Visible = true;
// Reset the ribbon buttons B2016-148 (ex. a copystep done in a different procedure tab my require the paste step options to be active
if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.MyStepTabPanel != null) // MyStepTabPanel will be null if the active tab is a Word Attachment
@@ -4350,7 +4367,6 @@ namespace VEPROMS
ctrlAnnotationDetails.UpdateAnnotationGrid(_CurrentItem); // set the CurrentItem (send Message) when the MSWord section is opened.
}
btnPrint.Enabled = (_CurrentItem != null);
}
void _LastStepRTB_EditModeChanged(object sender, EventArgs args)
@@ -4842,12 +4858,7 @@ namespace VEPROMS
StepRTB.MyFontFamily = cmbFont.SelectedValue as FontFamily;
}
private void btnPrint_Click(object sender, EventArgs e)
{
DlgPrintProcedure prnDlg = new DlgPrintProcedure(this._CurrentItem.MyProcedure);
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
}
private void lblResolution_Click(object sender, EventArgs e)
{

View File

@@ -254,7 +254,7 @@ namespace VEPROMS
//
this.ppBtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.ppBtnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.ppBtnCancel.Location = new System.Drawing.Point(742, 342);
this.ppBtnCancel.Location = new System.Drawing.Point(742, 338);
this.ppBtnCancel.Margin = new System.Windows.Forms.Padding(2);
this.ppBtnCancel.Name = "ppBtnCancel";
this.ppBtnCancel.Size = new System.Drawing.Size(56, 21);
@@ -266,7 +266,7 @@ namespace VEPROMS
// ppBtnOK
//
this.ppBtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.ppBtnOK.Location = new System.Drawing.Point(669, 342);
this.ppBtnOK.Location = new System.Drawing.Point(669, 338);
this.ppBtnOK.Margin = new System.Windows.Forms.Padding(2);
this.ppBtnOK.Name = "ppBtnOK";
this.ppBtnOK.Size = new System.Drawing.Size(56, 21);

View File

@@ -29,6 +29,7 @@ namespace VEPROMS
private List<MiniConfig> _DeletedApples;
private List<EnhancedMiniConfig> _Enhanced;
private DocVersionConfig _DocVersionConfig;
private string _OrgPDFPath; // B2024-030 used to save last PDF path
// Default values
private string _DefaultFormatName = null;
@@ -97,6 +98,7 @@ namespace VEPROMS
_Initializing = true;
InitializeComponent();
_OrgPDFPath = _DocVersionConfig.Print_PDFLocation; // B2024-030 save last PDF path
btnGeneral.PerformClick(); // always start with General tab or button
_Initializing = false;
@@ -323,8 +325,6 @@ namespace VEPROMS
tiApplicability.Visible = false;
}
ppTxtBxPDFLoc.TextChanged += new EventHandler(ppTxtBxPDFLoc_TextChanged);
//end add new applicability stuff
lblProcSetRev.Visible = ppRTxtProcSetRev.Visible = _DocVersionConfig.MyDocVersion.MyDocVersionInfo.ActiveFormat.MyStepSectionPrintData.UseXtraRevNumber;
@@ -538,11 +538,32 @@ namespace VEPROMS
}
}
// The following code was added to fix Bug B2013-117
private void ppTxtBxPDFLoc_TextChanged(object sender, EventArgs e)
//B2024-030 Check the PDF Location path and prompt to create the folders if needed
private void CheckPDFLocationPath()
{
if (_Initializing == false)
_DocVersionConfig.Print_PDFLocation = ppTxtBxPDFLoc.Text;
string pdfloc = ppTxtBxPDFLoc.Text;
if (pdfloc == string.Empty) return;
if (!Directory.Exists(ppTxtBxPDFLoc.Text))
{
string msg = string.Format(" The Folder: '{0}' does not exist. \n\nCreate it?", ppTxtBxPDFLoc.Text);
DialogResult dr = MessageBox.Show(msg, "PDF Location Folder Not Found", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr == DialogResult.Yes)
{
try
{
Directory.CreateDirectory(ppTxtBxPDFLoc.Text);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error trying to create folder", MessageBoxButtons.OK, MessageBoxIcon.Error);
_DocVersionConfig.Print_PDFLocation = _OrgPDFPath; // reset to the path we started with
}
}
else
{
_DocVersionConfig.Print_PDFLocation = _OrgPDFPath; // reset to the path we started with
}
}
}
private string AddSlaveNode(MiniConfig mc)
@@ -588,6 +609,9 @@ namespace VEPROMS
private void btnVersionsPropOK_Click(object sender, EventArgs e)
{
//B2024-030 Check the PDF Location path and prompt to create the folders if needed
CheckPDFLocationPath();
docVersionConfigBindingSource.EndEdit(); // need to end the edit session first or any format selection chanage will not stick B2015-157
// if there is a change to the format, clean up any overridden formats that point to the selected item before saving the format change:
@@ -773,7 +797,6 @@ namespace VEPROMS
// B2019-132 update the association count for this working draft
_DocVersionConfig.MyDocVersion.MyDocVersionInfo.RefreshDocVersionAssociations();
this.Close();
}

View File

@@ -225,6 +225,86 @@ namespace VEPROMS.CSLA.Library
throw new DbCslaException("Error on Annotation.Delete", ex);
}
}
public static void DeleteAnnotationProcByType(int typID, string procList)
{
if (!CanDeleteObject())
throw new System.Security.SecurityException("User not authorized to remove a Annotation");
try
{
DataPortal.Delete(new DeleteAnnotationProcByTypeCriteria(typID, procList));
AnnotationInfo.StaticOnInfoChanged();
}
catch (Exception ex)
{
System.Data.SqlClient.SqlException exSQL = SqlException(ex);
if (exSQL != null && exSQL.Message.Contains("###Cannot Delete Item###"))
throw exSQL;
Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
throw new DbCslaException("Error on Annotation.Delete", ex);
}
}
public static void DeleteAnnotationDocvByType(int typID, string versionID)
{
if (!CanDeleteObject())
throw new System.Security.SecurityException("User not authorized to remove a Annotation");
try
{
DataPortal.Delete(new DeleteAnnotationDocvByTypeCriteria(typID, versionID));
AnnotationInfo.StaticOnInfoChanged();
}
catch (Exception ex)
{
System.Data.SqlClient.SqlException exSQL = SqlException(ex);
if (exSQL != null && exSQL.Message.Contains("###Cannot Delete Item###"))
throw exSQL;
Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
throw new DbCslaException("Error on Annotation.Delete", ex);
}
}
public static int getAnnotationProcCnt(int typID, string procList)
{
if (!CanGetObject())
throw new System.Security.SecurityException("User not authorized to remove a Annotation");
try
{
Annotation ProcCnt = DataPortal.Fetch<Annotation>(new getAnnotationCountProcCriteria(typID, procList));
AnnotationInfo.StaticOnInfoChanged();
return Annotation.ProcCnt;
//return Int32.Parse(ProcCnt);
}
catch (Exception ex)
{
System.Data.SqlClient.SqlException exSQL = SqlException(ex);
if (exSQL != null && exSQL.Message.Contains("###Cannot retrieve Item###"))
throw exSQL;
Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
throw new DbCslaException("Error on getAnnotationCountProcCriteria", ex);
}
}
public static int getAnnotationCountDocv(int typID, string procList)
{
if (!CanGetObject())
throw new System.Security.SecurityException("User not authorized to remove a Annotation");
try
{
Annotation DocvCnt = DataPortal.Fetch<Annotation>(new getAnnotationCountDocvCriteria(typID, procList));
AnnotationInfo.StaticOnInfoChanged();
return Annotation.DocvCnt;
}
catch (Exception ex)
{
System.Data.SqlClient.SqlException exSQL = SqlException(ex);
if (exSQL != null && exSQL.Message.Contains("###Cannot retrieve Item###"))
throw exSQL;
Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
throw new DbCslaException("Error on getAnnotationCountDocvCriteria", ex);
}
}
private static System.Data.SqlClient.SqlException SqlException(Exception ex)
{
Type sqlExType = typeof(System.Data.SqlClient.SqlException);
@@ -280,12 +360,209 @@ namespace VEPROMS.CSLA.Library
throw new DbCslaException("Item.DataPortal_Delete", ex);
}
}
[Serializable()]
protected class DeleteAnnotationProcByTypeCriteria
{
private int _typeID;
public int TypeID
{ get { return _typeID; } }
private string _procList;
public string ProcList
{ get { return _procList; } }
public DeleteAnnotationProcByTypeCriteria(int typeID, string procList)
{
_typeID = typeID;
_procList = procList;
}
}
[Transactional(TransactionalTypes.TransactionScope)]
private void DataPortal_Delete(DeleteAnnotationProcByTypeCriteria criteria)
{
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Delete", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandTimeout = Database.SQLTimeout;
cm.CommandText = "deleteAnnotationsProcByType";
cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
cm.Parameters.AddWithValue("@procList", criteria.ProcList);
cm.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("Item.DataPortal_Delete Annotations by group", ex);
}
}
[Serializable()]
protected class DeleteAnnotationDocvByTypeCriteria
{
private int _typeID;
public int TypeID
{ get { return _typeID; } }
private string _versionID;
public string VersionID
{ get { return _versionID; } }
public DeleteAnnotationDocvByTypeCriteria(int typeID, string versionID)
{
_typeID = typeID;
_versionID = versionID;
}
}
[Transactional(TransactionalTypes.TransactionScope)]
private void DataPortal_Delete(DeleteAnnotationDocvByTypeCriteria criteria)
{
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Delete Annotations by Type Docv", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandTimeout = Database.SQLTimeout;
cm.CommandText = "deleteAnnotationsDocvByType";
cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
cm.Parameters.AddWithValue("@docvList", criteria.VersionID);
cm.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("Item.DataPortal_Delete Annotations by type Docv", ex);
}
}
private static int _procCnt;
public static int ProcCnt
{
get { return _procCnt; }
set { _procCnt = value; }
}
[Serializable()]
protected class getAnnotationCountProcCriteria
{
private int _procCnt;
public int ProcCnt
{ get { return _procCnt; }
set { _procCnt = value; }
}
private int _typeID;
public int TypeID
{ get { return _typeID; } }
private string _procList;
public string ProcList
{ get { return _procList; } }
public getAnnotationCountProcCriteria(int typeID, string procList, int procCnt = 0)
{
_typeID = typeID;
_procList = procList;
_procCnt = procCnt;
}
}
[Transactional(TransactionalTypes.TransactionScope)]
private getAnnotationCountProcCriteria DataPortal_Fetch(getAnnotationCountProcCriteria criteria)
{
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Fetch", GetHashCode());
try
{
//int ProcCnt;
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandTimeout = Database.SQLTimeout;
cm.CommandText = "getAnnotationProcCount";
cm.Parameters.AddWithValue("@procList", criteria.ProcList);
cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
Annotation.ProcCnt = (int)cm.ExecuteScalar();
}
}
return criteria; //_procCnt.ToString();
}
catch (Exception ex)
{
if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.GetAnnotationProcCnt", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("Annotation.GetAnnotationProcCnt by group", ex);
}
}
private static int _docvCnt;
public static int DocvCnt
{ get { return _docvCnt; }
set { _docvCnt = value; }
}
[Serializable()]
protected class getAnnotationCountDocvCriteria
{
private int _docvCnt;
public int DocvCnt
{ get { return _docvCnt; }
set { _docvCnt = value; }
}
private int _TypeID;
public int TypeID
{ get { return _TypeID; } }
private string _docvList;
public string DocvList
{ get { return _docvList; } }
public getAnnotationCountDocvCriteria(int typeID, string docvList, int docvCnt = 0)
{
_TypeID = typeID;
_docvList = docvList;
_docvCnt = docvCnt;
}
}
[Transactional(TransactionalTypes.TransactionScope)]
private getAnnotationCountDocvCriteria DataPortal_Fetch(getAnnotationCountDocvCriteria criteria)
{
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.DataPortal_Fetch", GetHashCode());
try
{
//int ProcCnt;
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandTimeout = Database.SQLTimeout;
cm.CommandText = "getAnnotationDocvCount";
cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
cm.Parameters.AddWithValue("@DocvList", criteria.DocvList);
Annotation.DocvCnt = (int)cm.ExecuteScalar();
}
return criteria;
}
}
catch (Exception ex)
{
if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("Item.DataPortal_Delete Annotations by group", ex);
}
}
}
//public partial class AnnotationTypeAnnotations
//{
// public static int GetAnnotationID()
// {
// return AnnotationTypeAnnotat
// }
//}
}

View File

@@ -468,10 +468,12 @@ namespace VEPROMS.CSLA.Library
return text;
}
// B2022-035: resolve unit specific designators - moved code to here so that other objects can use it
// B2024-025 added <ID> to the replace list
public static string ResolveUnitSpecific(DocVersionInfo mydocversion, string text)
{
if (mydocversion == null) return text;
text = Regex.Replace(text, @"\<U\>", mydocversion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\<ID\>", mydocversion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\<(U(-|\\u8209\?)ID)\>", mydocversion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\<(U(-|\\u8209\?)NAME)\>", mydocversion.DocVersionConfig.Unit_Name, RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\<(U(-|\\u8209\?)TEXT)\>", mydocversion.DocVersionConfig.Unit_Text, RegexOptions.IgnoreCase);

View File

@@ -2934,7 +2934,8 @@ namespace VEPROMS.CSLA.Library
{
string str = MyContent.Text;
// B2022-035: resolve unit specific designators
if (str.ToUpper().Contains(@"<U")) str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(this.MyDocVersion, str);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(this.MyDocVersion, str);
return ConvertToDisplayText(str, false, " "); // B2024-013 added " " to replace hard returns with a space instead of semi-colon
}
}
@@ -2946,7 +2947,8 @@ namespace VEPROMS.CSLA.Library
{
string str = MyContent.Text;
// B2022-035: resolve unit specific designators
if (str.ToUpper().Contains(@"<U")) str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(this.MyDocVersion, str);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(this.MyDocVersion, str);
return ConvertToDisplayText(str, false, ""); // pass in empty string for hard retun char will keep hard return
}
}
@@ -2960,7 +2962,8 @@ namespace VEPROMS.CSLA.Library
string str = MyContent.Text;
if (MyDocVersion != null)
{
str = Regex.Replace(str, @"\<[uU]\>", MyDocVersion.DocVersionConfig.Unit_Number);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
}
else
{
@@ -2979,16 +2982,13 @@ namespace VEPROMS.CSLA.Library
if (MyDocVersion != null)
{
// B2022-035: resolve unit specific designators
if (str.ToUpper().Contains("<U")) str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
}
else
{
_MyLog.WarnFormat("Disconnected Data - ItemID = {0}", ItemID);
}
//if (str.Contains("<u>"))
// str = str.Replace("<u>", MyDocVersion.DocVersionConfig.Unit_Number);
//if (str.Contains("<U>"))
// str = str.Replace("<U>", MyDocVersion.DocVersionConfig.Unit_Number);
return ConvertToDisplayText(str);
}
}
@@ -3047,7 +3047,8 @@ namespace VEPROMS.CSLA.Library
string str = MyContent.Text;
if (MyDocVersion != null)
{
str = Regex.Replace(str, @"\<[uU]\>", MyDocVersion.DocVersionConfig.Unit_Number);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
}
else
{
@@ -3080,8 +3081,8 @@ namespace VEPROMS.CSLA.Library
}
else
str = MyContent.Number;
str = Regex.Replace(str, @"\<U-ID\>", MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
str = Regex.Replace(str, @"\<ID\>", MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
}
else
{
@@ -3094,7 +3095,9 @@ namespace VEPROMS.CSLA.Library
// str = str.Replace(@"<S\u8209?ID>", MyDocVersion.DocVersionConfig.Unit_ID);
str = ConvertToDisplayText(str);
if (MyDocVersion != null) // B2020-086 check for null doc version - happens if item we are trying to open is no longer there (disconnected)
str = Regex.Replace(str, @"\<[uU]\>", MyDocVersion.DocVersionConfig.Unit_Number); // B2017-019 - process "<u>" in section number
// B2017-019 - process "<u>" in section number
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(MyDocVersion, str);
return str;
}
//get { return ConvertToDisplayText(MyContent.Number); }

View File

@@ -1309,7 +1309,8 @@ namespace VEPROMS.CSLA.Library
else if (addType == EAddpingPart.Replace) // what about user interface for enhanced pasted steps?
{
ItemInfo enhReplaceItem = ItemInfo.Get(edSource.ItemID);
newEnhancedItemInfo = Item.PasteReplace(enhReplaceItem, tmpCopyEnhancedID, chgid);
TreeNode trn = null;
newEnhancedItemInfo = Item.PasteReplace(enhReplaceItem, tmpCopyEnhancedID, chgid, trn);
}
// update the config data for the new enhanced item (procedure, section or step) to point back to the correct source
@@ -2497,13 +2498,16 @@ namespace VEPROMS.CSLA.Library
}
#endregion
#region PasteReplace
public static ItemInfo PasteReplace(ItemInfo itemInfo, int copyStartID, string chgid)
public static ItemInfo PasteReplace(ItemInfo itemInfo, int copyStartID, string chgid, TreeNode treeNodeReplace)
{
bool tmp= false;
return PasteReplace(itemInfo, copyStartID, chgid, ref tmp);
bool tmp = false;
return PasteReplace(itemInfo, copyStartID, chgid, treeNodeReplace, ref tmp);
}
// B2017-179 return a bool (firstTrans) if we could not replace the step but the user wants to position to the first transition that needs resolved
public static ItemInfo PasteReplace(ItemInfo itemInfo, int copyStartID, string chgid, ref bool firstTrans)
public static ItemInfo PasteReplace(ItemInfo itemInfo, int copyStartID, string chgid, TreeNode treeNodeReplace, ref bool firstTrans)
{
firstTrans = false;
if (!CanDeleteObject())
@@ -2560,7 +2564,14 @@ namespace VEPROMS.CSLA.Library
}
else
{
newItemInfo.MyParent.OnNewChild(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.Child));
//Create tree node for copied procedure when no other procedures exist in the folder
VETreeNode vtn = treeNodeReplace as VETreeNode;
DocVersionInfo dvi = vtn.VEObject as DocVersionInfo;
ItemInfo newProc = dvi.PasteChild(copyStartID);
VETreeNode tn1 = new VETreeNode(newProc);
treeNodeReplace.Nodes.Add(tn1); // add tree node to end of list.
treeNodeReplace = tn1;
}
return newItemInfo;
}

View File

@@ -1229,7 +1229,8 @@ namespace VEPROMS.CSLA.Library
default:
//F2024-048 use a hard space (\\u160;) instead of a space in the page number text
// to keep that text together on the page
tb.Append(string.Format(" (Page{0}{1})", "\\u160;", tb._ToItem.PageNumber + 1));
//B2024-026: hard space unicode ends with '?' not ';'
tb.Append(string.Format(" (Page{0}{1})", "\\u160?", tb._ToItem.PageNumber + 1));
break;
}
}
@@ -1540,8 +1541,8 @@ namespace VEPROMS.CSLA.Library
ItemInfo tmpitm = TranGetSectionItem(itminfo);
if (!tmpitm.IsSection) return "";
string str = tmpitm.MyContent.Number;
str = Regex.Replace(str, @"\<U\>", itminfo.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase );
str = Regex.Replace(str, @"\<ID\>", itminfo.MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(itminfo.MyDocVersion, str);
return (str);
}
private static string TranGetSectionNumber(TransitionBuilder tb, bool allLevels)
@@ -1566,8 +1567,8 @@ namespace VEPROMS.CSLA.Library
}
//string str = tmpitm.MyContent.Number;
string str = BuildSectionPath(ToSections);
str = Regex.Replace(str, @"\<U\>", tb._ToItem.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase);
str = Regex.Replace(str, @"\<ID\>", tb._ToItem.MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(tb._ToItem.MyDocVersion, str);
//if (!str.EndsWith(".") && tb._ToItem.ItemID != tb._ToItem.ActiveSection.ItemID)
tb.StepPrefix = ".";
tb.SectionNumberLength = str.Length;

View File

@@ -0,0 +1,36 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace VEPROMS.CSLA.Library.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
[global::System.Configuration.DefaultSettingValueAttribute("Data Source=plarsen;Initial Catalog=VEPROMS_BRAIDWOOD;Integrated Security=True")]
public string VEPROMS_BRAIDWOODConnectionString {
get {
return ((string)(this["VEPROMS_BRAIDWOODConnectionString"]));
}
}
}
}

View File

@@ -0,0 +1,14 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="VEPROMS.CSLA.Library.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="VEPROMS_BRAIDWOODConnectionString" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;ConnectionString&gt;Data Source=plarsen;Initial Catalog=VEPROMS_BRAIDWOOD;Integrated Security=True&lt;/ConnectionString&gt;
&lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=plarsen;Initial Catalog=VEPROMS_BRAIDWOOD;Integrated Security=True</Value>
</Setting>
</Settings>
</SettingsFile>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@


File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@


View File

@@ -56,6 +56,9 @@ namespace Volian.Controls.Library
private ROFSTLookup.rochild selectedChld;
private DisplayTags displayTags;
#endregion
#region Properties
@@ -268,6 +271,10 @@ namespace Volian.Controls.Library
_searchTimer.Stop();
}
// Initialize the DisplayTags object
displayTags = new DisplayTags();
_progressBar = null;
}
@@ -927,7 +934,7 @@ namespace Volian.Controls.Library
bool replacingRO = (_savCurROLink != null);
string insrpl = (replacingRO) ? "Cannot Replace" : "Cannot Insert";
string errormsg = string.Empty;
string errormsg = string.Empty;
switch (selectedRO.type)
{
@@ -968,7 +975,10 @@ namespace Volian.Controls.Library
errormsg = (replacingRO) ? "a graphics RO with a non-graphcis RO." : "a Graphics RO in an non-Figure or a non-Accessory Page type.";
//TODO: Prompt user to insert a new substep type that handles x/y Plots and place this RO into it
goodToGo = false;
}
}
break;
}

View File

@@ -688,8 +688,14 @@ namespace Volian.Controls.Library
edtitm.PasteSiblingAfter(copyStartID);
break;
case ItemInfo.EAddpingPart.Replace:
EditItem ei = edtitm.PasteReplace(copyStartID);
if (ei == null) return false; //B2017-179 PasteReplace will return null if was aborted
if (ei == null)
{
CloseTabItem(_MyDisplayTabItems["Item - " + myItemInfo.ItemID.ToString()]); //Grab itemID and set to close open tab.
return false; //B2017-179 PasteReplace will return null if was aborted
}
if (ei.MyItemInfo.ItemID != edtitm.MyItemInfo.ItemID)
{
edtitm.Dispose();

View File

@@ -640,7 +640,7 @@ namespace Volian.Controls.Library
this.btnFSrestore.Location = new System.Drawing.Point(112, 27);
this.btnFSrestore.Margin = new System.Windows.Forms.Padding(2);
this.btnFSrestore.Name = "btnFSrestore";
this.btnFSrestore.Size = new System.Drawing.Size(54, 26);
this.btnFSrestore.Size = new System.Drawing.Size(54, 20);
this.btnFSrestore.TabIndex = 6;
this.btnFSrestore.Text = "Restore";
this.btnFSrestore.UseVisualStyleBackColor = true;

View File

@@ -96,6 +96,22 @@ namespace Volian.Controls.Library
get { return Visible; }
set { if (Visible != value) Visible = value; }
}
/// <summary>
/// Expose text properties for height and widht to handle selecting RO Image Types.
/// </summary>
public string TbFSwd
{
get {return tbFSWd.Text;}
set { tbFSWd.Text = value; tbFSWd.Refresh(); trBarFS.Value = Convert.ToInt32(value); }
}
public string TbFSht
{
get { return tbFSHt.Text; }
set { tbFSHt.Text = value; tbFSHt.Refresh(); _origFigureSizeRatio = float.Parse(value) / float.Parse(tbFSWd.Text); }
}
#endregion
#region Constructor
public DisplayTags()
@@ -383,6 +399,8 @@ namespace Volian.Controls.Library
cmbCheckoff.Enabled = false;
}
// show the part of panel for resizing a figure (if figure already exists: MyImage is set for non-RO existing images & content.text has a link in it)
if (MyEditItem.MyItemInfo.IsFigure && (MyEditItem.MyItemInfo.MyContent.MyImage != null || MyEditItem.MyItemInfo.MyContent.Text.ToUpper().Contains("#LINK")))
{
@@ -391,20 +409,41 @@ namespace Volian.Controls.Library
int wd = (MyEditItem as ImageItem).MyPictureBox.Width;
_origFigureSizeRatio = (float)ht / (float)wd; // use this to keep width/height ratio while changing size.
float wd1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageWidth - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.LeftMargin;
float ht1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageLength - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.TopMargin - 36; // 36 is to allow for end message
float wd2 = Math.Min(wd1, ht1 / _origFigureSizeRatio); // keep original ratio
trBarFS.Maximum = Math.Max((int)wd2, trBarFS.Maximum);
if (wd > trBarFS.Maximum) trBarFS.Maximum = wd + 1;
trBarFS.Minimum = Math.Min(wd, 72);
trBarFS.Value = (int)wd;
ImageItem ii = MyEditItem as ImageItem;
_origFigureSizeWidth = ii.MyPictureBox.Width;
tbFSWd.Text = ii.MyPictureBox.Width.ToString();
tbFSHt.Text = ii.MyPictureBox.Height.ToString();
float ht1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageLength - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.TopMargin - 36; // 36 is to allow for end message
float wd2 = Math.Min(wd1, ht1 / _origFigureSizeRatio); // keep original ratio
SetFigure(wd1, wd2);
tbFSWd.Text = wd.ToString();
tbFSHt.Text = ht.ToString();
//trBarFS.Maximum = Math.Max((int)wd2, trBarFS.Maximum);
//if (wd > trBarFS.Maximum) trBarFS.Maximum = wd + 1;
//trBarFS.Minimum = Math.Min(wd, 72);
//trBarFS.Value = (int)wd;
//ImageItem ii = MyEditItem as ImageItem;
//_origFigureSizeWidth = ii.MyPictureBox.Width;
//tbFSWd.Text = ii.MyPictureBox.Width.ToString();
//tbFSHt.Text = ii.MyPictureBox.Height.ToString();
}
else
{
groupPanelFigSize.Visible = false;
if (MyEditItem.MyItemInfo.IsFigure)
{
//No Current image, but still show groupPanelFigSize, will adjust when file is selected, but let's give it a default
//size on using the picturebox.
groupPanelFigSize.Visible = true;
int ht = (MyEditItem as ImageItem).MyPictureBox.Height;
int wd = (MyEditItem as ImageItem).MyPictureBox.Width;
_origFigureSizeRatio = (float)ht / (float)wd; // use this to keep width/height ratio while changing size.
float wd1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageWidth - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.LeftMargin;
float ht1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageLength - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.TopMargin - 36; // 36 is to allow for end message
float wd2 = Math.Min(wd1, ht1 / _origFigureSizeRatio); // keep original ratio
SetFigure(wd1, wd2);
}
else
groupPanelFigSize.Visible = false;
}
// change bar setting depends on whether step has changed (dts) as compared to date/time off the
@@ -516,6 +555,22 @@ namespace Volian.Controls.Library
}
_Initalizing = false;
}
public void SetFigure(double wd, double wd2)
{
// Check MyEditItem type and cast if needed
ImageItem ii = MyEditItem as ImageItem;
if (ii == null) return;
// Set the values as needed
trBarFS.Maximum = Math.Max((int)wd2, trBarFS.Maximum);
if (wd > trBarFS.Maximum) trBarFS.Maximum = (int)wd + 1;
trBarFS.Minimum = Math.Min((int)wd, 72);
trBarFS.Value = (int)wd;
_origFigureSizeWidth = ii.MyPictureBox.Width;
//tbFSWd.Text = ii.MyPictureBox.Width.ToString();
//tbFSHt.Text = ii.MyPictureBox.Height.ToString();
}
private int DoListStepTypes(FormatData fmtdata, StepData topType, string curType)
{
int cursel=-1;
@@ -857,7 +912,7 @@ namespace Volian.Controls.Library
}
}
private float _origFigureSizeRatio = 0; // keep original ratio & width in case of 'restore'
private int _origFigureSizeWidth = 0;
public int _origFigureSizeWidth = 0;
// support user changing size using slider. This saves change back to ImageItem and sets
// width/height text boxes to slider values.
private void trBarFS_Scroll(object sender, EventArgs e)
@@ -871,11 +926,14 @@ namespace Volian.Controls.Library
// restore the orignal image size
private void btnFSrestore_Click(object sender, EventArgs e)
{
tbFSWd.Text = _origFigureSizeWidth.ToString();
int ht = (int)(_origFigureSizeRatio * _origFigureSizeWidth);
tbFSHt.Text = ht.ToString();
(MyEditItem as ImageItem).SizeImage(_origFigureSizeWidth, ht);
trBarFS.Value = _origFigureSizeWidth;
if (_origFigureSizeWidth != 0)
{
tbFSWd.Text = _origFigureSizeWidth.ToString();
int ht = (int)(_origFigureSizeRatio * _origFigureSizeWidth);
tbFSHt.Text = ht.ToString();
(MyEditItem as ImageItem).SizeImage(_origFigureSizeWidth, ht);
trBarFS.Value = _origFigureSizeWidth;
}
}
// user entered width in text box, this event gets called on leave of text box.
private void tbFSWd_Leave(object sender, EventArgs e)

View File

@@ -1209,7 +1209,7 @@ namespace Volian.Controls.Library
{
EditItem child = null;
if (MyItemInfo.IsFigure)
child = new ImageItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem, FigInsType);
child = new ImageItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem, FigInsType, _MyStepPropertiesPanel);
else if (MyItemInfo.IsRtfRaw)
child = new RtfRawItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem);
else if (MyItemInfo.MyContent.MyGrid != null)
@@ -1222,7 +1222,7 @@ namespace Volian.Controls.Library
{
EditItem child = null;
if (MyItemInfo.IsFigure)
child = new ImageItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem, FigInsType);
child = new ImageItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem, FigInsType, _MyStepPropertiesPanel);
else if (MyItemInfo.IsRtfRaw)
child = new RtfRawItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem);
if (MyItemInfo.MyContent.MyGrid != null)
@@ -1825,6 +1825,7 @@ namespace Volian.Controls.Library
EditItem newFocus = null;
EditItem nextEditItem = MyNextEditItem;
EditItem prevEditItem = MyPreviousEditItem;
if (MyStepPanel?.SelectedEditItem?.ActiveParent == null) return null; //Was causing an error when active parent was null and the replaced proc was opened in the editor.
EditItem parentEditItem = ActiveParent;
StepConfig savOrigPasteConfig = MyItemInfo.MyConfig as StepConfig;
@@ -1835,7 +1836,8 @@ namespace Volian.Controls.Library
bool gotoFirstTrans = false;
try
{
newItemInfo = Item.PasteReplace(MyItemInfo, copyStartID, GetChangeId(MyItemInfo), ref gotoFirstTrans);
TreeNode treeNodeReplace = null;
newItemInfo = Item.PasteReplace(MyItemInfo, copyStartID, GetChangeId(MyItemInfo), treeNodeReplace, ref gotoFirstTrans);
if (gotoFirstTrans) //B2017-179 could not replace step, we are positioning onto the first transition that needs resolved
{
MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(newItemInfo);
@@ -3583,6 +3585,9 @@ namespace Volian.Controls.Library
private string ResolveUnitApp(DocVersionInfo dvi, string str)
{
if (dvi == null) return str;
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(dvi, str);
// look for un-resolved tokens and replace less/greater than chars with "*?" and "?*" respectively
string tmp = str.ToUpper();
int sindx = tmp.IndexOf("<U");
int eindx = tmp.IndexOf(">", sindx + 1);
@@ -3591,21 +3596,34 @@ namespace Volian.Controls.Library
{
reptmp = str.Substring(sindx, eindx - sindx + 1);
tmp = reptmp.ToUpper();
if (tmp == "<U>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
else if (tmp == "<U-TEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Text);
else if (tmp == "<U-NUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
else if (tmp == "<U-NAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Name);
else if (tmp == "<U-ID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_ID);
// B2021-145: For applicability, the tree view & pdf file name are not getting resolved when using any of the <20>OTHER<45> tokens
else if (tmp == "<U-OTHERTEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Text);
else if (tmp == "<U-OTHERNUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Number);
else if (tmp == "<U-OTHERNAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Name);
else if (tmp == "<U-OTHERID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_ID);
else str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*")); // unresolved token
tmp = str.ToUpper();
sindx = tmp.IndexOf("<U");
eindx = tmp.IndexOf(">", sindx + 1);
}
//string tmp = str.ToUpper();
//int sindx = tmp.IndexOf("<U");
//int eindx = tmp.IndexOf(">", sindx + 1);
//string reptmp;
//while (sindx > -1 && eindx > -1) // B2022-007 added while loop to process more than one <U- RO value
//{
// reptmp = str.Substring(sindx, eindx - sindx + 1);
// tmp = reptmp.ToUpper();
// if (tmp == "<U>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
// else if (tmp == "<U-TEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Text);
// else if (tmp == "<U-NUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
// else if (tmp == "<U-NAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Name);
// else if (tmp == "<U-ID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_ID);
// // B2021-145: For applicability, the tree view & pdf file name are not getting resolved when using any of the <20>OTHER<45> tokens
// else if (tmp == "<U-OTHERTEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Text);
// else if (tmp == "<U-OTHERNUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Number);
// else if (tmp == "<U-OTHERNAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Name);
// else if (tmp == "<U-OTHERID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_ID);
// else str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
// tmp = str.ToUpper();
// sindx = tmp.IndexOf("<U");
// eindx = tmp.IndexOf(">", sindx + 1);
//}
return str;
}
// C2021-018 used to display Alarm Point Table RO values in the editor

View File

@@ -256,6 +256,8 @@ namespace Volian.Controls.Library
private int _origCfgHt = 0; // keep track if original size was stored in cfg
private int _origCfgWd = 0;
private bool _pastedNew = false; // need this for flagging newly pasted image (may need to clear cfg)
private DisplayTags _displayTags;
#endregion
#region Constructors
public ImageItem()
@@ -266,6 +268,7 @@ namespace Volian.Controls.Library
public ImageItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand)
{
InitializeComponent();
MyItemInfo = itemInfo;
SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, null, false);
if (MyItemInfo.MyContent.MyImage != null && MyItemInfo.MyContent.MyImage.Data != null) // this is figure/image (not RO)
@@ -307,6 +310,7 @@ namespace Volian.Controls.Library
this.Height = MyPictureBox.Height + 10;
_newSizeWd = wd / (MyStepPanel.DPI / 72);
_newSizeHt = ht / (MyStepPanel.DPI / 72);
if (!MyItemInfo.FormatStepData.StepEditData.TypeMenu.MenuItem.ToUpper().Contains("AER")) ItemLocation = TableLocation(MyStepSectionLayoutData, ItemWidth);
_IsDirty = true;
}
@@ -330,13 +334,23 @@ namespace Volian.Controls.Library
MyPictureBox.SizeMode = PictureBoxSizeMode.Zoom; // as resize matches width/height.
this.Width = MyPictureBox.Width + ImageMargin;
this.Height = MyPictureBox.Height + 10;
if (_displayTags != null)
{
_displayTags._origFigureSizeWidth = wd;
_displayTags.TbFSwd = wd.ToString();
_displayTags.TbFSht = ht.ToString();
}
}
// the following gets called for 'NEW' images
private E_ImageSource InsType = E_ImageSource.None;
public ImageItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem, ImageItem.E_ImageSource insType)
public ImageItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem, ImageItem.E_ImageSource insType, DisplayTags displayTags)
{
InitializeComponent();
MyItemInfo = itemInfo;
_displayTags = displayTags;
if (MyItemInfo.MyContent.MyImage != null && MyItemInfo.MyContent.MyImage.Data != null) // this is figure/image (not RO)
{
SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, nextEditItem, false);
@@ -368,8 +382,8 @@ namespace Volian.Controls.Library
FileName = null;
//InitializeComponent();
SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, nextEditItem, false);
MyPictureBox.Width = 100;
MyPictureBox.Height = 100;
//MyPictureBox.Width = 100;
//MyPictureBox.Height = 100;
this.Width = 100 + ImageMargin;
this.Height = 100;
if (insType == ImageItem.E_ImageSource.File)
@@ -546,6 +560,7 @@ namespace Volian.Controls.Library
imageText = val;
}
AddROImageToScreen(W, H, imageText);
}
catch (Exception ex)
{

View File

@@ -0,0 +1,2 @@
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2
C1.Win.C1SpellChecker.C1SpellChecker, C1.Win.C1SpellChecker.2

View File

@@ -1999,6 +1999,9 @@ namespace Volian.Controls.Library
btnReviewCreatePDF.SubItems.Clear();
btnReviewCreatePDF.Tag = null;
btnReviewCreatePDF.Click -= new System.EventHandler(btnPdfCreate_Click);
btnReviewPdfQuickCreate.SubItems.Clear();
btnReviewPdfQuickCreate.Tag = null;
btnReviewPdfQuickCreate.Click -= new System.EventHandler(btnPdfQuickCreate_Click);
int k = 0;
foreach (string s in unitNames)
{
@@ -2017,10 +2020,14 @@ namespace Volian.Controls.Library
btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
btn.Enabled = procAppl;
btnCASCreate.SubItems.Add(btn);
btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
btn.Enabled = procAppl;
btnReviewPdfQuickCreate.SubItems.Add(btn);
}
btnPdfCreate.AutoExpandOnClick = true;
btnPdfQuickCreate.AutoExpandOnClick = true;
btnReviewCreatePDF.AutoExpandOnClick = true;
btnReviewPdfQuickCreate.AutoExpandOnClick = true;
btnCASCreate.AutoExpandOnClick = true;
}
private DevComponents.DotNetBar.ButtonItem MakeSubMenuButton(string s, object tag, EventHandler ehandler)

View File

@@ -475,145 +475,6 @@
hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe
hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc
DAdFhtjSAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnTblOutline.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUEAgQEggQEgoQEAoQE/vwE/gSE
AoSEAgTEwsT8Avz8/gQEAvz8/vyEggSEgoT8AgT/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////9NzlhFAAAACXBIWXMAABJxAAAScQHz3HqOAAAAI0lE
QVQoU2PgQQMMPAwoACQAlQKDISaAAlDlQYCBAwVwcAAADI8JaX0nfcEAAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnInsertRow.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAIElE
QVQoU2P4//8/QcxQUFDwHx8GK0LWgQsPZ5P+MwAAVKncTluNXg0AAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnInsertColumn.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAyUlE
QVQ4T6WRMQtBYRhGLZTJZrTZ3DIZjUabvyGDwWK4ioEsSoqSWKREGfkBbEpStktSFkUpLj0+i+F9vsGX
4Qzn9LzT6wHwF9pogjaaoI0mUKhOXiiPH0jXdxedSyh8xmvnCSs1UMouoVAa3rA9uAgnu0rZJRTs/hUr
x0Uo0VTKLqGQ750x37gIxmtK2SUUcu0Tpss7ArGKUnYJhWzriNHiDn+0qJRdQiHT2KMzu8IbsZWySyh8
/u2zCt8D6RIKpmijCdr4O/C8AZF98ic9bkEXAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnTblDgnRemove.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACLUlE
QVQ4T52TvY/ScBjHuVIRKHA9JAgnL+VoC7TX0kLLS6EvFBTa0uj5J7gYF+PsfpOTMrg4ORgHY+LCYJwc
TYyJiYuDLu7GxHgxd/Hnr5fA8TZcrsmnzfN9nufTNPnVBwDw2ZYljGzr3ciyTNu2EC87L75eb+DvD67f
hU9g9vt/HNs5cMaOf9Owohro7YNbe8PhjfuzzBOgkDuabk6bbRXoxuBkNLIeus6yhKyIwY5umo5tHxmG
+Wwu8G5QkIa0jN5gqnR1oOkGuOk6b1x3jHl9uaWGhpb1UtXNY1luPmJ4KbIkmAElAcgD3egfa5oJxq77
oq3ovKJoE7XbBbwoTWhG2F7cWRJ4dFR1S9fNCvykT41mB9TqjSOxXvtJM9zrYokLrc4vFYtUBcngq9Lf
tqICvlr7RhQr8U1za4FHXZIIurT/mePFf1AEJLkFGJb7uml2LRBrcp4us1+g4KRcYV8lkmkplyenglgH
VIm9tzq/VJRZLpUlih9yBQrAt79Pp3bjkVgM244nsPwe/VQQ6r8pRsgu7pwtC61grkA/T10r/NrnxB8s
V2VmvQiOB0MhLMZVxY/pDPEkU6DnZ2Qu2M0STjJFAIpmAUmXD0NY9PQMzEBRPwJzkiSp71F8J1/ipNMj
f9rE8XggkUgexq9cBXmi+DYYjtCRGL72T+D4jr/RaE+waFgu8c0zgUcmT9UuBS4/9m0hmh9Fo7N8FXih
CIKE5/Vi8yJsDM8P8P0HLGwR4Wl3ICYAAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnAdjustSize.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABmUlE
QVQ4T7WSSyiEURiG/w32UpRiIYUm18Qgl5QsWJAkInaSSLk00zBTFv5RioUoC6SEkJCIwkLjNoqFzMal
KbdcakJIvc75dP7O0WwsLJ6+3nO+9z1/3/drAAyaRi5YgZZSNgROdEEvaUFt34miOYoQAZzfZs6fAvxR
pR+xop6RSWC167A5nISF0dGpo7HdifikVFTpbpR376HUvoNi6zZBAXKazaHj6eULD74v3D5/4ur+A0ub
p0hNz6Hmkq4dqjI0MCH4y9x8/fiJi7t3nHlfMTp/gFhTMvUUWbaMXgEFiIHxz755YubbH/Px+QuGp3YR
HhFF9wWt61RllGm3dzpxyV72eN/IfOjxYWDCheCQMOrJa14xegWK4AObXTvGyNw+BtnL/czcN+ZCQGAQ
u4aW1bBIVUYRaeZsZOYWIiHZjMioGISEhpNZozb2g9XNUJVRBF+TrH+TWDPJinqmVfa4weFmvqYi6xYK
2zaQ37KKnMZlZNQvIKV2GgnVkzBVTiCuYtyAAuQ0f2uSESYZRfhbk8z/B/wdaN/UwtLmFVaBLwAAAABJ
RU5ErkJggg==
</value>
</data>
<data name="btnTblDgnSplitCells.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAtklE
QVQ4T2P4//8/RRjOqKrv+F/T0AnGlUCcU9b5X8/QFCiFXw5uQE1DB0jg/6/ff/9//v4HjE0t7EFCeOWQ
DOgEKvj3P6Dp63/D1LP/7775/V9TxwisCJ8c3ACQ00AmWxY9+q+fdOL/ietP/0vLKYMV4ZODGwDyF0gR
yHSQgm1HL/8XEpEAK8InBzfA3NLuv7WDx399I8v/8soa/0XEpYGyICn8cnADyMVwxmg0DotoJA//ZwAA
qy/GB3Ky9SEAAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnMergeCells.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMklE
QVQ4T6VT30tTcRT//gm+9OBbL/Xai3vooR9oUVbYjOnmdVyxTalFGxuJa+FljbVCy5WrLTOTvIgNM3Fk
rpb9kCyHrVoMNAqJkRgi9BSBL5885zIf7mW9dOG8fPh+zvmcz/lcEZ+J7N4sxDJhRJ9eRM8TBZFUAMGJ
DgTGvOgYPQuPegqnh5xw3G2BfLsZ0i0bGmMNVPuoAd4X3+HL+iIKa5/xYTWH+R9zeLk8g+mvjzG5OI5k
YQTDn+7hTi6O+EIfet92Q0kHIHltEDSZyPmfH5GaXcLD53moqXn0J19grDAKNT9kwJXMeThVGfWO4xDR
dJAnL6xk+RF9fzYAuzvC5IFcwoB3TvkgDzTjgKUGonuqi2W/Kb7mCb9+A9/XgKNyJ5Nj2agB9z1yw56w
wlRdBRGe9PPOz76lWV5xHcgtA6ZaB5Ovzl0x4O6kC9Y+C3bu2gGhjJ9jw1JLE4gNT7NEmkIPiRyZDW3h
hFG51HY0XDOjcnslhD/pYbdLhpVkl8hkGO1MsmkykdsHT8J8uQ4V2yogvCMuPlU5t4msx1sTMo6FjmgN
ztxv4zuXc5sm63H7DQm1XYe0Bm2DrRyScm6TbD1u62nEQX+N1qCl384JK+c27azHLZdOoNq3X2sgxZtw
M3sd4VdBwxVKhulxc7AOez17tAb0U4QyClwPnBxPShiFhO5MpyK3yTDamWTTZCKb5KqtBoebLlghuW2c
bYonJYxCQnemR/+oerFp7n8UxF+CFapvsjm7iAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnTblDgnAlignText.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMElE
QVQ4T6WS30uTURjHdx/+AeE/MBR2M3aZV90IXSx0Gl0YkRdFQoFdOMYu6iJsIghpKXNmmzPz53I618YY
U5zODMyKsjZ1plPX+5Y5WsrmPvm+rz9KEiEf+HIe+J7z4TnnfFWOwUmcQ1N0Dr+S1w53BMfgBE9dYZ70
j2HrDWHtDtLSFeBxp5+mjpc0Orw8tI/IkgGZXIbU1o6slY0sc2tZuoNx7jZ7/vKO+rria6icQxHZGJ3+
LGs4HJNNSdV1rgMvOBXFPxnDE57nxdgCfaFFBSBNUNPgOVB1nZtb913cuNdHpfk5V4xOLt+xU3a7jYs3
W7lwvYXiykecv9qoANoHxjmpcjnI7uTY2s6SSmf4vrnN+rdfCqC1J7S37bBEUaS+vp6KigoMBgOODidf
xU2EjS2+rP/k09IPfONzCqD5WYB4PI7FYiGVSsmAaDRKMplEEATyz+ZTXn6JWHyVlaRy2Gw20+9/owCk
bzEajej1ejQaDQUFBaTTaXw+H7W1D8g7k0dpqYEP0QQmk4mqqiq0Wi2FhYUKQPrL5eVl+WAsFpMnsNls
lJSUsJYUFYChjI8LAu/nN4i8W0OtVu9mZuYQcLSsVitFRUXUGE3odDrO7fYNTW28nhMZn00SmF7FPrh3
hX1AIpGQJQgii4tL9PQO4HJ78QfDuL2jjAQiTMzE6fK+xeGexeb6Y4JT5UACHBdlKYknRlkCSMa/oixN
sO8dG2UJIDX/K9Xu+51CqH4DsLwA5JN+awcAAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE
QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn
QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH
f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD
VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp
hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe
hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc
DAdFhtjSAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnTblDgnPaste.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACX0lE
QVQ4T6WSa0hTYRjHD/TBvhRdqE99Koi+RFFB9SGjUAsvLYzEjMxFTKVkk6XpSC1N0eVtadqMvAw1b5Uo
KUUiJI7uGs7oIpEauZa1s3nP4tc5RwZNBgW98OPA+77/3/O8D0cA/gufmz3tOXTdzqS1KhVtTMh2X3c8
CC21RXoJPFQVHMdpr2PSfoORwXySNUEUZeu5ZjRgyk6SCVwsYEZsZs7VxIyzHku5nqnxGpJjVbbXvSlc
OBtKinoH9p6TjHesRxt9SMotEsjhOVcDZTkn6LPmI34qYWzQwAfrKdoqVMRG+VOXto4XRQLxx0K8BU01
BQsC8RbGtGgy9JEYEiI4Hx+OXqNCpw4lLiqAYu0GRRAZ7O8tqK80Mis2MuswMzWai+NVAraa1QoD1avo
K1/GU5OfEpYJ2L3VW2Ax5zDtqGJ6OIupN2eYfHkEsX05hdUd5JpbuXi1kRSjBV1mBbGpJqIT87wFlaWZ
TIyYmBzUMPEsFPejbXy5u0YJe9bc/E+crhmGx5xExF0iLMYgby8IKgrTEd9m4X4ShLt7M67OtYxUC0pl
eVXe6VEwN3QxMGRXwg96bRwIV8vHglCal8q3/nO4ujYh3luJo9mPoZuC0vaP+V98d0uVPzsZeG/H2v+R
4CgdQVJ4/8HD+O/Zi1B8OQnH4zgpvIKvLUsZrV2CrUxAK71ZbtvTwXWpgxJLJ23dNuUrs2vLRoQrGYnK
D+KZsgeNNLA/Kz+0vlPCzff7aOh47iUILEw/Lf1hKtThgYTt26kcyNOW3+yp5gtFIA/CF0elacsX/obP
8L+D8Bsb4cocWY3wtQAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnReviewFind.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -690,6 +551,50 @@
CbORqIOmx6ffhPMAQEdHB3e69xx39GD3L6bHPAfnpxfPzk7NuWcmZtzTY9PuqZtT7snRSffkyKR7Ynii
kesT7vHr443ztfH6681r9v7k8KR7amTKPX1j2j0zNuO+dOHS9hyfa1a862hra+O2tm/l2tvbW9raW9u3
drR1tLa1dmxp3dLR0trS0bKlEa6F66CP/79ppdznn1OO+x8FMcZP/Ws5zwAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnReviewPdfQuickCreate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAI0UlE
QVRYR53XSWwb1xkH8JElS+i50KUIempB9FyguQRoiya2gSyHOEWQADnkFtRxmwRBENcIigZx0sDNVsCJ
d1mSZcv0EluS7aS2JFv7QslaSIkUd3KG+zILZx/y3++RVBzvTgf4YzhDit/vfe89YsSx41/79nN79/yj
9ejBEz/vOtLb2XWkp7PrKOVYIydYjnffThdds/z43vGezu4TvZ09J04209d5svtUZy+d93/62c8unh+s
17rvMdh3k+s/fPmXKyPpq4GJ4mJwpugJe0qe6FLJE/eWPIn1socPlD1CqOxJRURPOip6MjE6s9DrVIS9
V/LwwaIn4S94Yms5T2Q16wkupT1+D+8ZuTL951K8yrW0tDQr3nVc7p3k3Ie+dwVuyKnYjIXkgoXUio3s
uo180EEx6qCcqEISapDTNShZoJID1HzjrGTZ/SrElINS0kI+qiMTUiH4ZcS9ZUwNL+2ChAcDhnonuDOH
vnP5RyUhOmUiMW9CWLaQ8VnIBQgRtlGMESLpEKJaL8aKVhIaKhnnNiLDEDYhTORjDFEBH5Awc2N5FzQ0
q93nGOwZ5/oPfudaHxEJYCA+b4BfMpH2Wsj6aUQhBmBf7EAUCJGhkS/zMD/8DMapoUYnCpQ8IbLUqbSN
smCikCBERMHc+Mou2I8EXHWtDYtCZJIAcwaStwykvCYBaDQhC4UoARLsiwlAI9aOnYVxqA/64E1oORta
ie5R1CJNUZ66RPfEDCF4DZ4pAuBhgO6xJqBMAB2xOb0JMJAhQC5IXxS1mgC7DjA+/gr6ue+hzaxBK9jQ
RUCXGtHEGtQyTU2REFkdi7OrDwcMMMA3DUB4UiOARgAdwioDGMiFGMCsL7AyzbFErTY+ovYfPQXzP0eg
FwwYSg1mBTDVZio16EoVFdHE0sJjAE5/c8XlGy7dCfDSHNYBBgoxAvAWxLQFqUSArw7D2vtPWJ9+AUO2
YWo1WHoNjgk4ViO2RZ/TLKwsex8OuNR9swkoEkBFbF5FYkmD4NOQCejIhQ0U4wZKtLDErAmZWqyfG4Kz
bQfs/V/ANGuwzSocu4ZqtYZajcrRwc62bcPr/QmA0GSlDkgu0z5eI8CGVt/XxaSBctqg9ptQJAf6og+1
X/0aztFjoLpwHIeKV6koAzQFdLD7jwQM9BDgIAMUhNAUATyVOiC1rtJeJkBMo9HrEHMG5JIBVTah58uo
PvscnCtXaIc1Cm0iNiE/HTBSEMJTCmILCpKrFaT8KrIRFYWkhnJGg1TUUZEMaJoJM51B7ckn4XzyCWwq
yFp9PwS79vl8jwLcIMBll2+UADMK4osKeF8F6WAFuZiKYkqFmNegiDrUig6dilk08urTT6P64ouwBQE2
FbobsQl4dAd6CXCIADfyQmSOfr+XZAjrCjJhBflkBaWsSitfRUXRaPQE0DQ4b70Fu6sLzjvvwPn6a1jN
LtyNeLxFuNkBBpiXkViVkdqQkY0pKKQUlAsVKLIKVVWhGbTnV1Zo/p+FGYnAXFhA9YUXYPl890U8FuBi
zyh36uCQyzuaE8JzEgEkpIIycgkZxawCqazQ6Ct1gEoAa98+2O++C51hTBM2daD66quwksl7EJZlPUYH
To5ypw8PuXw3c0LEIyHpJUBIQp6XUSrIkCUCVCqoUOu1cBjOjh0wJiagUfE6QpbhfPABqq+8Asvvh0Vz
b7NQVZMQPr//Lw9fA30jXP+RIdfaRFaI3hLBr4vIRCUU0hLEEgGogKIoUAhgfvkl7DfegEbXmq43EDRa
o1SCs3cvak89BbuvD/boKJyBAdi9vSi+/HJvjeN2EuE3lC33UAZOE+DYkGt9KivEVkQIGyKySRHFnARJ
lOoAmXWARm8//zy08XGorDitftYJ68gR2NQBZ/duVHfuRHXbNtSeeAK1Z56B8/77ELdvP09F/075N+UP
DHAHYrB/hDtzfNDln80I7AkmFS4jJ4goFUVIEiEoDGB8/jksKqLOz0Pv74d54ADM48dhXL0KY3kZBs/X
p8PI5WBfuFAvblMKO3ceog78lor+rpmWOwHuYe7MiUFXYD4j0PMf0tEy8pkyymURIgNQcYVWvvXSS9Au
XoQ6PQ01GESF2s46odI0sN3BpkSnsIVp0NybNGUGfS69Z88BAjxHRX9P+dM9iKGzw5y7e9C1sZAWkoES
MokSCjkCsOI0KimRgPHee9Bp/lknZNoNCpuSZuq7g21RKsgAdURzh7BF6l1fry/CZtE/UnZQbq+FoXME
6CHArZTABwnAl1AslCGPjUEZHITa0wPztdcg0zaT2Hpopr4wKT+GMMQmhCHY69XVxvNAnmpR0TbKVlb8
B8Dl89e5s70DruBSShDCRWSFAuTePqg0x9LMDCxaWMp/r0GUFYgiTQubms3QdX2himy7Eoo+U//NqDQw
DLUJeOBx+QIB+giwIghCvITyyTPQ3n4bZfp1M15/Her+/SgWWVeKKOaLND2FO1LM0X1KKU9/S50T2eIt
30YtL9FT8cMAVy5e586dGnCFvIKQCmWgvvk3SN9+C233X6HSqs/Hk8hmcsimssgIGZqie5Pls9S5LHKp
HPLpPP2CNkAsiwuLjwE4TQAfL6SiWZSPd6OyZw+kDz+iR7IgUnwaQlwAH+PBR5uJ3BW6J0QFpGIppONp
ZJIZ2sq5ejyznkcALm0CkkIymqEvSdLDSAB8nEcimkQinEA8FEcsGENsgxK4N/FAHPGNOBLBBJKhJPjw
bdDs5OyjANe48/0MkEglQikkIknEI4l6wWggiog/gvB6GOE1ii+MkDf0Q8JeusdC9yO+CKJrUUTXo4j7
CbORqIOmx6ffhPMAQEdHB3e69xx39GD3L6bHPAfnpxfPzk7NuWcmZtzTY9PuqZtT7snRSffkyKR7Ynii
kesT7vHr443ztfH6681r9v7k8KR7amTKPX1j2j0zNuO+dOHS9hyfa1a862hra+O2tm/l2tvbW9raW9u3
drR1tLa1dmxp3dLR0trS0bKlEa6F66CP/79ppdznn1OO+x8FMcZP/Ws5zwAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnListUsers.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -874,6 +779,145 @@
H2NJV4iAugB9ah3sbteUU5JqGZY1LDNWYfKe1NI0XStXNCdKHrCEGK6bTDio1SEhIxcd5y/Cps6DJ+0c
7lfXgExOgDiFrpX8DbAVLUOILI7jzF5RnHssHzvDCb21F8rwQ4Yag2ZzgzDuXyAcZ1yOXZ+7AfRvydB7
DEPfk5d5yv3IB5rnwbndkP+p5+Ox6W+GqiqkGDTJEQAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnTblOutline.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEUEAgQEggQEgoQEAoQE/vwE/gSE
AoSEAgTEwsT8Avz8/gQEAvz8/vyEggSEgoT8AgT/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////9NzlhFAAAACXBIWXMAABJxAAAScQHz3HqOAAAAI0lE
QVQoU2PgQQMMPAwoACQAlQKDISaAAlDlQYCBAwVwcAAADI8JaX0nfcEAAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnInsertRow.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAIElE
QVQoU2P4//8/QcxQUFDwHx8GK0LWgQsPZ5P+MwAAVKncTluNXg0AAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnInsertColumn.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAyUlE
QVQ4T6WRMQtBYRhGLZTJZrTZ3DIZjUabvyGDwWK4ioEsSoqSWKREGfkBbEpStktSFkUpLj0+i+F9vsGX
4Qzn9LzT6wHwF9pogjaaoI0mUKhOXiiPH0jXdxedSyh8xmvnCSs1UMouoVAa3rA9uAgnu0rZJRTs/hUr
x0Uo0VTKLqGQ750x37gIxmtK2SUUcu0Tpss7ArGKUnYJhWzriNHiDn+0qJRdQiHT2KMzu8IbsZWySyh8
/u2zCt8D6RIKpmijCdr4O/C8AZF98ic9bkEXAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnTblDgnRemove.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACLUlE
QVQ4T52TvY/ScBjHuVIRKHA9JAgnL+VoC7TX0kLLS6EvFBTa0uj5J7gYF+PsfpOTMrg4ORgHY+LCYJwc
TYyJiYuDLu7GxHgxd/Hnr5fA8TZcrsmnzfN9nufTNPnVBwDw2ZYljGzr3ciyTNu2EC87L75eb+DvD67f
hU9g9vt/HNs5cMaOf9Owohro7YNbe8PhjfuzzBOgkDuabk6bbRXoxuBkNLIeus6yhKyIwY5umo5tHxmG
+Wwu8G5QkIa0jN5gqnR1oOkGuOk6b1x3jHl9uaWGhpb1UtXNY1luPmJ4KbIkmAElAcgD3egfa5oJxq77
oq3ovKJoE7XbBbwoTWhG2F7cWRJ4dFR1S9fNCvykT41mB9TqjSOxXvtJM9zrYokLrc4vFYtUBcngq9Lf
tqICvlr7RhQr8U1za4FHXZIIurT/mePFf1AEJLkFGJb7uml2LRBrcp4us1+g4KRcYV8lkmkplyenglgH
VIm9tzq/VJRZLpUlih9yBQrAt79Pp3bjkVgM244nsPwe/VQQ6r8pRsgu7pwtC61grkA/T10r/NrnxB8s
V2VmvQiOB0MhLMZVxY/pDPEkU6DnZ2Qu2M0STjJFAIpmAUmXD0NY9PQMzEBRPwJzkiSp71F8J1/ipNMj
f9rE8XggkUgexq9cBXmi+DYYjtCRGL72T+D4jr/RaE+waFgu8c0zgUcmT9UuBS4/9m0hmh9Fo7N8FXih
CIKE5/Vi8yJsDM8P8P0HLGwR4Wl3ICYAAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnAdjustSize.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABmUlE
QVQ4T7WSSyiEURiG/w32UpRiIYUm18Qgl5QsWJAkInaSSLk00zBTFv5RioUoC6SEkJCIwkLjNoqFzMal
KbdcakJIvc75dP7O0WwsLJ6+3nO+9z1/3/drAAyaRi5YgZZSNgROdEEvaUFt34miOYoQAZzfZs6fAvxR
pR+xop6RSWC167A5nISF0dGpo7HdifikVFTpbpR376HUvoNi6zZBAXKazaHj6eULD74v3D5/4ur+A0ub
p0hNz6Hmkq4dqjI0MCH4y9x8/fiJi7t3nHlfMTp/gFhTMvUUWbaMXgEFiIHxz755YubbH/Px+QuGp3YR
HhFF9wWt61RllGm3dzpxyV72eN/IfOjxYWDCheCQMOrJa14xegWK4AObXTvGyNw+BtnL/czcN+ZCQGAQ
u4aW1bBIVUYRaeZsZOYWIiHZjMioGISEhpNZozb2g9XNUJVRBF+TrH+TWDPJinqmVfa4weFmvqYi6xYK
2zaQ37KKnMZlZNQvIKV2GgnVkzBVTiCuYtyAAuQ0f2uSESYZRfhbk8z/B/wdaN/UwtLmFVaBLwAAAABJ
RU5ErkJggg==
</value>
</data>
<data name="btnTblDgnSplitCells.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAtklE
QVQ4T2P4//8/RRjOqKrv+F/T0AnGlUCcU9b5X8/QFCiFXw5uQE1DB0jg/6/ff/9//v4HjE0t7EFCeOWQ
DOgEKvj3P6Dp63/D1LP/7775/V9TxwisCJ8c3ACQ00AmWxY9+q+fdOL/ietP/0vLKYMV4ZODGwDyF0gR
yHSQgm1HL/8XEpEAK8InBzfA3NLuv7WDx399I8v/8soa/0XEpYGyICn8cnADyMVwxmg0DotoJA//ZwAA
qy/GB3Ky9SEAAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnMergeCells.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMklE
QVQ4T6VT30tTcRT//gm+9OBbL/Xai3vooR9oUVbYjOnmdVyxTalFGxuJa+FljbVCy5WrLTOTvIgNM3Fk
rpb9kCyHrVoMNAqJkRgi9BSBL5885zIf7mW9dOG8fPh+zvmcz/lcEZ+J7N4sxDJhRJ9eRM8TBZFUAMGJ
DgTGvOgYPQuPegqnh5xw3G2BfLsZ0i0bGmMNVPuoAd4X3+HL+iIKa5/xYTWH+R9zeLk8g+mvjzG5OI5k
YQTDn+7hTi6O+EIfet92Q0kHIHltEDSZyPmfH5GaXcLD53moqXn0J19grDAKNT9kwJXMeThVGfWO4xDR
dJAnL6xk+RF9fzYAuzvC5IFcwoB3TvkgDzTjgKUGonuqi2W/Kb7mCb9+A9/XgKNyJ5Nj2agB9z1yw56w
wlRdBRGe9PPOz76lWV5xHcgtA6ZaB5Ovzl0x4O6kC9Y+C3bu2gGhjJ9jw1JLE4gNT7NEmkIPiRyZDW3h
hFG51HY0XDOjcnslhD/pYbdLhpVkl8hkGO1MsmkykdsHT8J8uQ4V2yogvCMuPlU5t4msx1sTMo6FjmgN
ztxv4zuXc5sm63H7DQm1XYe0Bm2DrRyScm6TbD1u62nEQX+N1qCl384JK+c27azHLZdOoNq3X2sgxZtw
M3sd4VdBwxVKhulxc7AOez17tAb0U4QyClwPnBxPShiFhO5MpyK3yTDamWTTZCKb5KqtBoebLlghuW2c
bYonJYxCQnemR/+oerFp7n8UxF+CFapvsjm7iAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnTblDgnAlignText.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMElE
QVQ4T6WS30uTURjHdx/+AeE/MBR2M3aZV90IXSx0Gl0YkRdFQoFdOMYu6iJsIghpKXNmmzPz53I618YY
U5zODMyKsjZ1plPX+5Y5WsrmPvm+rz9KEiEf+HIe+J7z4TnnfFWOwUmcQ1N0Dr+S1w53BMfgBE9dYZ70
j2HrDWHtDtLSFeBxp5+mjpc0Orw8tI/IkgGZXIbU1o6slY0sc2tZuoNx7jZ7/vKO+rria6icQxHZGJ3+
LGs4HJNNSdV1rgMvOBXFPxnDE57nxdgCfaFFBSBNUNPgOVB1nZtb913cuNdHpfk5V4xOLt+xU3a7jYs3
W7lwvYXiykecv9qoANoHxjmpcjnI7uTY2s6SSmf4vrnN+rdfCqC1J7S37bBEUaS+vp6KigoMBgOODidf
xU2EjS2+rP/k09IPfONzCqD5WYB4PI7FYiGVSsmAaDRKMplEEATyz+ZTXn6JWHyVlaRy2Gw20+9/owCk
bzEajej1ejQaDQUFBaTTaXw+H7W1D8g7k0dpqYEP0QQmk4mqqiq0Wi2FhYUKQPrL5eVl+WAsFpMnsNls
lJSUsJYUFYChjI8LAu/nN4i8W0OtVu9mZuYQcLSsVitFRUXUGE3odDrO7fYNTW28nhMZn00SmF7FPrh3
hX1AIpGQJQgii4tL9PQO4HJ78QfDuL2jjAQiTMzE6fK+xeGexeb6Y4JT5UACHBdlKYknRlkCSMa/oixN
sO8dG2UJIDX/K9Xu+51CqH4DsLwA5JN+awcAAAAASUVORK5CYII=
</value>
</data>
<data name="btnTblDgnCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE
QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn
QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH
f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD
VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp
hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe
hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc
DAdFhtjSAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnTblDgnPaste.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACX0lE
QVQ4T6WSa0hTYRjHD/TBvhRdqE99Koi+RFFB9SGjUAsvLYzEjMxFTKVkk6XpSC1N0eVtadqMvAw1b5Uo
KUUiJI7uGs7oIpEauZa1s3nP4tc5RwZNBgW98OPA+77/3/O8D0cA/gufmz3tOXTdzqS1KhVtTMh2X3c8
CC21RXoJPFQVHMdpr2PSfoORwXySNUEUZeu5ZjRgyk6SCVwsYEZsZs7VxIyzHku5nqnxGpJjVbbXvSlc
OBtKinoH9p6TjHesRxt9SMotEsjhOVcDZTkn6LPmI34qYWzQwAfrKdoqVMRG+VOXto4XRQLxx0K8BU01
BQsC8RbGtGgy9JEYEiI4Hx+OXqNCpw4lLiqAYu0GRRAZ7O8tqK80Mis2MuswMzWai+NVAraa1QoD1avo
K1/GU5OfEpYJ2L3VW2Ax5zDtqGJ6OIupN2eYfHkEsX05hdUd5JpbuXi1kRSjBV1mBbGpJqIT87wFlaWZ
TIyYmBzUMPEsFPejbXy5u0YJe9bc/E+crhmGx5xExF0iLMYgby8IKgrTEd9m4X4ShLt7M67OtYxUC0pl
eVXe6VEwN3QxMGRXwg96bRwIV8vHglCal8q3/nO4ujYh3luJo9mPoZuC0vaP+V98d0uVPzsZeG/H2v+R
4CgdQVJ4/8HD+O/Zi1B8OQnH4zgpvIKvLUsZrV2CrUxAK71ZbtvTwXWpgxJLJ23dNuUrs2vLRoQrGYnK
D+KZsgeNNLA/Kz+0vlPCzff7aOh47iUILEw/Lf1hKtThgYTt26kcyNOW3+yp5gtFIA/CF0elacsX/obP
8L+D8Bsb4cocWY3wtQAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnInsTrans.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@


File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@


File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@


File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@


View File

@@ -87,15 +87,8 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\3rdPartyLibraries\Edraw\AxInterop.EDWordLib.dll</HintPath>
</Reference>
<Reference Include="C1.Win.4.8">
<HintPath>..\VEPROMS\packages\C1.Win.8.0.20233.631\lib\net48\C1.Win.4.8.dll</HintPath>
</Reference>
<Reference Include="C1.Win.C1FlexGrid.4.8, Version=4.8.20233.631, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL">
<HintPath>..\VEPROMS\packages\C1.Win.C1FlexGrid.4.8.20233.631\lib\net48\C1.Win.C1FlexGrid.4.8.dll</HintPath>
</Reference>
<Reference Include="C1.Win.C1SpellChecker.4.8, Version=4.8.20233.631, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL">
<HintPath>..\VEPROMS\packages\C1.Win.C1SpellChecker.4.8.20233.631\lib\net48\C1.Win.C1SpellChecker.4.8.dll</HintPath>
</Reference>
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="C1.Win.C1SpellChecker.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="Csla">
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\Csla.dll</HintPath>
</Reference>

View File

@@ -1 +1,2 @@
da3d5d14-691f-4908-aa3c-fd3239734232;-8584914772854775808;Vm9saWFuLkNvbnRyb2xzLkxpYnJhcnkuZGxs;ZGEzZDVkMTQtNjkxZi00OTA4LWFhM2MtZmQzMjM5NzM0MjMy,MDEwODE5MjdYWFhYWFhYWDA1Mg,Sk9ITi1XSU4xMA,RmFsc2U,ODQzNA,RmFsc2U,MA,MA,djIwMjIuMw,,;c7VmK7aSALscK1Nd/lI1cS3mms+p4j4Fsa2LgKQ1JmeSkNKq5X8LWx2NLOHITkvv+3IbbTQcVPnGa7hKiEDHlfH3thfwEvtzoqprZSXMOYfNPiXTPIIYPNb6L31Qq7AGiogvw+dMD9o/AiUWt4Q7a5SRmYU+PbrlNAXVISIzndw
da3d5d14-691f-4908-aa3c-fd3239734232;-8584865524854775808;Vm9saWFuLkNvbnRyb2xzLkxpYnJhcnkuZGxs;ZGEzZDVkMTQtNjkxZi00OTA4LWFhM2MtZmQzMjM5NzM0MjMy,NjE5MDczODdYWFhYWFhYWDA1Mw,Q0hSSVM,RmFsc2U,ODg5NA,RmFsc2U,MA,MA,djIwMjQuMQ,,;luo/kWHt4XRAYR+3s8m8QoRagBcvXLv0mHvCYU2VCIeACFord4tdtTGmSUvmGhEmUiAd7YvaTlDlFrlni6CWaVlxa1mdbWuWsNVUkRnyJZ8kOAt1A+3SGfHecCsqotTW7apXjwW5qXLZ/fcgutioe7xaXgniFQysshTdUWt26T8

View File

@@ -1322,7 +1322,7 @@ namespace Volian.Controls.Library
{
MenuItem miri = mir.MenuItems.Add("Create Procedure to Import");
miri.Tag = ri.RevisionID;
miri.Click += new EventHandler(ImportProcedure_Click);
miri.Click += new EventHandler(MultiUnitImportProcedure_Click); //B2024-024 Parent Child Create Approved Import file
}
//end added jcb 20111031
@@ -1420,8 +1420,8 @@ namespace Volian.Controls.Library
void ImportProcedure_Click(object sender, EventArgs e)
{
//RevisionInfo ri = (sender as MenuItem).Tag as RevisionInfo;
RevisionInfo ri = RevisionInfo.Get(int.Parse((sender as MenuItem).Tag.ToString()));
//B2024-024 restored the line below from prior change - didn't work for non parent/childs sets - created a new click event method (below) for parent/child sets.
RevisionInfo ri = (sender as MenuItem).Tag as RevisionInfo;
RevisionConfig rc = ri.MyConfig as RevisionConfig;
// bug fix: B2016-183 - add the child's name (ex Unit 1) to the export file name for Parent/Child procedures.
int applIdx = rc.Applicability_Index;
@@ -1440,6 +1440,30 @@ namespace Volian.Controls.Library
FlexibleMessageBox.Show("Approved procedure saved to import file " + fileName, "Creating Export of Approved Procedure", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//B2024-024 create import file for parent/child procedure set
void MultiUnitImportProcedure_Click(object sender, EventArgs e)
{
//RevisionInfo ri = (sender as MenuItem).Tag as RevisionInfo;
RevisionInfo ri = RevisionInfo.Get(int.Parse((sender as MenuItem).Tag.ToString()));
RevisionConfig rc = ri.MyConfig as RevisionConfig;
// bug fix: B2016-183 - add the child's name (ex Unit 1) to the export file name for Parent/Child procedures.
int applIdx = rc.Applicability_Index;
string str = (applIdx > 0) ? _currentPri.MyDocVersion.UnitNames[applIdx - 1] + "_" : ""; // if parent/child get the defined child name to inlcude the export filename
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
xd.LoadXml(ri.LatestVersion.ApprovedXML);
string PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
DirectoryInfo di = new DirectoryInfo(PEIPath);
if (!di.Exists) di.Create();
// B2022-048: Crash when creating Procedure to Import from versions. Couldn't handle '/' in proc number.
string fNametmp = xd.SelectSingleNode("procedure/content/@number").InnerText.Replace(" ", "_").Replace(@"\u8209?", "-").Replace(@"\u9586?", "_").Replace("/", "-") + ".pxml";
// B2022-112: If applicability, need to resolve the '<' and '>' characters. Just use the UnitNames, i.e. str, from above.
if (applIdx > 0) fNametmp = Regex.Replace(fNametmp, @"\<U-ID\>", str, RegexOptions.IgnoreCase);
string fileName = PEIPath + "\\" + str + "Approved_Rev_" + ri.RevisionNumber.Replace(" ", "_").Replace("\\", "-").Replace("/", "-") + "_" + fNametmp;
xd.Save(fileName);
FlexibleMessageBox.Show("Approved procedure saved to import file " + fileName, "Creating Export of Approved Procedure", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
void ApprovedRevision_Click(object sender, EventArgs e)
{
bool superceded = false;
@@ -1588,7 +1612,13 @@ namespace Volian.Controls.Library
if (!docVersionIsEnhanced && !docVersionIsSource && !procIsSource) canPaste = true;
else if (docVersionIsSource && !procIsSource) canPaste = true;
else if (docVersionIsSource) canPaste = (!procIsSource || (iiClipboard.MyDocVersion.ItemID == dvi.ItemID));
else if (docVersionIsEnhanced) canPaste = !procIsSource;
else if (docVersionIsEnhanced)
{
// B2024-028 Do not allow paste of non-enhanced into enhanced set
// (consistent with paste before/after, i.e. don't allow)
canPaste = false;
cm.MenuItems.Add("CANNOT PASTE HERE, Click for more information...", new EventHandler(mi_Click));
}
if (iiClipboard.IsRtfRaw) canPaste = false; // never paste an equation.
if (canPaste) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click));
}
@@ -1646,9 +1676,9 @@ namespace Volian.Controls.Library
if (!prCanPaste)
{
if (prToIsEnhanced)
cm.MenuItems.Add("CANNOT PASTE HERE, Click for more information...", new EventHandler(mi_Click));
cm.MenuItems.Add("CANNOT PASTE HERE, Click for more information...", new EventHandler(mi_Click));
else
cm.MenuItems.Add("CANNOT PASTE HERE. Click for more information...", new EventHandler(mi_Click));
cm.MenuItems.Add("CANNOT PASTE HERE. Click for more information...", new EventHandler(mi_Click));
}
}
#endregion
@@ -1988,7 +2018,6 @@ namespace Volian.Controls.Library
// lots of paste options:
case "Paste Procedure":
case "Paste Procedure Before":
case "Replace Existing Procedure":
case "Paste Procedure After":
case "Paste Section":
case "Paste Section Before":
@@ -2001,6 +2030,18 @@ namespace Volian.Controls.Library
case "Paste Subsection":
tv_NodePaste(mi.Text);
break;
case "Replace Existing Procedure":
DialogResult ovewriteEx = FlexibleMessageBox.Show("This will overwrite the selected procedure with then one you copied, would you like to overwrite it?\r\n\r\nSelecting 'Cancel' will cancel the paste action.", "Overwrite the procedure?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);// == DialogResult.Yes;
if (ovewriteEx == DialogResult.Cancel) break;
else
{
TreeNode treenodeDirectory = SelectedNode.Parent;
tv_NodePaste(mi.Text);
break;
}
case "Delete":
if (tv_NodeDelete())
{
@@ -2079,8 +2120,9 @@ namespace Volian.Controls.Library
"It can only be pasted before or after another document, within the set, that is linked to an Enhanced Document.", "Cannot Paste Here");
break;
case "CANNOT PASTE HERE, Click for more information...":
// B2024-028 clarify message
FlexibleMessageBox.Show("You have copied a document that is NOT linked to an Enhanced Document.\n\n" +
"It CANNOT be pasted before or after an Enhanced Document.", "Cannot Paste Here");
"You cannot paste a Non-Enhanced Procedure into an Enhanced Procedure Set.", "Cannot Paste Here");
break;
//case "Check Out Procedure Set":
// CheckOutDocVersion(SelectedNode as VETreeNode);
@@ -2366,6 +2408,7 @@ namespace Volian.Controls.Library
}
}
VETreeNode tn = SelectedNode as VETreeNode;
TreeNode treeNodeReplace = SelectedNode.Parent; //Get Tree Node of Parent we are proc we are placing into.
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
// Check for paste into a docversion - queries/code is different than paste related to an item (into a proc or section)
if (dvi != null)
@@ -2401,13 +2444,17 @@ namespace Volian.Controls.Library
else if (p.IndexOf("After") > -1)
PasteBeforeOrAfter(MenuSelections.StepAfter, tn, iiClipboard.ItemID);
else if (p.IndexOf("Replace") > -1)
PasteReplace(tn, iiClipboard.ItemID);
{
PasteReplace(tn, iiClipboard.ItemID, treeNodeReplace);
}
else // paste as child
PasteAsChild(tn, iiClipboard.ItemID);
this.Cursor = Cursors.Default;
//if (p.IndexOf("Replace") <= -1)
this.Cursor = Cursors.Default;
}
private void PasteAsDocVersionChild(VETreeNode tn, int copyStartID)
public void PasteAsDocVersionChild(VETreeNode tn, int copyStartID)
{
// Only need to handle paste in tree since this will create a new procedure.
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
@@ -2494,7 +2541,7 @@ namespace Volian.Controls.Library
}
SelectedNode = (VETreeNode)((newtype == MenuSelections.StepAfter) ? tn.NextNode : tn.PrevNode);
}
private void PasteReplace(VETreeNode tn, int copyStartID)
private void PasteReplace(VETreeNode tn, int copyStartID, TreeNode treeNodeReplace)
{
VETreeNode prevtn = (VETreeNode) tn.PrevNode;
VETreeNode partn = (VETreeNode) tn.Parent;
@@ -2505,23 +2552,43 @@ namespace Volian.Controls.Library
{
// first, check if a changeid is required.
string chgId = OnGetChangeId(this, new vlnTreeItemInfoEventArgs(ii));
ItemInfo replItemInfo = Item.PasteReplace(ii, copyStartID, chgId);
ItemInfo replItemInfo = Item.PasteReplace(ii, copyStartID, chgId, treeNodeReplace);
StepConfig replItemConfig = ii.MyConfig as StepConfig;
if (replItemInfo != null)
{
OnOpenItem(this, new vlnTreeItemInfoEventArgs(replItemInfo));
ItemInfo newEnhStep = replItemInfo.PasteEnhancedItems(copyStartID, ii, ItemInfo.EAddpingPart.Replace, chgId);
}
}
// B2018-047: was crashing on the following line (before change it was casting the result to a VETreeNote when the partn.FirstNode was just a TreeNode)
SelectedNode = prevtn != null ? prevtn.NextNode : partn.FirstNode;
}
private void tv_NodeCopy()
public void PasteRepalceEmpty(VETreeNode tn, int copyStartID)
{
if (SelectedNode==null)return;
VETreeNode tn = SelectedNode as VETreeNode;
OnNodeCopy(this, new vlnTreeEventArgs(tn));
// Only need to handle paste in tree since this will create a new procedure.
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
if (dvi.DocVersionAssociationCount == 0)
{
// Set docversionassociation to the copied docversion association
// so that the rofst for ro's can be found. (if there is no association set)
ROFstInfo rfi = GetAssociationRofstId(copyStartID);
Association myAs = Association.MakeAssociation(dvi.Get(), rfi.GetJustROFst(), "");
dvi.RefreshDocVersionAssociations();
}
ItemInfo newProc = dvi.PasteChild(copyStartID);
VETreeNode tn1 = new VETreeNode(newProc);
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
SelectedNode = tn1;
}
private void tv_NodeCopy()
{
if (SelectedNode == null) return;
VETreeNode tn = SelectedNode as VETreeNode;
OnNodeCopy(this, new vlnTreeEventArgs(tn));
}
#endregion
#region PropertyPagesInterface
private void SetupNodeProperties()
@@ -3034,6 +3101,15 @@ namespace Volian.Controls.Library
{
SaveEnhancedForSection(sourceSect, newenhSection, sed.Type);
RefreshRelatedNode(SectionInfo.Get(newenhSection.ItemID));
// B2024-023: when inserting a source section, the associated
// enhanced section did not appear in tree view or in edit window (if it
// was displayed in editor). Add to tree view and close the enhanced
// procedure edit window. Note that closing of edit window was done to
// be consistent on what happens upon delete of source w/ and enhanced
// section.
SectionInfo tmpsi = SectionInfo.Get(newenhSection.ItemID);
RefreshRelatedNode(ProcedureInfo.Get(tmpsi.MyParent.ItemID));
OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(tmpsi, true));
}
}
return;

View File

@@ -699,9 +699,9 @@ namespace Volian.Print.Library
try
{
if (File.Exists(outputFileName))
if (File.Exists(outputFileName) && !OverWrite && !outputFileName.Contains("PageNumberPass") && !outputFileName.Contains("Foldout"))
{
if (!BaselineTesting)
if (!BaselineTesting && !SaveLinks) // B2024-031 don't do if creating PDF hyperlinks
{
String tmpExt = System.IO.Path.GetExtension(outputFileName);
String tmpPTH = System.IO.Path.GetDirectoryName(outputFileName);
@@ -719,6 +719,10 @@ namespace Volian.Print.Library
outputFileName = filename;
}
// B2024-031 if doing PDF hyperlinks (Create RO and Transition Hyperlinks) then try to
// delete the old PDF file before creating the new one
if (SaveLinks)
File.Delete(outputFileName);
}
writer = PdfWriter.GetInstance(document, new FileStream(outputFileName, FileMode.Create));
@@ -832,14 +836,6 @@ namespace Volian.Print.Library
OnStatusChanged("Print " + myProcedure.DisplayNumber, PromsPrinterStatusType.Start);
string outputFileName = pdfFolder + "\\" + Prefix + PDFFile; // RHM20150506 Multiline ItemID TextBox
if (!OverWrite && File.Exists(outputFileName))
{
if (MessageBox.Show(outputFileName + " exists. Overwrite file?", "File Exists", MessageBoxButtons.YesNo) == DialogResult.No)
{
ProfileTimer.Pop(profileDepth);
return null;
}
}
string retval = PrintProcedureOrFoldout(myProcedure, null, outputFileName, makePlacekeeper, makeContinuousActionSummary, makeTimeCriticalAction);
ProfileTimer.Pop(profileDepth);
return retval;

View File

@@ -0,0 +1,2 @@
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2
C1.Win.C1SpellChecker.C1SpellChecker, C1.Win.C1SpellChecker.2

View File

@@ -396,7 +396,10 @@ namespace Volian.Print.Library
}
else if (_Ti != null && !from.IsInSupInfo) // Remote Go To. Added SupInfo check for B2020 bugs (see above)
{
chk.SetRemoteGoto(_Ti.MyItemToID.MyProcedure.DisplayNumber.Replace("/", "_") + ".pdf", string.Format("ItemID={0}", tiDefault.ItemID));
// C2024-009 add PDF file prefix and suffix if available to the PDF file name in the transition reference.
DocVersionConfig dvc = _Ti.MyItemToID.MyProcedure.MyDocVersion.DocVersionConfig;
string remotePDFName = dvc.Print_PDFFilePrefix + _Ti.MyItemToID.MyProcedure.DisplayNumber.Replace("/", "_") + dvc.Print_PDFFileSuffix + ".pdf";
chk.SetRemoteGoto(remotePDFName, string.Format("ItemID={0}", tiDefault.ItemID));
chk.SetBackground(new Color(System.Drawing.Color.PeachPuff));
}
}

View File

@@ -1834,7 +1834,8 @@ i = 0;
{
if (section.ActiveFormat.PlantFormat.FormatData.ProcData.CapitalizeTitle) title = title.ToUpper();
// B2022-035: resolve unit specific designators
if (title.ToUpper().Contains(@"<U")) title = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(section.MyDocVersion, title);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
title = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(section.MyDocVersion, title);
plstr = SplitTitle(svgGroup, pageItem, title, (int)linelen, token, plstr, null); //,rowAdj);
}
break;
@@ -1847,7 +1848,8 @@ i = 0;
string title1 = section.MyProcedure.MyContent.Text;
if (section.ActiveFormat.PlantFormat.FormatData.ProcData.CapitalizeTitle) title1 = title1.ToUpper();
// F2024-012 copied this line from above (processing COVERPROCTITLE) to resolve unit designators in the procedure title
if (title1.ToUpper().Contains(@"<U")) title1 = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(section.MyDocVersion, title1);
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
title1 = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(section.MyDocVersion, title1);
plstr = SplitCoverTitle(svgGroup, pageItem, title1, (int)coverlinelen, token, plstr);//, rowAdj);
break;
case "{TITLE&UNIT}":
@@ -2471,6 +2473,9 @@ i = 0;
private string ResolveUnitApp(DocVersionInfo dvi, string str)
{
if (dvi == null) return str;
// B2024-025 - process all of the applicability token (<U-xxx>, <U>, <ID>)
str = VEPROMS.CSLA.Library.DisplayText.ResolveUnitSpecific(dvi, str);
// look for un-resolved tokens and replace less/greater than chars with "*?" and "?*" respectively
string tmp = str.ToUpper();
int sindx = tmp.IndexOf("<U");
int eindx = tmp.IndexOf(">", sindx + 1);
@@ -2479,21 +2484,34 @@ i = 0;
{
reptmp = str.Substring(sindx, eindx - sindx + 1);
tmp = reptmp.ToUpper();
if (tmp == "<U>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
else if (tmp == "<U-TEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Text);
else if (tmp == "<U-NUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
else if (tmp == "<U-NAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Name);
else if (tmp == "<U-ID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_ID);
// B2021-145: For applicability, the tree view & pdf file name are not getting resolved when using any of the <20>OTHER<45> tokens
else if (tmp == "<U-OTHERTEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Text);
else if (tmp == "<U-OTHERNUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Number);
else if (tmp == "<U-OTHERNAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Name);
else if (tmp == "<U-OTHERID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_ID);
else str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
tmp = str.ToUpper();
sindx = tmp.IndexOf("<U");
eindx = tmp.IndexOf(">", sindx + 1);
}
//string tmp = str.ToUpper();
//int sindx = tmp.IndexOf("<U");
//int eindx = tmp.IndexOf(">", sindx + 1);
//string reptmp;
//while (sindx > -1 && eindx > -1) // B2022-007 added while loop to process more than one <U- RO value
//{
// reptmp = str.Substring(sindx, eindx - sindx + 1);
// tmp = reptmp.ToUpper();
// if (tmp == "<U>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
// else if (tmp == "<U-TEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Text);
// else if (tmp == "<U-NUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Number);
// else if (tmp == "<U-NAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_Name);
// else if (tmp == "<U-ID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Unit_ID);
// // B2021-145: For applicability, the tree view & pdf file name are not getting resolved when using any of the <20>OTHER<45> tokens
// else if (tmp == "<U-OTHERTEXT>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Text);
// else if (tmp == "<U-OTHERNUMBER>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Number);
// else if (tmp == "<U-OTHERNAME>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_Name);
// else if (tmp == "<U-OTHERID>") str = str.Replace(reptmp, dvi.DocVersionConfig.Other_Unit_ID);
// else str = str.Replace(reptmp, tmp.Replace("<", "*?").Replace(">", "?*"));
// tmp = str.ToUpper();
// sindx = tmp.IndexOf("<U");
// eindx = tmp.IndexOf(">", sindx + 1);
//}
return str;
}
// B2019-076: moved the following to DocVersionExt.cs to make it available to transitionext.cs code.

View File

@@ -65,12 +65,7 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="C1.Win.4.8">
<HintPath>..\VEPROMS\packages\C1.Win.8.0.20233.631\lib\net48\C1.Win.4.8.dll</HintPath>
</Reference>
<Reference Include="C1.Win.C1FlexGrid.4.8">
<HintPath>..\VEPROMS\packages\C1.Win.C1FlexGrid.4.8.20233.631\lib\net48\C1.Win.C1FlexGrid.4.8.dll</HintPath>
</Reference>
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="Csla">
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\Csla.dll</HintPath>
</Reference>

View File

@@ -1 +1,2 @@
da3d5d14-691f-4908-aa3c-fd3239734232;-8584914772854775808;Vm9saWFuLlByaW50LkxpYnJhcnkuZGxs;ZGEzZDVkMTQtNjkxZi00OTA4LWFhM2MtZmQzMjM5NzM0MjMy,MDEwODE5MjdYWFhYWFhYWDA1Mg,Sk9ITi1XSU4xMA,RmFsc2U,ODQzNA,RmFsc2U,MA,MA,djIwMjIuMw,,;c7VmK7aSALscK1Nd/lI1cS3mms+p4j4Fsa2LgKQ1JmeSkNKq5X8LWx2NLOHITkvv+3IbbTQcVPnGa7hKiEDHlfH3thfwEvtzoqprZSXMOYfNPiXTPIIYPNb6L31Qq7AGiogvw+dMD9o/AiUWt4Q7a5SRmYU+PbrlNAXVISIzndw
da3d5d14-691f-4908-aa3c-fd3239734232;-8584865524854775808;Vm9saWFuLlByaW50LkxpYnJhcnkuZGxs;ZGEzZDVkMTQtNjkxZi00OTA4LWFhM2MtZmQzMjM5NzM0MjMy,NjE5MDczODdYWFhYWFhYWDA1Mw,Q0hSSVM,RmFsc2U,ODg5NA,RmFsc2U,MA,MA,djIwMjQuMQ,,;luo/kWHt4XRAYR+3s8m8QoRagBcvXLv0mHvCYU2VCIeACFord4tdtTGmSUvmGhEmUiAd7YvaTlDlFrlni6CWaVlxa1mdbWuWsNVUkRnyJZ8kOAt1A+3SGfHecCsqotTW7apXjwW5qXLZ/fcgutioe7xaXgniFQysshTdUWt26T8