FNP: Fix alignment difference for Roman numeral type numbering, improve xoffset (still needs work) and wrote method ‘IsSeparatePagination’

This commit is contained in:
Kathy Ruffing 2013-11-20 13:23:43 +00:00
parent 8c0540ead9
commit da8999727c

View File

@ -2559,6 +2559,21 @@ namespace VEPROMS.CSLA.Library
if (useSubStepTabs || tbformat.IndexOf("{seq}") > -1) if (useSubStepTabs || tbformat.IndexOf("{seq}") > -1)
{ {
// If the document style has the flag DSS_UnNumLikeRoman, don't do the normal tab, change to alpha
// and adjust level in certain conditions as shown below:
if (!IsHigh && (MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_UnNumLikeRoman) == E_DocStructStyle.DSS_UnNumLikeRoman)
{
string myParentIdent = MyParent.FormatStepData.TabData.IdentPrint;
// If there is a tab string for this step and it includes the HLS/parent tab. The HLS is numbered
// with roman numerals, so don't want to continue using the roman numeral concatenated with substep tabs.
// the parent has to have a roman numeral as its tab.
if (myParentIdent.ToUpper().Contains("ROMAN") &&
tbformat != null && tbformat != "" && tbformat.ToUpper().Contains("SEQ"))
localPrintLevel += 5; // tbformat = "{alpha}. ";
// If the parent has no tab, adjust the level by 5 (this is taken directly from 16bit logic & is needed by FNP AOPs, U1 AOP14.0 for example)
else if (tbformat != null && tbformat != "" && myParentIdent == "")
localPrintLevel += 5;
}
int itmp = (localPrintLevel + PrintBias + OffsetTab) % seqtabs.Count; int itmp = (localPrintLevel + PrintBias + OffsetTab) % seqtabs.Count;
if (!tbformat.Contains(@"{!C")) if (!tbformat.Contains(@"{!C"))
tbformat = seqtabs[itmp].PrintTabFormat; // seqtab in 16bit, i.e. '. or )' etc. tbformat = seqtabs[itmp].PrintTabFormat; // seqtab in 16bit, i.e. '. or )' etc.
@ -2607,16 +2622,7 @@ namespace VEPROMS.CSLA.Library
if (tbformat.EndsWith(" ")) tbformat = tbformat.Substring(0, tbformat.Length - 1); if (tbformat.EndsWith(" ")) tbformat = tbformat.Substring(0, tbformat.Length - 1);
} }
} }
// If the document style has the flag DSS_UnNumLikeRoman, don't do the normal tab, change to alpha,
// but only if there is a tab string for this step and it includes the HLS/parent tab. The HLS is numbered
// with roman numerals, so don't want to continue using the roman numeral concatenated with substep tabs.
if (!IsHigh && (MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_UnNumLikeRoman) == E_DocStructStyle.DSS_UnNumLikeRoman)
{
// the parent has to have a roman numeral as its tab.
if (MyParent.FormatStepData.TabData.IdentPrint.ToUpper().Contains("ROMAN") &&
tbformat != null && tbformat != "" && tbformat.ToUpper().Contains("WPAR"))
tbformat = "{alpha}. ";
}
if (tbformat.IndexOf("#2#") > -1 || tbformat.IndexOf("#1#") > -1) if (tbformat.IndexOf("#2#") > -1 || tbformat.IndexOf("#1#") > -1)
{ {
@ -2626,7 +2632,7 @@ namespace VEPROMS.CSLA.Library
{ {
int indxlb = tbformat.IndexOf("#"); int indxlb = tbformat.IndexOf("#");
string ofst = tbformat.Substring(indxlb + 1, 3); string ofst = tbformat.Substring(indxlb + 1, 3);
_MyTab.Offset = Convert.ToInt32(ofst.Substring(0, 1)) * (int)FormatStepData.TabData.Font.CPI; _MyTab.Offset = Convert.ToInt32(ofst.Substring(0, 1)) * (int)FormatStepData.TabData.Font.CharsToTwips;
} }
tbformat = tbformat.Replace("#2#", "").Replace("#1#", ""); tbformat = tbformat.Replace("#2#", "").Replace("#1#", "");
} }
@ -2665,7 +2671,7 @@ namespace VEPROMS.CSLA.Library
tbformat = tbformat.Replace("{ROMAN}", roman); tbformat = tbformat.Replace("{ROMAN}", roman);
tbformat = tbformat.Substring(0, tbformat.Length - ((roman.Length - 1)>0?(roman.Length - 1):0)); tbformat = tbformat.Substring(0, tbformat.Length - ((roman.Length - 1)>0?(roman.Length - 1):0));
} }
if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.VirtualDotInHLSTab && tbformat.Contains("numeric") & ordinal > 9) MyTab.AdjustTabSpace = true; if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.VirtualDotInHLSTab && tbformat.Contains("numeric") & ordinal > 9) _MyTab.AdjustTabSpace = true;
if (tbformat.Contains("{numeric}") && ((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002) if (tbformat.Contains("{numeric}") && ((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002)
{ {
tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0"); tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0");
@ -2796,7 +2802,7 @@ namespace VEPROMS.CSLA.Library
OffsetTab = TopRNO.FormatStepData.NumberHighLevel?1:0; OffsetTab = TopRNO.FormatStepData.NumberHighLevel?1:0;
_PrintBias = 0; _PrintBias = 0;
if (par.FormatStepData != null && par.FormatStepData.TabData.IdentPrint.Contains("{ALPHA}")) if (par.FormatStepData != null && par.FormatStepData.TabData.IdentPrint.Contains("{ALPHA}"))
level--; level--;
// ImperfectStructure is used so that the sequential numbering for substeps under an RNO is not same // 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. // numbering (alpha vs numeric), if the HLS has substeps - WCN uses this, as well as other plants.
@ -3276,7 +3282,7 @@ namespace VEPROMS.CSLA.Library
if (sc.Section_CheckoffHeaderSelection < 0) return false; if (sc.Section_CheckoffHeaderSelection < 0) return false;
return true; return true;
} }
private int CheckOffIndex() public int CheckOffIndex()
{ {
StepConfig stc = MyConfig as StepConfig; StepConfig stc = MyConfig as StepConfig;
if (stc == null) return 0; //section default. if (stc == null) return 0; //section default.
@ -4907,6 +4913,20 @@ namespace VEPROMS.CSLA.Library
if (sc == null) return -1; if (sc == null) return -1;
return sc.Section_CheckoffHeaderSelection; return sc.Section_CheckoffHeaderSelection;
} }
public bool IsSeparatePagination()
{
VEPROMS.CSLA.Library.SectionConfig.SectionPagination sp = VEPROMS.CSLA.Library.SectionConfig.SectionPagination.Separate;
try
{
if (SectionConfig != null) sp = SectionConfig.Section_Pagination;
}
catch (Exception ex)
{
sp = VEPROMS.CSLA.Library.SectionConfig.SectionPagination.Separate;
}
if (sp == VEPROMS.CSLA.Library.SectionConfig.SectionPagination.Separate) return true;
return false;
}
protected override void RefreshFields(Item tmp) protected override void RefreshFields(Item tmp)
{ {
base.RefreshFields(tmp); base.RefreshFields(tmp);