Development #212

Merged
djankowski merged 23 commits from Development into master 2024-01-24 11:30:40 -05:00
45 changed files with 1765 additions and 1622 deletions

View File

@ -126,6 +126,7 @@
<Content Include="fmtall\BVPSAOPall.xml" /> <Content Include="fmtall\BVPSAOPall.xml" />
<Content Include="fmtall\BVPSAtchall.xml" /> <Content Include="fmtall\BVPSAtchall.xml" />
<Content Include="fmtall\BVPSBCKall.xml" /> <Content Include="fmtall\BVPSBCKall.xml" />
<Content Include="fmtall\BVPSFlexDEVall.xml" />
<Content Include="fmtall\BVPSDEVall.xml" /> <Content Include="fmtall\BVPSDEVall.xml" />
<Content Include="fmtall\BVPSNIBCKall.xml" /> <Content Include="fmtall\BVPSNIBCKall.xml" />
<Content Include="fmtall\BVPSSAMGall.xml" /> <Content Include="fmtall\BVPSSAMGall.xml" />
@ -405,6 +406,7 @@
<Content Include="genmacall\BVPSAOP.svg" /> <Content Include="genmacall\BVPSAOP.svg" />
<Content Include="genmacall\BVPSAtch.svg" /> <Content Include="genmacall\BVPSAtch.svg" />
<Content Include="genmacall\BVPSbck.svg" /> <Content Include="genmacall\BVPSbck.svg" />
<Content Include="genmacall\BVPSFlexdev.svg" />
<Content Include="genmacall\BVPSdev.svg" /> <Content Include="genmacall\BVPSdev.svg" />
<Content Include="genmacall\BVPSNIBCK.svg" /> <Content Include="genmacall\BVPSNIBCK.svg" />
<Content Include="genmacall\BVPSSAMG.svg" /> <Content Include="genmacall\BVPSSAMG.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.

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.

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,6 @@ using DescriptiveEnum;
using Volian.Base.Library; using Volian.Base.Library;
using Volian.Print.Library; using Volian.Print.Library;
using JR.Utils.GUI.Forms; using JR.Utils.GUI.Forms;
using System.Diagnostics;
[assembly: log4net.Config.XmlConfigurator(Watch = true)] [assembly: log4net.Config.XmlConfigurator(Watch = true)]
@ -45,7 +44,7 @@ namespace VEPROMS
public FindReplace dlgFindReplace = null; public FindReplace dlgFindReplace = null;
public VlnSpellCheck SpellChecker = null; public VlnSpellCheck SpellChecker = null;
private Int64 _LastContentChange; private Int64 _LastContentChange;
public Int64 LastContentChange public Int64 LastContentChange
{ {
get { return _LastContentChange; } get { return _LastContentChange; }
@ -88,6 +87,8 @@ namespace VEPROMS
// multiple events because the print dialog will be displayed for each time the event was added. // multiple events because the print dialog will be displayed for each time the event was added.
_SelectedStepTabPanel.MyStepTabRibbon.PrintRequest -= new StepTabRibbonEvent(MyStepTabRibbon_PrintRequest); _SelectedStepTabPanel.MyStepTabRibbon.PrintRequest -= new StepTabRibbonEvent(MyStepTabRibbon_PrintRequest);
_SelectedStepTabPanel.MyStepTabRibbon.PrintRequest += new StepTabRibbonEvent(MyStepTabRibbon_PrintRequest); _SelectedStepTabPanel.MyStepTabRibbon.PrintRequest += new StepTabRibbonEvent(MyStepTabRibbon_PrintRequest);
_SelectedStepTabPanel.MyStepTabRibbon.QPrintRequest -= new StepTabRibbonEvent(MyStepTabRibbon_QPrintRequest);
_SelectedStepTabPanel.MyStepTabRibbon.QPrintRequest += new StepTabRibbonEvent(MyStepTabRibbon_QPrintRequest);
_SelectedStepTabPanel.MyStepTabRibbon.ProgressBar = bottomProgBar; _SelectedStepTabPanel.MyStepTabRibbon.ProgressBar = bottomProgBar;
_SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest -= MyStepTabRibbon_ContActionSummaryRequest; _SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest -= MyStepTabRibbon_ContActionSummaryRequest;
_SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest += MyStepTabRibbon_ContActionSummaryRequest; _SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest += MyStepTabRibbon_ContActionSummaryRequest;
@ -1154,7 +1155,7 @@ namespace VEPROMS
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
} }
void tv_QPrintProcedure(object sender, vlnTreeEventArgs args) // Quick Print void tv_QPrintProcedure(object sender, vlnTreeEventArgs args) // Quick Print right click menu on Procedure name.
{ {
try try
{ {
@ -1408,14 +1409,75 @@ namespace VEPROMS
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit //added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave; pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave;
try
DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi); {
prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; //added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi))
prnDlg.MySessionInfo = MySessionInfo; {
prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; //added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
}
}
catch (Exception ex)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Could not create PDF Print");
sb.AppendLine();
MessageBox.Show(sb.ToString(), "Error when creating PDF Print", MessageBoxButtons.OK, MessageBoxIcon.Warning);
_MyLog.Warn("Failed to create PDF print", ex);
}
}
void MyStepTabRibbon_QPrintRequest(object sender, StepTabRibbonEventArgs args)
{
// Fix for B2013-173:
// if the user did the print by using the shortcut keys 'Ctrl-P' the arguments sent in
// is the first opened procedure rather than the active procedure. So check for this
// and if they are not the same, use the CurrentItem from the main frmVEPROMS.
ProcedureInfo piThis = null;
if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure;
ProcedureInfo pi = args.Proc as ProcedureInfo;
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
// Check if Procedure Info is null
if (pi == null) return;
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit //added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave;
try
{
using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi))
{
prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; //added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SetupForProcedure(); // Setup filename
//prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
prnDlg.QPCreatePDF(); // Create Print report
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
}
}
catch (Exception ex)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Could not create PDF Print");
sb.AppendLine();
MessageBox.Show(sb.ToString(), "Error when creating PDF Print", MessageBoxButtons.OK, MessageBoxIcon.Warning);
_MyLog.Warn("Failed to create PDF print", ex);
}
} }
void displaySearch1_PrintRequest(object sender, DisplaySearchEventArgs args) void displaySearch1_PrintRequest(object sender, DisplaySearchEventArgs args)
@ -4897,26 +4959,11 @@ namespace VEPROMS
_MyLog.Error(str, ex); _MyLog.Error(str, ex);
} }
} }
}
private void btnShowErrFld_Click(object sender, EventArgs e) #region (Lock stuff / used for multi-user support)
{
string path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
path = path + @"\Documents\VEPROMS";
if (Directory.Exists(path))
{
Process.Start("explorer.exe", path);
}
}
private void btnHelp_Click(object sender, EventArgs e) public class TabItemsToClose : Stack<DisplayTabItem>
{
}
}
#region (Lock stuff / used for multi-user support)
public class TabItemsToClose : Stack<DisplayTabItem>
{ {
public void PushDTI(DisplayTabItem dti) public void PushDTI(DisplayTabItem dti)
{ {

View File

@ -188,11 +188,6 @@
llg/yF+gIjK+CZq8XgAAAABJRU5ErkJggg== llg/yF+gIjK+CZq8XgAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="btnShowErrFld.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAANUlEQVR4nGNgoBR8ahL8jw1/bBTooMiAT8Qa8gmPAUQZ8n+Z3n9KMMOoAf9Hw0CPCmEw4AAA71z+QhwwNhoAAAAASUVORK5CYII=
</value>
</data>
<data name="office2007StartButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="office2007StartButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
R0lGODlhGwAVAIcAANmsrP7+/tqtrdmrq9Wjo9uwsNmtrf79/dSgoP/+/tShodalpdqsrN20tN64uNqv R0lGODlhGwAVAIcAANmsrP7+/tqtrdmrq9Wjo9uwsNmtrf79/dSgoP/+/tShodalpdqsrN20tN64uNqv
@ -455,7 +450,7 @@
<value>164, 17</value> <value>164, 17</value>
</metadata> </metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value> <value>64</value>
</metadata> </metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>

View File

@ -1533,9 +1533,13 @@ namespace VEPROMS.CSLA.Library
return myGrp; return myGrp;
} }
// B2024-001: Loading of Ros was getting called over and over when ROs are in tables. Added
// a flag to only process once until completed, 'currentlyLoading'.
static bool currentlyLoading = false;
private void Load(int rofstID) private void Load(int rofstID)
{ {
if (currentlyLoading) return; // B2024-001: don't load if in process of loading
currentlyLoading = true;
_dicRoCounts = new Dictionary<int, int>(); _dicRoCounts = new Dictionary<int, int>();
DateTime dtStart = DateTime.Now; DateTime dtStart = DateTime.Now;
@ -1631,6 +1635,7 @@ namespace VEPROMS.CSLA.Library
} }
catch { } catch { }
} }
currentlyLoading = false; // B2024-001: done loading
} }
private void LoadChild(int rofstID, int dbiID, ROFSTLookup.rochild child) private void LoadChild(int rofstID, int dbiID, ROFSTLookup.rochild child)

