Compare commits
28 Commits
B2025-063
...
Developmen
| Author | SHA1 | Date | |
|---|---|---|---|
| 31a0f04710 | |||
| ac88add40b | |||
| 862cf67375 | |||
| dae850616d | |||
| 149e114359 | |||
| 7d63e7e417 | |||
| d12e5d19c9 | |||
| 7a6b3b7a86 | |||
| 97fc02b601 | |||
| 9485403712 | |||
| caeead0bc0 | |||
| f93204e37e | |||
| e6af91c6ab | |||
| c89428eed8 | |||
| b4f2b89139 | |||
| aab7cdcf77 | |||
| 47cdedefd4 | |||
| 710145a32d | |||
| 2783d2cc77 | |||
| a7a5df1991 | |||
| 62a296f909 | |||
| 0a301e1a84 | |||
| 37e727202c | |||
| 49bdd03c1c | |||
| 23f4b672b2 | |||
| 599d45086f | |||
| 93aed0e06a | |||
| 7eb94d7575 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -24432,6 +24432,71 @@ ELSE PRINT 'Procedure Creation: [vesp_GetOtherActiveSessions] Error on Creation'
|
||||
GO
|
||||
|
||||
|
||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetROsNotUsed]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||
DROP PROCEDURE [vesp_GetROsNotUsed];
|
||||
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[vesp_GetROsNotUsed] ******/
|
||||
|
||||
-- =============================================
|
||||
-- Author: Matthew Schill
|
||||
-- Create date: 1/5/2026
|
||||
-- Description: Returns ROs that are not Used in PROMS
|
||||
-- =============================================
|
||||
CREATE PROCEDURE [dbo].[vesp_GetROsNotUsed]
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @notused table (RofstChildID int NULL, roid [varchar](50) NULL, ID int NOT NULL, ParentID int NOT NULL, dbID int NOT NULL, title varchar(max) not null)
|
||||
|
||||
DECLARE @FSTs table (RofstID int primary key NOT NULL, RODbID int NOT NULL)
|
||||
|
||||
INSERT INTO @FSTs
|
||||
Select max(RoFSTID), RODbID from ROFsts
|
||||
GROUP BY RODbID
|
||||
|
||||
--insert the not used ROs
|
||||
INSERT INTO @notused
|
||||
SELECT RofstChild.RofstChildID, RofstChild.roid, RofstChild.ID, RofstChild.ParentID, RofstChild.dbiID,
|
||||
RofstChild.title + Case When (Not RofstChild.[value] is null) Then ' (' + fstdb.dbiAP + '-' + RofstChild.appid + ')' Else '' End --Add in Accessory Page ID if it exists
|
||||
FROM RofstChild
|
||||
INNER JOIN RofstDatabase fstdb on fstdb.RofstID = RofstChild.RofstID and fstdb.dbiID = RofstChild.dbiID
|
||||
INNER JOIN @FSTs fst on fst.RofstID = fstdb.RofstID AND RofstChild.RofstID = fst.RofstID
|
||||
where
|
||||
NOT EXISTS(Select 1 FROM RofstChild subchild where subChild.ParentID = RofstChild.ID) --make sure it is not a parent of something else
|
||||
AND NOT EXISTS(Select 1 FROM DRoUsages where [DRoUsages].[ROID] like RofstChild.[ROID] + '%' AND fst.RODbID = DROUsages.RODbID) --not used in documents
|
||||
AND NOT EXISTS(Select 1 FROM RoUsages where [RoUsages].[ROID] like RofstChild.[ROID] + '%' AND fst.RODbID = ROUsages.RODbID) --not used in regular ROs
|
||||
|
||||
--insert thier parents
|
||||
--if they are not already in @notused
|
||||
INSERT INTO @notused
|
||||
SELECT DISTINCT RofstChild.RofstChildID, RofstChild.roid, RofstChild.ID, RofstChild.ParentID, RofstChild.dbiID, RofstChild.title
|
||||
FROM RofstChild
|
||||
INNER JOIN @notused notusedgetparents on notusedgetparents.ParentID = RofstChild.ID AND RofstChild.dbiID = notusedgetparents.dbID
|
||||
INNER JOIN @FSTs fst on RofstChild.RofstID = fst.RofstID
|
||||
LEFT OUTER JOIN @notused notused on notused.RofstChildID = RofstChild.RofstChildID
|
||||
WHERE notused.RofstChildID IS NULL
|
||||
|
||||
--insert parent dbs
|
||||
--if they are not already in @notused
|
||||
INSERT INTO @notused
|
||||
SELECT DISTINCT NULL, NULL, RofstDatabase.ID, RofstDatabase.ParentID, RofstDatabase.dbiID, RofstDatabase.dbiTitle
|
||||
FROM RofstDatabase
|
||||
INNER JOIN @FSTs fst on fst.RofstID = RofstDatabase.RofstID
|
||||
|
||||
select *
|
||||
FROM @notused notused
|
||||
order by RofstChildID, dbID
|
||||
|
||||
RETURN
|
||||
END
|
||||
|
||||
IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_GetROsNotUsed] Succeeded'
|
||||
ELSE PRINT 'Procedure Creation: [vesp_GetROsNotUsed] Error on Creation'
|
||||
GO
|
||||
|
||||
|
||||
/*
|
||||
---------------------------------------------------------------------------
|
||||
| ADD New Code Before this Block |
|
||||
@@ -24465,8 +24530,8 @@ BEGIN TRY -- Try Block
|
||||
DECLARE @RevDate varchar(255)
|
||||
DECLARE @RevDescription varchar(255)
|
||||
|
||||
set @RevDate = '09/16/2025 7:00 AM'
|
||||
set @RevDescription = 'Added Purge Change History and Index Maintenance functions to Admin Tools'
|
||||
set @RevDate = '1/5/2026 7:00 AM'
|
||||
set @RevDescription = 'Added Method to get ROs that are not used in PROMS'
|
||||
|
||||
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
||||
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
||||
|
||||
@@ -13,6 +13,8 @@ using System.Text.RegularExpressions;
|
||||
using System.Globalization;
|
||||
using DevComponents.DotNetBar;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using Volian.Controls.Library;
|
||||
using System.Linq;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
@@ -1321,6 +1323,26 @@ namespace VEPROMS
|
||||
|
||||
// Clear the change bar override for this procedure:
|
||||
pi.ClearChangeBarOverrides();
|
||||
|
||||
//B2019-140 Change bars do not get refreshed when approval is run.
|
||||
ProcedureInfo newproc = ItemInfo.ResetProcedure(pi.ItemID);
|
||||
|
||||
//// Refresh the StepPanel for the current Procedure
|
||||
//// so change bars update
|
||||
//// on any open StepPanel
|
||||
DisplayTabItem dti = MyFrmVEPROMS.GetTabContainingProcedure(pi.ItemID);
|
||||
if (dti != null)
|
||||
{
|
||||
if (!dti.MyStepTabPanel.MyStepPanel.ContainsFocus)
|
||||
dti.MyStepTabPanel.MyStepPanel.Focus();
|
||||
|
||||
foreach (EditItem eitm in dti.MyStepTabPanel.MyStepPanel.Controls.OfType<EditItem>())
|
||||
eitm.ChangeBar = eitm.MyItemInfo.HasChangeBar;
|
||||
}
|
||||
|
||||
//since in a separate form, need to update the tree view
|
||||
//so "Showing Change Bars" Content Menu Item is correct
|
||||
MyFrmVEPROMS.RefreshProcedureNode(newproc);
|
||||
}
|
||||
else
|
||||
UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS, selectedSlave);
|
||||
|
||||
272
PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
generated
272
PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
generated
@@ -52,6 +52,16 @@
|
||||
this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter();
|
||||
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
|
||||
this.sideNav1 = new DevComponents.DotNetBar.Controls.SideNav();
|
||||
this.sideNavPanel5 = new DevComponents.DotNetBar.Controls.SideNavPanel();
|
||||
this.itemPanel1 = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnPurgeChange = new DevComponents.DotNetBar.ButtonX();
|
||||
this.dtePurge = new System.Windows.Forms.DateTimePicker();
|
||||
this.warningBox3 = new DevComponents.DotNetBar.Controls.WarningBox();
|
||||
this.warningBox6 = new DevComponents.DotNetBar.Controls.WarningBox();
|
||||
this.itemPanel2 = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnIndexMaint = new DevComponents.DotNetBar.ButtonX();
|
||||
this.itemPanel3 = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnROsNotUsed = new DevComponents.DotNetBar.ButtonX();
|
||||
this.sideNavPanel2 = new DevComponents.DotNetBar.Controls.SideNavPanel();
|
||||
this.swRefreshTblsForSrch = new DevComponents.DotNetBar.Controls.SwitchButton();
|
||||
this.lblRefreshTblForSrch = new DevComponents.DotNetBar.LabelX();
|
||||
@@ -75,13 +85,6 @@
|
||||
this.labelX14 = new DevComponents.DotNetBar.LabelX();
|
||||
this.myTVdel = new System.Windows.Forms.TreeView();
|
||||
this.btnDeleteItems = new DevComponents.DotNetBar.ButtonX();
|
||||
this.sideNavPanel5 = new DevComponents.DotNetBar.Controls.SideNavPanel();
|
||||
this.btnIndexMaint = new DevComponents.DotNetBar.ButtonX();
|
||||
this.itemPanel1 = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnPurgeChange = new DevComponents.DotNetBar.ButtonX();
|
||||
this.dtePurge = new System.Windows.Forms.DateTimePicker();
|
||||
this.warningBox3 = new DevComponents.DotNetBar.Controls.WarningBox();
|
||||
this.warningBox6 = new DevComponents.DotNetBar.Controls.WarningBox();
|
||||
this.sideNavPanel3 = new DevComponents.DotNetBar.Controls.SideNavPanel();
|
||||
this.swCheckROLinks = new DevComponents.DotNetBar.Controls.SwitchButton();
|
||||
this.labelX12 = new DevComponents.DotNetBar.LabelX();
|
||||
@@ -120,10 +123,12 @@
|
||||
this.pnlLater.SuspendLayout();
|
||||
this.panelEx1.SuspendLayout();
|
||||
this.sideNav1.SuspendLayout();
|
||||
this.sideNavPanel2.SuspendLayout();
|
||||
this.sideNavPanel4.SuspendLayout();
|
||||
this.sideNavPanel5.SuspendLayout();
|
||||
this.itemPanel1.SuspendLayout();
|
||||
this.itemPanel2.SuspendLayout();
|
||||
this.itemPanel3.SuspendLayout();
|
||||
this.sideNavPanel2.SuspendLayout();
|
||||
this.sideNavPanel4.SuspendLayout();
|
||||
this.sideNavPanel3.SuspendLayout();
|
||||
this.panelEx4.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
@@ -346,7 +351,7 @@
|
||||
this.pnlLater.Controls.Add(this.dtpDate);
|
||||
this.pnlLater.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.pnlLater.Enabled = false;
|
||||
this.pnlLater.Location = new System.Drawing.Point(6, 23);
|
||||
this.pnlLater.Location = new System.Drawing.Point(6, 25);
|
||||
this.pnlLater.Name = "pnlLater";
|
||||
this.pnlLater.Padding = new System.Windows.Forms.Padding(6);
|
||||
this.pnlLater.Size = new System.Drawing.Size(279, 37);
|
||||
@@ -357,7 +362,7 @@
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(105, 15);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(18, 13);
|
||||
this.label5.Size = new System.Drawing.Size(19, 15);
|
||||
this.label5.TabIndex = 5;
|
||||
this.label5.Text = "@";
|
||||
//
|
||||
@@ -387,7 +392,7 @@
|
||||
this.chkLater.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.chkLater.Location = new System.Drawing.Point(6, 6);
|
||||
this.chkLater.Name = "chkLater";
|
||||
this.chkLater.Size = new System.Drawing.Size(279, 17);
|
||||
this.chkLater.Size = new System.Drawing.Size(279, 19);
|
||||
this.chkLater.TabIndex = 4;
|
||||
this.chkLater.Text = "Process Later";
|
||||
this.chkLater.UseVisualStyleBackColor = true;
|
||||
@@ -460,8 +465,8 @@
|
||||
// sideNav1
|
||||
//
|
||||
this.sideNav1.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.sideNav1.Controls.Add(this.sideNavPanel2);
|
||||
this.sideNav1.Controls.Add(this.sideNavPanel5);
|
||||
this.sideNav1.Controls.Add(this.sideNavPanel2);
|
||||
this.sideNav1.Controls.Add(this.sideNavPanel4);
|
||||
this.sideNav1.Controls.Add(this.sideNavPanel3);
|
||||
this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
@@ -482,6 +487,138 @@
|
||||
this.sideNav1.TabIndex = 3;
|
||||
this.sideNav1.Text = "sideNav1";
|
||||
//
|
||||
// sideNavPanel5
|
||||
//
|
||||
this.sideNavPanel5.Controls.Add(this.itemPanel1);
|
||||
this.sideNavPanel5.Controls.Add(this.itemPanel2);
|
||||
this.sideNavPanel5.Controls.Add(this.itemPanel3);
|
||||
this.sideNavPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.sideNavPanel5.Location = new System.Drawing.Point(117, 35);
|
||||
this.sideNavPanel5.MinimumSize = new System.Drawing.Size(0, 493);
|
||||
this.sideNavPanel5.Name = "sideNavPanel5";
|
||||
this.sideNavPanel5.Size = new System.Drawing.Size(263, 493);
|
||||
this.sideNavPanel5.TabIndex = 26;
|
||||
//
|
||||
// itemPanel1
|
||||
//
|
||||
this.itemPanel1.Controls.Add(this.btnPurgeChange);
|
||||
this.itemPanel1.Controls.Add(this.dtePurge);
|
||||
this.itemPanel1.Controls.Add(this.warningBox3);
|
||||
this.itemPanel1.Controls.Add(this.warningBox6);
|
||||
this.itemPanel1.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.itemPanel1.Location = new System.Drawing.Point(0, -2);
|
||||
this.itemPanel1.Name = "itemPanel1";
|
||||
this.itemPanel1.Size = new System.Drawing.Size(267, 148);
|
||||
this.itemPanel1.Style.Border = DevComponents.DotNetBar.eBorderType.DoubleLine;
|
||||
this.itemPanel1.Style.BorderColor.Color = System.Drawing.Color.DarkGray;
|
||||
this.itemPanel1.TabIndex = 0;
|
||||
//
|
||||
// btnPurgeChange
|
||||
//
|
||||
this.btnPurgeChange.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnPurgeChange.Checked = true;
|
||||
this.btnPurgeChange.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnPurgeChange.Location = new System.Drawing.Point(18, 32);
|
||||
this.btnPurgeChange.Name = "btnPurgeChange";
|
||||
this.btnPurgeChange.Size = new System.Drawing.Size(227, 23);
|
||||
this.btnPurgeChange.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnPurgeChange.TabIndex = 1;
|
||||
this.btnPurgeChange.Text = "Purge Change History";
|
||||
this.btnPurgeChange.Tooltip = resources.GetString("btnPurgeChange.Tooltip");
|
||||
this.btnPurgeChange.Click += new System.EventHandler(this.btnPurgeChange_Click);
|
||||
//
|
||||
// dtePurge
|
||||
//
|
||||
this.dtePurge.Format = System.Windows.Forms.DateTimePickerFormat.Short;
|
||||
this.dtePurge.Location = new System.Drawing.Point(92, 7);
|
||||
this.dtePurge.Name = "dtePurge";
|
||||
this.dtePurge.Size = new System.Drawing.Size(87, 20);
|
||||
this.dtePurge.TabIndex = 0;
|
||||
//
|
||||
// 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(1, 61);
|
||||
this.warningBox3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.warningBox3.Name = "warningBox3";
|
||||
this.warningBox3.OptionsButtonVisible = false;
|
||||
this.warningBox3.Size = new System.Drawing.Size(264, 32);
|
||||
this.warningBox3.TabIndex = 32;
|
||||
this.warningBox3.Text = "<b>NOTE</b> These tools can take a long time to run";
|
||||
//
|
||||
// warningBox6
|
||||
//
|
||||
this.warningBox6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
|
||||
this.warningBox6.CloseButtonVisible = false;
|
||||
this.warningBox6.Image = ((System.Drawing.Image)(resources.GetObject("warningBox6.Image")));
|
||||
this.warningBox6.Location = new System.Drawing.Point(1, 97);
|
||||
this.warningBox6.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.warningBox6.Name = "warningBox6";
|
||||
this.warningBox6.OptionsButtonVisible = false;
|
||||
this.warningBox6.Size = new System.Drawing.Size(264, 43);
|
||||
this.warningBox6.TabIndex = 31;
|
||||
this.warningBox6.Text = " Be sure there is a current backup of the \r\n database prior to running these func" +
|
||||
"tions";
|
||||
//
|
||||
// itemPanel2
|
||||
//
|
||||
this.itemPanel2.Controls.Add(this.btnIndexMaint);
|
||||
this.itemPanel2.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.itemPanel2.Location = new System.Drawing.Point(0, 145);
|
||||
this.itemPanel2.Name = "itemPanel2";
|
||||
this.itemPanel2.Size = new System.Drawing.Size(267, 73);
|
||||
this.itemPanel2.Style.BackgroundImagePosition = DevComponents.DotNetBar.eBackgroundImagePosition.Tile;
|
||||
this.itemPanel2.Style.Border = DevComponents.DotNetBar.eBorderType.DoubleLine;
|
||||
this.itemPanel2.Style.BorderColor.Color = System.Drawing.Color.DarkGray;
|
||||
this.itemPanel2.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.itemPanel2.Style.GradientAngle = 90;
|
||||
this.itemPanel2.TabIndex = 8;
|
||||
//
|
||||
// btnIndexMaint
|
||||
//
|
||||
this.btnIndexMaint.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnIndexMaint.Checked = true;
|
||||
this.btnIndexMaint.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnIndexMaint.Location = new System.Drawing.Point(19, 24);
|
||||
this.btnIndexMaint.Name = "btnIndexMaint";
|
||||
this.btnIndexMaint.Size = new System.Drawing.Size(227, 23);
|
||||
this.btnIndexMaint.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnIndexMaint.TabIndex = 4;
|
||||
this.btnIndexMaint.Text = "Perform Index Maintenance";
|
||||
this.btnIndexMaint.Tooltip = resources.GetString("btnIndexMaint.Tooltip");
|
||||
this.btnIndexMaint.Click += new System.EventHandler(this.btnIndexMaint_Click);
|
||||
//
|
||||
// itemPanel3
|
||||
//
|
||||
this.itemPanel3.Controls.Add(this.btnROsNotUsed);
|
||||
this.itemPanel3.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.itemPanel3.Location = new System.Drawing.Point(0, 218);
|
||||
this.itemPanel3.Name = "itemPanel3";
|
||||
this.itemPanel3.Size = new System.Drawing.Size(267, 70);
|
||||
this.itemPanel3.Style.BackgroundImagePosition = DevComponents.DotNetBar.eBackgroundImagePosition.Tile;
|
||||
this.itemPanel3.Style.Border = DevComponents.DotNetBar.eBorderType.DoubleLine;
|
||||
this.itemPanel3.Style.BorderColor.Color = System.Drawing.Color.DarkGray;
|
||||
this.itemPanel3.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.itemPanel3.Style.GradientAngle = 90;
|
||||
this.itemPanel3.TabIndex = 12;
|
||||
//
|
||||
// btnROsNotUsed
|
||||
//
|
||||
this.btnROsNotUsed.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnROsNotUsed.Checked = true;
|
||||
this.btnROsNotUsed.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnROsNotUsed.Location = new System.Drawing.Point(19, 22);
|
||||
this.btnROsNotUsed.Name = "btnROsNotUsed";
|
||||
this.btnROsNotUsed.Size = new System.Drawing.Size(227, 26);
|
||||
this.btnROsNotUsed.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.superTooltip1.SetSuperTooltip(this.btnROsNotUsed, new DevComponents.DotNetBar.SuperTooltipInfo("ROs Not Used Snapshot", "", "This will Generate an image detailing ROs that exist but are not currently utiliz" +
|
||||
"ed in any steps in PROMS.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||
this.btnROsNotUsed.TabIndex = 2;
|
||||
this.btnROsNotUsed.Text = "Generate Snapshot of ROs Not Used";
|
||||
this.btnROsNotUsed.Click += new System.EventHandler(this.btnROsNotUsed_Click);
|
||||
//
|
||||
// sideNavPanel2
|
||||
//
|
||||
this.sideNavPanel2.Controls.Add(this.swRefreshTblsForSrch);
|
||||
@@ -504,6 +641,7 @@
|
||||
this.sideNavPanel2.Name = "sideNavPanel2";
|
||||
this.sideNavPanel2.Size = new System.Drawing.Size(268, 493);
|
||||
this.sideNavPanel2.TabIndex = 6;
|
||||
this.sideNavPanel2.Visible = false;
|
||||
//
|
||||
// swRefreshTblsForSrch
|
||||
//
|
||||
@@ -543,7 +681,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.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.warningBox4.Name = "warningBox4";
|
||||
this.warningBox4.OptionsButtonVisible = false;
|
||||
this.warningBox4.Size = new System.Drawing.Size(264, 32);
|
||||
@@ -556,7 +694,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.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.warningBox2.Name = "warningBox2";
|
||||
this.warningBox2.OptionsButtonVisible = false;
|
||||
this.warningBox2.Size = new System.Drawing.Size(264, 43);
|
||||
@@ -834,95 +972,6 @@
|
||||
this.btnDeleteItems.TabIndex = 35;
|
||||
this.btnDeleteItems.Text = "Process Deletions";
|
||||
this.btnDeleteItems.Click += new System.EventHandler(this.btnDeleteItems_Click);
|
||||
//
|
||||
// sideNavPanel5
|
||||
//
|
||||
this.sideNavPanel5.Controls.Add(this.btnIndexMaint);
|
||||
this.sideNavPanel5.Controls.Add(this.itemPanel1);
|
||||
this.sideNavPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.sideNavPanel5.Location = new System.Drawing.Point(112, 31);
|
||||
this.sideNavPanel5.MinimumSize = new System.Drawing.Size(0, 493);
|
||||
this.sideNavPanel5.Name = "sideNavPanel5";
|
||||
this.sideNavPanel5.Size = new System.Drawing.Size(268, 493);
|
||||
this.sideNavPanel5.TabIndex = 26;
|
||||
this.sideNavPanel5.Visible = false;
|
||||
//
|
||||
// btnIndexMaint
|
||||
//
|
||||
this.btnIndexMaint.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnIndexMaint.Checked = true;
|
||||
this.btnIndexMaint.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnIndexMaint.Location = new System.Drawing.Point(20, 152);
|
||||
this.btnIndexMaint.Name = "btnIndexMaint";
|
||||
this.btnIndexMaint.Size = new System.Drawing.Size(227, 23);
|
||||
this.btnIndexMaint.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnIndexMaint.TabIndex = 4;
|
||||
this.btnIndexMaint.Text = "Perform Index Maintenance";
|
||||
this.btnIndexMaint.Tooltip = resources.GetString("btnIndexMaint.Tooltip");
|
||||
this.btnIndexMaint.Click += new System.EventHandler(this.btnIndexMaint_Click);
|
||||
//
|
||||
// itemPanel1
|
||||
//
|
||||
this.itemPanel1.Controls.Add(this.btnPurgeChange);
|
||||
this.itemPanel1.Controls.Add(this.dtePurge);
|
||||
this.itemPanel1.Controls.Add(this.warningBox3);
|
||||
this.itemPanel1.Controls.Add(this.warningBox6);
|
||||
this.itemPanel1.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.itemPanel1.Location = new System.Drawing.Point(0, -2);
|
||||
this.itemPanel1.Name = "itemPanel1";
|
||||
this.itemPanel1.Size = new System.Drawing.Size(267, 148);
|
||||
this.itemPanel1.Style.Border = DevComponents.DotNetBar.eBorderType.DoubleLine;
|
||||
this.itemPanel1.Style.BorderColor.Color = System.Drawing.Color.DarkGray;
|
||||
this.itemPanel1.TabIndex = 0;
|
||||
//
|
||||
// btnPurgeChange
|
||||
//
|
||||
this.btnPurgeChange.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnPurgeChange.Checked = true;
|
||||
this.btnPurgeChange.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnPurgeChange.Location = new System.Drawing.Point(18, 32);
|
||||
this.btnPurgeChange.Name = "btnPurgeChange";
|
||||
this.btnPurgeChange.Size = new System.Drawing.Size(227, 23);
|
||||
this.btnPurgeChange.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnPurgeChange.TabIndex = 1;
|
||||
this.btnPurgeChange.Text = "Purge Change History";
|
||||
this.btnPurgeChange.Tooltip = resources.GetString("btnPurgeChange.Tooltip");
|
||||
this.btnPurgeChange.Click += new System.EventHandler(this.btnPurgeChange_Click);
|
||||
//
|
||||
// dtePurge
|
||||
//
|
||||
this.dtePurge.Format = System.Windows.Forms.DateTimePickerFormat.Short;
|
||||
this.dtePurge.Location = new System.Drawing.Point(92, 7);
|
||||
this.dtePurge.Name = "dtePurge";
|
||||
this.dtePurge.Size = new System.Drawing.Size(87, 20);
|
||||
this.dtePurge.TabIndex = 0;
|
||||
//
|
||||
// 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(1, 61);
|
||||
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 = 32;
|
||||
this.warningBox3.Text = "<b>NOTE</b> These tools can take a long time to run";
|
||||
//
|
||||
// warningBox6
|
||||
//
|
||||
this.warningBox6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
|
||||
this.warningBox6.CloseButtonVisible = false;
|
||||
this.warningBox6.Image = ((System.Drawing.Image)(resources.GetObject("warningBox6.Image")));
|
||||
this.warningBox6.Location = new System.Drawing.Point(1, 97);
|
||||
this.warningBox6.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.warningBox6.Name = "warningBox6";
|
||||
this.warningBox6.OptionsButtonVisible = false;
|
||||
this.warningBox6.Size = new System.Drawing.Size(264, 43);
|
||||
this.warningBox6.TabIndex = 31;
|
||||
this.warningBox6.Text = " Be sure there is a current backup of the \r\n database prior to running these func" +
|
||||
"tions";
|
||||
//
|
||||
// sideNavPanel3
|
||||
//
|
||||
@@ -981,7 +1030,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.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.warningBox5.Name = "warningBox5";
|
||||
this.warningBox5.OptionsButtonVisible = false;
|
||||
this.warningBox5.Size = new System.Drawing.Size(262, 32);
|
||||
@@ -1065,7 +1114,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.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.warningBox1.Name = "warningBox1";
|
||||
this.warningBox1.OptionsButtonVisible = false;
|
||||
this.warningBox1.Size = new System.Drawing.Size(262, 43);
|
||||
@@ -1108,7 +1157,6 @@
|
||||
//
|
||||
// sideNavItmRepair
|
||||
//
|
||||
this.sideNavItmRepair.Checked = true;
|
||||
this.sideNavItmRepair.Name = "sideNavItmRepair";
|
||||
this.sideNavItmRepair.Panel = this.sideNavPanel2;
|
||||
this.sideNavItmRepair.Symbol = "";
|
||||
@@ -1125,6 +1173,7 @@
|
||||
//
|
||||
// sideNavItmMaint
|
||||
//
|
||||
this.sideNavItmMaint.Checked = true;
|
||||
this.sideNavItmMaint.Name = "sideNavItmMaint";
|
||||
this.sideNavItmMaint.Panel = this.sideNavPanel5;
|
||||
this.sideNavItmMaint.Symbol = "58154";
|
||||
@@ -1271,10 +1320,12 @@
|
||||
this.panelEx1.ResumeLayout(false);
|
||||
this.sideNav1.ResumeLayout(false);
|
||||
this.sideNav1.PerformLayout();
|
||||
this.sideNavPanel2.ResumeLayout(false);
|
||||
this.sideNavPanel4.ResumeLayout(false);
|
||||
this.sideNavPanel5.ResumeLayout(false);
|
||||
this.itemPanel1.ResumeLayout(false);
|
||||
this.itemPanel2.ResumeLayout(false);
|
||||
this.itemPanel3.ResumeLayout(false);
|
||||
this.sideNavPanel2.ResumeLayout(false);
|
||||
this.sideNavPanel4.ResumeLayout(false);
|
||||
this.sideNavPanel3.ResumeLayout(false);
|
||||
this.panelEx4.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
@@ -1363,6 +1414,9 @@
|
||||
private DevComponents.DotNetBar.Controls.WarningBox warningBox3;
|
||||
private DevComponents.DotNetBar.Controls.WarningBox warningBox6;
|
||||
private DevComponents.DotNetBar.ButtonX btnIndexMaint;
|
||||
private DevComponents.DotNetBar.PanelEx itemPanel2;
|
||||
private DevComponents.DotNetBar.PanelEx itemPanel3;
|
||||
private DevComponents.DotNetBar.ButtonX btnROsNotUsed;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1778,6 +1778,43 @@ namespace VEPROMS
|
||||
return true;
|
||||
}
|
||||
|
||||
//CSM - C2025-043 report RO's that are not used in any of the PROMS data.
|
||||
private void btnROsNotUsed_Click(object sender, EventArgs e)
|
||||
{
|
||||
//Get the path to save the Image to
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.DefaultExt = "bmp";
|
||||
sfd.AddExtension = true;
|
||||
sfd.Filter = "Image Files (*.bmp)|*.bmp";
|
||||
sfd.FileName = string.Format("ROsNotUsed_{0}", DateTime.Now.ToString("yyyyMMdd_HHmm"));
|
||||
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS";
|
||||
DialogResult dr = sfd.ShowDialog();
|
||||
|
||||
if (dr == DialogResult.OK)
|
||||
{
|
||||
//Initial messaging
|
||||
string statmsg = "Generating Snapshot (this may take a few minutes to complete)...";
|
||||
InitialProgressBarMessage = statmsg;
|
||||
txtResults.AppendText(statmsg);
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
|
||||
//Generate the data for ROs Not Used and save it to a TreeView
|
||||
TreeView tv = TreeViewExtensions.GetROTree(GeneralReports.GetROsNotUsedInPROMS(), true);
|
||||
//Output the TreeView as an Image
|
||||
if (tv.Nodes.Count != 0)
|
||||
tv.SaveTreeViewAsImage(sfd.FileName);
|
||||
|
||||
//Give Messaging demonstrating finished and open file if requested
|
||||
statmsg = "Finished Generating Snapshot of ROs Not Used.";
|
||||
FinalProgressBarMessage = statmsg;
|
||||
txtResults.AppendText(statmsg);
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
if (tv.Nodes.Count != 0 && MessageBox.Show($"{statmsg}\r\n\r\nDo you wish to open the snapshot now?", "ROs Not Used", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
|
||||
System.Diagnostics.Process.Start(sfd.FileName);
|
||||
else if (tv.Nodes.Count == 0)
|
||||
MessageBox.Show("All ROs are currently in use.", "ROs Not Used", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -117,6 +117,57 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="btnIndexMaint.Tooltip" xml:space="preserve">
|
||||
<value>This will perform Index Maintenance to realign indexes to optimize performance.
|
||||
This function will cause no change to data or records in PROMS.
|
||||
It should however be performed when other users are not in PROMS, as it could
|
||||
cause slowdown or errors for other users while it is running.</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="btnPurgeChange.Tooltip" xml:space="preserve">
|
||||
<value>Purges all audit information and change history older than the above date.
|
||||
It is recommended that you perform a database backup before performing this action.
|
||||
Note after purging the information, this will automatically perform the Index
|
||||
Maintenance function to realign indexes with the cut down audit data.
|
||||
Only Full PROMS Administrator Users can perform this action.</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>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
|
||||
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
|
||||
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
|
||||
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
|
||||
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
|
||||
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
|
||||
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
|
||||
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
|
||||
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
|
||||
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
|
||||
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
|
||||
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
|
||||
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="warningBox6.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
|
||||
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
|
||||
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
|
||||
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
|
||||
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
|
||||
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
|
||||
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
|
||||
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
|
||||
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
|
||||
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
|
||||
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
|
||||
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
|
||||
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
@@ -132,7 +183,6 @@ This function will remove all of the saved attachment PDFS stored in the databas
|
||||
This function will remove all of the saved attachment PDFS stored in the database (not the PDFs of the entire procedure that you had previous printed). This will force PROMS to regenerate (and save) the word attachment PDFs the next time the procedure is printed.
|
||||
</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="warningBox4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
|
||||
@@ -216,12 +266,6 @@ Should an item become orphaned (disconnected) from the rest of the data, it will
|
||||
|
||||
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="btnIndexMaint.Tooltip" xml:space="preserve">
|
||||
<value>This will perform Index Maintenance to realign indexes to optimize performance.
|
||||
This function will cause no change to data or records in PROMS.
|
||||
It should however be performed when other users are not in PROMS, as it could
|
||||
cause slowdown or errors for other users while it is running.</value>
|
||||
</data>
|
||||
<data name="swDeleteFolder.SuperTooltip" xml:space="preserve">
|
||||
<value>This allows the user to remove folders and sub folders as well as their contents.
|
||||
@@ -261,47 +305,6 @@ If more than one working draft is selected, it is recommended that this be perfo
|
||||
Click on the on/off switches to turn on/off each tool.
|
||||
|
||||
Note that only one of these tools can be run at a time.</value>
|
||||
</data>
|
||||
<data name="btnPurgeChange.Tooltip" xml:space="preserve">
|
||||
<value>Purges all audit information and change history older than the above date.
|
||||
It is recommended that you perform a database backup before performing this action.
|
||||
Note after purging the information, this will automatically perform the Index
|
||||
Maintenance function to realign indexes with the cut down audit data.
|
||||
Only Full PROMS Administrator Users can perform this action.</value>
|
||||
</data>
|
||||
<data name="warningBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
|
||||
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
|
||||
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
|
||||
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
|
||||
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
|
||||
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
|
||||
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
|
||||
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
|
||||
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
|
||||
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
|
||||
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
|
||||
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
|
||||
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="warningBox6.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
|
||||
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
|
||||
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
|
||||
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
|
||||
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
|
||||
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
|
||||
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
|
||||
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
|
||||
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
|
||||
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
|
||||
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
|
||||
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
|
||||
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="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.
|
||||
@@ -389,6 +392,6 @@ If more than one procedure is selected, it is recommended that this be performed
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>137</value>
|
||||
<value>25</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -589,6 +589,25 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
//B2019-140 Change bars do not get refreshed when approval is run.
|
||||
// Get the displaytab containing the procedure
|
||||
// if none exists, return null
|
||||
public DisplayTabItem GetTabContainingProcedure(int procid) => tc?.MyBar?.Items?.OfType<DisplayTabItem>().FirstOrDefault(x => x.MyItemInfo?.ItemID == procid);
|
||||
// Refresh Node in Tree
|
||||
// Used for when Change Bar Updates as part of approval.
|
||||
public void RefreshProcedureNode(ProcedureInfo itm)
|
||||
{
|
||||
VETreeNode tn = tv.FindNode(itm, tv.Nodes);
|
||||
var tmp = (ProcedureInfo)tn?.VEObject;
|
||||
if (tmp != null)
|
||||
{
|
||||
tmp.ChangeBarDate = itm.ChangeBarDate;
|
||||
tmp.MyConfig = itm.MyConfig;
|
||||
}
|
||||
|
||||
tn?.RefreshNode();
|
||||
}
|
||||
|
||||
void tv_SelectDateToStartChangeBars(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
|
||||
@@ -606,6 +625,23 @@ namespace VEPROMS
|
||||
itm.MyContent.Config = pc.ToString();
|
||||
itm.UserID = Volian.Base.Library.VlnSettings.UserID;
|
||||
itm.Save();
|
||||
|
||||
//B2019-140 Change bars do not get refreshed when approval is run.
|
||||
// Reset a Procedure and sub items in the cache
|
||||
ProcedureInfo newproc = ItemInfo.ResetProcedure(pi.ItemID);
|
||||
|
||||
//// Refresh the StepPanel for the current Procedure
|
||||
//// so change bars update
|
||||
//// on any open StepPanel
|
||||
DisplayTabItem dti = GetTabContainingProcedure(pi.ItemID);
|
||||
if (dti != null)
|
||||
{
|
||||
if (!dti.MyStepTabPanel.MyStepPanel.ContainsFocus)
|
||||
dti.MyStepTabPanel.MyStepPanel.Focus();
|
||||
|
||||
foreach (EditItem eitm in dti.MyStepTabPanel.MyStepPanel.Controls.OfType<EditItem>())
|
||||
eitm.ChangeBar = eitm.MyItemInfo.HasChangeBar;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2497,7 +2533,7 @@ namespace VEPROMS
|
||||
//and set checkboxes based on what they are set to
|
||||
UserSettings usersettings = new UserSettings(VlnSettings.UserID);
|
||||
|
||||
if (DisPlayTabState.Rows.Count > 0 && (usersettings.UserSetting_OpenTabs_AutoOpen || !usersettings.UserSetting_OpenTabs_Remember))
|
||||
if (!Settings.Default.SeparateWindows && DisPlayTabState.Rows.Count > 0 && (usersettings.UserSetting_OpenTabs_AutoOpen || !usersettings.UserSetting_OpenTabs_Remember))
|
||||
{
|
||||
//will open tabs by default / ask by default
|
||||
DialogResult result = DialogResult.Yes;
|
||||
@@ -5344,6 +5380,8 @@ namespace VEPROMS
|
||||
private void btnUpdateFormat_Click(object sender, EventArgs e)
|
||||
{
|
||||
UpdateFormats(null);
|
||||
//C2025-060 When format is updated in PROMS, auto-update the format cache so it doesn't require exiting PROMS and going back in.
|
||||
RefreshFormats(sender, null);
|
||||
}
|
||||
|
||||
private void UpdateFormats(string mypath)
|
||||
|
||||
@@ -1363,9 +1363,14 @@ namespace VEPROMS.CSLA.Library
|
||||
// An X/Y Plot RO type might have text preceding the Plot Commands
|
||||
int pstart = roValue.IndexOf("<<G"); // find the starting Plot Command
|
||||
|
||||
//B2025-065 When Printing a Word Section containing XY Plot ROs - when there is a title on the XY Plot, only the first line is indented.
|
||||
//get x-offset
|
||||
float fx1 = (float)MyApp.ActiveDocument.Range(sel.Start, sel.Start).get_Information(LBWdInformation.wdHorizontalPositionRelativeToPage);
|
||||
fx1 -= (float)MyApp.ActiveDocument.Range(0, 0).get_Information(LBWdInformation.wdHorizontalPositionRelativeToPage);
|
||||
|
||||
// B2017-217 Added logic so that underscores are not converted to underline
|
||||
// C2018-003 fixed use of getting the active section
|
||||
AddPrecedingText(sel, roValue.Substring(0, pstart), 0.0F, (sect.ActiveSection != null) ? sect.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertUnderscoreToUnderline : false);// replace the RO token with what's in front of the X/Y Plot
|
||||
AddPrecedingText(sel, roValue.Substring(0, pstart), fx1, (sect.ActiveSection != null) ? sect.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertUnderscoreToUnderline : false);// replace the RO token with what's in front of the X/Y Plot
|
||||
roValue = roValue.Substring(pstart); // set rovalue to the start of the plot commands
|
||||
|
||||
pngFile = VlnSettings.TemporaryFolder + @"\XYPlot1.png"; //@"C:\Temp\XYPlot1.png";
|
||||
@@ -1386,6 +1391,10 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
float yAdjust = sel.Font.Size;
|
||||
float yyy = yAdjust + y + plotRect.Y;
|
||||
|
||||
//B2025-065 When Printing a Word Section containing XY Plot ROs - when there is a title on the XY Plot, only the first line is indented.
|
||||
xxx += fx1; //shift by x-offset
|
||||
|
||||
LBShape shape = myDoc.Shapes.AddPicture(pngFile, xxx, yyy, sel.Range);
|
||||
|
||||
try
|
||||
|
||||
@@ -3819,6 +3819,51 @@ namespace VEPROMS.CSLA.Library
|
||||
_Tables = null;
|
||||
_SupInfos = null;
|
||||
}
|
||||
|
||||
//B2019-140 Change bars do not get refreshed when approval is run.
|
||||
// Reset a Procedure and sub items in the cache
|
||||
public static ProcedureInfo ResetProcedure(int procID)
|
||||
{
|
||||
// The following lines reload the procedure info cache
|
||||
ProcedureInfo newproc = ProcedureInfo.Get(procID, true);
|
||||
newproc.RefreshConfig();
|
||||
|
||||
//the following is needed to force the ProcedureConfig to reload
|
||||
#pragma warning disable S1656 // Variables should not be self-assigned
|
||||
newproc.MyConfig = newproc.MyConfig;
|
||||
#pragma warning restore S1656 // Variables should not be self-assigned
|
||||
|
||||
//reload the Content Cache for the procedure
|
||||
ContentInfo.Refresh(Content.Get(newproc.MyContent.ContentID, true));
|
||||
|
||||
// The following line actually reloads the item info cache
|
||||
ItemInfo newprocitem = Get(procID, true);
|
||||
newprocitem.RefreshConfig();
|
||||
|
||||
//Reload all the child/sub items
|
||||
#pragma warning disable S2971 // LINQ expressions should be simplified - need initial ToList to force enumeration
|
||||
//otherwise will get a "Collection was modified; enumeration operation may not execute" error
|
||||
List<int> itemIDs = _CacheByPrimaryKey.Values.ToList().SelectMany(y => y).Where(t => t?.ActiveParent != null && (t.ActiveParent is ItemInfo) && t.MyProcedure.ItemID == procID).Select(x => (x.ActiveParent as ItemInfo).ItemID).Distinct().ToList();
|
||||
#pragma warning restore S2971 // LINQ expressions should be simplified
|
||||
for (int index = 0; index < itemIDs.Count; index++)
|
||||
{
|
||||
ResetParts(itemIDs[index]);
|
||||
}
|
||||
|
||||
//reset the procedure config for all items attached to current procedure
|
||||
#pragma warning disable S2971 // LINQ expressions should be simplified - need initial ToList to force enumeration
|
||||
//otherwise will get a "Collection was modified; enumeration operation may not execute" error
|
||||
List<ItemInfo> pconfigrefresh_items = _CacheByPrimaryKey.Values.ToList().SelectMany(y => y).Where(t => t?.MyProcedure?.ItemID == procID).Distinct().ToList();
|
||||
#pragma warning restore S2971 // LINQ expressions should be simplified
|
||||
for (int index = 0; index < pconfigrefresh_items.Count; index++)
|
||||
{
|
||||
pconfigrefresh_items[index].MyProcedure = newproc;
|
||||
}
|
||||
|
||||
//return the changed procedure info
|
||||
return newproc;
|
||||
}
|
||||
|
||||
private ItemInfoList _Procedures;
|
||||
public ItemInfoList Procedures
|
||||
{ get { return Lookup(E_FromType.Procedure, ref _Procedures); } }
|
||||
|
||||
@@ -4341,6 +4341,16 @@ public LeftJustifyList(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
|
||||
return LazyLoad(ref _IncludeSectionNumAndTitle, "@IncludeSectionNumAndTitle");
|
||||
}
|
||||
}
|
||||
|
||||
//F2025-038 default (in base format) is True. The lable "SECTION" will precede the section number an title
|
||||
private LazyLoad<bool> _IncludeSectionLabel;
|
||||
public bool IncludeSectionLabel
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _IncludeSectionLabel, "@IncludeSectionLabel");
|
||||
}
|
||||
}
|
||||
// the font and font styles to use for the continuous action summary
|
||||
private VE_Font _Font;
|
||||
public VE_Font Font
|
||||
|
||||
42
PROMS/VEPROMS.CSLA.Library/Minimal/GeneralReports.cs
Normal file
42
PROMS/VEPROMS.CSLA.Library/Minimal/GeneralReports.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using Csla.Data;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
//CSM - C2025-043 - Minimal Class for General Reports
|
||||
namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
public static class GeneralReports
|
||||
{
|
||||
|
||||
#region Get General Reports
|
||||
//CSM - C2025-043 report RO's that are not used in any of the PROMS data.
|
||||
public static DataTable GetROsNotUsedInPROMS()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.StoredProcedure;
|
||||
cm.CommandText = "vesp_GetROsNotUsed";
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SqlDataAdapter da = new SqlDataAdapter(cm))
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
da.Fill(dt);
|
||||
return dt;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new DbCslaException("Error in GetROsNotUsedInPROMS Report: retrieving data failed", ex);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -390,6 +390,7 @@
|
||||
<Compile Include="Generated\ZTransitionInfo.cs" />
|
||||
<Compile Include="Minimal\AnnotationstypeSections.cs" />
|
||||
<Compile Include="Minimal\Maintenance.cs" />
|
||||
<Compile Include="Minimal\GeneralReports.cs" />
|
||||
<Compile Include="Minimal\UserReports.cs" />
|
||||
<Compile Include="Minimal\UserSettings.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
||||
@@ -1667,6 +1667,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
Clipboard.Clear();
|
||||
|
||||
Clipboard.SetDataObject(myDO); // this saves the cleaned up information to the Windows clipboard
|
||||
}
|
||||
iData = Clipboard.GetDataObject();
|
||||
|
||||
115
PROMS/Volian.Controls.Library/TreeViewExtensions.cs
Normal file
115
PROMS/Volian.Controls.Library/TreeViewExtensions.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Data;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
//CSM - C2025-043 report RO's that are not used in any of the PROMS data.
|
||||
// extend the TreeView class with a couple added functions
|
||||
// to allow support for what is needed for ROs
|
||||
public static class TreeViewExtensions
|
||||
{
|
||||
#region public functions
|
||||
//Returns a ROTreeView based on the data in the datatable dt
|
||||
// builds tree based on the following:
|
||||
// ParentID = 0 is top level
|
||||
// links (defined parent) based on same dbID and ID = ParentID
|
||||
// nodes will have the text of the title
|
||||
public static TreeView GetROTree(DataTable dt, bool isExpanded = false)
|
||||
{
|
||||
TreeView tv = new TreeView();
|
||||
|
||||
var tempnodes = GetTreeNodes(
|
||||
dt.AsEnumerable(),
|
||||
(r) => r.Field<int?>("ParentID") == 0, //top level of tree
|
||||
(r, s) => s.Where(x => r["ID"].Equals(x["ParentID"]) && r["dbID"].Equals(x["dbID"])), //how to match parents and children
|
||||
(r) => new TreeNode { Text = r.Field<string>("title") } //what to display in the tree
|
||||
);
|
||||
tv.Nodes.AddRange(tempnodes.ToArray());
|
||||
|
||||
//if set to expand, sets the height to the combined height of all nodes + 20
|
||||
//so will show whole tree
|
||||
if (isExpanded)
|
||||
{
|
||||
tv.ExpandAll();
|
||||
tv.SetTreeViewHeighttoFull();
|
||||
tv.Width = 1200;
|
||||
}
|
||||
|
||||
//sorts the tree in alphabetical order to match the way the tree is sorted in the RO Editor
|
||||
tv.Sorted = true;
|
||||
|
||||
return tv;
|
||||
}
|
||||
|
||||
//Saves the Tree to an Image at the specified path
|
||||
public static void SaveTreeViewAsImage(this TreeView tv, string filePath)
|
||||
{
|
||||
// Create a Bitmap with the size of the TreeView
|
||||
Bitmap bitmap = new Bitmap(tv.Width, tv.Height);
|
||||
// Draw the TreeView onto the Bitmap
|
||||
tv.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
|
||||
// Save the Bitmap as an image file
|
||||
bitmap.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region height functions
|
||||
//This is a function to calculate and set the TreeView Height based
|
||||
//on the height of all sub nodes + 20
|
||||
public static void SetTreeViewHeighttoFull(this TreeView tv)
|
||||
{
|
||||
int totalHeight = 0;
|
||||
foreach (TreeNode node in tv.Nodes)
|
||||
{
|
||||
totalHeight += GetNodeHeight(node);
|
||||
}
|
||||
tv.Height = totalHeight + 20;
|
||||
}
|
||||
|
||||
//This function recursively adds the height of sub nodes to the running total
|
||||
private static int GetNodeHeight(TreeNode node)
|
||||
{
|
||||
int curheight = node.Bounds.Height;
|
||||
foreach (TreeNode child in node.Nodes)
|
||||
{
|
||||
curheight += GetNodeHeight(child);
|
||||
}
|
||||
return curheight;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region generic private tree structure functions
|
||||
//This is a Generic Function to help build the Tree Structure
|
||||
private static IEnumerable<TreeNode> GetTreeNodes<T>(
|
||||
IEnumerable<T> source,
|
||||
Func<T, Boolean> isRoot,
|
||||
Func<T, IEnumerable<T>, IEnumerable<T>> getChilds,
|
||||
Func<T, TreeNode> getItem)
|
||||
{
|
||||
IEnumerable<T> roots = source.Where(x => isRoot(x));
|
||||
foreach (T root in roots)
|
||||
yield return ConvertEntityToTreeNode(root, source, getChilds, getItem); ;
|
||||
}
|
||||
|
||||
//This is a Generic Function to help build the Tree Structure
|
||||
private static TreeNode ConvertEntityToTreeNode<T>(
|
||||
T entity,
|
||||
IEnumerable<T> source,
|
||||
Func<T, IEnumerable<T>, IEnumerable<T>> getChilds,
|
||||
Func<T, TreeNode> getItem)
|
||||
{
|
||||
TreeNode node = getItem(entity);
|
||||
var childs = getChilds(entity, source);
|
||||
foreach (T child in childs)
|
||||
node.Nodes.Add(ConvertEntityToTreeNode(child, source, getChilds, getItem));
|
||||
return node;
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -118,6 +118,7 @@
|
||||
<HintPath>..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Design" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
@@ -295,6 +296,7 @@
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="TreeViewExtensions.cs" />
|
||||
<Compile Include="RTBItem.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace Volian.Print.Library
|
||||
{
|
||||
if (myContAct.MyChildren.Count > 0)
|
||||
if (myContAct.MyParagraph.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.ContinuousActionSummaryData.IncludeSectionNumAndTitle) // only print the section title if it has Continuous Action Steps
|
||||
AddSectionHeader(myContAct.MyParagraph.MyItemInfo.DisplayNumber, myContAct.MyParagraph.MyItemInfo.FormattedDisplayText);
|
||||
AddSectionHeader(myContAct.MyParagraph.MyItemInfo.DisplayNumber, myContAct.MyParagraph.MyItemInfo.FormattedDisplayText, myContAct.MyParagraph.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.ContinuousActionSummaryData.IncludeSectionLabel);
|
||||
foreach (pkParagraph pgh in myContAct.MyChildren) // within each section...
|
||||
{
|
||||
ItemInfo hlsii = GetHLSii(pgh.MyParagraph.MyItemInfo);
|
||||
@@ -175,7 +175,7 @@ namespace Volian.Print.Library
|
||||
WriteCell("DONE", true, true);
|
||||
WriteCell("PAGE", true, false);
|
||||
}
|
||||
private void AddSectionHeader(string number, string title)
|
||||
private void AddSectionHeader(string number, string title, bool IncludeSectionLabel)
|
||||
{
|
||||
if (!_FirstSection)
|
||||
{
|
||||
@@ -187,7 +187,10 @@ namespace Volian.Print.Library
|
||||
_FirstSection = false;
|
||||
Advance(2);
|
||||
SetIndent(0, 0);
|
||||
if (IncludeSectionLabel)
|
||||
WriteCell("SECTION " + number, true, false);
|
||||
else
|
||||
WriteCell(number, true, false); // F2025-038 don't include the word SECTION before number and title
|
||||
WriteCell(" " + title, false, true);
|
||||
Advance();
|
||||
}
|
||||
|
||||
@@ -6456,8 +6456,11 @@ namespace Volian.Print.Library
|
||||
{
|
||||
if (itemInfo.MyDocStyle.AlignHLSTabWithSect || itemInfo.FormatStepData.AlignHLSTabWithSectOvride)
|
||||
{
|
||||
float orgXOffset = MyTab.XOffset;
|
||||
myTab.XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos;
|
||||
XOffset = myTab.XOffset + myTab.Width;
|
||||
// F2025-040 Adjust the Cont Act box position around HLS number
|
||||
if (myTab.MyMacro != null) myTab.MyMacro.XOffset += (MyTab.XOffset - orgXOffset);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user