Compare commits
50 Commits
09d1e93404
...
4a3d32960f
Author | SHA1 | Date | |
---|---|---|---|
4a3d32960f | |||
414c2239ee | |||
f71bd0da19 | |||
9b59810c89 | |||
82fa4f1e74 | |||
d59ef9118f | |||
3b3a542b24 | |||
d6f1f5fb0c | |||
a2ec9162be | |||
e2f9dbf1e2 | |||
3d6cbd9a6b | |||
35e4826dc4 | |||
5b985a3cbe | |||
1be087a279 | |||
4afac4b3df | |||
473a170983 | |||
87c4d13abe | |||
e1972763ae | |||
f09a29318c | |||
aa28de4ba8 | |||
8e4c42ac05 | |||
0a1c588625 | |||
a6e85a6cda | |||
077564cd3e | |||
b8807f2289 | |||
71cef595ca | |||
eb00324edf | |||
f0670905b3 | |||
e53cc2ab71 | |||
f02ca8bd86 | |||
27bbbdc9df | |||
bda5a54754 | |||
935e666b7f | |||
b1043cfec1 | |||
ad64675119 | |||
e670b3776b | |||
10c4974cdf | |||
b6cbb97d7d | |||
c25421ceb6 | |||
041e28b61b | |||
3ad6dea425 | |||
051805c76d | |||
3acdf1f6b4 | |||
4f8eaf2d9b | |||
e7298c5201 | |||
03cbaa055a | |||
389847c9ca | |||
140d7c72e0 | |||
8e682201d7 | |||
5e272075f8 |
@ -126,6 +126,7 @@
|
||||
<Content Include="fmtall\BVPSAOPall.xml" />
|
||||
<Content Include="fmtall\BVPSAtchall.xml" />
|
||||
<Content Include="fmtall\BVPSBCKall.xml" />
|
||||
<Content Include="fmtall\BVPSFlexDEVall.xml" />
|
||||
<Content Include="fmtall\BVPSDEVall.xml" />
|
||||
<Content Include="fmtall\BVPSNIBCKall.xml" />
|
||||
<Content Include="fmtall\BVPSSAMGall.xml" />
|
||||
@ -301,6 +302,7 @@
|
||||
<Content Include="fmtall\SHESAMall.xml" />
|
||||
<Content Include="fmtall\SHESSDall.xml" />
|
||||
<Content Include="fmtall\SHESSD_00all.xml" />
|
||||
<Content Include="fmtall\VEGPBckall.xml" />
|
||||
<Content Include="fmtall\VEGP1all.xml" />
|
||||
<Content Include="fmtall\VEGP2all.xml" />
|
||||
<Content Include="fmtall\VEGPAlrall.xml" />
|
||||
@ -376,7 +378,7 @@
|
||||
<Content Include="fmtall\wst1all.xml" />
|
||||
<Content Include="fmtall\wst2all.xml" />
|
||||
<Content Include="fmtall\wstalrall.xml" />
|
||||
<Content Include="fmtall\VEGPBckall.xml" />
|
||||
<Content Include="fmtall\VEGPBckStpsall.xml" />
|
||||
<Content Include="fmtall\wstbckall.xml" />
|
||||
<Content Include="fmtall\wstcklall.xml" />
|
||||
<Content Include="fmtall\wstdcsall.xml" />
|
||||
@ -404,6 +406,7 @@
|
||||
<Content Include="genmacall\BVPSAOP.svg" />
|
||||
<Content Include="genmacall\BVPSAtch.svg" />
|
||||
<Content Include="genmacall\BVPSbck.svg" />
|
||||
<Content Include="genmacall\BVPSFlexdev.svg" />
|
||||
<Content Include="genmacall\BVPSdev.svg" />
|
||||
<Content Include="genmacall\BVPSNIBCK.svg" />
|
||||
<Content Include="genmacall\BVPSSAMG.svg" />
|
||||
@ -512,6 +515,7 @@
|
||||
<Content Include="genmacall\shesam.svg" />
|
||||
<Content Include="genmacall\shessd.svg" />
|
||||
<Content Include="genmacall\VEGPBck.svg" />
|
||||
<Content Include="genmacall\VEGPBckStps.svg" />
|
||||
<Content Include="genmacall\VEGP1.svg" />
|
||||
<Content Include="genmacall\VEGP2.svg" />
|
||||
<Content Include="genmacall\VEGPAlr.svg" />
|
||||
|
BIN
PROMS/Formats/fmtall/BVPSFlexDEVall.xml
Normal file
BIN
PROMS/Formats/fmtall/BVPSFlexDEVall.xml
Normal file
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.
BIN
PROMS/Formats/fmtall/VEGPBckStpsall.xml
Normal file
BIN
PROMS/Formats/fmtall/VEGPBckStpsall.xml
Normal file
Binary file not shown.
Binary file not shown.
BIN
PROMS/Formats/genmacall/BVPSFlexdev.svg
Normal file
BIN
PROMS/Formats/genmacall/BVPSFlexdev.svg
Normal file
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.
BIN
PROMS/Formats/genmacall/VEGPBckStps.svg
Normal file
BIN
PROMS/Formats/genmacall/VEGPBckStps.svg
Normal file
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.
@ -1091,6 +1091,11 @@ namespace VEPROMS
|
||||
DoCreatePDF();
|
||||
}
|
||||
|
||||
public void QPCreatePDF()
|
||||
{
|
||||
DoCreatePDF();
|
||||
}
|
||||
|
||||
private void DoCreatePDF()
|
||||
{
|
||||
if (_AllProcedures)
|
||||
|
@ -87,6 +87,8 @@ namespace VEPROMS
|
||||
// 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.QPrintRequest -= new StepTabRibbonEvent(MyStepTabRibbon_QPrintRequest);
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.QPrintRequest += new StepTabRibbonEvent(MyStepTabRibbon_QPrintRequest);
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.ProgressBar = bottomProgBar;
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest -= MyStepTabRibbon_ContActionSummaryRequest;
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest += MyStepTabRibbon_ContActionSummaryRequest;
|
||||
@ -512,6 +514,7 @@ namespace VEPROMS
|
||||
ItemInfo.ItemDeleted += new ItemInfoEvent(RefreshDisplayHistory);
|
||||
|
||||
tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure);
|
||||
tv.QPrintProcedure += new vlnTreeViewEvent(tv_QPrintProcedure);
|
||||
tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures);
|
||||
tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure);
|
||||
tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures);
|
||||
@ -1152,6 +1155,40 @@ namespace VEPROMS
|
||||
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||
}
|
||||
|
||||
void tv_QPrintProcedure(object sender, vlnTreeEventArgs args) // Quick Print right click menu on Procedure name.
|
||||
{
|
||||
try
|
||||
{
|
||||
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
|
||||
if (pi == null) return;
|
||||
|
||||
tc.SaveCurrentEditItem(pi);
|
||||
|
||||
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
|
||||
|
||||
using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi))
|
||||
{
|
||||
prnDlg.SelectedSlave = args.UnitIndex;
|
||||
prnDlg.MySessionInfo = MySessionInfo;
|
||||
prnDlg.SetupForProcedure(); // Setup filename
|
||||
prnDlg.QPCreatePDF(); // Create Print report
|
||||
|
||||
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 tv_CreateContinuousActionSummary(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
DialogResult dr = System.Windows.Forms.DialogResult.Yes;
|
||||
@ -1372,8 +1409,10 @@ namespace VEPROMS
|
||||
|
||||
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
|
||||
pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave;
|
||||
|
||||
DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi);
|
||||
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.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window
|
||||
@ -1381,6 +1420,65 @@ namespace VEPROMS
|
||||
//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
|
||||
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)
|
||||
{
|
||||
|
@ -1533,9 +1533,13 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
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)
|
||||
{
|
||||
if (currentlyLoading) return; // B2024-001: don't load if in process of loading
|
||||
currentlyLoading = true;
|
||||
_dicRoCounts = new Dictionary<int, int>();
|
||||
|
||||
DateTime dtStart = DateTime.Now;
|
||||
@ -1631,6 +1635,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
currentlyLoading = false; // B2024-001: done loading
|
||||
}
|
||||
|
||||
private void LoadChild(int rofstID, int dbiID, ROFSTLookup.rochild child)
|
||||
|
@ -711,6 +711,11 @@ namespace VEPROMS.CSLA.Library
|
||||
else
|
||||
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("<", "<");
|
||||
if (newvalue.Contains(">")) newvalue = newvalue.Replace(">", ">");
|
||||
if (gg != newvalue)
|
||||
{
|
||||
retval = gg;
|
||||
|
@ -4104,7 +4104,7 @@ namespace VEPROMS.CSLA.Library
|
||||
ItemInfo srcItem = ItemInfo.Get(eds[0].ItemID);
|
||||
if (srcItem == null) return null;
|
||||
|
||||
if (srcItem.IsHigh) return srcItem.Ordinal;
|
||||
if (srcItem.IsHigh || srcItem.IsSection || srcItem.IsProcedure) return srcItem.Ordinal;
|
||||
// B2018-118: the LinkedOrdinal count must take into account cautions versus notes types:
|
||||
ItemInfo hls = srcItem.MyHLS;
|
||||
bool enIsCaution = this.IsCaution;
|
||||
@ -4223,6 +4223,14 @@ namespace VEPROMS.CSLA.Library
|
||||
((IsHigh && FormatStepData.PageBreakOnStep) || (IsRNOPart && MyHLS.FormatStepData.PageBreakOnStep)))
|
||||
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 (!IsNote && !IsCaution) tbformat = FormatStepData.TabData.IdentEdit;
|
||||
@ -4237,15 +4245,23 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
string tb = (LinkedOrdinal==null)? "NA" : LinkedOrdinal.ToString();
|
||||
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
|
||||
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)
|
||||
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());
|
||||
if (tbformate != null) tbformate = tbformate.TrimStart(" ".ToCharArray()); // F2023-112 replace in editor tab
|
||||
}
|
||||
if (tbformat.Contains("{LNK Step Num}"))
|
||||
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());
|
||||
if (tbformate != null && tbformate.Contains("{!Clock}"))
|
||||
{
|
||||
@ -4972,7 +4988,8 @@ namespace VEPROMS.CSLA.Library
|
||||
// Otherwise, just return the section tab.
|
||||
// Before checking for anything, if the DisplayNumber starts with 'ATTACHMENT ', don't use that in the Section
|
||||
// prefix for the tabstring.
|
||||
string attNum = ActiveSection.DisplayNumber.ToUpper().StartsWith("ATTACHMENT ") ? ActiveSection.DisplayNumber.Substring(11) : ActiveSection.DisplayNumber;
|
||||
// F2023-112 - added flag to use entire section number in the step tab - Vogtle 3&4 Background format (VEGPBckStp)
|
||||
string attNum = (ActiveSection.DisplayNumber.ToUpper().StartsWith("ATTACHMENT ") && !FormatStepData.TabData.UseEntireSectionNum) ? ActiveSection.DisplayNumber.Substring(11) : ActiveSection.DisplayNumber;
|
||||
Match m = Regex.Match(attNum, @"[a-zA-Z]"); // for alpha, use non-touched displaynumber
|
||||
int indx = -1;
|
||||
if (m.Success)
|
||||
|
@ -172,6 +172,7 @@ namespace VEPROMS.CSLA.Library
|
||||
DSS_WordContentLandscaped = 0x800000000, // for this section, the word content is landscaped.
|
||||
DSS_ChklstEditSize = 0x100000000, // Westinghouse checklist - edit window size
|
||||
DSS_SameXOffSubsections = 0x2000000000, // print subsections at same offset as section & preceeding subsections,start HLS xoff at section text (not number)
|
||||
DSS_PageListBkgndStpContMsg = 0x4000000000, // Background Step Number printed via Pagelist with "{CM:(Cont)}" which will print "(cont)" next to step number if it's continued to the next page - (VEGPBckStp) F2023-112
|
||||
};
|
||||
public enum E_DocStyleUse : uint
|
||||
{
|
||||
|
@ -202,6 +202,15 @@ namespace VEPROMS.CSLA.Library
|
||||
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
|
||||
#region Override ToString
|
||||
public override string ToString()
|
||||
|
@ -1458,6 +1458,14 @@ namespace VEPROMS.CSLA.Library
|
||||
return LazyLoad(ref _NoBlankLastNoteCautionWarn, "@NoBlankLastNoteCautionWarn");
|
||||
}
|
||||
}
|
||||
private LazyLoad<bool> _NoteCautionCenterOneAllTypes; // F2023-126: Vogtle Alarms - center single line caution/note if more than one type exist off step
|
||||
public bool NoteCautionCenterOneAllTypes
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _NoteCautionCenterOneAllTypes, "@NoteCautionCenterOneAllTypes");
|
||||
}
|
||||
}
|
||||
private LazyLoad<bool> _ChkBoxToGeneratePointListText; // C2021-063 Barakah Alarm: check box to generate Alarm Point List Text
|
||||
public bool ChkBoxToGeneratePointListText
|
||||
{
|
||||
@ -3182,6 +3190,14 @@ namespace VEPROMS.CSLA.Library
|
||||
return LazyLoad(ref _WolfcreekCKLBackgndFormat, "@WolfcreekCKLBackgndFormat");
|
||||
}
|
||||
}
|
||||
private LazyLoad<bool> _Vogtle3and4BackgroundFormat;
|
||||
public bool Vogtle3and4BackgroundFormat
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _Vogtle3and4BackgroundFormat, "@Vogtle3and4BackgroundFormat");
|
||||
}
|
||||
}
|
||||
private LazyLoad<bool> _FortranFormatNumbers;
|
||||
public bool FortranFormatNumbers
|
||||
{
|
||||
@ -6611,6 +6627,14 @@ namespace VEPROMS.CSLA.Library
|
||||
return LazyLoad(ref _NoTrim, "TabData/@NoTrim");
|
||||
}
|
||||
}
|
||||
private LazyLoad<bool> _UseEntireSectionNum;
|
||||
public bool UseEntireSectionNum
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _UseEntireSectionNum, "TabData/@UseEntireSectionNum");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
@ -1029,11 +1029,24 @@ namespace Volian.Controls.Library
|
||||
// OpenEnhancedDocument(this, args);
|
||||
//}
|
||||
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 (prttyp == 0)
|
||||
{
|
||||
if (PrintRequest != null)
|
||||
PrintRequest(this, args);
|
||||
}
|
||||
}
|
||||
|
||||
if (QPrintRequest != null)
|
||||
{
|
||||
if (prttyp == 1)
|
||||
{
|
||||
QPrintRequest(this, args);
|
||||
}
|
||||
}
|
||||
}
|
||||
public event StepTabRibbonEvent ContActionSummaryRequest;
|
||||
private void OnContActionSummaryRequest(StepTabRibbonEventArgs args)
|
||||
{
|
||||
@ -1947,7 +1960,7 @@ namespace Volian.Controls.Library
|
||||
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
|
||||
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;
|
||||
int selectedChild = (int)mi.Tag;
|
||||
if (selectedChild == 0) return; // unit (child) not selected
|
||||
|
||||
MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = (int) mi.Tag;
|
||||
switch (mip.Text)
|
||||
{
|
||||
case "Create":
|
||||
btnPdfCreate_Click(sender, e);
|
||||
break;
|
||||
case "Quick\r\nPrint":
|
||||
btnPdfQuickCreate_Click(sender, e);
|
||||
break;
|
||||
case "Cont. Act\r\nSummary":
|
||||
btnCASCreate_Click(sender, e);
|
||||
break;
|
||||
@ -1973,6 +1990,9 @@ namespace Volian.Controls.Library
|
||||
btnPdfCreate.SubItems.Clear();
|
||||
btnPdfCreate.Tag = null;
|
||||
btnPdfCreate.Click -= new System.EventHandler(btnPdfCreate_Click);
|
||||
btnPdfQuickCreate.SubItems.Clear();
|
||||
btnPdfQuickCreate.Tag = null;
|
||||
btnPdfQuickCreate.Click -= new System.EventHandler(btnPdfQuickCreate_Click);
|
||||
btnCASCreate.SubItems.Clear();
|
||||
btnCASCreate.Tag = null;
|
||||
btnCASCreate.Click -= new System.EventHandler(btnCASCreate_Click);
|
||||
@ -1990,12 +2010,16 @@ namespace Volian.Controls.Library
|
||||
btnPdfCreate.SubItems.Add(btn);
|
||||
btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
|
||||
btn.Enabled = procAppl;
|
||||
btnPdfQuickCreate.SubItems.Add(btn);
|
||||
btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
|
||||
btn.Enabled = procAppl;
|
||||
btnReviewCreatePDF.SubItems.Add(btn);
|
||||
btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
|
||||
btn.Enabled = procAppl;
|
||||
btnCASCreate.SubItems.Add(btn);
|
||||
}
|
||||
btnPdfCreate.AutoExpandOnClick = true;
|
||||
btnPdfQuickCreate.AutoExpandOnClick = true;
|
||||
btnReviewCreatePDF.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 (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)
|
||||
|
BIN
PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs
generated
BIN
PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs
generated
Binary file not shown.
@ -165,6 +165,50 @@
|
||||
<metadata name="superTooltipRibbon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</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">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||
|
@ -501,6 +501,11 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
if (PrintProcedure != null) PrintProcedure(sender, args);
|
||||
}
|
||||
public event vlnTreeViewEvent QPrintProcedure;
|
||||
private void OnQPrintProcedure(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
if (QPrintProcedure != null) QPrintProcedure(sender, args);
|
||||
}
|
||||
public event vlnTreeViewEvent PrintAllProcedures;
|
||||
private void OnPrintAllProcedures(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
@ -831,6 +836,7 @@ namespace Volian.Controls.Library
|
||||
MenuItem micas = new MenuItem("Create Continuous Action Summary");
|
||||
MenuItem mitcas = new MenuItem("Create Time Critical Action Summary"); //F2022-024 added menu option
|
||||
MenuItem mip = new MenuItem("Print");
|
||||
MenuItem miqp = new MenuItem("Quick Print");
|
||||
MenuItem mia = new MenuItem("Approve");
|
||||
int k = 0;
|
||||
foreach (string s in pri.MyDocVersion.UnitNames)
|
||||
@ -841,6 +847,9 @@ namespace Volian.Controls.Library
|
||||
MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
mp.Enabled = procAppl;
|
||||
mp.Tag = k;
|
||||
MenuItem mqp = miqp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
mqp.Enabled = procAppl;
|
||||
mqp.Tag = k;
|
||||
MenuItem ma = mia.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
ma.Enabled = procAppl;
|
||||
ma.Tag = k;
|
||||
@ -854,6 +863,7 @@ namespace Volian.Controls.Library
|
||||
cm.MenuItems.Add(micas);
|
||||
cm.MenuItems.Add(mitcas);
|
||||
cm.MenuItems.Add(mip);
|
||||
cm.MenuItems.Add(miqp);
|
||||
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
||||
cm.MenuItems.Add(mia);
|
||||
AddApprovedRevisionsMultiUnit(cm.MenuItems, pri);
|
||||
@ -863,6 +873,8 @@ namespace Volian.Controls.Library
|
||||
cm.MenuItems.Add("Create Continuous Action Summary", new EventHandler(mi_Click));
|
||||
cm.MenuItems.Add("Create Time Critical Action Summary", new EventHandler(mi_Click));
|
||||
cm.MenuItems.Add("Print", new EventHandler(mi_Click));
|
||||
cm.MenuItems.Add("Quick Print", new EventHandler(mi_Click));
|
||||
//MenuItem miqp = new MenuItem("Print");
|
||||
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
||||
cm.MenuItems.Add("Approve", new EventHandler(mi_Click));
|
||||
//_MyLog.WarnFormat("Context Menu 1 before - {0}", GC.GetTotalMemory(true));
|
||||
@ -877,19 +889,24 @@ namespace Volian.Controls.Library
|
||||
if (pri.MyDocVersion.MultiUnitCount > 1)
|
||||
{
|
||||
MenuItem mip = new MenuItem("Print");
|
||||
MenuItem miqp = new MenuItem("Quick Print");
|
||||
int k = 0;
|
||||
foreach (string s in pri.MyDocVersion.UnitNames)
|
||||
{
|
||||
k++;
|
||||
MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
mp.Tag = k;
|
||||
MenuItem mqp = miqp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
|
||||
mqp.Tag = k;
|
||||
}
|
||||
cm.MenuItems.Add(mip);
|
||||
cm.MenuItems.Add(miqp);
|
||||
AddApprovedRevisionsMultiUnit(cm.MenuItems, pri);
|
||||
}
|
||||
else
|
||||
{
|
||||
cm.MenuItems.Add("Print", new EventHandler(mi_Click));
|
||||
cm.MenuItems.Add("Quick Print", new EventHandler(mi_Click));
|
||||
AddApprovedRevisions(cm.MenuItems, pri);
|
||||
}
|
||||
}
|
||||
@ -1727,6 +1744,9 @@ namespace Volian.Controls.Library
|
||||
case "Print":
|
||||
OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||
break;
|
||||
case "Quick Print":
|
||||
OnQPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||
break;
|
||||
case "Print All Procedures for":
|
||||
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag));
|
||||
break;
|
||||
@ -1967,6 +1987,9 @@ namespace Volian.Controls.Library
|
||||
case "Print":
|
||||
OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
break;
|
||||
case "Quick Print":
|
||||
OnQPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
break;
|
||||
case "Print All Procedures":
|
||||
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
break;
|
||||
|
@ -569,9 +569,22 @@ namespace Volian.Print.Library
|
||||
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 (KeepStepsOnPage && !alarmPageKeepHighWithSubs && ySizeIncludingFirst > (yWithinMargins - ySizeBtmCtnMess1 - ySizeBtmEndMess1)) KeepStepsOnPage = false;
|
||||
if (KeepStepsOnPage && ySizeIncludingFirst > (yWithinMargins - ySizeBtmCtnMess1 - ySizeBtmEndMess1))
|
||||
{
|
||||
// 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
|
||||
{
|
||||
// Don't want extra line before step
|
||||
|
@ -19,7 +19,7 @@ using JR.Utils.GUI.Forms;
|
||||
|
||||
namespace Volian.Print.Library
|
||||
{
|
||||
public delegate void PromsPrinterStatusEvent(object sender,PromsPrintStatusArgs args);
|
||||
public delegate void PromsPrinterStatusEvent(object sender, PromsPrintStatusArgs args);
|
||||
public class PromsPrintStatusArgs
|
||||
{
|
||||
private string _MyStatus;
|
||||
@ -336,7 +336,7 @@ namespace Volian.Print.Library
|
||||
_MyReaderHelper = new ReaderHelper(this);
|
||||
_SaveLinks = saveLinks;
|
||||
// C2021-010: Remove trailing returns/spaces & manual page breaks & allow save.
|
||||
if (removeTrailngHardReturnsAndManualPageBreaks == 1 || removeTrailngHardReturnsAndManualPageBreaks == 3 ) RemoveTrailingHardReturnsAndSpaces = new List<int>();
|
||||
if (removeTrailngHardReturnsAndManualPageBreaks == 1 || removeTrailngHardReturnsAndManualPageBreaks == 3) RemoveTrailingHardReturnsAndSpaces = new List<int>();
|
||||
if (removeTrailngHardReturnsAndManualPageBreaks == 2 || removeTrailngHardReturnsAndManualPageBreaks == 3) RemoveManualPageBreaks = new List<int>();
|
||||
_BlankPageText = blankPageText;
|
||||
_DidAll = didAll;
|
||||
@ -435,7 +435,7 @@ namespace Volian.Print.Library
|
||||
ProcedureInfo.RefreshPageNumTransitions(_MyItem as ProcedureInfo);
|
||||
_MyReaderHelper = new ReaderHelper(this);
|
||||
retstr = Print(_MyItem as ProcedureInfo, pdfFolder, makePlacekeeper, makeContinuousActionSummary, makeTimeCriticalActionSummary);
|
||||
if (! BatchPrint && ForcedPaginations != null && ForcedPaginations.Count > 0) // B2020-159: Forced Pagination Reporting
|
||||
if (!BatchPrint && ForcedPaginations != null && ForcedPaginations.Count > 0) // B2020-159: Forced Pagination Reporting
|
||||
{
|
||||
ReportForcedPaginations();
|
||||
ForcedPaginations.Clear();
|
||||
@ -565,7 +565,7 @@ namespace Volian.Print.Library
|
||||
set
|
||||
{
|
||||
_MyContentByte = value;
|
||||
if(value != null)MyReaderHelper.LoadTree(MyItem);
|
||||
if (value != null) MyReaderHelper.LoadTree(MyItem);
|
||||
}
|
||||
}
|
||||
public void NewPage()
|
||||
@ -588,7 +588,7 @@ namespace Volian.Print.Library
|
||||
//SectionConfig sc = (nextSection ?? currentSection).MyConfig as SectionConfig;
|
||||
// If we are changing to a different section, then get the config from the nextSection
|
||||
// else we are still printing in the same section so get the config from the current section
|
||||
SectionConfig sc = ((!sectionChange || nextSection == null)? currentSection.MyConfig : nextSection.MyConfig) as SectionConfig;
|
||||
SectionConfig sc = ((!sectionChange || nextSection == null) ? currentSection.MyConfig : nextSection.MyConfig) as SectionConfig;
|
||||
bool wordMargins = (sc != null && sc.Section_WordMargin == "Y");
|
||||
if (wordMargins)
|
||||
{
|
||||
@ -622,7 +622,7 @@ namespace Volian.Print.Library
|
||||
if (currentSection.IsStepSection)
|
||||
Volian.Base.Library.BaselineMetaFile.WriteLine("{0}", rct);
|
||||
else
|
||||
Volian.Base.Library.BaselineMetaFile.WriteLine("UseWordMargins={0} {1} ", (wordMargins)?"Y":"N", rct);
|
||||
Volian.Base.Library.BaselineMetaFile.WriteLine("UseWordMargins={0} {1} ", (wordMargins) ? "Y" : "N", rct);
|
||||
//Console.WriteLine("\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t{4}"
|
||||
// , currentSection == null ? "" : currentSection.DisplayNumber + " " + currentSection.DisplayText
|
||||
// , nextSection == null ? "" : nextSection.DisplayNumber + " " + nextSection.DisplayText
|
||||
@ -682,12 +682,35 @@ namespace Volian.Print.Library
|
||||
// Console.WriteLine("To {0}.{1} Page: {2}",LastWordSection.DisplayNumber,LastWordSection.DisplayText,_PageCountOfWordSection);
|
||||
// PreviousWordSection = LastWordSection;
|
||||
//}
|
||||
private PdfContentByte OpenDoc(string outputFileName, iTextSharp.text.Rectangle rect)
|
||||
private PdfContentByte OpenDoc(ref string outputFileName, iTextSharp.text.Rectangle rect)
|
||||
{
|
||||
PdfWriter writer=null;
|
||||
iTextSharp.text.Document document = new iTextSharp.text.Document(rect);
|
||||
try
|
||||
{
|
||||
PdfWriter writer = null;
|
||||
iTextSharp.text.Document document = new iTextSharp.text.Document(rect);
|
||||
|
||||
try
|
||||
{
|
||||
if (File.Exists(outputFileName))
|
||||
{
|
||||
String tmpExt = System.IO.Path.GetExtension(outputFileName);
|
||||
String tmpPTH = System.IO.Path.GetDirectoryName(outputFileName);
|
||||
String tmpFN = System.IO.Path.GetFileName(outputFileName);
|
||||
String tmpFNNoExt = System.IO.Path.GetFileNameWithoutExtension(outputFileName);
|
||||
|
||||
var files = new HashSet<string>(Directory.GetFiles(tmpPTH, "*.pdf"));
|
||||
//string baseName = Path.Combine(scpath, "Screenshot_");
|
||||
string filename;
|
||||
int i = 0;
|
||||
do
|
||||
{
|
||||
filename = tmpPTH + @"\" + tmpFNNoExt + "_" + ++i + ".pdf";
|
||||
} while (files.Contains(filename));
|
||||
|
||||
outputFileName = filename;
|
||||
|
||||
}
|
||||
|
||||
writer = PdfWriter.GetInstance(document, new FileStream(outputFileName, FileMode.Create));
|
||||
// PDFA1B does not allow layers, so this is disabled for now
|
||||
// If enabled, CreateLayers will need to be skipped.
|
||||
@ -721,6 +744,21 @@ namespace Volian.Print.Library
|
||||
MyContentByte = writer.DirectContent;
|
||||
return MyContentByte;
|
||||
}
|
||||
|
||||
catch (Exception ex)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendLine("Error occured when creating Print PDF");
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(outputFileName + ".");
|
||||
sb.AppendLine();
|
||||
sb.AppendLine("If it is open, close and retry.");
|
||||
MessageBox.Show(sb.ToString(), "Error Creating PDF", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
//MessageBox.Show("Could not create " + outputFileName + ". If it is open, close and retry.", "Error on CreatePdf");
|
||||
return MyContentByte = null;
|
||||
|
||||
}
|
||||
}
|
||||
//private string CreateFileName(string procNumber, string sectNumber, string sectTitle)
|
||||
//{
|
||||
// return FixFileName(procNumber + "_" + ((sectNumber ?? "") != "" ? sectNumber : sectTitle));
|
||||
@ -838,7 +876,7 @@ namespace Volian.Print.Library
|
||||
// B2023-024 PROMS was using old cached PDF data when printing Word sections.
|
||||
if (doingFoldout)
|
||||
{
|
||||
PdfInfo.RemovePDFFromCache((ItemInfo) myFoldoutSection); // remove cached PDF info to force getting of new data
|
||||
PdfInfo.RemovePDFFromCache((ItemInfo)myFoldoutSection); // remove cached PDF info to force getting of new data
|
||||
if (File.Exists(outputFileName))
|
||||
File.Delete(outputFileName); // delete the temporary FOLDOUT file
|
||||
}
|
||||
@ -857,7 +895,7 @@ namespace Volian.Print.Library
|
||||
bool wordMargins = (sc != null && sc.Section_WordMargin == "Y");
|
||||
if (wordMargins)
|
||||
{
|
||||
string pdfFile =BuildMSWordPDF(si);
|
||||
string pdfFile = BuildMSWordPDF(si);
|
||||
try
|
||||
{
|
||||
PdfReader reader = new PdfReader(pdfFile);
|
||||
@ -866,12 +904,12 @@ namespace Volian.Print.Library
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
_MyLog.Warn(string.Format("Error of ReadPDf [{0}],{1}.{2}",si.ItemID,si.DisplayNumber,si.DisplayText),ex);
|
||||
_MyLog.Warn(string.Format("Error of ReadPDf [{0}],{1}.{2}", si.ItemID, si.DisplayNumber, si.DisplayText), ex);
|
||||
throw new Exception("Error in readPDF", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
PdfContentByte cb = OpenDoc(outputFileName, rct);
|
||||
PdfContentByte cb = OpenDoc(ref outputFileName, rct);
|
||||
if (cb == null)
|
||||
{
|
||||
ProfileTimer.Pop(profileDepth);
|
||||
@ -906,7 +944,7 @@ namespace Volian.Print.Library
|
||||
{
|
||||
// B2020-115 Calculate maximum available space on a page for figures
|
||||
vlnParagraph.hMax = ((float)mySection.MyDocStyle.Layout.PageLength);
|
||||
vlnParagraph.wMax = ((float) mySection.MyDocStyle.Layout.PageWidth)- ((float) mySection.MyDocStyle.Layout.LeftMargin - 12);
|
||||
vlnParagraph.wMax = ((float)mySection.MyDocStyle.Layout.PageWidth) - ((float)mySection.MyDocStyle.Layout.LeftMargin - 12);
|
||||
NeedSupInfoBreak = true;
|
||||
bool isFoldoutSection = (mySection.MyConfig as SectionConfig).Section_IsFoldout == "Y"; //C2019-042 Section_IsFoldout checks Section Number, Section Title, and use of check box
|
||||
if (((isFoldoutSection && myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.SectionLevelFoldouts)
|
||||
@ -961,7 +999,7 @@ namespace Volian.Print.Library
|
||||
}
|
||||
x += 72F * VlnSettings.GetCommandFloat("X", 0);
|
||||
y -= 72F * VlnSettings.GetCommandFloat("Y", 0);
|
||||
_MyHelper.BackgroundOffset = new PointF(x,y);
|
||||
_MyHelper.BackgroundOffset = new PointF(x, y);
|
||||
_MyHelper.BackgroundPageOffset = 0;
|
||||
}
|
||||
_MyHelper.WatermarkLayer = _WatermarkLayer;
|
||||
@ -1073,7 +1111,7 @@ namespace Volian.Print.Library
|
||||
{
|
||||
// If the procedure has supplemental facing pages, but this section does not & it's the first section,
|
||||
// need a blank 'facing page'. Sections after the first will get blank 'facing page' in print's pagination logic
|
||||
if (SupInfoPrintType==E_SupInfoPrintType.Merge && !mySection.HasSupInfoSteps && firstStepSec && InsertBlankPages)
|
||||
if (SupInfoPrintType == E_SupInfoPrintType.Merge && !mySection.HasSupInfoSteps && firstStepSec && InsertBlankPages)
|
||||
{
|
||||
InsertBlankPage(cb);
|
||||
}
|
||||
@ -1174,9 +1212,9 @@ namespace Volian.Print.Library
|
||||
|
||||
private void SetupProperties(PdfDocument document, ProcedureInfo myProcedure)
|
||||
{
|
||||
document.AddTitle(string.Format("{0} {1}",myProcedure.DisplayNumber,myProcedure.DisplayText));
|
||||
document.AddTitle(string.Format("{0} {1}", myProcedure.DisplayNumber, myProcedure.DisplayText));
|
||||
document.AddSubject(myProcedure.SearchDVPath);
|
||||
document.AddCreator(string.Format("{0} {1}",Application.ProductName, Application.ProductVersion));
|
||||
document.AddCreator(string.Format("{0} {1}", Application.ProductName, Application.ProductVersion));
|
||||
document.AddAuthor(Volian.Base.Library.VlnSettings.UserID);
|
||||
}
|
||||
private Placekeeper _MyPlacekeeper = null;
|
||||
@ -1229,15 +1267,15 @@ namespace Volian.Print.Library
|
||||
int sectPageCount = 0;
|
||||
float locEndOfWordDoc = 0;
|
||||
float pdfSize = 0;
|
||||
using (PdfInfo myPdf = PdfInfo.Get(mySection,false))
|
||||
using (PdfInfo myPdf = PdfInfo.Get(mySection, false))
|
||||
{
|
||||
if (myPdf == null) // B2017-218 Handle invalid word sections
|
||||
{
|
||||
cb.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED), 20);
|
||||
cb.SetTextMatrix(cb.PdfDocument.Left+200,cb.PdfDocument.Bottom+cb.PdfDocument.Top / 2);
|
||||
cb.SetTextMatrix(cb.PdfDocument.Left + 200, cb.PdfDocument.Bottom + cb.PdfDocument.Top / 2);
|
||||
cb.ShowText("Word Section Invalid");
|
||||
// C2018-004 create meta file for baseline compares
|
||||
Volian.Base.Library.BaselineMetaFile.WriteLine("!!Word Section Invalid: ID {0} \"{1}\" \"{2}\"",mySection.ItemID, mySection.DisplayNumber, mySection.DisplayText);
|
||||
Volian.Base.Library.BaselineMetaFile.WriteLine("!!Word Section Invalid: ID {0} \"{1}\" \"{2}\"", mySection.ItemID, mySection.DisplayNumber, mySection.DisplayText);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1298,7 +1336,7 @@ namespace Volian.Print.Library
|
||||
OnStatusChanged("Read MSWord", PromsPrinterStatusType.ReadMSWord);
|
||||
if (doimport2)
|
||||
{
|
||||
if (((!didFoldout && _MyFoldoutReader.Count > 0 ) || mySection.MyProcedure.ProcHasSupInfoData) && cb.PdfWriter.CurrentPageNumber > 1 && InsertBlankPages)
|
||||
if (((!didFoldout && _MyFoldoutReader.Count > 0) || mySection.MyProcedure.ProcHasSupInfoData) && cb.PdfWriter.CurrentPageNumber > 1 && InsertBlankPages)
|
||||
{
|
||||
bool doInsertBlankPage = true;
|
||||
SectionInfo currentSection = _MyHelper.MySection;
|
||||
@ -1348,16 +1386,16 @@ namespace Volian.Print.Library
|
||||
//float y1 = cb.PdfDocument.PageSize.Height ; // 1.8f;
|
||||
float height = 12 * 1.5F;
|
||||
// B2019-102 Locate the chunk below the bottom of the page
|
||||
ct.SetSimpleColumn(0, -height, chk.GetWidthPoint() * 1.01F, -2*height );
|
||||
ct.SetSimpleColumn(0, -height, chk.GetWidthPoint() * 1.01F, -2 * height);
|
||||
ct.AddElement(new Phrase(chk));
|
||||
cb.SetColorFill(new iTextSharp.text.Color(PrintOverride.TextColor));
|
||||
int status = ct.Go();
|
||||
if(status > 1)
|
||||
if (status > 1)
|
||||
_MyLog.WarnFormat("\r\n.-.-.-. Failed to add a PDF destination for {0}", mySection.ShortPath);
|
||||
}
|
||||
|
||||
if(DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}',{2}",
|
||||
_MyHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, mySection.ShortPath,pageNumber);
|
||||
if (DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}',{2}",
|
||||
_MyHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, mySection.ShortPath, pageNumber);
|
||||
}
|
||||
if (ii == sectPageCount - 1)
|
||||
{
|
||||
@ -1453,7 +1491,7 @@ namespace Volian.Print.Library
|
||||
// so that if merge is done, the pages that are landscaped can have landscaped page numbers placed on them
|
||||
public static void AddMergedLandscapePage(VlnSvgPageHelper _MyHelper, string PDFFile)
|
||||
{
|
||||
string tmp = PDFFile.Substring(0,PDFFile.IndexOf(".pdf"));
|
||||
string tmp = PDFFile.Substring(0, PDFFile.IndexOf(".pdf"));
|
||||
if (MergedLandscapePages == null) MergedLandscapePages = new Dictionary<string, List<int>>();
|
||||
if (MergedLandscapePages.ContainsKey(tmp))
|
||||
MergedLandscapePages[tmp].Add(_MyHelper.CurrentPageNumber);
|
||||
@ -1572,7 +1610,7 @@ namespace Volian.Print.Library
|
||||
inGroup = true;
|
||||
// B2020-033: for single spacing, add an extra line before a grouping title:
|
||||
float tmpspc = (float)(tOfC.TofCLineSpacing ?? 1);
|
||||
if (lastTOCGroupHeading != "" || (firstGroupHeading && tmpspc==1))
|
||||
if (lastTOCGroupHeading != "" || (firstGroupHeading && tmpspc == 1))
|
||||
{
|
||||
yLocation += vlnPrintObject.SixLinesPerInch;
|
||||
firstGroupHeading = false;
|
||||
@ -1612,7 +1650,7 @@ namespace Volian.Print.Library
|
||||
// logic put in for V.C. Summer who wants to their auto table of contents to print "OPERATOR ACTIONS" (set in the format) instead of "Procedure Steps"
|
||||
// - note that Summer didn't want to change the section title because they want transition to say "procedure step" for the section title. 03/08/2016
|
||||
string tocSecTitle = mySection.FormattedDisplayText;// B2017-019 - process "<u>" in section title
|
||||
tocSecTitle= ConvertSpecialChars(tocSecTitle, ii.ActiveFormat.PlantFormat.FormatData); // B2019-172 process symbol characters
|
||||
tocSecTitle = ConvertSpecialChars(tocSecTitle, ii.ActiveFormat.PlantFormat.FormatData); // B2019-172 process symbol characters
|
||||
if (tocSecTitle.ToUpper() == "PROCEDURE STEPS" && tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCProcedureStepsTitle != "")
|
||||
tocSecTitle = tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCProcedureStepsTitle;
|
||||
|
||||
@ -1622,7 +1660,7 @@ namespace Volian.Print.Library
|
||||
//if (tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData
|
||||
if (level == 0 && tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCUnderlineFirstLevelTitle)
|
||||
{
|
||||
VE_Font ovrFont = new VE_Font(tOfC.Font.Family, (int)tOfC.Font.Size,(E_Style)tOfC.Font.Style | E_Style.Underline, (float)tOfC.Font.CPI);
|
||||
VE_Font ovrFont = new VE_Font(tOfC.Font.Family, (int)tOfC.Font.Size, (E_Style)tOfC.Font.Style | E_Style.Underline, (float)tOfC.Font.CPI);
|
||||
rtfText = GetRtfToC(tocSecTitle, tOfC, ovrFont);
|
||||
}
|
||||
else
|
||||
@ -1657,7 +1695,7 @@ namespace Volian.Print.Library
|
||||
if (lnsp > -1) yLocation += (lnaftergroup * vlnPrintObject.SixLinesPerInch); // new line
|
||||
}
|
||||
// Print the section title
|
||||
float retval = Rtf2Pdf.TextAt(cb, myparagraphSecTitle, leftMargin + ((tOfC.TofCSecNumPos == tOfC.TofCSecTitlePos && tmptxt.Equals(" "))? secNumPos : adjSecTitlePos), yPageStart - yLocation, width, height, "", yBottomMargin);
|
||||
float retval = Rtf2Pdf.TextAt(cb, myparagraphSecTitle, leftMargin + ((tOfC.TofCSecNumPos == tOfC.TofCSecTitlePos && tmptxt.Equals(" ")) ? secNumPos : adjSecTitlePos), yPageStart - yLocation, width, height, "", yBottomMargin);
|
||||
if (retval == 0) // couldn't fit, flags need for a page break.
|
||||
{
|
||||
NewPage();
|
||||
@ -2178,7 +2216,7 @@ namespace Volian.Print.Library
|
||||
// was found in, i.e. Ginna Rev2 SAMG, SAG-3 step 7. This change won't affect other plants/formats but if the problem occurs
|
||||
// the format value can be used to adjust the location of bottom message. However, this could adversely affect pagination and
|
||||
// each plant/format needs to be done on a case by base basis.
|
||||
float yBottomMargin = Math.Max(0, yTopMargin - (float)myItemInfo.MyDocStyle.Layout.PageLength - (myItemInfo.MyDocStyle.Continue.Bottom.LocAdj==null?0:(int)myItemInfo.MyDocStyle.Continue.Bottom.LocAdj));
|
||||
float yBottomMargin = Math.Max(0, yTopMargin - (float)myItemInfo.MyDocStyle.Layout.PageLength - (myItemInfo.MyDocStyle.Continue.Bottom.LocAdj == null ? 0 : (int)myItemInfo.MyDocStyle.Continue.Bottom.LocAdj));
|
||||
vlnParagraph.PathPrefix = myItemInfo.Path;
|
||||
//Rtf2Pdf.PdfDebug = true;
|
||||
Rtf2Pdf.Offset = new PointF(0, 2.5F);
|
||||
@ -2298,7 +2336,7 @@ namespace Volian.Print.Library
|
||||
else SupInfoPdfPage.Clear();
|
||||
string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + vlnParagraph.MyItemInfo.ItemID.ToString() + @".pdf";
|
||||
iTextSharp.text.Rectangle pageSize = PDFPageSize.UsePaperSize(MyItem.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // C2020-002 paper size is now set in the format files
|
||||
PdfContentByte cb = OpenDoc(SupInfoPdfName, pageSize);
|
||||
PdfContentByte cb = OpenDoc(ref SupInfoPdfName, pageSize);
|
||||
if (cb == null) return;
|
||||
VlnSvgPageHelper myPageHelper = new VlnSvgPageHelper(vlnParagraph.MyItemInfo as SectionInfo, this, null, 0);
|
||||
cb.PdfWriter.PageEvent = myPageHelper;
|
||||
@ -2310,7 +2348,7 @@ namespace Volian.Print.Library
|
||||
myPageHelper.ChangeBarDefinition = MyChangeBarDefinition;
|
||||
float yPageStart = yTopMargin;
|
||||
vlnParagraph._yPageStartForSupInfo = yTopMargin;
|
||||
SupInfoAjustGroupings(vlnParagraph,cb);
|
||||
SupInfoAjustGroupings(vlnParagraph, cb);
|
||||
SupInfoPrintType = E_SupInfoPrintType.SupInfoPdfPrint;
|
||||
vlnParagraph.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin);
|
||||
SupInfoPrintType = E_SupInfoPrintType.Merge;
|
||||
@ -2347,11 +2385,11 @@ namespace Volian.Print.Library
|
||||
// Initialize font decrement
|
||||
float decrement = 2f;
|
||||
float fontSize = grp[0].IParagraph.Leading; // current font size
|
||||
float mpglen = MeasureSupInfoGroupLength(grp, cb,pageLength); // Measure the length of the group of supinfo paragraphs
|
||||
float mpglen = MeasureSupInfoGroupLength(grp, cb, pageLength); // Measure the length of the group of supinfo paragraphs
|
||||
// If the group does not fit on a page then reduce the font size
|
||||
if (mpglen > pageLength)
|
||||
{
|
||||
float newFontSize=fontSize;
|
||||
float newFontSize = fontSize;
|
||||
// reduce the font size by _Decrement until the entire grouping fits on one page
|
||||
while (mpglen > pageLength) // While the measured supinfo group length is greatere than the page length
|
||||
{
|
||||
@ -2413,7 +2451,7 @@ namespace Volian.Print.Library
|
||||
private void ReduceSupInfoGroupFontSize(vlnParagraph pg, float scaler, PdfContentByte cb)
|
||||
{
|
||||
float hBefore = pg.Height;// Save initial paragraph height
|
||||
AdjustSupInfoTable(pg, scaler,cb);
|
||||
AdjustSupInfoTable(pg, scaler, cb);
|
||||
NewSupInfoFixChunks(pg, scaler);// Apply multiplier to font size
|
||||
pg.IParagraph.Leading = scaler * pg.IParagraph.Leading; // Adjust leading (line spacing)
|
||||
// B2017-112: Don't do the font size change if images.
|
||||
@ -2474,9 +2512,9 @@ namespace Volian.Print.Library
|
||||
// Create lists of heights before and after shrinking sup info
|
||||
Dictionary<int, float> beforeRowHeight = new Dictionary<int, float>();
|
||||
Dictionary<int, float> afterRowHeight = new Dictionary<int, float>();
|
||||
for (int i = 0; i < pg.MyGrid.RowTop.GetLength(0)-1; i++)
|
||||
for (int i = 0; i < pg.MyGrid.RowTop.GetLength(0) - 1; i++)
|
||||
{
|
||||
beforeRowHeight.Add(i, scaler * (pg.MyGrid.RowTop[i+1] - pg.MyGrid.RowTop[i]));
|
||||
beforeRowHeight.Add(i, scaler * (pg.MyGrid.RowTop[i + 1] - pg.MyGrid.RowTop[i]));
|
||||
afterRowHeight.Add(i, 0);
|
||||
}
|
||||
// Adjust font size for each cell.
|
||||
@ -2484,18 +2522,18 @@ namespace Volian.Print.Library
|
||||
{
|
||||
float x = cell.MyTable.ColLeft[cell.c1];
|
||||
float w = cell.MyTable.ColLeft[cell.c2 + 1] - x;
|
||||
float hBefore = scaler * pg.GetParagraphHeight(cb,cell.MyPara,"",w);
|
||||
float hBefore = scaler * pg.GetParagraphHeight(cb, cell.MyPara, "", w);
|
||||
foreach (Chunk chk in cell.MyPara.Chunks)
|
||||
chk.Font.Size = scaler * chk.Font.Size;
|
||||
float hAfter = 1.075F * pg.GetParagraphHeight(cb,cell.MyPara,"",w);// 1.075 is a magic number that worked for Ginna. Otherwise decenders overlapped the bottom line of the cell.
|
||||
float hAfter = 1.075F * pg.GetParagraphHeight(cb, cell.MyPara, "", w);// 1.075 is a magic number that worked for Ginna. Otherwise decenders overlapped the bottom line of the cell.
|
||||
cell.HContent = hAfter;
|
||||
// Save tthe height after adjusting the font size to account for changes in word wrap.
|
||||
afterRowHeight[cell.r1]=Math.Max(hAfter,afterRowHeight[cell.r1]);
|
||||
afterRowHeight[cell.r1] = Math.Max(hAfter, afterRowHeight[cell.r1]);
|
||||
}
|
||||
for (int i = 0; i < pg.MyGrid.RowTop.GetLength(0)-1; i++)
|
||||
for (int i = 0; i < pg.MyGrid.RowTop.GetLength(0) - 1; i++)
|
||||
{
|
||||
pg.MyGrid.RowTop[i+1] = scaler * pg.MyGrid.RowTop[i+1];// Adjust for leading
|
||||
pg.MyGrid.RowTop[i+1] += (afterRowHeight[i]-beforeRowHeight[i]); //Adjust for word wrapping
|
||||
pg.MyGrid.RowTop[i + 1] = scaler * pg.MyGrid.RowTop[i + 1];// Adjust for leading
|
||||
pg.MyGrid.RowTop[i + 1] += (afterRowHeight[i] - beforeRowHeight[i]); //Adjust for word wrapping
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2527,7 +2565,7 @@ namespace Volian.Print.Library
|
||||
foreach (Chunk chk in po.IParagraph.Chunks)
|
||||
chk.Font.Size = scaler * chk.Font.Size;
|
||||
po.IParagraph.Leading = scaler * po.IParagraph.Leading;// Apply the multiplier to the leading (line spacing)
|
||||
po.YOffset = NewSupInfoFixOffset(po,scaler);// Adjust the YOffset
|
||||
po.YOffset = NewSupInfoFixOffset(po, scaler);// Adjust the YOffset
|
||||
}
|
||||
/// <summary>
|
||||
/// Adjust the Font Size
|
||||
@ -2621,7 +2659,7 @@ namespace Volian.Print.Library
|
||||
{
|
||||
string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + myPageHelper.MySection.ItemID.ToString() + @".pdf";
|
||||
PdfReader pdfreader = new PdfReader(SupInfoPdfName);
|
||||
sipage = cb.PdfWriter.GetImportedPage(pdfreader, getpage+1);
|
||||
sipage = cb.PdfWriter.GetImportedPage(pdfreader, getpage + 1);
|
||||
// F2023-035: WCN - allow for change in left margin for supplemental information pages by
|
||||
// setting a value in the DocStyle for the adjustment. When importing the vlnParagraph page
|
||||
// use this adjustment (note that page list items are done in VlnSvgPageHelper)
|
||||
@ -2641,7 +2679,7 @@ namespace Volian.Print.Library
|
||||
}
|
||||
public void DoFoldoutPage(PdfContentByte cb, string str, PdfLayer textLayer, VlnSvgPageHelper myPageHelper, int foldoutindx, bool insertBlankPages)
|
||||
{
|
||||
if (_MyFoldoutSection == null || _MyFoldoutSection.Count==0) return;
|
||||
if (_MyFoldoutSection == null || _MyFoldoutSection.Count == 0) return;
|
||||
|
||||
// if the very first page to be output is a 'foldout', treat this as a special case, since
|
||||
// if duplex printing is on, the foldout should always be on the left side, i.e. or behind
|
||||
@ -2667,7 +2705,7 @@ namespace Volian.Print.Library
|
||||
PdfImportedPage fgPage = null;
|
||||
try
|
||||
{ // read saved foldout page
|
||||
fgPage = cb.PdfWriter.GetImportedPage(_MyFoldoutReader[foldoutindx],1);
|
||||
fgPage = cb.PdfWriter.GetImportedPage(_MyFoldoutReader[foldoutindx], 1);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -2679,7 +2717,7 @@ namespace Volian.Print.Library
|
||||
AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, fgPage, 0, 0);
|
||||
foreach (iTextSharp.text.pdf.PdfAnnotation.PdfImportedLink il in _MyFoldoutReader[foldoutindx].GetLinks(1))
|
||||
{
|
||||
if(!il.IsInternal() )
|
||||
if (!il.IsInternal())
|
||||
cb.PdfWriter.AddAnnotation(il.CreateAnnotation(cb.PdfWriter));
|
||||
}
|
||||
|
||||
@ -2873,7 +2911,7 @@ namespace Volian.Print.Library
|
||||
public iTextSharp.text.Rectangle GetSize(SectionInfo sectInfo, int pageNumber)
|
||||
{
|
||||
string key = string.Format("{0}.{1}", sectInfo.ItemID, pageNumber);
|
||||
if(dicSize.ContainsKey(key))
|
||||
if (dicSize.ContainsKey(key))
|
||||
return dicSize[key];
|
||||
return PDFPageSize.UsePaperSize(sectInfo.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // C2020-002 paper size is now set in the format files
|
||||
}
|
||||
@ -2890,7 +2928,7 @@ namespace Volian.Print.Library
|
||||
{
|
||||
if (si.IsStepSection)
|
||||
{
|
||||
if(si.Sections != null)LoadSectionTree(si);
|
||||
if (si.Sections != null) LoadSectionTree(si);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2900,9 +2938,9 @@ namespace Volian.Print.Library
|
||||
try
|
||||
{
|
||||
FileInfo fi = new FileInfo(MyPdfFile);
|
||||
if (fi.Length == 0 ) // B2017-218 Handle invalid word sections
|
||||
if (fi.Length == 0) // B2017-218 Handle invalid word sections
|
||||
{
|
||||
if(!PromsPrinter.BaselineTesting) //B2018-071 Output a message box unless baseline testing is being performed.
|
||||
if (!PromsPrinter.BaselineTesting) //B2018-071 Output a message box unless baseline testing is being performed.
|
||||
MessageBox.Show(si.DisplayNumber + " " + si.DisplayText + " is not valid", "Invalid Word Section", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
return;
|
||||
}
|
||||
@ -2960,3 +2998,4 @@ namespace Volian.Print.Library
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
|
@ -1934,8 +1934,6 @@ i = 0;
|
||||
else
|
||||
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 "{"
|
||||
if (token.Equals("{PREDELIMEOPNUM}"))
|
||||
@ -1947,6 +1945,10 @@ i = 0;
|
||||
if (idx < eopnum.Length)
|
||||
eopnum = eopnum.Substring(0, idx);
|
||||
}
|
||||
|
||||
if (pageItem.TrimEnding != null)
|
||||
eopnum = eopnum.TrimEnd(pageItem.TrimEnding.ToCharArray());
|
||||
|
||||
plstr = plstr.Replace(token, eopnum);
|
||||
//svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, eopnum)));
|
||||
//svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, section.MyProcedure.MyContent.Number)));
|
||||
|
@ -1046,8 +1046,9 @@ namespace Volian.Print.Library
|
||||
|
||||
// Calvert Alarms have a special case, center text if the next/previous is not the same type of caution or note.
|
||||
// Calvert Alarms have a note1 that is a warning. if a regular note preceeded it, this regular note was not centered.
|
||||
// F2023-126: Vogtle Alarms - center single line caution/note if more than one type exist off step, added the check for NoteCautionCenterOneAllTypes
|
||||
bool doAlign = false;
|
||||
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && (MyItemInfo.IsCaution || MyItemInfo.IsNote || MyItemInfo.IsNote1))
|
||||
if ((MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert || MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.NoteCautionCenterOneAllTypes) && (MyItemInfo.IsCaution || MyItemInfo.IsNote || MyItemInfo.IsNote1))
|
||||
{
|
||||
bool diffAsPrev = MyItemInfo.MyPrevious == null || (MyItemInfo.MyPrevious != null && MyItemInfo.MyContent.Type != MyItemInfo.MyPrevious.MyContent.Type);
|
||||
bool diffAsNext = MyItemInfo.NextItem == null || (MyItemInfo.NextItem != null && MyItemInfo.MyContent.Type != MyItemInfo.NextItem.MyContent.Type);
|
||||
@ -1912,7 +1913,11 @@ namespace Volian.Print.Library
|
||||
float bcm_yLocation = TableBottom == -1 ? yLocation: Math.Min(TableBottom,yLocation);
|
||||
DoBottomContinueMsg(cb, yBottomMargin, bcm_yLocation, docstyle, doThreeContinues);
|
||||
MyPromsPrinter.NewPage();
|
||||
if (MyItemInfo.IsStep && (MyItemInfo.ActiveSection != null && ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd))) // C2018-003 fixed use of getting the active section
|
||||
// C2018-003 fixed use of getting the active section
|
||||
// F2023-112 Vogtle Units 3 & 4 background document format DSS_PageListBkgndStpContMsg to print continue message next to step number
|
||||
if (MyItemInfo.IsStep && (MyItemInfo.ActiveSection != null &&
|
||||
((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd) ||
|
||||
((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListBkgndStpContMsg) == E_DocStructStyle.DSS_PageListBkgndStpContMsg)))
|
||||
{
|
||||
// check if parent (can be HLS, Caution or Note) has the UseOldTemplate. If so,
|
||||
// flag that a continue message should be printed as part of a pagelist header (if pagelist
|
||||
@ -2823,25 +2828,35 @@ namespace Volian.Print.Library
|
||||
ItemInfo parentStep = MyItemInfo.MyHLS; // get the high level step
|
||||
myMsg = string.Format(myMsg, parentStep.CombinedTab, parentStep.DisplayTextKeepSpecialChars);
|
||||
}
|
||||
if ((docstyle.Continue.Top.HLS ?? 0) == 4) // B2023-115 Top continue message for Vogtle Alarms
|
||||
// B2023-115 Top continue message for Vogtle Alarms: 1st version done on 12/6/23. Changes to logic as per request
|
||||
// from engineering done on 12/12/23. See comment below for logic for 12/12/23 (history of this file has previous
|
||||
// logic)
|
||||
if ((docstyle.Continue.Top.HLS ?? 0) == 4)
|
||||
{
|
||||
// Vogtle Alarms: Their alarms are set up differently than standard procedures - the HLS in Vogtle
|
||||
// alarms is a section in other procedures. The top continue message is shown when a break occurs between
|
||||
// first level sub-steps '(continued)' with no step number as part of message' within the first level sub-step
|
||||
// only if it is sequential (which is like a HLS in standard procedures) and the continue message
|
||||
// has the first level sub-step's tab. There should be NO continue message if the break occurs at the HLS.
|
||||
ItemInfo cur = MyItemInfo;
|
||||
if (!(cur.IsCaution || cur.IsNote || cur.IsHigh))
|
||||
while (!cur.MyParent.IsHigh) cur = cur.MyParent; // get to the first level substep to get its tab
|
||||
// alarms is a section in other procedures. The top continue message is shown when a break occurs:
|
||||
// • A continued message will appear on the top of the page ONLY if the pagination occurs anywhere
|
||||
// within the first level substep. If, for example, the page break occurs between substep 3 and substep
|
||||
// 4 as in example 2, no continued message will appear on the top of the page.
|
||||
// • If a continued message is needed, the continued message will include the first level substep number
|
||||
// if it is a sequential substep, such as “5. (continued)”. If it is NOT a sequential substep, then only
|
||||
// the word “(continued)” will appear.
|
||||
// • If a page break occurs between high level steps, such as before “Causes:”, then no continued message is needed.
|
||||
bool doMessage = true;
|
||||
if (MyItemInfo.IsHigh) doMessage = false; // at high, don't do message
|
||||
if (MyItemInfo.MyParent.IsHigh) doMessage = false; // at first level, don't do message
|
||||
// Caution/Note on first level, don't do message
|
||||
if ((MyItemInfo.IsCaution || MyItemInfo.IsNote) && MyItemInfo.MyParent.MyParent.IsHigh) doMessage = false;
|
||||
myMsg = docstyle.Continue.Top.Message;
|
||||
// if within first level sequential, add on the sequential's number:
|
||||
if (!cur.IsHigh && cur.IsSequential && MyItemInfo.MyParent.MyParent.IsHigh)
|
||||
if (doMessage)
|
||||
{
|
||||
ItemInfo parentStep = MyItemInfo.MyParent;
|
||||
myMsg = MyItemInfo.IsHigh ? myMsg : parentStep.CombinedTab + ". " + myMsg;
|
||||
// Get to highest level below HLS
|
||||
ItemInfo cur = MyItemInfo;
|
||||
while (!cur.MyParent.IsHigh) cur = cur.MyParent;
|
||||
// if sequential, add on step number, otherwise just put out message:
|
||||
myMsg = !cur.IsSequential ? myMsg : cur.CombinedTab + ". " + myMsg;
|
||||
}
|
||||
// don't put a message out for HLS, note that the page start is decremented above so need to add that amount back on
|
||||
if (MyItemInfo.IsHigh)
|
||||
else // if not doing message, clear it & set yPageStart back to what it was before handling message
|
||||
{
|
||||
myMsg = "";
|
||||
yPageStart += 2 * SixLinesPerInch;
|
||||
@ -3299,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
|
||||
/// </summary>
|
||||
/// <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;
|
||||
//Console.WriteLine(MyItemInfo.DBSequence);
|
||||
return retval;
|
||||
@ -3355,10 +3372,12 @@ namespace Volian.Print.Library
|
||||
get { return _YBottomForBox; }
|
||||
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;
|
||||
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.
|
||||
string mySep = ChildrenBelow[0].MyItemInfo.FormatStepData.Sep ?? "{Null}";
|
||||
@ -3371,14 +3390,14 @@ namespace Volian.Print.Library
|
||||
if (keepEqListTogether && !ChildrenBelow[0].MyItemInfo.IsSequential && !this.MyItemInfo.IsHigh) // Extend to the last Item.
|
||||
para = ChildrenBelow[ChildrenBelow.Count - 1].GetFirstPieceLastPart();
|
||||
else
|
||||
para = ChildrenBelow[0].GetFirstPieceLastPart();
|
||||
para = ChildrenBelow[0].GetFirstPieceLastPart(includeFirstSub);
|
||||
}
|
||||
}
|
||||
if (ChildrenRight != null && ChildrenRight.Count > 0)
|
||||
{
|
||||
foreach (vlnParagraph paraRight in ChildrenRight)
|
||||
{
|
||||
vlnParagraph paraRightLast = paraRight.GetFirstPieceLastPart();
|
||||
vlnParagraph paraRightLast = paraRight.GetFirstPieceLastPart(includeFirstSub);
|
||||
if (paraRightLast.YBottom > para.YBottom)
|
||||
para = paraRightLast;
|
||||
}
|
||||
@ -6219,7 +6238,8 @@ namespace Volian.Print.Library
|
||||
if (!itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || !UseTemplateWidthOrXOff(itemInfo.MyParent))
|
||||
{
|
||||
// B2018-146 Adjust the width to match the HLS Right Margin.
|
||||
if (itemInfo.IsBackgroundStepOrChild())
|
||||
// F2023-112 added format flag for Vogtle Units 3 & 4 backgrounds. This allows use of override width on AND and List sub-step types
|
||||
if (itemInfo.IsBackgroundStepOrChild() || itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.Vogtle3and4BackgroundFormat)
|
||||
Width = this.MyHighLevelParagraph.Width + this.MyHighLevelParagraph.XOffset - this.XOffset;
|
||||
else
|
||||
Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - (float)itemInfo.MyDocStyle.Layout.LeftMargin - delta;
|
||||
@ -6654,12 +6674,17 @@ namespace Volian.Print.Library
|
||||
widOvrd = ovrd; // + 6; // Change bars on RNO column (signoff line) would not line up with 16-bit without this - NSP Alarms
|
||||
}
|
||||
if ((widOvrd ?? 0) != 0)
|
||||
{
|
||||
//F2023-112 Vogtle Units 3 & 4 Backgrounds. Don't use override width of paragraph when it's off of TitleWithTextRight
|
||||
// We need to allow the code to calculate the width of that paragraph for this case (later in this function)
|
||||
if (!(itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.Vogtle3and4BackgroundFormat && itemInfo.MyParent.FormatStepData != null && itemInfo.MyParent.FormatStepData.Type == "TitleWithTextRight"))
|
||||
{
|
||||
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;
|
||||
if (itemInfo.IsHigh)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user