C2024-003-print-sub-section

This commit is contained in:
Paul Larsen 2024-02-26 10:04:57 -05:00
parent 837978da92
commit 72457d956e
5 changed files with 76 additions and 75 deletions

View File

@ -533,8 +533,8 @@ namespace VEPROMS
if (dtPre != PDFDTPrefix.None) PDFFilePrefix = ""; // incase user entered prefix text but then selected a date/time (in working draft properties) if (dtPre != PDFDTPrefix.None) PDFFilePrefix = ""; // incase user entered prefix text but then selected a date/time (in working draft properties)
if (dtSuf != PDFDTSuffix.None) PDFFileSuffix = ""; // incase user entered suffix text but then selected a date/time (in working draft properties) if (dtSuf != PDFDTSuffix.None) PDFFileSuffix = ""; // incase user entered suffix text but then selected a date/time (in working draft properties)
// B2020-062 control the toggle of date/time prefix/suffix on pdf file name // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
// disable the date/time Prefix/Suffix switch if no date/time was selected // disable the date/time Prefix/Suffix switch if no date/time was selected
// This switch is does not affect the use of it if the user typed in text for prefix/suffix // This switch is does not affect the use of it if the user typed in text for prefix/suffix
if (!AllowDateTimePrefixSuffix || (dtPre == PDFDTPrefix.None && dtSuf == PDFDTSuffix.None)) if (!AllowDateTimePrefixSuffix || (dtPre == PDFDTPrefix.None && dtSuf == PDFDTSuffix.None))
{ {
swtbtnPDFdtPrefixSuffix.Value = false; swtbtnPDFdtPrefixSuffix.Value = false;
@ -962,8 +962,8 @@ namespace VEPROMS
} }
MyProcedure.SelectedChildToPrint = SelectedSlave; // B2023-035 for BNPP Alarms save the number of the child selected to print MyProcedure.SelectedChildToPrint = SelectedSlave; // B2023-035 for BNPP Alarms save the number of the child selected to print
// B2021-127: BNPPalr - Auto set of serial #, skip Front Matter as per PAL 11/1/21 (set to 1 not 0) // B2021-127: BNPPalr - Auto set of serial #, skip Front Matter as per PAL 11/1/21 (set to 1 not 0)
// Only do if set has applicability, printing an individual procedure, need to determine // Only do if set has applicability, printing an individual procedure, need to determine
// applicability count. // applicability count.
if (MyProcedure.MyDocVersion.MultiUnitCount > 1) if (MyProcedure.MyDocVersion.MultiUnitCount > 1)
{ {
VlnSvgPageHelper.CountInApplProcs = 1; VlnSvgPageHelper.CountInApplProcs = 1;

View File

@ -1200,7 +1200,7 @@ namespace VEPROMS
int[] _prtSectID = new int[3]; // C2024-003 parameter contains parent section itemid, child section itemid, issubsection flag. int[] _prtSectID = new int[3]; // C2024-003 parameter contains parent section itemid, child section itemid, issubsection flag.
if (si2.IsSubsection == true) if (si2.IsSubsection == true)
{ {
// If section is a subsection. assign values is section is a subsection. // If section is a subsection. Assigned values are section and subsection.
_prtSectID[0] = si2.MyParent.ItemID; // section _prtSectID[0] = si2.MyParent.ItemID; // section
_prtSectID[1] = si2.ItemID; // sub section _prtSectID[1] = si2.ItemID; // sub section
_prtSectID[2] = Convert.ToInt32(si2.IsSubsection); // IsSubSection flag _prtSectID[2] = Convert.ToInt32(si2.IsSubsection); // IsSubSection flag
@ -1221,7 +1221,7 @@ namespace VEPROMS
using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(si2.MyProcedure)) using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(si2.MyProcedure))
{ {
prnDlg.PrtSectID = _prtSectID; prnDlg.PrtSectID = _prtSectID; // Assign Section print values to parameter used in print secetions / sub sections.
prnDlg.SelectedSlave = args.UnitIndex; prnDlg.SelectedSlave = args.UnitIndex;
prnDlg.MySessionInfo = MySessionInfo; prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SetupForProcedure(); // Setup filename prnDlg.SetupForProcedure(); // Setup filename

View File

@ -180,7 +180,7 @@ namespace Volian.Print.Library
set { _PDFFile = value; } set { _PDFFile = value; }
} }
// C2024-003 parameter contains parent section itemid, child section itemid, issubsection flag. // C2024-003 parameter contains parent section itemid, child section itemid, issubsection flag.
// C2024-003 values needed to print section. // C2024-003 values needed to print individual sections.
private int[] _prtSectID = new int[] { -1, -1, 0 }; private int[] _prtSectID = new int[] { -1, -1, 0 };
public int[] PrtSectID public int[] PrtSectID
{ {
@ -814,11 +814,11 @@ namespace Volian.Print.Library
{ {
if (si2.ItemID == PrtSectID[0]) if (si2.ItemID == PrtSectID[0])
{ {
foreach (SectionInfo subsi in si2.Sections) foreach (SectionInfo subsi in si2.Sections) // Find Parent Section
{ {
if (subsi.ItemID == PrtSectID[1]) if (subsi.ItemID == PrtSectID[1]) // Find sub section
{ {
CurSection = subsi; CurSection = subsi; // Assign the subsection object to CurSection.
} }
} }
} }
@ -981,15 +981,15 @@ namespace Volian.Print.Library
SectionInfo CurSection = null; // C2024-003 detrimine if the user is printing a sub section.1639 SectionInfo CurSection = null; // C2024-003 detrimine if the user is printing a sub section.1639
if (Convert.ToBoolean(PrtSectID[2])) if (Convert.ToBoolean(PrtSectID[2]))
{ {
foreach (SectionInfo si2 in myProcedure.Sections) foreach (SectionInfo si2 in myProcedure.Sections) // Find parent section.
{ {
if (si2.ItemID == PrtSectID[0]) if (si2.ItemID == PrtSectID[0])
{ {
foreach (SectionInfo subsi in si2.Sections) foreach (SectionInfo subsi in si2.Sections) // Find selected sub section.
{ {
if (subsi.ItemID == PrtSectID[1]) if (subsi.ItemID == PrtSectID[1])
{ {
CurSection = subsi; CurSection = subsi; // Assign sub section object to CurSection.
} }
} }
} }
@ -1635,15 +1635,15 @@ namespace Volian.Print.Library
SectionInfo CurSection = null; // C2024-003 detrimine determine if the user in printing a sub section. SectionInfo CurSection = null; // C2024-003 detrimine determine if the user in printing a sub section.
if (Convert.ToBoolean(PrtSectID[2])) if (Convert.ToBoolean(PrtSectID[2]))
{ {
foreach (SectionInfo si2 in ii.Sections) foreach (SectionInfo si2 in ii.Sections) // Find parent section.
{ {
if (si2.ItemID == PrtSectID[0]) if (si2.ItemID == PrtSectID[0])
{ {
foreach (SectionInfo subsi in si2.Sections) foreach (SectionInfo subsi in si2.Sections) // Find sub section.
{ {
if (subsi.ItemID == PrtSectID[1]) if (subsi.ItemID == PrtSectID[1])
{ {
CurSection = subsi; CurSection = subsi; // Assigned sub section object to CurSection.
} }
} }
} }
@ -3018,15 +3018,15 @@ namespace Volian.Print.Library
SectionInfo CurSection = null; SectionInfo CurSection = null;
if (Convert.ToBoolean(MyPromsPrinter.PrtSectID[2])) // C2024-003 determine if the user is printing a sub section. If so assign it to CurSection. if (Convert.ToBoolean(MyPromsPrinter.PrtSectID[2])) // C2024-003 determine if the user is printing a sub section. If so assign it to CurSection.
{ {
foreach (SectionInfo si2 in ii.Sections) foreach (SectionInfo si2 in ii.Sections) // Find parent section
{ {
if (si2.ItemID == MyPromsPrinter.PrtSectID[0]) if (si2.ItemID == MyPromsPrinter.PrtSectID[0])
{ {
foreach (SectionInfo subsi in si2.Sections) foreach (SectionInfo subsi in si2.Sections) // Find sub section.
{ {
if (subsi.ItemID == MyPromsPrinter.PrtSectID[1]) if (subsi.ItemID == MyPromsPrinter.PrtSectID[1])
{ {
CurSection = subsi; CurSection = subsi; // Assign sub section object to CurSection.
break; break;
} }
} }

View File

@ -1363,8 +1363,8 @@ namespace Volian.Print.Library
bool usePSIvalue = false; // C2021-065 used with ROLkUpMatch pagelist flag (Barakah Alarms) bool usePSIvalue = false; // C2021-065 used with ROLkUpMatch pagelist flag (Barakah Alarms)
string otherChildUnit = string.Empty; // C2021-065 used when OTHER applicability information is used for the ROLookUp string otherChildUnit = string.Empty; // C2021-065 used when OTHER applicability information is used for the ROLookUp
// F2023-035: WCN - allow for change in left margin for supplemental information pages by // F2023-035: WCN - allow for change in left margin for supplemental information pages by
// setting a value in the DocStyle for the adjustment. // setting a value in the DocStyle for the adjustment.
float supInfoMargAdj = 0; float supInfoMargAdj = 0;
if (CreatingSupInfoPage || MyPromsPrinter.DoingFacingPage) supInfoMargAdj = MySection.MyDocStyle.SupInfoMargAdj == null ? 0 : (float)MySection.MyDocStyle.SupInfoMargAdj; if (CreatingSupInfoPage || MyPromsPrinter.DoingFacingPage) supInfoMargAdj = MySection.MyDocStyle.SupInfoMargAdj == null ? 0 : (float)MySection.MyDocStyle.SupInfoMargAdj;
foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems) foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems)

View File

@ -268,7 +268,7 @@ namespace Volian.Print.Library
// F2021-038: SHE/SHEA format - Less space after boxes // F2021-038: SHE/SHEA format - Less space after boxes
if (didSeparateBoxChgYAdjust && childItemInfo.IsStep && childItemInfo.FormatStepData.NoYBxAdjust) yoff -= vlnPrintObject.SixLinesPerInch; if (didSeparateBoxChgYAdjust && childItemInfo.IsStep && childItemInfo.FormatStepData.NoYBxAdjust) yoff -= vlnPrintObject.SixLinesPerInch;
int ln = 1; // a format flag determines whether there is a space before the note/caution. int ln = 1; // a format flag determines whether there is a space before the note/caution.
//if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; //if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++;
if (childItemInfo.MixCautionNotesDiffType()) ln += 2; if (childItemInfo.MixCautionNotesDiffType()) ln += 2;
box.YOffset = yoff + ((ln - 1) * vlnPrintObject.SixLinesPerInch); box.YOffset = yoff + ((ln - 1) * vlnPrintObject.SixLinesPerInch);
if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++;
@ -419,9 +419,9 @@ namespace Volian.Print.Library
if (box != null && box.MyBox != null) if (box != null && box.MyBox != null)
{ {
box.Height = yoff - box.YOffset; // new height, with children box.Height = yoff - box.YOffset; // new height, with children
// C2017-024 Wolf Creek wanted a hold point with out text and no extra blank lines in the caution/note box // C2017-024 Wolf Creek wanted a hold point with out text and no extra blank lines in the caution/note box
// so if they put only a hard space in for the text, then we will print the note/caution box with only the tab text // so if they put only a hard space in for the text, then we will print the note/caution box with only the tab text
// B2018-077 added check for parts under the note (ex. a table off of the note text) fix for Calvert OI-27B 6.11.B and 6.12.B // B2018-077 added check for parts under the note (ex. a table off of the note text) fix for Calvert OI-27B 6.11.B and 6.12.B
if (box.MyParent.MyItemInfo.MyContent.Text.StartsWith(@"\u160?") && box.MyParent.MyItemInfo.DisplayText.Length == 1 && box.MyParent.MyItemInfo.MyContent.ContentPartCount == 0) if (box.MyParent.MyItemInfo.MyContent.Text.StartsWith(@"\u160?") && box.MyParent.MyItemInfo.DisplayText.Length == 1 && box.MyParent.MyItemInfo.MyContent.ContentPartCount == 0)
{ {
box.Height -= 3 * vlnPrintObject.SixLinesPerInch; box.Height -= 3 * vlnPrintObject.SixLinesPerInch;
@ -765,8 +765,8 @@ namespace Volian.Print.Library
int countLine = 0; int countLine = 0;
string preSuf_Fix = (ii.FormatStepData.Prefix != null && ii.FormatStepData.Prefix != "") ? ii.FormatStepData.Prefix : null; string preSuf_Fix = (ii.FormatStepData.Prefix != null && ii.FormatStepData.Prefix != "") ? ii.FormatStepData.Prefix : null;
if (preSuf_Fix != null) countLine++; // account for a line of prefix (if no \par) if (preSuf_Fix != null) countLine++; // account for a line of prefix (if no \par)
// if this is a proportional font, need to 'draw' the prefix/suffix. NOTE that the suffix should // if this is a proportional font, need to 'draw' the prefix/suffix. NOTE that the suffix should
// just list the headers and the prefix can be 'empty'. // just list the headers and the prefix can be 'empty'.
if (ii.FormatStepData.Font.FontIsProportional()) if (ii.FormatStepData.Font.FontIsProportional())
{ {
float yLocVertLine = yLocation + (lpi * 1.5F); // +(lpi / 2); float yLocVertLine = yLocation + (lpi * 1.5F); // +(lpi / 2);
@ -959,7 +959,7 @@ namespace Volian.Print.Library
//if (MyItemInfo.InList(11019,11024,111026)) // RHM20150507 Table Scrunch //if (MyItemInfo.InList(11019,11024,111026)) // RHM20150507 Table Scrunch
// Console.WriteLine("here"); // Console.WriteLine("here");
float heightBefore = (MyGrid.Height + 4) * MyPageHelper.YMultiplier; // B2020-014 added parenthesis was calculating wrong for 7lpi Callaway FSG-7 Attachment 7 float heightBefore = (MyGrid.Height + 4) * MyPageHelper.YMultiplier; // B2020-014 added parenthesis was calculating wrong for 7lpi Callaway FSG-7 Attachment 7
// B2018-033 Account for bottom continue message when seeing if a scrunched table will fit // B2018-033 Account for bottom continue message when seeing if a scrunched table will fit
float ySizeBtmCtnMess = GetBottomContinueMessageSize(MyItemInfo.MyDocStyle); float ySizeBtmCtnMess = GetBottomContinueMessageSize(MyItemInfo.MyDocStyle);
// B2018-085 Ignore the bottom continue message if the Table is the last part of the step. // B2018-085 Ignore the bottom continue message if the Table is the last part of the step.
if (ySizeBtmCtnMess > 0 && MyParent.MyItemInfo.IsHigh && YBottomMost == MyParent.YBottomMost) ySizeBtmCtnMess = 0; if (ySizeBtmCtnMess > 0 && MyParent.MyItemInfo.IsHigh && YBottomMost == MyParent.YBottomMost) ySizeBtmCtnMess = 0;
@ -974,7 +974,7 @@ namespace Volian.Print.Library
MyPageHelper.TableAdjustment += (heightBefore - heightAfter); MyPageHelper.TableAdjustment += (heightBefore - heightAfter);
MyPageHelper.AdjustedTable = this; // B2020-059 - save the information of the table that is being compressed (used in RTF2PDF.cs TextAt()) MyPageHelper.AdjustedTable = this; // B2020-059 - save the information of the table that is being compressed (used in RTF2PDF.cs TextAt())
MyPageHelper.AdjustedTableYtop = yLocation; // B2020-059 save the top location of the compressed table (used in RTF2PDF.cs TextAt()) MyPageHelper.AdjustedTableYtop = yLocation; // B2020-059 save the top location of the compressed table (used in RTF2PDF.cs TextAt())
//B2018-092 Determine if the Table is too big by checking it including either 6 LPI or 7 LPI as appropriate //B2018-092 Determine if the Table is too big by checking it including either 6 LPI or 7 LPI as appropriate
if (heightAfter * MyPageHelper.YMultiplier < (yLocation - yBottomMargin - ySizeBtmCtnMess)) if (heightAfter * MyPageHelper.YMultiplier < (yLocation - yBottomMargin - ySizeBtmCtnMess))
{ {
// B2018-081 - Removed error log message if the code was able to properly adjust the table // B2018-081 - Removed error log message if the code was able to properly adjust the table
@ -1122,11 +1122,11 @@ namespace Volian.Print.Library
if (MyItemInfo.MyContent.Text.ToUpper().Contains("LINK:TR") && MyItemInfo.MyContent.ContentTransitionCount == 0) if (MyItemInfo.MyContent.Text.ToUpper().Contains("LINK:TR") && MyItemInfo.MyContent.ContentTransitionCount == 0)
Console.WriteLine("Missing Transition {0}", MyItemInfo.ItemID); Console.WriteLine("Missing Transition {0}", MyItemInfo.ItemID);
chk1.SetLocalDestination(string.Format("ItemID={0}", MyItemInfo.ItemID)); // Destination chk1.SetLocalDestination(string.Format("ItemID={0}", MyItemInfo.ItemID)); // Destination
// B2019-052: If multiple ROs/Transitions within a step, each should have a their own link rather than all linking to same thing. // B2019-052: If multiple ROs/Transitions within a step, each should have a their own link rather than all linking to same thing.
// Note the pdf link code that was here was moved to Rtf2iTextSharp.cs in DoVisitText so that each 'chunk' could have a link. // Note the pdf link code that was here was moved to Rtf2iTextSharp.cs in DoVisitText so that each 'chunk' could have a link.
// The code that remained here was the code that marks the destination for each step & the code that does the pdf links for // The code that remained here was the code that marks the destination for each step & the code that does the pdf links for
// enhanced steps. // enhanced steps.
// Also, the method GetDefaultItemInfo was moved to Rtf2iTextSharp.cs also - it was only called from code that was moved. // Also, the method GetDefaultItemInfo was moved to Rtf2iTextSharp.cs also - it was only called from code that was moved.
StepConfig sc = new StepConfig(MyItemInfo.MyContent.Config); StepConfig sc = new StepConfig(MyItemInfo.MyContent.Config);
DVEnhancedDocuments dveds = MyItemInfo.MyDocVersion.DocVersionConfig.MyEnhancedDocuments; DVEnhancedDocuments dveds = MyItemInfo.MyDocVersion.DocVersionConfig.MyEnhancedDocuments;
@ -1208,7 +1208,7 @@ namespace Volian.Print.Library
int fontStyle = 0; int fontStyle = 0;
bool underline = false; bool underline = false;
if (pi == null) // The header for the signoffs is missing in the current section format. if (pi == null) // The header for the signoffs is missing in the current section format.
// An Example can currently be found in Calvert OI-34 // An Example can currently be found in Calvert OI-34
{ {
if (!MissingInitials) // Only show this once. if (!MissingInitials) // Only show this once.
{ {
@ -1454,9 +1454,9 @@ namespace Volian.Print.Library
private void ResetDocStyleAndValues(ref float yTopMargin, ref float yBottomMargin) private void ResetDocStyleAndValues(ref float yTopMargin, ref float yBottomMargin)
{ {
float _PointsPerPage = PDFPageSize.PaperSizePoints(MyItemInfo.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // C2020-002 paper size is now set in the format files float _PointsPerPage = PDFPageSize.PaperSizePoints(MyItemInfo.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // C2020-002 paper size is now set in the format files
// if this document style has another style that is for pages other than first, we need to // if this document style has another style that is for pages other than first, we need to
// reset the document style off of this section AND reset docstyle values used. // reset the document style off of this section AND reset docstyle values used.
// C2018-003 fixed use of getting the active section // C2018-003 fixed use of getting the active section
if (MyItemInfo.ActiveSection != null && (MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnFirstPage) > 0) if (MyItemInfo.ActiveSection != null && (MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnFirstPage) > 0)
{ {
ItemInfo ii = (ItemInfo)MyItemInfo.ActiveSection; ItemInfo ii = (ItemInfo)MyItemInfo.ActiveSection;
@ -1501,9 +1501,9 @@ namespace Volian.Print.Library
ItemInfo itemInfo = tmp; ItemInfo itemInfo = tmp;
if (itemInfo.IsCautionOrNotePart) itemInfo = itemInfo.ActiveParent as ItemInfo; // if caution/note get to its associated step if (itemInfo.IsCautionOrNotePart) itemInfo = itemInfo.ActiveParent as ItemInfo; // if caution/note get to its associated step
itemInfo = itemInfo.ActiveParent as ItemInfo; // don't want this one in the combined tab, start at parent itemInfo = itemInfo.ActiveParent as ItemInfo; // don't want this one in the combined tab, start at parent
// B2018-084: continue message had bullets in it that didn't have correct font. The message should not have had bullets at // B2018-084: continue message had bullets in it that didn't have correct font. The message should not have had bullets at
// all - in the following line, there was an 'if' rather than a 'while' - go up parents until find the correct step type // all - in the following line, there was an 'if' rather than a 'while' - go up parents until find the correct step type
// don't just go up 1 level. // don't just go up 1 level.
while (!itemInfo.IsHigh && !itemInfo.IsSequential && !itemInfo.IsSection) itemInfo = itemInfo.ActiveParent as ItemInfo; while (!itemInfo.IsHigh && !itemInfo.IsSequential && !itemInfo.IsSection) itemInfo = itemInfo.ActiveParent as ItemInfo;
string prTab = ""; string prTab = "";
string thisTab = itemInfo.MyTab.CleanText.Trim(); string thisTab = itemInfo.MyTab.CleanText.Trim();
@ -2081,8 +2081,8 @@ namespace Volian.Print.Library
YTopMost = OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); YTopMost = OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0) MyPageHelper.NotesToFootNotesYoffset = CalculateYLocation(yLocation, yTopMargin); if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0) MyPageHelper.NotesToFootNotesYoffset = CalculateYLocation(yLocation, yTopMargin);
MyPromsPrinter.NewPage(); // HLS (7 lpi) breakif (MyItemInfo.IsSection) MyPromsPrinter.NewPage(); // HLS (7 lpi) breakif (MyItemInfo.IsSection)
//_MyLog.InfoFormat("NewPage 12 {0}", cb.PdfWriter.CurrentPageNumber); //_MyLog.InfoFormat("NewPage 12 {0}", cb.PdfWriter.CurrentPageNumber);
//Console.WriteLine("'b3',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); //Console.WriteLine("'b3',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset);
ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin);
//Console.WriteLine("'a3',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); //Console.WriteLine("'a3',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset);
DebugText.WriteLine("Paginate3"); DebugText.WriteLine("Paginate3");
@ -2970,9 +2970,9 @@ namespace Volian.Print.Library
float colPos = docstyle.Layout.LeftMargin + docstyle.Continue.Top.Margin ?? 0; float colPos = docstyle.Layout.LeftMargin + docstyle.Continue.Top.Margin ?? 0;
if (!docstyle.Continue.Top.PlaceAtLeftMargin) //F2019-033 when true position with respect only to the left margin if (!docstyle.Continue.Top.PlaceAtLeftMargin) //F2019-033 when true position with respect only to the left margin
colPos += XOffsetBox; //XOffsetbox get set when the tables, figures & equations were beyond the border and needed repositioned colPos += XOffsetBox; //XOffsetbox get set when the tables, figures & equations were beyond the border and needed repositioned
// C2019-044 for BNPP, put the top continue message on the same row as the checkoff/signoff heading // C2019-044 for BNPP, put the top continue message on the same row as the checkoff/signoff heading
// RowOverride specifies the position of the top continue message // RowOverride specifies the position of the top continue message
// For BNPP, RowOverride is set to the same row as the checkoff header is set to in the pagelist // For BNPP, RowOverride is set to the same row as the checkoff header is set to in the pagelist
if (docstyle.Continue.Top.RowOverride != null) if (docstyle.Continue.Top.RowOverride != null)
{ {
float adjRowPosition = (float)docstyle.Layout.TopMargin - (float)docstyle.Continue.Top.RowOverride; float adjRowPosition = (float)docstyle.Layout.TopMargin - (float)docstyle.Continue.Top.RowOverride;
@ -3054,8 +3054,8 @@ namespace Volian.Print.Library
msg_yLocation = msg_yLocation + yLocation - ((yLocation - yBottomMargin) / 2); // +SixLinesPerInch; // (need this for IP3) msg_yLocation = msg_yLocation + yLocation - ((yLocation - yBottomMargin) / 2); // +SixLinesPerInch; // (need this for IP3)
msg_yLocation = Math.Max(msg_yLocation, yBottomMargin + SixLinesPerInch); msg_yLocation = Math.Max(msg_yLocation, yBottomMargin + SixLinesPerInch);
break; break;
case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page
//msg_yLocation = yBottomMargin + 2 * SixLinesPerInch + (float)docstyle.Layout.FooterLength; // 2 lines above bottom margin //msg_yLocation = yBottomMargin + 2 * SixLinesPerInch + (float)docstyle.Layout.FooterLength; // 2 lines above bottom margin
msg_yLocation = msg_yLocation + yBtmMarginForMsg + (float)docstyle.Layout.FooterLength; msg_yLocation = msg_yLocation + yBtmMarginForMsg + (float)docstyle.Layout.FooterLength;
// if (MyPageHelper.YMultiplier != 1.0F) msg_yLocation = msg_yLocation / MyPageHelper.YMultiplier; // if (MyPageHelper.YMultiplier != 1.0F) msg_yLocation = msg_yLocation / MyPageHelper.YMultiplier;
break; break;
@ -3999,10 +3999,10 @@ namespace Volian.Print.Library
if (YOffset != 0 && MyItemInfo.FormatStepData != null && if (YOffset != 0 && MyItemInfo.FormatStepData != null &&
MyItemInfo.MyPrevious == null && MyItemInfo.FormatStepData.ThreeBlanksAbove && (!MyItemInfo.IsNote || MyItemInfo.MyParent.Cautions == null)) MyItemInfo.MyPrevious == null && MyItemInfo.FormatStepData.ThreeBlanksAbove && (!MyItemInfo.IsNote || MyItemInfo.MyParent.Cautions == null))
addExtraSpace = 24; // already has one blank line above, added two more addExtraSpace = 24; // already has one blank line above, added two more
//if (YOffset != 0 && MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace > 0) //if (YOffset != 0 && MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace > 0)
// addExtraSpace = (float)MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace; // addExtraSpace = (float)MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace;
// if this plant has the AlwaysUseExtraLines and there are notes/cautions above the hls, don't add in the // if this plant has the AlwaysUseExtraLines and there are notes/cautions above the hls, don't add in the
// extra space: // extra space:
if (itemInfo.IsHigh && (itemInfo.Cautions != null || itemInfo.Notes != null)) if (itemInfo.IsHigh && (itemInfo.Cautions != null || itemInfo.Notes != null))
{ {
if ((itemInfo.Cautions != null && itemInfo.Cautions[0].FormatStepData.AlwaysUseExtraLines) || (itemInfo.Notes != null && itemInfo.Notes[0].FormatStepData.AlwaysUseExtraLines)) if ((itemInfo.Cautions != null && itemInfo.Cautions[0].FormatStepData.AlwaysUseExtraLines) || (itemInfo.Notes != null && itemInfo.Notes[0].FormatStepData.AlwaysUseExtraLines))
@ -4078,7 +4078,7 @@ namespace Volian.Print.Library
yoff = YOffset = yoff + (2 * SixLinesPerInch); yoff = YOffset = yoff + (2 * SixLinesPerInch);
CheckOff co = itemInfo.GetCheckOffStep(); CheckOff co = itemInfo.GetCheckOffStep();
float yForCheckoff = yoff; //0; - default checkoff row is same as FIRST line of text 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 // 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 bool dropCheckoff = itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.DropCheckOff
|| (co != null && co.DropCheckOff); || (co != null && co.DropCheckOff);
if (itemInfo.MyContent.MyGrid != null) if (itemInfo.MyContent.MyGrid != null)
@ -4490,10 +4490,10 @@ namespace Volian.Print.Library
if (MyTab != null) MyTab.YOffset = ChildrenRight[0].YOffset; if (MyTab != null) MyTab.YOffset = ChildrenRight[0].YOffset;
if (PartsRight.Count > 0) PartsRight[0].YOffset = ChildrenRight[0].YOffset; if (PartsRight.Count > 0) PartsRight[0].YOffset = ChildrenRight[0].YOffset;
//B2020-160 use YTopMost instead of Yoffset if there are children above. //B2020-160 use YTopMost instead of Yoffset if there are children above.
// Get the minimun value between the AER and RNO YtopMost. // Get the minimun value between the AER and RNO YtopMost.
// example. Calvert AOP-7E/XIII/Step A5.h Unit 2 Approved set // example. Calvert AOP-7E/XIII/Step A5.h Unit 2 Approved set
//B2021-027 use YOffset if there isn't any children above (AER). //B2021-027 use YOffset if there isn't any children above (AER).
// example: Catawba Unit 1 AP’s; AP/1/A/5500/050; Enclosure 8 step 1 // example: Catawba Unit 1 AP’s; AP/1/A/5500/050; Enclosure 8 step 1
if (ChildrenAbove.Count == 0) if (ChildrenAbove.Count == 0)
YTopMost = ChildrenRight[0].ChildrenAbove[0].YOffset; //B2021-027 YTopMost = ChildrenRight[0].ChildrenAbove[0].YOffset; //B2021-027
else else
@ -4871,7 +4871,7 @@ namespace Volian.Print.Library
} }
results.Add(responsStr.Substring(start, lastspace - start).Trim(" ".ToCharArray()) + "\r\n"); results.Add(responsStr.Substring(start, lastspace - start).Trim(" ".ToCharArray()) + "\r\n");
start = lastspace + (spFound ? 1 : 0); // increment start based on whether a space is found, i.e. if no space keep at 'indx' start = lastspace + (spFound ? 1 : 0); // increment start based on whether a space is found, i.e. if no space keep at 'indx'
// width either is equal to width of text after the last space, or is zero if at the maxlen of width: // width either is equal to width of text after the last space, or is zero if at the maxlen of width:
width = (indx - lastspace - 1) > 0 ? indx - lastspace - 1 : 0; width = (indx - lastspace - 1) > 0 ? indx - lastspace - 1 : 0;
lastspace = 0; lastspace = 0;
} }
@ -5375,7 +5375,7 @@ namespace Volian.Print.Library
XOffset -= (XOffset - (XOffset * (float)MyItemInfo.FormatStepData.Font.CPI / 12)); XOffset -= (XOffset - (XOffset * (float)MyItemInfo.FormatStepData.Font.CPI / 12));
} }
XOffset -= 12; // This makes the 16bit & 32bit align very closely. XOffset -= 12; // This makes the 16bit & 32bit align very closely.
// if outside of the page margins then center within the page margins // if outside of the page margins then center within the page margins
float xOffset2 = (float)itemInfo.MyDocStyle.Layout.LeftMargin; float xOffset2 = (float)itemInfo.MyDocStyle.Layout.LeftMargin;
float xWidth2 = (float)itemInfo.MyDocStyle.Layout.PageWidth; float xWidth2 = (float)itemInfo.MyDocStyle.Layout.PageWidth;
if (XOffset + Width > xOffset2 + xWidth2) if (XOffset + Width > xOffset2 + xWidth2)
@ -5802,19 +5802,19 @@ namespace Volian.Print.Library
xoff = XOffset + (para.Width / 2) + (hdrWidth / 2); // XOffset has left margin included xoff = XOffset + (para.Width / 2) + (hdrWidth / 2); // XOffset has left margin included
} }
else else
xoff = XOffset; // XOffset has left margin included xoff = XOffset; // XOffset has left margin included
// KEEP: This may be needed in the future to fix location of 'OR's when Separator location="0" // KEEP: This may be needed in the future to fix location of 'OR's when Separator location="0"
// the following code would place the 'OR' at the location of the tab rather than text. This // the following code would place the 'OR' at the location of the tab rather than text. This
// is how 16bit was. However, a number of plants had been sent out with the xoffset at the xlocation // is how 16bit was. However, a number of plants had been sent out with the xoffset at the xlocation
// of text (does not match 16bit) when this was found for BGE OI3/OI-1B/6.1.B.4. Previous releases // of text (does not match 16bit) when this was found for BGE OI3/OI-1B/6.1.B.4. Previous releases
// went to CAT, MCG, FPL, NSP. // went to CAT, MCG, FPL, NSP.
//{ //{
// if (this.MyTab != null) // if (this.MyTab != null)
// xoff = this.MyTab.XOffset; // xoff = this.MyTab.XOffset;
// else // else
// xoff = XOffset; // xoff = XOffset;
//} //}
// B2018-096 AEP 082.002CD Note Box overlapping Step Box // B2018-096 AEP 082.002CD Note Box overlapping Step Box
vlnHeader myHeader = new vlnHeader(this, cb, itemInfo.MyHeader.Text, itemInfo.MyHeader.CleanText.TrimStart(" ".ToCharArray()), xoff + AdjustHeader + _MyBoxLeftAdj, YOffset, itemInfo.MyHeader.MyFont); vlnHeader myHeader = new vlnHeader(this, cb, itemInfo.MyHeader.Text, itemInfo.MyHeader.CleanText.TrimStart(" ".ToCharArray()), xoff + AdjustHeader + _MyBoxLeftAdj, YOffset, itemInfo.MyHeader.MyFont);
PartsAbove.Add(myHeader); PartsAbove.Add(myHeader);
//return myHeader.Height + (!MyItemInfo.MyDocStyle.SpecialStepsFoldout || (MyItemInfo.MyDocStyle.ExtraLineHeader && (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? SixLinesPerInch : 0); //return myHeader.Height + (!MyItemInfo.MyDocStyle.SpecialStepsFoldout || (MyItemInfo.MyDocStyle.ExtraLineHeader && (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? SixLinesPerInch : 0);
@ -6251,9 +6251,9 @@ namespace Volian.Print.Library
//Adjust Indent for Wolf Creek Background format flag //Adjust Indent for Wolf Creek Background format flag
float indentBG2 = itemInfo.IsPartOfBackgroundStep() ? itemInfo.FormatStepData.Font.CharsToTwips * 2 : 0; float indentBG2 = itemInfo.IsPartOfBackgroundStep() ? itemInfo.FormatStepData.Font.CharsToTwips * 2 : 0;
XOffset = childindent + MyParent.XOffset + indentBG2;//(itemInfo.FormatStepData.Font.CharsToTwips * 2); XOffset = childindent + MyParent.XOffset + indentBG2;//(itemInfo.FormatStepData.Font.CharsToTwips * 2);
// B2016-164: Added the following 'if' so that the width is not recalculated if in the alarm format & the parent has a template // B2016-164: Added the following 'if' so that the width is not recalculated if in the alarm format & the parent has a template
// B2016-168: The fix for 164 broke deviation document printing. The if statement was fixed for both: // B2016-168: The fix for 164 broke deviation document printing. The if statement was fixed for both:
// B2019-057 Added a check to see if there is a width override for this step element (Robinson AOP Backgrounds - paragraphs) // B2019-057 Added a check to see if there is a width override for this step element (Robinson AOP Backgrounds - paragraphs)
float wdthovrd = (itemInfo.FormatStepData.WidthOverride == null) ? 0 : (float)ToInt(itemInfo.FormatStepData.WidthOverride, maxRNO); float wdthovrd = (itemInfo.FormatStepData.WidthOverride == null) ? 0 : (float)ToInt(itemInfo.FormatStepData.WidthOverride, maxRNO);
if ((!itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || !UseTemplateWidthOrXOff(itemInfo.MyParent)) && wdthovrd == 0) if ((!itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || !UseTemplateWidthOrXOff(itemInfo.MyParent)) && wdthovrd == 0)
Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - (float)itemInfo.MyDocStyle.Layout.LeftMargin - indentBG2; Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - (float)itemInfo.MyDocStyle.Layout.LeftMargin - indentBG2;
@ -7272,3 +7272,4 @@ namespace Volian.Print.Library
} }
} }
} }