This commit is contained in:
parent
03a1d870b1
commit
9456cc7214
@ -2024,49 +2024,15 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// Start with basic cases of alpha/numeric/seq:
|
// Start with basic cases of alpha/numeric/seq:
|
||||||
if (tbformat.IndexOf("{seq}") > -1)
|
if (tbformat.IndexOf("{seq}") > -1)
|
||||||
{
|
{
|
||||||
int level = 0;
|
int bias = 0;
|
||||||
ItemInfo par = this;
|
int level = GetStepLevel(ref bias);
|
||||||
ItemInfo LastRNO = null;
|
|
||||||
while (!par.IsHigh)
|
|
||||||
{
|
|
||||||
if (par.IsRNOPart) LastRNO = par.MyParent;
|
|
||||||
if (!par.IsRNOPart && (par.IsSequential || (!(par.IsCaution || par.IsNote)
|
|
||||||
&& ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.CountAllSubLevels)))
|
|
||||||
level++;
|
|
||||||
par = par.MyParent;
|
|
||||||
}
|
|
||||||
// ImperfectStructure is used so that the sequential numbering for substeps under an RNO is not same
|
|
||||||
// numbering (alpha vs numeric), if the HLS has substeps - WCNS uses this, as well as other plants.
|
|
||||||
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructure && IsSequential
|
|
||||||
&& (LastRNO !=null) && LastRNO.IsHigh && LastRNO.HasChildren
|
|
||||||
&& LastRNO.FirstChild(E_FromType.Step) != null && LastRNO.FirstChild(E_FromType.Step).IsSequential)
|
|
||||||
{
|
|
||||||
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) level += 2;
|
|
||||||
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectSubstep && !ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4)
|
|
||||||
level--;
|
|
||||||
}
|
|
||||||
// ImperfectStructure for substeps - only good for level 1 RNOs
|
|
||||||
else if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectSubstep && RNOLevel == 1)
|
|
||||||
{
|
|
||||||
par = this;
|
|
||||||
while (!par.IsRNOPart) par = par.MyParent; // get to the rno.
|
|
||||||
if (par.MyParent.HasChildren) // if hls has children?
|
|
||||||
{
|
|
||||||
ItemInfo tchild = par.FirstChild(E_FromType.Step);
|
|
||||||
if (tchild != null)
|
|
||||||
{
|
|
||||||
int typ = (int)tchild.MyContent.Type - 20000;
|
|
||||||
if (ActiveFormat.PlantFormat.FormatData.StepDataList[typ].TabData.IdentPrint.Contains("{seq}"))
|
|
||||||
{
|
|
||||||
level++;
|
|
||||||
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) level += 1;
|
|
||||||
if (!ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) level -= 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList;
|
SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList;
|
||||||
tbformat = seqtabs[level % seqtabs.Count].PrintTabFormat;
|
int itmp = (level + bias) % seqtabs.Count;
|
||||||
|
tbformat = seqtabs[itmp].PrintTabFormat; // seqtab in 16bit, i.e. '. or )' etc.
|
||||||
|
string tbtoken = seqtabs[level % seqtabs.Count].TabToken; // seqstart in 16bit, number/letter
|
||||||
|
|
||||||
|
tbformat = tbformat.Replace("{seq}", tbtoken);
|
||||||
|
|
||||||
// If token includes 'Wpar', the parent tab prefix's the tab.
|
// If token includes 'Wpar', the parent tab prefix's the tab.
|
||||||
if (level > 0 && (tbformat.IndexOf("{numericWpar}") > -1 || tbformat.IndexOf("{alphaWpar}") > -1 || tbformat.IndexOf("{ALPHAWpar}") > -1))
|
if (level > 0 && (tbformat.IndexOf("{numericWpar}") > -1 || tbformat.IndexOf("{alphaWpar}") > -1 || tbformat.IndexOf("{ALPHAWpar}") > -1))
|
||||||
{
|
{
|
||||||
@ -2114,7 +2080,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// "{Null}" was introduced so that inheritance in format files could differentiate between an
|
// "{Null}" was introduced so that inheritance in format files could differentiate between an
|
||||||
// empty string, and null. And also, so that if a tab was null but it's parent had text in the
|
// empty string, and null. And also, so that if a tab was null but it's parent had text in the
|
||||||
// tab, don't inherit the parent's tab, use a null.
|
// tab, don't inherit the parent's tab, use a null.
|
||||||
if ((FormatStepData.Sep != null && FormatStepData.Sep !="{Null}")&& MyPrevious != null && FormatStepData.StepLayoutData.EveryNLines != 99)
|
if (MyPrevious != null && FormatStepData.Sep != null && FormatStepData.Sep != "{Null}")
|
||||||
{
|
{
|
||||||
if (_MyHeader == null) _MyHeader = new MetaTag(FormatStepData.TabData.Font);
|
if (_MyHeader == null) _MyHeader = new MetaTag(FormatStepData.TabData.Font);
|
||||||
|
|
||||||
@ -2164,6 +2130,61 @@ namespace VEPROMS.CSLA.Library
|
|||||||
_MyTab.CleanText = cltext != null ? cltext : tbformat;
|
_MyTab.CleanText = cltext != null ? cltext : tbformat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetToken(string tbformat)
|
||||||
|
{
|
||||||
|
int stindx = tbformat.IndexOf("{");
|
||||||
|
return (tbformat.Substring(stindx, tbformat.IndexOf("}")-stindx+1));
|
||||||
|
}
|
||||||
|
|
||||||
|
private int GetStepLevel(ref int bias)
|
||||||
|
{
|
||||||
|
int level = 0;
|
||||||
|
ItemInfo par = this;
|
||||||
|
ItemInfo LastRNO = null;
|
||||||
|
while (!par.IsHigh)
|
||||||
|
{
|
||||||
|
if (par.IsRNOPart) LastRNO = par.MyParent;
|
||||||
|
if (!par.IsRNOPart && (par.IsSequential || (!(par.IsCaution || par.IsNote)
|
||||||
|
&& ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.CountAllSubLevels)))
|
||||||
|
level++;
|
||||||
|
par = par.MyParent;
|
||||||
|
}
|
||||||
|
bias = 0;
|
||||||
|
|
||||||
|
// ImperfectStructure is used so that the sequential numbering for substeps under an RNO is not same
|
||||||
|
// numbering (alpha vs numeric), if the HLS has substeps - WCN uses this, as well as other plants.
|
||||||
|
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructure && IsSequential
|
||||||
|
&& (LastRNO != null) && LastRNO.IsHigh && LastRNO.HasChildren
|
||||||
|
&& LastRNO.FirstChild(E_FromType.Step) != null && LastRNO.FirstChild(E_FromType.Step).IsSequential)
|
||||||
|
{
|
||||||
|
level++; // 16bit has this: I didn't and mine worked most of time.
|
||||||
|
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) level += 2;
|
||||||
|
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectSubstep && !ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4)
|
||||||
|
bias = -1;
|
||||||
|
}
|
||||||
|
// ImperfectStructure for substeps - only good for level 1 RNOs
|
||||||
|
else if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectSubstep && RNOLevel == 1)
|
||||||
|
{
|
||||||
|
par = this;
|
||||||
|
while (!par.IsRNOPart) par = par.MyParent; // get to the rno.
|
||||||
|
if (par.MyParent.HasChildren) // if parent has children?
|
||||||
|
{
|
||||||
|
ItemInfo tchild = par.MyParent.FirstChild(E_FromType.Step);
|
||||||
|
if (tchild != null)
|
||||||
|
{
|
||||||
|
int typ = (int)tchild.MyContent.Type - 20000;
|
||||||
|
if (ActiveFormat.PlantFormat.FormatData.StepDataList[typ].TabData.IdentPrint.Contains("{seq}"))
|
||||||
|
{
|
||||||
|
level++;
|
||||||
|
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) level += 1;
|
||||||
|
if (!ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) bias = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
private string SectionPrefix(string tbformat)
|
private string SectionPrefix(string tbformat)
|
||||||
{
|
{
|
||||||
// 16 bit has code that handles various levels of sections with a flag called TieTabToLevel. This
|
// 16 bit has code that handles various levels of sections with a flag called TieTabToLevel. This
|
||||||
|
Loading…
x
Reference in New Issue
Block a user