This commit is contained in:
Kathy Ruffing 2012-01-27 12:39:47 +00:00
parent 3ae2116de3
commit e730a3193e

View File

@ -344,6 +344,15 @@ namespace VEPROMS.CSLA.Library
return (MyPrevious == null); return (MyPrevious == null);
} }
} }
public bool IsAutoTOCSection
{
get
{
if (!IsSection) return false;
return ((ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.AutoTableOfContents) == E_PurchaseOptions.AutoTableOfContents &&
(MyDocStyle.StructureStyle.Style & E_DocStructStyle.TableOfContents) == E_DocStructStyle.TableOfContents);
}
}
#region StepLevel #region StepLevel
private int _StepLevel = -2;// Not yet calculated private int _StepLevel = -2;// Not yet calculated
public int StepLevel public int StepLevel
@ -1679,7 +1688,7 @@ namespace VEPROMS.CSLA.Library
public System.Collections.IList GetChildren() public System.Collections.IList GetChildren()
{ {
_PartInfoList = this.MyContent.ContentParts; _PartInfoList = this.MyContent.ContentParts;
if (_PartInfoList.Count == 1 && ( _PartInfoList[0].ToString() == "Sections" || _PartInfoList[0].ToString() == "Steps")) if (_PartInfoList.Count == 1 && ((IsProcedure && _PartInfoList[0].ToString() == "Sections") || _PartInfoList[0].ToString() == "Steps"))
return _PartInfoList[0].GetChildren(); return _PartInfoList[0].GetChildren();
return _PartInfoList; return _PartInfoList;
} }
@ -1688,7 +1697,8 @@ namespace VEPROMS.CSLA.Library
_PartInfoList = this.MyContent.ContentParts; _PartInfoList = this.MyContent.ContentParts;
if (allParts) if (allParts)
{ {
if (_PartInfoList.Count == 1 && (_PartInfoList[0].ToString() == "Sections" || _PartInfoList[0].ToString() == "Steps")) if (_PartInfoList.Count == 1 && ((IsProcedure && _PartInfoList[0].ToString() == "Sections") || _PartInfoList[0].ToString() == "Steps"))
return _PartInfoList[0].GetChildren(); return _PartInfoList[0].GetChildren();
return _PartInfoList; return _PartInfoList;
} }
@ -2148,7 +2158,7 @@ namespace VEPROMS.CSLA.Library
_MyHeader.CleanText = StripRtfFormatting(_MyHeader.Text); _MyHeader.CleanText = StripRtfFormatting(_MyHeader.Text);
_MyHeader.Justify = ContentAlignment.MiddleCenter; _MyHeader.Justify = ContentAlignment.MiddleCenter;
} }
#region Non HLP tab TODO #region Non Converted Plants tab TODO
// other possible 'tokens' // other possible 'tokens'
// Position offset - do this one here, so don't get background substitution below.. // Position offset - do this one here, so don't get background substitution below..
// ##-3# - Offset of -3 from Parent (FNP) // ##-3# - Offset of -3 from Parent (FNP)
@ -2160,11 +2170,6 @@ namespace VEPROMS.CSLA.Library
//"{LNK C/N Num}" //"{LNK C/N Num}"
//"{LNK Step Num}" //"{LNK Step Num}"
//Section Numbers
// % - Prefix with section number (works string in 16 bit, ie.e For 4.3 the prefix becomes 4.
// wid that would be stored.
//"{Section Prefix}"
// Position offset // Position offset
// \257 - Indent (CALLOWAY BACKGROUNDS) // \257 - Indent (CALLOWAY BACKGROUNDS)
// Newline within a tab (calbck) // Newline within a tab (calbck)
@ -2254,8 +2259,12 @@ namespace VEPROMS.CSLA.Library
ItemInfo ii = ActiveSection.MyParent; ItemInfo ii = ActiveSection.MyParent;
while (!ii.IsProcedure) while (!ii.IsProcedure)
{ {
// the following line must also include a check for the section config autoindent flag if (ii.DisplayNumber != null && ii.DisplayNumber != "")
if (ii.DisplayNumber != null && ii.DisplayNumber != "") countlev++; {
SectionConfig sc = MyActiveSection.MyConfig as SectionConfig;
if (sc != null && sc.SubSection_AutoIndent == "Y")
countlev++;
}
ii = ii.MyParent; ii = ii.MyParent;
} }
} }
@ -2263,24 +2272,41 @@ namespace VEPROMS.CSLA.Library
} }
private string SectionPrefix(string tbformat) private string SectionPrefix(string tbformat)
{ {
// If the Section's 'tab' is a character or has a character preceding the '.' is an alpha character, // if not metasection/tietabtolevel, return the 'section number'. (where the '.' may or may not exist)
// just return the alpha (no '.') if (!ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel)
// If the character preceding the '. 'is a number, return the section tab up to and including the '.'
// Otherwise, just return the section tab.
// Before checking for anything, if the DisplayNumber starts with 'ATTACHMENT ', don't use that in the Section
// prefix for the tabstring.
string attNum = ActiveSection.DisplayNumber.ToUpper().StartsWith("ATTACHMENT ") ? ActiveSection.DisplayNumber.Substring(11) : ActiveSection.DisplayNumber;
Match m = Regex.Match(attNum, @"[a-zA-Z]"); // for alpha, use non-touched displaynumber
int indx = -1;
if (m.Success)
{ {
indx = attNum.IndexOf("."); int indx = ActiveSection.MyTab.CleanText.IndexOf(".");
if (indx < 0) return attNum; if (indx > 0) return ActiveSection.MyTab.CleanText.Substring(0, indx + 1); // include the '.'
return attNum.Substring(0, indx); return ActiveSection.MyTab.CleanText.TrimEnd();
} }
if (IsHigh && ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel)
// the rest of this is for metasections (tietabtolevel format flag)
SectionInfo si = SectionInfo.Get(ActiveSection.ItemID);
// A 'TrueSectionNum' must have a '.' and cannot have lettters after the '.'.
if (si != null && si.TrueSectionNum())
{ {
string attNum = ActiveSection.DisplayNumber; // ActiveSection.DisplayNumber.ToUpper().StartsWith("ATTACHMENT ") ? ActiveSection.DisplayNumber.Substring(11) : ActiveSection.DisplayNumber;
// If section number is of form '1.0', return '1.'
if (attNum.Length > 1 && attNum[attNum.Length - 1] == '0' && attNum[attNum.Length - 2] == '.')
return attNum.Substring(0, attNum.Length - 1);
// If section number is of form '1', return '1.'
else if (attNum.Length > 0 && attNum[attNum.Length - 1] != '.')
return attNum + '.';
}
// For the docstyle flag DSS_TreatAsTrueSectNum, look for last space, and if one is
// found, the the Section Prefix is the text after the space with a '.' appended - for
// example, 'Attachment A' becomes 'A.'.
if ((MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.DSS_TreatAsTrueSectNum) != 0)
{
int lindx = ActiveSection.DisplayNumber.LastIndexOf(" ");
if (lindx > 0)
{
return ActiveSection.DisplayNumber.Substring(lindx + 1) + ".";
}
}
// If we're in a subsection, be sure there is a '.' at the end.
int subsection = CurrentSectionLevel(); int subsection = CurrentSectionLevel();
if (subsection >= 1) if (subsection >= 1)
{ {
@ -2288,9 +2314,6 @@ namespace VEPROMS.CSLA.Library
if (tmptab.LastIndexOf(".") != tmptab.Length - 1) tmptab = tmptab + "."; if (tmptab.LastIndexOf(".") != tmptab.Length - 1) tmptab = tmptab + ".";
return tmptab; return tmptab;
} }
}
indx = ActiveSection.MyTab.CleanText.IndexOf(".");
if (indx > 0) return ActiveSection.MyTab.CleanText.Substring(0,indx+1); // include the '.'
return ActiveSection.MyTab.CleanText.TrimEnd(); return ActiveSection.MyTab.CleanText.TrimEnd();
} }
@ -3369,7 +3392,7 @@ namespace VEPROMS.CSLA.Library
int indx = DisplayNumber.IndexOf("."); int indx = DisplayNumber.IndexOf(".");
if (indx < 0 || indx + 1 == DisplayNumber.Length) return false; if (indx < 0 || indx + 1 == DisplayNumber.Length) return false;
// for it to be a 'TrueSectionNum', there can be no letters after the '.' // for it to be a 'TrueSectionNum', there can be no letters after the '.'
for (int lindx = indx; lindx < DisplayNumber.Length - 1; lindx++) if (DisplayNumber[lindx] < '0' || DisplayNumber[lindx] > '9') return false; for (int lindx = indx+1; lindx < DisplayNumber.Length - 1; lindx++) if (DisplayNumber[lindx] < '0' || DisplayNumber[lindx] > '9') return false;
return true; return true;
} }
// the following returns the 'index' into the format's CheckOffHeaderList. // the following returns the 'index' into the format's CheckOffHeaderList.