View File

@ -711,6 +711,11 @@ namespace VEPROMS.CSLA.Library
else else
newvalue = newvalue.Replace(@"\u9586?", m.Groups[1].Value + @"\u9586?" + m.Groups[3].Value); newvalue = newvalue.Replace(@"\u9586?", m.Groups[1].Value + @"\u9586?" + m.Groups[3].Value);
} }
// B2022-134: crash when updating an RO that contains '<' or '>' when RO is used in a table cell. These
// are xml special characters, the grid is stored as xml, so these characters need translated so that
// storing them as xml in the database won't crash. They get translated back when used in Proms.
if (newvalue.Contains("<")) newvalue = newvalue.Replace("<", "&lt;");
if (newvalue.Contains(">")) newvalue = newvalue.Replace(">", "&gt;");
if (gg != newvalue) if (gg != newvalue)
{ {
retval = gg; retval = gg;

View File

@ -4223,6 +4223,14 @@ namespace VEPROMS.CSLA.Library
((IsHigh && FormatStepData.PageBreakOnStep) || (IsRNOPart && MyHLS.FormatStepData.PageBreakOnStep))) ((IsHigh && FormatStepData.PageBreakOnStep) || (IsRNOPart && MyHLS.FormatStepData.PageBreakOnStep)))
tbformate = IsRNOPart ? MyHLS.FormatStepData.TabData.RNOIdentEdit : FormatStepData.TabData.IdentEdit; tbformate = IsRNOPart ? MyHLS.FormatStepData.TabData.RNOIdentEdit : FormatStepData.TabData.IdentEdit;
//F2023-112 Vogtle Units 3 and 4 Backgrounds
// added code to get the tbformate (this is used for the tab displayed in the step editor) for Cautions and Notes background steps
// like we do for the high level steps (see the if statement above)
// all plants using enhanced backgrounds will benefit from this and is adjustable in the format files
if (((ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds) &&
((IsCaution || IsNote) && FormatStepData.PageBreakOnStep))
tbformate = IsRNOPart ? FormatStepData.TabData.RNOIdentEdit : FormatStepData.TabData.IdentEdit;
if (ActiveFormat.Name.ToUpper() == "WCNCKL" || ActiveFormat.Name.ToUpper() == "WSTCKL") if (ActiveFormat.Name.ToUpper() == "WCNCKL" || ActiveFormat.Name.ToUpper() == "WSTCKL")
{ {
if (!IsNote && !IsCaution) tbformat = FormatStepData.TabData.IdentEdit; if (!IsNote && !IsCaution) tbformat = FormatStepData.TabData.IdentEdit;
@ -4237,15 +4245,23 @@ namespace VEPROMS.CSLA.Library
{ {
string tb = (LinkedOrdinal==null)? "NA" : LinkedOrdinal.ToString(); string tb = (LinkedOrdinal==null)? "NA" : LinkedOrdinal.ToString();
tbformat = tbformat.Replace("{LNK C/N Num}", tb); tbformat = tbformat.Replace("{LNK C/N Num}", tb);
if (tbformate != null) tbformate = tbformate.Replace("{LNK C/N Num}", tb);
if ((ActiveParent as ItemInfo).FormatStepData.TabData.IdentEdit.Contains("{Section Prefix}") && LinkedTabHasSectionPrefix) // B2019-126 Check the HLS of the source document (ex. EOP step) to see if it includes the section number prefix in its tab if ((ActiveParent as ItemInfo).FormatStepData.TabData.IdentEdit.Contains("{Section Prefix}") && LinkedTabHasSectionPrefix) // B2019-126 Check the HLS of the source document (ex. EOP step) to see if it includes the section number prefix in its tab
tbformat = tbformat.Replace("{Section Prefix}",""); // B2018-141 remove duplicate section number {
tbformat = tbformat.Replace("{Section Prefix}", ""); // B2018-141 remove duplicate section number
if (tbformate != null) tbformate = tbformate.Replace("{Section Prefix}", ""); // F2023-112 replace in editor tab
}
if ((ActiveParent as ItemInfo).LinkedTab != null) if ((ActiveParent as ItemInfo).LinkedTab != null)
tbformat = tbformat.Replace("{LNK Step Num}", (ActiveParent as ItemInfo).LinkedTab.Trim(" .".ToCharArray())); //(ActiveParent as ItemInfo).Ordinal.ToString()); {
tbformat = tbformat.Replace("{LNK Step Num}", (ActiveParent as ItemInfo).LinkedTab.Trim(" .".ToCharArray()));
if (tbformate != null) tbformate = tbformate.Replace("{LNK Step Num}", (ActiveParent as ItemInfo).LinkedTab.Trim(" .".ToCharArray())); // F2023-112 replace in editor tab
}
tbformat = tbformat.TrimStart(" ".ToCharArray()); tbformat = tbformat.TrimStart(" ".ToCharArray());
if (tbformate != null) tbformate = tbformate.TrimStart(" ".ToCharArray()); // F2023-112 replace in editor tab
} }
if (tbformat.Contains("{LNK Step Num}")) if (tbformat.Contains("{LNK Step Num}"))
tbformat = tbformat.Replace("{LNK Step Num}", LinkedTab==null?"NA":LinkedTab.Trim(" .".ToCharArray()).PadLeft(2));//Ordinal.ToString().PadLeft(2)); tbformat = tbformat.Replace("{LNK Step Num}", LinkedTab==null?"NA":LinkedTab.Trim(" .".ToCharArray()).PadLeft(2));//Ordinal.ToString().PadLeft(2));
if (tbformate != null && tbformate.Contains("{LNK Step Num}")) if (tbformate != null && tbformate.Contains("{LNK Step Num}")) // F2023-112 replace in editor tab
tbformate = tbformate.Replace("{LNK Step Num}", LinkedTab == null ? "NA" : LinkedTab.Trim(" .".ToCharArray()).PadLeft(2));//Ordinal.ToString()); tbformate = tbformate.Replace("{LNK Step Num}", LinkedTab == null ? "NA" : LinkedTab.Trim(" .".ToCharArray()).PadLeft(2));//Ordinal.ToString());
if (tbformate != null && tbformate.Contains("{!Clock}")) if (tbformate != null && tbformate.Contains("{!Clock}"))
{ {

View File

@ -202,6 +202,15 @@ namespace VEPROMS.CSLA.Library
return LazyLoad(ref _TextColor, "@TextColor"); return LazyLoad(ref _TextColor, "@TextColor");
} }
} }
// F2023-112 Vogtle Units 3 & Backgrounds - trim the ending "-B" from the procedure number (used in title box of page header)
private LazyLoad<string> _TrimEnding;
public string TrimEnding
{
get
{
return LazyLoad(ref _TrimEnding, "@TrimEnding");
}
}
#endregion #endregion
#region Override ToString #region Override ToString
public override string ToString() public override string ToString()

