From 738089548c99f175cb02cdedb9d4f888dc1aed28 Mon Sep 17 00:00:00 2001 From: Kathy Date: Fri, 26 May 2017 11:51:24 +0000 Subject: [PATCH] On Preferred Page Break checkbox: make Supp Info -> Sup Info for consistency B2017-099: fix crash & printing of HLS with Caution & supinfo & supinfo on HLS too. --- .../DisplayTags.Designer.cs | 2 +- PROMS/Volian.Print.Library/PromsPrinter.cs | 5 ++++ PROMS/Volian.Print.Library/vlnParagraph.cs | 25 +++++++++++++++++-- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/PROMS/Volian.Controls.Library/DisplayTags.Designer.cs b/PROMS/Volian.Controls.Library/DisplayTags.Designer.cs index 3b33cc75..c69bf251 100644 --- a/PROMS/Volian.Controls.Library/DisplayTags.Designer.cs +++ b/PROMS/Volian.Controls.Library/DisplayTags.Designer.cs @@ -125,7 +125,7 @@ namespace Volian.Controls.Library this.superTooltipTags.SetSuperTooltip(this.cbPrefPageBreak, new DevComponents.DotNetBar.SuperTooltipInfo("Preferred Page Break for Supplemental Info", "", "When set, starts this step at the top of a page.\r\n\r\nkeyboard command: ", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.cbPrefPageBreak.TabIndex = 1; - this.cbPrefPageBreak.Text = "Preferred Page Break (for Supp Info)"; + this.cbPrefPageBreak.Text = "Preferred Page Break (for Sup Info)"; this.cbPrefPageBreak.CheckedChanged += new System.EventHandler(this.cbPrefPageBreak_CheckedChanged); // // cbPageBreak diff --git a/PROMS/Volian.Print.Library/PromsPrinter.cs b/PROMS/Volian.Print.Library/PromsPrinter.cs index 4116b48a..4c3c30fb 100644 --- a/PROMS/Volian.Print.Library/PromsPrinter.cs +++ b/PROMS/Volian.Print.Library/PromsPrinter.cs @@ -1964,6 +1964,11 @@ namespace Volian.Print.Library SectionInfo supInfoSect = pg.MyItemInfo.MyActiveSection as SectionInfo; if (supInfoSect.StepSectPageBreaksForSupInfo != null && supInfoSect.StepSectPageBreaksForSupInfo.Contains(pg.MyItemInfo.ItemID)) supInfoGroups.Add(new List()); // add a grouping since a page break exists + if (supInfoGroups.Count == 0) + { + supInfoGroups.Add(new List()); // add a grouping since a page break exists + _MyLog.WarnFormat("SupInfo Print Groups: {0}, {1}", pg.MyItemInfo.ItemID, pg.MyItemInfo.ShortPath); + } supInfoGroups[supInfoGroups.Count - 1].Add(pg); // add paragraph to the last grouping } return supInfoGroups; diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index 0edccc48..e4c0a6a6 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -1538,7 +1538,11 @@ namespace Volian.Print.Library SectionInfo supInfoSect = MyItemInfo.MyActiveSection as SectionInfo; if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.DoPageBreaks && MyPromsPrinter.NeedSupInfoBreak && MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) { - supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID); + // if this has a caution/note with supinfo, that is id that needs to go in pagination list, unless it is in there. + int aboveSupinfoId = ChildrenAboveHaveSupInfo(); + if (supInfoSect.StepSectPageBreaksForSupInfo.Contains(aboveSupinfoId)) aboveSupinfoId = -1; + supInfoSect.StepSectPageBreaks.Add(aboveSupinfoId!=-1?ItemInfo.Get(aboveSupinfoId).MyParent.ItemID:MyItemInfo.ItemID); + supInfoSect.StepSectPageBreaksForSupInfo.Add(aboveSupinfoId!=-1?aboveSupinfoId:MyItemInfo.SupInfos[0].ItemID); MyPromsPrinter.NeedSupInfoBreak = false; } switch (paginate) @@ -2178,7 +2182,24 @@ namespace Volian.Print.Library { SectionInfo supInfoSect = ii.MyActiveSection as SectionInfo; if (supInfoSect.StepSectPageBreaks.Contains(sib.ItemID)) return -1; - if (sib.SupInfos != null && sib.SupInfos.Count > 0) return sib.SupInfos[0].ItemID; + if (sib.SupInfos != null && sib.SupInfos.Count > 0) + { + // check if this is in the list of page breaks for supinfos, if not it may have one of its cautions/notes rather than its id: + if (!supInfoSect.StepSectPageBreaksForSupInfo.Contains(sib.SupInfos[0].ItemID)) + { + if (sib.Cautions != null) + { + foreach (ItemInfo caution in sib.Cautions) + if (caution.SupInfos != null && caution.SupInfos.Count > 0 && supInfoSect.StepSectPageBreaksForSupInfo.Contains(caution.SupInfos[0].ItemID)) return caution.SupInfos[0].ItemID; + } + if (sib.Notes != null) + { + foreach (ItemInfo note in sib.Notes) + if (note.SupInfos != null && note.SupInfos.Count > 0 && supInfoSect.StepSectPageBreaksForSupInfo.Contains(note.SupInfos[0].ItemID)) return note.SupInfos[0].ItemID; + } + } + return sib.SupInfos[0].ItemID; + } id = GetSubThatHasSupInfoItems(sib, startid); if (id != -1) return id; sib = sib.NextItem;