B2017-093: Pagination issue when no supplemental information on page or when 2 steps on page & only 2nd has supplemental information

This commit is contained in:
2017-05-24 12:34:42 +00:00
parent 6e94a74803
commit bd7204aff8
3 changed files with 16 additions and 2 deletions

View File

@@ -1612,6 +1612,8 @@ namespace Volian.Print.Library
{
if (section.StepSectPageBreaksForSupInfo == null) section.StepSectPageBreaksForSupInfo = new List<int>();
else section.StepSectPageBreaksForSupInfo.Clear();
if (section.StepSectPageBreaks == null) section.StepSectPageBreaks = new List<int>();
else section.StepSectPageBreaks.Clear();
}
// 792: 72 * 11 inches - TopRow - Top is high value
float _PointsPerPage = 792;

View File

@@ -1604,6 +1604,7 @@ namespace Volian.Print.Library
if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0 && aboveSupinfoId > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(aboveSupinfoId);
else if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID);
else MyPromsPrinter.NeedSupInfoBreak = true;
supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID);
}
YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
docstyle = MyItemInfo.MyDocStyle;
@@ -1699,6 +1700,7 @@ namespace Volian.Print.Library
{
if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID);
else MyPromsPrinter.NeedSupInfoBreak = true;
supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID);
}
YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
docstyle = MyItemInfo.MyDocStyle;
@@ -1889,6 +1891,7 @@ namespace Volian.Print.Library
{
if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID);
else MyPromsPrinter.NeedSupInfoBreak = true;
supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID);
}
if (!firstHighLevelStep)
{
@@ -2161,7 +2164,8 @@ namespace Volian.Print.Library
}
return -1;
}
// Find the step that has supplemental information from this step down page until a preferred page break is found.
// Find the step that has supplemental information from this step down page until a preferred page break is found
// or a regular page break.
// It is used to determine whether there is a supinfo facing page or if there should be a blank page.
private int GetIdThatHasSupInfoItems(ItemInfo ii, int startid)
{
@@ -2172,6 +2176,8 @@ namespace Volian.Print.Library
ItemInfo sib = ii.NextItem;
while (sib != null)
{
SectionInfo supInfoSect = ii.MyActiveSection as SectionInfo;
if (supInfoSect.StepSectPageBreaks.Contains(sib.ItemID)) return -1;
if (sib.SupInfos != null && sib.SupInfos.Count > 0) return sib.SupInfos[0].ItemID;
id = GetSubThatHasSupInfoItems(sib, startid);
if (id != -1) return id;