View File

@ -1029,10 +1029,23 @@ namespace Volian.Controls.Library
// OpenEnhancedDocument(this, args); // OpenEnhancedDocument(this, args);
//} //}
public event StepTabRibbonEvent PrintRequest; public event StepTabRibbonEvent PrintRequest;
private void OnPrintRequest(StepTabRibbonEventArgs args) public event StepTabRibbonEvent QPrintRequest;
private void OnPrintRequest(StepTabRibbonEventArgs args, int prttyp = 0)
{ {
if (PrintRequest != null) if (PrintRequest != null) {
PrintRequest(this, args); if (prttyp == 0)
{
PrintRequest(this, args);
}
}
if (QPrintRequest != null)
{
if (prttyp == 1)
{
QPrintRequest(this, args);
}
}
} }
public event StepTabRibbonEvent ContActionSummaryRequest; public event StepTabRibbonEvent ContActionSummaryRequest;
private void OnContActionSummaryRequest(StepTabRibbonEventArgs args) private void OnContActionSummaryRequest(StepTabRibbonEventArgs args)
@ -1947,7 +1960,7 @@ namespace Volian.Controls.Library
rtabChgId.Visible = MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds; rtabChgId.Visible = MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds;
} }
#region submenu for printing child procedures #region submenu for printing child procedures
// C2020-013 add unit (child) submenu to create PDF and create CAS buttons // C2020-013 add unit (child) submenu to create PDF and create CAS buttons
private void miMultiUnit_Click(object sender, EventArgs e) private void miMultiUnit_Click(object sender, EventArgs e)
{ {
@ -1956,12 +1969,16 @@ namespace Volian.Controls.Library
DevComponents.DotNetBar.ButtonItem mip = mi.Parent as DevComponents.DotNetBar.ButtonItem; DevComponents.DotNetBar.ButtonItem mip = mi.Parent as DevComponents.DotNetBar.ButtonItem;
int selectedChild = (int)mi.Tag; int selectedChild = (int)mi.Tag;
if (selectedChild == 0) return; // unit (child) not selected if (selectedChild == 0) return; // unit (child) not selected
MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = (int) mi.Tag; MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = (int) mi.Tag;
switch (mip.Text) switch (mip.Text)
{ {
case "Create": case "Create":
btnPdfCreate_Click(sender, e); btnPdfCreate_Click(sender, e);
break; break;
case "Quick\r\nPrint":
btnPdfQuickCreate_Click(sender, e);
break;
case "Cont. Act\r\nSummary": case "Cont. Act\r\nSummary":
btnCASCreate_Click(sender, e); btnCASCreate_Click(sender, e);
break; break;
@ -1973,6 +1990,9 @@ namespace Volian.Controls.Library
btnPdfCreate.SubItems.Clear(); btnPdfCreate.SubItems.Clear();
btnPdfCreate.Tag = null; btnPdfCreate.Tag = null;
btnPdfCreate.Click -= new System.EventHandler(btnPdfCreate_Click); btnPdfCreate.Click -= new System.EventHandler(btnPdfCreate_Click);
btnPdfQuickCreate.SubItems.Clear();
btnPdfQuickCreate.Tag = null;
btnPdfQuickCreate.Click -= new System.EventHandler(btnPdfQuickCreate_Click);
btnCASCreate.SubItems.Clear(); btnCASCreate.SubItems.Clear();
btnCASCreate.Tag = null; btnCASCreate.Tag = null;
btnCASCreate.Click -= new System.EventHandler(btnCASCreate_Click); btnCASCreate.Click -= new System.EventHandler(btnCASCreate_Click);
@ -1990,12 +2010,16 @@ namespace Volian.Controls.Library
btnPdfCreate.SubItems.Add(btn); btnPdfCreate.SubItems.Add(btn);
btn = MakeSubMenuButton(s, k, miMultiUnit_Click); btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
btn.Enabled = procAppl; btn.Enabled = procAppl;
btnPdfQuickCreate.SubItems.Add(btn);
btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
btn.Enabled = procAppl;
btnReviewCreatePDF.SubItems.Add(btn); btnReviewCreatePDF.SubItems.Add(btn);
btn = MakeSubMenuButton(s, k, miMultiUnit_Click); btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
btn.Enabled = procAppl; btn.Enabled = procAppl;
btnCASCreate.SubItems.Add(btn); btnCASCreate.SubItems.Add(btn);
} }
btnPdfCreate.AutoExpandOnClick = true; btnPdfCreate.AutoExpandOnClick = true;
btnPdfQuickCreate.AutoExpandOnClick = true;
btnReviewCreatePDF.AutoExpandOnClick = true; btnReviewCreatePDF.AutoExpandOnClick = true;
btnCASCreate.AutoExpandOnClick = true; btnCASCreate.AutoExpandOnClick = true;
} }
@ -4086,7 +4110,14 @@ namespace Volian.Controls.Library
{ {
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return; if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents(); if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure)); OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure), 0);
}
private void btnPdfQuickCreate_Click(object sender, EventArgs e)
{
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure), 1);
} }
private void btnCASCreate_Click(object sender, EventArgs e) private void btnCASCreate_Click(object sender, EventArgs e)

