From f31edfe1c511ac3c06c99e374f128c2151ddbc05 Mon Sep 17 00:00:00 2001 From: Kathy Date: Tue, 3 Oct 2017 13:34:27 +0000 Subject: [PATCH] B2017-228: SAMG Supplemental information facing page pagination bug, break was on sub-step AND after preferred page break, should only be On sub-step B2017-229: SAMG Supplement information facing page pagination bug, do facing page if in 7 lines per inch when on first step of section F2017-067: Adjusted pagelength to allow for Bottom Continue Message location on 7lpi print --- PROMS/Formats/fmtall/RGESAM1all.xml | Bin 46030 -> 46030 bytes PROMS/Volian.Print.Library/Pagination.cs | 14 +++++++++++++- PROMS/Volian.Print.Library/vlnParagraph.cs | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/PROMS/Formats/fmtall/RGESAM1all.xml b/PROMS/Formats/fmtall/RGESAM1all.xml index c08a3e49e5b48ae040011472aa0dbae1f475da77..13ec2d2febe719b96b07f70a087f357c72c8fbc1 100644 GIT binary patch delta 45 tcmX^2oax+irVVB7%tj0*lNT 0) return 0; + // B2017-228: The following flags a break within the step. Before returning a '2' (flags break within step), clear it out of the + // ParaBreaks. Without the 'RemoveAt', a page break will occur after this step also. + string reason = "Unknown"; + if (MyPageHelper.ParaBreaks != null && MyPageHelper.ParaBreaks.Count > 0 && this == MyPageHelper.ParaBreaks[0]) + { + MyPageHelper.ParaBreaks.RemoveAt(0); + reason = AddReason("Partial Step - Case 1"); + ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak); + } return 2; } } @@ -157,10 +166,11 @@ namespace Volian.Print.Library bool isFirstChild = MyItemInfo.MyPrevious == null; bool nearTheTop = (yWithinMargins < yPageSize) && (yWithinMargins > (yPageSize - 5 * SixLinesPerInch)); // if step is breaking over a number of pages, determine if the current step is the - // location of a pagebreak. + // location of a pagebreak. ParaBreaks contains the paragraphs that break within a step. if (MyPageHelper.ParaBreaks.Count > 0) { string reason = "Unknown"; + // if on current step and it is also the substep that will cause a pagebreak, i.e. the top substep in pagebreaks[[0]: if (this == MyPageHelper.ParaBreaks[0]) { MyPageHelper.ParaBreaks.RemoveAt(0); @@ -168,6 +178,7 @@ namespace Volian.Print.Library ShowPageBreak(1,reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak); return 2; // break on this item within a step } + // check for rnos: else if (MyPageHelper.ParaBreaks[0].CheckAlternates(this)) { MyPageHelper.ParaBreaks.RemoveAt(0); @@ -175,6 +186,7 @@ namespace Volian.Print.Library ShowPageBreak(1, reason, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak); return 2; // break on this item within a step } + // PageBreakOnStep flags break for cautions/notes/HLS in backgrounds & deviations. else if (!MyPageHelper.ParaBreaks[0].PageBreakOnStep && this.YTopMost > MyPageHelper.ParaBreaks[0].YTopMost) { MyPageHelper.ParaBreaks.RemoveAt(0); diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index 3f6f878c..ddc636f8 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -1964,7 +1964,7 @@ namespace Volian.Print.Library else MyPromsPrinter.NeedSupInfoBreak = true; supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID); } - if (!firstHighLevelStep) + if (!firstHighLevelStep || (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && !MyPageHelper.CreatingSupInfoPage)) // B2017-229: Added supinfo print check to run facing page logic { YTopMost = OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0) MyPageHelper.NotesToFootNotesYoffset = CalculateYLocation(yLocation, yTopMargin); @@ -2793,6 +2793,7 @@ namespace Volian.Print.Library case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page //msg_yLocation = yBottomMargin + 2 * SixLinesPerInch + (float)docstyle.Layout.FooterLength; // 2 lines above bottom margin msg_yLocation = msg_yLocation + yBtmMarginForMsg + (float)docstyle.Layout.FooterLength; + // if (MyPageHelper.YMultiplier != 1.0F) msg_yLocation = msg_yLocation / MyPageHelper.YMultiplier; break; case E_ContBottomLoc.BelowBottom1: msg_yLocation = msg_yLocation + yBtmMarginForMsg;