B2018-103: Incorrect pagination for sub-steps that have sub-steps when Supplemental Information is used.

This commit is contained in:
Kathy Ruffing 2018-07-16 11:35:36 +00:00
parent 23ddfe0cbd
commit 5438908754

View File

@ -105,7 +105,18 @@ namespace Volian.Print.Library
if ((MyItemInfo.IsCaution || MyItemInfo.IsNote) && MyItemInfo.MyParent.IsSubStep) if ((MyItemInfo.IsCaution || MyItemInfo.IsNote) && MyItemInfo.MyParent.IsSubStep)
{ {
StepConfig scs = MyItemInfo.MyParent.MyConfig as StepConfig; StepConfig scs = MyItemInfo.MyParent.MyConfig as StepConfig;
if (MyItemInfo.MyPrevious == null && scs.Step_PreferredPagebreak) return 2; if (MyItemInfo.MyPrevious == null && scs.Step_PreferredPagebreak)
{
// B2018-103: 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.
if (MyPageHelper.ParaBreaks != null && MyPageHelper.ParaBreaks.Count > 0 && this == MyPageHelper.ParaBreaks[0])
{
MyPageHelper.ParaBreaks.RemoveAt(0);
string reason1 = AddReason("Partial Step - Case 5");
ShowPageBreak(1, reason1, "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
}
return 2;
}
} }
// Now see if there is a preferred page break on this step. // Now see if there is a preferred page break on this step.
StepConfig sci = MyItemInfo.MyConfig as StepConfig; StepConfig sci = MyItemInfo.MyConfig as StepConfig;
@ -189,8 +200,13 @@ namespace Volian.Print.Library
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
} }
// PageBreakOnStep flags break for cautions/notes/HLS in backgrounds & deviations. ///////////////////
else if (!MyPageHelper.ParaBreaks[0].PageBreakOnStep && this.YTopMost > MyPageHelper.ParaBreaks[0].YTopMost) // The following else ifs are reached if something previously went wrong in pagination & this code tries to account for it.
///////////////////
// PageBreakOnStep flags break for cautions/notes/HLS in backgrounds & deviations. Don't check for that case.
// If you are in this code debugging, consider looking at ToPdf to see why the 'pagebreak above' (MyPageHelper.ParaBreaks[0])
// the current step (this) has not caused a page break in the pdf prior to reaching this code. (RHM & KBR)
else if (!MyPageHelper.ParaBreaks[0].PageBreakOnStep && this.YTopMost > MyPageHelper.ParaBreaks[0].YTopMost) // current step is further down on page than MyPageHelper.ParaBreaks[0]
{ {
MyPageHelper.ParaBreaks.RemoveAt(0); MyPageHelper.ParaBreaks.RemoveAt(0);
reason = AddReason("Partial Step - Case 3"); reason = AddReason("Partial Step - Case 3");