NSPIFG support

NSPIFG2 missing genmac
NSP IFG improvements
This commit is contained in:
Kathy Ruffing 2013-07-17 13:09:04 +00:00
parent 60fc6bbd18
commit 15efb46dd3
7 changed files with 61 additions and 18 deletions

View File

@ -42,6 +42,17 @@ namespace Volian.Print.Library
// procedure in questions was VEWCNEMG\EMGAPP.PRC, ES-01, Step 8. // procedure in questions was VEWCNEMG\EMGAPP.PRC, ES-01, Step 8.
bool ManualPageBreak = false; bool ManualPageBreak = false;
float yEndMsg = !MyItemInfo.IsSection && MyItemInfo.MyHLS.NextItem == null && (MyItemInfo.MyDocStyle.End.Message ?? "") != "" ? 2 * SixLinesPerInch : 0; float yEndMsg = !MyItemInfo.IsSection && MyItemInfo.MyHLS.NextItem == null && (MyItemInfo.MyDocStyle.End.Message ?? "") != "" ? 2 * SixLinesPerInch : 0;
// The following code is to fix a pagination issue in SHE. It was decided to not put it into development
// because some of the pagination logic may be redesigned. Without this fix, some pages had a page break
// before they should. I did not want to lose this code, in case at some point we want to revisit this.
// if doing an end message & we already are ending with a blank line, add one line for the end message
// otherwise, we need to add two lines, i.e. ((2 * SixLinesPerInch) - yEndsWithBlankLine)
// this change was necessary to fix a pagination problem in Shearon Harris, EOPs, User Guide, Attachment 2.
//float yEndsWithBlankLine = AdjustForBlankLines();
//KBR debug: if (yEndsWithBlankLine != 0) Console.WriteLine("*** yEndsWithBlankLine = {0}", yEndsWithBlankLine);
//float yEndMsg = !MyItemInfo.IsSection && MyItemInfo.MyHLS.NextItem == null && (MyItemInfo.MyDocStyle.End.Message ?? "") != "" ? ((2 * SixLinesPerInch) - yEndsWithBlankLine) : 0;
float yWithinMargins = CalculateYLocation(yLocation, yTopMargin) - yBottomMargin; // -SixLinesPerInch; float yWithinMargins = CalculateYLocation(yLocation, yTopMargin) - yBottomMargin; // -SixLinesPerInch;
bool isFirstChild = MyItemInfo.MyPrevious == null; bool isFirstChild = MyItemInfo.MyPrevious == null;
bool nearTheTop = (yWithinMargins < yPageSize) && (yWithinMargins > (yPageSize - 5 * SixLinesPerInch)); bool nearTheTop = (yWithinMargins < yPageSize) && (yWithinMargins > (yPageSize - 5 * SixLinesPerInch));
@ -64,7 +75,7 @@ namespace Volian.Print.Library
// Steps that have the smart template (the WCNCKL format for example), always include two children. // Steps that have the smart template (the WCNCKL format for example), always include two children.
if (MyItemInfo.IsHigh && MyItemInfo.FormatStepData.UseSmartTemplate && ChildrenBelow.Count > 1) if (MyItemInfo.IsHigh && MyItemInfo.FormatStepData.UseSmartTemplate && ChildrenBelow.Count > 1)
firstChild = ChildrenBelow[1]; firstChild = ChildrenBelow[1];
if (firstChild != null && !firstChild.MyItemInfo.IsNumbered) // If not numbered get the last child if (firstChild != null && firstChild.MyItemInfo != null && !firstChild.MyItemInfo.IsNumbered) // If not numbered get the last child
firstChild = firstChild.MyParent.ChildrenBelow[firstChild.MyParent.ChildrenBelow.Count - 1]; firstChild = firstChild.MyParent.ChildrenBelow[firstChild.MyParent.ChildrenBelow.Count - 1];
float ySizeIncludingFirst = firstChild == null ? YSize : firstChild.YSize + (firstChild.YTopMost - YTopMost); float ySizeIncludingFirst = firstChild == null ? YSize : firstChild.YSize + (firstChild.YTopMost - YTopMost);
bool KeepStepsOnPage = MyItemInfo.ActiveFormat.MyStepSectionLayoutData.KeepStepsOnPage; bool KeepStepsOnPage = MyItemInfo.ActiveFormat.MyStepSectionLayoutData.KeepStepsOnPage;
@ -127,7 +138,7 @@ namespace Volian.Print.Library
return 0; // Don't Paginate (page break) on a Step Section if it's first thing on page return 0; // Don't Paginate (page break) on a Step Section if it's first thing on page
} }
if (!MyItemInfo.IsHigh) return 0; // Don't Paginate on a Substep level if (!MyItemInfo.IsHigh) return 0; // Don't Paginate on a Substep level
MyPageHelper.HLSText = MyItemInfo.DisplayText; // save the High Level Step Text //MyPageHelper.HLSText = MyItemInfo.DisplayText; // save the High Level Step Text
//Console.WriteLine("{0} Paginate", MyPageHelper.HLSText); //Console.WriteLine("{0} Paginate", MyPageHelper.HLSText);
StepConfig sc1 = MyItemInfo.MyConfig as StepConfig; StepConfig sc1 = MyItemInfo.MyConfig as StepConfig;
ManualPageBreak = MyPageHelper.OriginalPageBreak ? (sc1 == null ? false : sc1.Step_ManualPagebreak) : ManualPageBreak = MyPageHelper.OriginalPageBreak ? (sc1 == null ? false : sc1.Step_ManualPagebreak) :