View File

@ -165,6 +165,50 @@
<metadata name="superTooltipRibbon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="superTooltipRibbon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<data name="btnPdfQuickCreate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="btnDelelete.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="btnDelelete.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6

View File

@ -569,9 +569,22 @@ namespace Volian.Print.Library
KeepStepsOnPage = false; KeepStepsOnPage = false;
} }
} }
// B2023-116: Vogtle alarm pagination - sub-steps are separating from their HLS even if there is room for some (not all). See comment above for setting of if (KeepStepsOnPage && ySizeIncludingFirst > (yWithinMargins - ySizeBtmCtnMess1 - ySizeBtmEndMess1))
// 'alarmPageKeepHighWithSubs'. {
if (KeepStepsOnPage && !alarmPageKeepHighWithSubs && ySizeIncludingFirst > (yWithinMargins - ySizeBtmCtnMess1 - ySizeBtmEndMess1)) KeepStepsOnPage = false; // B2023-116: Vogtle alarm pagination - sub-steps are separating from their HLS even if there is room for some (not all).
// See comment above for setting of 'alarmPageKeepHighWithSubs'.
if (alarmPageKeepHighWithSubs)
{
// F2024-006: Vogtle Alarms pagination - compare the size of the step and its first sub-step with what we think we have left on the
// page. if not enough room with a continue message then set KeepStepsOnPage to start this step on its own page.
// This solved an issue where the last line of step text was printing on top of the bottom continue message
float myFirstPieceSize = GetFirstPieceSize(true);
if (myFirstPieceSize > yWithinMargins)
KeepStepsOnPage = false;
}
else
KeepStepsOnPage = false;
}
if (!KeepWithHeader && !KeepStepsOnPage && mySize - SixLinesPerInch + yEndMsg - tableSpaceAvailable <= yPageSizeNextPage) // if the entire step can fit on one page, do a page break if (!KeepWithHeader && !KeepStepsOnPage && mySize - SixLinesPerInch + yEndMsg - tableSpaceAvailable <= yPageSizeNextPage) // if the entire step can fit on one page, do a page break
{ {
// Don't want extra line before step // Don't want extra line before step

View File

@ -1934,8 +1934,6 @@ i = 0;
else else
eopnum = section.MyProcedure.DisplayNumber;// B2021-066: found and fixed during proc pc/pc work eopnum = section.MyProcedure.DisplayNumber;// B2021-066: found and fixed during proc pc/pc work
} }
} }
// B2022-066 the "{PREDELIMEOPNUM}" token was not being processed because there was a space after the "{" // B2022-066 the "{PREDELIMEOPNUM}" token was not being processed because there was a space after the "{"
if (token.Equals("{PREDELIMEOPNUM}")) if (token.Equals("{PREDELIMEOPNUM}"))
@ -1947,6 +1945,10 @@ i = 0;
if (idx < eopnum.Length) if (idx < eopnum.Length)
eopnum = eopnum.Substring(0, idx); eopnum = eopnum.Substring(0, idx);
} }
if (pageItem.TrimEnding != null)
eopnum = eopnum.TrimEnd(pageItem.TrimEnding.ToCharArray());
plstr = plstr.Replace(token, eopnum); plstr = plstr.Replace(token, eopnum);
//svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, eopnum))); //svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, eopnum)));
//svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, section.MyProcedure.MyContent.Number))); //svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, section.MyProcedure.MyContent.Number)));

