diff --git a/PROMS/Volian.Print.Library/Pagination.cs b/PROMS/Volian.Print.Library/Pagination.cs index 9341f80b..90b0ac03 100644 --- a/PROMS/Volian.Print.Library/Pagination.cs +++ b/PROMS/Volian.Print.Library/Pagination.cs @@ -436,9 +436,28 @@ namespace Volian.Print.Library { if (aerParent.ChildrenAbove != null && aerParent.ChildrenAbove.Count > 0) // If the aerParent has caution or note aerParent = aerParent.ChildrenAbove[0];//, break on the caution or note. - if (aerParent != lastBreak) + if (aerParent != lastBreak)paraBreak = aerParent; + } + } + // MNS Pagination - Mike Weiner Case 1b to keep substeps together on one page + if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.PutOnPageByItself && !paraBreak.MyParent.MyItemInfo.IsHigh) + { + vlnParagraph firstLevel = paraBreak.MyParent; + while (firstLevel.MyItemInfo.IsInRNO) firstLevel = firstLevel.MyParent; + if (!firstLevel.MyItemInfo.IsHigh) + { + while (!firstLevel.MyParent.MyItemInfo.IsHigh) firstLevel = firstLevel.MyParent; + if (firstLevel.MyParent.ChildrenBelow != null && firstLevel.MyParent.ChildrenBelow.Count > 0 && firstLevel.MyParent.ChildrenBelow[0] != firstLevel && + firstLevel.YSize < yPageSize - (myTopMsgSpace + SixLinesPerInch)) { - paraBreak = aerParent; + vlnParagraph firstLevel1 = firstLevel; + if (firstLevel.ChildrenAbove != null && firstLevel.ChildrenAbove.Count > 0) // If the aerParent has caution or note + firstLevel = firstLevel.ChildrenAbove[0];//, break on the caution or note. + if (firstLevel != lastBreak && paraBreak != firstLevel) + { + //Console.WriteLine("'{0}','{1}','{2}'", firstLevel1.MyParent.MyItemInfo.ShortPath, firstLevel1.MyItemInfo.MyTab.Text, firstLevel1.MyItemInfo.ShortPath); + paraBreak = firstLevel; + } } } } diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index 080f73d2..1a74e8a9 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -1336,7 +1336,14 @@ namespace Volian.Print.Library if (mySep != "{Null}" && mySep != "") para = ChildrenBelow[ChildrenBelow.Count - 1].GetFirstPieceLastPart(); else - para = ChildrenBelow[0].GetFirstPieceLastPart(); + { + // MNS Pagination - Mike Weiner Case 1a to keep step together with any non-sequential substeps (ANDs, EQ List) + bool keepEqListTogether = ChildrenBelow[0].MyItemInfo.ActiveFormat.MyStepSectionLayoutData.PutOnPageByItself; + if (keepEqListTogether && !ChildrenBelow[0].MyItemInfo.IsSequential && !this.MyItemInfo.IsHigh) // Extend to the last Item. + para = ChildrenBelow[ChildrenBelow.Count - 1].GetFirstPieceLastPart(); + else + para = ChildrenBelow[0].GetFirstPieceLastPart(); + } } if (ChildrenRight != null && ChildrenRight.Count > 0) {