C2024-003-print-sub-section
This commit is contained in:
		@@ -64,18 +64,18 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			float yWithinMargins = CalculateYLocation(yLocation, yTopMargin) - yBottomMargin; // -SixLinesPerInch;
 | 
								float yWithinMargins = CalculateYLocation(yLocation, yTopMargin) - yBottomMargin; // -SixLinesPerInch;
 | 
				
			||||||
			if (MyItemInfo.IsSection && MyParent != null && MyParent.MyItemInfo.IsSection && (MyItemInfo as SectionInfo).IsSeparatePagination())
 | 
								if (MyItemInfo.IsSection && MyParent != null && MyParent.MyItemInfo.IsSection && (MyItemInfo as SectionInfo).IsSeparatePagination())
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
			    ShowPageBreak(1, "Page Break between separate sections", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
									ShowPageBreak(1, "Page Break between separate sections", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				// if parent was continuous & this is separate, need to paginate to get subsection on
 | 
									// if parent was continuous & this is separate, need to paginate to get subsection on
 | 
				
			||||||
				// its own page.  This occurred in BGE/OI3 set/OI-7 procedure/10.0 Attachments.
 | 
									// its own page.  This occurred in BGE/OI3 set/OI-7 procedure/10.0 Attachments.
 | 
				
			||||||
				if (!(MyParent.MyItemInfo as SectionInfo).IsSeparatePagination()) return 1;
 | 
									if (!(MyParent.MyItemInfo as SectionInfo).IsSeparatePagination()) return 1;
 | 
				
			||||||
				if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.WCNTraining && (MyItemInfo as SectionInfo).IsSeparatePagination()) return 1;
 | 
									if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.WCNTraining && (MyItemInfo as SectionInfo).IsSeparatePagination()) return 1;
 | 
				
			||||||
                // B2017-273 added a check for Farley format, we don't want the subsection pagelist infor to appear on the parent section page - works with ToPDF() logic - (section has steps and a sub-section ex: FNP-2-EEP-0 Attachment 4)
 | 
									// B2017-273 added a check for Farley format, we don't want the subsection pagelist infor to appear on the parent section page - works with ToPDF() logic - (section has steps and a sub-section ex: FNP-2-EEP-0 Attachment 4)
 | 
				
			||||||
                if (MyItemInfo.ActiveFormat.Name.ToUpper().StartsWith("FNP") && (MyItemInfo as SectionInfo).IsSeparatePagination()) return 1;
 | 
									if (MyItemInfo.ActiveFormat.Name.ToUpper().StartsWith("FNP") && (MyItemInfo as SectionInfo).IsSeparatePagination()) return 1;
 | 
				
			||||||
				if (MyItemInfo.MyPrevious != null) // add if statement to fix Westinghouse print issue 3-21-2014
 | 
									if (MyItemInfo.MyPrevious != null) // add if statement to fix Westinghouse print issue 3-21-2014
 | 
				
			||||||
				  return 1;
 | 
										return 1;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if (MyItemInfo.IsSection && _ChildrenBelow == null && YSize > (yLocation-yBottomMargin))
 | 
								if (MyItemInfo.IsSection && _ChildrenBelow == null && YSize > (yLocation - yBottomMargin))
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				ShowPageBreak(1, "Page Break before empty section", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
									ShowPageBreak(1, "Page Break before empty section", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
				return 1;
 | 
									return 1;
 | 
				
			||||||
@@ -171,7 +171,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			// line above the end message, thus 2 not 3. This change was made on July 20, 2011 by RHM & KBR. The 
 | 
								// line above the end message, thus 2 not 3. This change was made on July 20, 2011 by RHM & KBR. The 
 | 
				
			||||||
			// procedure in questions was VEWCNEMG\EMGAPP.PRC, ES-01, Step 8. 
 | 
								// procedure in questions was VEWCNEMG\EMGAPP.PRC, ES-01, Step 8. 
 | 
				
			||||||
			//float yEndMsg = !_skipEndMessage && !MyItemInfo.IsSection && MyItemInfo.MyHLS != null && MyItemInfo.MyHLS.NextItem == null && (MyItemInfo.MyDocStyle.End.Message ?? "") != "" ? 2 * SixLinesPerInch : 0;
 | 
								//float yEndMsg = !_skipEndMessage && !MyItemInfo.IsSection && MyItemInfo.MyHLS != null && MyItemInfo.MyHLS.NextItem == null && (MyItemInfo.MyDocStyle.End.Message ?? "") != "" ? 2 * SixLinesPerInch : 0;
 | 
				
			||||||
			float yEndMsg = (!_skipEndMessage && !MyItemInfo.IsSection && MyItemInfo.MyHLS != null && MyItemInfo.MyHLS.NextItem == null)? GetEndMessageHeight(MyItemInfo.MyDocStyle) : 0;  // B2018-068 account for mult-line End Messages
 | 
								float yEndMsg = (!_skipEndMessage && !MyItemInfo.IsSection && MyItemInfo.MyHLS != null && MyItemInfo.MyHLS.NextItem == null) ? GetEndMessageHeight(MyItemInfo.MyDocStyle) : 0;  // B2018-068 account for mult-line End Messages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// also consider if there is a phone list at the bottom of the page, add the amount of space the phone
 | 
								// also consider if there is a phone list at the bottom of the page, add the amount of space the phone
 | 
				
			||||||
			// list requires onto yEndMsg to make it easier to figure out pagination (include an extra line for the
 | 
								// list requires onto yEndMsg to make it easier to figure out pagination (include an extra line for the
 | 
				
			||||||
@@ -191,7 +191,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			//float yEndMsg = !MyItemInfo.IsSection && MyItemInfo.MyHLS.NextItem == null && (MyItemInfo.MyDocStyle.End.Message ?? "") != "" ? ((2 * SixLinesPerInch) - yEndsWithBlankLine) : 0;
 | 
								//float yEndMsg = !MyItemInfo.IsSection && MyItemInfo.MyHLS.NextItem == null && (MyItemInfo.MyDocStyle.End.Message ?? "") != "" ? ((2 * SixLinesPerInch) - yEndsWithBlankLine) : 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			bool isFirstChild = MyItemInfo.MyPrevious == null;
 | 
								bool isFirstChild = MyItemInfo.MyPrevious == null;
 | 
				
			||||||
			bool nearTheTop =  (yWithinMargins < yPageSize) && (yWithinMargins > (yPageSize - 5 * SixLinesPerInch));
 | 
								bool nearTheTop = (yWithinMargins < yPageSize) && (yWithinMargins > (yPageSize - 5 * SixLinesPerInch));
 | 
				
			||||||
			// if step is breaking over a number of pages, determine if the current step is the
 | 
								// if step is breaking over a number of pages, determine if the current step is the
 | 
				
			||||||
			// location of a pagebreak.  ParaBreaks contains the paragraphs that break within a step.
 | 
								// location of a pagebreak.  ParaBreaks contains the paragraphs that break within a step.
 | 
				
			||||||
			if (MyPageHelper.ParaBreaks.Count > 0)
 | 
								if (MyPageHelper.ParaBreaks.Count > 0)
 | 
				
			||||||
@@ -202,8 +202,8 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				{
 | 
									{
 | 
				
			||||||
					MyPageHelper.ParaBreaks.RemoveAt(0);
 | 
										MyPageHelper.ParaBreaks.RemoveAt(0);
 | 
				
			||||||
					reason = AddReason("Partial Step - Case 1");
 | 
										reason = AddReason("Partial Step - Case 1");
 | 
				
			||||||
					ShowPageBreak(1,reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
										ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
					return 2;		// break on this item within a step
 | 
										return 2;       // break on this item within a step
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				// check for rnos:
 | 
									// check for rnos:
 | 
				
			||||||
				else if (MyPageHelper.ParaBreaks[0].CheckAlternates(this))
 | 
									else if (MyPageHelper.ParaBreaks[0].CheckAlternates(this))
 | 
				
			||||||
@@ -211,7 +211,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					MyPageHelper.ParaBreaks.RemoveAt(0);
 | 
										MyPageHelper.ParaBreaks.RemoveAt(0);
 | 
				
			||||||
					reason = AddReason("Partial Step - Case 2");
 | 
										reason = AddReason("Partial Step - Case 2");
 | 
				
			||||||
					ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
										ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
					return 2;		// break on this item within a step
 | 
										return 2;       // break on this item within a step
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				///////////////////
 | 
									///////////////////
 | 
				
			||||||
				//  The following else ifs are reached if something previously went wrong in pagination & this code tries to account for it.
 | 
									//  The following else ifs are reached if something previously went wrong in pagination & this code tries to account for it.
 | 
				
			||||||
@@ -224,7 +224,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					MyPageHelper.ParaBreaks.RemoveAt(0);
 | 
										MyPageHelper.ParaBreaks.RemoveAt(0);
 | 
				
			||||||
					reason = AddReason("Partial Step - Case 3");
 | 
										reason = AddReason("Partial Step - Case 3");
 | 
				
			||||||
					ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
										ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
					return 2;		// break on this item within a step
 | 
										return 2;       // break on this item within a step
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				// B2018-015 Pagination Issue VCS EOP-15.0 Step 15 - Handle when RNO is exactly aligned with the AER column
 | 
									// B2018-015 Pagination Issue VCS EOP-15.0 Step 15 - Handle when RNO is exactly aligned with the AER column
 | 
				
			||||||
				// B2018-065 Calvert's continue message was not including the substep number in AOP-1A Attachment 1, added AERandRNO check
 | 
									// B2018-065 Calvert's continue message was not including the substep number in AOP-1A Attachment 1, added AERandRNO check
 | 
				
			||||||
@@ -240,12 +240,12 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					//}
 | 
										//}
 | 
				
			||||||
					reason = AddReason("Partial Step - Case 4");
 | 
										reason = AddReason("Partial Step - Case 4");
 | 
				
			||||||
					ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
										ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
					return 2;		// break on this item within a step
 | 
										return 2;       // break on this item within a step
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				return 0;			// this is not an item with a break
 | 
									return 0;           // this is not an item with a break
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			float mySize = YSize * MyPageHelper.YMultiplier;
 | 
								float mySize = YSize * MyPageHelper.YMultiplier;
 | 
				
			||||||
			vlnParagraph firstChild =  ChildrenBelow.Count > 0 ? ChildrenBelow[0] : null;
 | 
								vlnParagraph firstChild = ChildrenBelow.Count > 0 ? ChildrenBelow[0] : null;
 | 
				
			||||||
			// Steps that have the smart template (the WCNCKL format for example), always include two children.
 | 
								// Steps that have the smart template (the WCNCKL format for example), always include two children.
 | 
				
			||||||
			if (MyItemInfo.IsHigh && MyItemInfo.FormatStepData.UseSmartTemplate) //
 | 
								if (MyItemInfo.IsHigh && MyItemInfo.FormatStepData.UseSmartTemplate) //
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
@@ -278,7 +278,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					StepConfig sc = firstChild.MyItemInfo.MyConfig as StepConfig;
 | 
										StepConfig sc = firstChild.MyItemInfo.MyConfig as StepConfig;
 | 
				
			||||||
					ManualPageBreak = MyPageHelper.OriginalPageBreak ? (sc == null ? false : sc.Step_ManualPagebreak) :
 | 
										ManualPageBreak = MyPageHelper.OriginalPageBreak ? (sc == null ? false : sc.Step_ManualPagebreak) :
 | 
				
			||||||
						sc == null ? false :
 | 
											sc == null ? false :
 | 
				
			||||||
						(MyPageHelper.MyPromsPrinter.RemoveManualPageBreaks == null)? sc.Step_NewManualPagebreak : false;
 | 
											(MyPageHelper.MyPromsPrinter.RemoveManualPageBreaks == null) ? sc.Step_NewManualPagebreak : false;
 | 
				
			||||||
					// C2021-010: Remove trailing returns/spaces & manual page breaks & allow save.
 | 
										// C2021-010: Remove trailing returns/spaces & manual page breaks & allow save.
 | 
				
			||||||
					if (sc != null && sc.Step_NewManualPagebreak && MyPageHelper.MyPromsPrinter.RemoveManualPageBreaks != null &&
 | 
										if (sc != null && sc.Step_NewManualPagebreak && MyPageHelper.MyPromsPrinter.RemoveManualPageBreaks != null &&
 | 
				
			||||||
						!MyPageHelper.MyPromsPrinter.RemoveManualPageBreaks.Contains(firstChild.MyItemInfo.ItemID)) MyPageHelper.MyPromsPrinter.RemoveManualPageBreaks.Add(firstChild.MyItemInfo.ItemID);
 | 
											!MyPageHelper.MyPromsPrinter.RemoveManualPageBreaks.Contains(firstChild.MyItemInfo.ItemID)) MyPageHelper.MyPromsPrinter.RemoveManualPageBreaks.Add(firstChild.MyItemInfo.ItemID);
 | 
				
			||||||
@@ -309,7 +309,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					float ySizeIncludingFirstStep = firstStepChild.YSize + (firstStepChild.YTopMost - YTopMost);
 | 
										float ySizeIncludingFirstStep = firstStepChild.YSize + (firstStepChild.YTopMost - YTopMost);
 | 
				
			||||||
					float ySizeBtmCtnMess = GetBottomContinueMessageSize(MyItemInfo.MyDocStyle);
 | 
										float ySizeBtmCtnMess = GetBottomContinueMessageSize(MyItemInfo.MyDocStyle);
 | 
				
			||||||
					float ySizeBtmEndMess = GetBottomEndMessageSize(MyItemInfo.MyDocStyle);
 | 
										float ySizeBtmEndMess = GetBottomEndMessageSize(MyItemInfo.MyDocStyle);
 | 
				
			||||||
					bool firstSubstepExceedsSpaceAvailable = ySizeIncludingFirstStep > (yWithinMargins - ySizeBtmCtnMess -ySizeBtmEndMess);
 | 
										bool firstSubstepExceedsSpaceAvailable = ySizeIncludingFirstStep > (yWithinMargins - ySizeBtmCtnMess - ySizeBtmEndMess);
 | 
				
			||||||
					if (KeepStepsOnPage && firstSubstepExceedsSpaceAvailable && !isFirstChild)
 | 
										if (KeepStepsOnPage && firstSubstepExceedsSpaceAvailable && !isFirstChild)
 | 
				
			||||||
						KeepStepsOnPage = false;
 | 
											KeepStepsOnPage = false;
 | 
				
			||||||
					if (ySizeIncludingFirst == YSize) KeepStepsOnPage = false;
 | 
										if (ySizeIncludingFirst == YSize) KeepStepsOnPage = false;
 | 
				
			||||||
@@ -370,8 +370,8 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					CompressFoldout = true;
 | 
										CompressFoldout = true;
 | 
				
			||||||
				return 0; // Don't Paginate (page break) on a Step Section if it's first thing on page
 | 
									return 0; // Don't Paginate (page break) on a Step Section if it's first thing on page
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if (!MyItemInfo.IsHigh) return 0;		// Don't Paginate on a Substep level
 | 
								if (!MyItemInfo.IsHigh) return 0;       // Don't Paginate on a Substep level
 | 
				
			||||||
			bool  doSectionTitleContinued = false;
 | 
								bool doSectionTitleContinued = false;
 | 
				
			||||||
			if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0)
 | 
								if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				float vpHeight = SixLinesPerInch;
 | 
									float vpHeight = SixLinesPerInch;
 | 
				
			||||||
@@ -396,7 +396,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				// if this step contains Cautions or Notes page breaks have to be added for those.
 | 
									// if this step contains Cautions or Notes page breaks have to be added for those.
 | 
				
			||||||
				if (TopMostChild != this) PageBreakOnStep = true;
 | 
									if (TopMostChild != this) PageBreakOnStep = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				BuildPageBreakList(yPageSize, yPageSize, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, true);			// Case 1 :Works for ES05 Step 15 SubStep 7
 | 
									BuildPageBreakList(yPageSize, yPageSize, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, true);          // Case 1 :Works for ES05 Step 15 SubStep 7
 | 
				
			||||||
				ShowPageBreak(1, "Page Break on Steps, Cautions or Notes", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
									ShowPageBreak(1, "Page Break on Steps, Cautions or Notes", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
				return 1;
 | 
									return 1;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -445,16 +445,16 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			if (BreakHighLevelStepWithSection) KeepWithHeader = true;
 | 
								if (BreakHighLevelStepWithSection) KeepWithHeader = true;
 | 
				
			||||||
			// for a HLS that has an asterisk box with the rno separator IN the box, adjust the size by 2 lines to account for box.
 | 
								// for a HLS that has an asterisk box with the rno separator IN the box, adjust the size by 2 lines to account for box.
 | 
				
			||||||
			if (MyItemInfo.IsStep && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex != null && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex >= 0 &&
 | 
								if (MyItemInfo.IsStep && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex != null && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex >= 0 &&
 | 
				
			||||||
				(MyItemInfo.RNOs==null ||MyItemInfo.RNOs.Count==0))
 | 
									(MyItemInfo.RNOs == null || MyItemInfo.RNOs.Count == 0))
 | 
				
			||||||
				mySize += (2*SixLinesPerInch);
 | 
									mySize += (2 * SixLinesPerInch);
 | 
				
			||||||
			// mySize is the size of this step and includes an extra blank line. For HLS, if this is the last step in section & there is room in footer to keep
 | 
								// mySize is the size of this step and includes an extra blank line. For HLS, if this is the last step in section & there is room in footer to keep
 | 
				
			||||||
 			// step on the page, do so by eliminating the blank line before doing the test to see if it fits.
 | 
								// step on the page, do so by eliminating the blank line before doing the test to see if it fits.
 | 
				
			||||||
			// B2017-254 Fixed Pagination Logic when checking to see if the current item is the last high level step
 | 
								// B2017-254 Fixed Pagination Logic when checking to see if the current item is the last high level step
 | 
				
			||||||
			if (MyItemInfo.IsHigh && mySize >= (2 * SixLinesPerInch) && MyItemInfo.MyDocStyle.Layout.FooterLength > 0 && (MyItemInfo.MyDocStyle.End.Message == null || MyItemInfo.MyDocStyle.End.Message == "") && MyItemInfo.NextItem == null && (MyItemInfo.Steps == null || MyItemInfo.Steps.Count == 0) && (MyItemInfo.RNOs == null || MyItemInfo.RNOs.Count == 0))
 | 
								if (MyItemInfo.IsHigh && mySize >= (2 * SixLinesPerInch) && MyItemInfo.MyDocStyle.Layout.FooterLength > 0 && (MyItemInfo.MyDocStyle.End.Message == null || MyItemInfo.MyDocStyle.End.Message == "") && MyItemInfo.NextItem == null && (MyItemInfo.Steps == null || MyItemInfo.Steps.Count == 0) && (MyItemInfo.RNOs == null || MyItemInfo.RNOs.Count == 0))
 | 
				
			||||||
				mySize -= SixLinesPerInch;
 | 
									mySize -= SixLinesPerInch;
 | 
				
			||||||
			//// Account for extra lines in the end message (flag < 0)
 | 
								//// Account for extra lines in the end message (flag < 0)
 | 
				
			||||||
			float adjMsgY = 0;
 | 
								float adjMsgY = 0;
 | 
				
			||||||
			if (MyItemInfo.IsHigh && MyItemInfo.NextItem == null && MyItemInfo.MyDocStyle.End.Flag < 0)		// Adjust this many lines down the page.
 | 
								if (MyItemInfo.IsHigh && MyItemInfo.NextItem == null && MyItemInfo.MyDocStyle.End.Flag < 0)     // Adjust this many lines down the page.
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				adjMsgY = (float)-MyItemInfo.MyDocStyle.End.Flag * SixLinesPerInch;
 | 
									adjMsgY = (float)-MyItemInfo.MyDocStyle.End.Flag * SixLinesPerInch;
 | 
				
			||||||
				if (yEndMsg != 0) yEndMsg += adjMsgY;
 | 
									if (yEndMsg != 0) yEndMsg += adjMsgY;
 | 
				
			||||||
@@ -486,7 +486,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				//   888     888   888       o oo     .d8P       `888'`888'     888   888   888      888     888    888 . 
 | 
									//   888     888   888       o oo     .d8P       `888'`888'     888   888   888      888     888    888 . 
 | 
				
			||||||
				//  o888o   o888o o888ooooood8 8""88888P'         `8'  `8'     o888o o888o o888o    o888o   o888o   "888" 
 | 
									//  o888o   o888o o888ooooood8 8""88888P'         `8'  `8'     o888o o888o o888o    o888o   o888o   "888" 
 | 
				
			||||||
				//Console.WriteLine("'PageBreak',1,'No','HLS will fit on page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath);
 | 
									//Console.WriteLine("'PageBreak',1,'No','HLS will fit on page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath);
 | 
				
			||||||
				ShowPageBreak(-1, "HLS will fit on page", firstStep, YSize, yPageSize, yWithinMargins,ManualPageBreak);
 | 
									ShowPageBreak(-1, "HLS will fit on page", firstStep, YSize, yPageSize, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
				return 0;
 | 
									return 0;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			// !MyItemInfo.IsHigh - if (MyItemInfo.IsRNOPart && MyParent.XOffset < XOffset) return 0; // Don't paginate on an RNO to the right
 | 
								// !MyItemInfo.IsHigh - if (MyItemInfo.IsRNOPart && MyParent.XOffset < XOffset) return 0; // Don't paginate on an RNO to the right
 | 
				
			||||||
@@ -500,7 +500,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			// this next page size is the same as current page size.
 | 
								// this next page size is the same as current page size.
 | 
				
			||||||
			float yPageSizeNextPage = yPageSize;
 | 
								float yPageSizeNextPage = yPageSize;
 | 
				
			||||||
			mySize = YSize;   // reset in case mySize changed for current page is compressed
 | 
								mySize = YSize;   // reset in case mySize changed for current page is compressed
 | 
				
			||||||
			// for a HLS that has an asterisk box with the rno separator IN the box, adjust the size by 2 lines to account for box.
 | 
												  // for a HLS that has an asterisk box with the rno separator IN the box, adjust the size by 2 lines to account for box.
 | 
				
			||||||
			if (MyItemInfo.IsStep && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex != null && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex >= 0 &&
 | 
								if (MyItemInfo.IsStep && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex != null && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex >= 0 &&
 | 
				
			||||||
				(MyItemInfo.RNOs == null || MyItemInfo.RNOs.Count == 0))
 | 
									(MyItemInfo.RNOs == null || MyItemInfo.RNOs.Count == 0))
 | 
				
			||||||
				mySize += (2 * SixLinesPerInch);
 | 
									mySize += (2 * SixLinesPerInch);
 | 
				
			||||||
@@ -519,8 +519,8 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				//_MyLog.WarnFormat("Kick Step to Next Page {0},{1}", MyItemInfo.ItemID, MyItemInfo.ShortPath);
 | 
									//_MyLog.WarnFormat("Kick Step to Next Page {0},{1}", MyItemInfo.ItemID, MyItemInfo.ShortPath);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if (yWithinMargins < SixLinesPerInch) KeepStepsOnPage = false;  // if there is no room to print, don't keep steps on the page
 | 
								if (yWithinMargins < SixLinesPerInch) KeepStepsOnPage = false;  // if there is no room to print, don't keep steps on the page
 | 
				
			||||||
			// The following was added for IP2 background printing.  There were situations where there was a HLS and its paragraph was
 | 
																								// The following was added for IP2 background printing.  There were situations where there was a HLS and its paragraph was
 | 
				
			||||||
			// put on next page (IP2 bck: E-3/References), and a paragraph was writing into the footer (FR-H.1 step 2.2.3.1.  KBR 10/14/14)
 | 
																								// put on next page (IP2 bck: E-3/References), and a paragraph was writing into the footer (FR-H.1 step 2.2.3.1.  KBR 10/14/14)
 | 
				
			||||||
			if (KeepStepsOnPage
 | 
								if (KeepStepsOnPage
 | 
				
			||||||
				&& MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.PaginateOnLowerStepLevel
 | 
									&& MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.PaginateOnLowerStepLevel
 | 
				
			||||||
				&& YSize == ySizeIncludingFirst
 | 
									&& YSize == ySizeIncludingFirst
 | 
				
			||||||
@@ -560,7 +560,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			float ySizeBtmCtnMess1 = GetBottomContinueMessageSize(MyItemInfo.MyDocStyle);
 | 
								float ySizeBtmCtnMess1 = GetBottomContinueMessageSize(MyItemInfo.MyDocStyle);
 | 
				
			||||||
			float ySizeBtmEndMess1 = GetBottomEndMessageSize(MyItemInfo.MyDocStyle);
 | 
								float ySizeBtmEndMess1 = GetBottomEndMessageSize(MyItemInfo.MyDocStyle);
 | 
				
			||||||
			// B2017-154 Don't leave an orphan on the next page if the high level step and first sub-step will fit on the current page
 | 
								// B2017-154 Don't leave an orphan on the next page if the high level step and first sub-step will fit on the current page
 | 
				
			||||||
			if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.NoOrphans1 &&  KeepStepsOnPage && ChildrenBelow.Count == 2)// Handle Orphans when there are two sub-steps and only one will fit.
 | 
								if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.NoOrphans1 && KeepStepsOnPage && ChildrenBelow.Count == 2)// Handle Orphans when there are two sub-steps and only one will fit.
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				vlnParagraph orphan = ChildrenBelow[1];// Verify that the orphan has no children
 | 
									vlnParagraph orphan = ChildrenBelow[1];// Verify that the orphan has no children
 | 
				
			||||||
				if (orphan.ChildrenBelow.Count == 0 && orphan.ChildrenAbove.Count == 0 && orphan.ChildrenLeft.Count == 0 && orphan.ChildrenRight.Count == 0)
 | 
									if (orphan.ChildrenBelow.Count == 0 && orphan.ChildrenAbove.Count == 0 && orphan.ChildrenLeft.Count == 0 && orphan.ChildrenRight.Count == 0)
 | 
				
			||||||
@@ -569,10 +569,23 @@ 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).
 | 
				
			||||||
			if (!KeepWithHeader && !KeepStepsOnPage && mySize - SixLinesPerInch + yEndMsg - tableSpaceAvailable <= yPageSizeNextPage)	// if the entire step can fit on one page, do a page break
 | 
									// 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
 | 
									// Don't want extra line before step
 | 
				
			||||||
				//Console.WriteLine("'PageBreak',2,'Yes','HLS will fit on 1 Page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath);
 | 
									//Console.WriteLine("'PageBreak',2,'Yes','HLS will fit on 1 Page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath);
 | 
				
			||||||
@@ -589,7 +602,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			// TODO - yEndMsg - compressed size?
 | 
								// TODO - yEndMsg - compressed size?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				// ySize7LPI includes a blank line after the step which we don't want to include in the page break test.
 | 
								// ySize7LPI includes a blank line after the step which we don't want to include in the page break test.
 | 
				
			||||||
			else if (!KeepStepsOnPage && MyItemInfo.ActiveFormat.MyStepSectionLayoutData.CompressSteps
 | 
								else if (!KeepStepsOnPage && MyItemInfo.ActiveFormat.MyStepSectionLayoutData.CompressSteps
 | 
				
			||||||
				//&& (mySize7LPI - SixLinesPerInch + yEndMsg - tableSpaceAvailable) < (yPageSizeNextPage * SixLinesPerInch / _SevenLinesPerInch))// RHM20150525 - Table Scrunch
 | 
									//&& (mySize7LPI - SixLinesPerInch + yEndMsg - tableSpaceAvailable) < (yPageSizeNextPage * SixLinesPerInch / _SevenLinesPerInch))// RHM20150525 - Table Scrunch
 | 
				
			||||||
				// if this is the first step, then the step has to fit in the space that remains on the page
 | 
									// if this is the first step, then the step has to fit in the space that remains on the page
 | 
				
			||||||
@@ -615,7 +628,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			else // The entire step cannot fit on a blank page or KeepStepsOnPage is true.
 | 
								else // The entire step cannot fit on a blank page or KeepStepsOnPage is true.
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				// if there is more than half a page left, then start to print on the current page
 | 
									// if there is more than half a page left, then start to print on the current page
 | 
				
			||||||
				float myFirstPieceSize = GetFirstPieceSize();		//Case 0
 | 
									float myFirstPieceSize = GetFirstPieceSize();       //Case 0
 | 
				
			||||||
				if (_Match16BitPagination) myFirstPieceSize += 2 * SixLinesPerInch;
 | 
									if (_Match16BitPagination) myFirstPieceSize += 2 * SixLinesPerInch;
 | 
				
			||||||
				// TODO:  Put this line back to case 0, i.e. previous line.  This fixes a 16-bit vs 32-bit pagination diff in EO30 Step 20.
 | 
									// TODO:  Put this line back to case 0, i.e. previous line.  This fixes a 16-bit vs 32-bit pagination diff in EO30 Step 20.
 | 
				
			||||||
				//float myFirstPieceSize = GetFirstPieceSize() + 2 * SixLinesPerInch;		//Case 10 - this is to match 16bit
 | 
									//float myFirstPieceSize = GetFirstPieceSize() + 2 * SixLinesPerInch;		//Case 10 - this is to match 16bit
 | 
				
			||||||
@@ -649,19 +662,19 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					// if the HLS is part of a Smart Template (i.e. WCNCKL table), don't add in an extra line because
 | 
										// if the HLS is part of a Smart Template (i.e. WCNCKL table), don't add in an extra line because
 | 
				
			||||||
					// that makes pagination work incorrectly because the Smart Template has a 'table' line after the
 | 
										// that makes pagination work incorrectly because the Smart Template has a 'table' line after the
 | 
				
			||||||
					// text.
 | 
										// text.
 | 
				
			||||||
					float	ySpaceOnFirstPage = yWithinMargins + (MyItemInfo.FormatStepData.UseSmartTemplate ? 0 : SixLinesPerInch);
 | 
										float ySpaceOnFirstPage = yWithinMargins + (MyItemInfo.FormatStepData.UseSmartTemplate ? 0 : SixLinesPerInch);
 | 
				
			||||||
					if (firstStep == "Yes")
 | 
										if (firstStep == "Yes")
 | 
				
			||||||
					//{
 | 
											//{
 | 
				
			||||||
						ySpaceOnFirstPage = yWithinMargins; // Accounts for Section Title Line
 | 
											ySpaceOnFirstPage = yWithinMargins; // Accounts for Section Title Line
 | 
				
			||||||
						//ShowPageBreak(8, CheckForCompression("First HLS has to split on current page"), firstStep, YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
																				//ShowPageBreak(8, CheckForCompression("First HLS has to split on current page"), firstStep, YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
					//}
 | 
																				//}
 | 
				
			||||||
					//else
 | 
																				//else
 | 
				
			||||||
					//	ShowPageBreak(6, CheckForCompression("HLS will have to split on current page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
																				//	ShowPageBreak(6, CheckForCompression("HLS will have to split on current page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
					//BuildPageBreakList(yWithinMargins + SixLinesPerInch, yPageSizeNextPage + yExtra2, KeepStepsOnPage);	// Case 5 - Determine items where page break(s) occur
 | 
																				//BuildPageBreakList(yWithinMargins + SixLinesPerInch, yPageSizeNextPage + yExtra2, KeepStepsOnPage);	// Case 5 - Determine items where page break(s) occur
 | 
				
			||||||
					// B2020-027: adjust for lines that may print on first page of section only, added MyPageHelper.PrintedSectionPage
 | 
																				// B2020-027: adjust for lines that may print on first page of section only, added MyPageHelper.PrintedSectionPage
 | 
				
			||||||
					// B2020-108: The bug itself was related to keeping a table with its parent.  However compression for some pages was
 | 
																				// B2020-108: The bug itself was related to keeping a table with its parent.  However compression for some pages was
 | 
				
			||||||
					//		not working because onnewpage was always false in the next BuildPageBreakList call.  onnewpage is used to determine compression 
 | 
																				//		not working because onnewpage was always false in the next BuildPageBreakList call.  onnewpage is used to determine compression 
 | 
				
			||||||
					//		(has to be on a new page to compress page). Use calculated value rather than always false in this case.
 | 
																				//		(has to be on a new page to compress page). Use calculated value rather than always false in this case.
 | 
				
			||||||
					bool onnewpage = MyItemInfo.MyPrevious == null && (MyItemInfo.MyActiveSection as SectionInfo) != null
 | 
										bool onnewpage = MyItemInfo.MyPrevious == null && (MyItemInfo.MyActiveSection as SectionInfo) != null
 | 
				
			||||||
						&& (MyItemInfo.MyActiveSection as SectionInfo).IsSeparatePagination();
 | 
											&& (MyItemInfo.MyActiveSection as SectionInfo).IsSeparatePagination();
 | 
				
			||||||
					// B2020-123: Missing section continue message, onnewpage needs to be set to true:
 | 
										// B2020-123: Missing section continue message, onnewpage needs to be set to true:
 | 
				
			||||||
@@ -670,16 +683,16 @@ namespace Volian.Print.Library
 | 
				
			|||||||
						onnewpage = true;
 | 
											onnewpage = true;
 | 
				
			||||||
						MyParent.CalvertPrintedSubSectTitle = false;
 | 
											MyParent.CalvertPrintedSubSectTitle = false;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					BuildPageBreakList(ySpaceOnFirstPage, yPageSize + yExtra2 + MyPageHelper.PrintedSectionPage, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, onnewpage);	// Case 5 - Determine items where page break(s) occur
 | 
										BuildPageBreakList(ySpaceOnFirstPage, yPageSize + yExtra2 + MyPageHelper.PrintedSectionPage, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, onnewpage); // Case 5 - Determine items where page break(s) occur
 | 
				
			||||||
					//  ooooo   ooooo ooooo         .oooooo..o     .oooooo..o            oooo   o8o      .        .oooooo.                                                           .   
 | 
																																																						//  ooooo   ooooo ooooo         .oooooo..o     .oooooo..o            oooo   o8o      .        .oooooo.                                                           .   
 | 
				
			||||||
					//  `888'   `888' `888'        d8P'    `Y8    d8P'    `Y8            `888   `"'    .o8       d8P'  `Y8b                                                        .o8   
 | 
																																																						//  `888'   `888' `888'        d8P'    `Y8    d8P'    `Y8            `888   `"'    .o8       d8P'  `Y8b                                                        .o8   
 | 
				
			||||||
					//   888     888   888         Y88bo.         Y88bo.      oo.ooooo.   888  oooo  .o888oo    888          oooo  oooo  oooo d8b oooo d8b  .ooooo.  ooo. .oo.   .o888oo 
 | 
																																																						//   888     888   888         Y88bo.         Y88bo.      oo.ooooo.   888  oooo  .o888oo    888          oooo  oooo  oooo d8b oooo d8b  .ooooo.  ooo. .oo.   .o888oo 
 | 
				
			||||||
					//   888ooooo888   888          `"Y8888o.      `"Y8888o.   888' `88b  888  `888    888      888          `888  `888  `888""8P `888""8P d88' `88b `888P"Y88b    888   
 | 
																																																						//   888ooooo888   888          `"Y8888o.      `"Y8888o.   888' `88b  888  `888    888      888          `888  `888  `888""8P `888""8P d88' `88b `888P"Y88b    888   
 | 
				
			||||||
					//   888     888   888              `"Y88b         `"Y88b  888   888  888   888    888      888           888   888   888      888     888ooo888  888   888    888   
 | 
																																																						//   888     888   888              `"Y88b         `"Y88b  888   888  888   888    888      888           888   888   888      888     888ooo888  888   888    888   
 | 
				
			||||||
					//   888     888   888       o oo     .d8P    oo     .d8P  888   888  888   888    888 .    `88b    ooo   888   888   888      888     888    .o  888   888    888 . 
 | 
																																																						//   888     888   888       o oo     .d8P    oo     .d8P  888   888  888   888    888 .    `88b    ooo   888   888   888      888     888    .o  888   888    888 . 
 | 
				
			||||||
					//  o888o   o888o o888ooooood8 8""88888P'     8""88888P'   888bod8P' o888o o888o   "888"     `Y8bood8P'   `V88V"V8P' d888b    d888b    `Y8bod8P' o888o o888o   "888" 
 | 
																																																						//  o888o   o888o o888ooooood8 8""88888P'     8""88888P'   888bod8P' o888o o888o   "888"     `Y8bood8P'   `V88V"V8P' d888b    d888b    `Y8bod8P' o888o o888o   "888" 
 | 
				
			||||||
					//                                                         888                                                                                                       
 | 
																																																						//                                                         888                                                                                                       
 | 
				
			||||||
					//                                                        o888o                                                                                                      
 | 
																																																						//                                                        o888o                                                                                                      
 | 
				
			||||||
					if (firstStep == "Yes")
 | 
										if (firstStep == "Yes")
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						//ySpaceOnFirstPage = yWithinMargins; // Accounts for Section Title Line
 | 
											//ySpaceOnFirstPage = yWithinMargins; // Accounts for Section Title Line
 | 
				
			||||||
@@ -688,10 +701,10 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					else
 | 
										else
 | 
				
			||||||
						ShowPageBreak(6, CheckForFirstCompression("HLS will have to split on current page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
											ShowPageBreak(6, CheckForFirstCompression("HLS will have to split on current page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
					// B2018-081 - Fix pagination when a Step and it's substeps are so complicated that the high level step is separated from its high level RNO
 | 
										// B2018-081 - Fix pagination when a Step and it's substeps are so complicated that the high level step is separated from its high level RNO
 | 
				
			||||||
					if(this.MyItemInfo.IsHigh && MyPageHelper.ParaBreaks.Count > 0 && MyPageHelper.ParaBreaks[0].MyItemInfo.IsHigh)
 | 
										if (this.MyItemInfo.IsHigh && MyPageHelper.ParaBreaks.Count > 0 && MyPageHelper.ParaBreaks[0].MyItemInfo.IsHigh)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						MyPageHelper.ParaBreaks.Clear();
 | 
											MyPageHelper.ParaBreaks.Clear();
 | 
				
			||||||
						BuildPageBreakList(yPageSize + yExtra, yPageSizeNextPage + yExtra2, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, true);			// Case 1 :Works for ES05 Step 15 SubStep 7
 | 
											BuildPageBreakList(yPageSize + yExtra, yPageSizeNextPage + yExtra2, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, true);           // Case 1 :Works for ES05 Step 15 SubStep 7
 | 
				
			||||||
						ShowPageBreak(6, CheckForFirstCompression("HLS will have to split on next page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
											ShowPageBreak(6, CheckForFirstCompression("HLS will have to split on next page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
						return 1;
 | 
											return 1;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
@@ -701,7 +714,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
								&& ChildrenRight[0].YSize <= yPageSizeNextPage && ChildrenRight[0].YSize > yWithinMargins)
 | 
													&& ChildrenRight[0].YSize <= yPageSizeNextPage && ChildrenRight[0].YSize > yWithinMargins)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						MyPageHelper.ParaBreaks.Clear();
 | 
											MyPageHelper.ParaBreaks.Clear();
 | 
				
			||||||
						BuildPageBreakList(yPageSize + yExtra, yPageSizeNextPage + yExtra2, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, true);			// Case 1 :Works for ES05 Step 15 SubStep 7
 | 
											BuildPageBreakList(yPageSize + yExtra, yPageSizeNextPage + yExtra2, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, true);           // Case 1 :Works for ES05 Step 15 SubStep 7
 | 
				
			||||||
						ShowPageBreak(6, CheckForFirstCompression("HLS with RNO will have to split on next page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
											ShowPageBreak(6, CheckForFirstCompression("HLS with RNO will have to split on next page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
						return 1;
 | 
											return 1;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
@@ -714,7 +727,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
						ShowPageBreak(6, CheckForFirstCompression("HLS with Separate Pagination for SubSection"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
											ShowPageBreak(6, CheckForFirstCompression("HLS with Separate Pagination for SubSection"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
						return 1;
 | 
											return 1;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					return 0;	// Stay on this page
 | 
										return 0;   // Stay on this page
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				// Less than half a page left, start printing on a new page.
 | 
									// Less than half a page left, start printing on a new page.
 | 
				
			||||||
@@ -725,21 +738,21 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				// Pagination Fix Break1LineShort2	
 | 
									// Pagination Fix Break1LineShort2	
 | 
				
			||||||
				//BuildPageBreakList(yPageSize + yExtra, yPageSize);			// Case 1 :Works for ES05 Step 15 SubStep 7
 | 
									//BuildPageBreakList(yPageSize + yExtra, yPageSize);			// Case 1 :Works for ES05 Step 15 SubStep 7
 | 
				
			||||||
				// Pagination Fix Break1LineShort4	
 | 
									// Pagination Fix Break1LineShort4	
 | 
				
			||||||
				BuildPageBreakList(yPageSize + yExtra, yPageSizeNextPage + yExtra2, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, true);			// Case 1 :Works for ES05 Step 15 SubStep 7
 | 
									BuildPageBreakList(yPageSize + yExtra, yPageSizeNextPage + yExtra2, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles, true);           // Case 1 :Works for ES05 Step 15 SubStep 7
 | 
				
			||||||
				//  ooooo   ooooo ooooo         .oooooo..o     .oooooo..o            oooo   o8o      .      ooooo      ooo                            
 | 
																																																//  ooooo   ooooo ooooo         .oooooo..o     .oooooo..o            oooo   o8o      .      ooooo      ooo                            
 | 
				
			||||||
				//  `888'   `888' `888'        d8P'    `Y8    d8P'    `Y8            `888   `"'    .o8      `888b.     `8'                            
 | 
																																																//  `888'   `888' `888'        d8P'    `Y8    d8P'    `Y8            `888   `"'    .o8      `888b.     `8'                            
 | 
				
			||||||
				//   888     888   888         Y88bo.         Y88bo.      oo.ooooo.   888  oooo  .o888oo     8 `88b.    8   .ooooo.  oooo oooo    ooo 
 | 
																																																//   888     888   888         Y88bo.         Y88bo.      oo.ooooo.   888  oooo  .o888oo     8 `88b.    8   .ooooo.  oooo oooo    ooo 
 | 
				
			||||||
				//   888ooooo888   888          `"Y8888o.      `"Y8888o.   888' `88b  888  `888    888       8   `88b.  8  d88' `88b  `88. `88.  .8'  
 | 
																																																//   888ooooo888   888          `"Y8888o.      `"Y8888o.   888' `88b  888  `888    888       8   `88b.  8  d88' `88b  `88. `88.  .8'  
 | 
				
			||||||
				//   888     888   888              `"Y88b         `"Y88b  888   888  888   888    888       8     `88b.8  888ooo888   `88..]88..8'   
 | 
																																																//   888     888   888              `"Y88b         `"Y88b  888   888  888   888    888       8     `88b.8  888ooo888   `88..]88..8'   
 | 
				
			||||||
				//   888     888   888       o oo     .d8P    oo     .d8P  888   888  888   888    888 .     8       `888  888    .o    `888'`888'    
 | 
																																																//   888     888   888       o oo     .d8P    oo     .d8P  888   888  888   888    888 .     8       `888  888    .o    `888'`888'    
 | 
				
			||||||
				//  o888o   o888o o888ooooood8 8""88888P'     8""88888P'   888bod8P' o888o o888o   "888"    o8o        `8  `Y8bod8P'     `8'  `8'     
 | 
																																																//  o888o   o888o o888ooooood8 8""88888P'     8""88888P'   888bod8P' o888o o888o   "888"    o8o        `8  `Y8bod8P'     `8'  `8'     
 | 
				
			||||||
				//                                                         888                                                                        
 | 
																																																//                                                         888                                                                        
 | 
				
			||||||
				//                                                        o888o                                                                       
 | 
																																																//                                                        o888o                                                                       
 | 
				
			||||||
				if (firstStep == "Yes")
 | 
									if (firstStep == "Yes")
 | 
				
			||||||
					ShowPageBreak(9, CheckForFirstCompression("First HLS will have to split on new page"), "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
										ShowPageBreak(9, CheckForFirstCompression("First HLS will have to split on new page"), "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
					ShowPageBreak(3, CheckForFirstCompression("HLS will have to split on new page"), "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
										ShowPageBreak(3, CheckForFirstCompression("HLS will have to split on new page"), "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
 | 
				
			||||||
				return 1;		// Paginate on High Level Steps
 | 
									return 1;       // Paginate on High Level Steps
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			//if (yWithinMargins > yPageSize / 2)
 | 
								//if (yWithinMargins > yPageSize / 2)
 | 
				
			||||||
			//{
 | 
								//{
 | 
				
			||||||
@@ -760,7 +773,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			bool hasRNO = false;
 | 
								bool hasRNO = false;
 | 
				
			||||||
			if (itemInfo1.IsInRNO) hasRNO |= true;
 | 
								if (itemInfo1.IsInRNO) hasRNO |= true;
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				hasAER |=true;
 | 
									hasAER |= true;
 | 
				
			||||||
			if (itemInfo2.IsInRNO) hasRNO |= true;
 | 
								if (itemInfo2.IsInRNO) hasRNO |= true;
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				hasAER |= true;
 | 
									hasAER |= true;
 | 
				
			||||||
@@ -774,14 +787,14 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			if (endmsg != "")
 | 
								if (endmsg != "")
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				string[] splitOn = { "\\par" }; // B2018-058 account for RTF newlines ( used for V.C. Summer End messages)
 | 
									string[] splitOn = { "\\par" }; // B2018-058 account for RTF newlines ( used for V.C. Summer End messages)
 | 
				
			||||||
				EndMsgHeight = (endmsg.Split(splitOn,StringSplitOptions.RemoveEmptyEntries).Length + 1) * SixLinesPerInch;
 | 
									EndMsgHeight = (endmsg.Split(splitOn, StringSplitOptions.RemoveEmptyEntries).Length + 1) * SixLinesPerInch;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			return EndMsgHeight;
 | 
								return EndMsgHeight;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		private float GetBottomEndMessageSize(DocStyle docstyle)
 | 
							private float GetBottomEndMessageSize(DocStyle docstyle)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			float myBottomMsgSpace = 0;
 | 
								float myBottomMsgSpace = 0;
 | 
				
			||||||
			if (MyItemInfo.IsHigh && MyItemInfo.NextItem == null && MyItemInfo.MyDocStyle.End.Flag < 0)		// Adjust this many lines down the page.
 | 
								if (MyItemInfo.IsHigh && MyItemInfo.NextItem == null && MyItemInfo.MyDocStyle.End.Flag < 0)     // Adjust this many lines down the page.
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				docstyle = MyItemInfo.MyDocStyle;
 | 
									docstyle = MyItemInfo.MyDocStyle;
 | 
				
			||||||
				string myBottomMsg = docstyle.End.Message;
 | 
									string myBottomMsg = docstyle.End.Message;
 | 
				
			||||||
@@ -863,7 +876,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				// B2020-159: If forced pagination errors occurred, add a description to be placed on a dialog after printing.
 | 
									// B2020-159: If forced pagination errors occurred, add a description to be placed on a dialog after printing.
 | 
				
			||||||
				if (PromsPrinter.ForcedPaginations == null) PromsPrinter.ForcedPaginations = new List<string>();
 | 
									if (PromsPrinter.ForcedPaginations == null) PromsPrinter.ForcedPaginations = new List<string>();
 | 
				
			||||||
				string path = MyItemInfo.Path.Replace(MyItemInfo.MyProcedure.DisplayText, "").Replace(MyItemInfo.MyProcedure.DisplayNumber, "").TrimStart(" ,".ToCharArray());
 | 
									string path = MyItemInfo.Path.Replace(MyItemInfo.MyProcedure.DisplayText, "").Replace(MyItemInfo.MyProcedure.DisplayNumber, "").TrimStart(" ,".ToCharArray());
 | 
				
			||||||
				PromsPrinter.ForcedPaginations.Add(string.Format("{0}\t{1}\t{2}", MyPromsPrinter.PDFFile.Substring(0,MyPromsPrinter.PDFFile.IndexOf(".")), path, MyItemInfo.PageNumber));
 | 
									PromsPrinter.ForcedPaginations.Add(string.Format("{0}\t{1}\t{2}", MyPromsPrinter.PDFFile.Substring(0, MyPromsPrinter.PDFFile.IndexOf(".")), path, MyItemInfo.PageNumber));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && MyPageHelper.CreatingSupInfoPage)
 | 
								if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && MyPageHelper.CreatingSupInfoPage)
 | 
				
			||||||
@@ -875,7 +888,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			if (breakOrNot != "No")
 | 
								if (breakOrNot != "No")
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				bool hasBox = MyItemInfo.IsStep && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex != null && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex >= 0;
 | 
									bool hasBox = MyItemInfo.IsStep && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex != null && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex >= 0;
 | 
				
			||||||
				bool rnoSepIn = (MyItemInfo.RNOs==null ||MyItemInfo.RNOs.Count==0);
 | 
									bool rnoSepIn = (MyItemInfo.RNOs == null || MyItemInfo.RNOs.Count == 0);
 | 
				
			||||||
				// DebugPagination.WriteLine("{0}", MyItemInfo.DBSequence); //,instance);
 | 
									// DebugPagination.WriteLine("{0}", MyItemInfo.DBSequence); //,instance);
 | 
				
			||||||
				if (DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}',{2},'{3}','{4}',{5},{6},{7},{8},{9},{10},{11}",
 | 
									if (DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}',{2},'{3}','{4}',{5},{6},{7},{8},{9},{10},{11}",
 | 
				
			||||||
					MyPageHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber - (breakOrNot == "Yes" ? 0 : 1),
 | 
										MyPageHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber - (breakOrNot == "Yes" ? 0 : 1),
 | 
				
			||||||
@@ -921,10 +934,10 @@ namespace Volian.Print.Library
 | 
				
			|||||||
		private bool CheckAlternates(vlnParagraph vpBrk)
 | 
							private bool CheckAlternates(vlnParagraph vpBrk)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if (_AlternateBreaks == null) return false;
 | 
								if (_AlternateBreaks == null) return false;
 | 
				
			||||||
			foreach(vlnParagraph vp in AlternateBreaks)
 | 
								foreach (vlnParagraph vp in AlternateBreaks)
 | 
				
			||||||
				if (vp.MyItemInfo.ItemID == vpBrk.MyItemInfo.ItemID)
 | 
									if (vp.MyItemInfo.ItemID == vpBrk.MyItemInfo.ItemID)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
//					_MyLog.WarnFormat("alternate used '{0}'-'{1}'",vpBrk.MyItemInfo.ShortPath,vp.MyItemInfo.ShortPath);
 | 
										//					_MyLog.WarnFormat("alternate used '{0}'-'{1}'",vpBrk.MyItemInfo.ShortPath,vp.MyItemInfo.ShortPath);
 | 
				
			||||||
					return true;
 | 
										return true;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			return false;
 | 
								return false;
 | 
				
			||||||
@@ -980,13 +993,13 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					yLowerLimit = yStart + 2 * SixLinesPerInch;
 | 
										yLowerLimit = yStart + 2 * SixLinesPerInch;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			// Make sure that the FirstPiece (Caution Note HLS and First Substeps) fit
 | 
								// Make sure that the FirstPiece (Caution Note HLS and First Substeps) fit
 | 
				
			||||||
			float myFirstPieceSize = GetFirstPieceSize();		//Case 0
 | 
								float myFirstPieceSize = GetFirstPieceSize();       //Case 0
 | 
				
			||||||
			// the following logic was added to fix Pagination for VCS BDMG1 Step 4
 | 
																					// the following logic was added to fix Pagination for VCS BDMG1 Step 4
 | 
				
			||||||
			if (ChildrenRight.Count > 0 && ChildrenRight[0].YOffset == YOffset)
 | 
								if (ChildrenRight.Count > 0 && ChildrenRight[0].YOffset == YOffset)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				float myFirstPieceRNOSize = 0;
 | 
									float myFirstPieceRNOSize = 0;
 | 
				
			||||||
				myFirstPieceRNOSize = ChildrenRight[0].GetFirstPieceSize();
 | 
									myFirstPieceRNOSize = ChildrenRight[0].GetFirstPieceSize();
 | 
				
			||||||
				if(myFirstPieceRNOSize < ySpaceOnCurPage)
 | 
									if (myFirstPieceRNOSize < ySpaceOnCurPage)
 | 
				
			||||||
					if (ChildrenBelow.Count > 0)
 | 
										if (ChildrenBelow.Count > 0)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						float myFirstPieceAERSize = ChildrenBelow[0].GetFirstPieceSize() + ChildrenBelow[0].YOffset - YOffset;
 | 
											float myFirstPieceAERSize = ChildrenBelow[0].GetFirstPieceSize() + ChildrenBelow[0].YOffset - YOffset;
 | 
				
			||||||
@@ -1001,10 +1014,10 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			float myBottomMsgSpace = GetBottomContinueMessageSize(docstyle);
 | 
								float myBottomMsgSpace = GetBottomContinueMessageSize(docstyle);
 | 
				
			||||||
			switch (docstyle.Continue.Bottom.Location)
 | 
								switch (docstyle.Continue.Bottom.Location)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				case E_ContBottomLoc.BottomOfPage:				// place continue message at bottom of page
 | 
									case E_ContBottomLoc.BottomOfPage:              // place continue message at bottom of page
 | 
				
			||||||
					// The following format flag was added for FNP, without the flag (which stops the reset of BottomMsgSpace)
 | 
																					// The following format flag was added for FNP, without the flag (which stops the reset of BottomMsgSpace)
 | 
				
			||||||
					//  a number of FNP procedures had overwritten steps/bottom continue message.  An example can be
 | 
																					//  a number of FNP procedures had overwritten steps/bottom continue message.  An example can be
 | 
				
			||||||
					//  found in FNP = SAMGS;FNP-1-SACRG-2, step 1.
 | 
																					//  found in FNP = SAMGS;FNP-1-SACRG-2, step 1.
 | 
				
			||||||
					if (!docstyle.Continue.Bottom.NoOverrideSpace)
 | 
										if (!docstyle.Continue.Bottom.NoOverrideSpace)
 | 
				
			||||||
						myBottomMsgSpace = 0;
 | 
											myBottomMsgSpace = 0;
 | 
				
			||||||
					break;
 | 
										break;
 | 
				
			||||||
@@ -1105,7 +1118,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					if (paraBreak != null && paraBreak.MyGrid != null && ItemsLeft(myList) == 1 &&
 | 
										if (paraBreak != null && paraBreak.MyGrid != null && ItemsLeft(myList) == 1 &&
 | 
				
			||||||
						((YSize - yTop) <= (paraBreak.MyGrid.SpaceAvailable + ySpaceOnCurPage - (accountForCalvertAlarmConditionResponseFooter + yEndMsg))))
 | 
											((YSize - yTop) <= (paraBreak.MyGrid.SpaceAvailable + ySpaceOnCurPage - (accountForCalvertAlarmConditionResponseFooter + yEndMsg))))
 | 
				
			||||||
						break;
 | 
											break;
 | 
				
			||||||
						if (myPreferredBreaks != null && myPreferredBreaks.Count > 0 && myPreferredBreaks.Keys[0] < paraBreak.YOffset)
 | 
										if (myPreferredBreaks != null && myPreferredBreaks.Count > 0 && myPreferredBreaks.Keys[0] < paraBreak.YOffset)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						// B2017-122: don't use preferred break if the last break was before this break 
 | 
											// B2017-122: don't use preferred break if the last break was before this break 
 | 
				
			||||||
						vlnParagraph prefBreak = myPreferredBreaks[myPreferredBreaks.Keys[0]];
 | 
											vlnParagraph prefBreak = myPreferredBreaks[myPreferredBreaks.Keys[0]];
 | 
				
			||||||
@@ -1186,9 +1199,9 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
				if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WolfcreekCKLFormat)
 | 
									if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WolfcreekCKLFormat)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					if (!paraBreak.MyItemInfo.IsHigh				// not a high level step
 | 
										if (!paraBreak.MyItemInfo.IsHigh                // not a high level step
 | 
				
			||||||
						&& paraBreak.MyParent.MyItemInfo.IsHigh		// my parent is a hls
 | 
											&& paraBreak.MyParent.MyItemInfo.IsHigh     // my parent is a hls
 | 
				
			||||||
						&& paraBreak.MyItemInfo.MyPrevious == null	// first substep
 | 
											&& paraBreak.MyItemInfo.MyPrevious == null  // first substep
 | 
				
			||||||
						&& paraBreak.MyParent.MyItemInfo.FormatStepData.UseSmartTemplate)   // my parent has the checklist header
 | 
											&& paraBreak.MyParent.MyItemInfo.FormatStepData.UseSmartTemplate)   // my parent has the checklist header
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						if (DebugPagination.IsOpen) DebugPagination.WriteLine("Breaking at parent of {0}", paraBreak.MyItemInfo.DisplayText);
 | 
											if (DebugPagination.IsOpen) DebugPagination.WriteLine("Breaking at parent of {0}", paraBreak.MyItemInfo.DisplayText);
 | 
				
			||||||
@@ -1362,7 +1375,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
						//                         |   Flags compression for 1st page   |
 | 
											//                         |   Flags compression for 1st page   |
 | 
				
			||||||
						//                         |   (1st page doesn't use paraBreak) |
 | 
											//                         |   (1st page doesn't use paraBreak) |
 | 
				
			||||||
						//
 | 
											//
 | 
				
			||||||
						if (lastBreak != null)		// not on first page of step
 | 
											if (lastBreak != null)      // not on first page of step
 | 
				
			||||||
						{
 | 
											{
 | 
				
			||||||
							lastBreak.PageBreakReason = "More of Step at 7 LPI";
 | 
												lastBreak.PageBreakReason = "More of Step at 7 LPI";
 | 
				
			||||||
							lastBreak.CompressPartOfStep = true;
 | 
												lastBreak.CompressPartOfStep = true;
 | 
				
			||||||
@@ -1411,7 +1424,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				RemoveProcessedParagraphs(myList, yTopNew - yTop);
 | 
									RemoveProcessedParagraphs(myList, yTopNew - yTop);
 | 
				
			||||||
				yTop = yTopNew;
 | 
									yTop = yTopNew;
 | 
				
			||||||
				MyPageHelper.ParaBreaks.Add(paraBreak);
 | 
									MyPageHelper.ParaBreaks.Add(paraBreak);
 | 
				
			||||||
				ySpaceOnNextPage1 -= paraBreak.GetSectionTopMessageSize();	// B2016-134: Account for wcntraining section top continue on substep containers (notes/cautions)
 | 
									ySpaceOnNextPage1 -= paraBreak.GetSectionTopMessageSize();  // B2016-134: Account for wcntraining section top continue on substep containers (notes/cautions)
 | 
				
			||||||
				SectionConfig sch = MyItemInfo.ActiveSection.MyConfig as SectionConfig;
 | 
									SectionConfig sch = MyItemInfo.ActiveSection.MyConfig as SectionConfig;
 | 
				
			||||||
				// B2016-266 Only set SectionTitleContinued1 if the format supports section continue messages 
 | 
									// B2016-266 Only set SectionTitleContinued1 if the format supports section continue messages 
 | 
				
			||||||
				bool doSectionTitleContinued1 = (sch == null || sch.Section_PrintHdr == "Y") && !MyItemInfo.MyDocStyle.CancelSectTitle && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader;
 | 
									bool doSectionTitleContinued1 = (sch == null || sch.Section_PrintHdr == "Y") && !MyItemInfo.MyDocStyle.CancelSectTitle && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader;
 | 
				
			||||||
@@ -1422,9 +1435,9 @@ namespace Volian.Print.Library
 | 
				
			|||||||
						doSectionTitleContinued1 = false;
 | 
											doSectionTitleContinued1 = false;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				if (doSectionTitleContinued1) ySpaceOnNextPage1 -= 2 * SixLinesPerInch; // B2016-195: Account for Section Continue Message
 | 
									if (doSectionTitleContinued1) ySpaceOnNextPage1 -= 2 * SixLinesPerInch; // B2016-195: Account for Section Continue Message
 | 
				
			||||||
				// B2017-161: unnecessary PageBreak for background documents: use the 'usedPageBreakOnStepList' flag when using the PageBreakOnStepList, don't adjust space on page to account
 | 
																											// B2017-161: unnecessary PageBreak for background documents: use the 'usedPageBreakOnStepList' flag when using the PageBreakOnStepList, don't adjust space on page to account
 | 
				
			||||||
				//  for continue message, if there is not one.
 | 
																											//  for continue message, if there is not one.
 | 
				
			||||||
				// B2017-252 Pagination Fix - RNP was not paginating correctly.  Added logic to set ySPaceOnCurPage if ySpaceOnNextPage was larger
 | 
																											// B2017-252 Pagination Fix - RNP was not paginating correctly.  Added logic to set ySPaceOnCurPage if ySpaceOnNextPage was larger
 | 
				
			||||||
				if (!usedPageBreakOnStepList || ySpaceOnNextPage1 > ySpaceOnCurPage) ySpaceOnCurPage = ySpaceOnNextPage1;
 | 
									if (!usedPageBreakOnStepList || ySpaceOnNextPage1 > ySpaceOnCurPage) ySpaceOnCurPage = ySpaceOnNextPage1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//ySpaceOnCurPage = yPageSize - (myTopMsgSpace + SixLinesPerInch);  // Allow for continue message and blank line.
 | 
									//ySpaceOnCurPage = yPageSize - (myTopMsgSpace + SixLinesPerInch);  // Allow for continue message and blank line.
 | 
				
			||||||
@@ -1452,7 +1465,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					}
 | 
										}
 | 
				
			||||||
					float ySpaceAt7LPI = (adjustedCurPageYSpace - (accountForCalvertAlarmConditionResponseFooter + yEndMsg)) * SixLinesPerInch / _SevenLinesPerInch;
 | 
										float ySpaceAt7LPI = (adjustedCurPageYSpace - (accountForCalvertAlarmConditionResponseFooter + yEndMsg)) * SixLinesPerInch / _SevenLinesPerInch;
 | 
				
			||||||
					if ((YSize - yTop) > (adjustedCurPageYSpace - (accountForCalvertAlarmConditionResponseFooter + yEndMsg))
 | 
										if ((YSize - yTop) > (adjustedCurPageYSpace - (accountForCalvertAlarmConditionResponseFooter + yEndMsg))
 | 
				
			||||||
						&& (YSize - yTop) < ySpaceAt7LPI )
 | 
											&& (YSize - yTop) < ySpaceAt7LPI)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						// Compress Rest of Step
 | 
											// Compress Rest of Step
 | 
				
			||||||
						//    .oooooo.                                                                                  ooooooooo.                          .   
 | 
											//    .oooooo.                                                                                  ooooooooo.                          .   
 | 
				
			||||||
@@ -1479,8 +1492,8 @@ namespace Volian.Print.Library
 | 
				
			|||||||
		private int ItemsLeft(StepLevelList myList)
 | 
							private int ItemsLeft(StepLevelList myList)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			int retval = 0;
 | 
								int retval = 0;
 | 
				
			||||||
			foreach (int stepLevel in myList.Keys)				// loop thru StepLevels, starting with lowest.
 | 
								foreach (int stepLevel in myList.Keys)              // loop thru StepLevels, starting with lowest.
 | 
				
			||||||
				foreach (float yLocation in myList[stepLevel].Keys)		// loop thru yLocation
 | 
									foreach (float yLocation in myList[stepLevel].Keys)     // loop thru yLocation
 | 
				
			||||||
					retval++;
 | 
										retval++;
 | 
				
			||||||
			return retval;
 | 
								return retval;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -1494,9 +1507,9 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			// C2023-018:  Remove the supplemental info & alarm check, doing the possible page breaks on sub-steps
 | 
								// C2023-018:  Remove the supplemental info & alarm check, doing the possible page breaks on sub-steps
 | 
				
			||||||
			//if (!MyItemInfo.MyDocStyle.SupplementalInformation && !MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.AlarmPagination) return null;
 | 
								//if (!MyItemInfo.MyDocStyle.SupplementalInformation && !MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.AlarmPagination) return null;
 | 
				
			||||||
			SortedList<float, vlnParagraph> sdpara = null;
 | 
								SortedList<float, vlnParagraph> sdpara = null;
 | 
				
			||||||
			foreach (int stepLevel in myList.Keys)				// loop thru StepLevels, starting with lowest.
 | 
								foreach (int stepLevel in myList.Keys)              // loop thru StepLevels, starting with lowest.
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				foreach (float yLocation in myList[stepLevel].Keys)		// loop thru yLocation
 | 
									foreach (float yLocation in myList[stepLevel].Keys)     // loop thru yLocation
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					vlnParagraph myPara = myList[stepLevel][yLocation];
 | 
										vlnParagraph myPara = myList[stepLevel][yLocation];
 | 
				
			||||||
					StepConfig sci = myPara.MyItemInfo.MyConfig as StepConfig;
 | 
										StepConfig sci = myPara.MyItemInfo.MyConfig as StepConfig;
 | 
				
			||||||
@@ -1583,13 +1596,13 @@ namespace Volian.Print.Library
 | 
				
			|||||||
		/// <param name="myList"></param>
 | 
							/// <param name="myList"></param>
 | 
				
			||||||
		/// <returns></returns>
 | 
							/// <returns></returns>
 | 
				
			||||||
		private static vlnParagraph FindPageBreak1(float yStart, float yUpperLimit, float yLowerLimit, StepLevelList myList, vlnParagraph lastBreak, float fullPage,
 | 
							private static vlnParagraph FindPageBreak1(float yStart, float yUpperLimit, float yLowerLimit, StepLevelList myList, vlnParagraph lastBreak, float fullPage,
 | 
				
			||||||
			float myBottomMsgSpace,bool RNOContinueOnly, float yTop)
 | 
								float myBottomMsgSpace, bool RNOContinueOnly, float yTop)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			vlnParagraph minPara = null;
 | 
								vlnParagraph minPara = null;
 | 
				
			||||||
			//StringBuilder minBuff = new StringBuilder();
 | 
								//StringBuilder minBuff = new StringBuilder();
 | 
				
			||||||
			float? yLocationMin=null;
 | 
								float? yLocationMin = null;
 | 
				
			||||||
			vlnParagraph minPara2 = null;
 | 
								vlnParagraph minPara2 = null;
 | 
				
			||||||
			float? yLocationMin2=null;
 | 
								float? yLocationMin2 = null;
 | 
				
			||||||
			float yAddForBtmMsg = 0;
 | 
								float yAddForBtmMsg = 0;
 | 
				
			||||||
			// useful for debugging pagination issues, lastbreak gets the paragraph at the top of the previous page, shows all
 | 
								// useful for debugging pagination issues, lastbreak gets the paragraph at the top of the previous page, shows all
 | 
				
			||||||
			// of the locations within 'range' on the next page.
 | 
								// of the locations within 'range' on the next page.
 | 
				
			||||||
@@ -1613,9 +1626,9 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			//		}
 | 
								//		}
 | 
				
			||||||
			//	}
 | 
								//	}
 | 
				
			||||||
			//}
 | 
								//}
 | 
				
			||||||
			foreach (int stepLevel in myList.Keys)				// loop thru StepLevels, starting with lowest.
 | 
								foreach (int stepLevel in myList.Keys)              // loop thru StepLevels, starting with lowest.
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				foreach (float yLocation in myList[stepLevel].Keys)		// loop thru yLocation
 | 
									foreach (float yLocation in myList[stepLevel].Keys)     // loop thru yLocation
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					float spaceOnPage = yUpperLimit + yLocation;
 | 
										float spaceOnPage = yUpperLimit + yLocation;
 | 
				
			||||||
					vlnParagraph myPara = myList[stepLevel][yLocation];
 | 
										vlnParagraph myPara = myList[stepLevel][yLocation];
 | 
				
			||||||
@@ -1638,10 +1651,10 @@ namespace Volian.Print.Library
 | 
				
			|||||||
							// The following lines were added for Comanche Peak ECA-TP-11-001A.SProcedure Steps.S17 (Printed as Step 12)
 | 
												// The following lines were added for Comanche Peak ECA-TP-11-001A.SProcedure Steps.S17 (Printed as Step 12)
 | 
				
			||||||
							if (spaceOnPage > 0 && myPara.YSize > fullPage && myPara.ChildrenRight != null && myPara.ChildrenRight.Count > 0
 | 
												if (spaceOnPage > 0 && myPara.YSize > fullPage && myPara.ChildrenRight != null && myPara.ChildrenRight.Count > 0
 | 
				
			||||||
								&& myPara.ChildrenRight[0].YSize <= fullPage && myPara.ChildrenRight[0].YSize > spaceOnPage
 | 
													&& myPara.ChildrenRight[0].YSize <= fullPage && myPara.ChildrenRight[0].YSize > spaceOnPage
 | 
				
			||||||
							// B2018-104: don't return if my parent is a high level - a top continue message was printing
 | 
													// B2018-104: don't return if my parent is a high level - a top continue message was printing
 | 
				
			||||||
							// Was not complete, i.e. caused other pagination problems and was put back in: B2019-170: VCS page break causes printing of step on top of next page.  
 | 
													// Was not complete, i.e. caused other pagination problems and was put back in: B2019-170: VCS page break causes printing of step on top of next page.  
 | 
				
			||||||
							//			Note that this bug fix for WCN was commented out. Harry Julian wanted this on 11/15/19.  A new bug will be written for the WCN error.
 | 
													//			Note that this bug fix for WCN was commented out. Harry Julian wanted this on 11/15/19.  A new bug will be written for the WCN error.
 | 
				
			||||||
							// B2019-173  reintroduced this line:
 | 
													// B2019-173  reintroduced this line:
 | 
				
			||||||
								&& !myPara.MyItemInfo.IsHigh)
 | 
													&& !myPara.MyItemInfo.IsHigh)
 | 
				
			||||||
							{
 | 
												{
 | 
				
			||||||
								//_MyLog.WarnFormat("\r\nMyParaBreak {0},{1},{2},{3},{4}", myPara, myPara.YSize, yUpperLimit, myPara.ChildrenRight[0].YSize, spaceOnPage);
 | 
													//_MyLog.WarnFormat("\r\nMyParaBreak {0},{1},{2},{3},{4}", myPara, myPara.YSize, yUpperLimit, myPara.ChildrenRight[0].YSize, spaceOnPage);
 | 
				
			||||||
@@ -1726,10 +1739,10 @@ namespace Volian.Print.Library
 | 
				
			|||||||
						//while (myPara.MyParent.YTop == myPara.YTop) myPara = myPara.MyParent;
 | 
											//while (myPara.MyParent.YTop == myPara.YTop) myPara = myPara.MyParent;
 | 
				
			||||||
						while (myPara.MyParent != null && myPara.MyParent.YTop == myPara.YTop) myPara = myPara.MyParent;
 | 
											while (myPara.MyParent != null && myPara.MyParent.YTop == myPara.YTop) myPara = myPara.MyParent;
 | 
				
			||||||
						int everyNLines = myPara.MyItemInfo.MyPrevious != null && myPara.MyItemInfo.FormatStepData == null ? 1 : myPara.MyItemInfo.FormatStepData.StepLayoutData.EveryNLines ?? 1;
 | 
											int everyNLines = myPara.MyItemInfo.MyPrevious != null && myPara.MyItemInfo.FormatStepData == null ? 1 : myPara.MyItemInfo.FormatStepData.StepLayoutData.EveryNLines ?? 1;
 | 
				
			||||||
						bool inSameBox = InSameBox(myPara, minPara2);		// if this note/caution is in same box as the break, don't break within the notes/cautions in the same box
 | 
											bool inSameBox = InSameBox(myPara, minPara2);       // if this note/caution is in same box as the break, don't break within the notes/cautions in the same box
 | 
				
			||||||
						if (!inSameBox && myPara.ChildrenAbove.Count == 0 && wcnChkLstBorder - yLocation < yUpperLimit + yAddForBtmMsg || (everyNLines != 99 && (wcnChkLstBorder - yLocation == yUpperLimit + yAddForBtmMsg))) // Fix for OFN-RJ-23
 | 
											if (!inSameBox && myPara.ChildrenAbove.Count == 0 && wcnChkLstBorder - yLocation < yUpperLimit + yAddForBtmMsg || (everyNLines != 99 && (wcnChkLstBorder - yLocation == yUpperLimit + yAddForBtmMsg))) // Fix for OFN-RJ-23
 | 
				
			||||||
						//if (-yLocation < yUpperLimit) // Before
 | 
																																																												   //if (-yLocation < yUpperLimit) // Before
 | 
				
			||||||
						//if (-yLocation < yWithinMargins && myList[stepLevel][yLocation].MyItemInfo.MyPrevious != null)
 | 
																																																												   //if (-yLocation < yWithinMargins && myList[stepLevel][yLocation].MyItemInfo.MyPrevious != null)
 | 
				
			||||||
						{
 | 
											{
 | 
				
			||||||
							//ItemInfo prev = myList[stepLevel][yLocation].MyItemInfo.MyPrevious;
 | 
												//ItemInfo prev = myList[stepLevel][yLocation].MyItemInfo.MyPrevious;
 | 
				
			||||||
							//if (myList[stepLevel][yLocation].MyItemInfo.ItemID == 5609) Console.WriteLine("aer");
 | 
												//if (myList[stepLevel][yLocation].MyItemInfo.ItemID == 5609) Console.WriteLine("aer");
 | 
				
			||||||
@@ -1755,7 +1768,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
										}
 | 
															}
 | 
				
			||||||
									}
 | 
														}
 | 
				
			||||||
							// B2019-103, B2019-114 Break at a step if the step will fit on a page by itself and it will 
 | 
												// B2019-103, B2019-114 Break at a step if the step will fit on a page by itself and it will 
 | 
				
			||||||
 							// not fit in the current page
 | 
												// not fit in the current page
 | 
				
			||||||
							float yAdjustLastSubStep = 0;
 | 
												float yAdjustLastSubStep = 0;
 | 
				
			||||||
							if ((myPara.MyItemInfo.ActiveParent as ItemInfo).IsHigh && myPara.MyItemInfo.NextItem == null)
 | 
												if ((myPara.MyItemInfo.ActiveParent as ItemInfo).IsHigh && myPara.MyItemInfo.NextItem == null)
 | 
				
			||||||
							{
 | 
												{
 | 
				
			||||||
@@ -1766,8 +1779,8 @@ namespace Volian.Print.Library
 | 
				
			|||||||
								_MyLog.WarnFormat("Last Substep will fit on page by itself {0}", myPara.MyItemInfo.ShortPath); // add information in the error log
 | 
													_MyLog.WarnFormat("Last Substep will fit on page by itself {0}", myPara.MyItemInfo.ShortPath); // add information in the error log
 | 
				
			||||||
							}
 | 
												}
 | 
				
			||||||
							if (StepWillFitOnBlankPageButNotOnCurrentPage(myPara, yLocation, yStart, fullPage + yAdjustLastSubStep))
 | 
												if (StepWillFitOnBlankPageButNotOnCurrentPage(myPara, yLocation, yStart, fullPage + yAdjustLastSubStep))
 | 
				
			||||||
									if (myPara != lastBreak)
 | 
													if (myPara != lastBreak)
 | 
				
			||||||
										return myPara;
 | 
														return myPara;
 | 
				
			||||||
							// If this item will not fit on the current page, put a page break
 | 
												// If this item will not fit on the current page, put a page break
 | 
				
			||||||
							if (myPara.YBottom - myPara.YTop > (yUpperLimit + yLocation))
 | 
												if (myPara.YBottom - myPara.YTop > (yUpperLimit + yLocation))
 | 
				
			||||||
								if (myPara != lastBreak)
 | 
													if (myPara != lastBreak)
 | 
				
			||||||
@@ -1787,7 +1800,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			//DebugPagination.Write(minBuff.ToString());
 | 
								//DebugPagination.Write(minBuff.ToString());
 | 
				
			||||||
			if (-yLocationMin  > yUpperLimit && minPara2 != null) minPara = null;
 | 
								if (-yLocationMin > yUpperLimit && minPara2 != null) minPara = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// if breaking at a note/caution - don't break within the same box. Clear minPara (like code above)
 | 
								// if breaking at a note/caution - don't break within the same box. Clear minPara (like code above)
 | 
				
			||||||
			// so that minPara2 is used.
 | 
								// so that minPara2 is used.
 | 
				
			||||||
@@ -1803,7 +1816,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				DebugPagination.WriteLine("B2020-148 {0}", minPara2);
 | 
									DebugPagination.WriteLine("B2020-148 {0}", minPara2);
 | 
				
			||||||
				_MyLog.WarnFormat("\r\n+++ Paginagion Change B2020-148 {0}", minPara2);
 | 
									_MyLog.WarnFormat("\r\n+++ Paginagion Change B2020-148 {0}", minPara2);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
				return minPara ?? minPara2;
 | 
								return minPara ?? minPara2;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// B2020-013 premature break in RNO column - Callaway OTO-AC-00002 step 2
 | 
							// B2020-013 premature break in RNO column - Callaway OTO-AC-00002 step 2
 | 
				
			||||||
@@ -1811,7 +1824,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
		// B2020-073 was not keeping all of RNO sub-step together  - Comanche Peak FRC-0.1 (unit 1) Step 14
 | 
							// B2020-073 was not keeping all of RNO sub-step together  - Comanche Peak FRC-0.1 (unit 1) Step 14
 | 
				
			||||||
		// B2020-081 was breaking on an AER substep that has an long RNO - should keep AER substep and part of RNO on the page = D.C. Cook "Current (Post FLEX) U1 NOP NOT [EOPs]" set, ES-0.1 step 1.
 | 
							// B2020-081 was breaking on an AER substep that has an long RNO - should keep AER substep and part of RNO on the page = D.C. Cook "Current (Post FLEX) U1 NOP NOT [EOPs]" set, ES-0.1 step 1.
 | 
				
			||||||
		// B2020-085 was breaking first child of second RNO (third IF in RNO) - should break on second child of second RNO - D.C. Cook AOP Unit 1 002-020 Step 15
 | 
							// B2020-085 was breaking first child of second RNO (third IF in RNO) - should break on second child of second RNO - D.C. Cook AOP Unit 1 002-020 Step 15
 | 
				
			||||||
		// B2020-099 was breaking on last sub-step of previous RNO - Calvert Approved Procedures;  Abnormal Procedures <EFBFBD> Unit 2;  AOP-2A;  Section VII;  Step 11.RNO.11.1.c 
 | 
							// B2020-099 was breaking on last sub-step of previous RNO - Calvert Approved Procedures;  Abnormal Procedures <20> Unit 2;  AOP-2A;  Section VII;  Step 11.RNO.11.1.c 
 | 
				
			||||||
		private vlnParagraph HasSecondRNOThatWillFit(float yStart, float yLowerLimit, float yUpperLimit, StepLevelList myList, int stepLevel, float yTop)
 | 
							private vlnParagraph HasSecondRNOThatWillFit(float yStart, float yLowerLimit, float yUpperLimit, StepLevelList myList, int stepLevel, float yTop)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			// B2020-120: for calvert alarms/condition response table, don't run code for second rno
 | 
								// B2020-120: for calvert alarms/condition response table, don't run code for second rno
 | 
				
			||||||
@@ -1823,7 +1836,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
				return this;
 | 
									return this;
 | 
				
			||||||
			// see if there is a second RNO then see if it will fit on the page
 | 
								// see if there is a second RNO then see if it will fit on the page
 | 
				
			||||||
			vlnParagraph tmp = this;
 | 
								vlnParagraph tmp = this;
 | 
				
			||||||
			while (!tmp.MyItemInfo.IsRNOPart && tmp.MyParent!=null) tmp = tmp.MyParent; // if on a substep of an RNO, move up the substep's parent (RNO)
 | 
								while (!tmp.MyItemInfo.IsRNOPart && tmp.MyParent != null) tmp = tmp.MyParent; // if on a substep of an RNO, move up the substep's parent (RNO)
 | 
				
			||||||
			vlnParagraph parent = tmp;
 | 
								vlnParagraph parent = tmp;
 | 
				
			||||||
			while (parent.MyParent != null && !parent.MyParent.MyItemInfo.IsSection) parent = parent.MyParent; // this will take us to the High level step
 | 
								while (parent.MyParent != null && !parent.MyParent.MyItemInfo.IsSection) parent = parent.MyParent; // this will take us to the High level step
 | 
				
			||||||
			float yTopParent = parent.YTopMost; // this is where the HLS starts printing
 | 
								float yTopParent = parent.YTopMost; // this is where the HLS starts printing
 | 
				
			||||||
@@ -1862,13 +1875,13 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			return maxBottomMost;
 | 
								return maxBottomMost;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		private static bool StepWillFitOnBlankPageButNotOnCurrentPage(vlnParagraph myPara, float yLocation, float yStart,float fullPage)
 | 
							private static bool StepWillFitOnBlankPageButNotOnCurrentPage(vlnParagraph myPara, float yLocation, float yStart, float fullPage)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			// B2019-150 & B2019-151 Pagination Bugs Seen for Summer EOP4.1 Step 10 and
 | 
								// B2019-150 & B2019-151 Pagination Bugs Seen for Summer EOP4.1 Step 10 and
 | 
				
			||||||
			// SAG Step 9.  Added format flag to limit when this logic would be used.
 | 
								// SAG Step 9.  Added format flag to limit when this logic would be used.
 | 
				
			||||||
			if (myPara.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.PaginateOnStepThatWillFitOnBlankPage == false)
 | 
								if (myPara.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.PaginateOnStepThatWillFitOnBlankPage == false)
 | 
				
			||||||
				return false;
 | 
									return false;
 | 
				
			||||||
			float spaceOnCurrentPage = fullPage - (-yLocation+yStart);
 | 
								float spaceOnCurrentPage = fullPage - (-yLocation + yStart);
 | 
				
			||||||
			// B2019-124 - Pagination - if substep will fit on a blank page but will not fit on the current page
 | 
								// B2019-124 - Pagination - if substep will fit on a blank page but will not fit on the current page
 | 
				
			||||||
			// And is not the first substep then break
 | 
								// And is not the first substep then break
 | 
				
			||||||
			// B2019-130 - in Calvert data (FSG-1 Appendix 1 Unit 1 Actions, step E.1.g) the THEN sub step was placed on the next page
 | 
								// B2019-130 - in Calvert data (FSG-1 Appendix 1 Unit 1 Actions, step E.1.g) the THEN sub step was placed on the next page
 | 
				
			||||||
@@ -1914,7 +1927,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
			if (myPara.MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertPagination)
 | 
								if (myPara.MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertPagination)
 | 
				
			||||||
				return (myPara.YOffset <= myParaBreak.YOffset &&
 | 
									return (myPara.YOffset <= myParaBreak.YOffset &&
 | 
				
			||||||
					(myPara.YOffset + myPara.Height) >= myParaBreak.YOffset);
 | 
										(myPara.YOffset + myPara.Height) >= myParaBreak.YOffset);
 | 
				
			||||||
			return(myPara.YOffset == myParaBreak.YOffset);
 | 
								return (myPara.YOffset == myParaBreak.YOffset);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		private bool HasAncestor(vlnParagraph myParaBreak)
 | 
							private bool HasAncestor(vlnParagraph myParaBreak)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -1969,7 +1982,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
					tsa = MyGrid.SpaceAvailable + MyGrid.LeadingSpaceAvailable;
 | 
										tsa = MyGrid.SpaceAvailable + MyGrid.LeadingSpaceAvailable;
 | 
				
			||||||
				if (btmRight != 0)
 | 
									if (btmRight != 0)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
						//_MyLog.WarnFormat("Item={00}, B={1} BR={2} T={3} TR={4}",MyItemInfo.ItemID , btm, btmRight, tsa, tsaRight);
 | 
										//_MyLog.WarnFormat("Item={00}, B={1} BR={2} T={3} TR={4}",MyItemInfo.ItemID , btm, btmRight, tsa, tsaRight);
 | 
				
			||||||
					if (btm < btmRight)
 | 
										if (btm < btmRight)
 | 
				
			||||||
						tsa = tsaRight;
 | 
											tsa = tsaRight;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
@@ -1979,7 +1992,7 @@ namespace Volian.Print.Library
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	public partial class VlnSvgPageHelper : SvgPageHelper
 | 
						public partial class VlnSvgPageHelper : SvgPageHelper
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		private bool _OriginalPageBreak;		// use 16bit page breaks.
 | 
							private bool _OriginalPageBreak;        // use 16bit page breaks.
 | 
				
			||||||
		public bool OriginalPageBreak
 | 
							public bool OriginalPageBreak
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			get { return _OriginalPageBreak; }
 | 
								get { return _OriginalPageBreak; }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user