This commit is contained in:
parent
afc16fb9f9
commit
391cbaea39
@ -283,6 +283,16 @@ namespace VEPROMS.CSLA.Library
|
|||||||
#region ItemInfo
|
#region ItemInfo
|
||||||
public partial class ItemInfo:IVEDrillDownReadOnly
|
public partial class ItemInfo:IVEDrillDownReadOnly
|
||||||
{
|
{
|
||||||
|
public bool HasHeader
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (MyHeader==null)return false;
|
||||||
|
if (MyHeader.CleanText==null) return false;
|
||||||
|
if (MyHeader.CleanText=="") return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
protected void ExtensionRefreshFields(Item tmp)
|
protected void ExtensionRefreshFields(Item tmp)
|
||||||
{
|
{
|
||||||
_ActiveParent = null;
|
_ActiveParent = null;
|
||||||
@ -484,6 +494,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
#region IsType
|
||||||
public bool IsCautionStructure
|
public bool IsCautionStructure
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -516,6 +527,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
public bool IsType(string type)
|
public bool IsType(string type)
|
||||||
{
|
{
|
||||||
|
if ((int)MyContent.Type < 20000) return false;
|
||||||
int stepType = ((int)MyContent.Type) % 10000;
|
int stepType = ((int)MyContent.Type) % 10000;
|
||||||
StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList;
|
StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList;
|
||||||
if (stepType > sdlist.Count)
|
if (stepType > sdlist.Count)
|
||||||
@ -659,6 +671,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return parent.IsInRNO;
|
return parent.IsInRNO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
#region Level Columns Relationships
|
||||||
public int RNOLevel
|
public int RNOLevel
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -736,6 +750,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
if (myitems != null) return myitems[0];
|
if (myitems != null) return myitems[0];
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
#region More IsType
|
||||||
public bool IsSubStep
|
public bool IsSubStep
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -841,6 +857,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
#region Ordinal CslaType and Tostring
|
||||||
private int? _Ordinal;
|
private int? _Ordinal;
|
||||||
public int Ordinal
|
public int Ordinal
|
||||||
{
|
{
|
||||||
@ -876,6 +894,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
//{
|
//{
|
||||||
// return ToString();
|
// return ToString();
|
||||||
//}
|
//}
|
||||||
|
#endregion
|
||||||
|
#region Search
|
||||||
internal string _SearchDVPath;
|
internal string _SearchDVPath;
|
||||||
public string SearchDVPath
|
public string SearchDVPath
|
||||||
{
|
{
|
||||||
@ -905,6 +925,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
get { return _SearchAnnotationType; }
|
get { return _SearchAnnotationType; }
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
#region ProcedureConfig
|
||||||
private ProcedureConfig _ProcedureConfig = null;
|
private ProcedureConfig _ProcedureConfig = null;
|
||||||
public ProcedureConfig.PrintChangeBar PrintChangeBar
|
public ProcedureConfig.PrintChangeBar PrintChangeBar
|
||||||
{
|
{
|
||||||
@ -959,6 +981,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
if (pi == null) return;
|
if (pi == null) return;
|
||||||
_ProcedureConfig = pi.MyConfig as ProcedureConfig;
|
_ProcedureConfig = pi.MyConfig as ProcedureConfig;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
#region Formatting of Text
|
||||||
public string DisplayText
|
public string DisplayText
|
||||||
{
|
{
|
||||||
get { return ConvertToDisplayText(MyContent.Text); }
|
get { return ConvertToDisplayText(MyContent.Text); }
|
||||||
@ -1022,6 +1046,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
retval = Regex.Replace(retval, @"\\'[0-9A-Fa-f][0-9A-Fa-f]", new MatchEvaluator(ReplaceSpecialHexCharacter));
|
retval = Regex.Replace(retval, @"\\'[0-9A-Fa-f][0-9A-Fa-f]", new MatchEvaluator(ReplaceSpecialHexCharacter));
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
#region Path and Parent
|
||||||
public string Path
|
public string Path
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -1063,6 +1089,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return parentContent.ContentItems[0];
|
return parentContent.ContentItems[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
#region Lookups and More Related
|
||||||
private ItemInfoList Lookup(int fromType, ref ItemInfoList itemInfoList)
|
private ItemInfoList Lookup(int fromType, ref ItemInfoList itemInfoList)
|
||||||
{
|
{
|
||||||
if (itemInfoList == null)
|
if (itemInfoList == null)
|
||||||
@ -1169,6 +1197,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// AddList(nd, "Tables", Tables);
|
// AddList(nd, "Tables", Tables);
|
||||||
// return xn.OwnerDocument;
|
// return xn.OwnerDocument;
|
||||||
//}
|
//}
|
||||||
|
#endregion
|
||||||
|
#region UI Tab
|
||||||
public string TabToolTip
|
public string TabToolTip
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -1202,6 +1232,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return DisplayText.Replace("\u2011", "-").Split(" ,.;:-_".ToCharArray())[0]+ "...";
|
return DisplayText.Replace("\u2011", "-").Split(" ,.;:-_".ToCharArray())[0]+ "...";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
#region Change Bar
|
#region Change Bar
|
||||||
public bool HasChangeBar()
|
public bool HasChangeBar()
|
||||||
{
|
{
|
||||||
@ -1405,6 +1436,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
public Color BackColor
|
public Color BackColor
|
||||||
{ get { return (ItemAnnotationCount > 0 ? Color.Yellow : Color.White); } }
|
{ get { return (ItemAnnotationCount > 0 ? Color.Yellow : Color.White); } }
|
||||||
#endregion
|
#endregion
|
||||||
|
#region Constructor
|
||||||
internal ItemInfo(SafeDataReader dr, bool forIRichtem)
|
internal ItemInfo(SafeDataReader dr, bool forIRichtem)
|
||||||
{
|
{
|
||||||
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.Constructor", GetHashCode());
|
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.Constructor", GetHashCode());
|
||||||
@ -1423,8 +1455,93 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
_MyContent = new ContentInfo(dr, true);
|
_MyContent = new ContentInfo(dr, true);
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
#region MetaTags - Tabs, Headers, Footers
|
||||||
|
protected Tab _MyTab;
|
||||||
|
public Tab MyTab
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!_TagsSetup) SetupTags();
|
||||||
|
return _MyTab;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_MyTab = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
protected MetaTag _MyHeader;
|
||||||
|
public MetaTag MyHeader
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!_TagsSetup) SetupTags();
|
||||||
|
return _MyHeader;
|
||||||
|
}
|
||||||
|
set { _MyHeader = value; }
|
||||||
|
}
|
||||||
|
protected MetaTag _MyFooter;
|
||||||
|
public MetaTag MyFooter
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!_TagsSetup) SetupTags();
|
||||||
|
return _MyFooter;
|
||||||
|
}
|
||||||
|
set { _MyFooter = value; }
|
||||||
|
}
|
||||||
|
protected bool _TagsSetup = false;
|
||||||
|
public virtual void SetupTags()
|
||||||
|
{
|
||||||
|
_MyTab = new Tab(_ActiveFormat.PlantFormat.FormatData.Font);
|
||||||
|
_MyHeader = null;
|
||||||
|
_MyFooter = null;
|
||||||
|
_MyTab.CleanText = DisplayNumber;
|
||||||
|
_TagsSetup = true;
|
||||||
|
}
|
||||||
|
public static void ResetTabString(int itemID)
|
||||||
|
{
|
||||||
|
ConvertListToDictionary();
|
||||||
|
string key = itemID.ToString();
|
||||||
|
if (key != null && _CacheByPrimaryKey.ContainsKey(key))
|
||||||
|
{
|
||||||
|
ItemInfo[] items = _CacheByPrimaryKey[key].ToArray();
|
||||||
|
foreach (ItemInfo item in items)
|
||||||
|
{
|
||||||
|
item._TagsSetup = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
#endregion ItemInfo
|
#endregion ItemInfo
|
||||||
|
#region Tab
|
||||||
|
public class MetaTag
|
||||||
|
{
|
||||||
|
public VE_Font MyFont;
|
||||||
|
public ContentAlignment Justify = ContentAlignment.MiddleLeft;
|
||||||
|
public string Text; // may include tokens, such as macros for circles/diamonds, etc
|
||||||
|
public string CleanText; // all tokens removed
|
||||||
|
public MetaTag()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public MetaTag(VE_Font font)
|
||||||
|
{
|
||||||
|
MyFont = new VE_Font(font.XmlNode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class Tab : MetaTag
|
||||||
|
{
|
||||||
|
public Tab(VE_Font font)
|
||||||
|
{
|
||||||
|
MyFont = font;
|
||||||
|
}
|
||||||
|
public int Offset;
|
||||||
|
}
|
||||||
|
public class Header : MetaTag
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
#region ItemInfoList
|
#region ItemInfoList
|
||||||
public partial class ItemInfoList
|
public partial class ItemInfoList
|
||||||
{
|
{
|
||||||
@ -1871,6 +1988,10 @@ namespace VEPROMS.CSLA.Library
|
|||||||
[Serializable()]
|
[Serializable()]
|
||||||
public partial class ProcedureInfo : ItemInfo, IVEDrillDownReadOnly
|
public partial class ProcedureInfo : ItemInfo, IVEDrillDownReadOnly
|
||||||
{
|
{
|
||||||
|
public override void SetupTags()
|
||||||
|
{
|
||||||
|
base.SetupTags();
|
||||||
|
}
|
||||||
protected override void RefreshFields(Item tmp)
|
protected override void RefreshFields(Item tmp)
|
||||||
{
|
{
|
||||||
base.RefreshFields(tmp);
|
base.RefreshFields(tmp);
|
||||||
@ -1989,6 +2110,16 @@ namespace VEPROMS.CSLA.Library
|
|||||||
[Serializable()]
|
[Serializable()]
|
||||||
public partial class SectionInfo : ItemInfo, IVEDrillDownReadOnly
|
public partial class SectionInfo : ItemInfo, IVEDrillDownReadOnly
|
||||||
{
|
{
|
||||||
|
public override void SetupTags()
|
||||||
|
{
|
||||||
|
MyTab = new Tab(ActiveFormat.PlantFormat.FormatData.SectData.SectionNumber.Font);
|
||||||
|
_MyTab.Text = DisplayNumber;
|
||||||
|
_MyTab.CleanText = DisplayNumber.PadRight(20);
|
||||||
|
MyHeader = new MetaTag(ActiveFormat.PlantFormat.FormatData.SectData.SectionHeader.Font);
|
||||||
|
_MyHeader.Text = null; // this.DisplayText;
|
||||||
|
MyFooter = null;
|
||||||
|
_TagsSetup = true;
|
||||||
|
}
|
||||||
protected override void RefreshFields(Item tmp)
|
protected override void RefreshFields(Item tmp)
|
||||||
{
|
{
|
||||||
base.RefreshFields(tmp);
|
base.RefreshFields(tmp);
|
||||||
@ -2031,7 +2162,6 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
return (Section)(_Editable = Section.Get(ItemID));
|
return (Section)(_Editable = Section.Get(ItemID));
|
||||||
}
|
}
|
||||||
|
|
||||||
#region SectionConfig
|
#region SectionConfig
|
||||||
[NonSerialized]
|
[NonSerialized]
|
||||||
private SectionConfig _SectionConfig;
|
private SectionConfig _SectionConfig;
|
||||||
@ -2105,6 +2235,247 @@ namespace VEPROMS.CSLA.Library
|
|||||||
[Serializable()]
|
[Serializable()]
|
||||||
public partial class StepInfo : ItemInfo
|
public partial class StepInfo : ItemInfo
|
||||||
{
|
{
|
||||||
|
#region Tab
|
||||||
|
public override void SetupTags()
|
||||||
|
{
|
||||||
|
_TagsSetup = true;
|
||||||
|
MyTab = new Tab(FormatStepData.TabData.Font);
|
||||||
|
MyHeader = new MetaTag(FormatStepData.TabData.Font);
|
||||||
|
MyFooter = new MetaTag(FormatStepData.TabData.Font); ;
|
||||||
|
SetTabText();
|
||||||
|
}
|
||||||
|
private void SetTabText()
|
||||||
|
{
|
||||||
|
string cltext = null;
|
||||||
|
if (IsParagraph) // TODO: Do we need this?
|
||||||
|
{
|
||||||
|
_MyTab.Text = "";
|
||||||
|
_MyTab.CleanText = "";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int stepType = (int)(MyContent.Type % 10000);
|
||||||
|
string tbformat = IsInRNO ? FormatStepData.TabData.RNOIdentPrint : FormatStepData.TabData.IdentPrint;
|
||||||
|
// rno gets parent tab
|
||||||
|
if (IsRNO)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if ((((ItemInfo)ActiveParent).IsHigh && FormatStepData.NumberHighLevel) || ((!((ItemInfo)ActiveParent).IsHigh) && ((tbformat == null || tbformat == "") && (RNOLevel <= ColumnMode))))
|
||||||
|
{
|
||||||
|
_MyTab.CleanText = ((ItemInfo)ActiveParent).MyTab.CleanText;
|
||||||
|
_MyTab.Text = ((ItemInfo)ActiveParent).MyTab.Text;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("SetTabText IsRNO error {0}", ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tbformat == null)
|
||||||
|
{
|
||||||
|
_MyTab.Text = "";
|
||||||
|
_MyTab.CleanText = "";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Start with basic cases of alpha/numeric/seq:
|
||||||
|
if (tbformat.IndexOf("{seq}") > -1)
|
||||||
|
{
|
||||||
|
int level = 0;
|
||||||
|
ItemInfo par = this;
|
||||||
|
while (!par.IsHigh)
|
||||||
|
{
|
||||||
|
// 16bit TODO:
|
||||||
|
//if (par.IsRNO) // do I need to save 'lastrnoptr'
|
||||||
|
//if (!IsRNO(ptr) && (IsSequential(ptr) ||
|
||||||
|
// (!IsText(ptr) && CountAllSubLevels))) - Add this line of code for non-hlp
|
||||||
|
if (!par.IsRNO && par.IsSequential) level++;
|
||||||
|
par = par.MyParent;
|
||||||
|
}
|
||||||
|
SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList;
|
||||||
|
tbformat = seqtabs[level % seqtabs.Count].PrintTabFormat;
|
||||||
|
// 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))
|
||||||
|
{
|
||||||
|
string parentTab = ((ItemInfo)(ActiveParent)).MyTab.CleanText.Trim();
|
||||||
|
tbformat = parentTab + (parentTab.EndsWith(".")?"":".") + tbformat.TrimStart();
|
||||||
|
}
|
||||||
|
if (tbformat.IndexOf("#2#") > -1 || tbformat.IndexOf("#1#") > -1)
|
||||||
|
{
|
||||||
|
string ofst = tbformat.Substring(0, 3);
|
||||||
|
_MyTab.Offset = Convert.ToInt32(ofst.Substring(1, 1));
|
||||||
|
cltext = tbformat.Replace("#2#", "");
|
||||||
|
cltext = cltext.Replace("#1#", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if this is a caution/note type determine where 'NOTE/CAUTION' tab goes, as tab or as 'header'
|
||||||
|
// and also determine whether the tab itself gets converted to a bullet.
|
||||||
|
if (IsCaution || IsNote) tbformat = CheckNoteCautionTab(tbformat);
|
||||||
|
|
||||||
|
int ordinal = Ordinal;
|
||||||
|
string alpha = AlphabeticalNumbering(ordinal);
|
||||||
|
tbformat = tbformat.Replace("{alpha}", alpha.ToLower());
|
||||||
|
tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower());
|
||||||
|
tbformat = tbformat.Replace("{ALPHA}", alpha);
|
||||||
|
tbformat = tbformat.Replace("{ALPHAWpar}", alpha);
|
||||||
|
string roman = RomanNumbering(ordinal);
|
||||||
|
tbformat = tbformat.Replace("{roman}", roman.ToLower());
|
||||||
|
tbformat = tbformat.Replace("{ROMAN}", roman);
|
||||||
|
tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2));
|
||||||
|
tbformat = tbformat.Replace("{numericWpar}", ordinal.ToString());
|
||||||
|
|
||||||
|
if (tbformat.IndexOf("{!C0}") > -1)
|
||||||
|
{
|
||||||
|
cltext = cltext==null?tbformat.Replace("{!C0}", ""):cltext.Replace("{!C0}","");
|
||||||
|
}
|
||||||
|
if (FormatStepData.Sep != null && MyPrevious != null)
|
||||||
|
{
|
||||||
|
if (_MyHeader == null) _MyHeader = new MetaTag(FormatStepData.TabData.Font);
|
||||||
|
_MyHeader.Text = _MyHeader.CleanText = FormatStepData.Sep;
|
||||||
|
MyHeader.Justify = ContentAlignment.MiddleCenter;
|
||||||
|
}
|
||||||
|
#region Non HLP 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)
|
||||||
|
// "{Pos-3}"
|
||||||
|
|
||||||
|
// Background/Deviation Documents - check for E_PurchaseOptions.(ENHANCEDBACKGROUNDS or ENHANCEDDEVIATIONS)
|
||||||
|
// # - Related Caution or Note number
|
||||||
|
// ~ - Linked Step Number
|
||||||
|
//"{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)
|
||||||
|
//"{indent}");
|
||||||
|
//"{par}");
|
||||||
|
|
||||||
|
//Macros
|
||||||
|
// <!diamond> - draws a diamond around the stepnumber
|
||||||
|
// <!diamond1> - A macro
|
||||||
|
// <!asterisk>
|
||||||
|
// <> - ignored
|
||||||
|
// \241 - circle macro around step, same as <!circle>
|
||||||
|
// Also note, the format files had "<>", these get converted during input in this
|
||||||
|
// format converter code.
|
||||||
|
//wkstr = wkstr.Replace("{!asterisk}", "\\fs10 \\b*\\b0"); // was font size 20 in 16-bit
|
||||||
|
//wkstr = Regex.Replace(wkstr, @"{![.*?]}", @"{!$1}");
|
||||||
|
//wkstr = wkstr.Replace("{}", "");
|
||||||
|
//wkstr = wkstr.Replace("ñ", "{!C0}");
|
||||||
|
//if (vefont != null && vefont.HasCircleString2()) wkstr.Insert(0,"{!C0}");
|
||||||
|
|
||||||
|
//wkstr = wkstr.Replace("ê", @"{Box Step}");
|
||||||
|
#endregion
|
||||||
|
_MyTab.Text = tbformat;
|
||||||
|
_MyTab.CleanText = cltext!=null?cltext:tbformat;
|
||||||
|
}
|
||||||
|
private string CheckNoteCautionTab(string tbformat)
|
||||||
|
{
|
||||||
|
string prevTbFormat = null;
|
||||||
|
string nextTbFormat = null;
|
||||||
|
StepData nextStepData = null;
|
||||||
|
if (MyPrevious != null)
|
||||||
|
{
|
||||||
|
int prevStepType = ((int)MyPrevious.MyContent.Type) % 10000;
|
||||||
|
StepData prevStepData = ActiveFormat.PlantFormat.FormatData.StepDataList[prevStepType];
|
||||||
|
prevTbFormat = MyPrevious.IsInRNO ? prevStepData.TabData.RNOIdentPrint : prevStepData.TabData.IdentPrint;
|
||||||
|
}
|
||||||
|
if (NextItem != null)
|
||||||
|
{
|
||||||
|
int nextStepType = ((int)NextItem.MyContent.Type) % 10000;
|
||||||
|
nextStepData = ActiveFormat.PlantFormat.FormatData.StepDataList[nextStepType];
|
||||||
|
// tried to duplicate functionality from 16-bit code.
|
||||||
|
nextTbFormat = NextItem.IsInRNO ? nextStepData.TabData.RNOIdentPrint : nextStepData.TabData.IdentPrint;
|
||||||
|
}
|
||||||
|
// Handle the centered tab - if this tab is centered make it a header.
|
||||||
|
if (FormatStepData.TabData.Justify == "Center")
|
||||||
|
{
|
||||||
|
if (_MyHeader == null) _MyHeader = new MetaTag(FormatStepData.TabData.Font);
|
||||||
|
MyHeader.Justify = ContentAlignment.MiddleCenter;
|
||||||
|
MyHeader.Text = MyHeader.CleanText = tbformat.Trim(); ;
|
||||||
|
|
||||||
|
// if there is only step in the group - no bullet is used, if more that one replace the tab
|
||||||
|
// with a bullet
|
||||||
|
if (MyPrevious == null && NextItem == null)
|
||||||
|
tbformat = "";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (MyPrevious != null) MyHeader = null;
|
||||||
|
tbformat = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB;
|
||||||
|
if ((FormatStepData.TabData.Font.Style & E_Style.Underline) > 0)
|
||||||
|
{
|
||||||
|
FontStyle style = FontStyle.Regular;
|
||||||
|
if ((FormatStepData.TabData.Font.Style & E_Style.Bold) > 0) style |= FontStyle.Bold;
|
||||||
|
if ((FormatStepData.TabData.Font.Style & E_Style.Italics) > 0) style |= FontStyle.Italic;
|
||||||
|
_MyTab.MyFont.WindowsFont = new Font(FormatStepData.TabData.Font.WindowsFont.FontFamily, FormatStepData.TabData.Font.WindowsFont.Size, style);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return tbformat;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If this has a previous, and the tabs of this & previous match
|
||||||
|
if (tbformat != null && MyPrevious != null && !FormatStepData.AlwaysTab && (!FormatStepData.MixCautionsAndNotes || (tbformat == prevTbFormat)))
|
||||||
|
{
|
||||||
|
tbformat = tbformat + ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB;
|
||||||
|
}
|
||||||
|
// else if this has a next
|
||||||
|
else if (tbformat != null && NextItem != null && !FormatStepData.AlwaysTab &&
|
||||||
|
(!FormatStepData.MixCautionsAndNotes ||
|
||||||
|
(FormatStepData.TabData.UsePreviousStyle && !nextStepData.TabData.UsePreviousStyle && tbformat == nextTbFormat) ||
|
||||||
|
((prevTbFormat != tbformat && (NextItem.MyContent.Type == (int)(MyContent.Type % 10000))))))
|
||||||
|
{
|
||||||
|
tbformat = tbformat + ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB;
|
||||||
|
}
|
||||||
|
return tbformat;
|
||||||
|
}
|
||||||
|
private string AlphabeticalNumbering(int number)
|
||||||
|
{
|
||||||
|
string retval = string.Empty;
|
||||||
|
if (number > 26) retval += Letter((number - 1) / 26);
|
||||||
|
retval += Letter(1 + ((number - 1) % 26));
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
private string Letter(int number)
|
||||||
|
{
|
||||||
|
char c = (char)(number + 64);
|
||||||
|
return c.ToString();
|
||||||
|
}
|
||||||
|
private enum RomanOffset : int
|
||||||
|
{
|
||||||
|
Hundreds = 2,
|
||||||
|
Tens = 4,
|
||||||
|
Units = 6
|
||||||
|
}
|
||||||
|
private string _Romans = "MDCLXVI";
|
||||||
|
private string RomanPart(RomanOffset offset, int value)
|
||||||
|
{
|
||||||
|
int iFive = value / 5;
|
||||||
|
int iUnits = value % 5;
|
||||||
|
int iFour = iUnits / 4;
|
||||||
|
return _Romans.Substring(((int)offset), iFour) +
|
||||||
|
_Romans.Substring(((int)offset) - iFive - iFour, iFive | iFour) +
|
||||||
|
"".PadRight(iUnits % 4, _Romans[((int)offset)]);
|
||||||
|
}
|
||||||
|
private string RomanNumbering(int number)
|
||||||
|
{
|
||||||
|
int thousands = number / 1000;
|
||||||
|
int hundreds = (number % 1000) / 100;
|
||||||
|
int tens = (number % 100) / 10;
|
||||||
|
int units = number % 10;
|
||||||
|
return "".PadRight(thousands, _Romans[0]) +
|
||||||
|
RomanPart(RomanOffset.Hundreds, hundreds) +
|
||||||
|
RomanPart(RomanOffset.Tens, tens) +
|
||||||
|
RomanPart(RomanOffset.Units, units);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
protected override void RefreshFields(Item tmp)
|
protected override void RefreshFields(Item tmp)
|
||||||
{
|
{
|
||||||
base.RefreshFields(tmp);
|
base.RefreshFields(tmp);
|
||||||
|
@ -125,7 +125,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
public ItemInfo InsertSiblingBefore(string text, string number)
|
public ItemInfo InsertSiblingBefore(string text, string number)
|
||||||
{
|
{
|
||||||
ItemInfo tmp = DataPortal.Fetch<ItemInfo>(new AddingPartCriteria(ItemID, EAddpingPart.Before, number, text, null, null, null, null, DateTime.Now, Environment.UserName));
|
ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.Before, number, text, null, null, null, null, DateTime.Now, Environment.UserName);
|
||||||
// this item is updated in SQL so we have to manually force the iteminfo updates
|
// this item is updated in SQL so we have to manually force the iteminfo updates
|
||||||
// Refresh ItemInfo to update Previous
|
// Refresh ItemInfo to update Previous
|
||||||
using (Item item = Get()) ItemInfo.Refresh(item);
|
using (Item item = Get()) ItemInfo.Refresh(item);
|
||||||
@ -145,14 +145,46 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
public ItemInfo InsertSiblingAfter(string text, string number, int? type)
|
public ItemInfo InsertSiblingAfter(string text, string number, int? type)
|
||||||
{
|
{
|
||||||
ItemInfo tmp = DataPortal.Fetch<ItemInfo>(new AddingPartCriteria(ItemID, EAddpingPart.After, number, text, type, null, null, null, DateTime.Now, Environment.UserName));
|
ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.After, number, text, type, null, null, null, DateTime.Now, Environment.UserName);
|
||||||
|
//tmp = DataPortal.Fetch<StepInfo>(new AddingPartCriteria(ItemID, EAddpingPart.After, number, text, type, null, null, null, DateTime.Now, Environment.UserName));
|
||||||
// if next exists, it is updated in SQL so we have to manually force the iteminfo updates
|
// if next exists, it is updated in SQL so we have to manually force the iteminfo updates
|
||||||
// Refresh ItemInfo to update PreviousID field
|
// Refresh ItemInfo to update PreviousID field
|
||||||
if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item);
|
if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item);
|
||||||
|
RefreshNextItems();
|
||||||
// Update all of the content records that have transitions that point to the Siblings or Sibling Children of the new item
|
// Update all of the content records that have transitions that point to the Siblings or Sibling Children of the new item
|
||||||
tmp.UpdateTransitionText();
|
tmp.UpdateTransitionText();
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
private ItemInfo NewItemInfoFetch(int itemID, EAddpingPart addType, string number, string text, int? type, int? fromType, int? formatID, string config, DateTime dts, string userID)
|
||||||
|
{
|
||||||
|
ItemInfo tmp;
|
||||||
|
if (addType == EAddpingPart.Child)
|
||||||
|
{
|
||||||
|
// adding children. Type is based on 'fromType'
|
||||||
|
switch ((E_FromType)fromType)
|
||||||
|
{
|
||||||
|
case E_FromType.Procedure:
|
||||||
|
tmp = DataPortal.Fetch<ProcedureInfo>(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID));
|
||||||
|
break;
|
||||||
|
case E_FromType.Section:
|
||||||
|
tmp = DataPortal.Fetch<SectionInfo>(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
tmp = DataPortal.Fetch<StepInfo>(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (GetType() == typeof(ProcedureInfo))
|
||||||
|
tmp = DataPortal.Fetch<ProcedureInfo>(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID));
|
||||||
|
else if (GetType() == typeof(SectionInfo))
|
||||||
|
tmp = DataPortal.Fetch<SectionInfo>(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID));
|
||||||
|
else
|
||||||
|
tmp = DataPortal.Fetch<StepInfo>(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID));
|
||||||
|
}
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
public void UpdateTransitionText()
|
public void UpdateTransitionText()
|
||||||
{
|
{
|
||||||
// Update Ordinals from here down
|
// Update Ordinals from here down
|
||||||
@ -179,7 +211,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
public ItemInfo InsertChild(E_FromType fromType, int type, string text, string number)
|
public ItemInfo InsertChild(E_FromType fromType, int type, string text, string number)
|
||||||
{
|
{
|
||||||
ItemInfo tmp = DataPortal.Fetch<ItemInfo>(new AddingPartCriteria(ItemID, EAddpingPart.Child, number, text, type, (int?) fromType, null, null, DateTime.Now, Environment.UserName));
|
ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.Child, number, text, type, (int?) fromType, null, null, DateTime.Now, Environment.UserName);
|
||||||
// if next exists, it is updated in SQL so we have to manually force the iteminfo updates
|
// if next exists, it is updated in SQL so we have to manually force the iteminfo updates
|
||||||
// Refresh ItemInfo to update PreviousID field
|
// Refresh ItemInfo to update PreviousID field
|
||||||
if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item);
|
if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item);
|
||||||
@ -356,6 +388,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
//Console.WriteLine("item = {0}, ordinal = {1}",item,item.Ordinal);
|
//Console.WriteLine("item = {0}, ordinal = {1}",item,item.Ordinal);
|
||||||
item._Ordinal = null;
|
item._Ordinal = null;
|
||||||
|
item._TagsSetup = false;
|
||||||
if (key == null && item.NextItem != null)
|
if (key == null && item.NextItem != null)
|
||||||
key = item.NextItem.ItemID.ToString();
|
key = item.NextItem.ItemID.ToString();
|
||||||
}
|
}
|
||||||
@ -428,6 +461,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
ItemInfo nextItem = item.NextItem;
|
ItemInfo nextItem = item.NextItem;
|
||||||
|
ItemInfo prevItem = item.MyPrevious;
|
||||||
DataPortal.Delete(new DeleteCriteria(item.ItemID,Environment.UserName));
|
DataPortal.Delete(new DeleteCriteria(item.ItemID,Environment.UserName));
|
||||||
if (nextItem != null) // Adjust PreviousID for NextItem
|
if (nextItem != null) // Adjust PreviousID for NextItem
|
||||||
{
|
{
|
||||||
@ -436,6 +470,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
nextItem.RefreshItemParts();
|
nextItem.RefreshItemParts();
|
||||||
nextItem.UpdateTransitionText();
|
nextItem.UpdateTransitionText();
|
||||||
}
|
}
|
||||||
|
else if (prevItem != null)
|
||||||
|
prevItem.RefreshNextItems();
|
||||||
ItemInfo.DeleteItemInfoAndChildren(item.ItemID); // Dispose ItemInfo and Children
|
ItemInfo.DeleteItemInfoAndChildren(item.ItemID); // Dispose ItemInfo and Children
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -87,6 +87,10 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
return _WindowsFont;
|
return _WindowsFont;
|
||||||
}
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_WindowsFont = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
[Description("Font Family")]
|
[Description("Font Family")]
|
||||||
public string Family
|
public string Family
|
||||||
@ -3990,6 +3994,14 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return LazyLoad(ref _CheckOff, "TabData/@CheckOff");
|
return LazyLoad(ref _CheckOff, "TabData/@CheckOff");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private LazyLoad<bool> _UsePreviousStyle;
|
||||||
|
public bool UsePreviousStyle
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return LazyLoad(ref _UsePreviousStyle, "TabData/@UsePreviousStyle");
|
||||||
|
}
|
||||||
|
}
|
||||||
private VE_Font _Font;
|
private VE_Font _Font;
|
||||||
public VE_Font Font
|
public VE_Font Font
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user