View File

@ -369,6 +369,7 @@ namespace Volian.Print.Library
OnStatusChanged(myProcedure.DisplayNumber, PromsPrinterStatusType.ProgressSetup, myProcedure.Sections.Count); OnStatusChanged(myProcedure.DisplayNumber, PromsPrinterStatusType.ProgressSetup, myProcedure.Sections.Count);
int progress = 0; int progress = 0;
int finalMessageSectionID = GetFinalMessageSectionID(myProcedure, doingFoldout); int finalMessageSectionID = GetFinalMessageSectionID(myProcedure, doingFoldout);
string LastFmtName = null;
foreach (SectionInfo mySection in myProcedure.Sections) foreach (SectionInfo mySection in myProcedure.Sections)
{ {
if (((mySection.MyContent.Number.ToUpper() == "FOLDOUT" && myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.SectionLevelFoldouts) if (((mySection.MyContent.Number.ToUpper() == "FOLDOUT" && myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.SectionLevelFoldouts)
@ -381,10 +382,15 @@ namespace Volian.Print.Library
// Set up Helper for the particular Section // Set up Helper for the particular Section
if (_MyHelper == null) if (_MyHelper == null)
{ {
LastFmtName = mySection.ActiveFormat.Name;
string hlsText = ""; string hlsText = "";
int hlsItemId = 0;
if (mySection.IsStepSection && mySection.Steps.Count > 0) if (mySection.IsStepSection && mySection.Steps.Count > 0)
{
hlsItemId = mySection.Steps[0].ItemID;
hlsText = mySection.Steps[0].DisplayText; // save the High level step text for use in the page list hlsText = mySection.Steps[0].DisplayText; // save the High level step text for use in the page list
cb.PdfWriter.PageEvent = _MyHelper = new VlnSvgPageHelper(mySection, this, hlsText); }
cb.PdfWriter.PageEvent = _MyHelper = new VlnSvgPageHelper(mySection, this, hlsText, hlsItemId);
_MyHelper.AllowAllWatermarks = AllowAllWatermarks; _MyHelper.AllowAllWatermarks = AllowAllWatermarks;
_MyHelper.MyPdfWriter = cb.PdfWriter; _MyHelper.MyPdfWriter = cb.PdfWriter;
_MyHelper.CreatingFoldoutPage = doingFoldout; _MyHelper.CreatingFoldoutPage = doingFoldout;
@ -425,7 +431,9 @@ namespace Volian.Print.Library
//added by jcb to reset mygaps when changing a section. found old section gaps were carrying over to new section //added by jcb to reset mygaps when changing a section. found old section gaps were carrying over to new section
_MyHelper.MyGaps.Clear(); _MyHelper.MyGaps.Clear();
//Console.WriteLine("'{0}' PromsPrinter", mySection.DisplayText); //Console.WriteLine("'{0}' PromsPrinter", mySection.DisplayText);
if (mySection.SectionConfig.Section_Pagination == SectionConfig.SectionPagination.Separate) // if pagination is separate or we've changed the format, we have not done the first page
// (if this format has the useonfirst page docstyle flag)
if (LastFmtName != mySection.ActiveFormat.Name || mySection.SectionConfig.Section_Pagination == SectionConfig.SectionPagination.Separate)
_MyHelper.DidFirstPageDocStyle = false; _MyHelper.DidFirstPageDocStyle = false;
if (!mySection.IsStepSection) _MyHelper.PageBookmarks.Add((ItemInfo)mySection, ((mySection.DisplayNumber ?? "") == "" ? "" : mySection.DisplayNumber + " - ") + mySection.DisplayText, null); if (!mySection.IsStepSection) _MyHelper.PageBookmarks.Add((ItemInfo)mySection, ((mySection.DisplayNumber ?? "") == "" ? "" : mySection.DisplayNumber + " - ") + mySection.DisplayText, null);
_MyHelper.MySection = mySection; _MyHelper.MySection = mySection;

View File

@ -507,9 +507,11 @@ namespace Volian.Print.Library
set { _MyPromsPrinter = value; } set { _MyPromsPrinter = value; }
} }
private int _MyRomanPage = 1; private int _MyRomanPage = 1;
public VlnSvgPageHelper(VEPROMS.CSLA.Library.SectionInfo mySection,PromsPrinter myPromsPrinter,string hlsText) : base() public VlnSvgPageHelper(VEPROMS.CSLA.Library.SectionInfo mySection, PromsPrinter myPromsPrinter, string hlsText, int hlsItemId)
: base()
{ {
HLSText = hlsText; HLSText = hlsText;
HasHLSTextId = hlsItemId;
MySection = mySection; MySection = mySection;
MyPromsPrinter = myPromsPrinter; MyPromsPrinter = myPromsPrinter;
} }
@ -753,6 +755,8 @@ namespace Volian.Print.Library
//float rowAdj = 0; // = 18; //float rowAdj = 0; // = 18;
foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems) foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems)
{ {
if (pageItem.Token == null) continue; // can be null if token is dependent on PSI lookup!
DidHLSText = false; // reset to false for this group of tokens.
//if (pageItem.Token.Contains("HLSTEXT")) //if (pageItem.Token.Contains("HLSTEXT"))
// Console.WriteLine("{0} - PageList Token", pageItem.Token); // Console.WriteLine("{0} - PageList Token", pageItem.Token);
@ -866,11 +870,17 @@ namespace Volian.Print.Library
} }
return deflt; return deflt;
} }
private bool _HasHLSText = false; private bool _DidHLSText = false;
public bool HasHLSText public bool DidHLSText
{ {
get { return _HasHLSText; } get { return _DidHLSText; }
set { _HasHLSText = value; } set { _DidHLSText = value; }
}
private int _HasHLSTextId = 0;
public int HasHLSTextId
{
get { return _HasHLSTextId; }
set { _HasHLSTextId = value; }
} }
private string _HLSText = ""; private string _HLSText = "";
public string HLSText public string HLSText
@ -1049,9 +1059,8 @@ namespace Volian.Print.Library
PageListCheckOffHeader = PageItemToSvgText(pageItem, pageItem.Token, vf, section); PageListCheckOffHeader = PageItemToSvgText(pageItem, pageItem.Token, vf, section);
break; break;
case "{HLSTEXT}": case "{HLSTEXT}":
HasHLSText = true; DidHLSText = true;
plstr = plstr.Replace(token, HLSText); plstr = plstr.Replace(token, HLSText);
Console.WriteLine("'{0}' pagelist", plstr);
break; break;
default: default:
if (token.Contains(@"RO-")) if (token.Contains(@"RO-"))

View File

@ -206,9 +206,9 @@ namespace Volian.Print.Library
float yLocation = CalculateYOffset(yPageStart, yTopMargin); float yLocation = CalculateYOffset(yPageStart, yTopMargin);
if (MyItemInfo.HasChangeBar && MyPageHelper.ChangeBarDefinition.MyChangeBarType != PrintChangeBar.Without) MyPageHelper.AddChangeBar(DoChangeBar(cb, MyItemInfo, MyPageHelper, XOffset, yLocation, MyPageHelper.MaxRNO, MyItemInfo.ActiveFormat), cbMess); if (MyItemInfo.HasChangeBar && MyPageHelper.ChangeBarDefinition.MyChangeBarType != PrintChangeBar.Without) MyPageHelper.AddChangeBar(DoChangeBar(cb, MyItemInfo, MyPageHelper, XOffset, yLocation, MyPageHelper.MaxRNO, MyItemInfo.ActiveFormat), cbMess);
float retval = yLocation; float retval = yLocation;
bool doprint = true; // 'doprint' will always be true if not doing NSP's {HLSTEXT} token in page list. The following code is used to prevent
if (MyItemInfo.ItemID == 25045) // printing the High level step, if the high level step is printed from the pagelist using {HLSTEXT} token.
Console.WriteLine("jcb"); bool doprint = !(MyPageHelper.DidHLSText && MyItemInfo.ItemID == MyPageHelper.HasHLSTextId);
if (MyItemInfo.IsFigure) if (MyItemInfo.IsFigure)
{ {
yLocation -= (SixLinesPerInch * MyPageHelper.YMultiplier); yLocation -= (SixLinesPerInch * MyPageHelper.YMultiplier);
@ -674,7 +674,7 @@ namespace Volian.Print.Library
case 1: // Break on High Level Step case 1: // Break on High Level Step
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
cb.PdfDocument.NewPage(); cb.PdfDocument.NewPage();
if(MyItemInfo.IsHigh && MyItemInfo.MyPrevious != null) //do not reset for 1st step if(MyItemInfo.IsSection || (MyItemInfo.IsHigh && MyItemInfo.MyPrevious != null)) //do not reset for 1st step
ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin);
DebugText.WriteLine("Paginate1"); DebugText.WriteLine("Paginate1");
if (MyItemInfo.IsSection) if (MyItemInfo.IsSection)

View File

@ -2980,8 +2980,11 @@ namespace fmtxml
AddNSPDEVDOC(ref dcstyles); AddNSPDEVDOC(ref dcstyles);
break; break;
case "NSPIFG.DOC": case "NSPIFG.DOC":
AddNSPIFGDOC(ref dcstyles);
break;
case "NSPIFG2.DOC": case "NSPIFG2.DOC":
AddNSPIFGDOC(ref dcstyles); AddNSPIFGDOC(ref dcstyles);
AddNSPIFG2DOC(ref dcstyles);
break; break;
case "NSPIFG.Y00": case "NSPIFG.Y00":
AddNSPARP_00DOC(ref dcstyles); AddNSPARP_00DOC(ref dcstyles);
@ -3013,6 +3016,8 @@ namespace fmtxml
} }
} }
private void AddIP315DOC(ref DocStyles dcstyles) private void AddIP315DOC(ref DocStyles dcstyles)
{ {
dcstyles.DcStyles[0].ContBottom = "(STEP %0d CONTINUED ON NEXT PAGE)"; dcstyles.DcStyles[0].ContBottom = "(STEP %0d CONTINUED ON NEXT PAGE)";
@ -3322,6 +3327,11 @@ namespace fmtxml
dcstyles.DcStyles[3].dstyle.FontSize = "11"; dcstyles.DcStyles[3].dstyle.FontSize = "11";
} }
private void AddNSPIFG2DOC(ref DocStyles dcstyles)
{
dcstyles.DcStyles[0].ContTop = "";
dcstyles.DcStyles[1].ContTop = "";
}
public void AddNSPARPDOC(ref DocStyles dcstyles) public void AddNSPARPDOC(ref DocStyles dcstyles)
{ {
//First Procedure Steps Page //First Procedure Steps Page

View File

@ -4810,7 +4810,9 @@ namespace fmtxml
if (mbox.TabPos == sbox.TabPos) sbox.TabPos = NullInt; if (mbox.TabPos == sbox.TabPos) sbox.TabPos = NullInt;
subFmt.BoxData[i].Font = FixInheritedFont(sbox.Font, mbox.Font); // Phase 3 subFmt.BoxData[i].Font = FixInheritedFont(sbox.Font, mbox.Font); // Phase 3
} }
string subName = subFmt.Name;
bool inheritShowSectionTitles = true;
if (fmtName.Contains("NSPIFG.X00")) inheritShowSectionTitles = false;
StepSectionLayout msctlay = mainFmt.SectData.StepSectionData.StpSectLayData; StepSectionLayout msctlay = mainFmt.SectData.StepSectionData.StpSectLayData;
StepSectionLayout ssctlay = subFmt.SectData.StepSectionData.StpSectLayData; StepSectionLayout ssctlay = subFmt.SectData.StepSectionData.StpSectLayData;
if (msctlay.TableCenterPos == ssctlay.TableCenterPos) subFmt.SectData.StepSectionData.StpSectLayData.TableCenterPos = null; if (msctlay.TableCenterPos == ssctlay.TableCenterPos) subFmt.SectData.StepSectionData.StpSectLayData.TableCenterPos = null;
@ -5137,7 +5139,7 @@ namespace fmtxml
if (msctlay.DoSTExtraAtTop != null && msctlay.DoSTExtraAtTop == ssctlay.DoSTExtraAtTop) subFmt.SectData.StepSectionData.StpSectLayData.DoSTExtraAtTop = "null"; if (msctlay.DoSTExtraAtTop != null && msctlay.DoSTExtraAtTop == ssctlay.DoSTExtraAtTop) subFmt.SectData.StepSectionData.StpSectLayData.DoSTExtraAtTop = "null";
if (msctlay.KeepStepsOnPage != null && msctlay.KeepStepsOnPage == ssctlay.KeepStepsOnPage) subFmt.SectData.StepSectionData.StpSectLayData.KeepStepsOnPage = "null"; if (msctlay.KeepStepsOnPage != null && msctlay.KeepStepsOnPage == ssctlay.KeepStepsOnPage) subFmt.SectData.StepSectionData.StpSectLayData.KeepStepsOnPage = "null";
if (msctlay.BreakOnSections != null && msctlay.BreakOnSections == ssctlay.BreakOnSections) subFmt.SectData.StepSectionData.StpSectLayData.BreakOnSections = "null"; if (msctlay.BreakOnSections != null && msctlay.BreakOnSections == ssctlay.BreakOnSections) subFmt.SectData.StepSectionData.StpSectLayData.BreakOnSections = "null";
if (msctlay.ShowSectionTitles != null && msctlay.ShowSectionTitles == ssctlay.ShowSectionTitles) subFmt.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "null"; if (inheritShowSectionTitles && msctlay.ShowSectionTitles != null && msctlay.ShowSectionTitles == ssctlay.ShowSectionTitles) subFmt.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "null";
if (msctlay.EndForSingle != null && msctlay.EndForSingle == ssctlay.EndForSingle) subFmt.SectData.StepSectionData.StpSectLayData.EndForSingle = "null"; if (msctlay.EndForSingle != null && msctlay.EndForSingle == ssctlay.EndForSingle) subFmt.SectData.StepSectionData.StpSectLayData.EndForSingle = "null";
if (msctlay.PaginateOnFirstSubstep3X != null && msctlay.PaginateOnFirstSubstep3X == ssctlay.PaginateOnFirstSubstep3X) subFmt.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep3X = "null"; if (msctlay.PaginateOnFirstSubstep3X != null && msctlay.PaginateOnFirstSubstep3X == ssctlay.PaginateOnFirstSubstep3X) subFmt.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep3X = "null";
if (msctlay.PaginateOnLowerStepLevel != null && msctlay.PaginateOnLowerStepLevel == ssctlay.PaginateOnLowerStepLevel) subFmt.SectData.StepSectionData.StpSectLayData.PaginateOnLowerStepLevel = "null"; if (msctlay.PaginateOnLowerStepLevel != null && msctlay.PaginateOnLowerStepLevel == ssctlay.PaginateOnLowerStepLevel) subFmt.SectData.StepSectionData.StpSectLayData.PaginateOnLowerStepLevel = "null";

View File

@ -583,6 +583,9 @@ namespace fmtxml
myConvert.Save(tbResultPath.Text + @"genmacall\" + fi.Name.ToLower().Replace(".rtf", ".svg")); myConvert.Save(tbResultPath.Text + @"genmacall\" + fi.Name.ToLower().Replace(".rtf", ".svg"));
} }
} }
// The NSPIFG2 file did not exist. Copy over NSPIFG to it.
FileInfo fix = new FileInfo(tbResultPath.Text + @"genmacall\nspifg.svg");
fix.CopyTo(tbResultPath.Text + @"genmacall\nspifg2.svg");
MessageBox.Show("DONE converting GenMac RTF files to drawing svg - Results are in " + tbResultPath.Text + @"genmacall"); MessageBox.Show("DONE converting GenMac RTF files to drawing svg - Results are in " + tbResultPath.Text + @"genmacall");
} }