The Pagination Logic was improved to more properly paginate the alarm procedures for Calvert.

This commit is contained in:
Rich 2014-08-27 12:23:56 +00:00
parent e8a905af49
commit 793f4c58df

View File

@ -487,7 +487,7 @@ namespace Volian.Print.Library
ySpaceOnCurPage -= myBottomMsgSpace;
vlnParagraph lastBreak = paraBreak;
paraBreak = FindPageBreak(yStart, ySpaceOnCurPage-accountForCalvertAlarmConditionResponseFooter, yLowerLimit,
myList, paraBreak, yPageSize - (myTopMsgSpace + SixLinesPerInch) - myBottomMsgSpace,
myList, lastBreak, yPageSize - (myTopMsgSpace + SixLinesPerInch) - myBottomMsgSpace,
myBottomMsgSpace,MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[40].ContinueOnly);
//Console.WriteLine("Break at {0}", paraBreak.MyItemInfo.ShortPath);//Comment Out before release
if (paraBreak == null)
@ -500,8 +500,9 @@ namespace Volian.Print.Library
}
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) // only do the following for Calvert Alarms
{
//if (lastBreak != null && lastBreak.MyItemInfo.InList(42656,42923)) Console.WriteLine("here");
// Or Step whose parent fits on a page should break at the parent step
//if (MyItemInfo.InList(40308)) Console.WriteLine("here");
//if (MyItemInfo.InList(119826)) Console.WriteLine("here");
//if (paraBreak.MyItemInfo.InList(40339))
float ySpaceOnNextPage = yPageSize - (myTopMsgSpace + SixLinesPerInch) - myBottomMsgSpace;
if (paraBreak.MyItemInfo.IsOr && paraBreak.MyParent.YSize < ySpaceOnNextPage)
@ -525,20 +526,24 @@ namespace Volian.Print.Library
}
}
// if first condition/response and the parent has caution, notes or warnings then move the break to the caution, note or warning
if (!paraBreak.MyItemInfo.IsCautionPart && !paraBreak.MyItemInfo.IsNotePart && paraBreak.ParentHasCalvertMacro && paraBreak.MyParent.HasCalvertMacro && paraBreak.MyItemInfo.MyPrevious == null && paraBreak.MyParent.ChildrenAbove.Count > 0)
if (!paraBreak.MyItemInfo.IsCautionPart && !paraBreak.MyItemInfo.IsNotePart && paraBreak.ParentHasCalvertMacro && paraBreak.MyParent.HasCalvertMacro && paraBreak.MyItemInfo.MyPrevious == null)
{
paraBreak = paraBreak.MyParent.ChildrenAbove[0];
if (paraBreak.MyParent.ChildrenAbove.Count > 0)
paraBreak = paraBreak.MyParent.ChildrenAbove[0];
else
paraBreak = paraBreak.MyParent;
}
// If the lastbreak was part of a condition response and the location is part of a condition response account for the size of the footer.
else if (!paraBreak.MyItemInfo.IsCautionPart && !paraBreak.MyItemInfo.IsNotePart && paraBreak.ParentHasCalvertMacro && accountForCalvertAlarmConditionResponseFooter == 0)
{
paraBreak = FindPageBreak(yStart, ySpaceOnCurPage - vlnPrintObject.SixLinesPerInch * 4, yLowerLimit, myList, paraBreak, yPageSize - (myTopMsgSpace + SixLinesPerInch) - myBottomMsgSpace,
paraBreak = FindPageBreak(yStart, ySpaceOnCurPage - vlnPrintObject.SixLinesPerInch * 4, yLowerLimit, myList, lastBreak, yPageSize - (myTopMsgSpace + SixLinesPerInch) - myBottomMsgSpace,
myBottomMsgSpace, MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[40].ContinueOnly);
if (paraBreak.MyItemInfo.MyPrevious == null && paraBreak.MyParent.ChildrenAbove.Count > 0)
{
paraBreak = paraBreak.MyParent.ChildrenAbove[0];
if (paraBreak.MyItemInfo.MyPrevious == null)
if(paraBreak.MyParent.ChildrenAbove.Count > 0)
paraBreak = paraBreak.MyParent.ChildrenAbove[0];
else
paraBreak = paraBreak.MyParent;
//_MyLog.WarnFormat("Keep notes and cautions with CR text {0},'{1}','{2}','{3}'", paraBreak.MyItemInfo.ItemID, paraBreak.MyItemInfo.ShortPath, paraBreak.MyItemInfo.MyProcedure.DisplayNumber, paraBreak.MyParent.MyParent.MyItemInfo.DisplayText);
}
}
if (!paraBreak.MyItemInfo.IsCautionPart && !paraBreak.MyItemInfo.IsNotePart && paraBreak.ParentHasCalvertMacro)
{
@ -561,6 +566,8 @@ namespace Volian.Print.Library
accountForCalvertAlarmConditionResponseFooter = 5 * SixLinesPerInch;
else
accountForCalvertAlarmConditionResponseFooter = 0;
//if (lastBreak != null && paraBreak.MyItemInfo.Ordinal == 1 && !paraBreak.MyItemInfo.IsCautionOrNotePart)
//_MyLog.WarnFormat("'Strange Break',{0},'{1}','{2}','{3}',{4}", paraBreak.MyItemInfo.ItemID, paraBreak.MyItemInfo.ShortPath, paraBreak.MyItemInfo.MyProcedure.DisplayNumber, paraBreak.MyItemInfo.MyHLS.DisplayText,lastBreak.MyItemInfo.ItemID);
}
if (lastBreak == paraBreak)
{