diff --git a/PROMS/Formats/fmtall/vcb1all.xml b/PROMS/Formats/fmtall/vcb1all.xml new file mode 100644 index 00000000..a83b1169 Binary files /dev/null and b/PROMS/Formats/fmtall/vcb1all.xml differ diff --git a/PROMS/Formats/genmacall/vcb1.svg b/PROMS/Formats/genmacall/vcb1.svg new file mode 100644 index 00000000..90c11683 Binary files /dev/null and b/PROMS/Formats/genmacall/vcb1.svg differ diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index f9299e27..85381384 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -838,7 +838,10 @@ namespace VEPROMS.CSLA.Library int profileDepth = ProfileTimer.Push(">>>> itemInfo.MyTab.CleanText.Trim"); string thisTab = itemInfo.MyTab.CleanText.Trim(); ProfileTimer.Pop(profileDepth); - if (thisTab != null && thisTab != "" && !char.IsLetterOrDigit(thisTab[0])) return pTab; + //The following will include '(x)' where 'x' is stepnumber for VC Summer Unit 2 & 3 (vcb) Note & Caution tabs + bool vcbHeaderCheck = itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.CombinedTabIncludeParenTabs && + thisTab != null && thisTab != "" && thisTab.Length > 1 && char.IsLetterOrDigit(thisTab[1]); + if (thisTab != null && thisTab != "" && !char.IsLetterOrDigit(thisTab[0]) && !vcbHeaderCheck) return pTab; if (itemInfo.FormatStepData.NumberWithLevel) pTab = itemInfo.MyHLS.MyTab.CleanText.Trim(); // if the parent tab ends with a alphanumeric and this tab is alphanumeric, add a '.' to separate them bool ms = pTab != "" && char.IsLetterOrDigit(pTab.TrimEnd()[pTab.Length - 1]); // parent tab ends with alphanumeric @@ -3490,11 +3493,15 @@ namespace VEPROMS.CSLA.Library bool doMeta = false; if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) { + // the DSS_SameXOFfSubsections was added for VC Summer Unit 2 & 3 (vcb format) so that all subsections are indented + // the same amount and this is also used for determining level for sequential tabbing, i.e. what seqfmt item to use for + // sequential level. + bool scttablev = ((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_SameXOffSubsections) == E_DocStructStyle.DSS_SameXOffSubsections); if (sd.StepSectionLayoutData.ShowSectionTitles && !MyDocStyle.CancelSectTitle && !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel)) - localPrintLevel = PrintLevel + ((ActiveFormat.PlantFormat.FormatData.Express && IsSequential) ? 0 : CurrentSectionLevel()); - if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true; + localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential) || scttablev) ? 0 : CurrentSectionLevel()); + if (!ActiveFormat.PlantFormat.FormatData.Express && !scttablev) doMeta = true; } if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel) if (SectionLevel() > 1) @@ -4096,6 +4103,12 @@ namespace VEPROMS.CSLA.Library } } + // For VS Summer Unit 2 & 3 (vcb formats) include step number in Note & Caution header + if (FormatStepData.TabData.IncludeStepNum && MyHeader != null && MyParent != null && MyParent.CombinedTab != null) + { + MyHeader.Text = MyHeader.Text + ((MyParent == null) ? "" : " Step " + MyParent.CombinedTab.TrimEnd(".".ToCharArray())); + MyHeader.CleanText = MyHeader.CleanText + ((MyParent == null) ? "" : " Step " + MyParent.CombinedTab.TrimEnd(".".ToCharArray())); + } return tbformat; } diff --git a/PROMS/VEPROMS.CSLA.Library/Format/ENums.cs b/PROMS/VEPROMS.CSLA.Library/Format/ENums.cs index 8bbae5c5..1d82d2db 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/ENums.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/ENums.cs @@ -171,6 +171,7 @@ namespace VEPROMS.CSLA.Library DSS_PageListAddSectCont = 0x400000000, // for this section, add the top continue message when doing the ATTACHTITLECONT pagelist token (Calvert/Landscape word docs) DSS_WordContentLandscaped = 0x800000000, // for this section, the word content is landscaped. DSS_ChklstEditSize = 0x100000000, // Westinghouse checklist - edit window size + DSS_SameXOffSubsections = 0x2000000000, // print subsections at same offset as section & preceeding subsections,start HLS xoff at section text (not number) }; public enum E_DocStyleUse : uint { diff --git a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs index 6074664a..e9b098cd 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs @@ -3608,6 +3608,14 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _LimitWidToPageWid, "@LimitWidToPageWid"); } } + private LazyLoad _CombinedTabIncludeParenTabs; + public bool CombinedTabIncludeParenTabs + { + get + { + return LazyLoad(ref _CombinedTabIncludeParenTabs, "@CombinedTabIncludeParenTabs"); + } + } private VE_Font _ModifiedTextStyle; public VE_Font ModifiedTextStyle { @@ -5220,6 +5228,14 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _NoTabAlign, "TabData/@NoTabAlign"); } } + private LazyLoad _IncludeStepNum; + public bool IncludeStepNum + { + get + { + return LazyLoad(ref _IncludeStepNum, "TabData/@IncludeStepNum"); + } + } private LazyLoad _Justify; public string Justify { diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index bc49b591..49fcefe2 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -2967,6 +2967,8 @@ namespace Volian.Print.Library offset += xMetaAdj; itemInfo.MyTab.Text = itemInfo.MyTab.Text.TrimEnd(" ".ToCharArray()); itemInfo.MyTab.CleanText = itemInfo.MyTab.CleanText.TrimEnd(" ".ToCharArray()); + if (((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_SameXOffSubsections) == E_DocStructStyle.DSS_SameXOffSubsections)) + offset += (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; } } } @@ -4933,7 +4935,8 @@ namespace Volian.Print.Library } if (itemInfo.IsHigh) { - if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) + if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || + ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_SameXOffSubsections) == E_DocStructStyle.DSS_SameXOffSubsections)) { // the HLS in the template prints the tab/step on the right edge of page. Don't // do the other calculations to relocate it.