diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index 54d20694..b9e69c0a 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -311,6 +311,8 @@ namespace Volian.Print.Library para.PartsContainer.Add(box); } Add(para); + if (didComponentTableRow && iChildItemInfo.Steps != null && iChildItemInfo.Steps.Count > 1) + tableBottomMost = AddComponentTableSiblings(cb, iChildItemInfo.Steps[1], xoff, para.YBottomMost, rnoLevel, maxRNO, formatInfo, yoffRight, pp); // Calvert Alarm's caution1 is the Annunciator window, i.e. in top right of page. Adjust // y offset for this caution that is printed BELOW the hls. @@ -372,6 +374,21 @@ namespace Volian.Print.Library ProfileTimer.Pop(profileDepth); return yoff; } + private float AddComponentTableSiblings(PdfContentByte cb, ItemInfo ii, float xoff, float yoff, int rnoLevel, int maxRNO, FormatInfo formatInfo, float yoffRight, PromsPrinter pp) + { + // Some of the data for the valve lists (BGE) and component lists (FARLEY) have + // sibling data within a column, rather than hard returns within the same paragraph. + float tableBottomMost = 0; + while (ii != null) + { + vlnParagraph para = new vlnParagraph(Parent, cb, ii, xoff, yoff, rnoLevel, maxRNO, formatInfo, null, null, yoffRight, true, pp); + tableBottomMost = Math.Max(tableBottomMost, para.YBottomMost); + yoff = para.YBottomMost; + Add(para); + ii = ii.GetNextItem(); + } + return tableBottomMost; + } public float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) { foreach (vlnParagraph child in this)