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:
Kathy Ruffing 2017-05-24 12:34:42 +00:00
parent 6e94a74803
commit bd7204aff8
3 changed files with 16 additions and 2 deletions

View File

@ -6892,7 +6892,13 @@ namespace VEPROMS.CSLA.Library
get { return _StepSectPageBreaksForSupInfo; } get { return _StepSectPageBreaksForSupInfo; }
set { _StepSectPageBreaksForSupInfo = value; } set { _StepSectPageBreaksForSupInfo = value; }
} }
// Keeps track of step section itemids where page breaks occur
private List<int> _StepSectPageBreaks = null;
public List<int> StepSectPageBreaks
{
get { return _StepSectPageBreaks; }
set { _StepSectPageBreaks = value; }
}
// Determine if this section contains any Supplemental information steps. This is used for print to determine // Determine if this section contains any Supplemental information steps. This is used for print to determine
// whether some of the supinfo processing needs to occur. // whether some of the supinfo processing needs to occur.
private bool? _HasSupInfoSteps = null; private bool? _HasSupInfoSteps = null;

View File

@ -1612,6 +1612,8 @@ namespace Volian.Print.Library
{ {
if (section.StepSectPageBreaksForSupInfo == null) section.StepSectPageBreaksForSupInfo = new List<int>(); if (section.StepSectPageBreaksForSupInfo == null) section.StepSectPageBreaksForSupInfo = new List<int>();
else section.StepSectPageBreaksForSupInfo.Clear(); 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 // 792: 72 * 11 inches - TopRow - Top is high value
float _PointsPerPage = 792; 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); 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 if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID);
else MyPromsPrinter.NeedSupInfoBreak = true; else MyPromsPrinter.NeedSupInfoBreak = true;
supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID);
} }
YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
docstyle = MyItemInfo.MyDocStyle; 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); if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID);
else MyPromsPrinter.NeedSupInfoBreak = true; else MyPromsPrinter.NeedSupInfoBreak = true;
supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID);
} }
YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
docstyle = MyItemInfo.MyDocStyle; 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); if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID);
else MyPromsPrinter.NeedSupInfoBreak = true; else MyPromsPrinter.NeedSupInfoBreak = true;
supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID);
} }
if (!firstHighLevelStep) if (!firstHighLevelStep)
{ {
@ -2161,7 +2164,8 @@ namespace Volian.Print.Library
} }
return -1; 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. // 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) private int GetIdThatHasSupInfoItems(ItemInfo ii, int startid)
{ {
@ -2172,6 +2176,8 @@ namespace Volian.Print.Library
ItemInfo sib = ii.NextItem; ItemInfo sib = ii.NextItem;
while (sib != null) 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; if (sib.SupInfos != null && sib.SupInfos.Count > 0) return sib.SupInfos[0].ItemID;
id = GetSubThatHasSupInfoItems(sib, startid); id = GetSubThatHasSupInfoItems(sib, startid);
if (id != -1) return id; if (id != -1) return id;