From f6266daf7d86208ff48825c9ce6c64c194a3894b Mon Sep 17 00:00:00 2001 From: Kathy Date: Thu, 8 Dec 2022 15:43:50 +0000 Subject: [PATCH] =?UTF-8?q?B2022-086:=20Barakah:=20Added=20flag,=20?= =?UTF-8?q?=E2=80=98AdjFirstSecDocStylesInPagination=E2=80=99,=20to=20NOT?= =?UTF-8?q?=20account=20for=20alarm=20box=20on=202nd=20page=20of=20alarms?= =?UTF-8?q?=20in=20pagination=20B2022-086:=20=20Barakah:=20=20improve=20pa?= =?UTF-8?q?gination,=20allow=20more=20on=20page=20&=20correctly=20account?= =?UTF-8?q?=20for=20top=20of=20page=20items=20when=20calculating=20y=20amo?= =?UTF-8?q?unt=20of=20text=20on=20a=20page;=20added=20debug=20output=20Add?= =?UTF-8?q?ed=20debug=20output?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs | 9 +++++++++ PROMS/Volian.Print.Library/Pagination.cs | 8 ++++++++ PROMS/Volian.Print.Library/vlnParagraph.cs | 5 +++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs index c31901fe..aee3bc92 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs @@ -1414,6 +1414,15 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _UseUnitWatermarkOnApproved, "@UseUnitWatermarkOnApproved"); } } + // B2022-086: Barakah - flag to adjust ypagesize for pagination when 1st and later pages have different printable box size + private LazyLoad _AdjFirstSecDocStylesInPagination; + public bool AdjFirstSecDocStylesInPagination + { + get + { + return LazyLoad(ref _AdjFirstSecDocStylesInPagination, "@AdjFirstSecDocStylesInPagination"); + } + } } #endregion #region VersionIdText diff --git a/PROMS/Volian.Print.Library/Pagination.cs b/PROMS/Volian.Print.Library/Pagination.cs index 56610d14..70822434 100644 --- a/PROMS/Volian.Print.Library/Pagination.cs +++ b/PROMS/Volian.Print.Library/Pagination.cs @@ -899,6 +899,7 @@ namespace Volian.Print.Library pg = pg.TopMostChild; return pg; } + public float yPageSizeForPagination = -1; private void BuildPageBreakList(float ySpaceOnCurPage, float yPageSize, bool KeepStepsOnPage, float yEndMsg, bool doSectionTitleContinued, bool onNewPage) { float topContinueHeight = 2 * SixLinesPerInch; @@ -973,6 +974,8 @@ namespace Volian.Print.Library string myTopMsg = docstyle.Continue.Top.Message; float myTopMsgSpace = ((myTopMsg ?? "") != "") ? 2 * SixLinesPerInch : 0; + // B2022-086: If continue message is above printable box don't include its size in pagination logic + if (docstyle.Continue.Top.RowOverride != null && docstyle.Continue.Top.RowOverride > 0) myTopMsgSpace = 0; // For B2016-157 & B2015-211: myTopMsgSpace is 1 line, not 2. Note that this may be a more generic solution, but // it was found during print testing for BGE and flag is used to minimize impact on other formats if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertPagination) myTopMsgSpace = ((myTopMsg ?? "") != "") ? SixLinesPerInch : 0; @@ -1039,6 +1042,7 @@ namespace Volian.Print.Library paraBreak = FindPageBreak(yStart, ySpaceOnCurPage - accountForCalvertAlarmConditionResponseFooter - yAccountForBottomMsg, yLowerLimit, myList, lastBreak, yPageSize - (myTopMsgSpace + SixLinesPerInch) - myBottomMsgSpace, myBottomMsgSpace, MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[40].ContinueOnly, yTop); + paraBreak.yPageSizeForPagination = yPageSize; // B2020-032 put in for Barakah EOPs 1T4-OP-EOP-XX-0100 Attachement 32 step 1.2.2a where a table was printing on a page by itself. // The following logic will walk up to each parent level to see try and get as many parent step levels on the same page // as the Table. @@ -1273,6 +1277,9 @@ namespace Volian.Print.Library // B2020-112: complicated AER/RNO. yEndMsg was accounted for twice -> put endmsg part back in, it broke wcn and didn't affect bge // B2020-116: the 112 change broke a WCN print of single column. The end message adjustment was added back in and retested for 112 also // and had no negative impact. + // B2022-086: adjust yPageSize for non-first page when second (or later) page has a different printable box (don't include + // size of alarm box in Barakah alarms is particular case that bug was written for) + if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.AdjFirstSecDocStylesInPagination && MyItemInfo.MyDocStyle.IndexOtherThanFirstPage != null) yPageSize = GetYPageSizeUseOnAllButFirstPage(); float ySpaceOnNextPage1 = yPageSize - (myTopMsgSpace + (yEndMsg == 0 ? SixLinesPerInch : 0)); // Allow for continue message and blank line. ySpaceOnNextPage1 -= accountForSmartTemplateHeader; // This fixes B2016-174: @@ -1486,6 +1493,7 @@ namespace Volian.Print.Library // B2020-108: Original FindPageBreak was renamed to FindPageBreak1 so that an additional check can be made after // the page break is found. Check if the location identified is a parent of a table that is too long to allow parent to fit // on the same page, if so break at the table rather than the parent. + public int levelForPagination = -1; private static vlnParagraph FindPageBreak(float yStart, float yUpperLimit, float yLowerLimit, StepLevelList myList, vlnParagraph lastBreak, float fullPage, float myBottomMsgSpace, bool RNOContinueOnly, float yTop) { diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index b8594f72..02bff24f 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -1442,8 +1442,8 @@ namespace Volian.Print.Library { if (!Rtf2Pdf.PdfDebug) return "No Path"; int profileDepth = ProfileTimer.Push(">>>> vlnParagraph.DebugInfo"); - string retval = string.Format("DebugID = {0}, ID={1} Type={2} TypeName='{3}' StepLevel={4} ShortPath={5} Width={6} Left={7} YOffset={8}", - DebugId, MyItemInfo.ItemID, MyItemInfo.FormatStepType, MyItemInfo.FormatStepData == null ? "NoStepData" : MyItemInfo.FormatStepData.Type, MyItemInfo.StepLevel, MyItemInfo.ShortPath, Width, XOffset, YOffset); + string retval = string.Format("DebugID = {0}, ID={1} Type={2} TypeName='{3}' StepLevel={4} ShortPath={5} Width={6} Left={7} YOffset={8}, PaginationLevel = {9}, yPageSize = {10}", + DebugId, MyItemInfo.ItemID, MyItemInfo.FormatStepType, MyItemInfo.FormatStepData == null ? "NoStepData" : MyItemInfo.FormatStepData.Type, MyItemInfo.StepLevel, MyItemInfo.ShortPath, Width, XOffset, YOffset, levelForPagination, yPageSizeForPagination); ProfileTimer.Pop(profileDepth); return retval; } @@ -7067,6 +7067,7 @@ namespace Volian.Print.Library { if (!paraLoc.MyParagraph.MyItemInfo.IsTitle && paraLoc.MyParagraph.MyItemInfo.MyPrevious != null && paraLoc.MyParagraph.MyItemInfo.MyPrevious.FormatStepData.Type == "TitleWithTextBelow") level = 0; } + paraLoc.MyParagraph.levelForPagination = level; myList.Add(level, paraLoc.YTop, paraLoc.MyParagraph); } return myList;