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);
}
}
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
private int _StepLevel = -2;// Not yet calculated
public int StepLevel
@ -1679,7 +1688,7 @@ namespace VEPROMS.CSLA.Library
public System.Collections.IList GetChildren()
{
_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;
}
@ -1688,7 +1697,8 @@ namespace VEPROMS.CSLA.Library
_PartInfoList = this.MyContent.ContentParts;
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;
}
@ -2148,7 +2158,7 @@ namespace VEPROMS.CSLA.Library
_MyHeader.CleanText = StripRtfFormatting(_MyHeader.Text);
_MyHeader.Justify = ContentAlignment.MiddleCenter;
}
#region Non HLP tab TODO
#region Non Converted Plants tab TODO
// other possible 'tokens'
// Position offset - do this one here, so don't get background substitution below..
// ##-3# - Offset of -3 from Parent (FNP)
@ -2160,11 +2170,6 @@ namespace VEPROMS.CSLA.Library
//"{LNK C/N 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
// \257 - Indent (CALLOWAY BACKGROUNDS)
// Newline within a tab (calbck)
@ -2254,8 +2259,12 @@ namespace VEPROMS.CSLA.Library
ItemInfo ii = ActiveSection.MyParent;
while (!ii.IsProcedure)
{
// the following line must also include a check for the section config autoindent flag
if (ii.DisplayNumber != null && ii.DisplayNumber != "") countlev++;
if (ii.DisplayNumber != null && ii.DisplayNumber != "")
{
SectionConfig sc = MyActiveSection.MyConfig as SectionConfig;
if (sc != null && sc.SubSection_AutoIndent == "Y")
countlev++;
}
ii = ii.MyParent;
}
}
@ -2263,34 +2272,48 @@ namespace VEPROMS.CSLA.Library
}
private string SectionPrefix(string tbformat)
{
// If the Section's 'tab' is a character or has a character preceding the '.' is an alpha character,
// just return the alpha (no '.')
// 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)
// if not metasection/tietabtolevel, return the 'section number'. (where the '.' may or may not exist)
if (!ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel)
{
indx = attNum.IndexOf(".");
if (indx < 0) return attNum;
return attNum.Substring(0, indx);
int indx = ActiveSection.MyTab.CleanText.IndexOf(".");
if (indx > 0) return ActiveSection.MyTab.CleanText.Substring(0, indx + 1); // include the '.'
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())
{
int subsection = CurrentSectionLevel();
if (subsection >= 1)
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)
{
string tmptab = ActiveSection.MyTab.CleanText.TrimEnd();
if (tmptab.LastIndexOf(".") != tmptab.Length - 1) tmptab = tmptab + ".";
return tmptab;
return ActiveSection.DisplayNumber.Substring(lindx + 1) + ".";
}
}
indx = ActiveSection.MyTab.CleanText.IndexOf(".");
if (indx > 0) return ActiveSection.MyTab.CleanText.Substring(0,indx+1); // include the '.'
// If we're in a subsection, be sure there is a '.' at the end.
int subsection = CurrentSectionLevel();
if (subsection >= 1)
{
string tmptab = ActiveSection.MyTab.CleanText.TrimEnd();
if (tmptab.LastIndexOf(".") != tmptab.Length - 1) tmptab = tmptab + ".";
return tmptab;
}
return ActiveSection.MyTab.CleanText.TrimEnd();
}
@ -3369,7 +3392,7 @@ namespace VEPROMS.CSLA.Library
int indx = DisplayNumber.IndexOf(".");
if (indx < 0 || indx + 1 == DisplayNumber.Length) return false;
// 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;
}
// the following returns the 'index' into the format's CheckOffHeaderList.