From 870aa7736e25375666df49e43952024ef205c6d9 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 12 Dec 2011 20:00:27 +0000 Subject: [PATCH] Check for a null when getting checkoff information Added logic to use the DropCheckoff flag which tell the code that the checkoff goes on last row of the text. (default should be first row of text) --- PROMS/Volian.Controls.Library/EditItem.cs | 2 +- PROMS/Volian.Print.Library/vlnParagraph.cs | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/PROMS/Volian.Controls.Library/EditItem.cs b/PROMS/Volian.Controls.Library/EditItem.cs index c2dd72b9..0bd46719 100644 --- a/PROMS/Volian.Controls.Library/EditItem.cs +++ b/PROMS/Volian.Controls.Library/EditItem.cs @@ -204,7 +204,7 @@ namespace Volian.Controls.Library MyItemInfo.RefreshItemAnnotations(); ChangeBar = MyItemInfo.HasChangeBar; CheckOff co = _MyItemInfo.GetCheckOffStep(); - if (co != null) + if (co != null && co.UIMark != null) { UserCheckOff = true; UserCheckOffChar = (char)co.UIMark; diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index da01eea6..fdc1af03 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -937,7 +937,9 @@ namespace Volian.Print.Library mytab.YOffset = yoff; if (mytab.MyMacro != null) mytab.MyMacro.YOffset = yoff; } - float yForCheckoff = 0; + float yForCheckoff = yoff; //0; - default checkoff row is same as FIRST line of text + // if dropCheckoff is true, then the checkoff is place on the same of row as the LAST line of text + bool dropCheckoff = itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.DropCheckOff; if (itemInfo.MyContent.MyGrid != null) { VlnFlexGrid myFlexGrid = new VlnFlexGrid(1,1); @@ -945,7 +947,9 @@ namespace Volian.Print.Library MyGrid = new vlnTable(myFlexGrid, cb); Height = MyGrid.Height; Width = MyGrid.Width; - yForCheckoff = yoff + Height - SixLinesPerInch; + //yForCheckoff = yoff + Height - SixLinesPerInch; + if (dropCheckoff) + yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text yoff += (Height + (2 * SixLinesPerInch)); CalculateXOffset(itemInfo, maxRNO, formatInfo); } @@ -969,7 +973,9 @@ namespace Volian.Print.Library Width = Int32.Parse(vals[3], System.Globalization.NumberStyles.AllowHexSpecifier) * MyItemInfo.FormatStepData.Font.CharsToTwips; int lines = Int32.Parse(vals[2], System.Globalization.NumberStyles.AllowHexSpecifier); Height = lines * SixLinesPerInch; - yForCheckoff = yoff + Height - SixLinesPerInch; + //yForCheckoff = yoff + Height - SixLinesPerInch; + if (dropCheckoff) + yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text yoff += (Height + (2 * SixLinesPerInch)); string erMsg = null; try @@ -1005,8 +1011,10 @@ namespace Volian.Print.Library && !MyItemInfo.MyDocStyle.SpecialStepsFoldout)) { yoff += Height; - yForCheckoff = yoff - SixLinesPerInch; + //yForCheckoff = yoff - SixLinesPerInch; yoff += AdjustForBlankLines(); + if (dropCheckoff) + yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text } } CheckOff co = itemInfo.GetCheckOffStep();