diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index 10d3b209..5786255a 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -871,13 +871,13 @@ namespace VEPROMS StepTabRibbon.PasteNoReturnsSetting = Properties.Settings.Default.PasteNoReturns; StepTabRibbon.PastePlainTextSetting = Properties.Settings.Default.PastePlainText; Activate(); - FolderInfo fi = FolderInfo.Get(1); - FormatInfo frmI = FormatInfo.Get(fi.FormatID ?? 1); - if (frmI.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds) - { - dlgChgId dlgCI = new dlgChgId(tc); - dlgCI.ShowDialog(this); - } + //FolderInfo fi = FolderInfo.Get(1); + //FormatInfo frmI = FormatInfo.Get(fi.FormatID ?? 1); + //if (frmI.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds) + //{ + // dlgChgId dlgCI = new dlgChgId(tc); + // dlgCI.ShowDialog(this); + //} } void tmrCloseTabItems_Tick(object sender, EventArgs e) @@ -1925,6 +1925,12 @@ namespace VEPROMS if (tvii == null || tc.SelectedDisplayTabItem.MyItemInfo.ItemID != tvii.ItemID) tv.AdjustTree(tc.SelectedDisplayTabItem.MyItemInfo); } + + // the following line will determine if the format uses the change id feature, and if so + // either prompts the user for change id, or uses an already input one if the procedure has been + // accessed. This gets run when the user clicks on procedure tabs in the step editor. + tc.HandleChangeId(tc.SelectedDisplayTabItem.MyItemInfo, tc.SelectedDisplayTabItem); + SetCaption(tv.SelectedNode as VETreeNode); displayApplicability.MyDisplayTabItem = tc.SelectedDisplayTabItem; if (tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion.DocVersionAssociationCount > 0) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs index 18db1e5b..8c337c05 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs @@ -838,21 +838,22 @@ namespace VEPROMS.CSLA.Library { int pgoffset = tb._ToItem.PageNumber - tb._FromItem.PageNumber; tb._ToItem.PageNumberUsed = tb._ToItem.PageNumber; + + // if the plant does not want to use the 'Next Page' or 'Previous Page' text, reset the + // pgoffset so that the specific page number is always printed even if it is next or previous page: + if (tb._ToItem.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificPageNo) pgoffset = -2; switch (pgoffset) { case 1: tb.Append(" (Next Page)"); - //Console.WriteLine("Next Page: {0}", tb._FromItem.ShortPath); break; case -1: tb.Append(" (Previous Page)"); - //Console.WriteLine("Prev Page: {0}", tb._FromItem.ShortPath); break; case 0: break; default: tb.Append(string.Format(" (Page {0})", tb._ToItem.PageNumber + 1)); - //Console.WriteLine("Page: {0}, {1}", tb._FromItem.ShortPath, tb._ToItem.PageNumber); break; } } diff --git a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs index 700702a4..a3918eab 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs @@ -5398,6 +5398,14 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _UseSpecificTransitionModifier, "@UseSpecificTransitionModifier"); } } + private LazyLoad _UseSpecificPageNo; + public bool UseSpecificPageNo + { + get + { + return LazyLoad(ref _UseSpecificPageNo, "@UseSpecificPageNo"); + } + } private LazyLoad _UseSecTitles; public bool UseSecTitles { diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index 3ca2924c..e18e98ae 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -81,6 +81,15 @@ namespace Volian.Controls.Library /// A bar is the docking location for the DisplayTabItems. /// private int _UniqueBarCount; + + /// + /// ItemsChangeIds is used to store a procedure's itemid and its associated (input from dialog) + /// Change Id. Any time a user enters a procedure for the first time in this program session, + /// the user gets prompted to enter a change id. Any time a modification is made to the procedure + /// this change id is used. The user can modify this change id from the step tab ribbon/change id + /// tab (only if the format uses change ids is this tab visible). + /// + public Dictionary ItemsChangeIds = null; private ItemInfo _MyItemInfo = null; private EditItem _MyEditItem = null; private StepRTB _MyStepRTB = null; @@ -282,6 +291,7 @@ namespace Volian.Controls.Library } private void SetUp() { + ItemsChangeIds = new Dictionary(); _RemovedDisplayTabItems = new List(); Dock = DockStyle.Fill; dotNetBarManager1.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; @@ -823,6 +833,7 @@ namespace Volian.Controls.Library { pg = _MyDisplayTabItems[key]; pg.Selected = true; + HandleChangeId(myItemInfo, pg); if (SelectedDisplayTabItem != pg) // If the selected page doesn't match SelectDisplayTabItem(pg); // Set the selected page } @@ -831,6 +842,7 @@ namespace Volian.Controls.Library pg = new DisplayTabItem(this.components, this, proc, key); // Open a new Procedure Tab _MyDisplayTabItems.Add(key, pg); pg.Selected = true; + HandleChangeId(myItemInfo, pg); SelectDisplayTabItem(pg); pg.MyStepTabPanel.MyProcedureItemInfo = proc; @@ -847,6 +859,33 @@ namespace Volian.Controls.Library pg.SelectedItemInfo = myItemInfo; // Select the item return pg; } + + public void HandleChangeId(ItemInfo myItemInfo, DisplayTabItem pg) + { + if (myItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds) + { + if (ItemsChangeIds.ContainsKey(myItemInfo.MyProcedure.ItemID)) SetChangeId(ItemsChangeIds[myItemInfo.MyProcedure.ItemID], pg); + else PromptForChangeId(myItemInfo, pg); + } + } + private void PromptForChangeId(ItemInfo myItemInfo, DisplayTabItem pg) + { + dlgChgId dlgCI = new dlgChgId(this); + dlgCI.ShowDialog(this); + ItemsChangeIds.Add(myItemInfo.MyProcedure.ItemID, ChgId); + SetChangeId(ChgId, pg); + } + + private void SetChangeId(string chgid, DisplayTabItem pg) + { + if (pg == null || pg.MyStepTabPanel == null) + { + ChgId = null; + return; + } + pg.MyStepTabPanel.MyStepTabRibbon.SetChangeId(chgid); + ChgId = chgid; + } /// /// This opens a Word page based upon an itemInfo. Since a word document may be a library /// document, the related DocID is used for the Word document. diff --git a/PROMS/Volian.Controls.Library/DisplayTabItem.cs b/PROMS/Volian.Controls.Library/DisplayTabItem.cs index 628e699d..850a2229 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabItem.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabItem.cs @@ -176,7 +176,7 @@ namespace Volian.Controls.Library if(_MyStepTabPanel != null) _MyStepTabPanel.MyStepPanel.DisplayItemChanging = true; base.OnDisplayedChanged(); - if(_MyStepTabPanel != null) + if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepPanel.DisplayItemChanging = false; //Console.WriteLine("<=<=<=<= OnDisplayedChanged"); } @@ -215,6 +215,7 @@ namespace Volian.Controls.Library StepTabPanel myTabPanel = myTabItem.MyStepTabPanel as StepTabPanel; if(myTabPanel == null) return; if (MyStepTabPanel.SelectedEditItem == null) return; + MyStepTabPanel.MyDisplayTabControl.HandleChangeId(MyStepTabPanel.SelectedEditItem.MyItemInfo, myTabItem); _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyStepTabPanel.SelectedEditItem)); } #endregion diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs index b7adca01..47781a51 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs @@ -59,10 +59,14 @@ namespace Volian.Controls.Library } else MyStepRTB = null; - if (rtabChgId.Visible) - txtBxChgId.Text = (this.Parent as StepTabPanel).MyDisplayTabControl.ChgId; + //if (rtabChgId.Visible) + // txtBxChgId.Text = (this.Parent as StepTabPanel).MyDisplayTabControl.ChgId; } } + public void SetChangeId(string chgid) + { + txtBxChgId.Text = chgid; + } // added jcb 20121221 to support set ro from word doc private ROFSTLookup MyLookup; private DocVersionInfo _MyDVI; @@ -2766,7 +2770,9 @@ namespace Volian.Controls.Library } private void btnSaveChgId_Click(object sender, EventArgs e) { - (this.Parent as StepTabPanel).MyDisplayTabControl.ChgId = txtBxChgId.Text; + //(this.Parent as StepTabPanel).MyDisplayTabControl.ChgId = txtBxChgId.Text; + (this.Parent as StepTabPanel).MyDisplayTabControl.ItemsChangeIds.Remove(_MyEditItem.MyStepRTB.MyItemInfo.MyProcedure.ItemID); + (this.Parent as StepTabPanel).MyDisplayTabControl.ItemsChangeIds.Add(_MyEditItem.MyStepRTB.MyItemInfo.MyProcedure.ItemID, txtBxChgId.Text); } } public enum E_FieldToEdit { StepText, Text, Number, PSI }; diff --git a/PROMS/Volian.Controls.Library/dlgChgId.cs b/PROMS/Volian.Controls.Library/dlgChgId.cs new file mode 100644 index 00000000..74bdb7c2 --- /dev/null +++ b/PROMS/Volian.Controls.Library/dlgChgId.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace Volian.Controls.Library +{ + public partial class dlgChgId : Form + { + DisplayTabControl TabControl; + public dlgChgId(DisplayTabControl tc) + { + InitializeComponent(); + TabControl = tc; + tbChgId.Focus(); + } + + private void btnOk_Click(object sender, EventArgs e) + { + TabControl.ChgId = tbChgId.Text; + } + + private void btnCancel_Click(object sender, EventArgs e) + { + TabControl.ChgId = null; + } + } +} \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/dlgChgId.designer.cs b/PROMS/Volian.Controls.Library/dlgChgId.designer.cs new file mode 100644 index 00000000..62e704cd --- /dev/null +++ b/PROMS/Volian.Controls.Library/dlgChgId.designer.cs @@ -0,0 +1,113 @@ +namespace Volian.Controls.Library +{ + partial class dlgChgId + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.tbChgId = new System.Windows.Forms.TextBox(); + this.btnOk = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(17, 12); + this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(160, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Please enter your change bar ID"; + // + // tbChgId + // + this.tbChgId.Location = new System.Drawing.Point(41, 41); + this.tbChgId.Margin = new System.Windows.Forms.Padding(2); + this.tbChgId.Name = "tbChgId"; + this.tbChgId.Size = new System.Drawing.Size(97, 20); + this.tbChgId.TabIndex = 1; + // + // btnOk + // + this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOk.Location = new System.Drawing.Point(25, 74); + this.btnOk.Margin = new System.Windows.Forms.Padding(2); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(46, 24); + this.btnOk.TabIndex = 2; + this.btnOk.Text = "OK"; + this.btnOk.UseVisualStyleBackColor = true; + this.btnOk.Click += new System.EventHandler(this.btnOk_Click); + // + // btnCancel + // + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(103, 74); + this.btnCancel.Margin = new System.Windows.Forms.Padding(2); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(49, 24); + this.btnCancel.TabIndex = 3; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // dlgChgId + // + this.AcceptButton = this.btnOk; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnCancel; + this.ClientSize = new System.Drawing.Size(186, 113); + this.ControlBox = false; + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOk); + this.Controls.Add(this.tbChgId); + this.Controls.Add(this.label1); + this.Margin = new System.Windows.Forms.Padding(2); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(202, 152); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(202, 152); + this.Name = "dlgChgId"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "PROMS Change Bar ID"; + this.TopMost = true; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox tbChgId; + private System.Windows.Forms.Button btnOk; + private System.Windows.Forms.Button btnCancel; + } +} \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/dlgChgId.resx b/PROMS/Volian.Controls.Library/dlgChgId.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/PROMS/Volian.Controls.Library/dlgChgId.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PROMS/fmtxml/FmtFileToXml.cs b/PROMS/fmtxml/FmtFileToXml.cs index a22959d2..01a1f14d 100644 --- a/PROMS/fmtxml/FmtFileToXml.cs +++ b/PROMS/fmtxml/FmtFileToXml.cs @@ -1134,6 +1134,7 @@ public struct Trans public string Cap1stCharTrans; public string UseTransitionModifier; public string UseSpecificTransitionModifier; // added for BGE. Modifier, i.e. page num, is within the specific format string that defines the transition + public string UseSpecificPageNo; // added for BGE. Use specific page number instead of 'Next Page' or 'Previous Page' public string UseSecTitles; public string HardSpTranProcNumb; public string XchngTranSpForHard; @@ -5190,6 +5191,7 @@ namespace fmtxml if (mainFmt.TransData.Cap1stCharTrans != null && mainFmt.TransData.Cap1stCharTrans == subFmt.TransData.Cap1stCharTrans) subFmt.TransData.Cap1stCharTrans = "null"; if (mainFmt.TransData.UseTransitionModifier != null && mainFmt.TransData.UseTransitionModifier == subFmt.TransData.UseTransitionModifier) subFmt.TransData.UseTransitionModifier = "null"; if (mainFmt.TransData.UseSpecificTransitionModifier != null && mainFmt.TransData.UseSpecificTransitionModifier == subFmt.TransData.UseSpecificTransitionModifier) subFmt.TransData.UseSpecificTransitionModifier = "null"; + if (mainFmt.TransData.UseSpecificPageNo != null && mainFmt.TransData.UseSpecificPageNo == subFmt.TransData.UseSpecificPageNo) subFmt.TransData.UseSpecificPageNo = "null"; if (mainFmt.TransData.UseSecTitles != null && mainFmt.TransData.UseSecTitles == subFmt.TransData.UseSecTitles) subFmt.TransData.UseSecTitles = "null"; if (mainFmt.TransData.HardSpTranProcNumb != null && mainFmt.TransData.HardSpTranProcNumb == subFmt.TransData.HardSpTranProcNumb) subFmt.TransData.HardSpTranProcNumb = "null"; if (mainFmt.TransData.XchngTranSpForHard != null && mainFmt.TransData.XchngTranSpForHard == subFmt.TransData.XchngTranSpForHard) subFmt.TransData.XchngTranSpForHard = "null"; diff --git a/PROMS/fmtxml/PlantSpecific_Calvert.cs b/PROMS/fmtxml/PlantSpecific_Calvert.cs index aebe28aa..16a7aa54 100644 --- a/PROMS/fmtxml/PlantSpecific_Calvert.cs +++ b/PROMS/fmtxml/PlantSpecific_Calvert.cs @@ -31,7 +31,8 @@ namespace fmtxml fmtdata.SectData.StepSectionData.StpSectLayData.TabPtsPerChar = 6.2f; fmtdata.SectData.StepSectionData.SequentialTabFormat[4].TabFormat = "{seq})"; fmtdata.SectData.StepSectionData.SequentialTabFormat[4].PrintTabFormat = "{seq})"; - fmtdata.TransData.UseSpecificTransitionModifier = "true"; + fmtdata.TransData.UseSpecificTransitionModifier = "True"; + fmtdata.TransData.UseSpecificPageNo = "True"; fmtdata.StepData[2].TabData.Ident = " {numeric}. "; fmtdata.StepData[2].TabData.IdentEdit = " {numeric}. "; fmtdata.StepData[2].TabData.RNOIdent = " . "; diff --git a/PROMS/fmtxml/TranslateFMT.XSL b/PROMS/fmtxml/TranslateFMT.XSL index 022b86f6..ca0542b0 100644 Binary files a/PROMS/fmtxml/TranslateFMT.XSL and b/PROMS/fmtxml/TranslateFMT.XSL differ