View File

@ -3314,9 +3314,11 @@ namespace Volian.Print.Library
/// This gets the height of the step with it's Caution's, Notes and potentially any First Substeps /// This gets the height of the step with it's Caution's, Notes and potentially any First Substeps
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
private float GetFirstPieceSize() // F2024-006: Vogtle Alarms pagination - added 'includeFirstSub' to get that size of the first substep with the parent step
// to help determine pagination
private float GetFirstPieceSize(bool includeFirstSub = false)
{ {
vlnParagraph paraLast = GetFirstPieceLastPart(); vlnParagraph paraLast = GetFirstPieceLastPart(includeFirstSub);
float retval = (paraLast.YBottom) - YTopMost; float retval = (paraLast.YBottom) - YTopMost;
//Console.WriteLine(MyItemInfo.DBSequence); //Console.WriteLine(MyItemInfo.DBSequence);
return retval; return retval;
@ -3370,10 +3372,12 @@ namespace Volian.Print.Library
get { return _YBottomForBox; } get { return _YBottomForBox; }
set { _YBottomForBox = value; } set { _YBottomForBox = value; }
} }
private vlnParagraph GetFirstPieceLastPart() // F2024-006: Vogtle Alarms pagination - added 'includeFirstSub' to get that size of the first substep with the parent step
// to help determine pagination - even when PaginateOnFirstSubstep is turned on
private vlnParagraph GetFirstPieceLastPart(bool includeFirstSub = false)
{ {
vlnParagraph para = this; vlnParagraph para = this;
if (!MyItemInfo.ActiveFormat.MyStepSectionLayoutData.PaginateOnFirstSubstep && ChildrenBelow != null && ChildrenBelow.Count > 0) if ((!MyItemInfo.ActiveFormat.MyStepSectionLayoutData.PaginateOnFirstSubstep || includeFirstSub) && ChildrenBelow != null && ChildrenBelow.Count > 0)
{ {
// If the substep has a separator (OR, AND) then return the last substep rather than the first. // If the substep has a separator (OR, AND) then return the last substep rather than the first.
string mySep = ChildrenBelow[0].MyItemInfo.FormatStepData.Sep ?? "{Null}"; string mySep = ChildrenBelow[0].MyItemInfo.FormatStepData.Sep ?? "{Null}";
@ -3386,14 +3390,14 @@ namespace Volian.Print.Library
if (keepEqListTogether && !ChildrenBelow[0].MyItemInfo.IsSequential && !this.MyItemInfo.IsHigh) // Extend to the last Item. if (keepEqListTogether && !ChildrenBelow[0].MyItemInfo.IsSequential && !this.MyItemInfo.IsHigh) // Extend to the last Item.
para = ChildrenBelow[ChildrenBelow.Count - 1].GetFirstPieceLastPart(); para = ChildrenBelow[ChildrenBelow.Count - 1].GetFirstPieceLastPart();
else else
para = ChildrenBelow[0].GetFirstPieceLastPart(); para = ChildrenBelow[0].GetFirstPieceLastPart(includeFirstSub);
} }
} }
if (ChildrenRight != null && ChildrenRight.Count > 0) if (ChildrenRight != null && ChildrenRight.Count > 0)
{ {
foreach (vlnParagraph paraRight in ChildrenRight) foreach (vlnParagraph paraRight in ChildrenRight)
{ {
vlnParagraph paraRightLast = paraRight.GetFirstPieceLastPart(); vlnParagraph paraRightLast = paraRight.GetFirstPieceLastPart(includeFirstSub);
if (paraRightLast.YBottom > para.YBottom) if (paraRightLast.YBottom > para.YBottom)
para = paraRightLast; para = paraRightLast;
} }
@ -6612,7 +6616,7 @@ namespace Volian.Print.Library
int? bxIndx = itemInfo.IsStep ? itemInfo.FormatStepData.StepLayoutData.STBoxindex : null; int? bxIndx = itemInfo.IsStep ? itemInfo.FormatStepData.StepLayoutData.STBoxindex : null;
float? widOvrd = 0; float? widOvrd = 0;
float xwid = 0; float xwid = 0;
if (itemInfo.IsStep && itemInfo.MyHLS != null && UseTemplateWidthOrXOff(itemInfo) && (xwid = GetWidthOrStartFromTemplate(itemInfo, formatInfo, true)) > 0) if (itemInfo.IsStep && itemInfo.MyHLS != null && UseTemplateWidthOrXOff(itemInfo) && (xwid = GetWidthOrStartFromTemplate(itemInfo, formatInfo, true)) > 0)
widOvrd = xwid; widOvrd = xwid;
else else
widOvrd = itemInfo.FormatStepData == null ? null : itemInfo.FormatStepData.WidthOverride == null ? null : widOvrd = itemInfo.FormatStepData == null ? null : itemInfo.FormatStepData.WidthOverride == null ? null :
@ -6671,10 +6675,15 @@ namespace Volian.Print.Library
} }
if ((widOvrd ?? 0) != 0) if ((widOvrd ?? 0) != 0)
{ {
Width = (float)widOvrd; //F2023-112 Vogtle Units 3 & 4 Backgrounds. Don't use override width of paragraph when it's off of TitleWithTextRight
// if there's a box, we may need to do an adjustment on the width, if the tab data was changed // We need to allow the code to calculate the width of that paragraph for this case (later in this function)
// so don't return. if (!(itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.Vogtle3and4BackgroundFormat && itemInfo.MyParent.FormatStepData != null && itemInfo.MyParent.FormatStepData.Type == "TitleWithTextRight"))
if (bxIndx == null) return; {
Width = (float)widOvrd;
// if there's a box, we may need to do an adjustment on the width, if the tab data was changed
// so don't return.
if (bxIndx == null) return;
}
} }
float tabWidth = (myTab == null) ? 0 : myTab.Width; float tabWidth = (myTab == null) ? 0 : myTab.Width;
if (itemInfo.IsHigh) if (itemInfo.IsHigh)