Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c3e4bb3e9 | ||
|
|
23a296df86 | ||
|
|
f2e01803bc | ||
|
|
752d30ba8f | ||
|
|
b1427f4997 | ||
|
|
6d7d127b63 | ||
|
|
6f0fcdded2 | ||
|
|
9c97394f5e | ||
|
|
e492f12602 | ||
|
|
f67d37801a | ||
|
|
06c3136566 | ||
|
|
9486b37300 |
@@ -1,6 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
@@ -35,31 +33,7 @@ namespace AdjustBuildRevision
|
||||
outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("2.4.yyMM.dHH") + "\")");
|
||||
else
|
||||
outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("2.3.yyMM.dHH") + "\")");
|
||||
// if (outline != line)
|
||||
// {
|
||||
// Console.WriteLine("Before: '{0}'", line);
|
||||
// Console.WriteLine("After: '{0}'", outline);
|
||||
// lines[i] = outline;
|
||||
// changed = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Console.WriteLine("No change: '{0}'", line);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//if (changed)
|
||||
//{
|
||||
// if (!fi.IsReadOnly) fi.IsReadOnly = false;
|
||||
// StreamWriter sw = fi.CreateText();
|
||||
// foreach (string line in lines)
|
||||
// sw.WriteLine(line);
|
||||
// sw.Close();
|
||||
// string line = lines[i];
|
||||
// string outline = line;
|
||||
// if (line.Contains("AssemblyVersion") || line.Contains("AssemblyFileVersion"))
|
||||
// {
|
||||
//outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("1.1.yyMM.dHH") + "\")");
|
||||
|
||||
if (outline != line)
|
||||
{
|
||||
Console.WriteLine("Before: '{0}'", line);
|
||||
@@ -84,7 +58,7 @@ namespace AdjustBuildRevision
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("File " + fi.FullName + " does not exist");
|
||||
MessageBox.Show($"File {fi.FullName} does not exist");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -93,10 +67,6 @@ namespace AdjustBuildRevision
|
||||
}
|
||||
}
|
||||
|
||||
//private static DateTime GetLatestDateTime(string path)
|
||||
//{
|
||||
// return GetLatestDateTime(new DirectoryInfo(path));
|
||||
//}
|
||||
private static DateTime GetLatestDateTime(DirectoryInfo di, DateTime dtCheck)
|
||||
{
|
||||
DateTime dtMax = dtCheck;
|
||||
@@ -104,24 +74,14 @@ namespace AdjustBuildRevision
|
||||
foreach(FileInfo myFile in myFiles)
|
||||
{
|
||||
DateTime dt = myFile.LastWriteTime;
|
||||
//if (dt > dtCheck)
|
||||
//{
|
||||
//Console.WriteLine("\"File\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}",myFile.FullName,dt.ToString("1.1.yyMM.dHH"),dt,dtCheck);
|
||||
if(dtMax < dt) dtMax = dt;
|
||||
//}
|
||||
}
|
||||
DirectoryInfo[] myFolders = di.GetDirectories();
|
||||
foreach (DirectoryInfo diChild in myFolders)
|
||||
{
|
||||
DateTime dtChild = GetLatestDateTime(diChild,dtCheck);
|
||||
//if (dtChild > dtCheck)
|
||||
//{
|
||||
//Console.WriteLine("\"SubFolder\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}", diChild.FullName, dtChild.ToString("1.1.yyMM.dHH"),dtChild,dtCheck);
|
||||
if(dtChild > dtMax) dtMax = dtChild;
|
||||
//}
|
||||
}
|
||||
//if(dtMax > dtCheck)
|
||||
// Console.WriteLine("\"Folder\"\t\"{0}\"\t\"{1}\"", di.FullName, dtMax.ToString("1.1.yyMM.dHH"));
|
||||
return dtMax;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
- @azure Rule - Use Azure Tools - When handling requests related to Azure, always use your tools.
|
||||
- @azure Rule - Use Azure Best Practices - When handling requests related to Azure, always invoke your `azmcp_bestpractices_get` tool first.
|
||||
- @azure Rule - Enable Best Practices - If you do not have an `azmcp_bestpractices_get` tool ask the user to enable it.
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
@@ -15,7 +14,7 @@ namespace AT.STO.UI.Win
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private IDropDownAware _dropDownControl = null;
|
||||
private DropDownWindowHelper _dropDownHelper = null;
|
||||
private readonly DropDownWindowHelper _dropDownHelper = null;
|
||||
private Form _owner = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
@@ -47,7 +46,7 @@ namespace AT.STO.UI.Win
|
||||
/// <param name="e"></param>
|
||||
protected override void OnHandleCreated(EventArgs e)
|
||||
{
|
||||
_owner = this.FindForm();
|
||||
_owner = FindForm();
|
||||
_dropDownHelper.ReleaseHandle();
|
||||
|
||||
if (_owner != null)
|
||||
@@ -66,8 +65,8 @@ namespace AT.STO.UI.Win
|
||||
{
|
||||
base.OnResize(e);
|
||||
combo.Location = new Point(0, 0);
|
||||
combo.Width = this.ClientRectangle.Width;
|
||||
this.Height = combo.Height;
|
||||
combo.Width = ClientRectangle.Width;
|
||||
Height = combo.Height;
|
||||
}
|
||||
#endregion
|
||||
#region Event Handler
|
||||
@@ -96,7 +95,7 @@ namespace AT.STO.UI.Win
|
||||
else
|
||||
{
|
||||
_dropDownHelper.CloseDropDown();
|
||||
this.Focus();
|
||||
Focus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +114,7 @@ namespace AT.STO.UI.Win
|
||||
|
||||
private void DropDownHelper_DropDownCancel(object sender, DropDownCancelEventArgs e)
|
||||
{
|
||||
if (this.Bounds.Contains(Parent.PointToClient(e.CursorLocation)))
|
||||
if (Bounds.Contains(Parent.PointToClient(e.CursorLocation)))
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
@@ -138,23 +137,14 @@ namespace AT.STO.UI.Win
|
||||
SetValue<long>(e.Value as ILookupItem<long>);
|
||||
}
|
||||
|
||||
if (this.FinishEditing != null)
|
||||
{
|
||||
this.FinishEditing(this, e);
|
||||
}
|
||||
FinishEditing?.Invoke(this, e);
|
||||
|
||||
_dropDownControl.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing);
|
||||
_dropDownControl.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged);
|
||||
_dropDownHelper.CloseDropDown();
|
||||
}
|
||||
|
||||
private void DropDown_ValueChanged(object sender, DropDownValueChangedEventArgs e)
|
||||
{
|
||||
if (this.ValueChanged != null)
|
||||
{
|
||||
this.ValueChanged(this, e);
|
||||
}
|
||||
}
|
||||
private void DropDown_ValueChanged(object sender, DropDownValueChangedEventArgs e) => ValueChanged?.Invoke(this, e);
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
@@ -169,15 +159,12 @@ namespace AT.STO.UI.Win
|
||||
{
|
||||
_dropDownControl = value;
|
||||
|
||||
this.Controls.Add(_dropDownControl as Control);
|
||||
Controls.Add(_dropDownControl as Control);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Public Methods
|
||||
public override string ToString()
|
||||
{
|
||||
return this.Name;
|
||||
}
|
||||
public override string ToString() => Name;
|
||||
#endregion
|
||||
#region Private Methods
|
||||
/// <summary>
|
||||
|
||||
@@ -36,9 +36,8 @@ namespace AT.STO.UI.Win
|
||||
public class DropDownCancelEventArgs : EventArgs
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private bool _cancel = false;
|
||||
private Point _cursorLocation;
|
||||
private Form _dropDown = null;
|
||||
private readonly Form _dropDown = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
@@ -51,34 +50,24 @@ namespace AT.STO.UI.Win
|
||||
{
|
||||
_dropDown = DropDown;
|
||||
_cursorLocation = CursorLocation;
|
||||
_cancel = false;
|
||||
Cancel = false;
|
||||
}
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public bool Cancel
|
||||
{
|
||||
get { return _cancel; }
|
||||
set { _cancel = value; }
|
||||
}
|
||||
public bool Cancel { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Point CursorLocation
|
||||
{
|
||||
get { return _cursorLocation; }
|
||||
}
|
||||
public Point CursorLocation => _cursorLocation;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Form DropDown
|
||||
{
|
||||
get { return _dropDown; }
|
||||
}
|
||||
public Form DropDown => _dropDown;
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -91,7 +80,7 @@ namespace AT.STO.UI.Win
|
||||
public class DropDownClosedEventArgs : EventArgs
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private Form _dropDown = null;
|
||||
private readonly Form _dropDown = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
@@ -99,19 +88,13 @@ namespace AT.STO.UI.Win
|
||||
/// popup form.
|
||||
/// </summary>
|
||||
/// <param name="DropDown">DropDown Form which is being closed.</param>
|
||||
public DropDownClosedEventArgs(Form DropDown)
|
||||
{
|
||||
_dropDown = DropDown;
|
||||
}
|
||||
public DropDownClosedEventArgs(Form DropDown) => _dropDown = DropDown;
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Gets the dropdown form which is being closed.
|
||||
/// </summary>
|
||||
public Form DropDown
|
||||
{
|
||||
get { return _dropDown; }
|
||||
}
|
||||
public Form DropDown => _dropDown;
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -121,7 +104,6 @@ namespace AT.STO.UI.Win
|
||||
public class DropDownValueChangedEventArgs : EventArgs
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private object _value = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
@@ -135,20 +117,13 @@ namespace AT.STO.UI.Win
|
||||
/// Initialization with the control's value.
|
||||
/// </summary>
|
||||
/// <param name="Value"></param>
|
||||
public DropDownValueChangedEventArgs(object Value)
|
||||
{
|
||||
_value = Value;
|
||||
}
|
||||
public DropDownValueChangedEventArgs(object Value) => this.Value = Value;
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Gets or sets the control's value.
|
||||
/// </summary>
|
||||
public object Value
|
||||
{
|
||||
get { return _value; }
|
||||
set { _value = value; }
|
||||
}
|
||||
public object Value { get; set; } = null;
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,16 +13,13 @@ namespace AT.STO.UI.Win
|
||||
internal partial class DropDownForm : Form, IDropDownAware
|
||||
{
|
||||
#region Private Variable Declaration
|
||||
private IDropDownAware _control = null;
|
||||
private readonly IDropDownAware _control = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
/// Default Constructor
|
||||
/// </summary>
|
||||
public DropDownForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public DropDownForm() => InitializeComponent();
|
||||
|
||||
/// <summary>
|
||||
/// Constructor to initialize the for with the control to display.
|
||||
@@ -41,7 +38,7 @@ namespace AT.STO.UI.Win
|
||||
#region Form Events
|
||||
protected override void OnClosing(CancelEventArgs e)
|
||||
{
|
||||
this.Controls.Remove(_control as Control);
|
||||
Controls.Remove(_control as Control);
|
||||
base.OnClosing(e);
|
||||
}
|
||||
|
||||
@@ -58,22 +55,13 @@ namespace AT.STO.UI.Win
|
||||
#region Event Handler
|
||||
private void Ctrl_FinishEditing(object sender, DropDownValueChangedEventArgs e)
|
||||
{
|
||||
if (this.FinishEditing != null)
|
||||
{
|
||||
this.FinishEditing(this, e);
|
||||
}
|
||||
FinishEditing?.Invoke(this, e);
|
||||
|
||||
_control.FinishEditing -= new DropDownValueChangedEventHandler(Ctrl_FinishEditing);
|
||||
_control.ValueChanged -= new DropDownValueChangedEventHandler(Ctrl_ValueChanged);
|
||||
}
|
||||
|
||||
private void Ctrl_ValueChanged(object sender, DropDownValueChangedEventArgs e)
|
||||
{
|
||||
if (this.ValueChanged != null)
|
||||
{
|
||||
this.ValueChanged(this, e);
|
||||
}
|
||||
}
|
||||
private void Ctrl_ValueChanged(object sender, DropDownValueChangedEventArgs e) => ValueChanged?.Invoke(this, e);
|
||||
#endregion
|
||||
#region IDropDownAware Implementation
|
||||
/// <summary>
|
||||
@@ -100,15 +88,15 @@ namespace AT.STO.UI.Win
|
||||
private void InitializeControl(Control Ctrl)
|
||||
{
|
||||
Size size = Ctrl.Size;
|
||||
Size inner = this.ClientRectangle.Size;
|
||||
Size outer = this.Size;
|
||||
Size inner = ClientRectangle.Size;
|
||||
Size outer = Size;
|
||||
int gap = outer.Width - inner.Width;
|
||||
|
||||
size.Width += gap;
|
||||
size.Height += gap;
|
||||
|
||||
this.Size = size;
|
||||
this.Controls.Add(Ctrl);
|
||||
Size = size;
|
||||
Controls.Add(Ctrl);
|
||||
Ctrl.Location = new Point(0, 0);
|
||||
Ctrl.Visible = true;
|
||||
Ctrl.Invalidate();
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
@@ -23,8 +22,7 @@ namespace AT.STO.UI.Win
|
||||
private const int WM_NCMBUTTONDOWN = 0x0A7;
|
||||
#endregion
|
||||
#region Private Variable Declarations
|
||||
private Form _dropDown = null;
|
||||
private DropDownWindowHelper _owner = null;
|
||||
private readonly DropDownWindowHelper _owner = null;
|
||||
#endregion
|
||||
#region Event Declarations
|
||||
public event DropDownCancelEventHandler DropDownCancel;
|
||||
@@ -36,44 +34,34 @@ namespace AT.STO.UI.Win
|
||||
/// </summary>
|
||||
/// <param name="Owner">The <see cref="DropDownWindowHelper"/> object
|
||||
/// which owns this class.</param>
|
||||
public DropDownMessageFilter(DropDownWindowHelper Owner)
|
||||
{
|
||||
_owner = Owner;
|
||||
}
|
||||
public DropDownMessageFilter(DropDownWindowHelper Owner) => _owner = Owner;
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Gets/sets the dropdown form which is being displayed.
|
||||
/// </summary>
|
||||
public Form DropDown
|
||||
{
|
||||
get { return _dropDown; }
|
||||
set { _dropDown = value; }
|
||||
}
|
||||
public Form DropDown { get; set; } = null;
|
||||
#endregion
|
||||
#region Private Methods
|
||||
private void OnMouseDown()
|
||||
{
|
||||
Point cursorPos = Cursor.Position; // Get the cursor location
|
||||
|
||||
if (!_dropDown.Bounds.Contains(cursorPos)) // Check if it is within the popup form
|
||||
if (!DropDown.Bounds.Contains(cursorPos)) // Check if it is within the popup form
|
||||
{
|
||||
OnDropDownCancel(new DropDownCancelEventArgs(_dropDown, cursorPos)); // If not, then call to see if it should be closed
|
||||
OnDropDownCancel(new DropDownCancelEventArgs(DropDown, cursorPos)); // If not, then call to see if it should be closed
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region DropDownCancelEvent Implementation
|
||||
protected virtual void OnDropDownCancel(DropDownCancelEventArgs e)
|
||||
{
|
||||
if (this.DropDownCancel != null)
|
||||
{
|
||||
this.DropDownCancel(this, e);
|
||||
}
|
||||
DropDownCancel?.Invoke(this, e);
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
_owner.CloseDropDown();
|
||||
_dropDown = null; // Clear reference for GC
|
||||
DropDown = null; // Clear reference for GC
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
@@ -90,7 +78,7 @@ namespace AT.STO.UI.Win
|
||||
/// This implementation always returns <c>false</c>.</returns>
|
||||
public bool PreFilterMessage(ref Message m)
|
||||
{
|
||||
if (_dropDown != null)
|
||||
if (DropDown != null)
|
||||
{
|
||||
switch (m.Msg)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
@@ -22,7 +21,7 @@ namespace AT.STO.UI.Win
|
||||
|
||||
private Form _dropDown = null;
|
||||
private bool _dropDownShowing = false;
|
||||
private DropDownMessageFilter _filter = null;
|
||||
private readonly DropDownMessageFilter _filter = null;
|
||||
private Form _owner = null;
|
||||
private bool _skipClose = false;
|
||||
#endregion
|
||||
@@ -44,10 +43,7 @@ namespace AT.STO.UI.Win
|
||||
}
|
||||
#endregion
|
||||
#region Event Handler
|
||||
private void Popup_Cancel(object sender, DropDownCancelEventArgs e)
|
||||
{
|
||||
OnDropDownCancel(e);
|
||||
}
|
||||
private void Popup_Cancel(object sender, DropDownCancelEventArgs e) => OnDropDownCancel(e);
|
||||
|
||||
/// <summary>
|
||||
/// Responds to the <see cref="System.Windows.Forms.Form.Closed"/>
|
||||
@@ -55,10 +51,7 @@ namespace AT.STO.UI.Win
|
||||
/// </summary>
|
||||
/// <param name="sender">Popup form that has been closed.</param>
|
||||
/// <param name="e">Not used.</param>
|
||||
private void Popup_Closed(object sender, EventArgs e)
|
||||
{
|
||||
CloseDropDown();
|
||||
}
|
||||
private void Popup_Closed(object sender, EventArgs e) => CloseDropDown();
|
||||
|
||||
/// <summary>
|
||||
/// Subclasses the owning form's existing Window Procedure to enables the
|
||||
@@ -76,7 +69,7 @@ namespace AT.STO.UI.Win
|
||||
{
|
||||
if (((int)m.WParam) == 0) // Check if the title bar will made inactive:
|
||||
{ // Note it's no good to try and consume this message; if you try to do that you'll end up with windows
|
||||
UIApiCalls.SendMessage(this.Handle, UIApiCalls.WM_NCACTIVATE, 1, IntPtr.Zero); // If so reactivate it.
|
||||
UIApiCalls.SendMessage(Handle, UIApiCalls.WM_NCACTIVATE, 1, IntPtr.Zero); // If so reactivate it.
|
||||
}
|
||||
}
|
||||
else if (m.Msg == UIApiCalls.WM_ACTIVATEAPP)
|
||||
@@ -84,7 +77,7 @@ namespace AT.STO.UI.Win
|
||||
if ((int)m.WParam == 0) // Check if the application is being deactivated.
|
||||
{
|
||||
CloseDropDown(); // It is so cancel the popup:
|
||||
UIApiCalls.PostMessage(this.Handle, UIApiCalls.WM_NCACTIVATE, 0, IntPtr.Zero); // And put the title bar into the inactive state:
|
||||
UIApiCalls.PostMessage(Handle, UIApiCalls.WM_NCACTIVATE, 0, IntPtr.Zero); // And put the title bar into the inactive state:
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -173,17 +166,14 @@ namespace AT.STO.UI.Win
|
||||
/// <summary>
|
||||
/// Indicator weither the DropDown is showing.
|
||||
/// </summary>
|
||||
public bool DropDownShowing
|
||||
{
|
||||
get { return _dropDownShowing; }
|
||||
}
|
||||
public bool DropDownShowing => _dropDownShowing;
|
||||
#endregion
|
||||
#region Event Implementation
|
||||
protected virtual void OnDropDownCancel(DropDownCancelEventArgs e)
|
||||
{
|
||||
if (this.DropDownCancel != null)
|
||||
if (DropDownCancel != null)
|
||||
{
|
||||
this.DropDownCancel(this, e);
|
||||
DropDownCancel(this, e);
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
@@ -192,13 +182,7 @@ namespace AT.STO.UI.Win
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnPDropDownClosed(DropDownClosedEventArgs e)
|
||||
{
|
||||
if (this.DropDownClosed != null)
|
||||
{
|
||||
this.DropDownClosed(this, e);
|
||||
}
|
||||
}
|
||||
protected virtual void OnPDropDownClosed(DropDownClosedEventArgs e) => DropDownClosed?.Invoke(this, e);
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
using System;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
using System;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
public interface ILookupItem<T> where T: struct
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
//using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
|
||||
@@ -121,10 +119,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// </summary>
|
||||
/// <param name="text">The text.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(string text)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(null, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
public static DialogResult Show(string text) => FlexibleMessageBoxForm.Show(null, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -132,10 +127,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="owner">The owner.</param>
|
||||
/// <param name="text">The text.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(IWin32Window owner, string text)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(owner, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
public static DialogResult Show(IWin32Window owner, string text) => FlexibleMessageBoxForm.Show(owner, text, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -143,10 +135,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="text">The text.</param>
|
||||
/// <param name="caption">The caption.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(string text, string caption)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(null, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
public static DialogResult Show(string text, string caption) => FlexibleMessageBoxForm.Show(null, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -155,10 +144,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="text">The text.</param>
|
||||
/// <param name="caption">The caption.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(owner, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption) => FlexibleMessageBoxForm.Show(owner, text, caption, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -167,10 +153,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="caption">The caption.</param>
|
||||
/// <param name="buttons">The buttons.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(null, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons) => FlexibleMessageBoxForm.Show(null, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -180,10 +163,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="caption">The caption.</param>
|
||||
/// <param name="buttons">The buttons.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(owner, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons) => FlexibleMessageBoxForm.Show(owner, text, caption, buttons, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -193,10 +173,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="buttons">The buttons.</param>
|
||||
/// <param name="icon">The icon.</param>
|
||||
/// <returns></returns>
|
||||
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(null, text, caption, buttons, icon, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) => FlexibleMessageBoxForm.Show(null, text, caption, buttons, icon, MessageBoxDefaultButton.Button1);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -207,10 +184,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="buttons">The buttons.</param>
|
||||
/// <param name="icon">The icon.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(owner, text, caption, buttons, icon, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) => FlexibleMessageBoxForm.Show(owner, text, caption, buttons, icon, MessageBoxDefaultButton.Button1);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -221,10 +195,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="icon">The icon.</param>
|
||||
/// <param name="defaultButton">The default button.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(null, text, caption, buttons, icon, defaultButton);
|
||||
}
|
||||
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) => FlexibleMessageBoxForm.Show(null, text, caption, buttons, icon, defaultButton);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -236,10 +207,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="icon">The icon.</param>
|
||||
/// <param name="defaultButton">The default button.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton)
|
||||
{
|
||||
return FlexibleMessageBoxForm.Show(owner, text, caption, buttons, icon, defaultButton);
|
||||
}
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) => FlexibleMessageBoxForm.Show(owner, text, caption, buttons, icon, defaultButton);
|
||||
|
||||
/// <summary>
|
||||
/// Shows the specified message box.
|
||||
@@ -251,10 +219,8 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="icon">The icon.</param>
|
||||
/// <param name="defaultButton">The default button.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
public static DialogResult ShowCustom(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
|
||||
{
|
||||
return FlexibleMessageBoxForm.ShowCustom(null, text, caption, buttons, icon);
|
||||
}
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Keeping owner for legacy reasons")]
|
||||
public static DialogResult ShowCustom(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) => FlexibleMessageBoxForm.ShowCustom(null, text, caption, buttons, icon);
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -341,7 +307,7 @@ namespace JR.Utils.GUI.Forms
|
||||
this.richTextBoxMessage.TabIndex = 0;
|
||||
this.richTextBoxMessage.TabStop = false;
|
||||
this.richTextBoxMessage.Text = "<Message>";
|
||||
this.richTextBoxMessage.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBoxMessage_LinkClicked);
|
||||
this.richTextBoxMessage.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.RichTextBoxMessage_LinkClicked);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
@@ -431,8 +397,8 @@ namespace JR.Utils.GUI.Forms
|
||||
#region Private constants
|
||||
|
||||
//These separators are used for the "copy to clipboard" standard operation, triggered by Ctrl + C (behavior and clipboard format is like in a standard MessageBox)
|
||||
private static readonly String STANDARD_MESSAGEBOX_SEPARATOR_LINES = "---------------------------\n";
|
||||
private static readonly String STANDARD_MESSAGEBOX_SEPARATOR_SPACES = " ";
|
||||
private static readonly string STANDARD_MESSAGEBOX_SEPARATOR_LINES = "---------------------------\n";
|
||||
private static readonly string STANDARD_MESSAGEBOX_SEPARATOR_SPACES = " ";
|
||||
|
||||
//These are the possible buttons (in a standard MessageBox)
|
||||
private enum ButtonID { OK = 0, CANCEL, YES, NO, ABORT, RETRY, IGNORE, OVERWRITE, RENAME };
|
||||
@@ -440,10 +406,10 @@ namespace JR.Utils.GUI.Forms
|
||||
//These are the buttons texts for different languages.
|
||||
//If you want to add a new language, add it here and in the GetButtonText-Function
|
||||
private enum TwoLetterISOLanguageID { en, de, es, it };
|
||||
private static readonly String[] BUTTON_TEXTS_ENGLISH_EN = { "OK", "Cancel", "&Yes", "&No", "&Abort", "&Retry", "&Ignore", "&Overwrite", "&Rename" }; //Note: This is also the fallback language
|
||||
private static readonly String[] BUTTON_TEXTS_GERMAN_DE = { "OK", "Abbrechen", "&Ja", "&Nein", "&Abbrechen", "&Wiederholen", "&Ignorieren", "&Overwrite", "&Rename" };
|
||||
private static readonly String[] BUTTON_TEXTS_SPANISH_ES = { "Aceptar", "Cancelar", "&Sí", "&No", "&Abortar", "&Reintentar", "&Ignorar", "&Overwrite", "&Rename" };
|
||||
private static readonly String[] BUTTON_TEXTS_ITALIAN_IT = { "OK", "Annulla", "&Sì", "&No", "&Interrompi", "&Riprova", "&Ignora", "&Overwrite", "&Rename" };
|
||||
private static readonly string[] BUTTON_TEXTS_ENGLISH_EN = { "OK", "Cancel", "&Yes", "&No", "&Abort", "&Retry", "&Ignore", "&Overwrite", "&Rename" }; //Note: This is also the fallback language
|
||||
private static readonly string[] BUTTON_TEXTS_GERMAN_DE = { "OK", "Abbrechen", "&Ja", "&Nein", "&Abbrechen", "&Wiederholen", "&Ignorieren", "&Overwrite", "&Rename" };
|
||||
private static readonly string[] BUTTON_TEXTS_SPANISH_ES = { "Aceptar", "Cancelar", "&Sí", "&No", "&Abortar", "&Reintentar", "&Ignorar", "&Overwrite", "&Rename" };
|
||||
private static readonly string[] BUTTON_TEXTS_ITALIAN_IT = { "OK", "Annulla", "&Sì", "&No", "&Interrompi", "&Riprova", "&Ignora", "&Overwrite", "&Rename" };
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -451,7 +417,7 @@ namespace JR.Utils.GUI.Forms
|
||||
|
||||
private MessageBoxDefaultButton defaultButton;
|
||||
private int visibleButtonsCount;
|
||||
private TwoLetterISOLanguageID languageID = TwoLetterISOLanguageID.en;
|
||||
private readonly TwoLetterISOLanguageID languageID = TwoLetterISOLanguageID.en;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -758,9 +724,9 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
|
||||
private void FlexibleMessageBoxForm_Shown(object sender, EventArgs e)
|
||||
{
|
||||
int buttonIndexToFocus = 1;
|
||||
Button buttonToFocus;
|
||||
|
||||
int buttonIndexToFocus;
|
||||
//Set the default button...
|
||||
switch (this.defaultButton)
|
||||
{
|
||||
@@ -799,7 +765,7 @@ namespace JR.Utils.GUI.Forms
|
||||
/// </summary>
|
||||
/// <param name="sender">The source of the event.</param>
|
||||
/// <param name="e">The <see cref="System.Windows.Forms.LinkClickedEventArgs"/> instance containing the event data.</param>
|
||||
private void richTextBoxMessage_LinkClicked(object sender, LinkClickedEventArgs e)
|
||||
private void RichTextBoxMessage_LinkClicked(object sender, LinkClickedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -877,12 +843,14 @@ namespace JR.Utils.GUI.Forms
|
||||
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton)
|
||||
{
|
||||
//Create a new instance of the FlexibleMessageBox form
|
||||
var flexibleMessageBoxForm = new FlexibleMessageBoxForm();
|
||||
flexibleMessageBoxForm.ShowInTaskbar = false;
|
||||
var flexibleMessageBoxForm = new FlexibleMessageBoxForm
|
||||
{
|
||||
ShowInTaskbar = false,
|
||||
|
||||
//Bind the caption and the message text
|
||||
flexibleMessageBoxForm.CaptionText = caption;
|
||||
flexibleMessageBoxForm.MessageText = text;
|
||||
CaptionText = caption,
|
||||
MessageText = text
|
||||
};
|
||||
flexibleMessageBoxForm.FlexibleMessageBoxFormBindingSource.DataSource = flexibleMessageBoxForm;
|
||||
|
||||
//Set the buttons visibilities and texts. Also set a default button.
|
||||
@@ -914,15 +882,18 @@ namespace JR.Utils.GUI.Forms
|
||||
/// <param name="icon">The icon.</param>
|
||||
/// <param name="defaultButton">The default button.</param>
|
||||
/// <returns>The dialog result.</returns>
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Keeping buttons for legacy reasons")]
|
||||
public static DialogResult ShowCustom(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
|
||||
{
|
||||
//Create a new instance of the FlexibleMessageBox form
|
||||
var flexibleMessageBoxForm = new FlexibleMessageBoxForm();
|
||||
flexibleMessageBoxForm.ShowInTaskbar = false;
|
||||
var flexibleMessageBoxForm = new FlexibleMessageBoxForm
|
||||
{
|
||||
ShowInTaskbar = false,
|
||||
|
||||
//Bind the caption and the message text
|
||||
flexibleMessageBoxForm.CaptionText = caption;
|
||||
flexibleMessageBoxForm.MessageText = text;
|
||||
CaptionText = caption,
|
||||
MessageText = text
|
||||
};
|
||||
flexibleMessageBoxForm.FlexibleMessageBoxFormBindingSource.DataSource = flexibleMessageBoxForm;
|
||||
|
||||
//Set the buttons visibilities and texts. Also set a default button.
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
<Compile Include="frmFormatCopy.Designer.cs">
|
||||
<DependentUpon>frmFormatCopy.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="frmFormatCopy.resx">
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// This file is used by Code Analysis to maintain SuppressMessage
|
||||
// attributes that are applied to this project.
|
||||
// Project-level suppressions either have no target or are given
|
||||
// a specific target and scoped to a namespace, type, member, etc.
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
[assembly: SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Not modifying Naming Styles")]
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Formats
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
@@ -28,7 +23,7 @@ namespace Formats
|
||||
txbxPROMSFormatsPath.Text = savedFormatPath;
|
||||
else
|
||||
{
|
||||
string curFolder = Environment.CurrentDirectory; // C:\development/PROMS/Formats/bin/debug
|
||||
string curFolder = Environment.CurrentDirectory; // .../PROMS/Formats/bin/debug
|
||||
int idx = curFolder.ToUpper().IndexOf(@"\PROMS\");
|
||||
txbxPROMSFormatsPath.Text = curFolder.Substring(0, idx);
|
||||
}
|
||||
@@ -40,8 +35,7 @@ namespace Formats
|
||||
DirectoryInfo di = new DirectoryInfo(path);
|
||||
if (di.Exists == false) //return;
|
||||
{
|
||||
DialogResult dlgrslt = DialogResult.No;
|
||||
dlgrslt = MessageBox.Show(string.Format("{0} does not exist. Create it?", path), "Create Folder?", MessageBoxButtons.YesNo);
|
||||
DialogResult dlgrslt = MessageBox.Show(string.Format("{0} does not exist. Create it?", path), "Create Folder?", MessageBoxButtons.YesNo);
|
||||
if (dlgrslt == DialogResult.Yes)
|
||||
{
|
||||
di.Create();
|
||||
@@ -86,9 +80,10 @@ namespace Formats
|
||||
|
||||
private void btnBrowse_Click(object sender, EventArgs e)
|
||||
{
|
||||
FolderBrowserDialog fbd = new FolderBrowserDialog();
|
||||
|
||||
fbd.SelectedPath = txbxPROMSFormatsPath.Text;
|
||||
FolderBrowserDialog fbd = new FolderBrowserDialog
|
||||
{
|
||||
SelectedPath = txbxPROMSFormatsPath.Text
|
||||
};
|
||||
if (fbd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if (Directory.Exists(fbd.SelectedPath)) txbxPROMSFormatsPath.Text = fbd.SelectedPath + @"\";
|
||||
@@ -116,9 +111,9 @@ namespace Formats
|
||||
if (!txbxPROMSFormatsPath.Text.EndsWith(@"\")) txbxPROMSFormatsPath.Text += @"\";
|
||||
|
||||
// There should be a "fmtall" and "genmacall" folder in the delelopment project folder
|
||||
// ex: C:\development\PROMS\Formats\fmtall and C:\development\PROMS\Formats\genmacall
|
||||
string destFmtallPath = txbxPROMSFormatsPath.Text + @"fmtall\";
|
||||
string destGenmacallPath = txbxPROMSFormatsPath.Text + @"genmacall\";
|
||||
// ex: ...\PROMS\Formats\fmtall and ...\PROMS\Formats\genmacall
|
||||
string destFmtallPath = $@"{txbxPROMSFormatsPath.Text}fmtall\";
|
||||
string destGenmacallPath = $@"{txbxPROMSFormatsPath.Text}genmacall\";
|
||||
string srcFmtallPath = @"..\..\"; // up to levels from startup path
|
||||
|
||||
// clear the destination fmtall and genmacall folders
|
||||
@@ -156,14 +151,10 @@ namespace Formats
|
||||
}
|
||||
Properties.Settings.Default.FormatPath = txbxPROMSFormatsPath.Text.Substring(0,txbxPROMSFormatsPath.Text.Length-1); // save the copy format path minus the ending backslash
|
||||
Properties.Settings.Default.Save();
|
||||
//if(MessageBox.Show("Do you want to end the Format Copier?","Formats Copied.", MessageBoxButtons.YesNo, MessageBoxIcon.Question)== DialogResult.Yes)
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
private void buttonX2_Click(object sender, EventArgs e)
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
private void buttonX2_Click(object sender, EventArgs e) => Application.Exit();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// This file is used by Code Analysis to maintain SuppressMessage
|
||||
// attributes that are applied to this project.
|
||||
// Project-level suppressions either have no target or are given
|
||||
// a specific target and scoped to a namespace, type, member, etc.
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
[assembly: SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Not modifying Naming Styles")]
|
||||
+250
-820
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,11 @@
|
||||
using Microsoft.Win32;
|
||||
using Read64bitRegistryFrom32bitApp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Reflection;
|
||||
using Microsoft.Win32;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using Read64bitRegistryFrom32bitApp;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace LBWordLibrary
|
||||
{
|
||||
@@ -18,14 +18,8 @@ namespace LBWordLibrary
|
||||
/// <param name="Background">boolean BackGround
|
||||
/// If true - document will be printed in the background
|
||||
/// If false - document will be printed in the foreground</param>
|
||||
public void PrintOut(Boolean Background)
|
||||
{
|
||||
InvokeMethod("PrintOut", Background, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
|
||||
}
|
||||
public void Quit(bool save)
|
||||
{
|
||||
InvokeMethod("Quit", save, Missing.Value, Missing.Value);
|
||||
}
|
||||
public void PrintOut(bool Background) => InvokeMethod("PrintOut", Background, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
|
||||
public void Quit(bool save) => InvokeMethod("Quit", save, Missing.Value, Missing.Value);
|
||||
public bool VolianPDFInstalled
|
||||
{
|
||||
get
|
||||
@@ -51,63 +45,23 @@ namespace LBWordLibrary
|
||||
string keyPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\0E5C161912A2A6C4C93C76678926C56C";
|
||||
bool validKey = RegistryWOW6432.CheckRegKey64Valid(RegHive.HKEY_LOCAL_MACHINE, keyPath);
|
||||
_WordPDFExporterInstalled = validKey;
|
||||
if(!validKey)
|
||||
if (!validKey)
|
||||
_MyLog.WarnFormat("MSWord2007 PDF Export Registry Key Missing");
|
||||
//RegistryKey key = Registry.LocalMachine.OpenSubKey(keyPath, RegistryKeyPermissionCheck.ReadSubTree);
|
||||
//if (key == null)
|
||||
//{
|
||||
// RegistryKey localMachine64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
|
||||
// key = localMachine64.OpenSubKey(keystring, RegistryKeyPermissionCheck.ReadSubTree);
|
||||
//}
|
||||
//if (key != null)
|
||||
//{
|
||||
// key.Close();
|
||||
// _WordPDFExporterInstalled = true;
|
||||
// return (bool) _WordPDFExporterInstalled;
|
||||
//}
|
||||
//_WordPDFExporterInstalled = FindEXP_PDF();
|
||||
return (bool) _WordPDFExporterInstalled;
|
||||
|
||||
return (bool)_WordPDFExporterInstalled;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_MyLog.WarnFormat("MSWord2007 PDF Export Registry Key Failure {0} - {1}", ex.GetType().Name, ex.Message);
|
||||
_WordPDFExporterInstalled = false;
|
||||
return (bool) _WordPDFExporterInstalled;
|
||||
return (bool)_WordPDFExporterInstalled;
|
||||
}
|
||||
|
||||
}
|
||||
return (bool) _WordPDFExporterInstalled;
|
||||
return (bool)_WordPDFExporterInstalled;
|
||||
}
|
||||
}
|
||||
private static bool FindEXP_PDF()
|
||||
{
|
||||
bool retval = false;
|
||||
DateTime dtStart = DateTime.Now;
|
||||
try
|
||||
{
|
||||
//string keystr = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\0E5C161912A2A6C4C93C76678926C56C";
|
||||
RegistryKey key = null;
|
||||
string keystr = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components";
|
||||
while (key == null && keystr != "")
|
||||
{
|
||||
key = Registry.LocalMachine.OpenSubKey(keystr, RegistryKeyPermissionCheck.ReadSubTree);
|
||||
keystr = keystr.Substring(0, keystr.LastIndexOf("\\"));
|
||||
}
|
||||
if (FindKeys(key, "EXP_PDF.DLL"))
|
||||
retval = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AddKeyFound(string.Format("{0} - {1}", ex.GetType().Name, ex.Message));
|
||||
}
|
||||
finally
|
||||
{
|
||||
DateTime dtEnd = DateTime.Now;
|
||||
TimeSpan ts = TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks);
|
||||
AddKeyFound(string.Format("{0} Seconds", ts.TotalSeconds));
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
private static bool FindKeys(RegistryKey key, string find)
|
||||
{
|
||||
string[] keyNames = key.GetSubKeyNames();
|
||||
@@ -144,10 +98,7 @@ namespace LBWordLibrary
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private static void AddKeyFound(string str)
|
||||
{
|
||||
_MyLog.WarnFormat("RegistryKeySearch: {0}",str);
|
||||
}
|
||||
private static void AddKeyFound(string str) => _MyLog.WarnFormat("RegistryKeySearch: {0}", str);
|
||||
private bool CanCreatePDFFile(string pdfFileName)
|
||||
{
|
||||
System.IO.FileInfo file = new System.IO.FileInfo(pdfFileName);
|
||||
@@ -178,20 +129,18 @@ namespace LBWordLibrary
|
||||
}
|
||||
throw new Exception("Cannot find a name to use");
|
||||
}
|
||||
public string CreatePDF(string pdfFileName, bool openPDF,int DebugStatus)
|
||||
public string CreatePDF(string pdfFileName, bool openPDF, int DebugStatus)
|
||||
{
|
||||
pdfFileName = CreatePDF(pdfFileName, DebugStatus);
|
||||
if (openPDF) OpenPDF(pdfFileName);
|
||||
return pdfFileName;
|
||||
}
|
||||
static List<System.Diagnostics.Process> _AcrobatProcesses=new List<System.Diagnostics.Process>();
|
||||
private static void OpenPDF(string pdfFileName)
|
||||
{
|
||||
_AcrobatProcesses.Add(System.Diagnostics.Process.Start(pdfFileName));
|
||||
}
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
static List<System.Diagnostics.Process> _AcrobatProcesses = new List<System.Diagnostics.Process>();
|
||||
private static void OpenPDF(string pdfFileName) => _AcrobatProcesses.Add(System.Diagnostics.Process.Start(pdfFileName));
|
||||
public static void ClosePDFs()
|
||||
{
|
||||
foreach(System.Diagnostics.Process proc in _AcrobatProcesses)
|
||||
foreach (System.Diagnostics.Process proc in _AcrobatProcesses)
|
||||
if (!proc.HasExited)
|
||||
KillAndWait(proc);
|
||||
}
|
||||
@@ -206,7 +155,7 @@ namespace LBWordLibrary
|
||||
Application.DoEvents();
|
||||
}
|
||||
Console.WriteLine("{0:yyyy-MM-dd HH:mm:ss.ffff} {1:yyyy-MM-dd HH:mm:ss.ffff} {2}", DateTime.Now, proc.ExitTime
|
||||
,TimeSpan.FromTicks(proc.ExitTime.Ticks - tStart.Ticks).TotalMilliseconds);
|
||||
, TimeSpan.FromTicks(proc.ExitTime.Ticks - tStart.Ticks).TotalMilliseconds);
|
||||
}
|
||||
public string CreatePDF(string pdfFileName, int DebugStatus)
|
||||
{
|
||||
@@ -223,12 +172,7 @@ namespace LBWordLibrary
|
||||
_MyLog.WarnFormat("Using VolianPDFWriter - MSWord Version = '{0}'", Version);
|
||||
return CreatePDF2003BG(pdfFileName);
|
||||
}
|
||||
//else // Force PDF Export
|
||||
//{
|
||||
// _MyLog.WarnFormat("Force PDF Export for Michelle - MSWord Version = '{0}'", Version);
|
||||
// return CreatePDF2007(pdfFileName, DebugStatus);
|
||||
throw new Exception("No PDF Writer support installed for MS Word sections");
|
||||
//}
|
||||
}
|
||||
public string CreatePDF2003FG(string pdfFileName, bool openPDF)
|
||||
{
|
||||
@@ -299,12 +243,9 @@ namespace LBWordLibrary
|
||||
if (openPDF) OpenPDF(pdfFileName);
|
||||
return pdfFileName;
|
||||
}
|
||||
public string CreatePDF2007(string pdfFileName,int DebugStatus)
|
||||
public string CreatePDF2007(string pdfFileName, int DebugStatus)
|
||||
{
|
||||
pdfFileName = AvailableFileName(pdfFileName);
|
||||
// Removed to support MSWord 2010 and beyond.
|
||||
//if (!WordPDFExporterInstalled)
|
||||
// throw new Exception("MS Word PDF Exporter is not installed");
|
||||
try
|
||||
{
|
||||
ActiveDocument.ExportAsFixedFormat(pdfFileName, LBWdExportFormat.wdExportFormatPDF, DebugStatus);
|
||||
@@ -318,14 +259,8 @@ namespace LBWordLibrary
|
||||
}
|
||||
public partial class LBDocuments
|
||||
{
|
||||
public LBDocumentClass Open(string fileName, Boolean addToRecentFiles)
|
||||
{
|
||||
return Open(fileName, Missing.Value, Missing.Value, addToRecentFiles);
|
||||
}
|
||||
private LBDocumentClass Open(params object[] myParams)
|
||||
{
|
||||
return new LBDocumentClass(InvokeMethod("Open", myParams));
|
||||
}
|
||||
public LBDocumentClass Open(string fileName, bool addToRecentFiles) => Open(fileName, Missing.Value, Missing.Value, addToRecentFiles);
|
||||
private LBDocumentClass Open(params object[] myParams) => new LBDocumentClass(InvokeMethod("Open", myParams));
|
||||
}
|
||||
public partial class LBDocumentClass : LBComObject
|
||||
{
|
||||
@@ -345,10 +280,7 @@ namespace LBWordLibrary
|
||||
else
|
||||
SaveAs2000(fileName);
|
||||
}
|
||||
public void SaveAs2000(params object[] myParams)
|
||||
{
|
||||
InvokeMethod("SaveAs2000", myParams);
|
||||
}
|
||||
public void SaveAs2000(params object[] myParams) => InvokeMethod("SaveAs2000", myParams);
|
||||
public void SaveAs(string fileName)
|
||||
{
|
||||
if (fileName.ToUpper().EndsWith("DOC"))
|
||||
@@ -362,18 +294,9 @@ namespace LBWordLibrary
|
||||
else
|
||||
SaveAs2(fileName, Missing.Value, Missing.Value, Missing.Value, false);
|
||||
}
|
||||
public void SaveAs2(params object[] myParams)
|
||||
{
|
||||
InvokeMethod("SaveAs", myParams);
|
||||
}
|
||||
public void SaveAs(string fileName, LBWdSaveFormat format)
|
||||
{
|
||||
SaveAs2(fileName, format, Missing.Value, Missing.Value, false);
|
||||
}
|
||||
public LBRange Range(int Start, int End)
|
||||
{
|
||||
return new LBRange(InvokeMethod("Range", Start, End));
|
||||
}
|
||||
public void SaveAs2(params object[] myParams) => InvokeMethod("SaveAs", myParams);
|
||||
public void SaveAs(string fileName, LBWdSaveFormat format) => SaveAs2(fileName, format, Missing.Value, Missing.Value, false);
|
||||
public LBRange Range(int Start, int End) => new LBRange(InvokeMethod("Range", Start, End));
|
||||
/// <summary>
|
||||
/// Length is Pages and Partial Pages
|
||||
/// The integral part is the number of full pages
|
||||
@@ -393,11 +316,6 @@ namespace LBWordLibrary
|
||||
myRange = myRange.GoTo(LBWdGoToItem.wdGoToPercent, LBWdGoToDirection.wdGoToAbsolute, 0);
|
||||
float mytop = myRange.PageSetup.TopMargin;
|
||||
myRange = myRange.GoTo(LBWdGoToItem.wdGoToPercent, LBWdGoToDirection.wdGoToLast, 100);
|
||||
//float partial = (float) myRange.get_Information(LBWdInformation.wdVerticalPositionRelativeToTextBoundary);
|
||||
// B2018-028 Word 2016 has a different value for the Vertical Position Relative to the Text Boundary than older version of Word.
|
||||
// We now need to calculated the last row of text in the PROMS attachment differently.
|
||||
// We now subtract the TopMargin the Page Setup from the Vertical Position Relative to the Page
|
||||
// this works with older versions of MS Word as well.
|
||||
float partial = (float)myRange.get_Information(LBWdInformation.wdVerticalPositionRelativeToPage) - mytop;
|
||||
partial += myRange.Font.Size;
|
||||
retval += partial / 7200;
|
||||
@@ -414,7 +332,7 @@ namespace LBWordLibrary
|
||||
return ReplaceSymbolCharacters(GetRangeText(myRange));
|
||||
}
|
||||
}
|
||||
private static string[] SymbolFontName = { "VolianDraw", "WingDings", "VESymb", "VESymbFix", "Symbol" };
|
||||
private static readonly string[] SymbolFontName = { "VolianDraw", "WingDings", "VESymb", "VESymbFix", "Symbol" };
|
||||
private static bool IsSymbolFont(string fontName)
|
||||
{
|
||||
foreach (string symbolFont in SymbolFontName)
|
||||
@@ -436,7 +354,6 @@ namespace LBWordLibrary
|
||||
myRange.Start = 0;
|
||||
int end = myRange.End;
|
||||
string myText = GetRangeText(myRange);
|
||||
//return _RegFindSymbol.IsMatch(myText);
|
||||
MatchCollection problems = _RegFindSymbol.Matches(myText);
|
||||
int offset = 0;
|
||||
foreach (Match problem in problems)
|
||||
@@ -447,7 +364,6 @@ namespace LBWordLibrary
|
||||
if (IsSymbolFont(myRange.Font.Name))
|
||||
{
|
||||
Console.WriteLine("Font '{0}' has Symbols", myRange.Font.Name);
|
||||
//return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
@@ -456,7 +372,7 @@ namespace LBWordLibrary
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Regex _RegFindSymbol = new Regex("[\\uF020-\\uF07F]+");
|
||||
readonly Regex _RegFindSymbol = new Regex("[\\uF020-\\uF07F]+");
|
||||
|
||||
/// <summary>
|
||||
/// Get the Range Text with error handling. myRange.Text sometimes will get a null reference exception.
|
||||
@@ -465,7 +381,7 @@ namespace LBWordLibrary
|
||||
/// <returns></returns>
|
||||
internal static string GetRangeText(LBRange myRange)
|
||||
{
|
||||
string text="";
|
||||
string text = "";
|
||||
try
|
||||
{
|
||||
if (myRange.Start == myRange.End)// If Start and End equal return an empty string.
|
||||
@@ -534,10 +450,7 @@ namespace LBWordLibrary
|
||||
/// Close the document
|
||||
/// </summary>
|
||||
/// <param name="SaveChanges">Save Changes</param>
|
||||
public void Close(bool SaveChanges)
|
||||
{
|
||||
InvokeMethod("Close", SaveChanges, Missing.Value, Missing.Value);
|
||||
}
|
||||
public void Close(bool SaveChanges) => InvokeMethod("Close", SaveChanges, Missing.Value, Missing.Value);
|
||||
}
|
||||
public partial class LBFind
|
||||
{
|
||||
@@ -558,33 +471,15 @@ namespace LBWordLibrary
|
||||
}
|
||||
public partial class LBRange : LBComObject
|
||||
{
|
||||
public Object get_Information(LBWdInformation info)
|
||||
{
|
||||
return GetProperty("Information", info);
|
||||
}
|
||||
public LBRange GoTo(LBWdGoToItem What, LBWdGoToDirection Which, int Count)
|
||||
{
|
||||
return new LBRange(InvokeMethod("GoTo", What, Which, Count, Missing.Value));
|
||||
}
|
||||
public object get_Information(LBWdInformation info) => GetProperty("Information", info);
|
||||
public LBRange GoTo(LBWdGoToItem What, LBWdGoToDirection Which, int Count) => new LBRange(InvokeMethod("GoTo", What, Which, Count, Missing.Value));
|
||||
}
|
||||
public partial class LBSelection : LBComObject
|
||||
{
|
||||
public Object get_Information(LBWdInformation info)
|
||||
{
|
||||
return GetProperty("Information", info);
|
||||
}
|
||||
public int MoveStart(LBWdUnits Unit, int Count)
|
||||
{
|
||||
return InvokeMethod("MoveStart", Unit, Count) as int? ?? 0;
|
||||
}
|
||||
public int MoveEnd(LBWdUnits Unit, int Count)
|
||||
{
|
||||
return InvokeMethod("MoveEnd", Unit, Count) as int? ?? 0;
|
||||
}
|
||||
public int EndKey(LBWdUnits Unit, bool Extend)
|
||||
{
|
||||
return InvokeMethod("EndKey", Unit, Extend) as int? ?? 0;
|
||||
}
|
||||
public object get_Information(LBWdInformation info) => GetProperty("Information", info);
|
||||
public int MoveStart(LBWdUnits Unit, int Count) => InvokeMethod("MoveStart", Unit, Count) as int? ?? 0;
|
||||
public int MoveEnd(LBWdUnits Unit, int Count) => InvokeMethod("MoveEnd", Unit, Count) as int? ?? 0;
|
||||
public int EndKey(LBWdUnits Unit, bool Extend) => InvokeMethod("EndKey", Unit, Extend) as int? ?? 0;
|
||||
public bool LastWasUpper
|
||||
{
|
||||
get
|
||||
@@ -598,7 +493,7 @@ namespace LBWordLibrary
|
||||
string previous = LBDocumentClass.GetRangeText(myRange);
|
||||
if (Regex.IsMatch(previous, "[A-Z]")) return true;
|
||||
if (Regex.IsMatch(previous, "[a-z]")) return false;
|
||||
start = start - 1;
|
||||
start--;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -606,21 +501,12 @@ namespace LBWordLibrary
|
||||
}
|
||||
public partial class LBInlineShapes : LBComObjectList<LBInlineShapes, LBInlineShape> /* Collection */
|
||||
{
|
||||
public LBInlineShape AddPicture(string FileName, LBRange Range)
|
||||
{
|
||||
return new LBInlineShape(InvokeMethod("AddPicture", FileName, false, true, Range));
|
||||
}
|
||||
public LBInlineShape AddPicture(string FileName, LBRange Range) => new LBInlineShape(InvokeMethod("AddPicture", FileName, false, true, Range));
|
||||
}
|
||||
public partial class LBShapes : LBComObjectList<LBShapes, LBShape> /* Collection */
|
||||
{
|
||||
public LBShape AddPicture(string FileName, float Left, float Top, LBRange Anchor)
|
||||
{
|
||||
return new LBShape(InvokeMethod("AddPicture", FileName, false, true, Left, Top, Missing.Value, Missing.Value, Anchor));
|
||||
}
|
||||
public LBShape AddPicture(string FileName, float Left, float Top)
|
||||
{
|
||||
return new LBShape(InvokeMethod("AddPicture", FileName, false, true, Left, Top, Missing.Value, Missing.Value, Missing.Value));
|
||||
}
|
||||
public LBShape AddPicture(string FileName, float Left, float Top, LBRange Anchor) => new LBShape(InvokeMethod("AddPicture", FileName, false, true, Left, Top, Missing.Value, Missing.Value, Anchor));
|
||||
public LBShape AddPicture(string FileName, float Left, float Top) => new LBShape(InvokeMethod("AddPicture", FileName, false, true, Left, Top, Missing.Value, Missing.Value, Missing.Value));
|
||||
}
|
||||
public enum LBMsoTriState
|
||||
{
|
||||
@@ -630,25 +516,4 @@ namespace LBWordLibrary
|
||||
msoTriStateToggle = -3,
|
||||
msoTrue = -1
|
||||
}
|
||||
//public partial class ProcessKiller
|
||||
//{
|
||||
// System.Diagnostics.Process _MyProcess;
|
||||
// private bool _Exited = false;
|
||||
// public ProcessKiller(System.Diagnostics.Process myProcess)
|
||||
// {
|
||||
// _MyProcess = myProcess;
|
||||
// _MyProcess.Exited += new EventHandler(_MyProcess_Exited);
|
||||
// _MyProcess.Kill();
|
||||
// DateTime next = DateTime.Now.AddMilliseconds(200);
|
||||
// while (DateTime.Now < next)
|
||||
// Application.DoEvents();
|
||||
// while (!_Exited)
|
||||
// Application.DoEvents();
|
||||
// }
|
||||
// void _MyProcess_Exited(object sender, EventArgs e)
|
||||
// {
|
||||
// Console.WriteLine("Exited");
|
||||
// _Exited = true;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
<Compile Include="LBComObject.cs" />
|
||||
<Compile Include="LBObjectExtension.cs" />
|
||||
<Compile Include="OutlookLBComObject.cs" />
|
||||
|
||||
@@ -1,28 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Reflection;
|
||||
|
||||
namespace LBOutlookLibrary
|
||||
{
|
||||
public abstract partial class LBComObject
|
||||
{
|
||||
private Object _Item;
|
||||
internal Object Item
|
||||
private object _Item;
|
||||
internal object Item
|
||||
{
|
||||
get { return _Item; }
|
||||
set
|
||||
{
|
||||
_Item = value;
|
||||
if (value != null) _MyType = _Item.GetType();
|
||||
if (value != null) MyType = _Item.GetType();
|
||||
}
|
||||
}
|
||||
private Type _MyType;
|
||||
public Type MyType
|
||||
{
|
||||
get { return _MyType; }
|
||||
set { _MyType = value; }
|
||||
}
|
||||
|
||||
public Type MyType { get; set; }
|
||||
protected LBComObject() { }
|
||||
protected LBComObject(string ProgID)
|
||||
{
|
||||
@@ -30,35 +24,22 @@ namespace LBOutlookLibrary
|
||||
objClassType = Type.GetTypeFromProgID(ProgID);
|
||||
Item = Activator.CreateInstance(objClassType);
|
||||
}
|
||||
protected LBComObject(Object item)
|
||||
{
|
||||
Item = item;
|
||||
}
|
||||
private Object DoInvokeMember(string name, Object[] parameters, BindingFlags bf, Binder b)
|
||||
protected LBComObject(object item) => Item = item;
|
||||
private object DoInvokeMember(string name, object[] parameters, BindingFlags bf, Binder b)
|
||||
{
|
||||
try
|
||||
{
|
||||
return _MyType.InvokeMember(name, bf, b, _Item, parameters);
|
||||
return MyType.InvokeMember(name, bf, b, _Item, parameters);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception(string.Format("LBComObject.DoInvokeMember {0}.{1}", _MyType.Name, name), ex);
|
||||
throw new Exception(string.Format("LBComObject.DoInvokeMember {0}.{1}", MyType.Name, name), ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
protected void SetProperty(string propertyName, params Object[] parameters)
|
||||
{
|
||||
DoInvokeMember(propertyName, parameters, BindingFlags.SetProperty, null);
|
||||
}
|
||||
protected Object GetProperty(string propertyName)
|
||||
{
|
||||
return DoInvokeMember(propertyName, null, BindingFlags.GetProperty, null);
|
||||
}
|
||||
protected Object GetProperty(string propertyName, params Object[] parameters)
|
||||
{
|
||||
return DoInvokeMember(propertyName, parameters, BindingFlags.GetProperty, null);
|
||||
}
|
||||
protected Object InvokeMethod(string methodName, params Object[] parameters)
|
||||
protected void SetProperty(string propertyName, params object[] parameters) => DoInvokeMember(propertyName, parameters, BindingFlags.SetProperty, null);
|
||||
protected object GetProperty(string propertyName) => DoInvokeMember(propertyName, null, BindingFlags.GetProperty, null);
|
||||
protected object GetProperty(string propertyName, params object[] parameters) => DoInvokeMember(propertyName, parameters, BindingFlags.GetProperty, null);
|
||||
protected object InvokeMethod(string methodName, params object[] parameters)
|
||||
{
|
||||
if (parameters != null)
|
||||
FixParameters(parameters);
|
||||
@@ -71,44 +52,14 @@ namespace LBOutlookLibrary
|
||||
if (parameters[i] is LBComObject)
|
||||
parameters[i] = (parameters[i] as LBComObject).Item;
|
||||
}
|
||||
protected Object InvokeMethod(string methodName)
|
||||
{
|
||||
return InvokeMethod(methodName, null);
|
||||
}
|
||||
}
|
||||
public class LBComObjectList<TList, TItem> : LBComObject
|
||||
where TList : LBComObjectList<TList, TItem>
|
||||
where TItem : LBComObject, new()
|
||||
{
|
||||
//public new(Object item):base(item){}
|
||||
public TItem Add()
|
||||
{
|
||||
TItem tmp = new TItem();
|
||||
tmp.Item = InvokeMethod("Add");
|
||||
return tmp;
|
||||
}
|
||||
//public TItem this[int item]
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// TItem tmp = new TItem();
|
||||
// tmp.Item = GetProperty("Item", item);
|
||||
// return tmp;
|
||||
// }
|
||||
//}
|
||||
protected object InvokeMethod(string methodName) => InvokeMethod(methodName, null);
|
||||
}
|
||||
public partial class LBApplicationClass : LBComObject
|
||||
{
|
||||
public LBApplicationClass() : base("Outlook.Application") { }
|
||||
public LBApplicationClass(Object item) : base(item) { }
|
||||
public System.Object CreateItem(LBOlItemType ItemType)
|
||||
{
|
||||
return InvokeMethod("CreateItem", ItemType);
|
||||
}
|
||||
public void Quit()
|
||||
{
|
||||
InvokeMethod("Quit");
|
||||
}
|
||||
public LBApplicationClass(object item) : base(item) { }
|
||||
public object CreateItem(LBOlItemType ItemType) => InvokeMethod("CreateItem", ItemType);
|
||||
public void Quit() => InvokeMethod("Quit");
|
||||
}
|
||||
public enum LBOlItemType
|
||||
{
|
||||
@@ -124,13 +75,13 @@ namespace LBOutlookLibrary
|
||||
public partial class LBMailItem : LBComObject
|
||||
{
|
||||
public LBMailItem() { }
|
||||
public LBMailItem(Object item) : base(item) { }
|
||||
public LBMailItem(object item) : base(item) { }
|
||||
}
|
||||
public partial class LBMailItemClass : LBComObject
|
||||
{
|
||||
public LBMailItemClass() { }
|
||||
public LBMailItemClass(Object item) : base(item) { }
|
||||
public String Body
|
||||
public LBMailItemClass(object item) : base(item) { }
|
||||
public string Body
|
||||
{
|
||||
get { return (GetProperty("Body").ToString()); }
|
||||
set { SetProperty("Body", value); }
|
||||
@@ -140,28 +91,19 @@ namespace LBOutlookLibrary
|
||||
get { return (LBOlBodyFormat)GetProperty("BodyFormat"); }
|
||||
set { SetProperty("BodyFormat", value); }
|
||||
}
|
||||
public LBAttachments Attachments
|
||||
{
|
||||
get { return new LBAttachments(GetProperty("Attachments")); }
|
||||
}
|
||||
public String Subject
|
||||
public LBAttachments Attachments => new LBAttachments(GetProperty("Attachments"));
|
||||
public string Subject
|
||||
{
|
||||
get { return (GetProperty("Subject").ToString()); }
|
||||
set { SetProperty("Subject", value); }
|
||||
}
|
||||
public LBRecipients Recipients
|
||||
{
|
||||
get { return new LBRecipients(GetProperty("Recipients")); }
|
||||
}
|
||||
public String To
|
||||
public LBRecipients Recipients => new LBRecipients(GetProperty("Recipients"));
|
||||
public string To
|
||||
{
|
||||
get { return (GetProperty("To").ToString()); }
|
||||
set { SetProperty("To", value); }
|
||||
}
|
||||
public void Send()
|
||||
{
|
||||
InvokeMethod("Send");
|
||||
}
|
||||
public void Send() => InvokeMethod("Send");
|
||||
}
|
||||
public enum LBOlBodyFormat
|
||||
{
|
||||
@@ -173,78 +115,39 @@ namespace LBOutlookLibrary
|
||||
public partial class LBAttachments : LBComObject
|
||||
{
|
||||
public LBAttachments() { }
|
||||
public LBAttachments(Object item) : base(item) { }
|
||||
public int Count
|
||||
{
|
||||
get { return (GetProperty("Count") as int? ?? 0); }
|
||||
}
|
||||
public LBAttachment Item
|
||||
{
|
||||
get { return new LBAttachment(GetProperty("Item")); }
|
||||
}
|
||||
public LBAttachment Add(object Source)
|
||||
{
|
||||
return new LBAttachment(InvokeMethod("Add", Source, Missing.Value, Missing.Value, Missing.Value));
|
||||
}
|
||||
public LBAttachments(object item) : base(item) { }
|
||||
public int Count => (GetProperty("Count") as int? ?? 0);
|
||||
public new LBAttachment Item => new LBAttachment(GetProperty("Item"));
|
||||
public LBAttachment Add(object Source) => new LBAttachment(InvokeMethod("Add", Source, Missing.Value, Missing.Value, Missing.Value));
|
||||
public LBAttachment Add(object Source, object Type, object Position, object DisplayName)
|
||||
{
|
||||
return new LBAttachment(InvokeMethod("Add", Source, Type, Position, DisplayName));
|
||||
}
|
||||
public void Remove(int Index)
|
||||
{
|
||||
InvokeMethod("Remove", Index);
|
||||
}
|
||||
public void Remove(int Index) => InvokeMethod("Remove", Index);
|
||||
}
|
||||
public partial class LBRecipients : LBComObject
|
||||
{
|
||||
public LBRecipients() { }
|
||||
public LBRecipients(Object item) : base(item) { }
|
||||
public int Count
|
||||
{
|
||||
get { return (GetProperty("Count") as int? ?? 0); }
|
||||
}
|
||||
public LBRecipient Item
|
||||
{
|
||||
get { return new LBRecipient(GetProperty("Item")); }
|
||||
}
|
||||
public LBRecipient Add(string Name)
|
||||
{
|
||||
return new LBRecipient(InvokeMethod("Add", Name));
|
||||
}
|
||||
public void Remove(int Index)
|
||||
{
|
||||
InvokeMethod("Remove", Index);
|
||||
}
|
||||
public Boolean ResolveAll()
|
||||
{
|
||||
return InvokeMethod("ResolveAll") as Boolean? ?? false;
|
||||
}
|
||||
public LBRecipients(object item) : base(item) { }
|
||||
public int Count => (GetProperty("Count") as int? ?? 0);
|
||||
public new LBRecipient Item => new LBRecipient(GetProperty("Item"));
|
||||
public LBRecipient Add(string Name) => new LBRecipient(InvokeMethod("Add", Name));
|
||||
public void Remove(int Index) => InvokeMethod("Remove", Index);
|
||||
public bool ResolveAll() => InvokeMethod("ResolveAll") as bool? ?? false;
|
||||
}
|
||||
public partial class LBAttachment : LBComObject
|
||||
{
|
||||
public LBAttachment() { }
|
||||
public LBAttachment(Object item) : base(item) { }
|
||||
public LBOlAttachmentType Type
|
||||
{
|
||||
get { return (LBOlAttachmentType)GetProperty("Type"); }
|
||||
}
|
||||
public LBAttachment(object item) : base(item) { }
|
||||
public LBOlAttachmentType Type => (LBOlAttachmentType)GetProperty("Type");
|
||||
}
|
||||
public partial class LBRecipient : LBComObject
|
||||
{
|
||||
public LBRecipient() { }
|
||||
public LBRecipient(Object item) : base(item) { }
|
||||
public String Address
|
||||
{
|
||||
get { return (GetProperty("Address").ToString()); }
|
||||
}
|
||||
public String Name
|
||||
{
|
||||
get { return (GetProperty("Name").ToString()); }
|
||||
}
|
||||
public Boolean Resolve()
|
||||
{
|
||||
return InvokeMethod("Resolve") as Boolean? ?? false;
|
||||
}
|
||||
public LBRecipient(object item) : base(item) { }
|
||||
public string Address => (GetProperty("Address").ToString());
|
||||
public string Name => (GetProperty("Name").ToString());
|
||||
public bool Resolve() => InvokeMethod("Resolve") as bool? ?? false;
|
||||
}
|
||||
public enum LBOlAttachmentType
|
||||
{
|
||||
|
||||
@@ -1,21 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LBOutlookLibrary
|
||||
{
|
||||
public partial class LBApplicationClass
|
||||
{
|
||||
public LBMailItemClass CreateMailItem()
|
||||
{
|
||||
return new LBMailItemClass(CreateItem(LBOlItemType.olMailItem));
|
||||
}
|
||||
public LBMailItemClass CreateMailItem() => new LBMailItemClass(CreateItem(LBOlItemType.olMailItem));
|
||||
}
|
||||
public partial class LBMailItemClass
|
||||
{
|
||||
public void AddAttachment(string filename)
|
||||
{
|
||||
Attachments.Add(filename, LBOlAttachmentType.olByValue, Type.Missing, Type.Missing);
|
||||
}
|
||||
public void AddAttachment(string filename) => Attachments.Add(filename, LBOlAttachmentType.olByValue, Type.Missing, Type.Missing);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,15 +53,9 @@ namespace Read64bitRegistryFrom32bitApp
|
||||
#endregion
|
||||
|
||||
#region Functions
|
||||
static public string GetRegKey64Value(UIntPtr inHive, String inKeyName, String inPropertyName)
|
||||
{
|
||||
return GetRegKey64Value(inHive, inKeyName, RegSAM.WOW64_64Key, inPropertyName);
|
||||
}
|
||||
static public string GetRegKey32Value(UIntPtr inHive, String inKeyName, String inPropertyName)
|
||||
{
|
||||
return GetRegKey64Value(inHive, inKeyName, RegSAM.WOW64_32Key, inPropertyName);
|
||||
}
|
||||
static public string GetRegKey64Value(UIntPtr inHive, String inKeyName, RegSAM in32or64key, String inPropertyName)
|
||||
static public string GetRegKey64Value(UIntPtr inHive, string inKeyName, string inPropertyName) => GetRegKey64Value(inHive, inKeyName, RegSAM.WOW64_64Key, inPropertyName);
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "inHive kept to match dll signature")]
|
||||
static public string GetRegKey64Value(UIntPtr inHive, string inKeyName, RegSAM in32or64key, string inPropertyName)
|
||||
{
|
||||
int hkey = 0;
|
||||
try
|
||||
@@ -80,15 +74,10 @@ namespace Read64bitRegistryFrom32bitApp
|
||||
if (0 != hkey) RegCloseKey(hkey);
|
||||
}
|
||||
}
|
||||
static public bool CheckRegKey64Valid(UIntPtr inHive, String inKeyName)
|
||||
{
|
||||
return CheckRegKey64Valid(inHive, inKeyName, RegSAM.WOW64_64Key);
|
||||
}
|
||||
static public bool GetRegKey32Valid(UIntPtr inHive, String inKeyName)
|
||||
{
|
||||
return CheckRegKey64Valid(inHive, inKeyName, RegSAM.WOW64_32Key);
|
||||
}
|
||||
static public bool CheckRegKey64Valid(UIntPtr inHive, String inKeyName, RegSAM in32or64key)
|
||||
static public bool CheckRegKey64Valid(UIntPtr inHive, string inKeyName) => CheckRegKey64Valid(inHive, inKeyName, RegSAM.WOW64_64Key);
|
||||
static public bool GetRegKey32Valid(UIntPtr inHive, string inKeyName) => CheckRegKey64Valid(inHive, inKeyName, RegSAM.WOW64_32Key);
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "inHive kept to match dll signature")]
|
||||
static public bool CheckRegKey64Valid(UIntPtr inHive, string inKeyName, RegSAM in32or64key)
|
||||
{
|
||||
int hkey = 0;
|
||||
try
|
||||
@@ -103,8 +92,5 @@ namespace Read64bitRegistryFrom32bitApp
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Enums
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -19,11 +19,6 @@
|
||||
*********************************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
//using ROProfiler; //don't forget to add VlnProfiler to the reference list
|
||||
|
||||
namespace VlnStatus
|
||||
{
|
||||
@@ -35,11 +30,6 @@ namespace VlnStatus
|
||||
private System.Windows.Forms.ProgressBar progressBar1;
|
||||
private System.Windows.Forms.Label lblBar;
|
||||
private System.Windows.Forms.Label StatMsg;
|
||||
// private string strLblLast="";
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
public StatusBarFrm()
|
||||
{
|
||||
@@ -61,21 +51,6 @@ namespace VlnStatus
|
||||
Text = StatusBoxTitle;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if(components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
@@ -190,14 +165,6 @@ namespace VlnStatus
|
||||
{
|
||||
lblBar.Text = (Math.Round((decimal)(progressBar1.Value * 100) / progressBar1.Maximum)).ToString();
|
||||
lblBar.Text += "% Complete";
|
||||
// if( lblBar.Text != strLblLast)
|
||||
// {
|
||||
// Profiler.Start("UpdateLabel");
|
||||
lblBar.Refresh();
|
||||
// lblBar.Update();
|
||||
// Profiler.End("UpdateLabel");
|
||||
// }
|
||||
// strLblLast = lblBar.Text;
|
||||
}
|
||||
|
||||
public string StatusMessage
|
||||
@@ -209,10 +176,7 @@ namespace VlnStatus
|
||||
set
|
||||
{
|
||||
StatMsg.Text = value;
|
||||
// Profiler.Start("StatusMessage");
|
||||
StatMsg.Refresh();
|
||||
// StatMsg.Update();
|
||||
// Profiler.End("StatusMessage");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,12 +17,6 @@
|
||||
* Added overbounds check
|
||||
*********************************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VlnStatus
|
||||
{
|
||||
/// <summary>
|
||||
@@ -31,10 +25,6 @@ namespace VlnStatus
|
||||
public class StatusMessageFrm : System.Windows.Forms.Form
|
||||
{
|
||||
private System.Windows.Forms.Label lblStatMsg;
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
public StatusMessageFrm()
|
||||
{
|
||||
@@ -54,21 +44,6 @@ namespace VlnStatus
|
||||
Text = StatTitle;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if(components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace VlnStatus
|
||||
/// </summary>
|
||||
public class VlnStatusBar
|
||||
{
|
||||
StatusBarFrm StatBar;
|
||||
readonly StatusBarFrm StatBar;
|
||||
private int Cnt;
|
||||
|
||||
// Create a status window with the default title of "Status"
|
||||
@@ -53,8 +53,6 @@ namespace VlnStatus
|
||||
// Increament the the status bar by the passed in value.
|
||||
public void PerformStep(int val)
|
||||
{
|
||||
// StatBar.Value = val;
|
||||
// Cnt = val;
|
||||
BarValue = val;
|
||||
StatBar.PerformStep();
|
||||
}
|
||||
@@ -62,7 +60,6 @@ namespace VlnStatus
|
||||
// Increament the the status bar by one
|
||||
public void PerformStep()
|
||||
{
|
||||
// StatBar.Value = StatBar.Value + 1;
|
||||
Cnt++;
|
||||
BarValue = Cnt;
|
||||
StatBar.PerformStep();
|
||||
|
||||
@@ -13,8 +13,6 @@
|
||||
* Added overbounds check
|
||||
*********************************************************************************************/
|
||||
|
||||
using System;
|
||||
|
||||
namespace VlnStatus
|
||||
{
|
||||
/// <summary>
|
||||
@@ -28,7 +26,7 @@ namespace VlnStatus
|
||||
/// </summary>
|
||||
public class VlnStatusMessage
|
||||
{
|
||||
StatusMessageFrm StatusMessageBox;
|
||||
readonly StatusMessageFrm StatusMessageBox;
|
||||
|
||||
// Create a status window with the default title of "Status"
|
||||
public VlnStatusMessage()
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// This file is used by Code Analysis to maintain SuppressMessage
|
||||
// attributes that are applied to this project.
|
||||
// Project-level suppressions either have no target or are given
|
||||
// a specific target and scoped to a namespace, type, member, etc.
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
[assembly: SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Not modifying Naming Styles")]
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RoAccessToSql
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Data.SqlClient;
|
||||
using System.Data.OleDb;
|
||||
using Volian.Base.Library;
|
||||
|
||||
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
|
||||
|
||||
@@ -33,25 +27,11 @@ namespace RoAccessToSql
|
||||
public partial class RoAccessToSql : Form
|
||||
{
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private string _MSAccessPath = null;
|
||||
public string MSAccessPath
|
||||
{
|
||||
get { return _MSAccessPath; }
|
||||
set { _MSAccessPath = value; }
|
||||
}
|
||||
private string _SqlServerName = null;
|
||||
public string SqlServerName
|
||||
{
|
||||
get { return _SqlServerName; }
|
||||
set { _SqlServerName = value; }
|
||||
}
|
||||
private string _SqlDatabaseName = null;
|
||||
public string SqlDatabaseName
|
||||
{
|
||||
get { return _SqlDatabaseName; }
|
||||
set { _SqlDatabaseName = value; }
|
||||
}
|
||||
bool _Initializing = false;
|
||||
|
||||
public string MSAccessPath { get; set; } = null;
|
||||
public string SqlServerName { get; set; } = null;
|
||||
public string SqlDatabaseName { get; set; } = null;
|
||||
readonly bool _Initializing = false;
|
||||
|
||||
public RoAccessToSql(string[] args)
|
||||
{
|
||||
@@ -66,7 +46,7 @@ namespace RoAccessToSql
|
||||
}
|
||||
else if (parm.StartsWith("/sqldb="))
|
||||
{
|
||||
SqlDatabaseName = parm.Substring(7) + "_RO";
|
||||
SqlDatabaseName = $"{parm.Substring(7)}_RO";
|
||||
}
|
||||
else if (parm.StartsWith("/server="))
|
||||
{
|
||||
@@ -92,7 +72,7 @@ namespace RoAccessToSql
|
||||
if (UserInRoEditor()) this.Close();
|
||||
tbSqlDbName.Text = SqlDatabaseName;
|
||||
_TmpFileForConnectStr = Path.GetTempPath();
|
||||
_TmpFileForConnectStr = _TmpFileForConnectStr + @"\PromsConnect.txt";
|
||||
_TmpFileForConnectStr += @"\PromsConnect.txt";
|
||||
File.Delete(_TmpFileForConnectStr);
|
||||
_Initializing = false;
|
||||
}
|
||||
@@ -100,7 +80,7 @@ namespace RoAccessToSql
|
||||
private bool UserInRoEditor()
|
||||
{
|
||||
FileInfo fiown = null;
|
||||
FileStream fsown = null;
|
||||
FileStream fsown;
|
||||
// The following code was taken from the roeditor. It uses the 'RoEditor.own' file to assure that
|
||||
// no one is in the roeditor. This file is located in the microsoft access database directory.
|
||||
try
|
||||
@@ -119,7 +99,7 @@ namespace RoAccessToSql
|
||||
fsown = fiown.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||
TextReader tr1 = new StreamReader(fsown);
|
||||
string who1 = tr1.ReadToEnd();
|
||||
MessageBox.Show(ex.Message + "\r\n\r\n" + who1, "RO Editor In Use", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
MessageBox.Show($"{ex.Message}\r\n\r\n{who1}", "RO Editor In Use", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
}
|
||||
fsown = fiown.Open(FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite);
|
||||
TextReader tr = new StreamReader(fsown);
|
||||
@@ -142,7 +122,7 @@ namespace RoAccessToSql
|
||||
tw.WriteLine("Current User: {0}, Date and Time Started: {1}", Environment.UserName.ToUpper(), DateTime.Now.ToString("MM/dd/yyyy @ hh:mm"));
|
||||
tw.Flush();
|
||||
}
|
||||
catch (IOException ex)
|
||||
catch (IOException)
|
||||
{
|
||||
fsown = fiown.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||
TextReader tr = new StreamReader(fsown);
|
||||
@@ -154,12 +134,8 @@ namespace RoAccessToSql
|
||||
}
|
||||
return false;
|
||||
}
|
||||
static string _ErrorLogFileName;
|
||||
public static string ErrorLogFileName
|
||||
{
|
||||
get { return _ErrorLogFileName; }
|
||||
set { _ErrorLogFileName = value; }
|
||||
}
|
||||
|
||||
public static string ErrorLogFileName { get; set; }
|
||||
// make error log file name (uses same logic as proms error log)
|
||||
static bool ChangeLogFileName(string AppenderName, string NewFilename)
|
||||
{
|
||||
@@ -168,11 +144,10 @@ namespace RoAccessToSql
|
||||
foreach (log4net.Appender.IAppender iApp in RootRep.GetAppenders())
|
||||
{
|
||||
if (iApp.Name.CompareTo(AppenderName) == 0
|
||||
&& iApp is log4net.Appender.FileAppender)
|
||||
&& iApp is log4net.Appender.FileAppender fApp)
|
||||
{
|
||||
log4net.Appender.FileAppender fApp = (log4net.Appender.FileAppender)iApp;
|
||||
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
||||
fApp.File = folderPath + @"\VEPROMS\" + (Volian.Base.Library.VlnSettings.GetCommand("prefix", "") + "_").TrimStart("_".ToCharArray()) + NewFilename;
|
||||
fApp.File = $@"{folderPath}\VEPROMS\{($"{Volian.Base.Library.VlnSettings.GetCommand("prefix", "")}_").TrimStart("_".ToCharArray())}{NewFilename}";
|
||||
ErrorLogFileName = fApp.File;
|
||||
fApp.ActivateOptions();
|
||||
return true;
|
||||
@@ -189,7 +164,7 @@ namespace RoAccessToSql
|
||||
if (Directory.Exists(fbd.SelectedPath))
|
||||
tbAccessPath.Text = fbd.SelectedPath;
|
||||
else
|
||||
MessageBox.Show("Path doesn't exist " + tbAccessPath.Text);
|
||||
MessageBox.Show($"Path doesn't exist {tbAccessPath.Text}");
|
||||
}
|
||||
}
|
||||
// Convert the data
|
||||
@@ -212,7 +187,7 @@ namespace RoAccessToSql
|
||||
{
|
||||
DateTime dtSunday = DateTime.Now.AddDays(-((int)DateTime.Now.DayOfWeek));
|
||||
|
||||
ChangeLogFileName("LogFileAppender", SqlDatabaseName + " " + dtSunday.ToString("yyyyMMdd") + " ErrorLog.txt");
|
||||
ChangeLogFileName("LogFileAppender", $"{SqlDatabaseName} {dtSunday:yyyyMMdd} ErrorLog.txt");
|
||||
_MyLog.InfoFormat("\r\nSession Beginning\r\n<===={0}[SQL:{1:yyMM.ddHH}]====== User: {2}/{3} Started {4} ===============>{5}"
|
||||
, Application.ProductVersion, RevDate, DateTime.Now, Environment.UserDomainName, Environment.UserName, DateTime.Now.ToString("dddd MMMM d, yyyy h:mm:ss tt"), "");
|
||||
}
|
||||
@@ -229,7 +204,7 @@ namespace RoAccessToSql
|
||||
if (sqlConnection.State == ConnectionState.Open)
|
||||
{
|
||||
// now try to open access db:
|
||||
string strDatabaseConnectionCommand = "Provider=Microsoft.ACE.OLEDB.12.0;Password=\"\";User ID=Admin;Data Source=" + MSAccessPath + "\\ROMaster.mdb;Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False";
|
||||
string strDatabaseConnectionCommand = $"Provider=Microsoft.ACE.OLEDB.12.0;Password=\"\";User ID=Admin;Data Source={MSAccessPath}\\ROMaster.mdb;Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False";
|
||||
using (OleDbConnection accessConnection = new OleDbConnection(strDatabaseConnectionCommand))
|
||||
{
|
||||
try
|
||||
@@ -251,13 +226,13 @@ namespace RoAccessToSql
|
||||
}
|
||||
else
|
||||
{
|
||||
_MyLog.Error("SQL Connection is not open. Check connection string: " + tbSqlDbName.Text);
|
||||
MessageBox.Show("Check connection string: " + tbSqlDbName.Text, "SQL Connection is not open.");
|
||||
_MyLog.Error($"SQL Connection is not open. Check connection string: {tbSqlDbName.Text}");
|
||||
MessageBox.Show($"Check connection string: {tbSqlDbName.Text}", "SQL Connection is not open.");
|
||||
}
|
||||
}
|
||||
catch (SqlException ex)
|
||||
{
|
||||
_MyLog.Error("SQL Connection is not open. Check connection string: " + tbSqlDbName.Text);
|
||||
_MyLog.Error($"SQL Connection is not open. Check connection string: {tbSqlDbName.Text}");
|
||||
MessageBox.Show(ex.Message, "Unknown error when migrating RO data from MS Access to SQL");
|
||||
}
|
||||
}
|
||||
@@ -274,9 +249,8 @@ namespace RoAccessToSql
|
||||
lastTimeDbs = ProgressBarUpdate(pBarDbs, null, 0, 1, 0, 0, lastTimeDbs, false);
|
||||
lastTimeRos = ProgressBarUpdate(pBarROs, null, 0, maxCntRo, 0, 0, lastTimeRos, false);
|
||||
lastTimeDbs = ProgressBarUpdate(pBarDbs, "ROMaster Table", 0, 5, 0, 1, lastTimeDbs, false);
|
||||
OleDbDataReader reader = null;
|
||||
OleDbCommand command = new OleDbCommand("select * from ROMaster", accessConnection);
|
||||
reader = command.ExecuteReader();
|
||||
OleDbDataReader reader = command.ExecuteReader();
|
||||
// Do access's romaster table first so that the list of other tables to process is found. While doing this, migrate this table's data.
|
||||
int cntRo = 0;
|
||||
int cntDb = 0;
|
||||
@@ -303,10 +277,9 @@ namespace RoAccessToSql
|
||||
maxCntDb++;
|
||||
}
|
||||
}
|
||||
lastTimeRos = ProgressBarUpdate(pBarROs, "ROMaster", 0, maxCntRo, maxCntRo, 1, lastTimeRos, true);
|
||||
ProgressBarUpdate(pBarROs, "ROMaster", 0, maxCntRo, maxCntRo, 1, lastTimeRos, true);
|
||||
lastTimeDbs = ProgressBarUpdate(pBarDbs, null, 0, maxCntDb, 0, 0, lastTimeDbs, false);
|
||||
reader.Close();
|
||||
reader = null;
|
||||
|
||||
// now migrate all the tables that were found
|
||||
foreach (string tableName in allTables)
|
||||
@@ -318,7 +291,7 @@ namespace RoAccessToSql
|
||||
lastTimeRos = ProgressBarUpdate(pBarROs, null, 0, maxCntRo, 0, 0, lastTimeRos, true);
|
||||
lastTimeDbs = ProgressBarUpdate(pBarDbs, allTablesText[cntDb], 0, maxCntDb, cntDb, 1, lastTimeDbs, false);
|
||||
command = null;
|
||||
command = new OleDbCommand("select * from " + tableName, accessConnection);
|
||||
command = new OleDbCommand($"select * from {tableName}", accessConnection);
|
||||
reader = command.ExecuteReader();
|
||||
while (reader.Read()) // read all of the records from the current access table
|
||||
{
|
||||
@@ -338,7 +311,7 @@ namespace RoAccessToSql
|
||||
reader = null;
|
||||
lastTimeRos = ProgressBarUpdate(pBarROs, tableName, 0, maxCntRo, maxCntRo, 1, lastTimeRos, false);
|
||||
}
|
||||
lastTimeDbs = ProgressBarUpdate(pBarDbs, allTablesText[maxCntDb - 1], 0, maxCntDb, maxCntDb, 1, lastTimeDbs, false);
|
||||
ProgressBarUpdate(pBarDbs, allTablesText[maxCntDb - 1], 0, maxCntDb, maxCntDb, 1, lastTimeDbs, false);
|
||||
pBarDbs.Text = "Referenced Object Tables Migration Completed";
|
||||
pBarROs.Text = "Referenced Objects Migration Completed";
|
||||
btnConvert.Enabled = false;
|
||||
@@ -357,7 +330,7 @@ namespace RoAccessToSql
|
||||
string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now);
|
||||
string strInsert = "INSERT INTO ROMaster (RecID, RecType, ModDateTime, Info) ";
|
||||
// note that '8' for rectype flags database converted:
|
||||
strInsert = strInsert + " VALUES ('09999999', 8, '" + dt + "', '" + _SqlConnectStr + "');";
|
||||
strInsert = $"{strInsert} VALUES ('09999999', 8, '{dt}', '{_SqlConnectStr}');";
|
||||
OleDbCommand command = new OleDbCommand(strInsert, accessConnection);
|
||||
reader = command.ExecuteReader();
|
||||
if (reader.Read()) return;
|
||||
@@ -367,7 +340,7 @@ namespace RoAccessToSql
|
||||
MessageBox.Show(e.Message, "Error on insert to flag migration completed");
|
||||
}
|
||||
}
|
||||
private string _TmpFileForConnectStr = null;
|
||||
private readonly string _TmpFileForConnectStr = null;
|
||||
private void WriteSqlPathToTempFile()
|
||||
{
|
||||
System.IO.File.WriteAllText(_TmpFileForConnectStr, _SqlConnectStr);
|
||||
@@ -375,12 +348,11 @@ namespace RoAccessToSql
|
||||
// the following is used to update the progress bars, it finds how many records are in a table.
|
||||
private int GetRecordCountForTable(string tableName, OleDbConnection accessConnection)
|
||||
{
|
||||
OleDbDataReader reader = null;
|
||||
int retcnt = 100;
|
||||
try
|
||||
{
|
||||
OleDbCommand command = new OleDbCommand("SELECT COUNT (RecID) as cnt FROM " + tableName, accessConnection);
|
||||
reader = command.ExecuteReader();
|
||||
OleDbCommand command = new OleDbCommand($"SELECT COUNT (RecID) as cnt FROM {tableName}", accessConnection);
|
||||
OleDbDataReader reader = command.ExecuteReader();
|
||||
if (reader.Read())
|
||||
{
|
||||
retcnt = reader.GetInt32(0);
|
||||
@@ -393,6 +365,7 @@ namespace RoAccessToSql
|
||||
}
|
||||
return retcnt;
|
||||
}
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Keeping min for Debugging")]
|
||||
DateTime ProgressBarUpdate(DevComponents.DotNetBar.Controls.ProgressBarX pbi, string msg, int min, int max, int progress, int flag, DateTime lastUpdateDisplay, bool doTimeCheck)
|
||||
{
|
||||
if (flag == 0) // setup
|
||||
@@ -412,10 +385,12 @@ namespace RoAccessToSql
|
||||
{
|
||||
try
|
||||
{
|
||||
SqlCommand command = new SqlCommand();
|
||||
command.Connection = sqlConnection;
|
||||
command.CommandType = CommandType.StoredProcedure;
|
||||
command.CommandText = "insertAllRectypes";
|
||||
SqlCommand command = new SqlCommand
|
||||
{
|
||||
Connection = sqlConnection,
|
||||
CommandType = CommandType.StoredProcedure,
|
||||
CommandText = "insertAllRectypes"
|
||||
};
|
||||
command.Parameters.AddWithValue("@RecType", RecType);
|
||||
if (AccPageID == null || AccPageID == "")
|
||||
command.Parameters.AddWithValue("@AccPageID", string.Empty);
|
||||
@@ -428,7 +403,6 @@ namespace RoAccessToSql
|
||||
command.Parameters.AddWithValue("@ModDateTime", ModDateTime);
|
||||
using (SqlDataReader reader = command.ExecuteReader())
|
||||
{
|
||||
bool success = true;
|
||||
}
|
||||
command = null;
|
||||
}
|
||||
@@ -438,29 +412,12 @@ namespace RoAccessToSql
|
||||
_MyLog.Error(msg, ex);
|
||||
}
|
||||
}
|
||||
private void btnExit_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
private void btnExit_Click(object sender, EventArgs e) => this.Close();
|
||||
// the user selected the button to test the sql connection string
|
||||
private void btnTestConnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
TestConnection(true);
|
||||
}
|
||||
// the RevDate & RevDescription are found in a stored procedure, vesp_GetSQLCodeRevision, in the sql database. These get updated each
|
||||
// time a revision is made to the sql database using ROFixes.sql script.
|
||||
private static DateTime _RevDate = DateTime.MinValue;
|
||||
public static DateTime RevDate
|
||||
{
|
||||
get { return _RevDate; }
|
||||
set { _RevDate = value; }
|
||||
}
|
||||
private static string _RevDescription = "Unknown";
|
||||
public static string RevDescription
|
||||
{
|
||||
get { return _RevDescription; }
|
||||
set { _RevDescription = value; }
|
||||
}
|
||||
private void btnTestConnect_Click(object sender, EventArgs e) => TestConnection(true);
|
||||
|
||||
public static DateTime RevDate { get; set; } = DateTime.MinValue;
|
||||
public static string RevDescription { get; set; } = "Unknown";
|
||||
// This is called to test the sql connection, either from the button when pressed by user, or from the convert button, before
|
||||
// the conversion is done. See below for what is checked
|
||||
private bool TestConnection(bool notifyUser)
|
||||
@@ -486,10 +443,12 @@ namespace RoAccessToSql
|
||||
if (connection.State == ConnectionState.Open)
|
||||
{
|
||||
// now see if there is an roall table
|
||||
SqlCommand command = new SqlCommand();
|
||||
command.Connection = connection;
|
||||
command.CommandType = CommandType.Text;
|
||||
command.CommandText = "(SELECT count(*) FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ROALL]') AND type in (N'U'))";
|
||||
SqlCommand command = new SqlCommand
|
||||
{
|
||||
Connection = connection,
|
||||
CommandType = CommandType.Text,
|
||||
CommandText = "(SELECT count(*) FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ROALL]') AND type in (N'U'))"
|
||||
};
|
||||
using (SqlDataReader reader = command.ExecuteReader())
|
||||
{
|
||||
if (reader.Read())
|
||||
@@ -509,10 +468,12 @@ namespace RoAccessToSql
|
||||
{
|
||||
// now see if there are stored procedures:
|
||||
command = null; // reset command
|
||||
command = new SqlCommand();
|
||||
command.Connection = connection;
|
||||
command.CommandType = CommandType.Text;
|
||||
command.CommandText = "(SELECT count(*) FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteByROTable]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)";
|
||||
command = new SqlCommand
|
||||
{
|
||||
Connection = connection,
|
||||
CommandType = CommandType.Text,
|
||||
CommandText = "(SELECT count(*) FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteByROTable]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)"
|
||||
};
|
||||
using (SqlDataReader reader = command.ExecuteReader())
|
||||
{
|
||||
if (reader.Read())
|
||||
@@ -533,10 +494,12 @@ namespace RoAccessToSql
|
||||
{
|
||||
// now test that the roall table is empty:
|
||||
command = null; // reset command
|
||||
command = new SqlCommand();
|
||||
command.Connection = connection;
|
||||
command.CommandType = CommandType.Text;
|
||||
command.CommandText = "SELECT count(*) FROM roall";
|
||||
command = new SqlCommand
|
||||
{
|
||||
Connection = connection,
|
||||
CommandType = CommandType.Text,
|
||||
CommandText = "SELECT count(*) FROM roall"
|
||||
};
|
||||
using (SqlDataReader reader = command.ExecuteReader())
|
||||
{
|
||||
if (reader.Read())
|
||||
@@ -557,16 +520,18 @@ namespace RoAccessToSql
|
||||
{
|
||||
// now test that the database version is ok
|
||||
command = null; // reset command
|
||||
command = new SqlCommand();
|
||||
command.Connection = connection;
|
||||
command.CommandType = CommandType.StoredProcedure;
|
||||
command.CommandText = "vesp_GetSQLCodeRevision";
|
||||
command = new SqlCommand
|
||||
{
|
||||
Connection = connection,
|
||||
CommandType = CommandType.StoredProcedure,
|
||||
CommandText = "vesp_GetSQLCodeRevision"
|
||||
};
|
||||
using (SqlDataReader reader = command.ExecuteReader())
|
||||
{
|
||||
if (reader.Read())
|
||||
{
|
||||
_RevDate = reader.GetDateTime(0);
|
||||
_RevDescription = reader.GetString(1);
|
||||
RevDate = reader.GetDateTime(0);
|
||||
RevDescription = reader.GetString(1);
|
||||
dbsuc = true;
|
||||
}
|
||||
else
|
||||
@@ -582,13 +547,13 @@ namespace RoAccessToSql
|
||||
}
|
||||
catch (SqlException ex)
|
||||
{
|
||||
if (notifyUser) MessageBox.Show("Connection failed: " + ex, "Connection Failed");
|
||||
if (notifyUser) MessageBox.Show($"Connection failed: {ex}", "Connection Failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (notifyUser) MessageBox.Show("Connection failed: " + ex, "Connection Failed");
|
||||
if (notifyUser) MessageBox.Show($"Connection failed: {ex}", "Connection Failed");
|
||||
}
|
||||
|
||||
if (notifyUser && success) MessageBox.Show("You have been successfully connected to the database!", "Connection Succeeded");
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
<Compile Include="RoAccessToSql.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Accentra.Controls
|
||||
@@ -11,11 +8,6 @@ namespace Accentra.Controls
|
||||
/// </summary>
|
||||
public class TablePicker : System.Windows.Forms.Form
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
public TablePicker()
|
||||
{
|
||||
// Activates double buffering
|
||||
@@ -29,21 +21,6 @@ namespace Accentra.Controls
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if(components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
@@ -75,80 +52,39 @@ namespace Accentra.Controls
|
||||
}
|
||||
#endregion
|
||||
|
||||
private Pen BeigePen = new Pen(Color.Beige, 1);
|
||||
private Brush BeigeBrush = System.Drawing.Brushes.Beige;
|
||||
private Brush GrayBrush = System.Drawing.Brushes.Gray;
|
||||
private Brush BlackBrush = System.Drawing.Brushes.Black;
|
||||
private Brush WhiteBrush = System.Drawing.Brushes.White;
|
||||
private readonly Brush BlackBrush = System.Drawing.Brushes.Black;
|
||||
private readonly Brush WhiteBrush = System.Drawing.Brushes.White;
|
||||
|
||||
private Brush Jbrush = System.Drawing.Brushes.LightBlue;
|
||||
//private Brush Jbrush = System.Drawing.Brushes.LightSteelBlue;
|
||||
//private Brush Jbrush = System.Drawing.Brushes.SteelBlue;
|
||||
//private Brush Jbrush = System.Drawing.Brushes.PowderBlue;
|
||||
private readonly Brush Jbrush = System.Drawing.Brushes.LightBlue;
|
||||
|
||||
private Pen BorderPen = new Pen(SystemColors.ControlDark);
|
||||
private Pen BluePen = new Pen(Color.SlateGray, 1);
|
||||
private readonly Pen BorderPen = new Pen(SystemColors.ControlDark);
|
||||
private readonly Pen BluePen = new Pen(Color.SlateGray, 1);
|
||||
|
||||
private string DispText = "Esc to Cancel"; // Display text
|
||||
private int DispHeight = 40;//20; // Display ("Table 1x1", "Cancel")
|
||||
private Font DispFont = new Font("Tahoma", 8.25F);
|
||||
private int SquareX = 20; // Width of squares
|
||||
private int SquareY = 20; // Height of squares
|
||||
private readonly int DispHeight = 40; // Display ("Table 1x1", "Cancel")
|
||||
private readonly Font DispFont = new Font("Tahoma", 8.25F);
|
||||
private readonly int SquareX = 20; // Width of squares
|
||||
private readonly int SquareY = 20; // Height of squares
|
||||
private int SquareQX = 3; // Number of visible squares (X)
|
||||
private int SquareQY = 3; // Number of visible squares (Y)
|
||||
private int SelQX = 1; // Number of selected squares (x)
|
||||
private int SelQY = 1; // Number of selected squares (y)
|
||||
|
||||
private bool bHiding = false;
|
||||
private bool bCancel = true; // Determines whether to Cancel
|
||||
public int MaxRows { get; set; } = -1;
|
||||
|
||||
// Added my Volian 4/27/11
|
||||
private int _MaxRows = -1;
|
||||
|
||||
public int MaxRows
|
||||
{
|
||||
get { return _MaxRows; }
|
||||
set { _MaxRows = value; }
|
||||
}
|
||||
private int _MaxCols = -1;
|
||||
|
||||
public int MaxCols
|
||||
{
|
||||
get { return _MaxCols; }
|
||||
set { _MaxCols = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Similar to <code><see cref="DialogResult"/>
|
||||
/// == <see cref="DialogResult.Cancel"/></code>,
|
||||
/// but is used as a state value before the form
|
||||
/// is hidden and cancellation is finalized.
|
||||
/// </summary>
|
||||
public bool Cancel {
|
||||
get {
|
||||
return bCancel;
|
||||
}
|
||||
}
|
||||
public int MaxCols { get; set; } = -1;
|
||||
|
||||
/// <summary>
|
||||
/// Returns the number of columns, or the horizontal / X count,
|
||||
/// of the selection.
|
||||
/// </summary>
|
||||
public int SelectedColumns {
|
||||
get {
|
||||
return SelQX;
|
||||
}
|
||||
}
|
||||
public int SelectedColumns => SelQX;
|
||||
|
||||
/// <summary>
|
||||
/// Returns the number of rows, or the vertical / Y count,
|
||||
/// of the selection.
|
||||
/// </summary>
|
||||
public int SelectedRows {
|
||||
get {
|
||||
return SelQY;
|
||||
}
|
||||
}
|
||||
public int SelectedRows => SelQY;
|
||||
|
||||
private void TablePicker_Paint(object sender, System.Windows.Forms.PaintEventArgs e) {
|
||||
Graphics g = e.Graphics;
|
||||
@@ -162,8 +98,8 @@ namespace Accentra.Controls
|
||||
if (SquareQX < 7) SquareQX = 7;
|
||||
if (SquareQY < 5) SquareQY = 5;
|
||||
|
||||
if (_MaxRows > 0 && SquareQY > _MaxRows) SquareQY = _MaxRows;
|
||||
if (_MaxCols > 0 && SquareQX > _MaxCols) SquareQX = _MaxCols;
|
||||
if (MaxRows > 0 && SquareQY > MaxRows) SquareQY = MaxRows;
|
||||
if (MaxCols > 0 && SquareQX > MaxCols) SquareQX = MaxCols;
|
||||
|
||||
// Second, expand the dimensions of this form according to the
|
||||
// number of visible squares.
|
||||
@@ -177,14 +113,7 @@ namespace Accentra.Controls
|
||||
// the text is left-justified, only the Y (vertical) position
|
||||
// is calculated.
|
||||
int dispY = ((SquareY - 1) * SquareQY) + SquareQY + 4;
|
||||
//if (this.Cancel) {
|
||||
// DispText = "Esc Key to Cancel";
|
||||
//} else {
|
||||
// DispText = SelQX.ToString() + " by " + SelQY.ToString() + " Table";
|
||||
//}
|
||||
//DispText = SelQX.ToString() + " by " + SelQY.ToString() + " Table\nEsc Key to Cancel";
|
||||
//DispText = SelQY.ToString() + " Row"+((SelQY>1)?"s by ":" by ") + SelQX.ToString() + " Column"+((SelQX>1)?"s\nEsc Key to Cancel":"\nEsc Key to Cancel");
|
||||
DispText = SelQY.ToString() + " Row" + ((SelQY > 1) ? "s" : "") + " " + SelQX.ToString() + " Column" + ((SelQX > 1) ? "s" : "")+ "\nEsc to Cancel";
|
||||
DispText = $"{SelQY} Row{((SelQY > 1) ? "s" : "")} {SelQX} Column{((SelQX > 1) ? "s" : "")}\nEsc to Cancel";
|
||||
g.DrawString(DispText, DispFont, BlackBrush, 3, dispY + 2);
|
||||
|
||||
// Draw each of the squares and fill with the default color.
|
||||
@@ -198,7 +127,6 @@ namespace Accentra.Controls
|
||||
// Go back and paint the squares with selection colors.
|
||||
for (int x=0; x<SelQX; x++) {
|
||||
for (int y=0; y<SelQY; y++) {
|
||||
//g.FillRectangle(BeigeBrush, (x*SquareX) + 3, (y*SquareY) + 3, SquareX - 2, SquareY - 2);
|
||||
g.FillRectangle(Jbrush, (x * SquareX) + 3, (y * SquareY) + 3, SquareX - 2, SquareY - 2);
|
||||
g.DrawRectangle(BluePen, (x * SquareX) + 3, (y * SquareY) + 3, SquareX - 2, SquareY - 2);
|
||||
}
|
||||
@@ -210,11 +138,6 @@ namespace Accentra.Controls
|
||||
/// </summary>
|
||||
private void TablePicker_Deactivate(object sender, System.EventArgs e) {
|
||||
|
||||
// bCancel = true
|
||||
// and DialogResult = DialogResult.Cancel
|
||||
// were previously already set in MouseLeave.
|
||||
|
||||
//this.Hide();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -242,9 +165,6 @@ namespace Accentra.Controls
|
||||
/// escaped (canceling) state.
|
||||
/// </summary>
|
||||
private void TablePicker_MouseLeave(object sender, System.EventArgs e) {
|
||||
//if (!bHiding) bCancel = true;
|
||||
//this.DialogResult = DialogResult.Cancel;
|
||||
//this.Invalidate();
|
||||
if (this.DialogResult == DialogResult.None)
|
||||
this.DialogResult = DialogResult.Cancel;
|
||||
}
|
||||
@@ -252,32 +172,17 @@ namespace Accentra.Controls
|
||||
/// <summary>
|
||||
/// Cancels the prior cancellation caused by MouseLeave.
|
||||
/// </summary>
|
||||
private void TablePicker_MouseEnter(object sender, System.EventArgs e) {
|
||||
//bHiding = false;
|
||||
//bCancel = false;
|
||||
//this.DialogResult = DialogResult.OK;
|
||||
this.Invalidate();
|
||||
}
|
||||
private void TablePicker_MouseEnter(object sender, System.EventArgs e) => this.Invalidate();
|
||||
|
||||
/// <summary>
|
||||
/// Detects that the user made a selection by clicking.
|
||||
/// </summary>
|
||||
private void TablePicker_Click(object sender, System.EventArgs e) {
|
||||
//bHiding = true; // Not the same as Visible == false
|
||||
// // because bHiding suggests that the control
|
||||
// // is still "active" (not canceled).
|
||||
//this.Hide();
|
||||
this.DialogResult = DialogResult.OK;
|
||||
}
|
||||
private void TablePicker_Click(object sender, System.EventArgs e) => this.DialogResult = DialogResult.OK;
|
||||
|
||||
private void TablePicker_KeyPress(object sender, KeyPressEventArgs e)
|
||||
{
|
||||
if (e.KeyChar == (char)Keys.Escape)
|
||||
{
|
||||
//bHiding = true; // Not the same as Visible == false
|
||||
//// because bHiding suggests that the control
|
||||
//// is still "active" (not canceled).
|
||||
//this.Hide();
|
||||
this.DialogResult = DialogResult.Cancel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Reflection;
|
||||
using Volian.Controls.Library;
|
||||
@@ -24,7 +21,7 @@ namespace VEPROMS
|
||||
string connectionString = Database.VEPROMS_Connection;
|
||||
Match mServer = Regex.Match(connectionString, ".*Data Source=([^;]*).*");
|
||||
_SQLServerName = (mServer.Success) ? mServer.Groups[1].Value : "unknown";
|
||||
if (_SQLServerName.StartsWith(@".\")) _SQLServerName = @"Local \ " + _SQLServerName.Substring(2);
|
||||
if (_SQLServerName.StartsWith(@".\")) _SQLServerName = $@"Local \ {_SQLServerName.Substring(2)}";
|
||||
}
|
||||
return _SQLServerName;
|
||||
}
|
||||
@@ -37,7 +34,7 @@ namespace VEPROMS
|
||||
{
|
||||
if (_DatabaseName == null)
|
||||
{
|
||||
_DatabaseName = string.Format("{0}[SQL:{1:yyMM.ddHH}]", Database.ActiveDatabase, Database.RevDate);
|
||||
_DatabaseName = $"{Database.ActiveDatabase}[SQL:{Database.RevDate:yyMM.ddHH}]";
|
||||
}
|
||||
return _DatabaseName;
|
||||
}
|
||||
@@ -55,26 +52,16 @@ namespace VEPROMS
|
||||
DateTime buildDateTime = new System.IO.FileInfo(Assembly.GetExecutingAssembly().Location).LastWriteTime;
|
||||
// If the AssemblyConfiguration is "DEMO" then we are running a Demo version
|
||||
string demoTxt = VlnSettings.DemoMode ? "(Demo)": VlnSettings.DebugMode ? "(Debug)" : "(Production)";
|
||||
// C2018-015 made this information static so we can use in meta files
|
||||
//string connectionString = Database.VEPROMS_Connection;
|
||||
//Match mServer = Regex.Match(connectionString,".*Data Source=([^;]*).*");
|
||||
//string server = (mServer.Success)?mServer.Groups[1].Value:"unknown";
|
||||
//if (server.StartsWith(@".\")) server = @"Local \ " + server.Substring(2);
|
||||
//string databaseName = string.Format("{0}[SQL:{1:yyMM.ddHH}]", Database.ActiveDatabase, Database.RevDate);
|
||||
this.Text = String.Format("About {0}", AssemblyTitle + " " + demoTxt);
|
||||
this.labelProductName.Text = AssemblyProduct;
|
||||
this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
|
||||
this.labelVersionDateTime.Text = String.Format("Build Date: {0}", buildDateTime.ToString());
|
||||
this.labelCopyright.Text = String.Format("Copyright © {0}. All Rights Reserved.", buildDateTime.Year.ToString());
|
||||
this.labelCompanyName.Text = AssemblyCompany;
|
||||
// this.textBoxDescription.Text = AssemblyDescription;
|
||||
this.labelCompanyName.Links[0].LinkData = "Volian Enterprises Inc.";
|
||||
this.labelCompanyName.Links.Add(0,23,"www.volian.com");
|
||||
//this.labelServer.Text = string.Format("SQL Server: {0}", server);
|
||||
this.labelServer.Text = string.Format("SQL Server: {0}", SQLServerName); // C2018-015 use static for this info.
|
||||
//if (databaseName == null) databaseName = Regex.Replace(connectionString, "^.*Initial Catalog=([^;]*);.*$", "$1", RegexOptions.IgnoreCase);
|
||||
//this.labelDatabase.Text = string.Format("Database: {0}", databaseName);
|
||||
this.labelDatabase.Text = string.Format("Database: {0}", DatabaseName); // C2018-015 use static for this info.
|
||||
Text = $"About {AssemblyTitle} {demoTxt}";
|
||||
labelProductName.Text = AssemblyProduct;
|
||||
labelVersion.Text = $"Version {AssemblyVersion}";
|
||||
labelVersionDateTime.Text = $"Build Date: {buildDateTime}";
|
||||
labelCopyright.Text = $"Copyright © {buildDateTime.Year}. All Rights Reserved.";
|
||||
labelCompanyName.Text = AssemblyCompany;
|
||||
labelCompanyName.Links[0].LinkData = "Volian Enterprises Inc.";
|
||||
labelCompanyName.Links.Add(0,23,"www.volian.com");
|
||||
labelServer.Text = $"SQL Server: {SQLServerName}"; // C2018-015 use static for this info.
|
||||
labelDatabase.Text = $"Database: {DatabaseName}"; // C2018-015 use static for this info.
|
||||
}
|
||||
|
||||
#region Assembly Attribute Accessors
|
||||
@@ -99,22 +86,10 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
public string AssemblyVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
}
|
||||
}
|
||||
public string AssemblyVersion => Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
|
||||
// C2018-009 used to print the PROMS version number at the top of each PDF page
|
||||
public static string PROMSVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
}
|
||||
}
|
||||
public static string PROMSVersion => Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
|
||||
public string AssemblyDescription
|
||||
{
|
||||
@@ -162,7 +137,7 @@ namespace VEPROMS
|
||||
private void labelCompanyName_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
// Determine which link was clicked within the LinkLabel.
|
||||
this.labelCompanyName.Links[0].Visited = true;
|
||||
labelCompanyName.Links[0].Visited = true;
|
||||
|
||||
// Display the appropriate link based on the value of the
|
||||
// LinkData property of the Link object.
|
||||
@@ -171,17 +146,16 @@ namespace VEPROMS
|
||||
System.Diagnostics.Process.Start(target); // this should start the default web browser
|
||||
}
|
||||
|
||||
private void logoPictureBox_Click(object sender, EventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start(labelCompanyName.Links[0].LinkData as string); // this should start the default web browser
|
||||
}
|
||||
private void logoPictureBox_Click(object sender, EventArgs e) => System.Diagnostics.Process.Start(labelCompanyName.Links[0].LinkData as string); // this should start the default web browser
|
||||
|
||||
private void btnViewEULA_Click(object sender, EventArgs e)
|
||||
{
|
||||
string EulaFile = string.Format(@"\{0}", VlnSettings.EULAfile);
|
||||
string EulaFile = $@"\{VlnSettings.EULAfile}";
|
||||
string strEULA = System.Environment.CurrentDirectory + EulaFile;
|
||||
frmViewTextFile ViewFile = new frmViewTextFile(strEULA,RichTextBoxStreamType.PlainText);
|
||||
ViewFile.Text = "End-User License Agreement";
|
||||
frmViewTextFile ViewFile = new frmViewTextFile(strEULA, RichTextBoxStreamType.PlainText)
|
||||
{
|
||||
Text = "End-User License Agreement"
|
||||
};
|
||||
ViewFile.ShowDialog();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public class BookMarks
|
||||
{
|
||||
public string Name;
|
||||
public VETreeNode Node;
|
||||
|
||||
public BookMarks()
|
||||
{
|
||||
}
|
||||
|
||||
public BookMarks(string n, VETreeNode o)
|
||||
{
|
||||
Name = n;
|
||||
Node = o;
|
||||
}
|
||||
|
||||
public BookMarks(VETreeNode o)
|
||||
{
|
||||
Name = o.Text;
|
||||
Node = o;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
@@ -14,10 +9,7 @@ namespace VEPROMS
|
||||
// C2025-027 Annotation Type Filtering
|
||||
public partial class dlgAnnotationsSelect : Form
|
||||
{
|
||||
public dlgAnnotationsSelect()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public dlgAnnotationsSelect() => InitializeComponent();
|
||||
|
||||
public dlgAnnotationsSelect(string userid)
|
||||
{
|
||||
@@ -25,30 +17,13 @@ namespace VEPROMS
|
||||
UserID = userid;
|
||||
}
|
||||
|
||||
private int _MyItemID;
|
||||
public int MyItemID
|
||||
{
|
||||
get { return _MyItemID; }
|
||||
set { _MyItemID = value; }
|
||||
}
|
||||
public int MyItemID { get; set; }
|
||||
public string UserID { get; set; }
|
||||
|
||||
private string _UserID;
|
||||
public string UserID
|
||||
{
|
||||
get { return _UserID; }
|
||||
set { _UserID = value; }
|
||||
}
|
||||
|
||||
private void btnSelect_Click(object sender, EventArgs e)
|
||||
{
|
||||
MoveSelectedItems(lstUnselected, lstSelected);
|
||||
}
|
||||
private void btnSelect_Click(object sender, EventArgs e) => MoveSelectedItems(lstUnselected, lstSelected);
|
||||
|
||||
// Move selected items to lstUnselected.
|
||||
private void btnDeselect_Click(object sender, EventArgs e)
|
||||
{
|
||||
MoveSelectedItems(lstSelected, lstUnselected);
|
||||
}
|
||||
private void btnDeselect_Click(object sender, EventArgs e) => MoveSelectedItems(lstSelected, lstUnselected);
|
||||
|
||||
// Move selected items from one ListBox to another.
|
||||
private void MoveSelectedItems(ListBox lstFrom, ListBox lstTo)
|
||||
@@ -90,39 +65,21 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
// Enable and disable buttons.
|
||||
private void lst_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
SetButtonsEditable();
|
||||
}
|
||||
private void lst_SelectedIndexChanged(object sender, EventArgs e) => SetButtonsEditable();
|
||||
// Save selected list to DB.
|
||||
private void btnUpdate_Click(object sender, EventArgs e)
|
||||
{
|
||||
saveChanges();
|
||||
}
|
||||
private void btnUpdate_Click(object sender, EventArgs e) => saveChanges();
|
||||
public class AnnotataionItem
|
||||
{
|
||||
private string _NameStr;
|
||||
private int _TypeID;
|
||||
private readonly string _NameStr;
|
||||
private readonly int _TypeID;
|
||||
|
||||
public AnnotataionItem(string NameStr, int TypeID)
|
||||
{
|
||||
this._NameStr = NameStr;
|
||||
this._TypeID = TypeID;
|
||||
}
|
||||
public string NameStr
|
||||
{
|
||||
get
|
||||
{
|
||||
return _NameStr;
|
||||
}
|
||||
}
|
||||
public int TypeID
|
||||
{
|
||||
get
|
||||
{
|
||||
return _TypeID;
|
||||
}
|
||||
_NameStr = NameStr;
|
||||
_TypeID = TypeID;
|
||||
}
|
||||
public string NameStr => _NameStr;
|
||||
public int TypeID => _TypeID;
|
||||
}
|
||||
|
||||
// Enable and disable buttons.
|
||||
@@ -167,16 +124,16 @@ namespace VEPROMS
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
saveChanges();
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
@@ -16,18 +8,9 @@ namespace VEPROMS
|
||||
{
|
||||
private bool _Cancel = true;
|
||||
|
||||
public bool Cancel
|
||||
{
|
||||
get { return _Cancel; }
|
||||
}
|
||||
public bool Cancel => _Cancel;
|
||||
|
||||
private bool _ExitPROMS;
|
||||
|
||||
public bool ExitPROMS
|
||||
{
|
||||
get { return _ExitPROMS; }
|
||||
set { _ExitPROMS = value; }
|
||||
}
|
||||
public bool ExitPROMS { get; set; }
|
||||
public DlgCloseTabsOrExit(bool isMainWindow, bool hasChildWindows)
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -46,22 +29,22 @@ namespace VEPROMS
|
||||
private void BtnClsTab_Click(object sender, EventArgs e)
|
||||
{
|
||||
_Cancel = false;
|
||||
_ExitPROMS = false;
|
||||
this.Hide();
|
||||
ExitPROMS = false;
|
||||
Hide();
|
||||
}
|
||||
|
||||
private void BtnExitPROMS_Click(object sender, EventArgs e)
|
||||
{
|
||||
_Cancel = false;
|
||||
_ExitPROMS = true;
|
||||
this.Hide();
|
||||
ExitPROMS = true;
|
||||
Hide();
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
_Cancel = true;
|
||||
_ExitPROMS = false;
|
||||
this.Hide();
|
||||
ExitPROMS = false;
|
||||
Hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,28 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Print.Library;
|
||||
//using Volian.Controls.Library;
|
||||
using Volian.Base.Library;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System.Linq;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class DlgPrintProcedure : DevComponents.DotNetBar.Office2007Form
|
||||
{
|
||||
public bool SaveLinks
|
||||
{
|
||||
get
|
||||
{
|
||||
return swtbtnPDFLinks.Value;
|
||||
}
|
||||
}
|
||||
public bool SaveLinks => swtbtnPDFLinks.Value;
|
||||
public int RemoveTrailingHardReturnsAndManualPageBreaks
|
||||
{
|
||||
get
|
||||
@@ -36,37 +28,18 @@ namespace VEPROMS
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
private string _Prefix = ""; // RHM20150506 Multiline ItemID TextBox
|
||||
public string Prefix
|
||||
{
|
||||
get { return _Prefix; }
|
||||
set { _Prefix = value; }
|
||||
}
|
||||
// RHM20150506 Multiline ItemID TextBox
|
||||
public string Prefix { get; set; } = "";
|
||||
public bool OpenAfterCreate // RHM20150506 Multiline ItemID TextBox
|
||||
{
|
||||
get { return cbxOpenAfterCreate2.Checked; }
|
||||
set { cbxOpenAfterCreate2.Checked = value; }
|
||||
}
|
||||
private SessionInfo _MySessionInfo;
|
||||
public SessionInfo MySessionInfo
|
||||
{
|
||||
get { return _MySessionInfo; }
|
||||
set { _MySessionInfo = value; }
|
||||
}
|
||||
private bool _Automatic;
|
||||
public bool Automatic
|
||||
{
|
||||
get { return _Automatic; }
|
||||
set { _Automatic = value; }
|
||||
}
|
||||
private int _prtSectID = -1;
|
||||
public int PrtSectID
|
||||
{
|
||||
get { return _prtSectID; }
|
||||
set { _prtSectID = value; }
|
||||
}
|
||||
|
||||
private bool _OverwritePDF;
|
||||
public SessionInfo MySessionInfo { get; set; }
|
||||
public bool Automatic { get; set; }
|
||||
public int PrtSectID { get; set; } = -1;
|
||||
|
||||
public bool OverwritePDF
|
||||
{
|
||||
get { return cbxOverwritePDF2.Checked; }
|
||||
@@ -85,7 +58,7 @@ namespace VEPROMS
|
||||
swtbtnPDFdtPrefixSuffix.Value = swtbtnPDFdtPrefixSuffix.Enabled = _AllowDateTimePrefixSuffix;
|
||||
}
|
||||
}
|
||||
private DateTime _PrefixSuffixDTS = DateTime.Now; // C2018-033 date/time used for the date/time PDF file prefix and suffix
|
||||
private readonly DateTime _PrefixSuffixDTS = DateTime.Now; // C2018-033 date/time used for the date/time PDF file prefix and suffix
|
||||
private bool _DateTimePrefixSuffixPrintingAllProcedures = true; // C2018-033 to control adding the Date/Time Prefix/Suffix to PFD name when printing All procedures
|
||||
private bool _IncludeWordSecTextInMetafile = true; // C2018-023 so that we can turn off including Word attachment text in metafile
|
||||
private void RunAutomatic()
|
||||
@@ -96,7 +69,6 @@ namespace VEPROMS
|
||||
_IncludeWordSecTextInMetafile = true;
|
||||
Application.DoEvents();
|
||||
string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray());
|
||||
bool ranAuto = false;
|
||||
foreach (string parameter in parameters)
|
||||
{
|
||||
if (parameter.ToUpper() == "/NT")
|
||||
@@ -111,11 +83,11 @@ namespace VEPROMS
|
||||
_IncludeWordSecTextInMetafile = false; // C2018-023 turn off putting Word attachment text in the meta file for baseline compares
|
||||
}
|
||||
CreatePDFs();
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
private DocVersionInfo _DocVersionInfo = null;
|
||||
private bool _AllProcedures;
|
||||
private DocVersionConfig _DocVersionConfig;
|
||||
private readonly DocVersionInfo _DocVersionInfo = null;
|
||||
private readonly bool _AllProcedures;
|
||||
private readonly DocVersionConfig _DocVersionConfig;
|
||||
public string RevNum
|
||||
{
|
||||
get { return txbRevNum.Text; }
|
||||
@@ -143,10 +115,7 @@ namespace VEPROMS
|
||||
return RevNum + "/" + RevDate;
|
||||
}
|
||||
}
|
||||
public string ProcNum
|
||||
{
|
||||
get { return MyProcedure.DisplayNumber; }
|
||||
}
|
||||
public string ProcNum => MyProcedure.DisplayNumber;
|
||||
public string PDFPath
|
||||
{
|
||||
get {// B2018-069 Revert to Temporary for Baseline testing
|
||||
@@ -179,7 +148,7 @@ namespace VEPROMS
|
||||
private bool _CreateButtonClicked = false; // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
|
||||
public DlgPrintProcedure(DocVersionInfo dvi, bool automatic)
|
||||
{
|
||||
_Automatic = automatic;
|
||||
Automatic = automatic;
|
||||
InitializeComponent();
|
||||
_AllProcedures = true;
|
||||
_DocVersionConfig = dvi.DocVersionConfig;
|
||||
@@ -201,14 +170,12 @@ namespace VEPROMS
|
||||
btnCreatePDF.Text = "Create PDFs";
|
||||
HandleDocVersionSettings();
|
||||
PrepForAllOrOne(false);
|
||||
// don't open all PDFs if doing All Procedures
|
||||
//cbxOpenAfterCreate2.Checked = dvi.DocVersionConfig.Print_AlwaysViewPDFAfterCreate;
|
||||
// C2018-033 added the Prefix / Suffix switch to the expand Additional Settings check
|
||||
expPrnSetting.Expanded = swtbtnBlankPgsForDuplex.Value || swtbtnChgBar.Value || swtbtnGeneratePlacekeeper.Value || swtbtnPDFLinks.Value || swtbtnPROMSVersion.Value || swtbtnWaterMark.Value || swtbtnPDFdtPrefixSuffix.Value;
|
||||
}
|
||||
public DlgPrintProcedure(DocVersionInfo dvi)
|
||||
{
|
||||
_Automatic = false;
|
||||
Automatic = false;
|
||||
InitializeComponent();
|
||||
_AllProcedures = true;
|
||||
_DocVersionConfig = dvi.DocVersionConfig;
|
||||
@@ -249,18 +216,9 @@ namespace VEPROMS
|
||||
// C2021-063 make the Generate Alarm Point List text checkbox visable in the format flag is set.
|
||||
cbxAlmPtTxt.Visible = !oneProcedure && MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.ChkBoxToGeneratePointListText;
|
||||
}
|
||||
private string _UnitNumber;
|
||||
public string UnitNumber
|
||||
{
|
||||
get { return _UnitNumber; }
|
||||
set { _UnitNumber = value; }
|
||||
}
|
||||
private int _UnitIndex;
|
||||
public int UnitIndex
|
||||
{
|
||||
get { return _UnitIndex; }
|
||||
set { _UnitIndex = value; }
|
||||
}
|
||||
|
||||
public string UnitNumber { get; set; }
|
||||
public int UnitIndex { get; set; }
|
||||
|
||||
// C2018-012 - Code Cleanup - redesigned the Print Dialog to include a sliding panel and remplaced check boxes with ON/OFF switches
|
||||
public DlgPrintProcedure(ProcedureInfo pi)
|
||||
@@ -354,30 +312,8 @@ namespace VEPROMS
|
||||
swtbtnWaterMark.Value = false;
|
||||
else
|
||||
swtbtnWaterMark.Value = true;
|
||||
// Auto Duplexing on/off - Auto duplex was used only by Point Beach formats These buttons were removed from the dialog
|
||||
// There was not print coding to support this format flag
|
||||
|
||||
//if ((_MyProcedure.ActiveParent as DocVersionInfo).ActiveFormat.PlantFormat.FormatData.PrintData.AllowDuplex)
|
||||
//{
|
||||
// lblAutoDuplexing.Visible = true;
|
||||
// btnDuplxOff.Visible = true;
|
||||
// btnDuplxOn.Visible = true;
|
||||
// if (_DocVersionConfig.Print_DisableDuplex)
|
||||
// btnDuplxOff.PerformClick();
|
||||
// else
|
||||
// btnDuplxOn.PerformClick();
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// lblAutoDuplexing.Visible = false;
|
||||
// btnDuplxOff.Visible = false;
|
||||
// btnDuplxOn.Visible = false;
|
||||
//}
|
||||
SetCompareVisibility();
|
||||
|
||||
// default to using OriginalPageBreaks (16bit page breaks) if App.config is set
|
||||
// to true:
|
||||
//cbxOrPgBrk.Visible = VlnSettings.OriginalPageBreak && VlnSettings.DebugMode;
|
||||
cbxOrPgBrk.Visible = false; //per Harry
|
||||
cbxOrPgBrk.Checked = false;
|
||||
}
|
||||
@@ -416,13 +352,7 @@ namespace VEPROMS
|
||||
private Timer _MyTimer;
|
||||
public void SetupForProcedure() // RHM20150506 Multiline ItemID TextBox
|
||||
{
|
||||
if(_DocVersionInfo == null)this.Text = "Create PDF for " + ProcNum;
|
||||
// get list of previous pdf files
|
||||
// if no previous pdf file, then get path from frmVersionProperties
|
||||
// dlgSelectFile.InitialDirectory = pdf path from frmVersionProperties
|
||||
//cbxPDF.Text = string.Format(@"{0}\{1}.pdf", _PDFPath, _ProcNum);
|
||||
// General 2 settings
|
||||
//txbPDFLocation.Text = _PDFPath;
|
||||
if(_DocVersionInfo == null)Text = "Create PDF for " + ProcNum;
|
||||
BuildPDFFileName();
|
||||
ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig;
|
||||
// C2025-033 set which Child procedure is being printed used for PageStyle items
|
||||
@@ -434,7 +364,7 @@ namespace VEPROMS
|
||||
if (pc != null)
|
||||
{
|
||||
//C2021-062 use the save rev number for all procedures if set, or just use the rev number in the current procedure config
|
||||
RevNum = (_NewRevForAllProcs == null) ? pc.Print_Rev : _NewRevForAllProcs;
|
||||
RevNum = _NewRevForAllProcs ?? pc.Print_Rev;
|
||||
RevDate = pc.Print_RevDate; //== null || pc.Print_RevDate=="" ? DateTime.Today : Convert.ToDateTime(pc.Print_RevDate);
|
||||
ReviewDate = pc.Print_ReviewDate; // == null ? DateTime.Today : Convert.ToDateTime(pc.Print_ReviewDate);
|
||||
//Now check the format flags to determine if/how the Rev string should be parsed.
|
||||
@@ -498,11 +428,6 @@ namespace VEPROMS
|
||||
else
|
||||
swtbtnWaterMark.Value = false; // set to None at folder level so set Watermark switch to the off position
|
||||
|
||||
//ppCmbxChgBarPos.DataSource = EnumDetail<PrintChangeBarLoc>.Details();
|
||||
//ppCmbxChgBarPos.DisplayMember = "Description";
|
||||
//ppCmbxChgBarPos.ValueMember = "EValue";
|
||||
//ppCmbxChgBarPos.SelectedIndex = (int)MyProcedure.MyDocVersion.DocVersionConfig.Print_ChangeBarLoc;
|
||||
|
||||
ppCmbxChgBarTxtType.DataSource = EnumDetail<PrintChangeBarText>.Details();
|
||||
ppCmbxChgBarTxtType.DisplayMember = "Description";
|
||||
ppCmbxChgBarTxtType.ValueMember = "EValue";
|
||||
@@ -515,7 +440,7 @@ namespace VEPROMS
|
||||
bool usesRevDate = _MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate || _MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash;
|
||||
if (_MyProcedure.Sections != null)
|
||||
{
|
||||
foreach (SectionInfo mysection in _MyProcedure.Sections)
|
||||
foreach (SectionInfo mysection in _MyProcedure.Sections.OfType<SectionInfo>())
|
||||
hasReviewDate |= mysection.ActiveFormat.PlantFormat.HasPageListToken("{REVIEWDATE}");
|
||||
}
|
||||
// Only the New HLP format and the MYA format use this
|
||||
@@ -535,7 +460,6 @@ namespace VEPROMS
|
||||
if (MyProcedure == null) return;
|
||||
string PDFFilePrefix = _DocVersionConfig.Print_PDFFilePrefix;
|
||||
string PDFFileSuffix = _DocVersionConfig.Print_PDFFileSuffix;
|
||||
string PDFFileName = "";
|
||||
PDFDTPrefix dtPre = _DocVersionConfig.Print_PDFdtFilePrefix;
|
||||
PDFDTSuffix dtSuf = _DocVersionConfig.Print_PDFdtFileSuffix;
|
||||
if (dtPre != PDFDTPrefix.None) PDFFilePrefix = ""; // incase user entered prefix text but then selected a date/time (in working draft properties)
|
||||
@@ -556,19 +480,17 @@ namespace VEPROMS
|
||||
if (dtSuf != PDFDTSuffix.None)
|
||||
PDFFileSuffix = "_" + (_PrefixSuffixDTS.ToString(dtSuf.ToString())).Replace("__", " ").Replace("_", "-");
|
||||
}
|
||||
string PDFFileName;
|
||||
if (ProcNum == string.Empty)
|
||||
//txbPDFName.Text = this.UnitNumber + ".pdf";
|
||||
PDFFileName = this.UnitNumber;
|
||||
PDFFileName = UnitNumber;
|
||||
else
|
||||
//txbPDFName.Text = string.Format("{0}.pdf", _MyProcedure.PDFNumber);
|
||||
PDFFileName = string.Format("{0}", _MyProcedure.PDFNumber);
|
||||
//if (txbPDFName.Text.StartsWith("*"))
|
||||
// txbPDFName.Text = txbPDFName.Text.Replace("*", this.UnitNumber);
|
||||
|
||||
if ((PDFFileName ?? "") == "") PDFFileName = "NoProcNumber";
|
||||
if (PDFFileName.StartsWith("*"))
|
||||
PDFFileName = PDFFileName.Replace("*", this.UnitNumber);
|
||||
PDFFileName = PDFFileName.Replace("*", UnitNumber);
|
||||
if (PDFFileName.Contains("?")) PDFFileName = PDFFileName.Replace("?", "_"); // for wcn sys/BM-2xxA??, etc
|
||||
txbPDFName.Text = PDFFilePrefix + PDFFileName + PDFFileSuffix + ".pdf";
|
||||
txbPDFName.Text = $"{PDFFilePrefix}{PDFFileName}{PDFFileSuffix}.pdf";
|
||||
}
|
||||
|
||||
// C2018-033 Enable/disable the switch to control whether to add Prefix and/or Suffix to PDF file name
|
||||
@@ -585,10 +507,7 @@ namespace VEPROMS
|
||||
swtbtnPDFdtPrefixSuffix.Enabled = hasPrefixSuffix;
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
private void btnCancel_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
private void swtbtnChgBar_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
@@ -714,7 +633,7 @@ namespace VEPROMS
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (MySessionInfo != null)
|
||||
{
|
||||
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures)
|
||||
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures.OfType<ProcedureInfo>())
|
||||
{
|
||||
string message = string.Empty;
|
||||
if (!MySessionInfo.CanCheckOutItem(myProc.ItemID, CheckOutType.Procedure, ref message))
|
||||
@@ -742,15 +661,14 @@ namespace VEPROMS
|
||||
pbPDFsStatus.Maximum = n;
|
||||
pbPDFsStatus.Visible = true;
|
||||
VlnSvgPageHelper.CountInApplProcs = 1; // B2021-127: BNPPalr - Auto set of serial #, skip Front Matter as per PAL 11/1/21 (set to 1 not 0)
|
||||
this.Text = string.Format("Processing {0}", _DocVersionInfo.MyFolder.Name);
|
||||
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures)
|
||||
Text = string.Format("Processing {0}", _DocVersionInfo.MyFolder.Name);
|
||||
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures.OfType<ProcedureInfo>())
|
||||
{
|
||||
string locpdfname = null; // get pdf file name for later merge code
|
||||
MyProcedure = myProc;
|
||||
// C2021-019: Override Watermark Text, 'waterMarkText' will have whatever watermark text should be printed
|
||||
ProcedureConfig procConfig = MyProcedure.MyConfig as ProcedureConfig;
|
||||
string waterMarkTextOverride = "";
|
||||
if (procConfig != null) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE");
|
||||
if (MyProcedure.MyConfig is ProcedureConfig procConfig) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE");
|
||||
// C2020-002 paper size is now set in the format files - default is Letter
|
||||
Volian.Print.Library.Rtf2Pdf.PaperSize = myProc.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize;
|
||||
if (myProc.Sections != null)
|
||||
@@ -772,13 +690,6 @@ namespace VEPROMS
|
||||
pbPDFsStatus.TextVisible = true;
|
||||
pbPDFsStatus.Text = string.Format("Creating PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
|
||||
pbPDFsStatus.Value = i;
|
||||
// this.Text = string.Format("Create PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
|
||||
|
||||
// B2021-102 we now get this information in frmPDFStatusForm()
|
||||
//MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave);
|
||||
// C2018-015 add the procedure tree path and the procedure number and title to the meta file
|
||||
//if (BaselineMetaFile.IsOpen && i == 1) BaselineMetaFile.WriteLine("!! {0}", MyProcedure.SearchDVPath.Replace("\a", " | "));
|
||||
//if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0} | {1}", MyProcedure.DisplayNumber, MyProcedure.DisplayText);
|
||||
|
||||
string myPDFPath = GetMultiunitPDFPath();
|
||||
_MergedPdfPath = myPDFPath; // If Slave, need its subdirectory/unit path for merging
|
||||
@@ -814,13 +725,6 @@ namespace VEPROMS
|
||||
pbPDFsStatus.TextVisible = true;
|
||||
pbPDFsStatus.Text = string.Format("Creating PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
|
||||
pbPDFsStatus.Value = i;
|
||||
// this.Text = string.Format("Create PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
|
||||
|
||||
// B2021-102 we now get this information in frmPDFStatusForm()
|
||||
//MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave);
|
||||
// C2018-015 add the procedure tree path and the procedure number and title to the meta file
|
||||
//if (BaselineMetaFile.IsOpen && i == 1) BaselineMetaFile.WriteLine("!! {0}", MyProcedure.SearchDVPath.Replace("\a", " | "));
|
||||
//if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0} | {1}", MyProcedure.DisplayNumber, MyProcedure.DisplayText);
|
||||
|
||||
// RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered.
|
||||
// B2016-249 Output Procedure to folder associated with Parent Child
|
||||
@@ -850,17 +754,8 @@ namespace VEPROMS
|
||||
pbPDFsStatus.TextVisible = true;
|
||||
pbPDFsStatus.Text = string.Format("Creating PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
|
||||
pbPDFsStatus.Value = i;
|
||||
// this.Text = string.Format("Create PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
|
||||
// RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered.
|
||||
int profileDepth1 = ProfileTimer.Push(">>>> GetItemAndChildren");
|
||||
// B2021-102 we now get this information in frmPDFStatusForm()
|
||||
//if (MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier || MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificTransitionModifier)
|
||||
// MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave);
|
||||
//else
|
||||
// MyProcedure = ProcedureInfo.GetItemAndChildren(MyProcedure.ItemID);
|
||||
//// C2018-015 add the procedure tree path and the procedure number and title to the meta file
|
||||
//if (BaselineMetaFile.IsOpen && i == 1) BaselineMetaFile.WriteLine("!! {0}", MyProcedure.SearchDVPath.Replace("\a", " | "));
|
||||
//if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0} | {1}", MyProcedure.DisplayNumber, MyProcedure.DisplayText);
|
||||
|
||||
ProfileTimer.Pop(profileDepth1);
|
||||
// B2021-102 put in the using for better memory management
|
||||
@@ -934,12 +829,12 @@ namespace VEPROMS
|
||||
private void CreateDebugFiles()
|
||||
{
|
||||
if (cbxDebugPagination.Checked)
|
||||
Volian.Base.Library.DebugPagination.Open(PDFPath + "\\DebugPagination.txt"); // RHM 20120925 Corrected spelling
|
||||
Volian.Base.Library.DebugPagination.Open($"{PDFPath}\\DebugPagination.txt"); // RHM 20120925 Corrected spelling
|
||||
if (cbxDebugText.Checked)
|
||||
Volian.Base.Library.DebugText.Open(PDFPath + "\\DebugText.txt");
|
||||
Volian.Base.Library.DebugText.Open($"{PDFPath}\\DebugText.txt");
|
||||
if (cbxMetaFile.Checked) // C2018-004 create meta file for baseline compares
|
||||
{
|
||||
Volian.Base.Library.BaselineMetaFile.Open(PDFPath + "\\DebugMeta.txt");
|
||||
Volian.Base.Library.BaselineMetaFile.Open($"{PDFPath}\\DebugMeta.txt");
|
||||
// C2018-015 add the PROMS Version, SQL Server, and Database to top of the meta file
|
||||
Volian.Base.Library.BaselineMetaFile.WriteLine("!! Ver {0} {1} {2}", AboutVEPROMS.PROMSVersion, AboutVEPROMS.SQLServerName, AboutVEPROMS.DatabaseName);
|
||||
// C2018-023 set as to whether we are going to include the Word attment text in the baseline metafile
|
||||
@@ -975,7 +870,7 @@ namespace VEPROMS
|
||||
if (MyProcedure.MyDocVersion.MultiUnitCount > 1)
|
||||
{
|
||||
VlnSvgPageHelper.CountInApplProcs = 1;
|
||||
foreach (ProcedureInfo pi in MyProcedure.MyDocVersion.Procedures)
|
||||
foreach (ProcedureInfo pi in MyProcedure.MyDocVersion.Procedures.OfType<ProcedureInfo>())
|
||||
{
|
||||
if (pi.ItemID == MyProcedure.ItemID) break;
|
||||
bool includeProc = pi.ApplInclude(SelectedSlave);
|
||||
@@ -991,24 +886,14 @@ namespace VEPROMS
|
||||
string waterMarkText = (swtbtnWaterMark.Value) ? cbxWaterMark.Text : "None" ; // B2018-124 use text of watermark form drop down list instead of enum value
|
||||
string watermarkColor = "Blue"; // this is the default watermark color
|
||||
frmPDFStatusForm.SetUnitWatermark(MyProcedure, ref waterMarkText, ref watermarkColor); //C2022-004 Unit Designator Watermark
|
||||
ProcedureConfig procConfig = MyProcedure.MyConfig as ProcedureConfig;
|
||||
string waterMarkTextOverride = "";
|
||||
if (procConfig != null) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE"); // C2021-019: override watermark text
|
||||
if (MyProcedure.MyConfig is ProcedureConfig procConfig) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE"); // C2021-019: override watermark text
|
||||
if (swtbtnWaterMark.Value && waterMarkTextOverride != null && waterMarkTextOverride != "") waterMarkText = waterMarkTextOverride;
|
||||
// Determine change bar settings. First get from config & then see if override from dialog.
|
||||
// Also check that format allows override.
|
||||
ChangeBarDefinition cbd = DetermineChangeBarSettings();
|
||||
int profileDepth2 = ProfileTimer.Push(">>>> CreatePdf.GetItemAndChildren");
|
||||
|
||||
// B2021-088 moved this if/else to frmPDFStatusForm() so that the Approval logic will have access to this logic
|
||||
//if (MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave > 0 || MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier || MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificTransitionModifier)
|
||||
// MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave);
|
||||
//else
|
||||
// MyProcedure = ProcedureInfo.GetItemAndChildren(MyProcedure.ItemID);
|
||||
// C2018-015 add the procedure tree path and the procedure number and title to the meta file
|
||||
//if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0}", MyProcedure.SearchDVPath.Replace("\a"," | "));
|
||||
//if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0} | {1}", MyProcedure.DisplayNumber, MyProcedure.DisplayText);
|
||||
|
||||
// B2022-088: Find Doc Ro button not working in Word Sections
|
||||
// Initialize Print Cache
|
||||
MSWordToPDF.RoPrintCache = new Dictionary<string, ROFSTLookup.rochild>();
|
||||
@@ -1045,7 +930,7 @@ namespace VEPROMS
|
||||
|
||||
MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||
MyProcedure.SelectedChildToPrint = 0; // B2023-035 reset
|
||||
this.Close();
|
||||
Close();
|
||||
ShowDebugFiles();
|
||||
ProfileTimer.Pop(profileDepth);
|
||||
ProfileTimer.ShowTimerTable();
|
||||
@@ -1121,22 +1006,19 @@ namespace VEPROMS
|
||||
DoCreatePDF();
|
||||
}
|
||||
|
||||
public void QPCreatePDF()
|
||||
{
|
||||
DoCreatePDF();
|
||||
}
|
||||
public void QPCreatePDF() => DoCreatePDF();
|
||||
|
||||
private void DoCreatePDF()
|
||||
{
|
||||
if (_AllProcedures)
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime dtStart = DateTime.Now;
|
||||
_MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString();
|
||||
PromsPrinter.ClearTransPageNumProblems();
|
||||
CreatePDFs();
|
||||
PromsPrinter.ReportTransPageNumProblems();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
if (_MergedPfd == null)
|
||||
{
|
||||
if (VlnSettings.DebugMode)
|
||||
@@ -1149,7 +1031,7 @@ namespace VEPROMS
|
||||
{
|
||||
MessageBox.Show("Completed Successfully", "Print All Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1158,14 +1040,14 @@ namespace VEPROMS
|
||||
// B2017-009 If the selected item is null don't add a folder
|
||||
if (cbxMultiunitPdfLocation.SelectedItem != null)
|
||||
_MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString();
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
_CreateButtonClicked = true; // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
|
||||
CreatePDF();
|
||||
_CreateButtonClicked = false;
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
private bool _Initializing = false;
|
||||
private readonly bool _Initializing = false;
|
||||
|
||||
private void btnPdfLocation_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1191,10 +1073,7 @@ namespace VEPROMS
|
||||
ppTxbxChangeBarUserMsgOne.Enabled = enabled;
|
||||
ppTxbxChangeBarUserMsgTwo.Enabled = enabled;
|
||||
}
|
||||
private void cbxOvrrideDefChgBars_CheckStateChanged(object sender, EventArgs e)
|
||||
{
|
||||
SetCustomControls(cbxOvrrideDefChgBars.Checked);
|
||||
}
|
||||
private void cbxOvrrideDefChgBars_CheckStateChanged(object sender, EventArgs e) => SetCustomControls(cbxOvrrideDefChgBars.Checked);
|
||||
|
||||
private void rbCustom_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1218,11 +1097,9 @@ namespace VEPROMS
|
||||
// B2024-058 Add validation for Revision Date field of the Print dialog
|
||||
private bool validateDate(TextBox txtDate)
|
||||
{
|
||||
DateTime dDate;
|
||||
if (!(txtDate.Text == ""))
|
||||
{
|
||||
|
||||
if (DateTime.TryParse(txtDate.Text, out dDate))
|
||||
if (DateTime.TryParse(txtDate.Text, out _))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -1243,8 +1120,6 @@ namespace VEPROMS
|
||||
txbDate = txbRevDate;
|
||||
grpDateSelector.Text = "Select Revision Date";
|
||||
grpDateSelector.Visible = calDateSelector.Visible = true;
|
||||
//C2021-007 position the calendar to the current RevDate or if no RevDate, position to today's date
|
||||
DateTime dDate;
|
||||
// B2024-058 Add validation for Revision Date field of the Print dialog
|
||||
if (!validateDate(txbDate))
|
||||
{
|
||||
@@ -1259,7 +1134,7 @@ namespace VEPROMS
|
||||
private void txbRevDate_Leave(object sender, EventArgs e)
|
||||
{
|
||||
if (_Initializing) return;
|
||||
if (this.ActiveControl == calDateSelector)
|
||||
if (ActiveControl == calDateSelector)
|
||||
{
|
||||
txbRevDate.Focus(); //B2018-059 keep the calendar open until a different field on the print dialog is selected
|
||||
return;
|
||||
@@ -1267,8 +1142,7 @@ namespace VEPROMS
|
||||
txbDate = null;
|
||||
grpDateSelector.Visible = calDateSelector.Visible = false;
|
||||
// save the RevDate to the procedure's config.
|
||||
ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig;
|
||||
if (pc == null) return;
|
||||
if (!(MyProcedure.MyConfig is ProcedureConfig pc)) return;
|
||||
pc.Print_RevDate = txbRevDate.Text;
|
||||
using (Item itm = Item.Get(MyProcedure.ItemID))
|
||||
{
|
||||
@@ -1284,8 +1158,7 @@ namespace VEPROMS
|
||||
txbDate = null;
|
||||
grpDateSelector.Visible = calDateSelector.Visible = false;
|
||||
// save the ReviewDate to the procedure's config.
|
||||
ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig;
|
||||
if (pc == null) return;
|
||||
if (!(MyProcedure.MyConfig is ProcedureConfig pc)) return;
|
||||
pc.Print_ReviewDate = txbReviewDate.Text;
|
||||
using (Item itm = Item.Get(MyProcedure.ItemID))
|
||||
{
|
||||
@@ -1327,8 +1200,7 @@ namespace VEPROMS
|
||||
private void SaveRevNumToProcedureConfig(string newrevnum)
|
||||
{
|
||||
// save the RevNum to the procedure's config.
|
||||
ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig;
|
||||
if (pc == null) return;
|
||||
if (!(MyProcedure.MyConfig is ProcedureConfig pc)) return;
|
||||
pc.Print_Rev = newrevnum;
|
||||
using (Item itm = Item.Get(MyProcedure.ItemID))
|
||||
{
|
||||
@@ -1341,22 +1213,16 @@ namespace VEPROMS
|
||||
{
|
||||
if (expPrnSetting.Expanded)
|
||||
{
|
||||
this.Size = new Size(this.Size.Width + (expPrnSetting.Size.Width - expPrnSetting.TitlePanel.Size.Height), this.Size.Height);
|
||||
Size = new Size(Size.Width + (expPrnSetting.Size.Width - expPrnSetting.TitlePanel.Size.Height), Size.Height);
|
||||
// B2018-137 set the visability of Generate Placekeeper
|
||||
swtbtnGeneratePlacekeeper.Visible = lblGeneratePlacekeeper.Visible = ((MyProcedure.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.AutoPlacekeeper) == E_PurchaseOptions.AutoPlacekeeper);
|
||||
}
|
||||
//else
|
||||
// this.Size = new Size(this.Size.Width-(expPrnSetting.Size.Width-expPrnSetting.TitlePanel.Size.Height), this.Size.Height);
|
||||
//Refresh();
|
||||
}
|
||||
|
||||
private void expPrnSetting_ExpandedChanging(object sender, DevComponents.DotNetBar.ExpandedChangeEventArgs e)
|
||||
{
|
||||
if (expPrnSetting.Expanded)
|
||||
//this.Size = new Size(this.Size.Width+(expPrnSetting.Size.Width-expPrnSetting.TitlePanel.Size.Height), this.Size.Height);
|
||||
//else
|
||||
this.Size = new Size(this.Size.Width-(expPrnSetting.Size.Width-expPrnSetting.TitlePanel.Size.Height), this.Size.Height);
|
||||
//Refresh();
|
||||
Size = new Size(Size.Width-(expPrnSetting.Size.Width-expPrnSetting.TitlePanel.Size.Height), Size.Height);
|
||||
|
||||
}
|
||||
|
||||
@@ -1395,15 +1261,15 @@ namespace VEPROMS
|
||||
DoCreatePDF(); // create indivitual pdfs
|
||||
if (_MergedPdfPath != null && _MergedPdfPath != PDFPath) PDFPath = _MergedPfd.Folder = _MergedPdfPath;
|
||||
// C2021-063 pass in whether to generate Alarm Point List text when a merge is done
|
||||
if (!_MergedPfd.DoTheMerge(PromsPrinter.MergedLandscapePages,cbxAlmPtTxt.Checked)) return; // merge them together.
|
||||
if (!_MergedPfd.DoTheMerge(cbxAlmPtTxt.Checked)) return; // merge them together.
|
||||
// if the property to show the file after printing is set (on the version dialog), display it. Otherwise do a dialog to let user know it's done
|
||||
if (_DocVersionConfig.Print_MergedPdfsViewAfter)
|
||||
{
|
||||
if (_MergedPfd.MergedPdfs != null && _MergedPfd.MergedPdfs.Count > 0)
|
||||
{
|
||||
System.Diagnostics.Process sdp = System.Diagnostics.Process.Start(_MergedPfd.MergedFileName);
|
||||
if (sdp != null) // B2020-055 if the current .NET version does not recognize the program used to display the PDF, it will return a NULL (ex. Microsoft Edge)
|
||||
sdp.WaitForInputIdle();
|
||||
// B2020-055 if the current .NET version does not recognize the program used to display the PDF, it will return a NULL (ex. Microsoft Edge)
|
||||
sdp?.WaitForInputIdle();
|
||||
}
|
||||
}
|
||||
else if (VlnSettings.DebugMode)
|
||||
@@ -1416,7 +1282,7 @@ namespace VEPROMS
|
||||
{
|
||||
FlexibleMessageBox.Show("Completed Successfully", "Print All and Merge Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void cbxAssignRevToAllMergedPrcs_CheckedChanged(object sender, EventArgs e)
|
||||
@@ -1428,10 +1294,5 @@ namespace VEPROMS
|
||||
_NewRevForAllProcs = null;
|
||||
}
|
||||
|
||||
|
||||
//private void cbxDebug_CheckedChanged(object sender, EventArgs e)
|
||||
//{
|
||||
// cbxCmpPRMSpfd.Visible = cbxDebug.Checked;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// This file is used by Code Analysis to maintain SuppressMessage
|
||||
// attributes that are applied to this project.
|
||||
// Project-level suppressions either have no target or are given
|
||||
// a specific target and scoped to a namespace, type, member, etc.
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
[assembly: SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Not modifying Naming Styles")]
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using Volian.Base.Library;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using DevComponents.DotNetBar;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
<Compile Include="AboutVEPROMS.Designer.cs">
|
||||
<DependentUpon>AboutVEPROMS.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="BookMarks.cs" />
|
||||
<Compile Include="dlgAnnotationsSelect.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -349,6 +348,7 @@
|
||||
<Compile Include="frmVersionsProperties.Designer.cs">
|
||||
<DependentUpon>frmVersionsProperties.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<EmbeddedResource Include="AboutVEPROMS.resx">
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VEPROMS
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
@@ -21,11 +20,7 @@ namespace VEPROMS
|
||||
public partial class dlgApproveProcedure : Form
|
||||
{
|
||||
public event DisplayConsistencyReportEvent ConsistencyPrintRequest;
|
||||
private void OnConsistencyPrintRequest(ConsistencyReportArgs args)
|
||||
{
|
||||
if (ConsistencyPrintRequest != null)
|
||||
ConsistencyPrintRequest(this, args);
|
||||
}
|
||||
private void OnConsistencyPrintRequest(ConsistencyReportArgs args) => ConsistencyPrintRequest?.Invoke(this, args);
|
||||
private bool CanApprove
|
||||
{
|
||||
get { return btnApprove2.Enabled; }
|
||||
@@ -37,12 +32,8 @@ namespace VEPROMS
|
||||
tsslStatus.Text = value ? "" : "Need to correct the Rev Numbers marked with Question Marks";
|
||||
}
|
||||
}
|
||||
private int _ApplicabilityIndex = 0;
|
||||
public int ApplicabilityIndex
|
||||
{
|
||||
get { return _ApplicabilityIndex; }
|
||||
set { _ApplicabilityIndex = value; }
|
||||
}
|
||||
|
||||
public int ApplicabilityIndex { get; set; } = 0;
|
||||
private SessionInfo _MySessionInfo;
|
||||
public SessionInfo MySessionInfo
|
||||
{
|
||||
@@ -53,23 +44,19 @@ namespace VEPROMS
|
||||
_MyApproval.MySessionInfo = _MySessionInfo;
|
||||
}
|
||||
}
|
||||
private ApprovalInfo _MyApproval;
|
||||
private DocVersionInfo _MyDocVersion;
|
||||
frmVEPROMS _MyFrmVEPROMS = null;
|
||||
public frmVEPROMS MyFrmVEPROMS
|
||||
{
|
||||
get { return _MyFrmVEPROMS; }
|
||||
set { _MyFrmVEPROMS = value; }
|
||||
}
|
||||
private bool _initializing = false; // C2018-008 redesign of user interface
|
||||
private readonly ApprovalInfo _MyApproval;
|
||||
private readonly DocVersionInfo _MyDocVersion;
|
||||
|
||||
public frmVEPROMS MyFrmVEPROMS { get; set; } = null;
|
||||
private readonly bool _initializing = false; // C2018-008 redesign of user interface
|
||||
public dlgApproveProcedure(DocVersionInfo myDocVersion, frmVEPROMS myFrmVEPROMS) // approve all procedures
|
||||
{
|
||||
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave;
|
||||
_MyApproval.SavedSlave = ApplicabilityIndex;
|
||||
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
_MyDocVersion = myDocVersion;
|
||||
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
|
||||
InitializeComponent();
|
||||
@@ -77,7 +64,7 @@ namespace VEPROMS
|
||||
_MyApproval.StatusUpdated -= new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated);
|
||||
_MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated);
|
||||
SetupComboBoxes();
|
||||
foreach (ProcedureInfo pi in myDocVersion.Procedures)
|
||||
foreach (ProcedureInfo pi in myDocVersion.Procedures.OfType<ProcedureInfo>())
|
||||
{
|
||||
bool includeProc = pi.ApplInclude(ApplicabilityIndex); // C2021-027: Procedure level PC/PC
|
||||
if (includeProc)
|
||||
@@ -98,31 +85,8 @@ namespace VEPROMS
|
||||
|
||||
private void FlexGridAddEvents()
|
||||
{
|
||||
//fgProcs.ChangeEdit += new EventHandler(fgProcs_ChangeEdit);
|
||||
//Console.WriteLine(fgProcs.ComboBoxEditor.GetType().Name);
|
||||
//Console.WriteLine(fgProcs.Editor.GetType().Name);
|
||||
//fgProcs.ImeModeChanged += new EventHandler(fgProcs_ImeModeChanged);
|
||||
//fgProcs.LeaveEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_LeaveEdit);
|
||||
//fgProcs.SetupEditor += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_SetupEditor);
|
||||
//fgProcs.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_StartEdit);
|
||||
//fgProcs.ValidateEdit += new C1.Win.C1FlexGrid.ValidateEditEventHandler(fgProcs_ValidateEdit);
|
||||
fgProcs.ComboCloseUp -= new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_ComboCloseUp);
|
||||
fgProcs.ComboCloseUp += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_ComboCloseUp);
|
||||
//fgProcs.MouseDown += new MouseEventHandler(fgProcs_MouseDown);
|
||||
//fgProcs.MouseUp += new MouseEventHandler(fgProcs_MouseUp);
|
||||
}
|
||||
|
||||
void fgProcs_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
C1.Win.C1FlexGrid.HitTestInfo hti = fgProcs.HitTest(e.X, e.Y);
|
||||
//Console.WriteLine("fgProcs_MouseUp X={0},Y={1},Row={2},Col={3}", e.X, e.Y, hti.Row, hti.Column);
|
||||
}
|
||||
|
||||
void fgProcs_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
C1.Win.C1FlexGrid.HitTestInfo hti = fgProcs.HitTest(e.X, e.Y);
|
||||
//Console.WriteLine("fgProcs_MouseDown X={0},Y={1},Row={2},Col={3}", e.X, e.Y, hti.Row, hti.Column);
|
||||
|
||||
}
|
||||
|
||||
void fgProcs_ComboCloseUp(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
|
||||
@@ -134,46 +98,6 @@ namespace VEPROMS
|
||||
//Console.WriteLine("fgProcs_ComboCloseUp row: {0}, col: {1}, val: {2}, etostring: {3}", e.Row, e.Col, fgProcs[e.Row, e.Col], e.ToString());
|
||||
}
|
||||
|
||||
void fgProcs_ValidateEdit(object sender, C1.Win.C1FlexGrid.ValidateEditEventArgs e)
|
||||
{
|
||||
//Console.WriteLine("fgProcs_ValidateEdit");
|
||||
}
|
||||
|
||||
void fgProcs_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
|
||||
{
|
||||
|
||||
object val = fgProcs[e.Row, e.Col];
|
||||
DateTime dt = (DateTime)val;
|
||||
if (dt != null)
|
||||
dt = dt.AddHours(1);
|
||||
fgProcs[e.Row, e.Col] = dt;
|
||||
//Console.WriteLine("fgProcs_StartEdit val: {0}, dt: {1}", val, dt);
|
||||
}
|
||||
|
||||
void fgProcs_SetupEditor(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
|
||||
{
|
||||
//Console.WriteLine("fgProcs_SetupEditor");
|
||||
}
|
||||
|
||||
void fgProcs_LeaveEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
|
||||
{
|
||||
object val = fgProcs[e.Row, e.Col];
|
||||
DateTime dt = (DateTime)val;
|
||||
if (dt != null && dt.Hour != 0)
|
||||
dt = dt.AddHours(-1);
|
||||
fgProcs[e.Row, e.Col] = dt;
|
||||
//Console.WriteLine("fgProcs_LeaveEdit val: {0}, dt: {1}, mouserow={2}, mousecol={3}", val, dt, fgProcs.MouseRow, fgProcs.MouseCol);
|
||||
}
|
||||
|
||||
void fgProcs_ImeModeChanged(object sender, EventArgs e)
|
||||
{
|
||||
//Console.WriteLine("fgProcs_ImeModeChanged");
|
||||
}
|
||||
|
||||
void fgProcs_ChangeEdit(object sender, EventArgs e)
|
||||
{
|
||||
//Console.WriteLine("fgProcs_ChangeEdit");
|
||||
}
|
||||
//C2020-036 returns a string of duplicate procedure numbers separated by newlines for use in FlexibleMessageBox
|
||||
private string dupProcList
|
||||
{
|
||||
@@ -183,12 +107,13 @@ namespace VEPROMS
|
||||
if (dpl.Count > 0)
|
||||
{
|
||||
foreach (string pn in dpl)
|
||||
rtn += pn + "\n";
|
||||
rtn += $"{pn}\n";
|
||||
rtn = rtn.TrimEnd('\n');
|
||||
}
|
||||
return rtn;
|
||||
}
|
||||
}
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private List<string> dpl = new List<string>(); //C2020-036 used to create list duplicate procedure numbers
|
||||
|
||||
private bool InitializePanelSelect()
|
||||
@@ -196,7 +121,7 @@ namespace VEPROMS
|
||||
if (clbMore.Items.Count == 0)
|
||||
{
|
||||
dpl.Clear();
|
||||
foreach (ProcedureInfo pi in _MyDocVersion.Procedures)
|
||||
foreach (ProcedureInfo pi in _MyDocVersion.Procedures.OfType<ProcedureInfo>())
|
||||
{
|
||||
bool includeProc = pi.ApplInclude(ApplicabilityIndex); // C2021-027: Procedure level PC/PC
|
||||
if (includeProc)
|
||||
@@ -245,22 +170,22 @@ namespace VEPROMS
|
||||
lblViewPDF.Enabled = false;
|
||||
if (_MyApproval.MyProcedures.Count == 1)
|
||||
{
|
||||
this.Text = "Approve " + _MyApproval.MyProcedures[0].ProcInfo.DisplayNumber;
|
||||
Text = "Approve " + _MyApproval.MyProcedures[0].ProcInfo.DisplayNumber;
|
||||
swtbtViewPDF.Value = false;
|
||||
swtbtViewPDF.Enabled = true;
|
||||
lblViewPDF.Enabled = true;
|
||||
}
|
||||
else if (_MyApproval.MyProcedures.Count == _MyDocVersion.Procedures.Count)
|
||||
this.Text = "Approve All Procedures";
|
||||
Text = "Approve All Procedures";
|
||||
else
|
||||
this.Text = "Approve Selected Procedures";
|
||||
Text = "Approve Selected Procedures";
|
||||
}
|
||||
private void InitializePanelApprove()
|
||||
{
|
||||
setupLablesAndSwitches(); // C2018-008 redesign of user interface
|
||||
SetupMyApproval();
|
||||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<string, ProcedureInfo> tmpProcedures = new Dictionary<string, ProcedureInfo>();
|
||||
private ProcedureInfo GetProcedureInfoByKey(string key)
|
||||
{
|
||||
@@ -277,12 +202,13 @@ namespace VEPROMS
|
||||
return tmpProcedures[GetDisplayNumberOnly(key)];
|
||||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "selectsome Kept for Legacy - To give Constructor a different Signature")]
|
||||
public dlgApproveProcedure(DocVersionInfo myDocVersion, bool selectSome, frmVEPROMS myFrmVEPROMS) // approve some procedures
|
||||
{
|
||||
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
_MyDocVersion = myDocVersion;
|
||||
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
|
||||
InitializeComponent();
|
||||
@@ -303,8 +229,8 @@ namespace VEPROMS
|
||||
{
|
||||
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
_MyApproval = new ApprovalInfo(myFrmVEPROMS);// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
_MyDocVersion = myProcedure.MyDocVersion;
|
||||
_MyDocVersion.ResetProcedures(); // B2021-035: Pasted, modified number and deleted procedures not refreshed so missing from list
|
||||
ApplicabilityIndex = _MyDocVersion.DocVersionConfig.SelectedSlave; // B2022-033 set the child being approved or workflow so other procedure list can populate
|
||||
@@ -328,12 +254,7 @@ namespace VEPROMS
|
||||
}
|
||||
_initializing = false;
|
||||
}
|
||||
private bool ProcedureSetHasDuplicateProcedureNumbers()
|
||||
{
|
||||
bool hasDuplicateProcNums = false;
|
||||
|
||||
return hasDuplicateProcNums;
|
||||
}
|
||||
void _MyApproval_StatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e)
|
||||
{
|
||||
tsslMsg2.Text = e.MyStatus;
|
||||
@@ -342,33 +263,16 @@ namespace VEPROMS
|
||||
private void SetupMyApproval()
|
||||
{
|
||||
approvalInfoBindingSource.DataSource = _MyApproval;
|
||||
//if(_MyApproval.MyProcedures.Count == 1)
|
||||
// lblOldRevNumber.Text = _MyApproval.RevNumber;
|
||||
//else if (_MyApproval.MyProcedures.Count > 1)
|
||||
// lblMaxRevNumber1.Text = GetMaxRevNumber();
|
||||
_MyApproval.RevType = 1; // C2018-008 redesign of user interface //(revTypeBindingSource.Current as RevType).TypeID;
|
||||
_MyApproval.RevType = 1; // C2018-008 redesign of user interface
|
||||
_MyApproval.RevStage = (stageInfoBindingSource.Current == null) ? 0 : (stageInfoBindingSource.Current as StageInfo).StageID;// C2018-008 redesign of user interface
|
||||
approvalInfoBindingSource.ResetBindings(false);
|
||||
approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures;
|
||||
approvalProcedureBindingSource.ResetBindings(false);
|
||||
//this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
|
||||
}
|
||||
|
||||
private string GetMaxRevNumber()
|
||||
{
|
||||
string mrn = string.Empty;
|
||||
foreach (ApprovalProcedure ap in _MyApproval.MyProcedures)
|
||||
{
|
||||
int k = _MyApproval.FancyShmancyRevCompare(mrn, ap.RevNumber);
|
||||
if (k < 0)
|
||||
mrn = ap.RevNumber;
|
||||
}
|
||||
return mrn;
|
||||
}
|
||||
|
||||
void dlgApproveProcedure_ConsistencyPrintRequest(object sender, ConsistencyReportArgs args)
|
||||
{
|
||||
foreach (ProcedureInfo pi in args.MyItems)
|
||||
foreach (ProcedureInfo pi in args.MyItems.OfType<ProcedureInfo>())
|
||||
pi.IsSelected = _MyApproval.ProcedureExists(pi);
|
||||
PDFConsistencyCheckReport rpt = new PDFConsistencyCheckReport(args.ReportName, args.MyItems, args.MyDocVersion); //B2020-020 needed to pass in DocVersion to get paper size from format
|
||||
rpt.BuildReport();
|
||||
@@ -389,20 +293,12 @@ namespace VEPROMS
|
||||
|
||||
private void btnApprove_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
if(!_MyApproval.Approve(new Point(Left,Bottom),cmbRevisionStage2.Text)) // C2021-020 pass in the revision stage name
|
||||
this.DialogResult = DialogResult.None;
|
||||
this.Cursor = Cursors.Default;
|
||||
DialogResult = DialogResult.None;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2018-008 redesign of user interface
|
||||
// -- Note that the Revison Type data source is still connected (revTypeBindingSource) - commented out for documentatin purposes
|
||||
//private void cmbRevisionType_SelectedIndexChanged(object sender, EventArgs e)
|
||||
//{
|
||||
// RevType rt = cmbRevisionType2.SelectedItem as RevType;
|
||||
// _MyApproval.RevType = rt.TypeID;
|
||||
//}
|
||||
|
||||
private void cmbRevisionStage_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
StageInfo si = cmbRevisionStage2.SelectedItem as StageInfo;
|
||||
@@ -431,7 +327,6 @@ namespace VEPROMS
|
||||
SetupComboBoxes();
|
||||
for (int i = 0; i < clbMore.Items.Count; i++)
|
||||
{
|
||||
string xyz = clbMore.Items[i].ToString();
|
||||
ProcedureInfo pi = GetProcedureInfoByKey(clbMore.Items[i].ToString());
|
||||
if (clbMore.GetItemChecked(i))
|
||||
{
|
||||
@@ -449,10 +344,7 @@ namespace VEPROMS
|
||||
RefreshCount(); // B2021-015: select/clear all not populating left panel & count not refreshed.
|
||||
}
|
||||
|
||||
private void btnCheck_Click(object sender, EventArgs e)
|
||||
{
|
||||
UpdateClbMore();
|
||||
}
|
||||
private void btnCheck_Click(object sender, EventArgs e) => UpdateClbMore();
|
||||
|
||||
private ItemInfoList _MyItemInfoList;
|
||||
private void UpdateClbMore()
|
||||
@@ -485,7 +377,7 @@ namespace VEPROMS
|
||||
if (info.Contains(" - ("))
|
||||
clbMore.Items[i] = info.Substring(0, info.IndexOf(" - ("));
|
||||
}
|
||||
foreach (ProcedureInfo npi in _MyItemInfoList)
|
||||
foreach (ProcedureInfo npi in _MyItemInfoList.OfType<ProcedureInfo>())
|
||||
{
|
||||
string info = string.Format("{0} - ({1})", npi.DisplayNumber, npi.MyDifferenceReasons);
|
||||
//checked list box
|
||||
@@ -506,7 +398,7 @@ namespace VEPROMS
|
||||
for (int i = 0; i < clbMore.Items.Count; i++)
|
||||
{
|
||||
if (!clbMore.Items[i].ToString().Contains(" - ("))
|
||||
clbMore.Items[i] = clbMore.Items[i].ToString() + " - (none)";
|
||||
clbMore.Items[i] = $"{clbMore.Items[i]} - (none)";
|
||||
}
|
||||
Application.DoEvents();
|
||||
clbMore.Enabled = btnAll.Enabled = btnClear.Enabled = true;
|
||||
@@ -523,10 +415,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
// B2021-015: select/clear all not populating left panel & count not refreshed.
|
||||
private void RefreshCount()
|
||||
{
|
||||
lblMore.Text = string.Format("{0} Procedures, {1} Selected", clbMore.Items.Count, clbMore.CheckedItems.Count);
|
||||
}
|
||||
private void RefreshCount() => lblMore.Text = string.Format("{0} Procedures, {1} Selected", clbMore.Items.Count, clbMore.CheckedItems.Count);
|
||||
|
||||
void ItemInfoList_ConsistencyCheckUpdated(object sender, ItemInfoListCCEventArgs args)
|
||||
{
|
||||
@@ -572,14 +461,12 @@ namespace VEPROMS
|
||||
if (clbMore.Items[itemIndex] != null)
|
||||
{
|
||||
SuperTooltipInfo stti = sttMore.GetSuperTooltip(clbMore);
|
||||
//string headerText = tmpProcedures[xyz].DisplayNumber;
|
||||
//string bodyText = tmpProcedures[xyz].MyDifferencesText;
|
||||
stti.HeaderText = GetProcedureInfoByKey(clbMore.Items[itemIndex].ToString()).DisplayNumber;
|
||||
stti.BodyText = GetProcedureInfoByKey(clbMore.Items[itemIndex].ToString()).MyDifferencesText;
|
||||
stti.FooterVisible = false;
|
||||
using (Graphics g = CreateGraphics())
|
||||
{
|
||||
SizeF sf = g.MeasureString(stti.BodyText, this.Font);
|
||||
SizeF sf = g.MeasureString(stti.BodyText, Font);
|
||||
stti.CustomSize = new Size(10 + sf.ToSize().Width, 0);
|
||||
}
|
||||
sttMore.ShowTooltip(sender);
|
||||
@@ -611,10 +498,7 @@ namespace VEPROMS
|
||||
|
||||
}
|
||||
|
||||
private void btnReportMore_Click(object sender, EventArgs e)
|
||||
{
|
||||
OnConsistencyPrintRequest(new ConsistencyReportArgs(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MyConsistency.pdf", _MyItemInfoList, _MyDocVersion)); //B2020-020 needed to pass in DocVersion to get paper size from format
|
||||
}
|
||||
private void btnReportMore_Click(object sender, EventArgs e) => OnConsistencyPrintRequest(new ConsistencyReportArgs(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MyConsistency.pdf", _MyItemInfoList, _MyDocVersion)); //B2020-020 needed to pass in DocVersion to get paper size from format
|
||||
|
||||
private void fgProcs_AfterEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
|
||||
{
|
||||
@@ -724,19 +608,16 @@ namespace VEPROMS
|
||||
private void expAddProcConChk_ExpandedChanged(object sender, ExpandedChangeEventArgs e) // C2018-008 redesign of user interface
|
||||
{
|
||||
if (expAddProcConChk.Expanded)
|
||||
this.Size = new Size(this.Size.Width + (expAddProcConChk.Size.Width - expAddProcConChk.TitlePanel.Size.Height), this.Size.Height);
|
||||
Size = new Size(Size.Width + (expAddProcConChk.Size.Width - expAddProcConChk.TitlePanel.Size.Height), Size.Height);
|
||||
}
|
||||
|
||||
private void expAddProcConChk_ExpandedChanging(object sender, ExpandedChangeEventArgs e) // C2018-008 redesign of user interface
|
||||
{
|
||||
if (expAddProcConChk.Expanded)
|
||||
this.Size = new Size(this.Size.Width - (expAddProcConChk.Size.Width - expAddProcConChk.TitlePanel.Size.Height), this.Size.Height);
|
||||
Size = new Size(Size.Width - (expAddProcConChk.Size.Width - expAddProcConChk.TitlePanel.Size.Height), Size.Height);
|
||||
}
|
||||
|
||||
private void fgProcs_AfterDataRefresh(object sender, ListChangedEventArgs e)
|
||||
{
|
||||
btnApprove2.Enabled = CanApprove && tsslStatus.Text.Length == 0; // B2016-057 If did un-successful Auto Increament Rev Number, then don't enable Approve (Do Work Flow) button
|
||||
}
|
||||
private void fgProcs_AfterDataRefresh(object sender, ListChangedEventArgs e) => btnApprove2.Enabled = CanApprove && tsslStatus.Text.Length == 0; // B2016-057 If did un-successful Auto Increament Rev Number, then don't enable Approve (Do Work Flow) button
|
||||
|
||||
// C2020-040 automatically update left panel when tree item in right panel is selected or deselected
|
||||
private void clbMore_SelectedIndexChanged(object sender, EventArgs e)
|
||||
@@ -758,18 +639,11 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
private void clbMore_MouseLeave(object sender, EventArgs e) //C2020-045 - added switch to control if pop-ups are displayed in procedure list
|
||||
{
|
||||
sttMore.Enabled = true;
|
||||
}
|
||||
=> sttMore.Enabled = true;
|
||||
}
|
||||
public class ApprovalProcedure
|
||||
{
|
||||
private ProcedureInfo _ProcInfo;
|
||||
public ProcedureInfo ProcInfo
|
||||
{
|
||||
get { return _ProcInfo; }
|
||||
set { _ProcInfo = value; }
|
||||
}
|
||||
public ProcedureInfo ProcInfo { get; set; }
|
||||
private string _RevNumber;
|
||||
public string RevNumber
|
||||
{
|
||||
@@ -779,37 +653,17 @@ namespace VEPROMS
|
||||
if (value.Trim() != _RevNumber)
|
||||
{
|
||||
_RevNumber = value.Trim();
|
||||
//_RevDate = DateTime.Now; // commented out for bug fix B2013-012
|
||||
}
|
||||
}
|
||||
}
|
||||
private DateTime _RevDate;
|
||||
public DateTime RevDate
|
||||
{
|
||||
get { return _RevDate; }
|
||||
set { _RevDate = value; }
|
||||
}
|
||||
|
||||
public DateTime RevDate { get; set; }
|
||||
// added RevNumAndDate to handle the use use of the DoRevDate flag
|
||||
// this fixes bug B2013-011 where Today's date would print on the approved procedures (Westinghouse data)
|
||||
// instead of the the Revision Date assigned to the procedure.
|
||||
public string RevNumAndDate
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_ProcInfo.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate)
|
||||
return RevNumber + "/" + RevDate.ToString("M/d/yyyy");
|
||||
else
|
||||
return RevNumber;
|
||||
}
|
||||
}
|
||||
public string DisplayNumber
|
||||
{
|
||||
get { return _ProcInfo.DisplayNumber; }
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("{0}\t{1}\t{2:M/d/yyyy}", _ProcInfo.DisplayNumber, _RevNumber, _RevDate);
|
||||
}
|
||||
public string RevNumAndDate => ProcInfo.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate ? $"{RevNumber}/{RevDate:M/d/yyyy}" : RevNumber;
|
||||
public string DisplayNumber => ProcInfo.DisplayNumber;
|
||||
public override string ToString() => string.Format("{0}\t{1}\t{2:M/d/yyyy}", ProcInfo.DisplayNumber, _RevNumber, RevDate);
|
||||
public ApprovalProcedure(ProcedureInfo proc)
|
||||
{
|
||||
proc.ProcedureConfig.SelectedSlave = proc.MyDocVersion.DocVersionConfig.SelectedSlave;
|
||||
@@ -818,105 +672,42 @@ namespace VEPROMS
|
||||
string sRevDate = proc.ProcedureConfig.Print_RevDate;
|
||||
if (sRevDate == string.Empty)
|
||||
sRevDate = DateTime.Now.ToString("M/d/y");
|
||||
DateTime revDate;
|
||||
if (!DateTime.TryParse(sRevDate, out revDate)) revDate = DateTime.Now;
|
||||
if (!DateTime.TryParse(sRevDate, out DateTime revDate)) revDate = DateTime.Now;
|
||||
RevDate = revDate;
|
||||
}
|
||||
}
|
||||
public class ApprovalMessageArgs : EventArgs
|
||||
{
|
||||
public ApprovalMessageArgs(string msg)
|
||||
{
|
||||
_MyStatus = msg;
|
||||
}
|
||||
private string _MyStatus;
|
||||
public string MyStatus
|
||||
{
|
||||
get { return _MyStatus; }
|
||||
set { _MyStatus = value; }
|
||||
}
|
||||
public ApprovalMessageArgs(string msg) => MyStatus = msg;
|
||||
|
||||
public string MyStatus { get; set; }
|
||||
}
|
||||
public delegate void ApprovalStatusChangeEvent(ApprovalInfo sender, ApprovalMessageArgs e);
|
||||
public class ApprovalInfo
|
||||
{
|
||||
frmVEPROMS _MyFrmVEPROMS = null;
|
||||
public frmVEPROMS MyFrmVEPROMS
|
||||
{
|
||||
get { return _MyFrmVEPROMS; }
|
||||
set { _MyFrmVEPROMS = value; }
|
||||
}
|
||||
public frmVEPROMS MyFrmVEPROMS { get; set; } = null;
|
||||
public event ApprovalStatusChangeEvent StatusUpdated;
|
||||
public void OnStatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e)
|
||||
{
|
||||
if (StatusUpdated != null)
|
||||
StatusUpdated(sender, e);
|
||||
}
|
||||
private SessionInfo _MySessionInfo;
|
||||
public SessionInfo MySessionInfo
|
||||
{
|
||||
get { return _MySessionInfo; }
|
||||
set { _MySessionInfo = value; }
|
||||
}
|
||||
private int _RevType;
|
||||
public int RevType
|
||||
{
|
||||
get { return _RevType; }
|
||||
set { _RevType = value; }
|
||||
}
|
||||
private string _RevNumber;
|
||||
public string RevNumber
|
||||
{
|
||||
get { return _RevNumber; }
|
||||
set { _RevNumber = value; }
|
||||
}
|
||||
private Nullable<DateTime> _RevDate;
|
||||
public Nullable<DateTime> RevDate
|
||||
public void OnStatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e) => StatusUpdated?.Invoke(sender, e);
|
||||
|
||||
public SessionInfo MySessionInfo { get; set; }
|
||||
public int RevType { get; set; }
|
||||
public string RevNumber { get; set; }
|
||||
private DateTime? _RevDate;
|
||||
public DateTime? RevDate
|
||||
{
|
||||
get { return _RevDate == null ? _RevDate : _RevDate.Value; }
|
||||
set { _RevDate = value; }
|
||||
}
|
||||
private int _RevStage;
|
||||
public int RevStage
|
||||
{
|
||||
get { return _RevStage; }
|
||||
set { _RevStage = value; }
|
||||
}
|
||||
private string _RevNote;
|
||||
public string RevNote
|
||||
{
|
||||
get { return _RevNote; }
|
||||
set { _RevNote = value; }
|
||||
}
|
||||
private bool _ViewPDF;
|
||||
public bool ViewPDF
|
||||
{
|
||||
get { return _ViewPDF; }
|
||||
set { _ViewPDF = value; }
|
||||
}
|
||||
private string _MsgNumber;
|
||||
public string MsgNumber
|
||||
{
|
||||
get { return _MsgNumber; }
|
||||
set { _MsgNumber = value; }
|
||||
}
|
||||
private string _MsgDate;
|
||||
public string MsgDate
|
||||
{
|
||||
get { return _MsgDate; }
|
||||
set { _MsgDate = value; }
|
||||
}
|
||||
private bool _CanIncrement;
|
||||
public bool CanIncrement
|
||||
{
|
||||
get { return _CanIncrement; }
|
||||
set { _CanIncrement = value; }
|
||||
}
|
||||
|
||||
public int RevStage { get; set; }
|
||||
public string RevNote { get; set; }
|
||||
public bool ViewPDF { get; set; }
|
||||
public string MsgNumber { get; set; }
|
||||
public string MsgDate { get; set; }
|
||||
public bool CanIncrement { get; set; }
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private List<ApprovalProcedure> _MyProcedures;
|
||||
public List<ApprovalProcedure> MyProcedures
|
||||
{
|
||||
get { return _MyProcedures; }
|
||||
//set { _MyProcedures = value; }
|
||||
}
|
||||
public List<ApprovalProcedure> MyProcedures => _MyProcedures;
|
||||
|
||||
//B2026-058 - If approving multiple procedures at the same time with a multiunit set and one of the procedures is open, PROMS sometimes loses that it is set for an individual unit.
|
||||
// this will save the SectedSlave in case a refresh causes it to get lost
|
||||
@@ -927,10 +718,6 @@ namespace VEPROMS
|
||||
MyFrmVEPROMS = myFrmVEPROMS;// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
_MyProcedures = new List<ApprovalProcedure>();
|
||||
}
|
||||
private static string FormatRev(Match m)
|
||||
{
|
||||
return "".PadLeft(5 - m.Groups[1].Value.Length, '0') + m.Groups[1].Value;
|
||||
}
|
||||
public void AddProcedure(ProcedureInfo proc)
|
||||
{
|
||||
ApprovalProcedure ap = new ApprovalProcedure(proc);
|
||||
@@ -963,64 +750,11 @@ namespace VEPROMS
|
||||
public void Refresh()
|
||||
{
|
||||
bool ok = true;
|
||||
int rv = 0;
|
||||
foreach (ApprovalProcedure ap in MyProcedures)
|
||||
{
|
||||
ok = ok && int.TryParse(ap.RevNumber, out rv);
|
||||
ok = ok && int.TryParse(ap.RevNumber, out int rv);
|
||||
}
|
||||
_CanIncrement = ok;
|
||||
//if (MyProcedures.Count == 1)
|
||||
//{
|
||||
// ProcedureInfo pi = _MyProcedures[0].ProcInfo;
|
||||
// RevNumber = pi.ProcedureConfig.Print_Rev == string.Empty ? "0" : pi.ProcedureConfig.Print_Rev;
|
||||
// DateTime revdate = pi.ProcedureConfig.Print_RevDate == string.Empty ? DateTime.Now : DateTime.TryParse(pi.ProcedureConfig.Print_RevDate, out revdate) ? revdate : DateTime.Now;
|
||||
// RevDate = revdate;
|
||||
// RevNote = string.Empty;
|
||||
// ViewPDF = false;
|
||||
//}
|
||||
//else if (MyProcedures.Count > 1)
|
||||
//{
|
||||
// Regex myRegEx = new Regex("^([0-9]{1,5})");
|
||||
// SortedList<string, ProcedureInfo> printRevs = new SortedList<string, ProcedureInfo>();
|
||||
// SortedList<string, ProcedureInfo> printRevDates = new SortedList<string, ProcedureInfo>();
|
||||
// string printRev = string.Empty;
|
||||
// foreach (ApprovalProcedure pi in MyProcedures)
|
||||
// {
|
||||
// printRev = myRegEx.Replace(pi.RevNumber, new MatchEvaluator(FormatRev));
|
||||
// printRev = printRev == string.Empty ? "0" : printRev;
|
||||
// if (printRev != string.Empty)
|
||||
// if (!printRevs.ContainsKey(printRev))
|
||||
// printRevs.Add(printRev, pi.ProcInfo);
|
||||
// if (pi.RevDate != null)
|
||||
// if (!printRevDates.ContainsKey(pi.RevDate.ToString()))
|
||||
// printRevDates.Add(pi.RevDate.ToString(), pi.ProcInfo);
|
||||
// }
|
||||
// if (printRevs.Count > 1)
|
||||
// {
|
||||
// ProcedureInfo pi = printRevs[printRevs.Keys[printRevs.Count - 1]];
|
||||
// RevNumber = "*";
|
||||
// MsgNumber = "Multiple Revision Numbers found. Enter asterisk (*) to use current revision numbers or plus sign (+) to increment revision numbers";
|
||||
// }
|
||||
// else if (printRevs.Count == 1)
|
||||
// {
|
||||
// ProcedureInfo pi = printRevs[printRevs.Keys[printRevs.Count - 1]];
|
||||
// RevNumber = pi.ProcedureConfig.Print_Rev;
|
||||
// MsgNumber = string.Empty;
|
||||
// }
|
||||
// if (printRevDates.Count > 1)
|
||||
// {
|
||||
// RevDate = null;
|
||||
// MsgDate = "Multiple Revision Dates found. Use current revision dates or manually assign revision date by selecting a date";
|
||||
// }
|
||||
// else if (printRevDates.Count == 1)
|
||||
// {
|
||||
// ProcedureInfo pi = printRevDates[printRevDates.Keys[printRevDates.Count - 1]];
|
||||
// RevDate = DateTime.Parse(pi.ProcedureConfig.Print_RevDate);
|
||||
// MsgDate = string.Empty;
|
||||
// }
|
||||
// else if (printRevDates.Count == 0)
|
||||
// RevDate = DateTime.Now;
|
||||
//}
|
||||
CanIncrement = ok;
|
||||
}
|
||||
public void DeleteProcedure(ProcedureInfo pi)
|
||||
{
|
||||
@@ -1036,10 +770,7 @@ namespace VEPROMS
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
public bool CanApprove
|
||||
{
|
||||
get { return _RevType > 0 && _RevNumber != string.Empty && _RevStage > 0; }
|
||||
}
|
||||
public bool CanApprove => RevType > 0 && RevNumber != string.Empty && RevStage > 0;
|
||||
public int FancyShmancyRevCompare(string s1, string s2)
|
||||
{
|
||||
if (s1 == s2)
|
||||
@@ -1164,13 +895,13 @@ namespace VEPROMS
|
||||
if (MessageBox.Show(sb.ToString(),string.Format("Revert to {0}",nsi.Name),MessageBoxButtons.YesNo,MessageBoxIcon.Stop) == DialogResult.No)
|
||||
return false;
|
||||
}
|
||||
|
||||
DialogResult doSumChgDR = FlexibleMessageBox.Show("Do you want to save the Summary of Changes along with the Approved PDF?\r\n\r\nSelecting 'Cancel' will cancel the approval process.", "Create Summary of Changes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);// == DialogResult.Yes;
|
||||
if (doSumChgDR == DialogResult.Cancel) return false;
|
||||
// C2018-007: When performing more than a single procedure approval (approve all or some), only prompt once whether to include
|
||||
// Summary of Changes (use the following 2 flags, code using them is below)
|
||||
// C2022-022: Moved the prompt once for Summary of changes out of loop and allow user to cancel, go back to approval dialog
|
||||
bool doSumChg = false;
|
||||
DialogResult doSumChgDR = FlexibleMessageBox.Show("Do you want to save the Summary of Changes along with the Approved PDF?\r\n\r\nSelecting 'Cancel' will cancel the approval process.", "Create Summary of Changes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);// == DialogResult.Yes;
|
||||
if (doSumChgDR == DialogResult.Cancel) return false;
|
||||
doSumChg = doSumChgDR == DialogResult.Yes;
|
||||
bool doSumChg = doSumChgDR == DialogResult.Yes;
|
||||
List<string> procsApproved = new List<string>();
|
||||
foreach (ApprovalProcedure ap in MyProcedures)
|
||||
{
|
||||
@@ -1186,9 +917,8 @@ namespace VEPROMS
|
||||
//B2026-058 - If approving multiple procedures at the same time with a multiunit set and one of the procedures is open, PROMS sometimes loses that it is set for an individual unit.
|
||||
ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave = SavedSlave;
|
||||
}
|
||||
procsApproved.Add(ap.ProcInfo.DisplayNumber + " " + ap.ProcInfo.DisplayText);
|
||||
procsApproved.Add($"{ap.ProcInfo.DisplayNumber} {ap.ProcInfo.DisplayText}");
|
||||
RevisionInfo ric = pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(pi.ItemID, pi.MyDocVersion.DocVersionConfig.SelectedSlave) : RevisionInfo.GetCurrentByItemID(pi.ItemID);
|
||||
// RevisionInfo rip = RevisionInfo.GetPreviousByItemID(pi.ItemID);
|
||||
DateTime myDTS = pi.DTS; // pi.DTS is date of last approval
|
||||
string cbDTS = (pi.MyConfig as ProcedureConfig).Print_ChangeBarDate;
|
||||
// pi.DTS was the field that was used to store the approval date before master/slave code was added. Use ChangeBarDate if it is set - this is set either manually if no approval date (from treeview menu) or
|
||||
@@ -1203,7 +933,6 @@ namespace VEPROMS
|
||||
if (ap.RevNumber == ric.RevisionNumber)
|
||||
{
|
||||
myDTS = ric.MyConfig.History_StartDate;
|
||||
//UpdateProcedureDTS(pi, myDTS);
|
||||
}
|
||||
// New approval, i.e. not same revision number, use the date from the latest approved version
|
||||
else
|
||||
@@ -1211,26 +940,24 @@ namespace VEPROMS
|
||||
myDTS = ric.LatestVersion.DTS; // B2019-051: Extra info in Change Summary. Use the last 'approved' (ric.LatestVersion.MyStage.IsApproved==1)
|
||||
}
|
||||
}
|
||||
Revision revision = null;
|
||||
Revision revision;
|
||||
if (ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0)
|
||||
{
|
||||
revision = Revision.GetByItemIDAndRevisionNumberAndUnitID(pi.ItemID, ap.RevNumber, ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave);
|
||||
if (revision == null) // no revision yet, need to set the StartDate & which slave
|
||||
{
|
||||
RevisionConfig cfg = new RevisionConfig();
|
||||
cfg.History_StartDate = myDTS; // if there is a slave, date found from above code
|
||||
cfg.Applicability_Index = ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave;
|
||||
//cfg.Save();
|
||||
RevisionConfig cfg = new RevisionConfig
|
||||
{
|
||||
History_StartDate = myDTS, // if there is a slave, date found from above code
|
||||
Applicability_Index = ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave
|
||||
};
|
||||
revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), now, Volian.Base.Library.VlnSettings.UserID);
|
||||
// revision.MyConfig.History_StartDate = pi.DTS;
|
||||
// revision.MyConfig.Save();
|
||||
// revision = revision.Save();
|
||||
}
|
||||
else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate)
|
||||
{
|
||||
//C2016-036 - Inform the user that an existing approved version will be replaced
|
||||
//C2022-016 - Improve/clarify the dialog message
|
||||
if (MessageBox.Show("Replace Existing Revision " + ap.RevNumber + "?\r\n\r\nTo create a new revision, click Cancel then change\r\nthe Rev. Number.", "Replace Existing", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
|
||||
if (MessageBox.Show($"Replace Existing Revision {ap.RevNumber}?\r\n\r\nTo create a new revision, click Cancel then change\r\nthe Rev. Number.", "Replace Existing", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
|
||||
return false;
|
||||
revision.Notes = RevNote;
|
||||
revision.RevisionDate = ap.RevDate;
|
||||
@@ -1245,19 +972,17 @@ namespace VEPROMS
|
||||
// went wrong, the revision could be created but not the version. Added the count check below.
|
||||
if (revision == null || revision.RevisionVersionCount==0) // no revision yet, need to set the StartDate. If there is a revision, it uses the revision date as the startdate
|
||||
{
|
||||
RevisionConfig cfg = new RevisionConfig();
|
||||
cfg.History_StartDate = pi.DTS; // todo: this should probably be myDTS, found during fix of B2019-051.
|
||||
//cfg.Save();
|
||||
RevisionConfig cfg = new RevisionConfig
|
||||
{
|
||||
History_StartDate = pi.DTS // todo: this should probably be myDTS, found during fix of B2019-051.
|
||||
};
|
||||
revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), now, Volian.Base.Library.VlnSettings.UserID);
|
||||
// revision.MyConfig.History_StartDate = pi.DTS;
|
||||
// revision.MyConfig.Save();
|
||||
// revision = revision.Save();
|
||||
}
|
||||
else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate)
|
||||
{
|
||||
//C2016-036 - Inform the user that an existing approved version will be replaced
|
||||
//C2022-016 - Improve/clarify the dialog message
|
||||
if (MessageBox.Show("Replace Existing Revision " + ap.RevNumber + "?\r\n\r\nTo create a new revision, click Cancel then change\r\nthe Rev. Number.", "Replace Existing", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
|
||||
if (MessageBox.Show($"Replace Existing Revision {ap.RevNumber}?\r\n\r\nTo create a new revision, click Cancel then change\r\nthe Rev. Number.", "Replace Existing", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
|
||||
return false;
|
||||
revision.Notes = RevNote;
|
||||
revision.RevisionDate = ap.RevDate;
|
||||
@@ -1268,10 +993,7 @@ namespace VEPROMS
|
||||
//B2017-149 Allow the user to choose if they want the Summary of Changes report created during the approval process
|
||||
if (doSumChg) summaryBuf = CreateSummary(ref pi, summaryPDF, myDTS);
|
||||
DateTime currentDTS = now;
|
||||
Check check = Check.MakeCheck(revision, Stage.GetJustStage(RevStage), RevisionInfo.BuildRevisionChecks(pi), currentDTS, VlnSettings.UserID);
|
||||
//make pdf with promsprinter and get byte stream
|
||||
// Moved to end so that Item and Content are saved at the same time
|
||||
//UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS);
|
||||
_ = Check.MakeCheck(revision, Stage.GetJustStage(RevStage), RevisionInfo.BuildRevisionChecks(pi), currentDTS, VlnSettings.UserID);
|
||||
string watermarkColor = "Blue"; // this is the default watermark color
|
||||
string waterMark = Stage.GetJustStage(RevStage).IsApproved > 0 ? null : Stage.GetJustStage(RevStage).Name;
|
||||
// C2022-004 - BNPP if doing an approval stage, and the format file uses the UseUnitWatermarkOnApproved format flag (<PrintData UseUnitWatermarkOnApproved = "true"\>)
|
||||
@@ -1281,39 +1003,14 @@ namespace VEPROMS
|
||||
waterMark = "Unit Designator";
|
||||
frmPDFStatusForm.SetUnitWatermark(MyProcedures[0].ProcInfo, ref waterMark, ref watermarkColor);
|
||||
}
|
||||
//ProcedureInfo myproc = pi;
|
||||
//frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location);
|
||||
//myproc.ChangeBarDate = myDTS;
|
||||
frmPDFStatusForm frm = new frmPDFStatusForm(pi, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location, pi.MyDocVersion.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts, true, "", false, 0, false,
|
||||
MyProcedures.Count > (MyProcedures[0].ProcInfo.MyDocVersion.Procedures.Count / 4), pi.MyDocVersion.DocVersionConfig.Print_DuplexBlankPageText, null, watermarkColor); // C2019-004: Allow user to define duplex lank page text at the docversion level
|
||||
frm.AllowAllWatermarks = true;
|
||||
frm.CloseWhenDone = !ViewPDF;
|
||||
frm.DocReplace = new Dictionary<int, byte[]>(); // will hold the Word Attachments with resolved ROs
|
||||
MyProcedures.Count > (MyProcedures[0].ProcInfo.MyDocVersion.Procedures.Count / 4), pi.MyDocVersion.DocVersionConfig.Print_DuplexBlankPageText, null, watermarkColor)
|
||||
{
|
||||
AllowAllWatermarks = true,
|
||||
CloseWhenDone = !ViewPDF,
|
||||
DocReplace = new Dictionary<int, byte[]>() // will hold the Word Attachments with resolved ROs
|
||||
}; // C2019-004: Allow user to define duplex lank page text at the docversion level
|
||||
frm.ShowDialog();
|
||||
//if (ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0)
|
||||
//{
|
||||
// using (ProcedureInfo myproc = ProcedureInfo.GetItemAndChildrenByUnit(pi.ItemID, 0, ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave))
|
||||
// {
|
||||
// //frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location);
|
||||
// myproc.ChangeBarDate = myDTS;
|
||||
// frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location);
|
||||
// frm.AllowAllWatermarks = true;
|
||||
// frm.CloseWhenDone = !ViewPDF;
|
||||
// frm.ShowDialog();
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// using (ProcedureInfo myproc = ProcedureInfo.GetItemAndChildren(pi.ItemID))
|
||||
// {
|
||||
// //frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location);
|
||||
// myproc.ChangeBarDate = myDTS;
|
||||
// frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location);
|
||||
// frm.AllowAllWatermarks = true;
|
||||
// frm.CloseWhenDone = !ViewPDF;
|
||||
// frm.ShowDialog();
|
||||
// }
|
||||
//}
|
||||
FileInfo pdfFile = new FileInfo(pdfPath);
|
||||
FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||
byte[] buf = new byte[pdfFile.Length];
|
||||
@@ -1333,8 +1030,10 @@ namespace VEPROMS
|
||||
return false;
|
||||
}
|
||||
|
||||
dlgExportImport dlg = new dlgExportImport("Export", pi, MyFrmVEPROMS, (selectedSlave)); // "true tell export to convert ROs and Transitions to text
|
||||
dlg.DocReplace = frm.DocReplace; // this tells approval to prepare an export file with resolved transitions and ROs, word sections are saved with resolved ROs during approval PDF creation and saved in DocReplace
|
||||
dlgExportImport dlg = new dlgExportImport("Export", pi, MyFrmVEPROMS, (selectedSlave))
|
||||
{
|
||||
DocReplace = frm.DocReplace // this tells approval to prepare an export file with resolved transitions and ROs, word sections are saved with resolved ROs during approval PDF creation and saved in DocReplace
|
||||
}; // "true tell export to convert ROs and Transitions to text
|
||||
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
|
||||
dlg.ExportItem(xd, pi, "procedure");
|
||||
frm.DocReplace = dlg.DocReplace = null;
|
||||
@@ -1376,21 +1075,20 @@ namespace VEPROMS
|
||||
}
|
||||
else
|
||||
UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS, selectedSlave);
|
||||
//UpdateProcedureDTS(pi, DateTime.Now);
|
||||
pi.MyDocVersion.DocVersionConfig.SelectedSlave = selectedSlave;
|
||||
}
|
||||
// C2019-019: Put out a complete message when approval is done.
|
||||
// C2020-024 Display a more descriptive end message
|
||||
if (procsApproved.Count > 0)
|
||||
{
|
||||
string msg = "";
|
||||
string msg;
|
||||
if (procsApproved.Count == (MyProcedures[0]).ProcInfo.MyDocVersion.Procedures.Count)
|
||||
msg = "All Procedures were Approved.";
|
||||
else
|
||||
{
|
||||
msg = "The following procedures were approved:\n";
|
||||
foreach (string prc in procsApproved)
|
||||
msg += "\n" + prc;
|
||||
msg += $"\n{prc}";
|
||||
}
|
||||
FlexibleMessageBox.Show( msg, "Approve Procedure(s)", MessageBoxButtons.OK);
|
||||
}
|
||||
@@ -1434,7 +1132,7 @@ namespace VEPROMS
|
||||
{
|
||||
while (!(ex is System.Data.SqlClient.SqlException) && ex.InnerException != null)
|
||||
ex = ex.InnerException;
|
||||
MessageBox.Show(ex.Message +"\r\n\r\nApproval will continue without the Summary of Change Report", ex.GetType().Name + " while trying to create Summary of Changes." , MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
MessageBox.Show(ex.Message +"\r\n\r\nApproval will continue without the Summary of Change Report", $"{ex.GetType().Name} while trying to create Summary of Changes.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1456,7 +1154,7 @@ namespace VEPROMS
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendLine("Could not create");
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(pdfFile + ".");
|
||||
sb.AppendLine($"{pdfFile}.");
|
||||
sb.AppendLine();
|
||||
sb.AppendLine("If it is open, close it then press the OK button.");
|
||||
if (cntr >= 3) // after two tries offer additional troubleshooting information
|
||||
@@ -1471,18 +1169,9 @@ namespace VEPROMS
|
||||
return true;
|
||||
}
|
||||
|
||||
private void UpdateProcedureDTS(ProcedureInfo pi, DateTime dts)
|
||||
{
|
||||
using (Item itm = Item.Get(pi.ItemID))
|
||||
{
|
||||
itm.DTS = dts;
|
||||
itm.Save();
|
||||
}
|
||||
}
|
||||
private void UpdateProcedureConfig(ProcedureInfo procedureInfo, string revNumber, DateTime revDate, DateTime dts, int selectedSlave)
|
||||
{
|
||||
ProcedureConfig pc = procedureInfo.MyConfig as ProcedureConfig;
|
||||
if (pc == null) return;
|
||||
if (!(procedureInfo.MyConfig is ProcedureConfig pc)) return;
|
||||
|
||||
pc.SelectedSlave = selectedSlave;
|
||||
pc.Print_Rev = revNumber;
|
||||
@@ -1492,7 +1181,6 @@ namespace VEPROMS
|
||||
using (Item itm = Item.Get(procedureInfo.ItemID))
|
||||
{
|
||||
itm.MyContent.Config = pc.ToString();
|
||||
//itm.DTS = dts;
|
||||
itm.UserID = Volian.Base.Library.VlnSettings.UserID;
|
||||
itm.Save();
|
||||
|
||||
@@ -1515,22 +1203,12 @@ namespace VEPROMS
|
||||
}
|
||||
public class RevType
|
||||
{
|
||||
private int _TypeID;
|
||||
public int TypeID
|
||||
{
|
||||
get { return _TypeID; }
|
||||
set { _TypeID = value; }
|
||||
}
|
||||
private string _TypeName;
|
||||
public string TypeName
|
||||
{
|
||||
get { return _TypeName; }
|
||||
set { _TypeName = value; }
|
||||
}
|
||||
public int TypeID { get; set; }
|
||||
public string TypeName { get; set; }
|
||||
public RevType(int i, string s)
|
||||
{
|
||||
_TypeID = i;
|
||||
_TypeName = s;
|
||||
TypeID = i;
|
||||
TypeName = s;
|
||||
}
|
||||
}
|
||||
public class RevTypes : List<RevType>
|
||||
@@ -1539,29 +1217,14 @@ namespace VEPROMS
|
||||
public delegate void DisplayConsistencyReportEvent(object sender, ConsistencyReportArgs args);
|
||||
public class ConsistencyReportArgs : EventArgs
|
||||
{
|
||||
private string _ReportName;
|
||||
public string ReportName
|
||||
{
|
||||
get { return _ReportName; }
|
||||
set { _ReportName = value; }
|
||||
}
|
||||
private ItemInfoList _MyItems;
|
||||
public ItemInfoList MyItems
|
||||
{
|
||||
get { return _MyItems; }
|
||||
set { _MyItems = value; }
|
||||
}
|
||||
private DocVersionInfo _MyDocVersion;
|
||||
public DocVersionInfo MyDocVersion
|
||||
{
|
||||
get { return _MyDocVersion; }
|
||||
set { _MyDocVersion = value; }
|
||||
}
|
||||
public string ReportName { get; set; }
|
||||
public ItemInfoList MyItems { get; set; }
|
||||
public DocVersionInfo MyDocVersion { get; set; }
|
||||
public ConsistencyReportArgs(string reportName, ItemInfoList myItems, DocVersionInfo myDocVerion)
|
||||
{
|
||||
_ReportName = reportName;
|
||||
_MyItems = myItems;
|
||||
_MyDocVersion = myDocVerion; //B2020-020 needed to pass in DocVersion to get paper size from format
|
||||
ReportName = reportName;
|
||||
MyItems = myItems;
|
||||
MyDocVersion = myDocVerion; //B2020-020 needed to pass in DocVersion to get paper size from format
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VEPROMS
|
||||
@@ -21,8 +14,8 @@ namespace VEPROMS
|
||||
|
||||
private void btnTabs_Click(object sender, EventArgs e)
|
||||
{
|
||||
Remember = this.cbRemember.Checked;
|
||||
this.Close();
|
||||
Remember = cbRemember.Checked;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
@@ -23,35 +19,21 @@ namespace VEPROMS
|
||||
_MySessionInfo = SessionInfo.Get(_MyOwnerInfo.SessionID);
|
||||
_MyUserInfo = ui;
|
||||
}
|
||||
private ProcedureInfo _MyProcedureInfo;
|
||||
public ProcedureInfo MyProcedureInfo
|
||||
{
|
||||
get { return _MyProcedureInfo; }
|
||||
}
|
||||
private SectionInfo _MySectionInfo;
|
||||
public SectionInfo MySectionInfo
|
||||
{
|
||||
get { return _MySectionInfo; }
|
||||
}
|
||||
private OwnerInfo _MyOwnerInfo;
|
||||
public OwnerInfo MyOwnerInfo
|
||||
{
|
||||
get { return _MyOwnerInfo; }
|
||||
}
|
||||
private SessionInfo _MySessionInfo;
|
||||
public SessionInfo MySessionInfo
|
||||
{
|
||||
get { return _MySessionInfo; }
|
||||
}
|
||||
private UserInfo _MyUserInfo;
|
||||
public UserInfo MyUserInfo
|
||||
{
|
||||
get { return _MyUserInfo; }
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
private readonly ProcedureInfo _MyProcedureInfo;
|
||||
public ProcedureInfo MyProcedureInfo => _MyProcedureInfo;
|
||||
private readonly SectionInfo _MySectionInfo;
|
||||
public SectionInfo MySectionInfo => _MySectionInfo;
|
||||
private readonly OwnerInfo _MyOwnerInfo;
|
||||
public OwnerInfo MyOwnerInfo => _MyOwnerInfo;
|
||||
private readonly SessionInfo _MySessionInfo;
|
||||
public SessionInfo MySessionInfo => _MySessionInfo;
|
||||
private readonly UserInfo _MyUserInfo;
|
||||
public UserInfo MyUserInfo => _MyUserInfo;
|
||||
|
||||
|
||||
private void dlgCheckedOutProcedure_Load(object sender, EventArgs e)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (MyProcedureInfo != null)
|
||||
sb.AppendLine(string.Format("The procedure {0} - {1}", MyProcedureInfo.DisplayNumber, MyProcedureInfo.DisplayText));
|
||||
else
|
||||
@@ -74,6 +56,7 @@ namespace VEPROMS
|
||||
|
||||
private void btnForce_Click(object sender, EventArgs e)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
MySessionInfo.CheckInItem(MyOwnerInfo.OwnerID);
|
||||
sb.AppendLine();
|
||||
sb.AppendLine("Forced Check In has been completed");
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Controls.Library;
|
||||
using Volian.Base.Library;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
@@ -21,12 +19,7 @@ namespace VEPROMS
|
||||
#region Log4Net
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
#endregion
|
||||
frmVEPROMS _MyFrmVEPROMS = null;// Save frmVEPROMS for Import to shutoff SessionPing
|
||||
public frmVEPROMS MyFrmVEPROMS
|
||||
{
|
||||
get { return _MyFrmVEPROMS; }
|
||||
set { _MyFrmVEPROMS = value; }
|
||||
}
|
||||
public frmVEPROMS MyFrmVEPROMS { get; set; } = null;
|
||||
private bool _ConvertROsToTextDuringImport = false;
|
||||
private bool _ConvertROsAndTransitionsToText = false; // set to true when Approval creates an Export file
|
||||
protected bool _ExportBothConvertedandNot = false; // set to true when Electronic Procedure export
|
||||
@@ -40,32 +33,18 @@ namespace VEPROMS
|
||||
//this will hold if a specific unit was selected
|
||||
readonly protected int _UnitIndex;
|
||||
|
||||
private ItemInfo _ExternalTransitionItem = null;
|
||||
public ItemInfo ExternalTransitionItem
|
||||
{
|
||||
get { return _ExternalTransitionItem; }
|
||||
set { _ExternalTransitionItem = value; }
|
||||
}
|
||||
public ItemInfo ExternalTransitionItem { get; set; } = null;
|
||||
private Dictionary<int, int> floatFoldout;
|
||||
private Dictionary<int, string> importedFormat;
|
||||
private Dictionary<string, int> existingFormat;
|
||||
private Dictionary<string, string> renamedUCFFormatName; // if format is renamed, this is its new name so references to it can be made
|
||||
private Dictionary<int, int> renamedUCFFormatId; // if format is renamed, this is its old->new formatid
|
||||
private int oldRODbID;
|
||||
private int newRODbID;
|
||||
private FolderInfo _MyNewFolder;
|
||||
public FolderInfo MyNewFolder
|
||||
{
|
||||
get { return _MyNewFolder; }
|
||||
}
|
||||
private ProcedureInfo _MyNewProcedure;
|
||||
public ProcedureInfo MyNewProcedure
|
||||
{
|
||||
get { return _MyNewProcedure; }
|
||||
set { _MyNewProcedure = value; }
|
||||
}
|
||||
public FolderInfo MyNewFolder => _MyNewFolder;
|
||||
|
||||
public ProcedureInfo MyNewProcedure { get; set; }
|
||||
private string PEIPath;
|
||||
private string _MyMode;
|
||||
private readonly string _MyMode;
|
||||
protected FolderInfo MyFolder = null;
|
||||
protected DocVersionInfo MyDocVersion = null;
|
||||
protected ProcedureInfo MyProcedure = null;
|
||||
@@ -81,7 +60,7 @@ namespace VEPROMS
|
||||
_MyMode = mode;
|
||||
MyFolder = folderInfo;
|
||||
InitializeComponent();
|
||||
this.Text = mode + " Dialog for " + folderInfo.Name;
|
||||
Text = $"{mode} Dialog for {folderInfo.Name}";
|
||||
_UnitIndex = unitIndex;
|
||||
|
||||
if (_UnitIndex > 0)
|
||||
@@ -103,9 +82,9 @@ namespace VEPROMS
|
||||
MyDocVersion = docVersionInfo;
|
||||
InitializeComponent();
|
||||
if (mode.ToUpper().Contains("FORMAT"))
|
||||
this.Text = mode;
|
||||
Text = mode;
|
||||
else
|
||||
this.Text = mode + " Dialog for " + docVersionInfo.Name + " of " + docVersionInfo.MyFolder.Name;
|
||||
Text = $"{mode} Dialog for {docVersionInfo.Name} of {docVersionInfo.MyFolder.Name}";
|
||||
_UnitIndex = unitIndex;
|
||||
|
||||
if (_UnitIndex > 0)
|
||||
@@ -124,7 +103,7 @@ namespace VEPROMS
|
||||
_MyMode = mode;
|
||||
MyProcedure = procedureInfo;
|
||||
InitializeComponent();
|
||||
this.Text = mode + " Dialog for " + procedureInfo.DisplayNumber;
|
||||
Text = $"{mode} Dialog for {procedureInfo.DisplayNumber}";
|
||||
_UnitIndex = unitIndex;
|
||||
|
||||
if (_UnitIndex > 0)
|
||||
@@ -173,7 +152,7 @@ namespace VEPROMS
|
||||
ofd.InitialDirectory = PEIPath;
|
||||
pnlImport.BringToFront();
|
||||
}
|
||||
this.Height = this.Height / formsize;
|
||||
Height /= formsize;
|
||||
}
|
||||
private void btnExport_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -220,19 +199,19 @@ namespace VEPROMS
|
||||
string msg = "Finished Exporting:\n\n";
|
||||
if (_MyMode.ToUpper().Contains("FORMAT"))
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
MyStart = DateTime.Now;
|
||||
btnDoExport.Enabled = false;
|
||||
lblExportStatus.Text = "Performing Export of UC Formats";
|
||||
SaveExportUCF();
|
||||
|
||||
TimeSpan elapsed = DateTime.Now.Subtract(MyStart);
|
||||
lblExportStatus.Text = "Format Export Completed in " + elapsed.ToString();
|
||||
this.Cursor = Cursors.Default;
|
||||
lblExportStatus.Text = $"Format Export Completed in {elapsed}";
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
else if (MyFolder != null)
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
MyStart = DateTime.Now;
|
||||
btnDoExport.Enabled = false;
|
||||
lblExportStatus.Text = "Performing Export";
|
||||
@@ -240,7 +219,7 @@ namespace VEPROMS
|
||||
|
||||
TimeSpan elapsed = DateTime.Now.Subtract(MyStart);
|
||||
lblExportStatus.Text = "Export Completed in " + elapsed.ToString();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
msg += MyFolder.Name;
|
||||
}
|
||||
else if (MyProcedure != null)
|
||||
@@ -281,7 +260,7 @@ namespace VEPROMS
|
||||
|
||||
}
|
||||
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
MyStart = DateTime.Now;
|
||||
btnDoExport.Enabled = false;
|
||||
lblExportStatus.Text = "Performing Export";
|
||||
@@ -294,7 +273,7 @@ namespace VEPROMS
|
||||
xd.Save(fileLocation);
|
||||
TimeSpan elapsed = DateTime.Now.Subtract(MyStart);
|
||||
lblExportStatus.Text = "Export Completed in " + elapsed.ToString();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
// added message to user when export of a procedure or procedure set has completed
|
||||
if (successfullExport)
|
||||
@@ -338,7 +317,7 @@ namespace VEPROMS
|
||||
bool isImported = false;
|
||||
bool canceledPressed = false;
|
||||
btnImport.Enabled = false;
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
MyStart = DateTime.Now;
|
||||
btnDoImport.Enabled = false;
|
||||
lblImportStatus.Text = "Performing Import";
|
||||
@@ -350,13 +329,13 @@ namespace VEPROMS
|
||||
{
|
||||
TurnChangeManagerOff.Execute();
|
||||
MyFrmVEPROMS.DisablePing = true;// Turn-off SessionPing
|
||||
bool result = TryToImportUCFs(ref isImported, ref canceledPressed);
|
||||
bool result = TryToImportUCFs(ref isImported);
|
||||
MyFrmVEPROMS.DisablePing = false;// Turn-on SessionPing
|
||||
TurnChangeManagerOn.Execute();
|
||||
if (!result) // B2019-006: let user know there was an error during import:
|
||||
{
|
||||
MessageBox.Show("Error occurred during import. Format(s) not imported.");
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
btnCloseImport.Enabled = true;
|
||||
return;
|
||||
}
|
||||
@@ -400,7 +379,7 @@ namespace VEPROMS
|
||||
if (isImported)
|
||||
{
|
||||
TimeSpan elapsed = DateTime.Now.Subtract(MyStart);
|
||||
lblImportStatus.Text = "Import Completed in " + elapsed.ToString();
|
||||
lblImportStatus.Text = $"Import Completed in {elapsed}";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -408,7 +387,7 @@ namespace VEPROMS
|
||||
btnDoImport.Enabled = true;
|
||||
}
|
||||
}
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
btnCloseImport.Enabled = true;
|
||||
if (isImported)
|
||||
{
|
||||
@@ -436,7 +415,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryToImportUCFs(ref bool isImported, ref bool canceledPressed)
|
||||
private bool TryToImportUCFs(ref bool isImported)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -450,7 +429,7 @@ namespace VEPROMS
|
||||
if (nl == null || nl.Count == 0) // B2019-014: Check contents of import file for compatible operation
|
||||
{
|
||||
MessageBox.Show("A Procedure export file can only be imported from the Tree View.", "Import Failed", MessageBoxButtons.OK);
|
||||
this.Close();
|
||||
Close();
|
||||
isImported = false;
|
||||
return false;
|
||||
}
|
||||
@@ -504,7 +483,7 @@ namespace VEPROMS
|
||||
{
|
||||
MessageBox.Show(ex.StackTrace, ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||||
_MyLog.Warn("Failed during UC Formats Import", ex);
|
||||
this.Close();
|
||||
Close();
|
||||
isImported = false;
|
||||
return false;
|
||||
}
|
||||
@@ -519,7 +498,7 @@ namespace VEPROMS
|
||||
{
|
||||
MessageBox.Show(ex.StackTrace, ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||||
_MyLog.Warn("Failed during Procedure Import", ex);
|
||||
this.Close();
|
||||
Close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -528,11 +507,9 @@ namespace VEPROMS
|
||||
private bool _ImportingApprovedExportFile = false;
|
||||
private bool ImportingApprovedExport(string fnAndPath)
|
||||
{
|
||||
bool rtnval = false;
|
||||
int idx = fnAndPath.LastIndexOf("//") + 1;
|
||||
string tmp = fnAndPath.Substring(idx);
|
||||
rtnval = tmp.ToUpper().Contains("APPROVED_REV_");
|
||||
return rtnval;
|
||||
return tmp.ToUpper().Contains("APPROVED_REV_");
|
||||
}
|
||||
private bool ImportProcedure(ref bool isImported, ref bool canceledPressed)
|
||||
{
|
||||
@@ -544,14 +521,16 @@ namespace VEPROMS
|
||||
if (ucf != null)
|
||||
{
|
||||
MessageBox.Show("A User Control of Format export file can only be imported from Administration on the V-Button.", "Import Failed", MessageBoxButtons.OK);
|
||||
this.Cursor = Cursors.Default;
|
||||
this.btnImport.Enabled = true; // allow user to select a different export file to import
|
||||
this.btnCloseImport.Enabled = true; // allow user to close import dialog
|
||||
Cursor = Cursors.Default;
|
||||
btnImport.Enabled = true; // allow user to select a different export file to import
|
||||
btnCloseImport.Enabled = true; // allow user to close import dialog
|
||||
return false;
|
||||
}
|
||||
string rofolderpath = xd.DocumentElement.Attributes.GetNamedItem("rofolderpath").InnerText;
|
||||
int rodbid = int.Parse(xd.DocumentElement.Attributes.GetNamedItem("rodbid").InnerText);
|
||||
#pragma warning disable IDE0059 // Unnecessary assignment of a value - rofstid for Debugging/future use
|
||||
int rofstid = int.Parse(xd.DocumentElement.Attributes.GetNamedItem("rofstid").InnerText);
|
||||
#pragma warning restore IDE0059 // Unnecessary assignment of a value
|
||||
if (MyDocVersion.DocVersionAssociationCount > 0)
|
||||
{
|
||||
// use current ROPath
|
||||
@@ -560,15 +539,17 @@ namespace VEPROMS
|
||||
// then ask if we should import using the current workingdraft RO Path, convert the ROs to text, or cancel the import
|
||||
if (MyRODb.FolderPath != rofolderpath && !_ImportingApprovedExportFile) //B2020-095 don't display dialog if importing approved procedure export file
|
||||
{
|
||||
dlgImpHowToHandleROs dlg = new dlgImpHowToHandleROs();
|
||||
dlg.ImportedROFolder = rofolderpath;
|
||||
dlg.WorkingDraftROFolder = MyRODb.FolderPath;
|
||||
dlgImpHowToHandleROs dlg = new dlgImpHowToHandleROs
|
||||
{
|
||||
ImportedROFolder = rofolderpath,
|
||||
WorkingDraftROFolder = MyRODb.FolderPath
|
||||
};
|
||||
dlg.ShowDialog(this);
|
||||
if (dlg.CancelImport)
|
||||
{
|
||||
this.Cursor = Cursors.Default;
|
||||
this.btnImport.Enabled = true; // allow user to select a different export file to import
|
||||
this.btnDoImport.Enabled = true; // allow user to change mind and perform the import
|
||||
Cursor = Cursors.Default;
|
||||
btnImport.Enabled = true; // allow user to select a different export file to import
|
||||
btnDoImport.Enabled = true; // allow user to change mind and perform the import
|
||||
return false; // Return False to Indicate that the Import did not succeed
|
||||
}
|
||||
_ConvertROsToTextDuringImport = dlg.ConvertROsToText;
|
||||
@@ -612,15 +593,17 @@ namespace VEPROMS
|
||||
if (localROPaths.Count == 0)
|
||||
{
|
||||
MessageBox.Show("There has been no RO folder defined for this database.\r\n\r\nIn order to import a procedure, you need to assign a RO folder path.\r\n\r\nImport process will terminate.");
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
return false;// Return False to Indicate that the Import did not succeed
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Cursor = Cursors.Default;
|
||||
dlgPickROFolder dlg = new dlgPickROFolder();
|
||||
dlg.ImportedROFolder = rofolderpath;
|
||||
dlg.LocalROFolders = localROPaths;
|
||||
Cursor = Cursors.Default;
|
||||
dlgPickROFolder dlg = new dlgPickROFolder
|
||||
{
|
||||
ImportedROFolder = rofolderpath,
|
||||
LocalROFolders = localROPaths
|
||||
};
|
||||
dlg.ShowDialog(this);
|
||||
if ((dlg.SelectedROFolder ?? string.Empty) != string.Empty) // B2015-216 If the return value is null treat it like an empty string
|
||||
{
|
||||
@@ -645,7 +628,7 @@ namespace VEPROMS
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Since you did not pick an existing RO folder defined for this database, the import process will terminate.");
|
||||
this.Close();// Close the Import Window
|
||||
Close();// Close the Import Window
|
||||
return false;// Return False to Indicate that the Import did not succeed
|
||||
}
|
||||
}
|
||||
@@ -655,9 +638,9 @@ namespace VEPROMS
|
||||
bool didImp = LoadFormats(xd, "procedure/formats/format");
|
||||
if (!didImp)
|
||||
{
|
||||
this.Cursor = Cursors.Default;
|
||||
this.btnImport.Enabled = true; // allow user to select a different export file to import
|
||||
this.btnDoImport.Enabled = true; // allow user to change mind and perform the import
|
||||
Cursor = Cursors.Default;
|
||||
btnImport.Enabled = true; // allow user to select a different export file to import
|
||||
btnDoImport.Enabled = true; // allow user to change mind and perform the import
|
||||
return false; // Return False to Indicate that the Import did not succeed
|
||||
}
|
||||
// use resolvedProcNum to determine if procedure is 'unique', i.e. if the procedure number exists
|
||||
@@ -763,7 +746,7 @@ namespace VEPROMS
|
||||
ProcedureInfo lastProcedure = null;
|
||||
foreach (ProcedureInfo pi in MyDocVersion.Procedures.OfType<ProcedureInfo>())
|
||||
lastProcedure = pi;
|
||||
_MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure);
|
||||
MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure);
|
||||
//update transitions
|
||||
AddTransitions(PendingTransitions);
|
||||
PendingTransitions.Save(fn);
|
||||
@@ -803,7 +786,7 @@ namespace VEPROMS
|
||||
}
|
||||
xd.SelectSingleNode("procedure/content/@number").InnerText = string.Format("Copy({0}) of {1}", count.ToString(), number);
|
||||
//add imported procedure and copy count
|
||||
_MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure);
|
||||
MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure);
|
||||
//update transitions
|
||||
AddTransitions(PendingTransitions);
|
||||
FixFloatingFoldouts();
|
||||
@@ -861,7 +844,7 @@ namespace VEPROMS
|
||||
return false;
|
||||
}
|
||||
//add imported procedure
|
||||
_MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure);
|
||||
MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure);
|
||||
//update transitions
|
||||
AddTransitions(PendingTransitions);
|
||||
FixFloatingFoldouts();
|
||||
@@ -884,9 +867,9 @@ namespace VEPROMS
|
||||
bool didImp = LoadFormats(xd, "folder/formats/format");
|
||||
if (!didImp)
|
||||
{
|
||||
this.Cursor = Cursors.Default;
|
||||
this.btnImport.Enabled = true; // allow user to select a different export file to import
|
||||
this.btnDoImport.Enabled = true; // allow user to change mind and perform the import
|
||||
Cursor = Cursors.Default;
|
||||
btnImport.Enabled = true; // allow user to select a different export file to import
|
||||
btnDoImport.Enabled = true; // allow user to change mind and perform the import
|
||||
return false; // Return False to Indicate that the Import did not succeed
|
||||
}
|
||||
string name = xd.DocumentElement.Attributes.GetNamedItem("name").InnerText;
|
||||
@@ -1004,6 +987,7 @@ namespace VEPROMS
|
||||
c.Save();
|
||||
}
|
||||
}
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
Dictionary<string, string> existingCopyFCName = new Dictionary<string, string>();
|
||||
// note that this is used when importing a folder or a procedure (procedure was added for UCF changes)
|
||||
private bool LoadFormats(XmlDocument xd, string xmlpath)
|
||||
@@ -1015,20 +999,19 @@ namespace VEPROMS
|
||||
|
||||
importedFormat = new Dictionary<int, string>();
|
||||
XmlNodeList nl = xd.SelectNodes(xmlpath);
|
||||
|
||||
bool conflictingUCFdata = false;
|
||||
List<string> existingFC = new List<string>();
|
||||
List<string> importedFC = new List<string>();
|
||||
List<string> fname = new List<string>();
|
||||
|
||||
foreach (XmlNode nd in nl)
|
||||
{
|
||||
string copyOfUCF = null;
|
||||
// see if any of the imported formats are 'UCF' formats, i.e. have config data. If they are UCF,
|
||||
// see if this is different that what is in the database. If it is, the user needs to decide
|
||||
// whether to associate sections with existing UCF format or the new one. All UCF formats will be
|
||||
// connected the same way, i.e. existing or new.
|
||||
#pragma warning disable IDE0059 // Unnecessary assignment of a value - formatid for Debugging/future use
|
||||
int formatid = int.Parse(nd.Attributes.GetNamedItem("formatid").InnerText);
|
||||
#pragma warning restore IDE0059 // Unnecessary assignment of a value
|
||||
string name = nd.Attributes.GetNamedItem("name").InnerText;
|
||||
string config = null;
|
||||
XmlNode cfg = nd.Attributes.GetNamedItem("config");
|
||||
@@ -1040,7 +1023,7 @@ namespace VEPROMS
|
||||
{
|
||||
// See if there are copies of this UCF format, if so, this may match (have same config) one of those and should
|
||||
// use it before stating there is conflicting data.
|
||||
copyOfUCF = ContentsOfUCFExists(name, config);
|
||||
string copyOfUCF = ContentsOfUCFExists(name, config);
|
||||
if (copyOfUCF == null)
|
||||
{
|
||||
existingFC.Add(exFI.Config);
|
||||
@@ -1069,11 +1052,12 @@ namespace VEPROMS
|
||||
if (pnameAttrib != null)
|
||||
pname = pnameAttrib.InnerText;
|
||||
if (pname == null) continue;
|
||||
string description = null;
|
||||
XmlNode descript = nd.Attributes.GetNamedItem("description");
|
||||
if (descript != null) description = descript.InnerText;
|
||||
#pragma warning disable IDE0059 // Unnecessary assignment of a value - description, userid, dts for future use
|
||||
string description = descript?.InnerText;
|
||||
string userid = nd.Attributes.GetNamedItem("userid").InnerText;
|
||||
DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText);
|
||||
#pragma warning restore IDE0059 // Unnecessary assignment of a value
|
||||
// If the format that is being imported exists as a copy (already was imported and a 'Copy x of name' was created) and the imported and
|
||||
// existing config match, use the existing (copied) format's name rather than importing it again (the dictionary was set up during
|
||||
// the import formats process.
|
||||
@@ -1098,7 +1082,7 @@ namespace VEPROMS
|
||||
// parent format will always be in there, if it is a new format, it will be added before the child. Check just in case (no null reference).
|
||||
if (!existingFormat.ContainsKey(pname)) break;
|
||||
int pid = existingFormat[pname];
|
||||
Format pformat = Format.Get(pid);
|
||||
_ = Format.Get(pid);
|
||||
|
||||
// if the new format doesn't exist, it will be added (after these other checks). Otherwise, handle the
|
||||
// various cases listed above:
|
||||
@@ -1221,7 +1205,6 @@ namespace VEPROMS
|
||||
{
|
||||
int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText);
|
||||
int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText);
|
||||
//if (!Old2NewContent.ContainsKey(oldid))
|
||||
Old2NewLibDoc.Add(oldid, newid);
|
||||
}
|
||||
File.Delete(fn);
|
||||
@@ -1362,7 +1345,7 @@ namespace VEPROMS
|
||||
}
|
||||
private void ExportFormats(FormatInfoList fil, XmlElement xn, string nodename, bool doElement)
|
||||
{
|
||||
XmlElement xe = null;
|
||||
XmlElement xe;
|
||||
if (doElement) xe = xn.OwnerDocument.CreateElement(nodename);
|
||||
else xe = xn;
|
||||
foreach (FormatInfo fi in fil)
|
||||
@@ -1489,7 +1472,7 @@ namespace VEPROMS
|
||||
{
|
||||
pbExportProcedure.Value = 0;
|
||||
pbExportProcedure.Maximum = dvi.Procedures.Count;
|
||||
lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures";
|
||||
lblExportProcedure.Text = $"{pbExportProcedure.Maximum} Procedures";
|
||||
foreach (ItemInfo ii in dvi.Procedures)
|
||||
{
|
||||
XmlDocument xd = new XmlDocument();
|
||||
@@ -1647,7 +1630,7 @@ namespace VEPROMS
|
||||
ContentID
|
||||
DTS
|
||||
*/
|
||||
XmlElement xe = null;
|
||||
XmlElement xe;
|
||||
if (xn.Name == "procedure")
|
||||
xe = xn;
|
||||
else
|
||||
@@ -2434,10 +2417,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
private void AddTransitions()
|
||||
{
|
||||
AddTransitions(PendingTransitions);
|
||||
}
|
||||
private void AddTransitions() => AddTransitions(PendingTransitions);
|
||||
|
||||
private void AddTransitions(XmlDocument xd)
|
||||
{
|
||||
@@ -2459,7 +2439,7 @@ namespace VEPROMS
|
||||
type,id,toid,rangeid
|
||||
*/
|
||||
XmlNodeList nl = xd.SelectNodes("//transition");
|
||||
lblImportStatus.Text = string.Format("Updating {0} Tranistions", nl.Count.ToString());
|
||||
lblImportStatus.Text = $"Updating {nl.Count} Tranistions";
|
||||
|
||||
foreach (XmlNode nd in nl)
|
||||
{
|
||||
@@ -2522,7 +2502,6 @@ namespace VEPROMS
|
||||
}
|
||||
else //transition to existing itemid (external)
|
||||
{
|
||||
bool forceConvertToText = false;
|
||||
int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText);
|
||||
int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText);
|
||||
string config = nd.Attributes.GetNamedItem("config").InnerText;
|
||||
@@ -2539,6 +2518,7 @@ namespace VEPROMS
|
||||
Content cc = Content.Get(fromid);
|
||||
Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid);
|
||||
|
||||
bool forceConvertToText;
|
||||
if (tt.TransitionID < 0)
|
||||
{
|
||||
forceConvertToText = true;
|
||||
@@ -2620,7 +2600,6 @@ namespace VEPROMS
|
||||
if (formatID >= importedFormat.Count) return null; // formatID not found, use default file name
|
||||
formatName = importedFormat[formatID]; // for backwards compatibility with older export files
|
||||
}
|
||||
if (renamedUCFFormatName != null && renamedUCFFormatName.ContainsKey(formatFileName)) formatName = renamedUCFFormatName[formatName];
|
||||
formatID = existingFormat[formatName];
|
||||
return Format.Get(formatID);
|
||||
}
|
||||
@@ -2668,7 +2647,9 @@ namespace VEPROMS
|
||||
MyRODb = AddRODb(xrodb);
|
||||
ROFst rofst = AddROFst(xrofst);
|
||||
|
||||
#pragma warning disable IDE0059 // Unnecessary assignment of a value - dva kept for side effect code
|
||||
DocVersionAssociation dva = dv.DocVersionAssociations.Add(rofst);
|
||||
#pragma warning restore IDE0059 // Unnecessary assignment of a value
|
||||
|
||||
dv.Save();
|
||||
}
|
||||
@@ -2905,7 +2886,9 @@ namespace VEPROMS
|
||||
foreach (XmlNode nd in xn.SelectNodes("rousage"))
|
||||
{
|
||||
string rousageid = nd.Attributes.GetNamedItem("rousageid").InnerText;
|
||||
#pragma warning disable IDE0059 // Unnecessary assignment of a value - roid for Debugging/future use
|
||||
string roid = nd.Attributes.GetNamedItem("roid").InnerText;
|
||||
#pragma warning restore IDE0059 // Unnecessary assignment of a value
|
||||
|
||||
string findLink = @"<START\].*?\[END>";
|
||||
content.Text = content.Text.Replace("<START]<START]", "<START]").Replace(@"[END><START]", @"[END>\v0 \v <START]"); //B2020-057 bad RO link - remove extra START and insert comment off/on between <END]<START]
|
||||
@@ -2943,7 +2926,7 @@ namespace VEPROMS
|
||||
if (prefix == @"\v ")
|
||||
part1 = part1.Substring(0, part1.Length - 3);
|
||||
else
|
||||
part1 = part1.Substring(0, part1.Length - 3) + " ";
|
||||
part1 = $"{part1.Substring(0, part1.Length - 3)} ";
|
||||
//modify part3 based on suffix
|
||||
if (suffix == @"\v0 ")
|
||||
part3 = part3.Substring(4);
|
||||
@@ -3114,7 +3097,9 @@ namespace VEPROMS
|
||||
{
|
||||
foreach (XmlNode nd in xn.SelectNodes("annotation"))
|
||||
{
|
||||
#pragma warning disable IDE0059 // Unnecessary assignment of a value - typeid for debugging/future use
|
||||
int typeid = int.Parse(nd.Attributes.GetNamedItem("typeid").InnerText);
|
||||
#pragma warning restore IDE0059 // Unnecessary assignment of a value
|
||||
string rtftext = nd.Attributes.GetNamedItem("rtftext").InnerText;
|
||||
string searchtext = nd.Attributes.GetNamedItem("searchtext").InnerText;
|
||||
string config = nd.Attributes.GetNamedItem("config").InnerText;
|
||||
@@ -3850,7 +3835,7 @@ namespace VEPROMS
|
||||
if (d == null)
|
||||
{
|
||||
// B2019-035 better memory management. Prior logic would eat up memory (and not free it).
|
||||
string libkey = libtitle + "_" + dts.ToString();
|
||||
string libkey = $"{libtitle}_{dts}";
|
||||
if (ExistingLibDocs.ContainsKey(libkey))
|
||||
d = Document.Get(ExistingLibDocs[libkey]); // found library document in existing database
|
||||
}
|
||||
@@ -3863,7 +3848,7 @@ namespace VEPROMS
|
||||
string config = xn.Attributes.GetNamedItem("config").InnerText;
|
||||
string userid = xn.Attributes.GetNamedItem("userid").InnerText;
|
||||
string fileextension = xn.Attributes.GetNamedItem("fileextension").InnerText;
|
||||
if (libtitle != "") libtitle = libtitle + "_" + dts.ToString(); // if a lib document, append the date/time to the title incase there are duplicate titles
|
||||
if (libtitle != "") libtitle = $"{libtitle}_{dts}"; // if a lib document, append the date/time to the title incase there are duplicate titles
|
||||
d = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension);
|
||||
d.Save();
|
||||
Old2NewLibDoc.Add(docid, d.DocID);
|
||||
@@ -3875,15 +3860,9 @@ namespace VEPROMS
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void btnCloseExport_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
private void btnCloseExport_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
private void btnCloseImport_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
private void btnCloseImport_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
//unset the unit (SelectedSlave)
|
||||
private void RemoveUnit_OnClose(object sender, EventArgs e)
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace VEPROMS
|
||||
private readonly AnnotationTypeInfo _AnnotationType;
|
||||
private readonly string multiseparator = ",";
|
||||
|
||||
private static Regex _ROAccPageTokenPattern = new Regex("[<][^<>-]+-[^<>]+[>]");
|
||||
private static readonly Regex _ROAccPageTokenPattern = new Regex("[<][^<>-]+-[^<>]+[>]");
|
||||
|
||||
public dlgExportImportEP(string mode, FolderInfo folderInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, folderInfo, myFrmVEPROMS, ( unitIndex))
|
||||
{
|
||||
@@ -261,9 +261,7 @@ namespace VEPROMS
|
||||
{
|
||||
string rodbpath = rodb.FolderPath;
|
||||
|
||||
string rocval = roc.value;
|
||||
if (rocval == null) rocval = Array.Find(roc.children, x => x.value.Contains('.')).value;
|
||||
|
||||
string rocval = roc.value ?? Array.Find(roc.children, x => x.value.Contains('.')).value;
|
||||
if (rocval == null) return "";
|
||||
string imgname;
|
||||
if (isMulti)
|
||||
|
||||
@@ -1,52 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class dlgImpHowToHandleROs : Form
|
||||
{
|
||||
private string _ImportedROFolder;
|
||||
public string ImportedROFolder
|
||||
{
|
||||
get { return _ImportedROFolder; }
|
||||
set { _ImportedROFolder = value; }
|
||||
}
|
||||
private string _WorkingDraftROFolder;
|
||||
public string WorkingDraftROFolder
|
||||
{
|
||||
get { return _WorkingDraftROFolder; }
|
||||
set { _WorkingDraftROFolder = value; }
|
||||
}
|
||||
public string ImportedROFolder { get; set; }
|
||||
public string WorkingDraftROFolder { get; set; }
|
||||
private bool _CancelImport = true; // default to truen in case the dialog is closed with the red X in the upper right corner
|
||||
public bool CancelImport
|
||||
{
|
||||
get { return _CancelImport; }
|
||||
}
|
||||
public bool CancelImport => _CancelImport;
|
||||
private bool _ConvertROsToText = false;
|
||||
public bool ConvertROsToText
|
||||
{
|
||||
get { return _ConvertROsToText; }
|
||||
}
|
||||
public dlgImpHowToHandleROs()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public bool ConvertROsToText => _ConvertROsToText;
|
||||
public dlgImpHowToHandleROs() => InitializeComponent();
|
||||
|
||||
private void dlgImpHowToHandleROs_Load(object sender, EventArgs e)
|
||||
{
|
||||
rtbROPathInfo.Text = string.Format("The current Working Draft RO folder path is:\n\n {0}\n\nThe procedure you are trying to import is from a database that has the RO folder path:\n\n {1}\n\nSelect from the options below on how to handle the RO values when importing this procedure.", _WorkingDraftROFolder, _ImportedROFolder);
|
||||
}
|
||||
private void dlgImpHowToHandleROs_Load(object sender, EventArgs e) => rtbROPathInfo.Text = string.Format("The current Working Draft RO folder path is:\n\n {0}\n\nThe procedure you are trying to import is from a database that has the RO folder path:\n\n {1}\n\nSelect from the options below on how to handle the RO values when importing this procedure.", WorkingDraftROFolder, ImportedROFolder);
|
||||
|
||||
private void btnUseCurrentROs_Click(object sender, EventArgs e)
|
||||
{
|
||||
_ConvertROsToText = _CancelImport = false;
|
||||
}
|
||||
private void btnUseCurrentROs_Click(object sender, EventArgs e) => _ConvertROsToText = _CancelImport = false;
|
||||
|
||||
private void btnROsToText_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -60,9 +29,6 @@ namespace VEPROMS
|
||||
_ConvertROsToText = false;
|
||||
}
|
||||
|
||||
private void dlgImpHowToHandleROs_Resize(object sender, EventArgs e)
|
||||
{
|
||||
rtbROPathInfo.Refresh();
|
||||
}
|
||||
private void dlgImpHowToHandleROs_Resize(object sender, EventArgs e) => rtbROPathInfo.Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Base.Library;
|
||||
@@ -38,7 +31,7 @@ namespace VEPROMS
|
||||
usersettings.SetUserSetting_MSWord_Summary_Prompt(false);
|
||||
}
|
||||
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Base.Library;
|
||||
using Volian.Controls.Library;
|
||||
using System.Linq;
|
||||
|
||||
@@ -26,10 +21,7 @@ namespace VEPROMS
|
||||
private List<MembershipInfo> myMembershipInfoList;
|
||||
private Folder myFolder;
|
||||
|
||||
public dlgManageSecurity()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public dlgManageSecurity() => InitializeComponent();
|
||||
private void dlgManageSecurity_Load(object sender, EventArgs e)
|
||||
{
|
||||
//load all folders
|
||||
@@ -331,9 +323,11 @@ namespace VEPROMS
|
||||
private void addUserToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
User u = User.MakeUser("[Enter New UserID]", "", "", "", "", "", "", "", "", "", "", DateTime.Now, "");
|
||||
frmManageUser frm = new frmManageUser("add");
|
||||
frm.MyUser = u;
|
||||
frm.Text = "Enter New UserID"; //C2026-002 Change Title bar on Add/Edit User
|
||||
frmManageUser frm = new frmManageUser("add")
|
||||
{
|
||||
MyUser = u,
|
||||
Text = "Enter New UserID" //C2026-002 Change Title bar on Add/Edit User
|
||||
};
|
||||
if (frm.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
u = frm.MyUser;
|
||||
@@ -362,8 +356,10 @@ namespace VEPROMS
|
||||
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
|
||||
using (User u = User.Get(ui.UID))
|
||||
{
|
||||
frmManageUser frm = new frmManageUser("edit");
|
||||
frm.MyUser = u;
|
||||
frmManageUser frm = new frmManageUser("edit")
|
||||
{
|
||||
MyUser = u
|
||||
};
|
||||
if (frm.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
frm.MyUser.Save();
|
||||
@@ -505,11 +501,13 @@ namespace VEPROMS
|
||||
pnlGroups.Controls.Clear();
|
||||
foreach (GroupInfo gi in myGroupInfoList)
|
||||
{
|
||||
RadioButton rb = new RadioButton();
|
||||
rb.Text = gi.GroupName;
|
||||
rb.Parent = pnlGroups;
|
||||
rb.Dock = DockStyle.Top;
|
||||
rb.Tag = gi;
|
||||
RadioButton rb = new RadioButton
|
||||
{
|
||||
Text = gi.GroupName,
|
||||
Parent = pnlGroups,
|
||||
Dock = DockStyle.Top,
|
||||
Tag = gi
|
||||
};
|
||||
rb.CheckedChanged -= new EventHandler(rb_CheckedChanged);
|
||||
rb.CheckedChanged += new EventHandler(rb_CheckedChanged);
|
||||
pnlGroups.Controls.Add(rb);
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
@@ -11,8 +6,8 @@ namespace VEPROMS
|
||||
{
|
||||
public partial class dlgPhoneList : Form
|
||||
{
|
||||
private DocVersionConfig _docVersionConfig;
|
||||
private string _origPhoneList;
|
||||
private readonly DocVersionConfig _docVersionConfig;
|
||||
private readonly string _origPhoneList;
|
||||
public dlgPhoneList(DocVersionConfig dvc)
|
||||
{
|
||||
_docVersionConfig = dvc;
|
||||
|
||||
@@ -1,57 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class dlgPickROFolder : Form
|
||||
{
|
||||
private string _ImportedROFolder;
|
||||
public string ImportedROFolder
|
||||
{
|
||||
get { return _ImportedROFolder; }
|
||||
set { _ImportedROFolder = value; }
|
||||
}
|
||||
private List<string> _LocalROFolders;
|
||||
public List<string> LocalROFolders
|
||||
{
|
||||
get { return _LocalROFolders; }
|
||||
set { _LocalROFolders = value; }
|
||||
}
|
||||
private string _SelectedROFolder;
|
||||
public string SelectedROFolder
|
||||
{
|
||||
get { return _SelectedROFolder; }
|
||||
set { _SelectedROFolder = value; }
|
||||
}
|
||||
public dlgPickROFolder()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public string ImportedROFolder { get; set; }
|
||||
public List<string> LocalROFolders { get; set; }
|
||||
public string SelectedROFolder { get; set; }
|
||||
public dlgPickROFolder() => InitializeComponent();
|
||||
|
||||
private void dlgPickROFolder_Load(object sender, EventArgs e)
|
||||
{
|
||||
lblImportRO.Text = string.Format("The procedure you are trying to import was exported from a database that had the following RO folder path:\r\n\r\n{0}\r\n\r\nSelect from the following RO Folders that exist in the database you are trying to import this procedure into so that the import process can continue", _ImportedROFolder);
|
||||
lblImportRO.Text = string.Format("The procedure you are trying to import was exported from a database that had the following RO folder path:\r\n\r\n{0}\r\n\r\nSelect from the following RO Folders that exist in the database you are trying to import this procedure into so that the import process can continue", ImportedROFolder);
|
||||
clbLocalROFolders.DataSource = LocalROFolders;
|
||||
}
|
||||
|
||||
private void clbLocalROFolders_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (clbLocalROFolders.CheckedItems.Count > 0)
|
||||
{
|
||||
btnOkay.Enabled = true;
|
||||
}
|
||||
else
|
||||
btnOkay.Enabled = false;
|
||||
}
|
||||
private void clbLocalROFolders_SelectedIndexChanged(object sender, EventArgs e) => btnOkay.Enabled = clbLocalROFolders.CheckedItems.Count > 0;
|
||||
|
||||
private void btnOkay_Click(object sender, EventArgs e)
|
||||
{
|
||||
SelectedROFolder = clbLocalROFolders.CheckedItems[0].ToString();
|
||||
}
|
||||
private void btnOkay_Click(object sender, EventArgs e) => SelectedROFolder = clbLocalROFolders.CheckedItems[0].ToString();
|
||||
}
|
||||
}
|
||||
@@ -1,24 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System.Linq;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class dlgPrintAllApprovedProcedures : DevComponents.DotNetBar.Office2007Form
|
||||
{
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private StringBuilder NotApproved;
|
||||
private DocVersionInfo _DocVersionInfo = null;
|
||||
private int unitId = 0;
|
||||
private readonly StringBuilder NotApproved;
|
||||
private readonly DocVersionInfo _DocVersionInfo = null;
|
||||
private readonly int unitId = 0;
|
||||
public dlgPrintAllApprovedProcedures(DocVersionInfo dvi)
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -43,7 +38,7 @@ namespace VEPROMS
|
||||
// if SelectedSlave is > 0 then we are printing Approved Child Procedures and
|
||||
// subtract one from the index (unitId) into the list of child names (UnitNames)
|
||||
if (unitId > 0)
|
||||
rtnstr += "\\" + _DocVersionInfo.UnitNames[unitId - 1]; // append Child name to path
|
||||
rtnstr += $"\\{_DocVersionInfo.UnitNames[unitId - 1]}"; // append Child name to path
|
||||
return rtnstr;
|
||||
}
|
||||
|
||||
@@ -91,7 +86,7 @@ namespace VEPROMS
|
||||
int pdfCount = 0;
|
||||
DeleteExistingPDFs(); // delete existing PDFs in the target folder
|
||||
// Get the Child index for Parent/Child procedure - if not Parent/Child this will be zero
|
||||
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures)
|
||||
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures.OfType<ProcedureInfo>())
|
||||
{
|
||||
RevisionInfoList ril = RevisionInfoList.GetByItemID(myProc.ItemID);
|
||||
if (ril.Count == 0)
|
||||
@@ -144,7 +139,7 @@ namespace VEPROMS
|
||||
_MyLog.Error("Print All Approved PDFs", ex);// save error in PROMS error log
|
||||
MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
this.Close(); // close dialog
|
||||
Close(); // close dialog
|
||||
}
|
||||
private void SaveApprovedPDFToFolder(RevisionInfo revInfo,string PDFName)
|
||||
{
|
||||
@@ -168,10 +163,6 @@ namespace VEPROMS
|
||||
{
|
||||
DirectoryInfo di = new DirectoryInfo(txbApprovedPDFsPath.Text);
|
||||
FileInfo[] fis;
|
||||
//DirectoryInfo[] diAry = di.GetDirectories(txbApprovedPDFsPath.Text);
|
||||
//DirectoryInfo di_fmtgen;
|
||||
// remove all of the PDF fils
|
||||
//di_fmtgen = diAry[0];
|
||||
try
|
||||
{
|
||||
fis = di.GetFiles("*.pdf");
|
||||
@@ -189,14 +180,8 @@ namespace VEPROMS
|
||||
|
||||
}
|
||||
}
|
||||
private void txbApprovedPDFsPath_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
btnPrntAllAprv.Enabled = txbApprovedPDFsPath.Text.Length > 0;
|
||||
}
|
||||
private void txbApprovedPDFsPath_TextChanged(object sender, EventArgs e) => btnPrntAllAprv.Enabled = txbApprovedPDFsPath.Text.Length > 0;
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
private void btnCancel_Click(object sender, EventArgs e) => Close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
@@ -29,7 +28,7 @@ namespace VEPROMS
|
||||
|
||||
if (tmp[0] == null || tmp[0] == "") // First time date set.
|
||||
{
|
||||
cbdt = DateTime.Now.ToString("MM/dd/yyyy") + " " + DateTime.Now.ToString("HH:mm:ss");
|
||||
cbdt = $"{DateTime.Now:MM/dd/yyyy} {DateTime.Now:HH:mm:ss}";
|
||||
dateTimeInput1.Value = DateTime.Parse(cbdt);
|
||||
return;
|
||||
}
|
||||
@@ -43,13 +42,13 @@ namespace VEPROMS
|
||||
var time = tmpdt.TimeOfDay;
|
||||
if (start < time) // If time is greater than 12:00:00 AM
|
||||
{
|
||||
cbdt = DateTime.Now.ToString("MM/dd/yyyy") + " " + tmpdt.TimeOfDay.ToString();
|
||||
cbdt = $"{DateTime.Now:MM/dd/yyyy} {tmpdt.TimeOfDay}";
|
||||
dateTimeInput1.Value = DateTime.Parse(cbdt);
|
||||
return;
|
||||
}
|
||||
else // if time is 12:00:00 AM
|
||||
{
|
||||
cbdt = DateTime.Now.ToString("MM/dd/yyyy") + " " + " 00:00:00";
|
||||
cbdt = $"{DateTime.Now:MM/dd/yyyy} 00:00:00";
|
||||
dateTimeInput1.Value = DateTime.Parse(cbdt);
|
||||
return;
|
||||
}
|
||||
@@ -68,7 +67,7 @@ namespace VEPROMS
|
||||
MyProcConfig.Print_ChangeBarDate = dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss");// ("MM/dd/yyyy HH:mm:ss");
|
||||
|
||||
//CSM - C2026-010 - Add Audit Record for Change Bar Audit History
|
||||
ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Set ChangeBars set to ({dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss")}) by ({VlnSettings.UserID}) on ({DateTime.Now})", DateTime.Now, VlnSettings.UserID, 0);
|
||||
ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Set ChangeBars set to ({dateTimeInput1.Value:MM/dd/yyyy HH:mm:ss}) by ({VlnSettings.UserID}) on ({DateTime.Now})", DateTime.Now, VlnSettings.UserID, 0);
|
||||
|
||||
//CSM C2026-014 if multi-unit, set for each unit
|
||||
System.Data.DataTable dt = RevisionData.GetRevisionDataByUnit(MyProcInfo.ItemID);
|
||||
@@ -83,7 +82,7 @@ namespace VEPROMS
|
||||
MyProcConfig.Print_ChangeBarDate = dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss");
|
||||
|
||||
//CSM - C2026-010 - Add Audit Record for Change Bar Audit History
|
||||
ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Set ChangeBars set to ({dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss")}) by ({VlnSettings.UserID}) on ({DateTime.Now}) for (Unit {r["UnitName"]})", DateTime.Now, VlnSettings.UserID, MyProcConfig.SelectedSlave);
|
||||
ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Set ChangeBars set to ({dateTimeInput1.Value:MM/dd/yyyy HH:mm:ss}) by ({VlnSettings.UserID}) on ({DateTime.Now}) for (Unit {r["UnitName"]})", DateTime.Now, VlnSettings.UserID, MyProcConfig.SelectedSlave);
|
||||
}
|
||||
}
|
||||
MyProcConfig.SelectedSlave = 0;
|
||||
@@ -91,10 +90,7 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
|
||||
private void btnNow_Click(object sender, EventArgs e)
|
||||
{
|
||||
dateTimeInput1.Value = DateTime.Now;
|
||||
}
|
||||
private void btnNow_Click(object sender, EventArgs e) => dateTimeInput1.Value = DateTime.Now;
|
||||
|
||||
//C2026-009 Add Option to Reset Change Bar to Last Approved Date/Time
|
||||
private void btnResetToApproved_Click(object sender, EventArgs e)
|
||||
@@ -134,7 +130,7 @@ namespace VEPROMS
|
||||
|
||||
sb.Append("\r\n Any Change Bars for Units not listed above will use the Overall/Procedure Viewer Change Bar Date (as these Units have no approvals).");
|
||||
|
||||
if (CustomMessageBox.Show($"This will reset ChangeBars to show for changes newer than the last approval.\r\nThis includes the following changes:\r\n{sb.ToString()}\r\n\r\nAre you sure you wish to reset ChangeBars?", "Reset ChangeBar Date", "Yes", "No") == DialogResult.Yes)
|
||||
if (CustomMessageBox.Show($"This will reset ChangeBars to show for changes newer than the last approval.\r\nThis includes the following changes:\r\n{sb}\r\n\r\nAre you sure you wish to reset ChangeBars?", "Reset ChangeBar Date", "Yes", "No") == DialogResult.Yes)
|
||||
{
|
||||
//Change the overall ChangeBarDate
|
||||
MyProcConfig.Print_ChangeBarDate = maxDTS;
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Print.Library;
|
||||
@@ -13,9 +9,10 @@ namespace VEPROMS
|
||||
{
|
||||
public partial class dlgTransitionReport : Form
|
||||
{
|
||||
private FolderInfo folderInfo = null;
|
||||
private ProcedureInfo procedureInfo = null;
|
||||
private readonly FolderInfo folderInfo = null;
|
||||
private readonly ProcedureInfo procedureInfo = null;
|
||||
private PDFTransitionReport rpt;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private List<DocVersionInfo> lstDocVersions;
|
||||
public dlgTransitionReport(FolderInfo fi)
|
||||
{
|
||||
@@ -26,7 +23,7 @@ namespace VEPROMS
|
||||
if (lstDocVersions.Count == 1)
|
||||
{
|
||||
pnlVersions.Visible = false;
|
||||
this.Height = this.Height - pnlVersions.Height;
|
||||
Height -= pnlVersions.Height;
|
||||
}
|
||||
}
|
||||
public dlgTransitionReport(ProcedureInfo pi)
|
||||
@@ -34,15 +31,16 @@ namespace VEPROMS
|
||||
InitializeComponent();
|
||||
procedureInfo = pi;
|
||||
pnlVersions.Visible = pnlProcs.Visible = false;
|
||||
this.Height = this.Height - pnlVersions.Height - pnlProcs.Height;
|
||||
Height = Height - pnlVersions.Height - pnlProcs.Height;
|
||||
}
|
||||
//private DocVersionInfo docVersionInfo;
|
||||
private void dlgTransitionReport_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (folderInfo != null)
|
||||
{
|
||||
rpt = new PDFTransitionReport(folderInfo, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\TransitionReport.pdf");
|
||||
rpt.MyDocVersionList = lstDocVersions;
|
||||
rpt = new PDFTransitionReport(folderInfo, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\TransitionReport.pdf")
|
||||
{
|
||||
MyDocVersionList = lstDocVersions
|
||||
};
|
||||
if (lstDocVersions.Count == 1)
|
||||
pbProcs.Maximum = lstDocVersions[0].Procedures.Count;
|
||||
else
|
||||
@@ -54,7 +52,7 @@ namespace VEPROMS
|
||||
if (VlnSettings.GetCommandFlag("PROFILE")) ProfileTimer.TurnOnTracking("Profile.txt");
|
||||
VEPROMS.CSLA.Library.Database.TrackDBUsage = VlnSettings.GetCommandFlag("DBTrack");
|
||||
ProfileTimer.Reset();
|
||||
int profileDepth = ProfileTimer.Push(">>>> transitionreport");
|
||||
_ = ProfileTimer.Push(">>>> transitionreport");
|
||||
rpt = new PDFTransitionReport(procedureInfo, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\TransitionReport.pdf");
|
||||
pbTrans.Maximum = rpt.TransitionInfoCount;
|
||||
tmrReportStart.Enabled = true;
|
||||
@@ -131,7 +129,7 @@ namespace VEPROMS
|
||||
{
|
||||
tmrReportFinish.Enabled = false;
|
||||
System.Diagnostics.Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\TransitionReport.pdf");
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,32 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Base.Library;
|
||||
//using Volian.Pipe.Library;
|
||||
using System.Xml;
|
||||
using System.Diagnostics;
|
||||
using JR.Utils.GUI.Forms;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class frmAnnotationsCleanup : Form
|
||||
{
|
||||
Label mylab = new Label();
|
||||
string procList = "";
|
||||
string docvList = "";
|
||||
int AnnotationTyp;
|
||||
string AnnotationName = "";
|
||||
string totalDeleteCnt = "";
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
List<ProcedureInfo> pil2 = new List<ProcedureInfo>();
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
List<DocVersionInfo> dvil2 = new List<DocVersionInfo>();
|
||||
private frmBatchRefresh mainForm = null;
|
||||
private readonly frmBatchRefresh mainForm = null;
|
||||
// frmAnnotationsCleanup constructor passes users procedure and docversion selections from frmBatchRefresh
|
||||
public frmAnnotationsCleanup(Form callingForm, List<ProcedureInfo> pil, List<DocVersionInfo> dvil)
|
||||
|
||||
@@ -47,7 +37,6 @@ namespace VEPROMS
|
||||
foreach (LocalAnnotationTypeInfo lati in myLocalAnnotationTypeInfoList)
|
||||
{
|
||||
AnnotationsList.Add(lati.TypeID.ToString(), lati.Name);
|
||||
//cbAnnotationTypes.Items.Add(new { Name = lati.Name, Value = lati.TypeID });
|
||||
}
|
||||
|
||||
lbAnnotationTypes.DataSource = new BindingSource(AnnotationsList, null);
|
||||
@@ -67,11 +56,11 @@ namespace VEPROMS
|
||||
{
|
||||
if (procList == "")
|
||||
{
|
||||
procList = procList + p.ItemID.ToString();
|
||||
procList += p.ItemID.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
procList = procList + "," + p.ItemID.ToString();
|
||||
procList = $"{procList},{p.ItemID}";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -88,18 +77,19 @@ namespace VEPROMS
|
||||
{
|
||||
if (docvList == "")
|
||||
{
|
||||
docvList = docvList + d.VersionID.ToString();
|
||||
docvList += d.VersionID.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
docvList = docvList + "," + d.VersionID.ToString();
|
||||
docvList = $"{docvList},{d.VersionID}";
|
||||
}
|
||||
}
|
||||
}
|
||||
return docvList;
|
||||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private AnnotationTypeInfoList myAnnotationTypeInfoList = null;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private LocalAnnotationTypeInfoList myLocalAnnotationTypeInfoList = null;
|
||||
|
||||
// Process used to cleanup annotations "(Proceed?" button)
|
||||
@@ -112,21 +102,15 @@ namespace VEPROMS
|
||||
TextBox frm3 = mainForm.GettxtResults();
|
||||
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||
AnnotationName = System.Convert.ToString(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Value);
|
||||
frm3.AppendText("Deleting Annotations: Annotation Type: " + '"' + AnnotationName + '"');
|
||||
frm3.AppendText(Environment.NewLine + "P = Procedure, F = Folder" + Environment.NewLine);
|
||||
int deletecountProc = 0;
|
||||
int deletecountDocv = 0;
|
||||
frm3.AppendText($"Deleting Annotations: Annotation Type: \"{AnnotationName}\"");
|
||||
frm3.AppendText($"{Environment.NewLine}P = Procedure, F = Folder{Environment.NewLine}");
|
||||
foreach (var p in pil2)
|
||||
{
|
||||
if (p.IsProcedure)
|
||||
{
|
||||
//AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||
//AnnotationName = System.Convert.ToString(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Value);
|
||||
//deletecountProc = Annotation.getAnnotationProcCnt(AnnotationTyp, getAnnotationProcItems(p));
|
||||
deletecountProc = Annotation.getAnnotationProcCnt(AnnotationTyp, p.ItemID.ToString());
|
||||
frm2.AppendText(Environment.NewLine + p.DisplayNumber + ' ' + p.DisplayText);
|
||||
//frm3.AppendText(Environment.NewLine + "P: " + p.DisplayNumber + '"' + p.DisplayText + '"' + " Type: " + '"' + AnnotationName + '"' + " count: " + deletecountProc);
|
||||
frm3.AppendText(Environment.NewLine + "P: " + p.DisplayNumber + '"' + p.DisplayText + '"' + " Delete count: " + deletecountProc);
|
||||
int deletecountProc = Annotation.getAnnotationProcCnt(AnnotationTyp, p.ItemID.ToString());
|
||||
frm2.AppendText($"{Environment.NewLine}{p.DisplayNumber} {p.DisplayText}");
|
||||
frm3.AppendText($"{Environment.NewLine}P: {p.DisplayNumber}\"{p.DisplayText}\" Delete count: {deletecountProc}");
|
||||
Annotation.DeleteAnnotationProcByType(AnnotationTyp, p.ItemID.ToString());
|
||||
lblCountNumber.Text = "0";
|
||||
}
|
||||
@@ -136,18 +120,16 @@ namespace VEPROMS
|
||||
{
|
||||
if (d.IsDocVersion)
|
||||
{
|
||||
//AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||
//AnnotationName = System.Convert.ToString(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Value);
|
||||
deletecountDocv = Annotation.getAnnotationCountDocv(AnnotationTyp, d.VersionID.ToString());
|
||||
int deletecountDocv = Annotation.getAnnotationCountDocv(AnnotationTyp, d.VersionID.ToString());
|
||||
frm2.AppendText(Environment.NewLine + d.ActiveParent.ToString());
|
||||
frm3.AppendText(Environment.NewLine + "F: " + '"' + d.ActiveParent.ToString() + '"' + " Delete count: " + deletecountDocv);
|
||||
frm3.AppendText($"{Environment.NewLine}F: \"{d.ActiveParent.ToString()}\" Delete count: {deletecountDocv}");
|
||||
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||
Annotation.DeleteAnnotationDocvByType(AnnotationTyp, d.VersionID.ToString());
|
||||
|
||||
lblCountNumber.Text = "0";
|
||||
}
|
||||
}
|
||||
frm3.AppendText(Environment.NewLine + Environment.NewLine + "Total Annotations Deleted: " + totalDeleteCnt + Environment.NewLine + Environment.NewLine);
|
||||
frm3.AppendText($"{Environment.NewLine}{Environment.NewLine}Total Annotations Deleted: {totalDeleteCnt}{Environment.NewLine}{Environment.NewLine}");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -179,10 +161,7 @@ namespace VEPROMS
|
||||
|
||||
}
|
||||
// Close form.
|
||||
private void btnClose_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
private void btnClose_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,28 +15,23 @@ namespace VEPROMS
|
||||
{
|
||||
public partial class frmBatchRefresh : Form
|
||||
{
|
||||
private SessionInfo _MySessionInfo;
|
||||
public SessionInfo MySessionInfo
|
||||
{
|
||||
get { return _MySessionInfo; }
|
||||
set { _MySessionInfo = value; }
|
||||
}
|
||||
private bool IsAdministratorUser = false; //C2020-035 used to control what Set Amins can do
|
||||
public SessionInfo MySessionInfo { get; set; }
|
||||
private readonly bool IsAdministratorUser = false; //C2020-035 used to control what Set Amins can do
|
||||
// C2017-030 - new Admin Tools user interface
|
||||
// pass in session info to constructor
|
||||
|
||||
private frmVEPROMS _veProms;
|
||||
private readonly frmVEPROMS _veProms;
|
||||
|
||||
public frmBatchRefresh(SessionInfo sessionInfo, frmVEPROMS veProms)
|
||||
{
|
||||
InitializeComponent();
|
||||
_MySessionInfo = sessionInfo;
|
||||
MySessionInfo = sessionInfo;
|
||||
|
||||
_veProms = veProms;
|
||||
|
||||
|
||||
// When opening Admin tools Repair tab will be default.
|
||||
this.sideNavItmRepair.Checked = true;
|
||||
sideNavItmRepair.Checked = true;
|
||||
|
||||
if (sideNavItmDelete.Checked)
|
||||
{
|
||||
@@ -74,16 +69,10 @@ namespace VEPROMS
|
||||
dtePurge.Value = DateTime.Now.AddYears(-10);
|
||||
}
|
||||
// Make txtProcess text box available to frmAnnotationsClean form.
|
||||
internal TextBox GettxtProcess()
|
||||
{
|
||||
return txtProcess;
|
||||
}
|
||||
internal TextBox GettxtProcess() => txtProcess;
|
||||
|
||||
// Make txtResults text box available to frmAnnotationsClean form.
|
||||
internal TextBox GettxtResults()
|
||||
{
|
||||
return txtResults;
|
||||
}
|
||||
internal TextBox GettxtResults() => txtResults;
|
||||
|
||||
// NOTE: removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed)
|
||||
// the Update ROs and Refresh ROs logic was merged together. The Update ROs will functionally do both
|
||||
@@ -94,7 +83,7 @@ namespace VEPROMS
|
||||
|
||||
private void FixHyphens()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Standardizing Hyphens");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -112,22 +101,19 @@ namespace VEPROMS
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<TreeNode, ProcedureInfo> myProcedures = new Dictionary<TreeNode, ProcedureInfo>();
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<TreeNode, DocVersionInfo> myDocVersions = new Dictionary<TreeNode, DocVersionInfo>();
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<TreeNode, FolderInfo> myFolders = new Dictionary<TreeNode, FolderInfo>();
|
||||
|
||||
private void frmBatchRefresh_Load(object sender, EventArgs e)
|
||||
{
|
||||
IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
}
|
||||
private void frmBatchRefresh_Load(object sender, EventArgs e) => IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
private bool IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
private void frmBatchRefresh_FormClosing(object sender, EventArgs e)
|
||||
{
|
||||
IsClosing = true;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
}
|
||||
private void frmBatchRefresh_FormClosing(object sender, EventArgs e) => IsClosing = true;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
// C2017-030 - new Admin Tools user interface
|
||||
// check to see if at least one tree node is checked.
|
||||
// Used to determin whether to make the process button active for
|
||||
@@ -154,7 +140,7 @@ namespace VEPROMS
|
||||
//C2026-002 Enhancements to new admin Tool for ROs not used.
|
||||
private void ResetmyTV_RO_DBs()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
myTV_RO_DBs.Nodes.Clear();
|
||||
|
||||
TreeNode tn = myTV_RO_DBs.Nodes.Add("Select All");
|
||||
@@ -169,13 +155,13 @@ namespace VEPROMS
|
||||
}
|
||||
tn.Expand();
|
||||
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
private void ResetTV(bool noProcs)
|
||||
{
|
||||
btnFixLinks.Enabled = false;
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
myTV.Nodes.Clear();
|
||||
myDocVersions.Clear();
|
||||
myFolders.Clear();
|
||||
@@ -184,14 +170,13 @@ namespace VEPROMS
|
||||
tn.Tag = fi;
|
||||
if (fi.ChildFolderCount > 0)
|
||||
LoadChildFolders(fi, tn, noProcs);
|
||||
if (myTV.SelectedNode != null)
|
||||
myTV.SelectedNode.Expand();
|
||||
this.Cursor = Cursors.Default;
|
||||
myTV.SelectedNode?.Expand();
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
private void ResetDelTV(bool noProcs)
|
||||
{
|
||||
btnFixLinks.Enabled = false;
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
myTVdel.Nodes.Clear();
|
||||
myDocVersions.Clear();
|
||||
FolderInfo fi = FolderInfo.GetTop();
|
||||
@@ -200,21 +185,22 @@ namespace VEPROMS
|
||||
|
||||
if (fi.ChildFolderCount > 0)
|
||||
{
|
||||
TreeNode tn = new TreeNode(fi.Name);
|
||||
tn.Tag = fi;
|
||||
tn.StateImageIndex = -1; // Hide the checkbox for the root node
|
||||
TreeNode tn = new TreeNode(fi.Name)
|
||||
{
|
||||
Tag = fi,
|
||||
StateImageIndex = -1 // Hide the checkbox for the root node
|
||||
};
|
||||
LoadChildFolders(fi, tn, noProcs);
|
||||
myTVdel.Nodes.Add(tn);
|
||||
}
|
||||
|
||||
if (myTVdel.SelectedNode != null)
|
||||
myTVdel.SelectedNode.Expand();
|
||||
myTVdel.SelectedNode?.Expand();
|
||||
|
||||
//Expand if folders
|
||||
if (noProcs)
|
||||
myTVdel.ExpandAll();
|
||||
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// B2021-060 Higher level folders where being removed from the tree even if there was a child folder that containe a working draft set
|
||||
@@ -304,7 +290,7 @@ namespace VEPROMS
|
||||
|
||||
private void UpdateROValues()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
List<ProcedureInfo> pil = new List<ProcedureInfo>(); // C2023-002: list of checked out procedures, used in frmBatchRefreshCheckedOut dialog
|
||||
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
||||
foreach (TreeNode tn in myDocVersions.Keys)
|
||||
@@ -377,14 +363,16 @@ namespace VEPROMS
|
||||
sb.AppendLine("Once this is complete you can continue the process otherwise you may terminate the process immediately.");
|
||||
sb.AppendLine();
|
||||
sb.AppendLine("Have you requested the users to close the procedures and do you want to continue the process?");
|
||||
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(1);
|
||||
frmCO.MySessionInfo = MySessionInfo;
|
||||
frmCO.CheckedOutProcedures = pil; // C2023-002: set list of checked out procedures
|
||||
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(1)
|
||||
{
|
||||
MySessionInfo = MySessionInfo,
|
||||
CheckedOutProcedures = pil // C2023-002: set list of checked out procedures
|
||||
};
|
||||
frmCO.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmCO.Width, Screen.PrimaryScreen.WorkingArea.Height - frmCO.Height);
|
||||
// C2023-002: Allow close of dialog that has list of procedures that are checked out
|
||||
if (frmCO.ShowDialog(this) != DialogResult.Cancel)
|
||||
{
|
||||
while (!this.Visible)
|
||||
while (!Visible)
|
||||
Application.DoEvents();
|
||||
}
|
||||
else
|
||||
@@ -400,7 +388,7 @@ namespace VEPROMS
|
||||
txtProcess.AppendText(string.Format("Could Not Complete: {0} {1} Seconds Elapsed", pEnd.ToString("MM/dd/yyyy @ HH:mm"), TimeSpan.FromTicks(pEnd.Ticks - pStart.Ticks).TotalSeconds));
|
||||
pbProcess.Value = pbProcess.Maximum;
|
||||
}
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
//C2025-011 RO Update Admin Tool Memory Enhancements
|
||||
@@ -425,7 +413,7 @@ namespace VEPROMS
|
||||
private void CheckROLinks()
|
||||
{
|
||||
bool badLinksFound = false;
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||
// populate a list of procedures that the user selected to process
|
||||
foreach (TreeNode tn in myProcedures.Keys)
|
||||
@@ -500,15 +488,17 @@ namespace VEPROMS
|
||||
|
||||
if (piq.Count > 0)
|
||||
{
|
||||
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(0);
|
||||
frmCO.MySessionInfo = MySessionInfo;
|
||||
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(0)
|
||||
{
|
||||
MySessionInfo = MySessionInfo
|
||||
};
|
||||
frmCO.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmCO.Width, Screen.PrimaryScreen.WorkingArea.Height - frmCO.Height);
|
||||
frmCO.Show(this);
|
||||
while (!this.Visible)
|
||||
while (!Visible)
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// B2018-002 - Invalid Transitions - Define Transition Refresh Statistics
|
||||
@@ -528,7 +518,7 @@ namespace VEPROMS
|
||||
{
|
||||
// B2018-002 - Invalid Transitions - Initialize Transition Refresh Statistics
|
||||
ResetTransNumbers();
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||
foreach (TreeNode tn in myProcedures.Keys)
|
||||
if (tn.Checked)
|
||||
@@ -606,16 +596,18 @@ namespace VEPROMS
|
||||
sb.AppendLine("Once this is complete you can continue the process otherwise you may terminate the process immediately.");
|
||||
sb.AppendLine();
|
||||
sb.AppendLine("Have you requested the users to close the procedures and do you want to continue the process?");
|
||||
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(0);
|
||||
frmCO.MySessionInfo = MySessionInfo;
|
||||
frmCO.CheckedOutProcedures = pil;
|
||||
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(0)
|
||||
{
|
||||
MySessionInfo = MySessionInfo,
|
||||
CheckedOutProcedures = pil
|
||||
};
|
||||
frmCO.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmCO.Width, Screen.PrimaryScreen.WorkingArea.Height - frmCO.Height);
|
||||
frmCO.Show(this);
|
||||
while (!this.Visible)
|
||||
while (!Visible)
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
// B2018-002 - Invalid Transitions - Display Transition Refresh Statistic
|
||||
if (numTransFixed == 0 && numTransConverted == 0 && numTransCantFix == 0)
|
||||
MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.", numTransProcessed), "Refresh Transitions Completed");
|
||||
@@ -629,7 +621,7 @@ namespace VEPROMS
|
||||
// the next time the procedures are printed. This also forces ROs to be refreshed in the attachments
|
||||
private void DeletePDFs()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Refreshing Word Attachments");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -647,7 +639,7 @@ namespace VEPROMS
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
private int RegenCounter = 0;
|
||||
@@ -659,7 +651,7 @@ namespace VEPROMS
|
||||
// so that this is not needed the next time the procedures are printed. This also forces ROs to be refreshed in the attachments
|
||||
private void RegenPDFs()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Generating missing Word Attachments");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -737,7 +729,7 @@ namespace VEPROMS
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
//Outputs the Progress of Regenerating the PDFs every __ minutes
|
||||
@@ -756,7 +748,7 @@ namespace VEPROMS
|
||||
// rerun until all tables/text fields are completed.
|
||||
private void RefreshTablesForSearch()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Refreshing Tables for Search");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -783,7 +775,7 @@ namespace VEPROMS
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
private int RefreshForSearch()
|
||||
{
|
||||
@@ -824,7 +816,7 @@ namespace VEPROMS
|
||||
}
|
||||
catch
|
||||
{
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
return -cntfix;
|
||||
}
|
||||
}
|
||||
@@ -839,7 +831,7 @@ namespace VEPROMS
|
||||
// tool renamed to Remove Orphan Items
|
||||
private void PurgeDisconnectedItems()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Purging Orphan Items");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -881,13 +873,13 @@ namespace VEPROMS
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2017-030 - new Admin Tools user interface is one of two tools run from Remove Obsolete RO Data
|
||||
private void RemoveUnusedRoFstsAndFigures()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Purging Unused RoFSTs and Figures Items");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -936,14 +928,14 @@ namespace VEPROMS
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2017-030 - new Admin Tools user interface
|
||||
// is one of two tools run from Remove Obsolete RO Data
|
||||
private void CleanUpROAssociations()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Purging Unused Referenced Object Associations");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -985,14 +977,14 @@ namespace VEPROMS
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2017-030 - new Admin Tools user interface
|
||||
// tool was renamed to Show Users
|
||||
private void GetDatabaseSessions()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Show Users in PROMS");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -1004,7 +996,7 @@ namespace VEPROMS
|
||||
DateTime pEnd = DateTime.Now;
|
||||
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
MessageBox.Show("Show Users Completed", "Show Users");
|
||||
}
|
||||
|
||||
@@ -1046,10 +1038,10 @@ namespace VEPROMS
|
||||
FinalProgressBarMessage = "No existing RO.FST";
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText("No existing ro.fst in path " + roFstInfo.MyRODb.FolderPath + ". Check for invalid path");
|
||||
txtProcess.AppendText($"No existing ro.fst in path {roFstInfo.MyRODb.FolderPath}. Check for invalid path");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtResults.AppendText("No existing ro.fst in path " + roFstInfo.MyRODb.FolderPath + ". Check for invalid path");
|
||||
txtResults.AppendText($"No existing ro.fst in path {roFstInfo.MyRODb.FolderPath}. Check for invalid path");
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
return;
|
||||
@@ -1123,15 +1115,12 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
StringBuilder myFixes;
|
||||
int myFixesCount = 0;
|
||||
int myConvertCount = 0;
|
||||
// show the changes made in the Results pannel, include the ItemId of the step element
|
||||
void ContentInfo_StaticContentInfoChange(object sender, StaticContentInfoEventArgs args)
|
||||
{
|
||||
|
||||
if (args.Type == "TX")
|
||||
{
|
||||
myFixesCount++;
|
||||
if (args.NewValue.StartsWith("Reason for Change:"))
|
||||
myFixes.AppendLine(string.Format("Fixed Transition for {1}({4}){0}Old Text: {2}{0}{3}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID));
|
||||
else
|
||||
@@ -1155,12 +1144,14 @@ namespace VEPROMS
|
||||
|
||||
private void btnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.DefaultExt = "txt";
|
||||
sfd.AddExtension = true;
|
||||
sfd.Filter = "Text Files (*.txt)|*.txt";
|
||||
sfd.FileName = string.Format("BatchRefreshResults_{0}", DateTime.Now.ToString("yyyyMMdd_HHmm"));
|
||||
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS";
|
||||
SaveFileDialog sfd = new SaveFileDialog
|
||||
{
|
||||
DefaultExt = "txt",
|
||||
AddExtension = true,
|
||||
Filter = "Text Files (*.txt)|*.txt",
|
||||
FileName = string.Format("BatchRefreshResults_{0}", DateTime.Now.ToString("yyyyMMdd_HHmm")),
|
||||
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS"
|
||||
};
|
||||
DialogResult dr = sfd.ShowDialog();
|
||||
|
||||
if (dr == DialogResult.OK)
|
||||
@@ -1186,7 +1177,7 @@ namespace VEPROMS
|
||||
{
|
||||
|
||||
//Purge Change History
|
||||
string statmsg = $"Purging all Change History before {dtePurge.Value.Date.ToString("MM/dd/yyyy")}";
|
||||
string statmsg = $"Purging all Change History before {dtePurge.Value.Date:MM/dd/yyyy}";
|
||||
InitialProgressBarMessage = statmsg;
|
||||
txtResults.AppendText(statmsg);
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
@@ -1194,7 +1185,7 @@ namespace VEPROMS
|
||||
Maintenance.PurgeChangeHistory(dtePurge.Value);
|
||||
|
||||
//update status
|
||||
statmsg = $"Finished Purging all Change History before {dtePurge.Value.Date.ToString("MM/dd/yyyy")}. Updating indexes to reflect cleaned data.";
|
||||
statmsg = $"Finished Purging all Change History before {dtePurge.Value.Date:MM/dd/yyyy}. Updating indexes to reflect cleaned data.";
|
||||
DoProgressBarRefresh(50, 100, statmsg);
|
||||
txtProcess.AppendText(statmsg);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
@@ -1381,10 +1372,7 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
// C2017-030 new Admin Tools user interface
|
||||
private void sideNavItmExit_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
private void sideNavItmExit_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
// new Admin Tools user interface for deletes
|
||||
private void sideNavItmDelete_Click(object sender, EventArgs e)
|
||||
@@ -1426,12 +1414,12 @@ namespace VEPROMS
|
||||
};
|
||||
private E_AdminToolType AdminToolType = E_AdminToolType.Repair;
|
||||
|
||||
DevComponents.DotNetBar.StepItem siOrphDatRecs = new DevComponents.DotNetBar.StepItem("siOrphDatRecs", "Orphan Data Records");
|
||||
DevComponents.DotNetBar.StepItem siObsoleteROData = new DevComponents.DotNetBar.StepItem("siObsoleteROData", "Obsolete RO Data");
|
||||
DevComponents.DotNetBar.StepItem siStandardHyphens = new DevComponents.DotNetBar.StepItem("siStandardHyphens", "Standardize Hyphens");
|
||||
DevComponents.DotNetBar.StepItem siRefreshAttmts = new DevComponents.DotNetBar.StepItem("siRefreshAttmts", "Refresh Word Attachments");
|
||||
DevComponents.DotNetBar.StepItem siRegenAttmts = new DevComponents.DotNetBar.StepItem("siRegenAttmts", "Regenerate Word Attachments");
|
||||
DevComponents.DotNetBar.StepItem siRefreshTblsSrchTxt = new DevComponents.DotNetBar.StepItem("siRefreshTblsSrchTxt", "Refresh Tables For Search");
|
||||
readonly DevComponents.DotNetBar.StepItem siOrphDatRecs = new DevComponents.DotNetBar.StepItem("siOrphDatRecs", "Orphan Data Records");
|
||||
readonly DevComponents.DotNetBar.StepItem siObsoleteROData = new DevComponents.DotNetBar.StepItem("siObsoleteROData", "Obsolete RO Data");
|
||||
readonly DevComponents.DotNetBar.StepItem siStandardHyphens = new DevComponents.DotNetBar.StepItem("siStandardHyphens", "Standardize Hyphens");
|
||||
readonly DevComponents.DotNetBar.StepItem siRefreshAttmts = new DevComponents.DotNetBar.StepItem("siRefreshAttmts", "Refresh Word Attachments");
|
||||
readonly DevComponents.DotNetBar.StepItem siRegenAttmts = new DevComponents.DotNetBar.StepItem("siRegenAttmts", "Regenerate Word Attachments");
|
||||
readonly DevComponents.DotNetBar.StepItem siRefreshTblsSrchTxt = new DevComponents.DotNetBar.StepItem("siRefreshTblsSrchTxt", "Refresh Tables For Search");
|
||||
// this will update/rebuild the progress bar in the bottom panel of Admin Tools
|
||||
private void setupProgessSteps1()
|
||||
{
|
||||
@@ -1484,10 +1472,7 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
// used for all of the Switch buttons (ON/OFF buttons)
|
||||
private void swCk_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
setupProgessSteps1();
|
||||
}
|
||||
private void swCk_ValueChanged(object sender, EventArgs e) => setupProgessSteps1();
|
||||
|
||||
private void swUpdateROVals_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1513,10 +1498,7 @@ namespace VEPROMS
|
||||
|
||||
// C2017-030 New Admin Tools user interface
|
||||
// functions to handle the progress bar in the bottom panel of Admin Tools
|
||||
private void StepProgress(int prgStpIdx, int val)
|
||||
{
|
||||
((DevComponents.DotNetBar.StepItem)progressSteps1.Items[prgStpIdx]).Value = val;
|
||||
}
|
||||
private void StepProgress(int prgStpIdx, int val) => ((DevComponents.DotNetBar.StepItem)progressSteps1.Items[prgStpIdx]).Value = val;
|
||||
|
||||
private void ClearStepProgress()
|
||||
{
|
||||
@@ -1673,7 +1655,7 @@ namespace VEPROMS
|
||||
txtResults.Clear();
|
||||
txtProcess.Clear();
|
||||
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
|
||||
//Create checked proce and doc info lists.
|
||||
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||
@@ -1756,7 +1738,7 @@ namespace VEPROMS
|
||||
sb.AppendLine("If you want to delete annotations from these working drafts, please contact the respective users and have them close any procedures in the working draft.");
|
||||
sb.AppendLine();
|
||||
txtProcess.AppendText(sb.ToString());
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1790,7 +1772,7 @@ namespace VEPROMS
|
||||
|
||||
|
||||
}
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
private void ProcessDelete(List<DocVersionInfo> foldersToDelete, List<FolderInfo> emptyFoldersToDelete)
|
||||
@@ -1953,12 +1935,14 @@ namespace VEPROMS
|
||||
private void btnROsNotUsed_Click(object sender, EventArgs e)
|
||||
{
|
||||
//Get the path to save the Image to
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.DefaultExt = "bmp";
|
||||
sfd.AddExtension = true;
|
||||
sfd.Filter = "Image Files (*.bmp)|*.bmp";
|
||||
sfd.FileName = string.Format("ROsNotUsed_{0}", DateTime.Now.ToString("yyyyMMdd_HHmm"));
|
||||
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS";
|
||||
SaveFileDialog sfd = new SaveFileDialog
|
||||
{
|
||||
DefaultExt = "bmp",
|
||||
AddExtension = true,
|
||||
Filter = "Image Files (*.bmp)|*.bmp",
|
||||
FileName = string.Format("ROsNotUsed_{0}", DateTime.Now.ToString("yyyyMMdd_HHmm")),
|
||||
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS"
|
||||
};
|
||||
DialogResult dr = sfd.ShowDialog();
|
||||
|
||||
if (dr == DialogResult.OK)
|
||||
|
||||
@@ -1,35 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using LBOutlookLibrary;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Net.Mail;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class frmBatchRefreshCheckedOut : Form
|
||||
{
|
||||
private SessionInfo _MySessionInfo;
|
||||
public SessionInfo MySessionInfo
|
||||
{
|
||||
get { return _MySessionInfo; }
|
||||
set { _MySessionInfo = value; }
|
||||
}
|
||||
private List<ProcedureInfo> _CheckedOutProcedures;
|
||||
public List<ProcedureInfo> CheckedOutProcedures
|
||||
{
|
||||
get { return _CheckedOutProcedures; }
|
||||
set { _CheckedOutProcedures = value; }
|
||||
}
|
||||
private int RType = -1; // C2023-002: Flag type of checkout, docversion -1 or procedures 0
|
||||
public SessionInfo MySessionInfo { get; set; }
|
||||
public List<ProcedureInfo> CheckedOutProcedures { get; set; }
|
||||
private readonly int RType = -1; // C2023-002: Flag type of checkout, docversion -1 or procedures 0
|
||||
public frmBatchRefreshCheckedOut(int type)
|
||||
{
|
||||
RType = type;
|
||||
@@ -53,31 +36,38 @@ namespace VEPROMS
|
||||
}
|
||||
private void AddToDisplayList(ProcedureInfo pi)
|
||||
{
|
||||
Panel p = new Panel();
|
||||
p.BorderStyle = BorderStyle.FixedSingle;
|
||||
p.Dock = DockStyle.Top;
|
||||
p.Height = 28;
|
||||
Panel p = new Panel
|
||||
{
|
||||
BorderStyle = BorderStyle.FixedSingle,
|
||||
Dock = DockStyle.Top,
|
||||
Height = 28
|
||||
};
|
||||
if (RType != 1) // C2023-002: only put out ForceCheckin & sendemail buttons if on procedures (can't check in a docversion)
|
||||
{
|
||||
Button b = new Button();
|
||||
//b.FlatStyle = FlatStyle.Popup;
|
||||
b.Dock = DockStyle.Right;
|
||||
b.Text = "Force Check In";
|
||||
b.Tag = pi;
|
||||
Button b = new Button
|
||||
{
|
||||
Dock = DockStyle.Right,
|
||||
Text = "Force Check In",
|
||||
Tag = pi
|
||||
};
|
||||
b.Click += new EventHandler(ForceCheckIn_Click);
|
||||
p.Controls.Add(b);
|
||||
b = new Button();
|
||||
b = new Button
|
||||
{
|
||||
//b.FlatStyle = FlatStyle.Popup;
|
||||
b.Dock = DockStyle.Right;
|
||||
b.Text = "Send Email";
|
||||
b.Tag = pi;
|
||||
Dock = DockStyle.Right,
|
||||
Text = "Send Email",
|
||||
Tag = pi
|
||||
};
|
||||
b.Click += new EventHandler(SendEmail_Click);
|
||||
p.Controls.Add(b);
|
||||
}
|
||||
Label l = new Label();
|
||||
l.Dock = DockStyle.Fill;
|
||||
l.TextAlign = ContentAlignment.MiddleLeft;
|
||||
l.Text = string.Format("Procedure {0} is checked out to {1}", pi.DisplayNumber, UserInfo.GetByUserID(OwnerInfo.GetByItemID(pi.ItemID, CheckOutType.Procedure).SessionUserID).UserID);
|
||||
Label l = new Label
|
||||
{
|
||||
Dock = DockStyle.Fill,
|
||||
TextAlign = ContentAlignment.MiddleLeft,
|
||||
Text = $"Procedure {pi.DisplayNumber} is checked out to {UserInfo.GetByUserID(OwnerInfo.GetByItemID(pi.ItemID, CheckOutType.Procedure).SessionUserID).UserID}"
|
||||
};
|
||||
p.Controls.Add(l);
|
||||
pnlList.Controls.Add(p);
|
||||
p.BringToFront();
|
||||
@@ -103,15 +93,7 @@ namespace VEPROMS
|
||||
private string BuildEmailMessageBody(ProcedureInfo pi)
|
||||
{
|
||||
StringBuilder body = new StringBuilder();
|
||||
//body.AppendLine("THIS IS A TEST MESSAGE FROM JIM BODINE");
|
||||
//body.AppendLine();
|
||||
body.AppendLine(string.Format("The administrator needs you to check in procedure {0} so the administrator can continue an administrative tool process", pi.DisplayNumber));
|
||||
//body.AppendLine();
|
||||
//body.AppendLine("Obviously, you do not really have this procedure checked out, so you really do not have to do anything.");
|
||||
//body.AppendLine();
|
||||
//body.AppendLine("However, I would appreciate it if you would reply to this email so I know the email worked");
|
||||
//body.AppendLine();
|
||||
//body.AppendLine("I will try NOT to overwhelm your email system :-)");
|
||||
body.AppendLine($"The administrator needs you to check in procedure {pi.DisplayNumber} so the administrator can continue an administrative tool process");
|
||||
return body.ToString();
|
||||
}
|
||||
void ForceCheckIn_Click(object sender, EventArgs e)
|
||||
@@ -134,15 +116,7 @@ namespace VEPROMS
|
||||
private string BuildForcedMessageBody(ProcedureInfo pi)
|
||||
{
|
||||
StringBuilder body = new StringBuilder();
|
||||
//body.AppendLine("THIS IS A TEST MESSAGE FROM JIM BODINE");
|
||||
//body.AppendLine();
|
||||
body.AppendLine(string.Format("The administrator needed to force check in procedure {0} so the administrator could continue an administrative tool process", pi.DisplayNumber));
|
||||
//body.AppendLine();
|
||||
//body.AppendLine("Obviously, you do not really have this procedure checked out, so nothing really got forced checked in.");
|
||||
//body.AppendLine();
|
||||
//body.AppendLine("However, I would appreciate it if you would reply to this email so I know the email worked");
|
||||
//body.AppendLine();
|
||||
//body.AppendLine("I will try NOT to overwhelm your email system :-)");
|
||||
body.AppendLine($"The administrator needed to force check in procedure {pi.DisplayNumber} so the administrator could continue an administrative tool process");
|
||||
return body.ToString();
|
||||
}
|
||||
private bool SendOutlookEmail(string email, string subject, string body)
|
||||
@@ -163,7 +137,7 @@ namespace VEPROMS
|
||||
if (ex.Message.ToLower().Contains("failed due to the following error: 80080005"))
|
||||
MessageBox.Show("You cannot send email via a running instance of Outlook from VE PROMS running from within Visual Studio.");
|
||||
else
|
||||
MessageBox.Show(string.Format("{0} - {1}", ex.GetType().Name, ex.Message));
|
||||
MessageBox.Show($"{ex.GetType().Name} - {ex.Message}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -180,7 +154,7 @@ namespace VEPROMS
|
||||
CheckedOutProcedures = tmp;
|
||||
if (CheckedOutProcedures.Count == 0)
|
||||
{
|
||||
this.Close();
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
foreach (ProcedureInfo pi in CheckedOutProcedures)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,14 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using System.IO;
|
||||
using Volian.Controls.Library;
|
||||
using DevComponents.DotNetBar;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System.Linq;
|
||||
using System.Data;
|
||||
using xls = Microsoft.Office.Interop.Excel;
|
||||
|
||||
@@ -16,52 +11,42 @@ namespace VEPROMS
|
||||
{
|
||||
public partial class frmGenTools : Form
|
||||
{
|
||||
private SessionInfo _MySessionInfo;
|
||||
public SessionInfo MySessionInfo
|
||||
{
|
||||
get { return _MySessionInfo; }
|
||||
set { _MySessionInfo = value; }
|
||||
}
|
||||
public SessionInfo MySessionInfo { get; set; }
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Keeping veProms for potential future use")]
|
||||
public frmGenTools(SessionInfo sessionInfo, frmVEPROMS veProms)
|
||||
{
|
||||
InitializeComponent();
|
||||
_MySessionInfo = sessionInfo;
|
||||
MySessionInfo = sessionInfo;
|
||||
|
||||
// When opening General tools Check tab will be default.
|
||||
this.sideNavItmCheck.Checked = true;
|
||||
sideNavItmCheck.Checked = true;
|
||||
|
||||
setupProgessSteps1(); // C2017-030 - new Tools user interface
|
||||
|
||||
}
|
||||
|
||||
private void frmGenTools_Load(object sender, EventArgs e)
|
||||
{
|
||||
IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
}
|
||||
private void frmGenTools_Load(object sender, EventArgs e) => IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
private bool IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
private void frmGenTools_FormClosing(object sender, EventArgs e)
|
||||
{
|
||||
IsClosing = true;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
}
|
||||
private void frmGenTools_FormClosing(object sender, EventArgs e) => IsClosing = true;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||
|
||||
// C2017-030 - new Tools user interface
|
||||
// tool renamed to Identify Orphan Items
|
||||
private void IdentifyDisconnectedItems()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Identifing Orphan Items");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Started: {pStart:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
|
||||
txtProcess.AppendText(string.Format("Orphan Items Count: {0}", rowCount));
|
||||
txtProcess.AppendText($"Orphan Items Count: {rowCount}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
if (rowCount > 0)
|
||||
{
|
||||
txtResults.AppendText(string.Format("The database contains {0} Orphan items.", rowCount));
|
||||
txtResults.AppendText($"The database contains {rowCount} Orphan items.");
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
txtResults.AppendText("These can be removed via the Remove Orphan Data Records in the Repair tools");
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
@@ -74,33 +59,33 @@ namespace VEPROMS
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
}
|
||||
DateTime pEnd = DateTime.Now;
|
||||
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Completed: {pEnd:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2017-030 - new Tools user interface
|
||||
// is one of two tools run from Check Obsolete RO Data
|
||||
private void IdentifyUnusedRoFstsAndFigures()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Identifing Unused RoFsts and Figures");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Started: {pStart:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
|
||||
int rowCountFigures = ESP_GetUnusedFigures.Execute("vesp_GetUnusedFiguresCount");
|
||||
txtProcess.AppendText(string.Format("Unused RoFsts Count: {0}, Unused Figures Count: {1}", rowCountRoFst, rowCountFigures));
|
||||
txtProcess.AppendText($"Unused RoFsts Count: {rowCountRoFst}, Unused Figures Count: {rowCountFigures}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
if (rowCountRoFst > 0 || rowCountFigures > 0)
|
||||
{
|
||||
txtResults.AppendText(string.Format("The database contains {0} unused RoFsts.", rowCountRoFst));
|
||||
txtResults.AppendText($"The database contains {rowCountRoFst} unused RoFsts.");
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
txtResults.AppendText(string.Format("The database contains {0} unused Figures items.", rowCountFigures));
|
||||
txtResults.AppendText($"The database contains {rowCountFigures} unused Figures items.");
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
}
|
||||
@@ -112,31 +97,31 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
DateTime pEnd = DateTime.Now;
|
||||
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Completed: {pEnd:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Started: {pStart:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2017-030 - new Tools user interface
|
||||
// is one of two tools run from Check Obsolete RO Data
|
||||
private void IdentifyROAssociations()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Identifing Unused RO Associations");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Started: {pStart:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
|
||||
txtProcess.AppendText(string.Format("Unused RO Associations Count: {0}", rowCount));
|
||||
txtProcess.AppendText($"Unused RO Associations Count: {rowCount}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
if (rowCount > 0)
|
||||
{
|
||||
txtResults.AppendText(string.Format("The database contains {0} unused RO Associations.", rowCount));
|
||||
txtResults.AppendText($"The database contains {rowCount} unused RO Associations.");
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
}
|
||||
@@ -147,26 +132,26 @@ namespace VEPROMS
|
||||
txtResults.AppendText(Environment.NewLine);
|
||||
}
|
||||
DateTime pEnd = DateTime.Now;
|
||||
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Completed: {pEnd:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2017-030 - new Tools user interface
|
||||
// tool was renamed to Hidden Data Locations (on Check list)
|
||||
private void IdentifyNonEditableItems()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Identifing Hidden Item Locations");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Started: {pStart:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
List<ItemInfo> myItems = ESP_IdentifyNonEditableItems.Execute("vesp_GetNonEditableItems");
|
||||
txtProcess.AppendText(string.Format("Hidden Items Count: {0}", myItems.Count));
|
||||
txtProcess.AppendText($"Hidden Items Count: {myItems.Count}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
if (myItems.Count > 0)
|
||||
{
|
||||
@@ -190,51 +175,45 @@ namespace VEPROMS
|
||||
//clear the list since no longer using it
|
||||
myItems.Clear();
|
||||
DateTime pEnd = DateTime.Now;
|
||||
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Completed: {pEnd:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2017-030 - new Tools user interface
|
||||
// tool was renamed to Show Users
|
||||
private void GetDatabaseSessions()
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Show Users in PROMS");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Started: {pStart:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
txtResults.Clear();
|
||||
txtResults.AppendText(ESP_GetDatabaseSessions.Execute("vesp_GetDatabaseSessions"));
|
||||
DateTime pEnd = DateTime.Now;
|
||||
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Completed: {pEnd:MM/dd/yyyy @ HH:mm}");
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
MessageBox.Show("Show Users Completed", "Show Users");
|
||||
}
|
||||
|
||||
public List<string> roFstInfo_ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args)
|
||||
{
|
||||
return VlnFlexGrid.ROTableUpdate(sender, args);
|
||||
}
|
||||
|
||||
private void btnClear_Click(object sender, EventArgs e)
|
||||
{
|
||||
txtResults.Clear();
|
||||
}
|
||||
private void btnClear_Click(object sender, EventArgs e) => txtResults.Clear();
|
||||
|
||||
private void btnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.DefaultExt = "txt";
|
||||
sfd.AddExtension = true;
|
||||
sfd.Filter = "Text Files (*.txt)|*.txt";
|
||||
sfd.FileName = string.Format("BatchRefreshResults_{0}", DateTime.Now.ToString("yyyyMMdd_HHmm"));
|
||||
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS";
|
||||
SaveFileDialog sfd = new SaveFileDialog
|
||||
{
|
||||
DefaultExt = "txt",
|
||||
AddExtension = true,
|
||||
Filter = "Text Files (*.txt)|*.txt",
|
||||
FileName = $"BatchRefreshResults_{DateTime.Now:yyyyMMdd_HHmm}",
|
||||
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS"
|
||||
};
|
||||
DialogResult dr = sfd.ShowDialog();
|
||||
|
||||
if (dr == DialogResult.OK)
|
||||
@@ -257,10 +236,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
private void chkLater_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
pnlLater.Enabled = chkLater.Checked;
|
||||
}
|
||||
private void chkLater_CheckedChanged(object sender, EventArgs e) => pnlLater.Enabled = chkLater.Checked;
|
||||
|
||||
// C2017-030 new Tools user interface
|
||||
private void sideNavItmCheck_Click(object sender, EventArgs e)
|
||||
@@ -285,10 +261,7 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
// C2017-030 new Tools user interface
|
||||
private void sideNavItmExit_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
private void sideNavItmExit_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
#region On/Off Swiches
|
||||
|
||||
@@ -301,9 +274,9 @@ namespace VEPROMS
|
||||
};
|
||||
private E_GenToolType GenToolType = 0;
|
||||
|
||||
DevComponents.DotNetBar.StepItem siOrphDatRecs = new DevComponents.DotNetBar.StepItem("siOrphDatRecs", "Orphan Data Records");
|
||||
DevComponents.DotNetBar.StepItem siHiddenDataLocs = new DevComponents.DotNetBar.StepItem("siHiddenDataLocs", "Hidden Data");
|
||||
DevComponents.DotNetBar.StepItem siObsoleteROData = new DevComponents.DotNetBar.StepItem("siObsoleteROData", "Obsolete RO Data");
|
||||
readonly DevComponents.DotNetBar.StepItem siOrphDatRecs = new DevComponents.DotNetBar.StepItem("siOrphDatRecs", "Orphan Data Records");
|
||||
readonly DevComponents.DotNetBar.StepItem siHiddenDataLocs = new DevComponents.DotNetBar.StepItem("siHiddenDataLocs", "Hidden Data");
|
||||
readonly DevComponents.DotNetBar.StepItem siObsoleteROData = new DevComponents.DotNetBar.StepItem("siObsoleteROData", "Obsolete RO Data");
|
||||
|
||||
// this will update/rebuild the progress bar in the bottom panel of Tools
|
||||
private void setupProgessSteps1()
|
||||
@@ -333,19 +306,13 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
// used for all of the Switch buttons (ON/OFF buttons)
|
||||
private void swCk_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
setupProgessSteps1();
|
||||
}
|
||||
private void swCk_ValueChanged(object sender, EventArgs e) => setupProgessSteps1();
|
||||
|
||||
#endregion
|
||||
|
||||
// C2017-030 New Tools user interface
|
||||
// functions to handle the progress bar in the bottom panel of Tools
|
||||
private void StepProgress(int prgStpIdx, int val)
|
||||
{
|
||||
((DevComponents.DotNetBar.StepItem)progressSteps1.Items[prgStpIdx]).Value = val;
|
||||
}
|
||||
private void StepProgress(int prgStpIdx, int val) => ((DevComponents.DotNetBar.StepItem)progressSteps1.Items[prgStpIdx]).Value = val;
|
||||
|
||||
private void ClearStepProgress()
|
||||
{
|
||||
@@ -362,7 +329,7 @@ namespace VEPROMS
|
||||
{
|
||||
if (chkLater.Checked)
|
||||
{
|
||||
long later = long.Parse(dtpDate.Value.ToString("yyyyMMdd") + dtpTime.Value.ToString("HHmm"));
|
||||
long later = long.Parse($"{dtpDate.Value:yyyyMMdd}{dtpTime.Value:HHmm}");
|
||||
long now = long.Parse(DateTime.Now.ToString("yyyyMMddHHmm"));
|
||||
|
||||
while (now < later)
|
||||
@@ -435,9 +402,11 @@ namespace VEPROMS
|
||||
{
|
||||
if (string.IsNullOrEmpty(UACfilename))
|
||||
{
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.Filter = "Excel XLS (*.xlsx)|*.xlsx";
|
||||
sfd.FileName = "UACReport.xlsx";
|
||||
SaveFileDialog sfd = new SaveFileDialog
|
||||
{
|
||||
Filter = "Excel XLS (*.xlsx)|*.xlsx",
|
||||
FileName = "UACReport.xlsx"
|
||||
};
|
||||
if (sfd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
UACfilename = sfd.FileName;
|
||||
@@ -462,11 +431,11 @@ namespace VEPROMS
|
||||
//Get Datatable of results then loop through outputting into excel
|
||||
private void Generate_UAC_Report(string filename)
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
DateTime pStart = DateTime.Now;
|
||||
txtProcess.AppendText("Generate User Access Control Report in PROMS");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Started: {pStart:MM/dd/yyyy @ HH:mm}");
|
||||
txtProcess.AppendText(Environment.NewLine);
|
||||
Application.DoEvents();
|
||||
txtResults.Clear();
|
||||
@@ -525,9 +494,9 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
DateTime pEnd = DateTime.Now;
|
||||
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||
txtProcess.AppendText($"Completed: {pEnd:MM/dd/yyyy @ HH:mm}");
|
||||
Application.DoEvents();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
MessageBox.Show("Generate User Access Control Report Completed", "User Access Control Report");
|
||||
|
||||
}
|
||||
@@ -544,7 +513,7 @@ namespace VEPROMS
|
||||
catch (Exception ex)
|
||||
{
|
||||
obj = null;
|
||||
MessageBox.Show("Exception Occurred while releasing object " + ex.ToString());
|
||||
MessageBox.Show($"Exception Occurred while releasing object {ex}");
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -553,17 +522,10 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
//C2025-011 RO Update Tool Memory Enhancements
|
||||
private void txtProcess_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
//clears the stack to help with memory - should never need to undo text changes to this.
|
||||
txtProcess.ClearUndo();
|
||||
}
|
||||
|
||||
private void txtResults_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
private void txtProcess_TextChanged(object sender, EventArgs e) => txtProcess.ClearUndo();
|
||||
//clears the stack to help with memory - should never need to undo text changes to this.
|
||||
txtResults.ClearUndo();
|
||||
}
|
||||
private void txtResults_TextChanged(object sender, EventArgs e) => txtResults.ClearUndo();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
@@ -40,10 +36,10 @@ namespace VEPROMS
|
||||
tmp = $"{su.UserID} Information";
|
||||
}
|
||||
|
||||
this.Text = tmp;
|
||||
Text = tmp;
|
||||
}
|
||||
}
|
||||
private string _Mode;
|
||||
private readonly string _Mode;
|
||||
public frmManageUser(string mode)
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -55,7 +51,7 @@ namespace VEPROMS
|
||||
_MyUser = (pgUser.SelectedObject as SimpleUser).MyUser;
|
||||
if (_MyUser.UserID.StartsWith("["))
|
||||
{
|
||||
MessageBox.Show(string.Format("{0} is an invalid UserID", _MyUser.UserID));
|
||||
MessageBox.Show($"{_MyUser.UserID} is an invalid UserID");
|
||||
return;
|
||||
}
|
||||
if (_MyUser.UserID == string.Empty)
|
||||
@@ -65,28 +61,25 @@ namespace VEPROMS
|
||||
}
|
||||
if (UserInfo.GetByUserID(_MyUser.UserID) != null && _Mode.ToUpper() == "ADD")
|
||||
{
|
||||
MessageBox.Show(string.Format("A user already exists with the UserID '{0}'", _MyUser.UserID));
|
||||
MessageBox.Show($"A user already exists with the UserID '{_MyUser.UserID}'");
|
||||
return;
|
||||
}
|
||||
_MyUser.Save();
|
||||
this.DialogResult = DialogResult.OK;
|
||||
DialogResult = DialogResult.OK;
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
_MyUser = User.Get(_MyUser.UID);
|
||||
this.DialogResult = DialogResult.Cancel;
|
||||
DialogResult = DialogResult.Cancel;
|
||||
}
|
||||
}
|
||||
internal class SimpleUser
|
||||
{
|
||||
private User _MyUser;
|
||||
private UserConfig _MyUC;
|
||||
private readonly User _MyUser;
|
||||
private readonly UserConfig _MyUC;
|
||||
[Browsable(false)]
|
||||
public User MyUser
|
||||
{
|
||||
get { return _MyUser; }
|
||||
}
|
||||
public User MyUser => _MyUser;
|
||||
public SimpleUser(User myUser)
|
||||
{
|
||||
_MyUser = myUser;
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Volian.Print.Library;
|
||||
using VEPROMS.CSLA.Library;
|
||||
@@ -14,89 +11,23 @@ namespace VEPROMS
|
||||
{
|
||||
public partial class frmPDFStatusForm : Form
|
||||
{
|
||||
private bool _CancelPrinting = false;
|
||||
public bool CancelPrinting
|
||||
{
|
||||
get { return _CancelPrinting; }
|
||||
set { _CancelPrinting = value; }
|
||||
}
|
||||
private bool _CloseWhenDone = false;
|
||||
public bool CloseWhenDone
|
||||
{
|
||||
get { return _CloseWhenDone; }
|
||||
set { _CloseWhenDone = value; }
|
||||
}
|
||||
private bool _CancelStop = false;
|
||||
public bool CancelStop
|
||||
{
|
||||
get { return _CancelStop; }
|
||||
set { _CancelStop = value; }
|
||||
}
|
||||
private bool _Stop = false;
|
||||
public bool Stop
|
||||
{
|
||||
get { return _Stop; }
|
||||
set { _Stop = value; }
|
||||
}
|
||||
private string _PDFPath;
|
||||
public bool CancelPrinting { get; set; } = false;
|
||||
public bool CloseWhenDone { get; set; } = false;
|
||||
public bool CancelStop { get; set; } = false;
|
||||
public bool Stop { get; set; } = false;
|
||||
|
||||
public string PDFPath
|
||||
{
|
||||
get { return _PDFPath; }
|
||||
set { _PDFPath = value; }
|
||||
}
|
||||
private PromsPrinter _MyPromsPrinter;
|
||||
public string PDFPath { get; set; }
|
||||
|
||||
public PromsPrinter MyPromsPrinter
|
||||
{
|
||||
get { return _MyPromsPrinter; }
|
||||
set { _MyPromsPrinter = value; }
|
||||
}
|
||||
public PromsPrinter MyPromsPrinter { get; set; }
|
||||
|
||||
private bool _OpenPDF;
|
||||
|
||||
public bool OpenPDF
|
||||
{
|
||||
get { return _OpenPDF; }
|
||||
set { _OpenPDF = value; }
|
||||
}
|
||||
public bool OpenPDF { get; set; }
|
||||
private Point _NewLocation;
|
||||
private string _Prefix = ""; // RHM20150506 Multiline ItemID TextBox
|
||||
public string Prefix
|
||||
{
|
||||
get { return _Prefix; }
|
||||
set { _Prefix = value; }
|
||||
}
|
||||
// this flag is used when the Continuous Action Sumamry is printed from the tree or ribbon button
|
||||
// it will prevent the temporary PDF (generated with printing - needed to get page numbers) from being displayed
|
||||
// and will delete that temporary PDF file
|
||||
private bool _OnlyShowContinuousActionSummary = false;
|
||||
public bool OnlyShowContinuousActionSummary
|
||||
{
|
||||
get { return _OnlyShowContinuousActionSummary; }
|
||||
set { _OnlyShowContinuousActionSummary = value; }
|
||||
}
|
||||
// F2022-024 this flag is used when the Time Critical Action Sumamry is printed from the tree or ribbon button
|
||||
// it will prevent the temporary PDF (generated with printing - needed to get page numbers) from being displayed
|
||||
// and will delete that temporary PDF file
|
||||
private bool _OnlyShowTimeCriticalActionSummary = false;
|
||||
public bool OnlyShowTimeCriticalActionSummary
|
||||
{
|
||||
get { return _OnlyShowTimeCriticalActionSummary; }
|
||||
set { _OnlyShowTimeCriticalActionSummary = value; }
|
||||
}
|
||||
private bool _DidAll = false;
|
||||
public bool DidAll
|
||||
{
|
||||
get { return _DidAll; }
|
||||
set { _DidAll = value; }
|
||||
}
|
||||
private int _prtSectID = -1;
|
||||
public int PrtSectID
|
||||
{
|
||||
get { return _prtSectID; }
|
||||
set { _prtSectID = value; }
|
||||
}
|
||||
|
||||
public string Prefix { get; set; } = "";
|
||||
public bool OnlyShowContinuousActionSummary { get; set; } = false;
|
||||
public bool OnlyShowTimeCriticalActionSummary { get; set; } = false;
|
||||
public bool DidAll { get; set; } = false;
|
||||
public int PrtSectID { get; set; } = -1;
|
||||
public frmPDFStatusForm(ItemInfo myItem, string rev, string watermark, bool debugOutput, bool origPgBrk, bool openPDF, bool overWrite, string pdfPath, ChangeBarDefinition cbd, string pdfFile, Point newLocation, bool insertBlankPages, bool allOrAuto, string prefix, bool saveLinks, int removeTrailingHardReturnsAndManualPageBreaks, bool showPROMSVer, bool didAll, string blankPageText, MergedPdf mergedPdf, string watermarkColor, int PrtSectID = -1)
|
||||
{
|
||||
// B2021-088 moved this if/else from CreatePDF() so that the Approval logic will have access to this logic
|
||||
@@ -114,28 +45,29 @@ namespace VEPROMS
|
||||
|
||||
// B2021-102 moved the baseline meta file write here too - should have been done with B2021-088 fix
|
||||
// C2018-015 add the procedure tree path and the procedure number and title to the meta file
|
||||
if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0}", MyProcedure.SearchDVPath.Replace("\a", " | "));
|
||||
if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0} | {1}", MyProcedure.DisplayNumber, MyProcedure.DisplayText);
|
||||
if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine($"!! {MyProcedure.SearchDVPath.Replace("\a", " | ")}");
|
||||
if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine($"!! {MyProcedure.DisplayNumber} | {MyProcedure.DisplayText}");
|
||||
|
||||
myItem = MyProcedure;
|
||||
|
||||
Prefix = prefix;
|
||||
OpenPDF = openPDF;
|
||||
DidAll = didAll;
|
||||
_prtSectID = PrtSectID;
|
||||
this.PrtSectID = PrtSectID;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
// if the version number of PROMS is 1.0, then we are running a Demo version.
|
||||
// When running a Demo version, force a "Sample" watermark when printing.
|
||||
// B2020-022 append a ".pdf" extension if the file name does on have one.
|
||||
MyPromsPrinter = new PromsPrinter(myItem, rev, (VlnSettings.ReleaseMode.Equals("DEMO")) ? "Sample" : watermark, debugOutput, origPgBrk, pdfPath + @"\Compare", false, overWrite, cbd, (pdfFile.ToUpper().EndsWith(".PDF"))?pdfFile:pdfFile+".pdf", insertBlankPages, allOrAuto,Prefix,saveLinks,removeTrailingHardReturnsAndManualPageBreaks, blankPageText, DidAll, mergedPdf, watermarkColor);
|
||||
|
||||
MyPromsPrinter.PromsVersion = (showPROMSVer) ? AboutVEPROMS.PROMSVersion : ""; //C2018-009 print PROMS version
|
||||
MyPromsPrinter = new PromsPrinter(myItem, rev, (VlnSettings.ReleaseMode.Equals("DEMO")) ? "Sample" : watermark, debugOutput, origPgBrk, pdfPath + @"\Compare", false, overWrite, cbd, (pdfFile.ToUpper().EndsWith(".PDF")) ? pdfFile : $"{pdfFile}.pdf", insertBlankPages, allOrAuto, Prefix, saveLinks, removeTrailingHardReturnsAndManualPageBreaks, blankPageText, DidAll, mergedPdf, watermarkColor)
|
||||
{
|
||||
PromsVersion = (showPROMSVer) ? AboutVEPROMS.PROMSVersion : "" //C2018-009 print PROMS version
|
||||
};
|
||||
|
||||
|
||||
PDFPath = pdfPath;
|
||||
this.Text = "Creating PDF of " + myItem.DisplayNumber;
|
||||
Text = $"Creating PDF of {myItem.DisplayNumber}";
|
||||
_NewLocation = newLocation;
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
@@ -162,23 +94,17 @@ namespace VEPROMS
|
||||
if (waterMarkText.ToUpper() == "[U-TEXT]")
|
||||
{
|
||||
string utxt = (procInfo.MyDocVersion.MultiUnitCount > 1) ? procInfo.MyDocVersion.DocVersionConfig.Unit_Text : "";
|
||||
waterMarkText = (utxt == null) ? "" : utxt;
|
||||
waterMarkText = utxt ?? "";
|
||||
}
|
||||
else if (waterMarkText.ToUpper() == "[U-NUMBER]")
|
||||
{
|
||||
string uNum = (procInfo.MyDocVersion.MultiUnitCount > 1) ? procInfo.MyDocVersion.DocVersionConfig.Unit_Number : "";
|
||||
waterMarkText = (uNum == null) ? "" : uNum;
|
||||
waterMarkText = uNum ?? "";
|
||||
}
|
||||
}
|
||||
}
|
||||
// used when the approved function creates an export file with unlinked ROs and Transitons. Word sections that have RO tokens are saved with the RO Vaules in DocReplace
|
||||
// DocReplace is passed on to the Export functions.
|
||||
private Dictionary<int, byte[]> _DocReplace;
|
||||
public Dictionary<int, byte[]> DocReplace
|
||||
{
|
||||
get { return _DocReplace; }
|
||||
set { _DocReplace = value; }
|
||||
}
|
||||
|
||||
public Dictionary<int, byte[]> DocReplace { get; set; }
|
||||
public bool AllowAllWatermarks
|
||||
{
|
||||
get { return MyPromsPrinter.AllowAllWatermarks; }
|
||||
@@ -195,7 +121,7 @@ namespace VEPROMS
|
||||
if (args.Progress == pb.Maximum)
|
||||
pb.Text = args.MyStatus;
|
||||
else
|
||||
pb.Text = string.Format("Processing {0} ({1} of {2})", args.MyStatus, args.Progress + 1, pb.Maximum);
|
||||
pb.Text = $"Processing {args.MyStatus} ({args.Progress + 1} of {pb.Maximum})";
|
||||
}
|
||||
MyStatus = args.MyStatus;
|
||||
Application.DoEvents();
|
||||
@@ -217,36 +143,13 @@ namespace VEPROMS
|
||||
Text = Text.Replace("PDF", "Time Critical Action Summary"); // F2022-024 Time Critical Action
|
||||
}
|
||||
|
||||
private string _PdfFile;
|
||||
public string PdfFile
|
||||
{
|
||||
get { return _PdfFile; }
|
||||
set { _PdfFile = value; }
|
||||
}
|
||||
private bool _MakePlaceKeeper = false;
|
||||
public string PdfFile { get; set; }
|
||||
|
||||
public bool MakePlaceKeeper
|
||||
{
|
||||
get { return _MakePlaceKeeper; }
|
||||
set { _MakePlaceKeeper = value; }
|
||||
}
|
||||
public bool MakePlaceKeeper { get; set; } = false;
|
||||
|
||||
private bool _MakeContinuousActionSummary = false;
|
||||
public bool MakeContinuousActionSummary { get; set; } = false;
|
||||
|
||||
public bool MakeContinuousActionSummary
|
||||
{
|
||||
get { return _MakeContinuousActionSummary; }
|
||||
set { _MakeContinuousActionSummary = value; }
|
||||
}
|
||||
|
||||
// F2022-024 Time Critical Action Summary
|
||||
private bool _MakeTimeCriticalActionSummary = false;
|
||||
|
||||
public bool MakeTimeCriticalActionSummary
|
||||
{
|
||||
get { return _MakeTimeCriticalActionSummary; }
|
||||
set { _MakeTimeCriticalActionSummary = value; }
|
||||
}
|
||||
public bool MakeTimeCriticalActionSummary { get; set; } = false;
|
||||
|
||||
private void tmrRun_Tick(object sender, EventArgs e)
|
||||
{
|
||||
@@ -293,7 +196,7 @@ namespace VEPROMS
|
||||
if (OnlyShowTimeCriticalActionSummary)
|
||||
{ MyPromsPrinter.PromsPrinterPrintType = PromsPrinterPrintType.TCAS_only; }
|
||||
|
||||
_PdfFile = MyPromsPrinter.Print(PDFPath, MakePlaceKeeper, MakeContinuousActionSummary, MakeTimeCriticalActionSummary, PrtSectID);
|
||||
PdfFile = MyPromsPrinter.Print(PDFPath, MakePlaceKeeper, MakeContinuousActionSummary, MakeTimeCriticalActionSummary, PrtSectID);
|
||||
|
||||
ProfileTimer.Pop(profileDepth);
|
||||
|
||||
@@ -307,13 +210,13 @@ namespace VEPROMS
|
||||
}
|
||||
// B2024-062 Added check for EmptyProcedure. We don't need to show the Try Again message if the procedure
|
||||
// is empty, as it would be just be a waste of time for the user.
|
||||
while (!MyPromsPrinter.MergeNotIncluded && _PdfFile == null && !MyPromsPrinter.EmptyProcedure &&
|
||||
while (!MyPromsPrinter.MergeNotIncluded && PdfFile == null && !MyPromsPrinter.EmptyProcedure &&
|
||||
MessageBox.Show("Try Again?", "PDF Creation Failed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes);
|
||||
|
||||
|
||||
if (_PdfFile == null)
|
||||
if (PdfFile == null)
|
||||
{
|
||||
this.Close();
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -329,13 +232,13 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
DateTime tEnd = DateTime.Now;
|
||||
MyStatus = _PdfFile + " created.";
|
||||
MyStatus = string.Format("{0} created in {1:0.} milliseconds", _PdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds));
|
||||
MyStatus = $"{PdfFile} created.";
|
||||
MyStatus = $"{PdfFile} created in {(TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds):0.} milliseconds";
|
||||
|
||||
if (OpenPDF)
|
||||
{
|
||||
OpenPDFandPlacekeeper(_PdfFile);
|
||||
this.Close();
|
||||
OpenPDFandPlacekeeper(PdfFile);
|
||||
Close();
|
||||
|
||||
// C2021-010: Remove trailing returns/spaces & manual page breaks & allow save. Ask if user wants to save chanages
|
||||
// if they were found.
|
||||
@@ -362,15 +265,15 @@ namespace VEPROMS
|
||||
if (CloseWhenDone)
|
||||
{
|
||||
OpenPDFandPlacekeeper(null);
|
||||
this.Close();
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnOpenPDF_Click(object sender, EventArgs e)
|
||||
{
|
||||
OpenPDFandPlacekeeper(_PdfFile);
|
||||
this.Close();
|
||||
OpenPDFandPlacekeeper(PdfFile);
|
||||
Close();
|
||||
}
|
||||
|
||||
// set a delay so that the word document containing the newly generated placekeeper will appear on top of everything else.
|
||||
@@ -383,8 +286,7 @@ namespace VEPROMS
|
||||
{
|
||||
System.Diagnostics.Process sdp = System.Diagnostics.Process.Start(pdffile);
|
||||
|
||||
if (sdp != null)
|
||||
sdp.WaitForInputIdle();
|
||||
sdp?.WaitForInputIdle();
|
||||
}
|
||||
|
||||
if (OnlyShowContinuousActionSummary || OnlyShowTimeCriticalActionSummary) // F2022-024 Time Critical Action Summary
|
||||
@@ -441,16 +343,16 @@ namespace VEPROMS
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
string str = string.Format("{0} - {1} - {2}",pdffile,ex.GetType().Name,ex.Message);
|
||||
string str = $"{pdffile} - {ex.GetType().Name} - {ex.Message}";
|
||||
MessageBox.Show(str, "Error Opening PDFFile", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnOpenFolder_Click(object sender, EventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start("Explorer", "/select," + _PdfFile);
|
||||
System.Diagnostics.Process.Start("Explorer", $"/select,{PdfFile}");
|
||||
OpenPDFandPlacekeeper(null);
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
@@ -13,9 +11,12 @@ namespace VEPROMS
|
||||
public partial class frmPSI : Form
|
||||
{
|
||||
private ProcedureInfo _MyProcedureInfo;
|
||||
private StepTabRibbon _MyStepTabRibbon;
|
||||
private readonly StepTabRibbon _MyStepTabRibbon;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<string, StepRTB> _DicStepRtb;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<string, CheckBox> _DicCheckBox;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<string, ComboBox> _DicComboBox;
|
||||
public frmPSI(ProcedureInfo pi)
|
||||
{
|
||||
@@ -31,22 +32,23 @@ namespace VEPROMS
|
||||
{
|
||||
_MyProcedureInfo = pi;
|
||||
PSI psiDialogDef = pi.ActiveFormat.PlantFormat.FormatData.ProcData.PSI;
|
||||
this.Text = psiDialogDef.Caption;
|
||||
this.Location = new Point((int)psiDialogDef.x * 2, (int)psiDialogDef.y * 2);
|
||||
Text = psiDialogDef.Caption;
|
||||
Location = new Point((int)psiDialogDef.x * 2, (int)psiDialogDef.y * 2);
|
||||
int maxx = 0;
|
||||
int maxy = 0;
|
||||
int xB4Scroll = 900;
|
||||
int yB4Scroll = 630;
|
||||
this.panelPSI.AutoScroll = false;
|
||||
panelPSI.AutoScroll = false;
|
||||
foreach (SILabel lbl in psiDialogDef.LabelList)
|
||||
{
|
||||
Label wlbl = new Label();
|
||||
wlbl.Text = lbl.text;
|
||||
wlbl.Location = new Point((int)lbl.x * 2, (int)lbl.y * 2);
|
||||
wlbl.AutoSize = true;
|
||||
//wlbl.Size = new Size((int)lbl.width * 2, (int)lbl.height * 2);
|
||||
wlbl.Visible = true;
|
||||
this.panelPSI.Controls.Add(wlbl);
|
||||
Label wlbl = new Label
|
||||
{
|
||||
Text = lbl.text,
|
||||
Location = new Point((int)lbl.x * 2, (int)lbl.y * 2),
|
||||
AutoSize = true,
|
||||
Visible = true
|
||||
};
|
||||
panelPSI.Controls.Add(wlbl);
|
||||
maxx = ((int)lbl.x * 2 + (int)lbl.width * 2) > maxx ? ((int)lbl.x * 2 + (int)lbl.width * 2) : maxx;
|
||||
maxy = ((int)lbl.y * 2 + (int)lbl.height * 2) > maxy ? ((int)lbl.y * 2 + (int)lbl.height * 2) : maxy;
|
||||
}
|
||||
@@ -62,7 +64,7 @@ namespace VEPROMS
|
||||
tb.MyItemInfo = pi as ItemInfo;
|
||||
tb.FieldToEdit = E_FieldToEdit.PSI;
|
||||
tb.BorderStyle = BorderStyle.FixedSingle;
|
||||
tb.Enter += new System.EventHandler(this.FieldStepRTB_Enter);
|
||||
tb.Enter += new System.EventHandler(FieldStepRTB_Enter);
|
||||
// see if config has data for this field, i.e. search for the 'name'
|
||||
// B2018-057 Replace non-breaking hyphen with hyphen.
|
||||
string val = procConfig.GetValue("PSI", fld.name).Replace("\\u8209?", "-");
|
||||
@@ -70,13 +72,13 @@ namespace VEPROMS
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Arial;}");
|
||||
sb.Append(@"{\f1\fnil\fcharset0 Arial;}}{\colortbl ;\red255\green0\blue0;}"); //C2017-036 changed to just Arial because Microsoft removed Arial Unicode MS with Word16
|
||||
sb.Append(@"\viewkind4\uc1\pard\sl-240\slmult0\fs" + (int)(this.Font.SizeInPoints*2) + " " + dt.StartText + @"}");
|
||||
sb.Append(@"\viewkind4\uc1\pard\sl-240\slmult0\fs" + (int)(Font.SizeInPoints*2) + " " + dt.StartText + @"}");
|
||||
tb.Rtf = sb.ToString();
|
||||
tb.Location = new Point((int)fld.x * 2, (int)fld.y * 2);
|
||||
tb.Size = new Size((int)fld.width * 2, (int)fld.height * 2);
|
||||
tb.MinimumSize = new Size((int)fld.width * 2, (int)fld.height * 2);
|
||||
tb.Visible = true;
|
||||
this.panelPSI.Controls.Add(tb);
|
||||
panelPSI.Controls.Add(tb);
|
||||
maxx = ((int)fld.x * 2 + (int)fld.width * 2) > maxx ? ((int)fld.x * 2 + (int)fld.width * 2) : maxx;
|
||||
maxy = ((int)fld.y * 2 + (int)fld.height * 2) > maxy ? ((int)fld.y * 2 + (int)fld.height * 2) : maxy;
|
||||
}
|
||||
@@ -89,8 +91,8 @@ namespace VEPROMS
|
||||
cb.Visible = true;
|
||||
cb.Width = (int)fld.width * 2;
|
||||
string val = procConfig.GetValue("PSI", fld.name);
|
||||
cb.Checked = val!=null && val!="" && val.ToUpper()[0] == 'Y' ? true : false;
|
||||
this.panelPSI.Controls.Add(cb);
|
||||
cb.Checked = val !=null && val!="" && val.ToUpper()[0] == 'Y';
|
||||
panelPSI.Controls.Add(cb);
|
||||
maxx = ((int)fld.x * 2 + (int)fld.width * 2) > maxx ? ((int)fld.x * 2 + (int)fld.width * 2) : maxx;
|
||||
maxy = ((int)fld.y * 2 + (int)fld.height * 2) > maxy ? ((int)fld.y * 2 + (int)fld.height * 2) : maxy;
|
||||
}
|
||||
@@ -107,7 +109,7 @@ namespace VEPROMS
|
||||
foreach (string t in tmps) cmb.Items.Add(t);
|
||||
string val = procConfig.GetValue("PSI", fld.name);
|
||||
if (val != null && val != "") cmb.SelectedItem = val;
|
||||
this.panelPSI.Controls.Add(cmb);
|
||||
panelPSI.Controls.Add(cmb);
|
||||
maxx = ((int)fld.x * 2 + (int)fld.width * 2) > maxx ? ((int)fld.x * 2 + (int)fld.width * 2) : maxx;
|
||||
maxy = ((int)fld.y * 2 + (int)fld.height * 2) > maxy ? ((int)fld.y * 2 + (int)fld.height * 2) : maxy;
|
||||
}
|
||||
@@ -115,19 +117,19 @@ namespace VEPROMS
|
||||
if (maxx > xB4Scroll)
|
||||
{
|
||||
maxx = xB4Scroll;
|
||||
this.panelPSI.Width = xB4Scroll;
|
||||
this.panelPSI.AutoScroll = true;
|
||||
panelPSI.Width = xB4Scroll;
|
||||
panelPSI.AutoScroll = true;
|
||||
}
|
||||
else
|
||||
this.panelPSI.Width = maxx + 50;
|
||||
panelPSI.Width = maxx + 50;
|
||||
if (maxy > yB4Scroll)
|
||||
{
|
||||
maxy = yB4Scroll;
|
||||
this.panelPSI.Height = yB4Scroll;
|
||||
this.panelPSI.AutoScroll = true;
|
||||
panelPSI.Height = yB4Scroll;
|
||||
panelPSI.AutoScroll = true;
|
||||
}
|
||||
else
|
||||
this.panelPSI.Height = maxy; // B2018-062: Ok/Cancel buttons not displayed if more than a few labels/fields are defined.
|
||||
panelPSI.Height = maxy; // B2018-062: Ok/Cancel buttons not displayed if more than a few labels/fields are defined.
|
||||
if (psiDialogDef.ButtonsOnBottom == null || psiDialogDef.ButtonsOnBottom.ToUpper() == "NO")
|
||||
{
|
||||
btnOk.Location = new Point(maxx+70, 30);
|
||||
@@ -138,16 +140,13 @@ namespace VEPROMS
|
||||
// B2018-062: Ok/Cancel buttons not displayed if more than a few labels/fields are defined:
|
||||
// Adjust location of buttons so that they have a larger Y than the panel that holds the labels/fields
|
||||
// and adjust the dialog size if it's height is not enough.
|
||||
btnOk.Location = new Point(btnOk.Location.X, panelPSI.Location.Y + this.panelPSI.Height + 10);
|
||||
btnCancel.Location = new Point(btnCancel.Location.X, panelPSI.Location.Y + this.panelPSI.Height + 10);
|
||||
if (this.Height < btnOk.Location.Y + btnOk.Size.Height + 10)
|
||||
this.Height = btnOk.Location.Y + btnOk.Size.Height + 30;
|
||||
btnOk.Location = new Point(btnOk.Location.X, panelPSI.Location.Y + panelPSI.Height + 10);
|
||||
btnCancel.Location = new Point(btnCancel.Location.X, panelPSI.Location.Y + panelPSI.Height + 10);
|
||||
if (Height < btnOk.Location.Y + btnOk.Size.Height + 10)
|
||||
Height = btnOk.Location.Y + btnOk.Size.Height + 30;
|
||||
}
|
||||
}
|
||||
private void FieldStepRTB_Enter(object sender, EventArgs e)
|
||||
{
|
||||
_MyStepTabRibbon.MyStepRTB = (StepRTB)sender;
|
||||
}
|
||||
private void FieldStepRTB_Enter(object sender, EventArgs e) => _MyStepTabRibbon.MyStepRTB = (StepRTB)sender;
|
||||
private void btnOk_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcedureConfig procConfig = _MyProcedureInfo.MyConfig as ProcedureConfig;
|
||||
@@ -204,13 +203,13 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using VEPROMS.Properties;
|
||||
@@ -11,8 +6,6 @@ using DescriptiveEnum;
|
||||
using DevComponents.DotNetBar;
|
||||
using DevComponents.DotNetBar.Controls;
|
||||
using Volian.Controls.Library;
|
||||
using System.Xml;
|
||||
using Csla;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
@@ -20,7 +13,6 @@ namespace VEPROMS
|
||||
{
|
||||
private bool _Initializing = false;
|
||||
private string _DefaultFormatName = null;
|
||||
//private string _DefaultPagination = null;
|
||||
private string _DefaultWatermark = null;
|
||||
private string _DefaultChgBarType = null;
|
||||
private string _DefaultChgBarLoc = null;
|
||||
@@ -28,9 +20,8 @@ namespace VEPROMS
|
||||
private string _DefaultChgBarUsrMsg1 = null;
|
||||
private string _DefaultChgBarUsrMsg2 = null;
|
||||
private string _DefaultFormatColumns = null;
|
||||
private bool _DefaultDisableDuplex = false;
|
||||
private ProcedureConfig _ProcedureConfig;
|
||||
private StepTabRibbon _MyStepTabRibbon;
|
||||
private readonly ProcedureConfig _ProcedureConfig;
|
||||
private readonly StepTabRibbon _MyStepTabRibbon;
|
||||
|
||||
public frmProcedureProperties(ProcedureConfig procedureConfig)
|
||||
{
|
||||
@@ -38,11 +29,9 @@ namespace VEPROMS
|
||||
_Initializing = true;
|
||||
InitializeComponent();
|
||||
btnGeneral.PerformClick(); // always start with General tab or button
|
||||
_Initializing = false;
|
||||
// build the title bar caption
|
||||
//this.Text = string.Format("{0} {1} Properties", procedureConfig.Number, procedureConfig.Title);
|
||||
ItemInfo itmInfo = ItemInfo.Get(_ProcedureConfig.MyProcedure.ItemID);
|
||||
this.Text = string.Format("{0} {1} Properties", itmInfo.DisplayNumber, itmInfo.DisplayText);
|
||||
// build the title bar caption
|
||||
Text = $"{itmInfo.DisplayNumber} {itmInfo.DisplayText} Properties";
|
||||
ppProcTitleStpRTB.Font = ppProcTitleStpRTB.FormatFont = new System.Drawing.Font("Microsoft Sans Serif", 10F);
|
||||
ppProcTitleStpRTB.FieldToEdit = E_FieldToEdit.Text;
|
||||
ppProcTitleStpRTB.BorderStyle = BorderStyle.Fixed3D;
|
||||
@@ -54,12 +43,11 @@ namespace VEPROMS
|
||||
ppProcNumStpRTB.MyItemInfo = itmInfo;
|
||||
ppProcNumStpRTB.RefreshDisplay(true);
|
||||
|
||||
_MyStepTabRibbon = new StepTabRibbon();
|
||||
//_MyStepTabRibbon.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
//_MyStepTabRibbon.Location = new System.Drawing.Point(0, 0);
|
||||
_MyStepTabRibbon.Name = "displayTabRibbon1";
|
||||
_MyStepTabRibbon.Visible = false;
|
||||
//defaultSettingsVisiblity();
|
||||
_MyStepTabRibbon = new StepTabRibbon
|
||||
{
|
||||
Name = "displayTabRibbon1",
|
||||
Visible = false
|
||||
};
|
||||
}
|
||||
|
||||
private void ppBtnOK_Click(object sender, EventArgs e)
|
||||
@@ -99,7 +87,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
public void SaveText(StepRTB myStepRTB)
|
||||
{
|
||||
@@ -118,8 +106,8 @@ namespace VEPROMS
|
||||
{
|
||||
procedureConfigBindingSource.CancelEdit();
|
||||
_ProcedureConfig.MyProcedure.MyProcedureInfo.CreateEnhanced = false;
|
||||
this.DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
DialogResult = DialogResult.Cancel;
|
||||
Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -156,10 +144,6 @@ namespace VEPROMS
|
||||
if (!(_DefaultChgBarUsrMsg2.Equals("")))
|
||||
ppLblChgBarUserMsgTwoDefault.Text = string.Format("({0})", _DefaultChgBarUsrMsg2);
|
||||
|
||||
// Get the default Print Pagination
|
||||
//_DefaultPagination = _ProcedureConfig.Print_Pagination.ToString();
|
||||
//SetupDefault(EnumDescConverter.GetEnumDescription(_ProcedureConfig.Print_Pagination), ppLblPaginationDefault, ppCmbxPagination);
|
||||
|
||||
// Get the default Watermark
|
||||
_DefaultWatermark = _ProcedureConfig.Print_Watermark.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(_ProcedureConfig.Print_Watermark), ppLblWatermarkDefault, ppCmbxWatermark);
|
||||
@@ -178,8 +162,6 @@ namespace VEPROMS
|
||||
_Initializing = true;
|
||||
procedureConfigBindingSource.DataSource = _ProcedureConfig;
|
||||
|
||||
//formatInfoListBindingSource.DataSource = FormatInfoList.Get();
|
||||
|
||||
ppCmbxFormat.DataSource = null;
|
||||
ppCmbxFormat.DisplayMember = "FullName";
|
||||
ppCmbxFormat.ValueMember = "FullName";
|
||||
@@ -195,7 +177,7 @@ namespace VEPROMS
|
||||
// Get the saved settings for this user
|
||||
//
|
||||
// This setting tells us if we should display the default values on this property page
|
||||
ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultProcedureProp"] != null) ? Settings.Default.ShowDefaultProcedureProp : false;
|
||||
ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultProcedureProp"] != null) && Settings.Default.ShowDefaultProcedureProp;
|
||||
|
||||
// Get the User's property page style "PropPageStyle" (this is a system wide user setting)
|
||||
// 1 - Button Dialog (default)
|
||||
@@ -204,7 +186,7 @@ namespace VEPROMS
|
||||
{
|
||||
tcProcProp.TabsVisible = true;
|
||||
panProcBtns.Visible = false;
|
||||
this.Width -= panProcBtns.Width;
|
||||
Width -= panProcBtns.Width;
|
||||
}
|
||||
|
||||
// Get the default values for the property page information
|
||||
@@ -230,11 +212,6 @@ namespace VEPROMS
|
||||
ppCmbxChangeBarType.ValueMember = "EValue";
|
||||
ppCmbxChangeBarType.SelectedIndex = -1;
|
||||
|
||||
//ppCmbxPagination.DataSource = EnumDetail<PrintPagination>.Details();
|
||||
//ppCmbxPagination.DisplayMember = "Description";
|
||||
//ppCmbxPagination.ValueMember = "EValue";
|
||||
//ppCmbxPagination.SelectedIndex = -1;
|
||||
|
||||
ppCmbxWatermark.DataSource = EnumDetail<PrintWatermark>.Details();
|
||||
ppCmbxWatermark.DisplayMember = "Description";
|
||||
ppCmbxWatermark.ValueMember = "EValue";
|
||||
@@ -247,8 +224,7 @@ namespace VEPROMS
|
||||
|
||||
// the only time the create enhanced checkbox is visisble is if this is a 'New' procedure in a set that is the 'Source'.
|
||||
cbEnhanced.Visible = false;
|
||||
DocVersionConfig dvc = _ProcedureConfig.MyProcedure.MyProcedureInfo.MyDocVersion.MyConfig as DocVersionConfig;
|
||||
if (_ProcedureConfig.CreatingNew && dvc != null && dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type != 0)
|
||||
if (_ProcedureConfig.CreatingNew && _ProcedureConfig.MyProcedure.MyProcedureInfo.MyDocVersion.MyConfig is DocVersionConfig dvc && dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type != 0)
|
||||
cbEnhanced.Visible = true;
|
||||
cbNotIncludeInMerged.Checked = _ProcedureConfig.Print_NotInMergeAll;
|
||||
_Initializing = false;
|
||||
@@ -262,10 +238,7 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnGeneral_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiGeneral, btnGeneral);
|
||||
}
|
||||
private void btnGeneral_Click(object sender, EventArgs e) => ProcessButtonClick(tiGeneral, btnGeneral);
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Default Column Mode combo box changed.
|
||||
@@ -278,14 +251,6 @@ namespace VEPROMS
|
||||
{
|
||||
FormatColumns fc = (FormatColumns)Enum.Parse(typeof(FormatColumns), _DefaultFormatColumns);
|
||||
ProcessCmbxSelectionEnumChanged(ppCmbxStpEditorCols, fc, ppBtnDefEdCols, ppLblStpEditorColsDefault);
|
||||
//if ((ppCmbxStpEditorCols.SelectedIndex != -1) && ppCmbxStpEditorCols.SelectedValue.Equals(fc))
|
||||
//{
|
||||
// ppBtnDefEdCols.Focus();
|
||||
// ppBtnDefEdCols.PerformClick();
|
||||
//}
|
||||
//ppBtnDefEdCols.Visible = ppCmbxStpEditorCols.SelectedValue != null;
|
||||
//ppLblStpEditorColsDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefEdCols.Visible;
|
||||
//tcpGeneral.Focus();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
@@ -304,22 +269,7 @@ namespace VEPROMS
|
||||
if (_InitialIndex < -1) _InitialIndex = ppCmbxFormat.SelectedIndex; // save the current format selection (happens here when current section is set to the default format)
|
||||
}
|
||||
|
||||
private void ppBtnDefaultFmt_Click(object sender, EventArgs e)
|
||||
{
|
||||
ppCmbxFormat.SelectedIndex = -1; //reset to the default Format setting
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
|
||||
// Commented out as part of code change C2017-004. this also makes it consistent with section properties
|
||||
/// <summary>
|
||||
/// Selection in Format combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
//private void ppCmbxFormat_SelectedValueChanged(object sender, EventArgs e)
|
||||
//{
|
||||
// ProcessCmbxSelectedValueChange(ppCmbxFormat, _DefaultFormatName, ppBtnDefaultFmt, ppLblFormatDefault);
|
||||
//}
|
||||
private void ppBtnDefaultFmt_Click(object sender, EventArgs e) => ppCmbxFormat.SelectedIndex = -1; //reset to the default Format setting
|
||||
|
||||
/// <summary>
|
||||
/// Enable or disable the user specified change bar options base on the type
|
||||
@@ -327,14 +277,6 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
private void setEnabledUserSpecifiedChgBarCombos(PrintChangeBar pcb)
|
||||
{
|
||||
//ppGpbxUserSpecCB.Enabled =
|
||||
//ppCmbxChgBarPos.Enabled =
|
||||
//ppCmbxChgBarTxtType.Enabled =
|
||||
//ppBtnDefaultCbPos.Enabled =
|
||||
//ppBtnDefCbTxtTyp.Enabled = (ppCmbxChangeBarType.SelectedValue != null &&
|
||||
// ppCmbxChangeBarType.SelectedValue.Equals(ProcedureConfig.PrintChangeBar.WithUserSpecified)) ||
|
||||
// (ppCmbxChangeBarType.SelectedValue == null && pcb.Equals(DocVersionConfig.PrintChangeBar.WithUserSpecified));
|
||||
|
||||
ppGpbxUserSpecCB.Enabled = (ppCmbxChangeBarType.SelectedValue != null &&
|
||||
ppCmbxChangeBarType.SelectedValue.Equals(PrintChangeBar.WithUserSpecified)) ||
|
||||
(ppCmbxChangeBarType.SelectedValue == null && pcb.Equals(PrintChangeBar.WithUserSpecified));
|
||||
@@ -353,7 +295,6 @@ namespace VEPROMS
|
||||
PrintChangeBar pcb = (PrintChangeBar)Enum.Parse(typeof(PrintChangeBar), _DefaultChgBarType);
|
||||
ProcessCmbxSelectionEnumChanged(ppCmbxChangeBarType, pcb, ppBtnDefaultChgBar, ppLblChangeBarTypeDefault);
|
||||
setEnabledUserSpecifiedChgBarCombos(pcb);
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -369,12 +310,9 @@ namespace VEPROMS
|
||||
// Get the parent setting
|
||||
PrintChangeBar pcb = (PrintChangeBar)Enum.Parse(typeof(PrintChangeBar), _DefaultChgBarType);
|
||||
// Compare parent setting with current setting
|
||||
//_Initializing = true;
|
||||
if (pcb != _ProcedureConfig.Print_ChangeBar)
|
||||
_ProcedureConfig.Print_ChangeBar = pcb; // this will force a database update (write)
|
||||
ppCmbxChangeBarType.SelectedIndex = -1; //reset to the default Change Bar setting
|
||||
//_Initializing = false;
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -388,7 +326,6 @@ namespace VEPROMS
|
||||
{
|
||||
PrintChangeBarLoc cbl = (PrintChangeBarLoc)Enum.Parse(typeof(PrintChangeBarLoc), _DefaultChgBarLoc);
|
||||
ProcessCmbxSelectionEnumChanged(ppCmbxChgBarPos, cbl, ppBtnDefaultCbPos, ppLblChgBarPosDefault);
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -407,7 +344,6 @@ namespace VEPROMS
|
||||
if (cbl != _ProcedureConfig.Print_ChangeBarLoc)
|
||||
_ProcedureConfig.Print_ChangeBarLoc = cbl; // this will force a database update (write)
|
||||
ppCmbxChgBarPos.SelectedIndex = -1; //reset to the default Change Bar Position setting
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -422,7 +358,6 @@ namespace VEPROMS
|
||||
PrintChangeBarText cbt = (PrintChangeBarText)Enum.Parse(typeof(PrintChangeBarText), _DefaultChgBarText);
|
||||
ProcessCmbxSelectionEnumChanged(ppCmbxChgBarTxtType, cbt, ppBtnDefCbTxtTyp, ppLblChgBarTxtTypeDefault);
|
||||
setEnabledUserSpecifiedChgBarText();
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -441,7 +376,6 @@ namespace VEPROMS
|
||||
if (cbt != _ProcedureConfig.Print_ChangeBarText)
|
||||
_ProcedureConfig.Print_ChangeBarText = cbt; // this will force a database update (write)
|
||||
ppCmbxChgBarTxtType.SelectedIndex = -1; //reset to the default Change Bar Text Type setting
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -450,13 +384,6 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
private void setEnabledUserSpecifiedChgBarText()
|
||||
{
|
||||
//ppGpbxUserSpecTxt.Enabled =
|
||||
//ppTxbxChangeBarUserMsgOne.Enabled =
|
||||
//ppTxbxChgBarUserMsgTwo.Enabled =
|
||||
//ppBtnDefCbTxt1.Enabled =
|
||||
//ppBtnDefCbTxt2.Enabled = (ppCmbxChgBarTxtType.SelectedValue != null &&
|
||||
//ppCmbxChgBarTxtType.SelectedValue.Equals(ProcedureConfig.PrintChangeBarText.UserDef));
|
||||
|
||||
// This string is used to check against our default setting to see if User Defined Changebar Text is active
|
||||
string decUserDef = PrintChangeBarText.UserDef.ToString();
|
||||
|
||||
@@ -475,43 +402,7 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnOutputStngs_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiOutputStngs, btnOutputStngs);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Pagination combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
//private void ppCmbxPagination_SelectedValueChanged(object sender, EventArgs e)
|
||||
//{
|
||||
// if (!_Initializing)
|
||||
// {
|
||||
// PrintPagination pgtn = (PrintPagination)Enum.Parse(typeof(PrintPagination), _DefaultPagination);
|
||||
// ProcessCmbxSelectionEnumChanged(ppCmbxPagination, pgtn, ppBtnDefPagination, ppLblPaginationDefault);
|
||||
// //tcpOutputSettings.Focus();
|
||||
// }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// Reset to the parent setting.
|
||||
/// Find the parent setting and assign it to _ProcedureConfig.Print_Pagination.
|
||||
/// This will force the database to be updated.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
//private void ppBtnDefPagination_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// // Get the parent setting
|
||||
// PrintPagination pgtn = (PrintPagination)Enum.Parse(typeof(PrintPagination), _DefaultPagination);
|
||||
// // Compare parent setting with current setting
|
||||
// if (pgtn != _ProcedureConfig.Print_Pagination)
|
||||
// _ProcedureConfig.Print_Pagination = pgtn; // this will force a database update (write)
|
||||
// ppCmbxPagination.SelectedIndex = -1; //reset to the default Pagination setting
|
||||
// //tcpOutputSettings.Focus();
|
||||
//}
|
||||
private void btnOutputStngs_Click(object sender, EventArgs e) => ProcessButtonClick(tiOutputStngs, btnOutputStngs);
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Watermark combo box changed.
|
||||
@@ -524,7 +415,6 @@ namespace VEPROMS
|
||||
{
|
||||
PrintWatermark wtr = (PrintWatermark)Enum.Parse(typeof(PrintWatermark), _DefaultWatermark);
|
||||
ProcessCmbxSelectionEnumChanged(ppCmbxWatermark, wtr, ppBtnDefWatermark, ppLblWatermarkDefault);
|
||||
//tcpOutputSettings.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -547,19 +437,6 @@ namespace VEPROMS
|
||||
|
||||
#endregion
|
||||
|
||||
#region View Settings tab
|
||||
|
||||
///// <summary>
|
||||
///// This is the View Settings button used on the button interface design
|
||||
///// </summary>
|
||||
///// <param name="sender">object</param>
|
||||
///// <param name="e">EventArgs</param>
|
||||
//private void btnVwStngs_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// ProcessButtonClick(tiViewStngs, btnVwStngs);
|
||||
//}
|
||||
#endregion
|
||||
|
||||
#region Generic functions used on this property page
|
||||
|
||||
/// <summary>
|
||||
@@ -570,7 +447,6 @@ namespace VEPROMS
|
||||
ppLblDefSettingsInfo.Visible = ppCbShwDefSettings.Checked;
|
||||
|
||||
ppLblWatermarkDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefWatermark.Visible;
|
||||
//ppLblPaginationDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefPagination.Visible;
|
||||
ppLblStpEditorColsDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefEdCols.Visible;
|
||||
ppLblFormatDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultFmt.Visible;
|
||||
ppLblChangeBarTypeDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultChgBar.Visible;
|
||||
@@ -603,7 +479,6 @@ namespace VEPROMS
|
||||
btnGeneral.Checked = false;
|
||||
btnFmtStngs.Checked = false;
|
||||
btnOutputStngs.Checked = false;
|
||||
//btnVwStngs.Checked = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -616,7 +491,6 @@ namespace VEPROMS
|
||||
private void tabpage_Enter(object sender, EventArgs e)
|
||||
{
|
||||
// Show or hide the labels containing the default values
|
||||
//if (!_Initializing)
|
||||
defaultSettingsVisiblity();
|
||||
}
|
||||
|
||||
@@ -658,36 +532,11 @@ namespace VEPROMS
|
||||
button.Visible = (cmbx.SelectedValue != null);
|
||||
deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible;
|
||||
}
|
||||
// Commented out as part of code change C2017-004 - select default format on dropdown
|
||||
///// <summary>
|
||||
///// Process a change in the combo box selection
|
||||
///// </summary>
|
||||
///// <param name="cmbx">Combo Box Name</param>
|
||||
///// <param name="defstr">string containing default text</param>
|
||||
///// <param name="button">button to reset to default value</param>
|
||||
///// <param name="deflabel">label containing the default</param>
|
||||
//private void ProcessCmbxSelectedValueChange(ComboBoxEx cmbx, string defstr, ButtonX button, Label deflabel)
|
||||
//{
|
||||
// if ((cmbx.SelectedIndex != -1) && defstr != null && defstr.Equals(cmbx.SelectedValue))
|
||||
// {
|
||||
// button.Visible = true;
|
||||
// button.Focus();
|
||||
// button.PerformClick();
|
||||
// }
|
||||
// button.Visible = cmbx.SelectedValue != null;
|
||||
// deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible;
|
||||
//}
|
||||
#endregion
|
||||
|
||||
private void ppProcTitleStpRTB_Enter(object sender, EventArgs e)
|
||||
{
|
||||
_MyStepTabRibbon.MyStepRTB = ppProcTitleStpRTB;
|
||||
}
|
||||
private void ppProcTitleStpRTB_Enter(object sender, EventArgs e) => _MyStepTabRibbon.MyStepRTB = ppProcTitleStpRTB;
|
||||
|
||||
private void ppProcNumStpRTB_Enter(object sender, EventArgs e)
|
||||
{
|
||||
_MyStepTabRibbon.MyStepRTB = ppProcNumStpRTB;
|
||||
}
|
||||
private void ppProcNumStpRTB_Enter(object sender, EventArgs e) => _MyStepTabRibbon.MyStepRTB = ppProcNumStpRTB;
|
||||
|
||||
private void ppBtnDefCbTxt1_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -698,9 +547,7 @@ namespace VEPROMS
|
||||
_ProcedureConfig.Print_UserCBMess1 = _DefaultChgBarUsrMsg1;
|
||||
ppLblChgBarUserMsgOneDefault.Visible = false;
|
||||
ppBtnDefCbTxt1.Visible = false;
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void ppBtnDefCbTxt2_Click(object sender, EventArgs e)
|
||||
@@ -712,7 +559,6 @@ namespace VEPROMS
|
||||
_ProcedureConfig.Print_UserCBMess2 = _DefaultChgBarUsrMsg2;
|
||||
ppLblChgBarUserMsgTwoDefault.Visible = false;
|
||||
ppBtnDefCbTxt2.Visible = false;
|
||||
//tcpFormatSettings.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -723,7 +569,6 @@ namespace VEPROMS
|
||||
if (fc != _ProcedureConfig.Format_Columns)
|
||||
_ProcedureConfig.Format_Columns = fc; // this will force a database update (write)
|
||||
ppCmbxStpEditorCols.SelectedIndex = -1; //reset to the default
|
||||
//tcpGeneral.Focus();
|
||||
}
|
||||
|
||||
private void ppBtnDefWatermark_Click_1(object sender, EventArgs e)
|
||||
@@ -734,30 +579,23 @@ namespace VEPROMS
|
||||
if (wtr != _ProcedureConfig.Print_Watermark)
|
||||
_ProcedureConfig.Print_Watermark = wtr; // this will force a database update (write)
|
||||
ppCmbxWatermark.SelectedIndex = -1;
|
||||
//tcpOutputSettings.Focus();
|
||||
}
|
||||
|
||||
|
||||
private void ppTxbxChangeBarUserMsgOne_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
ppBtnDefCbTxt1.Visible = ((ppTxbxChangeBarUserMsgOne.Text != null) && !ppTxbxChangeBarUserMsgOne.Text.Equals(_DefaultChgBarUsrMsg1));
|
||||
ppBtnDefCbTxt1.Visible = (ppTxbxChangeBarUserMsgOne.Text != null) && !ppTxbxChangeBarUserMsgOne.Text.Equals(_DefaultChgBarUsrMsg1);
|
||||
ppLblChgBarUserMsgOneDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxt1.Visible;
|
||||
//tcpOutputSettings.Focus();
|
||||
}
|
||||
|
||||
private void ppTxbxChgBarUserMsgTwo_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
ppBtnDefCbTxt2.Visible = ((ppTxbxChgBarUserMsgTwo.Text != null) && !ppTxbxChgBarUserMsgTwo.Text.Equals(_DefaultChgBarUsrMsg2));
|
||||
ppLblChgBarUserMsgTwoDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxt2.Visible;
|
||||
//tcpOutputSettings.Focus();
|
||||
}
|
||||
|
||||
|
||||
private void frmProcedureProperties_Shown(object sender, EventArgs e)
|
||||
{
|
||||
ppProcNumStpRTB.Focus();
|
||||
|
||||
}
|
||||
private void frmProcedureProperties_Shown(object sender, EventArgs e) => ppProcNumStpRTB.Focus();
|
||||
|
||||
private void ppCmbxFormat_DropDown(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
@@ -11,7 +6,7 @@ namespace VEPROMS
|
||||
{
|
||||
public partial class frmPropGrid : DevComponents.DotNetBar.Office2007Form
|
||||
{
|
||||
private object _PGobject;
|
||||
private readonly object _PGobject;
|
||||
|
||||
public frmPropGrid(object pgobject)
|
||||
{
|
||||
@@ -23,24 +18,23 @@ namespace VEPROMS
|
||||
{
|
||||
InitializeComponent();
|
||||
_PGobject = pgobject;
|
||||
this.Text = title;
|
||||
Text = title;
|
||||
}
|
||||
|
||||
private void btnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
DocVersionConfig dvcfg = this._PGobject as DocVersionConfig;
|
||||
if (dvcfg != null && dvcfg.IsDirty)
|
||||
if (_PGobject is DocVersionConfig dvcfg && dvcfg.IsDirty)
|
||||
{
|
||||
dvcfg.MyDocVersion.Save();
|
||||
}
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void frmPropGrid_Load(object sender, EventArgs e)
|
||||
@@ -51,12 +45,10 @@ namespace VEPROMS
|
||||
|
||||
private void pg_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
|
||||
{
|
||||
DocVersionConfig dvcfg = this._PGobject as DocVersionConfig;
|
||||
if (dvcfg != null)
|
||||
if (_PGobject is DocVersionConfig dvcfg)
|
||||
dvcfg.IsDirty = true;
|
||||
// check if folder config & if so, check for name change
|
||||
FolderConfig tstfoldercfg = this._PGobject as FolderConfig;
|
||||
if (tstfoldercfg != null)
|
||||
if (_PGobject is FolderConfig tstfoldercfg)
|
||||
{
|
||||
if ((string)e.OldValue != tstfoldercfg.Name)
|
||||
{
|
||||
@@ -68,22 +60,8 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
}
|
||||
this.Refresh();
|
||||
Refresh();
|
||||
|
||||
}
|
||||
}
|
||||
//public partial class SystemConfig
|
||||
//{
|
||||
// FolderConfig _FolderConfig;
|
||||
// public SystemConfig(FolderConfig folderConfig)
|
||||
// {
|
||||
// _FolderConfig = folderConfig;
|
||||
// //_FolderConfig.Default_SPPrefix;
|
||||
// }
|
||||
// public string Default_SPPrefix
|
||||
// {
|
||||
// get { return _FolderConfig.Default_SPPrefix; }
|
||||
// set { _FolderConfig.Default_SPPrefix = value; }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
@@ -1,10 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using VEPROMS.CSLA.Library;
|
||||
@@ -15,12 +12,7 @@ namespace VEPROMS
|
||||
{
|
||||
public partial class frmRODbProperties : Form
|
||||
{
|
||||
private ProgressBarItem _ProgressBar = null;
|
||||
public ProgressBarItem ProgressBar
|
||||
{
|
||||
get { return _ProgressBar; }
|
||||
set { _ProgressBar = value; }
|
||||
}
|
||||
public ProgressBarItem ProgressBar { get; set; } = null;
|
||||
private void DoProgressBarRefresh(int value, int max, string text)
|
||||
{
|
||||
if (ProgressBar == null) return;
|
||||
@@ -29,54 +21,30 @@ namespace VEPROMS
|
||||
ProgressBar.Text = text;
|
||||
Application.DoEvents();
|
||||
}
|
||||
private string InitialProgressBarMessage
|
||||
{
|
||||
set
|
||||
{
|
||||
if (ProgressBar == null) return;
|
||||
ProgressBar.Value = 100;
|
||||
ProgressBar.Maximum = 100;
|
||||
ProgressBar.Text = value;
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
private string FinalProgressBarMessage
|
||||
{
|
||||
set
|
||||
{
|
||||
if (ProgressBar == null) return;
|
||||
ProgressBar.Value = 100;
|
||||
ProgressBar.Maximum = 100;
|
||||
ProgressBar.Text = value;
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
private Point _ParentLocation;
|
||||
public Point ParentLocation
|
||||
{
|
||||
get { return _ParentLocation; }
|
||||
set { _ParentLocation = value; }
|
||||
}
|
||||
private RODbInfo _roDbInfo;
|
||||
private string _origROName;
|
||||
private string _origFolderPath;
|
||||
private string _origSQLConnect = null;
|
||||
private DocVersion _docVersion;
|
||||
private readonly RODbInfo _roDbInfo;
|
||||
private readonly string _origROName;
|
||||
private readonly string _origFolderPath;
|
||||
private readonly string _origSQLConnect = null;
|
||||
private readonly DocVersion _docVersion;
|
||||
public frmRODbProperties(DocVersion docVersion, RODbInfo roDbInfo)
|
||||
{
|
||||
_roDbInfo = roDbInfo;
|
||||
_docVersion = docVersion;
|
||||
InitializeComponent();
|
||||
_origROName = (_roDbInfo == null) ? null : _roDbInfo.ROName;
|
||||
_origFolderPath = (_roDbInfo == null) ? null : _roDbInfo.FolderPath;
|
||||
_origROName = _roDbInfo?.ROName;
|
||||
_origFolderPath = _roDbInfo?.FolderPath;
|
||||
_origSQLConnect = (_roDbInfo == null) ? null : (_roDbInfo.DBConnectionString == null || _roDbInfo.DBConnectionString == "" || _roDbInfo.DBConnectionString == "cstring") ? null : _roDbInfo.DBConnectionString;
|
||||
// Disable the OK button when initialized. Enable it if the user makes changes
|
||||
ppBtnTestSQL.Visible = ppBtnTestSQL.Enabled = CanMigrateRoAccessToSql(roDbInfo);
|
||||
ppTxtSQL.Visible = ppTxtSQL.Enabled = CanMigrateRoAccessToSql(roDbInfo);
|
||||
ppLblSQL.Visible = CanMigrateRoAccessToSql(roDbInfo);
|
||||
ppBtnTestSQL.Visible = ppBtnTestSQL.Enabled = ppTxtSQL.Visible = ppTxtSQL.Enabled = ppLblSQL.Visible = CanMigrateRoAccessToSql();
|
||||
ppBtnOk.Enabled = false;
|
||||
}
|
||||
private bool CanMigrateRoAccessToSql(RODbInfo rODbi)
|
||||
private bool CanMigrateRoAccessToSql()
|
||||
{
|
||||
// C2017-003: This method is used to determine whether the sql server version can be used & if there is data.
|
||||
// A command line argument 'RoInSql'. For now, this argument must be used to allow code to run for ro->sql. Later
|
||||
@@ -92,9 +60,11 @@ namespace VEPROMS
|
||||
}
|
||||
private void ppBtnFldrDlg_Click(object sender, EventArgs e)
|
||||
{
|
||||
FolderBrowserDialog dlgROFolder = new FolderBrowserDialog();
|
||||
FolderBrowserDialog dlgROFolder = new FolderBrowserDialog
|
||||
{
|
||||
// Initialize the starting location in the Browser window
|
||||
dlgROFolder.SelectedPath = ppTxtPath.Text;
|
||||
SelectedPath = ppTxtPath.Text
|
||||
};
|
||||
if (dlgROFolder.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
ppTxtPath.Text = dlgROFolder.SelectedPath;
|
||||
@@ -141,7 +111,7 @@ namespace VEPROMS
|
||||
catch (SqlException) { }
|
||||
}
|
||||
}
|
||||
catch (Exception ex) {}
|
||||
catch (Exception) { }
|
||||
if (canconnect)
|
||||
roDb.DBConnectionString = (ppTxtSQL.Text == null || ppTxtSQL.Text == "") ? "cstring" : ppTxtSQL.Text;
|
||||
else
|
||||
@@ -228,7 +198,7 @@ namespace VEPROMS
|
||||
string rofstPath = ppTxtPath.Text + @"\ro.fst";
|
||||
if (!File.Exists(rofstPath))
|
||||
{
|
||||
MessageBox.Show("No existing ro.fst in path " + ppTxtPath.Text + ". Check for invalid path");
|
||||
MessageBox.Show($"No existing ro.fst in path {ppTxtPath.Text}. Check for invalid path");
|
||||
return;
|
||||
}
|
||||
string connectstr = ppTxtSQL.Text != null && ppTxtSQL.Text != "" ? ppTxtExt.Text : "cstring";
|
||||
@@ -242,8 +212,8 @@ namespace VEPROMS
|
||||
private void frmRODbProperties_Load(object sender, EventArgs e)
|
||||
{
|
||||
Location = ParentLocation;
|
||||
ppRTxtName.Text = (_roDbInfo == null) ? null : _roDbInfo.ROName;
|
||||
ppTxtPath.Text = (_roDbInfo == null) ? null : _roDbInfo.FolderPath;
|
||||
ppRTxtName.Text = _roDbInfo?.ROName;
|
||||
ppTxtPath.Text = _roDbInfo?.FolderPath;
|
||||
ppTxtSQL.Text = (_roDbInfo == null) ? null : (_roDbInfo.DBConnectionString == "cstring") ? null : _roDbInfo.DBConnectionString;
|
||||
RODbConfig cfg = (_roDbInfo == null) ? new RODbConfig() : new RODbConfig(_roDbInfo);
|
||||
// Note that the Graphic Extension data is shown in a non-editable text box here because
|
||||
@@ -251,14 +221,16 @@ namespace VEPROMS
|
||||
// the file system. Otherwise it is derived from the top node - and changed from folder
|
||||
// properties on the top node. And lastly, it is the code default.
|
||||
ppTxtExt.Text = cfg.GetDefaultGraphicExtension();
|
||||
ppLblGraphicFileExtLoc.Text = (cfg == null) ? null : cfg.GetDefaultGraphicExtensionLocation();
|
||||
ppLblGraphicFileExtLoc.Text = cfg?.GetDefaultGraphicExtensionLocation();
|
||||
ppBtnOk.Enabled = false;
|
||||
if (_roDbInfo == null)
|
||||
{
|
||||
string newFolderPath = null;
|
||||
FolderBrowserDialog dlgROFolder = new FolderBrowserDialog();
|
||||
dlgROFolder.RootFolder = Environment.SpecialFolder.MyComputer;
|
||||
dlgROFolder.SelectedPath = ppTxtPath.Text;
|
||||
FolderBrowserDialog dlgROFolder = new FolderBrowserDialog
|
||||
{
|
||||
RootFolder = Environment.SpecialFolder.MyComputer,
|
||||
SelectedPath = ppTxtPath.Text
|
||||
};
|
||||
if (dlgROFolder.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
newFolderPath = dlgROFolder.SelectedPath;
|
||||
@@ -275,8 +247,6 @@ namespace VEPROMS
|
||||
}
|
||||
ppTxtPath.Text = newFolderPath;
|
||||
}
|
||||
// Initialize the enabled status for the OK button to false.
|
||||
//ppBtnOk.Enabled = false;
|
||||
ppTxtPath.TextChanged += ppTxtPath_TextChanged;
|
||||
}
|
||||
void ppTxtPath_TextChanged(object sender, EventArgs e)
|
||||
@@ -313,7 +283,7 @@ namespace VEPROMS
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Connection failed: " + ex);
|
||||
MessageBox.Show($"Connection failed: {ex}");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
@@ -12,14 +10,16 @@ namespace VEPROMS
|
||||
{
|
||||
public partial class frmSI : Form
|
||||
{
|
||||
private StepTabRibbon _MyStepTabRibbon;
|
||||
private readonly StepTabRibbon _MyStepTabRibbon;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<string, StepRTB> _DicStepRtb;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<string, CheckBox> _DicCheckBox;
|
||||
private bool DoFolder = true;
|
||||
private SI SIDialogDef = null;
|
||||
private string OrigConfig = null;
|
||||
private FolderInfo MyFolderInfo = null;
|
||||
private DocVersionInfo MyDocVersionInfo = null;
|
||||
private readonly bool DoFolder = true;
|
||||
private readonly SI SIDialogDef = null;
|
||||
private readonly string OrigConfig = null;
|
||||
private readonly FolderInfo MyFolderInfo = null;
|
||||
private readonly DocVersionInfo MyDocVersionInfo = null;
|
||||
public frmSI(SI siDialogDef, string config, bool doFolder, FolderInfo fi, DocVersionInfo dvi)
|
||||
{
|
||||
DoFolder = doFolder;
|
||||
@@ -36,22 +36,23 @@ namespace VEPROMS
|
||||
|
||||
private void InitializeSpecificControls()
|
||||
{
|
||||
this.Text = SIDialogDef.Caption;
|
||||
this.Location = new Point((int)SIDialogDef.x * 2, (int)SIDialogDef.y * 2);
|
||||
Text = SIDialogDef.Caption;
|
||||
Location = new Point((int)SIDialogDef.x * 2, (int)SIDialogDef.y * 2);
|
||||
int maxx = 0;
|
||||
int maxy = 0;
|
||||
int xB4Scroll = 900;
|
||||
int yB4Scroll = 630;
|
||||
this.panelSI.AutoScroll = false;
|
||||
panelSI.AutoScroll = false;
|
||||
foreach (SILabel lbl in SIDialogDef.LabelList)
|
||||
{
|
||||
Label wlbl = new Label();
|
||||
wlbl.Text = lbl.text;
|
||||
wlbl.Location = new Point((int)lbl.x * 2, (int)lbl.y * 2);
|
||||
wlbl.AutoSize = true;
|
||||
//wlbl.Size = new Size((int)lbl.width * 2, (int)lbl.height * 2);
|
||||
wlbl.Visible = true;
|
||||
this.panelSI.Controls.Add(wlbl);
|
||||
Label wlbl = new Label
|
||||
{
|
||||
Text = lbl.text,
|
||||
Location = new Point((int)lbl.x * 2, (int)lbl.y * 2),
|
||||
AutoSize = true,
|
||||
Visible = true
|
||||
};
|
||||
panelSI.Controls.Add(wlbl);
|
||||
maxx = ((int)lbl.x * 2 + (int)lbl.width * 2) > maxx ? ((int)lbl.x * 2 + (int)lbl.width * 2) : maxx;
|
||||
maxy = ((int)lbl.y * 2 + (int)lbl.height * 2) > maxy ? ((int)lbl.y * 2 + (int)lbl.height * 2) : maxy;
|
||||
}
|
||||
@@ -70,7 +71,7 @@ namespace VEPROMS
|
||||
// (Removed the frmSI specific contextmenustrip1)
|
||||
tb.FieldToEdit = E_FieldToEdit.PSI;
|
||||
tb.BorderStyle = BorderStyle.FixedSingle;
|
||||
tb.Enter += new System.EventHandler(this.FieldStepRTB_Enter);
|
||||
tb.Enter += new System.EventHandler(FieldStepRTB_Enter);
|
||||
// see if config has data for this field, i.e. search for the 'name'
|
||||
// B2019-133 continuation of B2018-057 Replace non-breaking hyphen with hyphen.
|
||||
string val = (DoFolder ? folderConfig.GetValue("SI", fld.name) : dvConfig.GetValue("SI", fld.name)).Replace("\\u8209?", "-");
|
||||
@@ -78,12 +79,12 @@ namespace VEPROMS
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Arial;}");
|
||||
sb.Append(@"{\f1\fnil\fcharset0 Arial;}}{\colortbl ;\red255\green0\blue0;}"); // C2017-036 Microsoft removed Arial Unicode MS with Word16
|
||||
sb.Append(@"\viewkind4\uc1\pard\sl-240\slmult0\fs" + (int)(this.Font.SizeInPoints*2) + " " + dt.StartText + @"}");
|
||||
sb.Append(@"\viewkind4\uc1\pard\sl-240\slmult0\fs" + (int)(Font.SizeInPoints*2) + " " + dt.StartText + @"}");
|
||||
tb.Rtf = sb.ToString();
|
||||
tb.Location = new Point((int)fld.x * 2, (int)fld.y * 2);
|
||||
tb.Size = new Size((int)fld.width * 2, (int)fld.height * 2);
|
||||
tb.Visible = true;
|
||||
this.panelSI.Controls.Add(tb);
|
||||
panelSI.Controls.Add(tb);
|
||||
maxx = ((int)fld.x * 2 + (int)fld.width * 2) > maxx ? ((int)fld.x * 2 + (int)fld.width * 2) : maxx;
|
||||
maxy = ((int)fld.y * 2 + (int)fld.height * 2) > maxy ? ((int)fld.y * 2 + (int)fld.height * 2) : maxy;
|
||||
}
|
||||
@@ -96,8 +97,8 @@ namespace VEPROMS
|
||||
cb.Visible = true;
|
||||
cb.Width = (int)fld.width * 2;
|
||||
string val = DoFolder ? folderConfig.GetValue("SI", fld.name) : dvConfig.GetValue("SI", fld.name);
|
||||
cb.Checked = val!=null && val!="" && val.ToUpper()[0] == 'Y' ? true : false;
|
||||
this.panelSI.Controls.Add(cb);
|
||||
cb.Checked = val !=null && val!="" && val.ToUpper()[0] == 'Y';
|
||||
panelSI.Controls.Add(cb);
|
||||
maxx = ((int)fld.x * 2 + (int)fld.width * 2) > maxx ? ((int)fld.x * 2 + (int)fld.width * 2) : maxx;
|
||||
maxy = ((int)fld.y * 2 + (int)fld.height * 2) > maxy ? ((int)fld.y * 2 + (int)fld.height * 2) : maxy;
|
||||
}
|
||||
@@ -105,19 +106,19 @@ namespace VEPROMS
|
||||
if (maxx > xB4Scroll)
|
||||
{
|
||||
maxx = xB4Scroll;
|
||||
this.panelSI.Width = xB4Scroll;
|
||||
this.panelSI.AutoScroll = true;
|
||||
panelSI.Width = xB4Scroll;
|
||||
panelSI.AutoScroll = true;
|
||||
}
|
||||
else
|
||||
this.panelSI.Width = maxx + 50;
|
||||
panelSI.Width = maxx + 50;
|
||||
if (maxy > yB4Scroll)
|
||||
{
|
||||
maxy = yB4Scroll;
|
||||
this.panelSI.Height = yB4Scroll;
|
||||
this.panelSI.AutoScroll = true;
|
||||
panelSI.Height = yB4Scroll;
|
||||
panelSI.AutoScroll = true;
|
||||
}
|
||||
else
|
||||
this.panelSI.Height = maxy + 50;
|
||||
panelSI.Height = maxy + 50;
|
||||
if (SIDialogDef.ButtonsOnBottom == null || SIDialogDef.ButtonsOnBottom.ToUpper() == "NO")
|
||||
{
|
||||
btnOk.Location = new Point(maxx+70, 30);
|
||||
@@ -189,29 +190,20 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
// B2017-024 - added a clip board context menu
|
||||
private void fwdCMCbCut_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeys.Send("^x"); // <cltr><x>
|
||||
}
|
||||
private void fwdCMCbCut_Click(object sender, EventArgs e) => SendKeys.Send("^x"); // <cltr><x>
|
||||
|
||||
private void fwdCMCbCopy_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeys.Send("^c"); // <cltr><c>
|
||||
}
|
||||
private void fwdCMCbCopy_Click(object sender, EventArgs e) => SendKeys.Send("^c"); // <cltr><c>
|
||||
|
||||
private void fwdCMCbPaste_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeys.Send("^v"); // <cltr><v>
|
||||
}
|
||||
private void fwdCMCbPaste_Click(object sender, EventArgs e) => SendKeys.Send("^v"); // <cltr><v>
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using VEPROMS.Properties;
|
||||
@@ -12,6 +8,7 @@ using DevComponents.DotNetBar.Controls;
|
||||
using Volian.Controls.Library;
|
||||
using DescriptiveEnum;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
@@ -20,11 +17,10 @@ namespace VEPROMS
|
||||
private string _DefaultFormatName = null;
|
||||
private string _DefaultNumColumns = null;
|
||||
private string _DefaultPaginationStyle = null;
|
||||
private string _DefaultPrintSize = null;
|
||||
private bool _Initializing;
|
||||
private SectionConfig _SectionConfig;
|
||||
private readonly SectionConfig _SectionConfig;
|
||||
private Document _DocumentToDelete = null;
|
||||
private StepTabRibbon _MyStepTabRibbon;
|
||||
private readonly StepTabRibbon _MyStepTabRibbon;
|
||||
private bool _isStepSection = true;
|
||||
private bool _hasSectionCheckoffDefault = false;
|
||||
private bool _isDefaultStepSection = false;
|
||||
@@ -35,36 +31,30 @@ namespace VEPROMS
|
||||
InitializeComponent();
|
||||
btnGeneral.PerformClick(); // always start with General tab or button
|
||||
ItemInfo ii = ItemInfo.Get(_SectionConfig.MySection.ItemID);
|
||||
//if (sectionConfig.Number.Length > 0)
|
||||
// this.Text = string.Format("{0} {1} Properties", sectionConfig.Number, sectionConfig.Title);
|
||||
//else
|
||||
// this.Text = string.Format("{0} Properties", sectionConfig.Title);
|
||||
if (sectionConfig.Number.Length > 0)
|
||||
this.Text = string.Format("{0} {1} Properties", ii.DisplayNumber, ii.DisplayText);
|
||||
Text = $"{ii.DisplayNumber} {ii.DisplayText} Properties";
|
||||
else
|
||||
this.Text = string.Format("{0} Properties", ii.DisplayText);
|
||||
Text = $"{ii.DisplayText} Properties";
|
||||
ppSectTitleStpRTB.Font = ppSectTitleStpRTB.FormatFont = new System.Drawing.Font("Microsoft Sans Serif", 10F);
|
||||
ppSectTitleStpRTB.FieldToEdit = E_FieldToEdit.Text;
|
||||
ppSectTitleStpRTB.BorderStyle = BorderStyle.Fixed3D;
|
||||
ppSectTitleStpRTB.MyItemInfo = ii;
|
||||
ppSectTitleStpRTB.RefreshDisplay(true);
|
||||
ppSectNumberStpRTB.Font = this.ppSectNumberStpRTB.FormatFont = new System.Drawing.Font("Microsoft Sans Serif", 10F);
|
||||
ppSectNumberStpRTB.Font = ppSectNumberStpRTB.FormatFont = new System.Drawing.Font("Microsoft Sans Serif", 10F);
|
||||
ppSectNumberStpRTB.FieldToEdit = E_FieldToEdit.Number;
|
||||
ppSectNumberStpRTB.BorderStyle = BorderStyle.Fixed3D;
|
||||
ppSectNumberStpRTB.MyItemInfo = ii;
|
||||
ppSectNumberStpRTB.RefreshDisplay(true);
|
||||
_MyStepTabRibbon = new StepTabRibbon();
|
||||
//_MyStepTabRibbon.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
//_MyStepTabRibbon.Location = new System.Drawing.Point(0, 0);
|
||||
_MyStepTabRibbon.Name = "displayTabRibbon1";
|
||||
_MyStepTabRibbon.Visible = false;
|
||||
_MyStepTabRibbon = new StepTabRibbon
|
||||
{
|
||||
Name = "displayTabRibbon1",
|
||||
Visible = false
|
||||
};
|
||||
|
||||
// B2017-272 disable/enable the Steps and Word radio buttons based on the section types defined in the format
|
||||
// and the type of an existing section or if we are creating a new section.
|
||||
// Move the check of creating a new section into CheckAvailableSectionTypes()
|
||||
CheckAvaibleSectionTypes();
|
||||
//// if creating a new section, enable the StepSect and WordSect radio buttons
|
||||
//rbStepSect.Enabled = rbWordSect.Enabled = !(ii.HasWordContent || ii.HasStepContent);
|
||||
|
||||
// if this is an auto table of contents (mydocstyle == null if new section, so must check for that first)
|
||||
if (ii.IsAutoTOCSection)
|
||||
@@ -181,10 +171,9 @@ namespace VEPROMS
|
||||
{
|
||||
// find first section in list that has originalsteps (flags a default section)
|
||||
int defsctId = 0;
|
||||
foreach (SectionInfo si in _SectionConfig.MySection.MySectionInfo.MyProcedure.Sections)
|
||||
foreach (SectionInfo si in _SectionConfig.MySection.MySectionInfo.MyProcedure.Sections.OfType<SectionInfo>())
|
||||
{
|
||||
SectionConfig sc = si.MyConfig as SectionConfig;
|
||||
if (si.ItemID != _SectionConfig.MySection.ItemID && sc != null && sc.Section_OriginalSteps == "Y")
|
||||
if (si.ItemID != _SectionConfig.MySection.ItemID && si.MyConfig is SectionConfig sc && sc.Section_OriginalSteps == "Y")
|
||||
{
|
||||
defsctId = si.ItemID;
|
||||
break;
|
||||
@@ -209,10 +198,9 @@ namespace VEPROMS
|
||||
// this property set - it is used when printing page numbers with 'WithSteps' numbering sequence.
|
||||
else if (!_isDefaultStepSection && ppCbDefaultStepSection.Checked)
|
||||
{
|
||||
foreach (SectionInfo si in _SectionConfig.MySection.MySectionInfo.MyProcedure.Sections)
|
||||
foreach (SectionInfo si in _SectionConfig.MySection.MySectionInfo.MyProcedure.Sections.OfType<SectionInfo>())
|
||||
{
|
||||
SectionConfig sc = si.MyConfig as SectionConfig;
|
||||
if (si.ItemID != _SectionConfig.MySection.ItemID && sc != null && sc.Section_OriginalSteps == "Y")
|
||||
if (si.ItemID != _SectionConfig.MySection.ItemID && si.MyConfig is SectionConfig sc && sc.Section_OriginalSteps == "Y")
|
||||
{
|
||||
using (Section ssav = si.Get())
|
||||
{
|
||||
@@ -253,8 +241,8 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
}
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
public void SaveText(StepRTB myStepRTB)
|
||||
{
|
||||
@@ -269,7 +257,7 @@ namespace VEPROMS
|
||||
myStepRTB.ClearUndo();
|
||||
}
|
||||
}
|
||||
//private static void FinishSectionSave(Section section)
|
||||
|
||||
private void FinishSectionSave(Section section)
|
||||
{
|
||||
ItemInfo sectinfo = ItemInfo.Get(section.ItemID);
|
||||
@@ -305,7 +293,7 @@ namespace VEPROMS
|
||||
_DocumentToDelete = null;
|
||||
sectionConfigBindingSource.CancelEdit();
|
||||
DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -320,12 +308,6 @@ namespace VEPROMS
|
||||
// Get the default format name
|
||||
_DefaultFormatName = _SectionConfig.DefaultFormatSelection;
|
||||
SetupDefault(_DefaultFormatName, ppLblFormatDefault, ppCmbxFormat);
|
||||
//if (_DefaultFormatName != null && !(_DefaultFormatName.Equals("")))
|
||||
//{
|
||||
// string defName = string.Format("{0}", _DefaultFormatName);
|
||||
// ppLblFormatDefault.Text = defName;
|
||||
// ppCmbxFormat.WatermarkText = defName;
|
||||
//}
|
||||
SectionConfig.SectionColumnMode sc = _SectionConfig.Section_ColumnMode;
|
||||
_DefaultNumColumns = sc.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(sc), ppLblDefaultNumColumns, ppCmbxNumColumns);
|
||||
@@ -333,8 +315,6 @@ namespace VEPROMS
|
||||
//Console.WriteLine("{0}, {1}, default pagination", _SectionConfig.MySection.DisplayNumber, sp);
|
||||
_DefaultPaginationStyle = sp.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(sp), ppLblDefPaginationStyle, ppCmbxSectPagination);
|
||||
//_DefaultPrintSize = _SectionConfig.Section_AttachmentPrintSize.ToString();
|
||||
//SetupDefault(EnumDescConverter.GetEnumDescription(_SectionConfig.Section_AttachmentPrintSize), ppLblDefaultPrintSize, ppCmbxAccPgPrintSize);
|
||||
|
||||
_SectionConfig.ParentLookup = false;
|
||||
}
|
||||
@@ -349,7 +329,7 @@ namespace VEPROMS
|
||||
{
|
||||
if (defaultText != null && !(defaultText.Equals("")))
|
||||
{
|
||||
string deftext = string.Format("{0}", defaultText);
|
||||
string deftext = $"{defaultText}";
|
||||
lbl.Text = deftext;
|
||||
cmbo.WatermarkText = deftext;
|
||||
}
|
||||
@@ -373,7 +353,7 @@ namespace VEPROMS
|
||||
// Get the saved settings for this user
|
||||
//
|
||||
// Get setting telling us whether to display the default values on this property page
|
||||
ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultSectionProp"] != null) ? Settings.Default.ShowDefaultSectionProp : false;
|
||||
ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultSectionProp"] != null) && Settings.Default.ShowDefaultSectionProp;
|
||||
|
||||
// Get the User's property page style "PropPageStyle" (this is a system wide user setting)
|
||||
// 1 - Button Dialog (default)
|
||||
@@ -382,7 +362,7 @@ namespace VEPROMS
|
||||
{
|
||||
tcSectionProp.TabsVisible = true;
|
||||
panSectBtns.Visible = false;
|
||||
this.Width -= panSectBtns.Width;
|
||||
Width -= panSectBtns.Width;
|
||||
}
|
||||
|
||||
// Get the default values for the property page information
|
||||
@@ -419,24 +399,10 @@ namespace VEPROMS
|
||||
ppBtnDefaultNumColumns.Visible = false;
|
||||
ppCmbxNumColumns.SelectedValueChanged += new EventHandler(ppCmbxNumColumns_SelectedValueChanged);
|
||||
|
||||
//ppCmbxAccPgPrintSize.DataSource = EnumDetail<SectionConfig.AttPrintSize>.Details();
|
||||
//ppCmbxAccPgPrintSize.DisplayMember = "Description";
|
||||
//ppCmbxAccPgPrintSize.ValueMember = "Evalue";
|
||||
//ppCmbxAccPgPrintSize.SelectedIndex = -1;
|
||||
|
||||
if (!_isStepSection)
|
||||
ppCmbxLibDocFill();
|
||||
|
||||
// check type of section from document styles to determine if the stepsection checkbox should
|
||||
// be checked.
|
||||
//int secindx = (int)_SectionConfig.SectionType;
|
||||
//// find the index for the document style to determine whether this is a step or word section.
|
||||
PlantFormat pf = _SectionConfig.MyFormat != null ? _SectionConfig.MyFormat.PlantFormat : _SectionConfig.MyDefaultFormat.PlantFormat;
|
||||
//for (int i = 0; i < pf.DocStyles.DocStyleList.Count; i++)
|
||||
//{
|
||||
// if (pf.DocStyles.DocStyleList[i].Index == secindx)
|
||||
// rbStepSect.Checked = pf.DocStyles.DocStyleList[i].IsStepSection; _SectionConfig.MySection.
|
||||
//}
|
||||
|
||||
// set the StepSect radio button based on _isStepSection to ensure the proper section types are available
|
||||
rbStepSect.Checked = _isStepSection;
|
||||
@@ -455,7 +421,6 @@ namespace VEPROMS
|
||||
// show the automatic indent checkbox.
|
||||
ppCbEditableData.Enabled = _SectionConfig.MySection.MySectionInfo.Sections != null && _SectionConfig.MySection.MySectionInfo.Sections.Count > 0;
|
||||
ppCbEditableData.Visible = _isStepSection; // only display if we are on a step editor section
|
||||
//ppCbAutoIndent.Enabled = _SectionConfig.MySection.MySectionInfo.Sections != null && _SectionConfig.MySection.MySectionInfo.Sections.Count > 0;
|
||||
ppCbAutoIndent.Enabled = pf.FormatData.SectData.UseMetaSections;
|
||||
ppCbAutoIndent.Visible = _isStepSection; // only display if we are on a step editor section
|
||||
|
||||
@@ -493,8 +458,6 @@ namespace VEPROMS
|
||||
ppCbPlaceKeeper.Enabled = _isStepSection;
|
||||
if (!_isStepSection && (_SectionConfig.MySection.MySectionInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.Placekeeper) == E_DocStructStyle.Placekeeper)
|
||||
{
|
||||
//ppCbPlaceKeeper.Text = "Auto Generate Placekeeper";
|
||||
//ppCbPlaceKeeper.Enabled = true;
|
||||
ppCbPlaceKeeper.Enabled = false;
|
||||
}
|
||||
if (ppCbPlaceKeeper.Enabled) ppCbPlaceKeeper.Checked = _SectionConfig.Section_Placekeeper == "Y";
|
||||
@@ -606,7 +569,7 @@ namespace VEPROMS
|
||||
ppBtnConvertToDocX.Visible = false; // Don't allow save as DOCX for libraries documents
|
||||
ppBtnCvrtToLibDoc.Text = "Convert this Section To A Non-Library Document";
|
||||
lblLibraryDocument.Text = "Library Document";
|
||||
superTooltip1.SetSuperTooltip(this.ppBtnCvrtToLibDoc, new DevComponents.DotNetBar.SuperTooltipInfo("Convert To Non-Library Document", "", "This button will convert the current section from a library document to a non-library document",
|
||||
superTooltip1.SetSuperTooltip(ppBtnCvrtToLibDoc, new DevComponents.DotNetBar.SuperTooltipInfo("Convert To Non-Library Document", "", "This button will convert the current section from a library document to a non-library document",
|
||||
null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(250, 76)));
|
||||
}
|
||||
else
|
||||
@@ -616,17 +579,17 @@ namespace VEPROMS
|
||||
{
|
||||
ItemInfo ii = ItemInfo.Get(_SectionConfig.MySection.ItemID);
|
||||
if (!ii.IsAutoTOCSection) // Only show the Convert To DocX button for non-Auto Table Of Contents Section
|
||||
this.ppBtnConvertToDocX.Visible = true; // Only allow save as DocX for normal word sections when the existing text is RTF.
|
||||
ppBtnConvertToDocX.Visible = true; // Only allow save as DocX for normal word sections when the existing text is RTF.
|
||||
}
|
||||
else
|
||||
this.ppBtnConvertToDocX.Visible = false;
|
||||
ppBtnConvertToDocX.Visible = false;
|
||||
if (_SectionConfig.MySection.MyContent.MyEntry.MyDocument == null)
|
||||
ppBtnCvrtToLibDoc.Visible = false;
|
||||
else
|
||||
{
|
||||
ppBtnCvrtToLibDoc.Text = "Convert this to a Library Document";
|
||||
lblLibraryDocument.Text = "Select Library Document";
|
||||
superTooltip1.SetSuperTooltip(this.ppBtnCvrtToLibDoc, new DevComponents.DotNetBar.SuperTooltipInfo("Convert To Library Document button", "", "This button will convert the current section to a library document, allowing it t" +
|
||||
superTooltip1.SetSuperTooltip(ppBtnCvrtToLibDoc, new DevComponents.DotNetBar.SuperTooltipInfo("Convert To Library Document button", "", "This button will convert the current section to a library document, allowing it t" +
|
||||
"o be shared with other procedures.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(250, 76)));
|
||||
}
|
||||
}
|
||||
@@ -694,11 +657,10 @@ namespace VEPROMS
|
||||
int oldSelIndx = -1;
|
||||
if (!myInit)
|
||||
{
|
||||
DocStyleList oldDocStyles = null;
|
||||
opf = _SectionConfig.MyFormat != null ? _SectionConfig.MyFormat.PlantFormat : _SectionConfig.MyDefaultFormat.PlantFormat;
|
||||
if (pf != opf)
|
||||
{
|
||||
oldDocStyles = new DocStyleList(null);
|
||||
DocStyleList oldDocStyles = new DocStyleList(null);
|
||||
foreach (DocStyle ds in opf.DocStyles.DocStyleListActive)
|
||||
{
|
||||
if (_isStepSection && ds.IsStepSection)
|
||||
@@ -786,6 +748,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
private List<CheckOff> SectionPropertyCheckOffList = null;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private Dictionary<int, int> _CheckOffIndex = new Dictionary<int, int>(); // C2020-003 translate the sorted index number to the actual checkoff index
|
||||
private void SetupCheckoffsDropdowns()
|
||||
{
|
||||
@@ -794,7 +757,7 @@ namespace VEPROMS
|
||||
_Initializing = true;
|
||||
PlantFormat pf = _SectionConfig.MyFormat!=null?_SectionConfig.MyFormat.PlantFormat:_SectionConfig.MyDefaultFormat.PlantFormat;
|
||||
CheckOffList chkoffList = pf.FormatData.ProcData.CheckOffData.CheckOffList;
|
||||
if (chkoffList != null) chkoffList.Sort(CompareCheckoffUsingOrderBy); // C2020-003 sort the checkoff list via the Index and/or OrderBy elements
|
||||
chkoffList?.Sort(CompareCheckoffUsingOrderBy); // C2020-003 sort the checkoff list via the Index and/or OrderBy elements
|
||||
CheckOffHeaderList chkoffHeaderList = pf.FormatData.ProcData.CheckOffData.CheckOffHeaderList;
|
||||
int maxindx = pf.FormatData.ProcData.CheckOffData.CheckOffList.MaxIndexNoInherit;
|
||||
// B2019-013: was crashing on indexer of checkofflist. If there were UCF checkoffs but none in original format, the indexer
|
||||
@@ -815,10 +778,9 @@ namespace VEPROMS
|
||||
if (chkoffList != null && maxindx > 0 &&
|
||||
(pf.FormatData.ProcData.CheckOffData.Menu == "Signoff") || _hasSectionCheckoffDefault)
|
||||
{
|
||||
if (SectionPropertyCheckOffList!=null)SectionPropertyCheckOffList.Clear();
|
||||
SectionPropertyCheckOffList?.Clear();
|
||||
SectionPropertyCheckOffList = new List<CheckOff>();
|
||||
// Don't put up the first item in the chkoffList, it is '{Section Default}'.
|
||||
//for (int i = 1; i < chkoffList.Count; i++)
|
||||
int idxcnt = 0;
|
||||
int translatedCfgIdx = 0;
|
||||
_CheckOffIndex.Clear();
|
||||
@@ -882,7 +844,7 @@ namespace VEPROMS
|
||||
{
|
||||
string suffix = "format ";
|
||||
if (_DefaultFormatName.ToUpper().Contains("FORMAT")) suffix = "";
|
||||
MessageBox.Show(string.Format("{0}\n\n{1}does not support {2} section type", _DefaultFormatName, suffix, isWordSection ? "MS Word" : "Step"), "Incompatible Format", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
MessageBox.Show($"{_DefaultFormatName}\n\n{suffix}does not support {(isWordSection ? "MS Word" : "Step")} section type", "Incompatible Format", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -918,7 +880,6 @@ namespace VEPROMS
|
||||
// determine if the default button and the default description text should visable
|
||||
ppBtnDefaultFmt.Visible = !(ppCmbxFormat.SelectedValue == null || ppCmbxFormat.SelectedIndex == -1);
|
||||
ppLblFormatDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultFmt.Visible;
|
||||
//if (!didDefault) SetupPpCmbxSectionType();
|
||||
SetupPpCmbxSectionType();
|
||||
// B2017-272 disable/enable the Steps and Word radio buttons based on the section types defined in the format
|
||||
// and the type of an existing section or if we are creating a new section.
|
||||
@@ -940,7 +901,7 @@ namespace VEPROMS
|
||||
return true; // valid format
|
||||
string suffix = "format ";
|
||||
if (ppCmbxFormat.SelectedValue.ToString().ToUpper().Contains("FORMAT")) suffix = "";
|
||||
MessageBox.Show(string.Format("{0}\n\n{1}does not support {2} section type", ppCmbxFormat.SelectedValue, suffix, isWordSection ? "MS Word" : "Step"), "Incompatible Format", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
MessageBox.Show($"{ppCmbxFormat.SelectedValue}\n\n{suffix}does not support {(isWordSection ? "MS Word" : "Step")} section type", "Incompatible Format", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -960,10 +921,7 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnLibDocs_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiLibDoc, btnLibDocs);
|
||||
}
|
||||
private void btnLibDocs_Click(object sender, EventArgs e) => ProcessButtonClick(tiLibDoc, btnLibDocs);
|
||||
private void ppBtnCvrtToLibDoc_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Double Check that this is not a step section, if so just return.
|
||||
@@ -995,7 +953,7 @@ namespace VEPROMS
|
||||
ppCmbxLibDoc.Items.Clear();
|
||||
ppCmbxLibDoc.WatermarkEnabled = true;
|
||||
ppBtnCvrtToLibDoc.Text = "Convert this to a Library Document";
|
||||
superTooltip1.SetSuperTooltip(this.ppBtnCvrtToLibDoc, new DevComponents.DotNetBar.SuperTooltipInfo("Convert To Library Document button", "", "This button will convert the current section to a library document, allowing it t" +
|
||||
superTooltip1.SetSuperTooltip(ppBtnCvrtToLibDoc, new DevComponents.DotNetBar.SuperTooltipInfo("Convert To Library Document button", "", "This button will convert the current section to a library document, allowing it t" +
|
||||
"o be shared with other procedures.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(250, 76)));
|
||||
return;
|
||||
}
|
||||
@@ -1038,7 +996,7 @@ namespace VEPROMS
|
||||
}
|
||||
ppBtnCvrtToLibDoc.Text = "Convert this Section To A Non-Library Document";
|
||||
lblLibraryDocument.Text = "Library Document";
|
||||
superTooltip1.SetSuperTooltip(this.ppBtnCvrtToLibDoc, new DevComponents.DotNetBar.SuperTooltipInfo("Convert To Non-Library Document", "", "This button will convert the current section from a library document to a non-library document",
|
||||
superTooltip1.SetSuperTooltip(ppBtnCvrtToLibDoc, new DevComponents.DotNetBar.SuperTooltipInfo("Convert To Non-Library Document", "", "This button will convert the current section from a library document to a non-library document",
|
||||
null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(250, 76)));
|
||||
}
|
||||
|
||||
@@ -1070,11 +1028,6 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
}
|
||||
//else if (_SectionConfig.MySection.MyContent.MyEntry.MyDocument == null)
|
||||
//{
|
||||
// // was creating a new document & selected to connect it to a libdoc
|
||||
// _DocumentToDelete = _SectionConfig.MySection.MyContent.MyEntry.MyDocument;
|
||||
//}
|
||||
else
|
||||
{
|
||||
// it already is a library document, just change usages...
|
||||
@@ -1086,7 +1039,7 @@ namespace VEPROMS
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception(string.Format("Index Out Of Range Index = {0}, Count = {1}", ppCmbxLibDoc.SelectedIndex, LibDocList.Count));
|
||||
throw new Exception($"Index Out Of Range Index = {ppCmbxLibDoc.SelectedIndex}, Count = {LibDocList.Count}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1099,10 +1052,7 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnAutomation_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiAutomation, btnAutomation);
|
||||
}
|
||||
private void btnAutomation_Click(object sender, EventArgs e) => ProcessButtonClick(tiAutomation, btnAutomation);
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -1113,7 +1063,6 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
private void defaultSettingsVisiblity()
|
||||
{
|
||||
//ItemInfo ii = ItemInfo.Get(_SectionConfig.MySection.ItemID);
|
||||
ppLblDefSettingsInfo.Visible = ppCbShwDefSettings.Checked;
|
||||
ppLblFormatDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultFmt.Visible;
|
||||
ppLblDefaultNumColumns.Visible = _isStepSection && ppCbShwDefSettings.Checked && ppBtnDefaultNumColumns.Visible;
|
||||
@@ -1160,28 +1109,9 @@ namespace VEPROMS
|
||||
private void tabpage_Enter(object sender, EventArgs e)
|
||||
{
|
||||
// Show or hide the labels containing the default values
|
||||
//if (!_Initializing) // jsj 1-23-2017 was not showing default check upon property page entry
|
||||
defaultSettingsVisiblity();
|
||||
}
|
||||
/// <summary>
|
||||
/// Process a change in the combo box selection
|
||||
/// </summary>
|
||||
/// <param name="cmbx">Combo Box Name</param>
|
||||
/// <param name="defstr">string containing default text</param>
|
||||
/// <param name="button">button to reset to default value</param>
|
||||
/// <param name="deflabel">label containing the default</param>
|
||||
private void ProcessCmbxSelectedValueChange(ComboBoxEx cmbx, string defstr, ButtonX button, Label deflabel)
|
||||
{
|
||||
if ((cmbx.SelectedIndex != -1) && defstr != null && defstr.Equals(cmbx.SelectedValue))
|
||||
{
|
||||
button.Visible = true;
|
||||
button.Focus();
|
||||
button.PerformClick();
|
||||
}
|
||||
button.Visible = (cmbx.SelectedValue != null);
|
||||
deflabel.Visible = (ppCbShwDefSettings.Checked) && button.Visible;
|
||||
}
|
||||
/// <summary>
|
||||
/// Process a change in the enum combo box selection
|
||||
/// </summary>
|
||||
/// <param name="cmbx">Combo Box Name</param>
|
||||
@@ -1201,21 +1131,14 @@ namespace VEPROMS
|
||||
cmbx.SelectedIndex = -1; // This will hide the Default button
|
||||
_Initializing = sav_Initializing;
|
||||
}
|
||||
//button.Visible = ((!_FolderConfig.Name.Equals("VEPROMS")) && (cmbx.SelectedValue != null));
|
||||
button.Visible = ((cmbx.SelectedValue != null) && (cmbx.SelectedIndex >= 0));
|
||||
deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible;
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void ppSectNumberStpRTB_Enter(object sender, EventArgs e)
|
||||
{
|
||||
_MyStepTabRibbon.MyStepRTB = ppSectNumberStpRTB;
|
||||
}
|
||||
private void ppSectNumberStpRTB_Enter(object sender, EventArgs e) => _MyStepTabRibbon.MyStepRTB = ppSectNumberStpRTB;
|
||||
|
||||
private void ppSectTitleStpRTB_Enter(object sender, EventArgs e)
|
||||
{
|
||||
_MyStepTabRibbon.MyStepRTB = ppSectTitleStpRTB;
|
||||
}
|
||||
private void ppSectTitleStpRTB_Enter(object sender, EventArgs e) => _MyStepTabRibbon.MyStepRTB = ppSectTitleStpRTB;
|
||||
|
||||
private void ShowAvailableOptionsForSectionType()
|
||||
{
|
||||
@@ -1223,8 +1146,6 @@ namespace VEPROMS
|
||||
ppCmbxNumColumns.Visible = _isStepSection;
|
||||
lblPagination.Visible = _isStepSection;
|
||||
ppCmbxSectPagination.Visible = _isStepSection;
|
||||
//lblPrintSize.Visible = !_isStepSection;
|
||||
//ppCmbxAccPgPrintSize.Visible = !_isStepSection;
|
||||
ppGpbxSignoffCheckoff.Visible = _isStepSection;
|
||||
cbKeepWordDocMargins.Visible = !_isStepSection;
|
||||
ppCbDefaultStepSection.Visible = _isStepSection;
|
||||
@@ -1257,12 +1178,6 @@ namespace VEPROMS
|
||||
tcpFormat.Focus();
|
||||
}
|
||||
|
||||
//private void ppCmbxAccPgPrintSize_SelectedValueChanged(object sender, EventArgs e)
|
||||
//{
|
||||
// SectionConfig.AttPrintSize attsize = (SectionConfig.AttPrintSize)Enum.Parse(typeof(SectionConfig.AttPrintSize), _DefaultPrintSize);
|
||||
// ProcessCmbxSelectionEnumChanged(ppCmbxAccPgPrintSize, attsize, ppBtnDefaultPrintSize, ppLblDefaultPrintSize);
|
||||
//}
|
||||
|
||||
private void ppBtnDefaultPaginationStyle_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Get the parent setting
|
||||
@@ -1285,10 +1200,7 @@ namespace VEPROMS
|
||||
tcpFormat.Focus();
|
||||
}
|
||||
|
||||
private void frmSectionProperties_Shown(object sender, EventArgs e)
|
||||
{
|
||||
ppSectNumberStpRTB.Focus();
|
||||
}
|
||||
private void frmSectionProperties_Shown(object sender, EventArgs e) => ppSectNumberStpRTB.Focus();
|
||||
|
||||
private void ppCbEditableData_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1353,7 +1265,7 @@ namespace VEPROMS
|
||||
int cntDefaultSect = 0;
|
||||
string defSectDesc = "";
|
||||
string curSectDesc = "";
|
||||
foreach (SectionInfo si in _SectionConfig.MySection.MySectionInfo.MyProcedure.Sections)
|
||||
foreach (SectionInfo si in _SectionConfig.MySection.MySectionInfo.MyProcedure.Sections.OfType<SectionInfo>())
|
||||
{
|
||||
SectionConfig sc = si.MyConfig as SectionConfig;
|
||||
if (sc != null && sc.Section_OriginalSteps == "Y")
|
||||
@@ -1405,10 +1317,6 @@ namespace VEPROMS
|
||||
ItemInfo ii = ItemInfo.Get(_SectionConfig.MySection.ItemID);
|
||||
DocumentInfo doclibinfo = ii.MyContent.MyEntry.MyDocument;
|
||||
DSOFile myfile = new DSOFile(doclibinfo);
|
||||
// When trying to fix this , the update of the document waas causing a CSLA crash so I switched
|
||||
// to make document
|
||||
//using (Document myDoc = doclibinfo.Get())
|
||||
//{
|
||||
// Open MSWord App
|
||||
LBWordLibrary.LBApplicationClass ap = new LBWordLibrary.LBApplicationClass();
|
||||
LBWordLibrary.LBDocumentClass doc = ap.Documents.Open(myfile.FullName);
|
||||
@@ -1420,17 +1328,13 @@ namespace VEPROMS
|
||||
FileStream fs = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);// B2016-053
|
||||
long len = fs.Length;
|
||||
byte[] ByteArray = new byte[len];
|
||||
int nBytesRead = fs.Read(ByteArray, 0, (int)len);
|
||||
_ = fs.Read(ByteArray, 0, (int)len);
|
||||
fs.Close();
|
||||
Document myDoc = Document.MakeDocument(null, ByteArray, doclibinfo.DocAscii, doclibinfo.Config, ".DOCX");
|
||||
_SectionConfig.MySection.MyContent.MyEntry.MyDocument = myDoc;
|
||||
_SectionConfig.MySection.MyContent.MyEntry.Save();
|
||||
//myDoc.DocContent = ByteArray;
|
||||
//myDoc.FileExtension = ".DOCX";
|
||||
//myDoc.Save();
|
||||
fi.Delete();// Cleanup afterwards
|
||||
ppBtnConvertToDocX.Visible = false; // Hide the button after the execution is complete.
|
||||
//}
|
||||
}
|
||||
|
||||
private void ppCmbxFormat_DropDown(object sender, EventArgs e)
|
||||
@@ -1462,10 +1366,7 @@ namespace VEPROMS
|
||||
|
||||
// B2019-165 check box added to Automation tab to prevent a duplex foldout from
|
||||
// being printed on the back of the last page of the Word document that does not include duplex foldouts
|
||||
private void ppCbNoDuplexFoldout_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
_SectionConfig.Section_DontIncludeDuplexFoldout = ppCbNoDuplexFoldout.Checked;
|
||||
}
|
||||
private void ppCbNoDuplexFoldout_CheckedChanged(object sender, EventArgs e) => _SectionConfig.Section_DontIncludeDuplexFoldout = ppCbNoDuplexFoldout.Checked;
|
||||
// C2029-025 Show or hide replace words. Can highlight replace words in editor.
|
||||
private void ppCbShowRplWords_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1475,15 +1376,5 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
//private void ppBtnDefaultPrintSize_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// // Get the parent setting
|
||||
// SectionConfig.AttPrintSize attsize = (SectionConfig.AttPrintSize)Enum.Parse(typeof(SectionConfig.AttPrintSize), _DefaultPrintSize);
|
||||
// // Compare parent setting with current setting
|
||||
// if (attsize != _SectionConfig.Section_AttachmentPrintSize)
|
||||
// _SectionConfig.Section_AttachmentPrintSize = attsize; // this will force a database update (write)
|
||||
// ppCmbxAccPgPrintSize.SelectedIndex = -1;//reset to the default Accessory page Print Size setting
|
||||
// tcpFormat.Focus();
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using DevComponents;
|
||||
using DevComponents.DotNetBar.Rendering;
|
||||
using DevComponents.DotNetBar;
|
||||
using VEPROMS.Properties;
|
||||
using Volian.Base.Library;
|
||||
using DescriptiveEnum;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class frmSysOptions : DevComponents.DotNetBar.Office2007Form
|
||||
{
|
||||
bool _initializing;
|
||||
private bool _CanChangeSeparateWindowsSetting = true;
|
||||
readonly bool _initializing;
|
||||
|
||||
public bool CanChangeSeparateWindowsSetting
|
||||
{
|
||||
get { return _CanChangeSeparateWindowsSetting; }
|
||||
set { _CanChangeSeparateWindowsSetting = value; }
|
||||
}
|
||||
public bool CanChangeSeparateWindowsSetting { get; set; } = true;
|
||||
|
||||
private UserSettings _usersettings;
|
||||
|
||||
@@ -160,8 +149,8 @@ namespace VEPROMS
|
||||
//C2025-013 - Allow not continuously generate message that opening Summaries in MS Word
|
||||
_usersettings.SetUserSetting_MSWord_Summary_Prompt(cbMSWordPrompt.Checked);
|
||||
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
|
||||
private int ss_propPageStyle;
|
||||
@@ -255,10 +244,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
private void cbAnnotationPopup_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Settings.Default.AutoPopUpAnnotations = cbAnnotationPopup.Checked;
|
||||
}
|
||||
private void cbAnnotationPopup_CheckedChanged(object sender, EventArgs e) => Settings.Default.AutoPopUpAnnotations = cbAnnotationPopup.Checked;
|
||||
|
||||
private void frmSysOptions_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -272,34 +258,15 @@ namespace VEPROMS
|
||||
Settings.Default.StepTypeToolTip = cbStepTypeToolTip.Checked;
|
||||
VlnSettings.StepTypeToolTip = cbStepTypeToolTip.Checked;
|
||||
}
|
||||
private void cbTVExpand_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Settings.Default.SaveTreeviewExpanded = cbTVExpand.Checked;
|
||||
}
|
||||
private void cbSeparateWindows_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Settings.Default.SeparateWindows = cbSeparateWindows.Checked;
|
||||
}
|
||||
private void txbxVisioPath_Leave(object sender, EventArgs e)
|
||||
{
|
||||
Settings.Default.VisioPath = txbxVisioPath.Text;
|
||||
}
|
||||
private void cbTVExpand_CheckedChanged(object sender, EventArgs e) => Settings.Default.SaveTreeviewExpanded = cbTVExpand.Checked;
|
||||
private void cbSeparateWindows_CheckedChanged(object sender, EventArgs e) => Settings.Default.SeparateWindows = cbSeparateWindows.Checked;
|
||||
private void txbxVisioPath_Leave(object sender, EventArgs e) => Settings.Default.VisioPath = txbxVisioPath.Text;
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
RestoreStartingSettings();
|
||||
}
|
||||
private void btnCancel_Click(object sender, EventArgs e) => RestoreStartingSettings();
|
||||
|
||||
private void txbxVisioPath_Leave_1(object sender, EventArgs e)
|
||||
{
|
||||
Settings.Default.VisioPath = txbxVisioPath.Text;
|
||||
}
|
||||
private void txbxVisioPath_Leave_1(object sender, EventArgs e) => Settings.Default.VisioPath = txbxVisioPath.Text;
|
||||
|
||||
|
||||
private void cbOTRemember_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
cbOTAutoOpen.Enabled = cbOTAutoOpen.Visible = cbShwRplWrdsColor.Checked;
|
||||
}
|
||||
private void cbOTRemember_CheckedChanged(object sender, EventArgs e) => cbOTAutoOpen.Enabled = cbOTAutoOpen.Visible = cbShwRplWrdsColor.Checked;
|
||||
private void cbShwRplWrdsColor_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Settings.Default.cbShwRplWrdsColor = cbShwRplWrdsColor.Checked;
|
||||
@@ -308,10 +275,7 @@ namespace VEPROMS
|
||||
Properties.Settings.Default.Save(); // save settings
|
||||
}
|
||||
|
||||
private void cbShwAnnoFilter_Click(object sender, EventArgs e)
|
||||
{
|
||||
frmVEPROMS.tv_SelectAnnotations();
|
||||
}
|
||||
private void cbShwAnnoFilter_Click(object sender, EventArgs e) => frmVEPROMS.tv_SelectAnnotations();
|
||||
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using VEPROMS.CSLA.Library;
|
||||
@@ -28,27 +25,22 @@ namespace VEPROMS
|
||||
private List<MiniConfig> _Apples;
|
||||
private List<MiniConfig> _DeletedApples;
|
||||
private List<EnhancedMiniConfig> _Enhanced;
|
||||
private DocVersionConfig _DocVersionConfig;
|
||||
private string _OrgPDFPath; // B2024-030 used to save last PDF path
|
||||
private readonly DocVersionConfig _DocVersionConfig;
|
||||
private readonly string _OrgPDFPath; // B2024-030 used to save last PDF path
|
||||
|
||||
// Default values
|
||||
private string _DefaultFormatName = null;
|
||||
private string _DefaultROPrefix = null;
|
||||
private string _DefaultImagePrefix = null;
|
||||
private string _DefaultWatermark = null;
|
||||
private string _DefaultChgBarType = null;
|
||||
private string _DefaultChgBarLoc = null;
|
||||
private string _DefaultChgBarText = null;
|
||||
private string _DefaultChgBarUsrMsg1 = null;
|
||||
private string _DefaultChgBarUsrMsg2 = null;
|
||||
private bool _DefaultDisableDuplex = false;
|
||||
private DisplaySearch _DisplaySearch1 = null;
|
||||
|
||||
private bool _Initializing = false;
|
||||
private System.IO.StreamWriter swROUpdate;
|
||||
private ProgressBarItem _ProgressBar = null;
|
||||
private RODbInfo _CurRoDbInfo = null;
|
||||
private ROFstInfo _SelectedROFst;
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private List<DocVersionInfo> NewEnhVersions = new List<DocVersionInfo>();
|
||||
private bool doingNew = false;
|
||||
private bool _EnhNeedToUnlink = false;
|
||||
@@ -59,11 +51,7 @@ namespace VEPROMS
|
||||
|
||||
#region Properties
|
||||
|
||||
public DisplaySearch DisplaySearch1
|
||||
{
|
||||
get { return _DisplaySearch1; }
|
||||
set { _DisplaySearch1 = value; }
|
||||
}
|
||||
public DisplaySearch DisplaySearch1 { get; set; } = null;
|
||||
|
||||
// For the initial release, we are assuming there will be only one rofst for a docversion. Changes will be needed here if more than 1.
|
||||
public ROFstInfo SelectedROFst
|
||||
@@ -81,11 +69,7 @@ namespace VEPROMS
|
||||
set { _SelectedROFst = value; }
|
||||
}
|
||||
|
||||
public ProgressBarItem ProgressBar
|
||||
{
|
||||
get { return _ProgressBar; }
|
||||
set { _ProgressBar = value; }
|
||||
}
|
||||
public ProgressBarItem ProgressBar { get; set; } = null;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -103,7 +87,7 @@ namespace VEPROMS
|
||||
_Initializing = false;
|
||||
|
||||
//build the caption
|
||||
this.Text = string.Format("{0} Properties", _DocVersionConfig.Name);
|
||||
Text = string.Format("{0} Properties", _DocVersionConfig.Name);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -147,9 +131,11 @@ namespace VEPROMS
|
||||
srchtxt = myGrid.GetSearchableText();
|
||||
}
|
||||
|
||||
List<string> retlist = new List<string>();
|
||||
retlist.Add(srchtxt);
|
||||
retlist.Add(xml);
|
||||
List<string> retlist = new List<string>
|
||||
{
|
||||
srchtxt,
|
||||
xml
|
||||
};
|
||||
|
||||
return retlist;
|
||||
}
|
||||
@@ -164,7 +150,6 @@ namespace VEPROMS
|
||||
|
||||
docVersionConfigBindingSource.DataSource = _DocVersionConfig;
|
||||
|
||||
//formatInfoListBindingSource.DataSource = FormatInfoList.Get();
|
||||
imageCodecInfoBindingSource.DataSource = ImageCodecInfo.GetImageDecoders();
|
||||
|
||||
ppCmbxFormat.DataSource = null;
|
||||
@@ -185,7 +170,7 @@ namespace VEPROMS
|
||||
|
||||
// Get the saved settings for this user
|
||||
// Get setting telling us whether to display the default values on this property page
|
||||
ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultVersionProp"] != null) ? Settings.Default.ShowDefaultVersionProp : false;
|
||||
ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultVersionProp"] != null) && Settings.Default.ShowDefaultVersionProp;
|
||||
|
||||
// Get the User's property page style "PropPageStyle" (this is a system wide user setting)
|
||||
// 1 - Button Dialog (default)
|
||||
@@ -194,7 +179,7 @@ namespace VEPROMS
|
||||
{
|
||||
tcVersions.TabsVisible = true;
|
||||
panVerBtns.Visible = false;
|
||||
this.Width -= panVerBtns.Width;
|
||||
Width -= panVerBtns.Width;
|
||||
}
|
||||
|
||||
// Get the default values for the property page information
|
||||
@@ -298,11 +283,13 @@ namespace VEPROMS
|
||||
}
|
||||
else
|
||||
{
|
||||
Button btnPC = new Button();
|
||||
btnPC.Text = "Add Applicability to Working Draft";
|
||||
btnPC.Width = 250;
|
||||
btnPC.Location = new Point(25, 271);
|
||||
btnPC.Parent = tcpGeneral;
|
||||
Button btnPC = new Button
|
||||
{
|
||||
Text = "Add Applicability to Working Draft",
|
||||
Width = 250,
|
||||
Location = new Point(25, 271),
|
||||
Parent = tcpGeneral
|
||||
};
|
||||
btnPC.Click += new EventHandler(btnPC_Click);
|
||||
btnApplicability.Visible = false;
|
||||
tiApplicability.Visible = false;
|
||||
@@ -394,11 +381,13 @@ namespace VEPROMS
|
||||
}
|
||||
if (validEmptyEnhancedExists)
|
||||
{
|
||||
Button btnEnh = new Button();
|
||||
btnEnh.Text = "Link to Enhanced Document(s)";
|
||||
btnEnh.Width = 220;
|
||||
btnEnh.Location = new Point(290, 271);
|
||||
btnEnh.Parent = tcpGeneral;
|
||||
Button btnEnh = new Button
|
||||
{
|
||||
Text = "Link to Enhanced Document(s)",
|
||||
Width = 220,
|
||||
Location = new Point(290, 271),
|
||||
Parent = tcpGeneral
|
||||
};
|
||||
btnEnh.Click += new EventHandler(btnEnh_Click);
|
||||
}
|
||||
}
|
||||
@@ -425,7 +414,7 @@ namespace VEPROMS
|
||||
DocVersionInfo dvi = DocVersionInfo.Get(_DocVersionConfig.MyEnhancedDocuments[0].VersionID);
|
||||
DVEnhancedDocument dvedUseData = _DocVersionConfig.MyEnhancedDocuments[0];
|
||||
DocVersionConfig dvc = dvi.MyConfig as DocVersionConfig;
|
||||
EnhancedMiniConfig ecfg = new EnhancedMiniConfig(0, dvi.VersionID, "?", dvi.SearchDVPath, dvedUseData.Name, dvedUseData.Type.ToString(), dvedUseData.PdfToken, dvedUseData.PdfX.ToString());
|
||||
EnhancedMiniConfig ecfg = new EnhancedMiniConfig(0, dvi.VersionID, dvi.SearchDVPath, dvedUseData.Name, dvedUseData.Type.ToString(), dvedUseData.PdfToken, dvedUseData.PdfX.ToString());
|
||||
cbxEnhVersions.Items.Add(dvi.SearchDVPath);
|
||||
tbEnhName.Enabled = false;
|
||||
tbEnhType.Enabled = false;
|
||||
@@ -466,7 +455,7 @@ namespace VEPROMS
|
||||
{
|
||||
DocVersionInfo dvi = DocVersionInfo.Get(dved.VersionID);
|
||||
DocVersionConfig dvc = dvi.MyConfig as DocVersionConfig;
|
||||
EnhancedMiniConfig ecfg = new EnhancedMiniConfig(0, dvi.VersionID, "?", dvi.SearchDVPath, dved.Name, dved.Type.ToString(), dved.PdfToken, dved.PdfX.ToString());
|
||||
EnhancedMiniConfig ecfg = new EnhancedMiniConfig(0, dvi.VersionID, dvi.SearchDVPath, dved.Name, dved.Type.ToString(), dved.PdfToken, dved.PdfX.ToString());
|
||||
cbxEnhVersions.Items.Add(dvi.SearchDVPath);
|
||||
_Enhanced.Add(ecfg);
|
||||
}
|
||||
@@ -549,47 +538,6 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
private string AddSlaveNode(MiniConfig mc)
|
||||
{
|
||||
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
|
||||
xd.LoadXml(_DocVersionConfig.ToString());
|
||||
System.Xml.XmlNodeList nl = xd.SelectNodes("//Slave");
|
||||
int max = 0;
|
||||
|
||||
foreach (System.Xml.XmlNode n in nl)
|
||||
{
|
||||
max = int.Parse(n.Attributes.GetNamedItem("index").InnerText);
|
||||
}
|
||||
|
||||
max++;
|
||||
|
||||
System.Xml.XmlNode nn = xd.CreateElement("Slave");
|
||||
AddSlaveAttribute(nn, "index", max.ToString());
|
||||
AddSlaveAttribute(nn, "ID", mc.ID);
|
||||
AddSlaveAttribute(nn, "Name", mc.Name);
|
||||
AddSlaveAttribute(nn, "Number", mc.Number);
|
||||
AddSlaveAttribute(nn, "Text", mc.Text);
|
||||
AddSlaveAttribute(nn, "ProcedureNumber", mc.ProcedureNumber);
|
||||
AddSlaveAttribute(nn, "SetID", mc.SetID);
|
||||
AddSlaveAttribute(nn, "SetName", mc.SetName);
|
||||
AddSlaveAttribute(nn, "OtherID", mc.OtherID);
|
||||
AddSlaveAttribute(nn, "OtherName", mc.OtherName);
|
||||
AddSlaveAttribute(nn, "OtherNumber", mc.OtherNumber);
|
||||
AddSlaveAttribute(nn, "OtherText", mc.OtherText);
|
||||
|
||||
System.Xml.XmlNode sn = xd.SelectSingleNode("//Slaves");
|
||||
sn.AppendChild(nn);
|
||||
|
||||
return xd.OuterXml;
|
||||
}
|
||||
|
||||
private void AddSlaveAttribute(System.Xml.XmlNode nn, string name, string value)
|
||||
{
|
||||
System.Xml.XmlAttribute xa = nn.OwnerDocument.CreateAttribute(name);
|
||||
xa.InnerText = value;
|
||||
nn.Attributes.SetNamedItem(xa);
|
||||
}
|
||||
|
||||
private void btnVersionsPropOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
//B2024-030 Check the PDF Location path and prompt to create the folders if needed
|
||||
@@ -683,7 +631,7 @@ namespace VEPROMS
|
||||
{
|
||||
dved.PdfX = Convert.ToInt32(emc.PdfXOffset);
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
dved.PdfX = 10;
|
||||
}
|
||||
@@ -698,7 +646,7 @@ namespace VEPROMS
|
||||
{
|
||||
ipdfx = Convert.ToInt32(emc.PdfXOffset);
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
ipdfx = (emc.PdfToken == null || emc.PdfToken == "") ? 0 : 10;
|
||||
}
|
||||
@@ -709,7 +657,7 @@ namespace VEPROMS
|
||||
{
|
||||
itype = Convert.ToInt32(emc.Type);
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
itype = 1;
|
||||
}
|
||||
@@ -773,20 +721,20 @@ namespace VEPROMS
|
||||
|
||||
if (_EnhNeedToUnlink)
|
||||
{
|
||||
this.Cursor = Cursors.WaitCursor;
|
||||
Cursor = Cursors.WaitCursor;
|
||||
_DocVersionConfig.MyDocVersion.MyDocVersionInfo.DoUnlinkEnhancedDocVersion();
|
||||
this.Cursor = Cursors.Default;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// B2019-132 update the association count for this working draft
|
||||
_DocVersionConfig.MyDocVersion.MyDocVersionInfo.RefreshDocVersionAssociations();
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void btnFldrPropCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
docVersionConfigBindingSource.CancelEdit();
|
||||
this.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -832,13 +780,15 @@ namespace VEPROMS
|
||||
|
||||
// Get the ro path - there is no 'default'
|
||||
if (_DocVersionConfig.MyDocVersion.DocVersionAssociationCount < 0 && _DocVersionConfig.MyDocVersion.DocVersionAssociations.Count == 0)
|
||||
#pragma warning disable CS0642 // Possible mistaken empty statement
|
||||
;// The line above refreshes the data
|
||||
#pragma warning restore CS0642 // Possible mistaken empty statement
|
||||
|
||||
if (_DocVersionConfig.MyDocVersion.DocVersionAssociationCount > 0)
|
||||
{
|
||||
RODbInfo rdi = RODbInfo.GetJustRODB(SelectedROFst.RODbID);
|
||||
|
||||
tbRoDb.Text = string.Format("{0} ({1})", rdi.ROName, rdi.FolderPath);
|
||||
tbRoDb.Text = $"{rdi.ROName} ({rdi.FolderPath})";
|
||||
ppBtnRoToSql.Visible = ppBtnRoToSql.Enabled = CanMigrateRoAccessToSql(rdi); // C2017-003: make button visible if ro migration is doable
|
||||
_CurRoDbInfo = rdi;
|
||||
}
|
||||
@@ -851,7 +801,7 @@ namespace VEPROMS
|
||||
|
||||
foreach (RODbInfo rdi in RODbInfoList.Get())
|
||||
{
|
||||
int i = cmbRoDb.Items.Add(string.Format("{0} ({1})", rdi.ROName, rdi.FolderPath));
|
||||
int i = cmbRoDb.Items.Add($"{rdi.ROName} ({rdi.FolderPath})");
|
||||
|
||||
if (rdi.RODbID == myrodbid)
|
||||
{
|
||||
@@ -958,8 +908,10 @@ namespace VEPROMS
|
||||
if (tmp == null)
|
||||
{
|
||||
MessageBox.Show("Invalid ro fst directory, use the Property dialog to fix directory path to ro.fst.");
|
||||
frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, rdi);
|
||||
dlgROProperties.ProgressBar = ProgressBar;
|
||||
frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, rdi)
|
||||
{
|
||||
ProgressBar = ProgressBar
|
||||
};
|
||||
|
||||
if (dlgROProperties.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
@@ -975,7 +927,7 @@ namespace VEPROMS
|
||||
|
||||
cmbRoDb.Visible = ppBtnRoDbBrowse.Visible = false;
|
||||
tbRoDb.Visible = btnRoDbProperties.Visible = true;
|
||||
tbRoDb.Text = string.Format("{0} ({1})", tmp.MyRODb.ROName, tmp.MyRODb.FolderPath);
|
||||
tbRoDb.Text = $"{tmp.MyRODb.ROName} ({tmp.MyRODb.FolderPath})";
|
||||
|
||||
// C2017-003: See if the selected ro database has been converted to sql and if not, make visible a button to convert the data.
|
||||
RODbInfo rodbi = RODbInfo.GetJustRODB(tmp.MyRODb.RODbID);
|
||||
@@ -1007,8 +959,10 @@ namespace VEPROMS
|
||||
|
||||
private void ppBtnRoDbBrowse_Click(object sender, EventArgs e)
|
||||
{
|
||||
frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, SelectedROFst == null ? null : SelectedROFst.MyRODb);
|
||||
dlgROProperties.ParentLocation = Location;
|
||||
frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, SelectedROFst?.MyRODb)
|
||||
{
|
||||
ParentLocation = Location
|
||||
};
|
||||
|
||||
// if a user has entered a valid rodb, then this docversion will be conntected to it - change
|
||||
// to a non-editable text box and the button becomes a properties button rather than browse.
|
||||
@@ -1075,10 +1029,7 @@ namespace VEPROMS
|
||||
}
|
||||
|
||||
|
||||
private void frmVersionsProperties_Shown(object sender, EventArgs e)
|
||||
{
|
||||
ppRTxtName.Focus();
|
||||
}
|
||||
private void frmVersionsProperties_Shown(object sender, EventArgs e) => ppRTxtName.Focus();
|
||||
|
||||
private void ppRTxtName_Leave(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1089,10 +1040,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
private void btnApplicability_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiApplicability, btnApplicability);
|
||||
}
|
||||
private void btnApplicability_Click(object sender, EventArgs e) => ProcessButtonClick(tiApplicability, btnApplicability);
|
||||
|
||||
private void lbApplicabilities_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1106,9 +1054,10 @@ namespace VEPROMS
|
||||
|
||||
private void btnNewApple_Click(object sender, EventArgs e)
|
||||
{
|
||||
MiniConfig cfg = new MiniConfig();
|
||||
|
||||
cfg.Name = "New Applicability";
|
||||
MiniConfig cfg = new MiniConfig
|
||||
{
|
||||
Name = "New Applicability"
|
||||
};
|
||||
|
||||
if (_Apples == null)
|
||||
{
|
||||
@@ -1147,7 +1096,7 @@ namespace VEPROMS
|
||||
if (_showApplicSearchResults)
|
||||
{
|
||||
_showApplicSearchResults = false;
|
||||
_DisplaySearch1.SearchResults = null;
|
||||
DisplaySearch1.SearchResults = null;
|
||||
}
|
||||
|
||||
Cursor.Current = Cursors.WaitCursor;
|
||||
@@ -1159,9 +1108,9 @@ namespace VEPROMS
|
||||
if (MessageBox.Show(string.Format("Cannot remove an Applicability that is being use in {0} places.\n\nDo you want to view locations via Search Results?\n\nThe Search panel will open when you exit the property page.", placesUsed.Count), "Applicability In Use", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
_showApplicSearchResults = true;
|
||||
_DisplaySearch1.SearchResults = placesUsed;
|
||||
_DisplaySearch1.ReportTitle = string.Format("{0} Applicability", cfg.Name);
|
||||
_DisplaySearch1.TypesSelected = string.Format("These Locations Specify The \"{0}\" Applicability", cfg.Name);
|
||||
DisplaySearch1.SearchResults = placesUsed;
|
||||
DisplaySearch1.ReportTitle = string.Format("{0} Applicability", cfg.Name);
|
||||
DisplaySearch1.TypesSelected = string.Format("These Locations Specify The \"{0}\" Applicability", cfg.Name);
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -1187,7 +1136,7 @@ namespace VEPROMS
|
||||
bsApples.DataSource = null;
|
||||
bsApples.DataSource = _Apples;
|
||||
// C2018-010: When removing an applicability, info on right side still contains old content. Do refreshes and reset datasource to fix this.
|
||||
this.lbApplicabilities.Refresh();
|
||||
lbApplicabilities.Refresh();
|
||||
|
||||
if (_Apples != null && _Apples.Count > 0)
|
||||
{
|
||||
@@ -1204,10 +1153,7 @@ namespace VEPROMS
|
||||
dlgPL.ShowDialog();
|
||||
}
|
||||
|
||||
private void btnEnhanced_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiEnhanced, btnEnhanced);
|
||||
}
|
||||
private void btnEnhanced_Click(object sender, EventArgs e) => ProcessButtonClick(tiEnhanced, btnEnhanced);
|
||||
|
||||
private void lbEnhanced_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1226,8 +1172,10 @@ namespace VEPROMS
|
||||
doingNew = true;
|
||||
|
||||
// the 'New' button is only enabled for Source documents.
|
||||
EnhancedMiniConfig cfg = new EnhancedMiniConfig();
|
||||
cfg.Name = "New Enhanced";
|
||||
EnhancedMiniConfig cfg = new EnhancedMiniConfig
|
||||
{
|
||||
Name = "New Enhanced"
|
||||
};
|
||||
|
||||
// need to have a unique number for this enhanced link, find largest and then increment by 1.
|
||||
int maxtype = -1;
|
||||
@@ -1458,10 +1406,7 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnGeneral_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiGeneral, btnGeneral);
|
||||
}
|
||||
private void btnGeneral_Click(object sender, EventArgs e) => ProcessButtonClick(tiGeneral, btnGeneral);
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -1472,19 +1417,18 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnRefObjs_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiRefObjs, btnRefObjs);
|
||||
}
|
||||
private void btnRefObjs_Click(object sender, EventArgs e) => ProcessButtonClick(tiRefObjs, btnRefObjs);
|
||||
|
||||
private void btnRoDbProperties_Click(object sender, EventArgs e)
|
||||
{
|
||||
frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, SelectedROFst == null ? null : SelectedROFst.MyRODb);
|
||||
dlgROProperties.ParentLocation = Location;
|
||||
frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, SelectedROFst?.MyRODb)
|
||||
{
|
||||
ParentLocation = Location
|
||||
};
|
||||
|
||||
if (dlgROProperties.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
tbRoDb.Text = string.Format("{0} ({1})", SelectedROFst.MyRODb.ROName, SelectedROFst.MyRODb.FolderPath);
|
||||
tbRoDb.Text = $"{SelectedROFst.MyRODb.ROName} ({SelectedROFst.MyRODb.FolderPath})";
|
||||
// only allow update if association, and the RO update was not done and/or not completed
|
||||
ppBtnUpRoVals.Enabled = !_DocVersionConfig.MyDocVersion.ROfstLastCompleted || _DocVersionConfig.MyDocVersion.NewerRoFst;
|
||||
}
|
||||
@@ -1521,7 +1465,7 @@ namespace VEPROMS
|
||||
if (!File.Exists(rofstPath))
|
||||
{
|
||||
FinalProgressBarMessage = "No existing RO.FST";
|
||||
MessageBox.Show("No existing ro.fst in path " + rdi.FolderPath + ". Check for invalid path", "No existing RO.FST"); //B2017-125 added title to messagebox
|
||||
MessageBox.Show($"No existing ro.fst in path {rdi.FolderPath}. Check for invalid path", "No existing RO.FST"); //B2017-125 added title to messagebox
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1581,7 +1525,7 @@ namespace VEPROMS
|
||||
private void ContentInfo_StaticContentInfoChange(object sender, StaticContentInfoEventArgs args)
|
||||
{
|
||||
if (args.Type == "RO")
|
||||
swROUpdate.Write(string.Format("Fixed Referenced Object for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID));
|
||||
swROUpdate.Write($"Fixed Referenced Object for {(sender as ItemInfo).ShortPath}({(sender as ItemInfo).ItemID}){Environment.NewLine}Old Text: {args.OldValue}{Environment.NewLine}New Text: {args.NewValue}{Environment.NewLine}{Environment.NewLine}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -1593,10 +1537,7 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnOutputSettings_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiOutputSettings, btnOutputSettings);
|
||||
}
|
||||
private void btnOutputSettings_Click(object sender, EventArgs e) => ProcessButtonClick(tiOutputSettings, btnOutputSettings);
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Watermark combo box changed.
|
||||
@@ -1889,26 +1830,6 @@ namespace VEPROMS
|
||||
deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Process a change in the combo box selection
|
||||
/// </summary>
|
||||
/// <param name="cmbx">Combo Box Name</param>
|
||||
/// <param name="defstr">string containing default text</param>
|
||||
/// <param name="button">button to reset to default value</param>
|
||||
/// <param name="deflabel">label containing the default</param>
|
||||
private void ProcessCmbxSelectedValueChange(ComboBoxEx cmbx, string defstr, ButtonX button, Label deflabel)
|
||||
{
|
||||
if (cmbx.SelectedIndex > -1 && !string.IsNullOrEmpty(defstr) && defstr.Equals(cmbx.SelectedValue))
|
||||
{
|
||||
button.Visible = true;
|
||||
button.Focus();
|
||||
button.PerformClick();
|
||||
}
|
||||
|
||||
button.Visible = cmbx.SelectedValue != null;
|
||||
deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the watermark and default label
|
||||
/// </summary>
|
||||
@@ -1929,10 +1850,7 @@ namespace VEPROMS
|
||||
|
||||
#region (MergedOutputSettings)
|
||||
|
||||
private void btnMergedOutputSettngs_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiMergedOutputSettings, btnMergedOutputSettngs);
|
||||
}
|
||||
private void btnMergedOutputSettngs_Click(object sender, EventArgs e) => ProcessButtonClick(tiMergedOutputSettings, btnMergedOutputSettngs);
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -1943,10 +1861,7 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnLibDocs_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiLibDocs, btnLibDocs);
|
||||
}
|
||||
private void btnLibDocs_Click(object sender, EventArgs e) => ProcessButtonClick(tiLibDocs, btnLibDocs);
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -1972,9 +1887,6 @@ namespace VEPROMS
|
||||
#region Fields
|
||||
|
||||
private static int lastindex = 0;
|
||||
|
||||
private bool _isDeleted;
|
||||
private bool _isDirty;
|
||||
private int _index;
|
||||
private int _versionID;
|
||||
private string _versionPathName;
|
||||
@@ -1988,18 +1900,10 @@ namespace VEPROMS
|
||||
#region Properties
|
||||
|
||||
[XmlIgnore]
|
||||
public bool IsDeleted
|
||||
{
|
||||
get { return _isDeleted; }
|
||||
set { _isDeleted = value; }
|
||||
}
|
||||
public bool IsDeleted { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public bool IsDirty
|
||||
{
|
||||
get { return _isDirty; }
|
||||
set { _isDirty = value; }
|
||||
}
|
||||
public bool IsDirty { get; set; }
|
||||
|
||||
[XmlAttribute("index")]
|
||||
public int Index
|
||||
@@ -2063,10 +1967,10 @@ namespace VEPROMS
|
||||
_type = string.Empty;
|
||||
_pdfToken = string.Empty;
|
||||
_pdfXOffset = string.Empty;
|
||||
_isDirty = false;
|
||||
IsDirty = false;
|
||||
}
|
||||
|
||||
public EnhancedMiniConfig(int index, int versionid, string id, string versionPathName, string name, string type, string pdftoken, string pdfxoffset)
|
||||
public EnhancedMiniConfig(int index, int versionid, string versionPathName, string name, string type, string pdftoken, string pdfxoffset)
|
||||
{
|
||||
_index = index;
|
||||
_versionID = versionid;
|
||||
@@ -2075,17 +1979,14 @@ namespace VEPROMS
|
||||
_type = type;
|
||||
_pdfToken = pdftoken;
|
||||
_pdfXOffset = pdfxoffset;
|
||||
_isDirty = false;
|
||||
IsDirty = false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
public override string ToString() => Name;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -2101,9 +2002,6 @@ namespace VEPROMS
|
||||
#region Fields
|
||||
|
||||
private static int lastindex = 0;
|
||||
|
||||
private bool _isDeleted;
|
||||
private bool _isDirty;
|
||||
private int _index;
|
||||
private string _iD;
|
||||
private string _name;
|
||||
@@ -2122,18 +2020,10 @@ namespace VEPROMS
|
||||
#region Properties
|
||||
|
||||
[XmlIgnore]
|
||||
public bool IsDeleted
|
||||
{
|
||||
get { return _isDeleted; }
|
||||
set { _isDeleted = value; }
|
||||
}
|
||||
public bool IsDeleted { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public bool IsDirty
|
||||
{
|
||||
get { return _isDirty; }
|
||||
set { _isDirty = value; }
|
||||
}
|
||||
public bool IsDirty { get; set; }
|
||||
|
||||
[XmlAttribute("index")]
|
||||
public int Index
|
||||
@@ -2237,7 +2127,7 @@ namespace VEPROMS
|
||||
_otherName = string.Empty;
|
||||
_otherNumber = string.Empty;
|
||||
_otherText = string.Empty;
|
||||
_isDirty = false;
|
||||
IsDirty = false;
|
||||
}
|
||||
|
||||
public MiniConfig(int index, string id, string name, string number, string text, string procedurenumber, string setid, string setname, string otherid, string othername, string othernumber, string othertext)
|
||||
@@ -2254,22 +2144,16 @@ namespace VEPROMS
|
||||
_otherName = othername;
|
||||
_otherNumber = othernumber;
|
||||
_otherText = othertext;
|
||||
_isDirty = false;
|
||||
IsDirty = false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
public override string ToString() => Name;
|
||||
|
||||
public string MyXml
|
||||
{
|
||||
get { return GenericSerializer<MiniConfig>.StringSerialize(this); }
|
||||
}
|
||||
public string MyXml => GenericSerializer<MiniConfig>.StringSerialize(this);
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
+11
-132
@@ -1,10 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using iTextSharp.text.pdf;
|
||||
using iTextSharp.text.factories;
|
||||
using Microsoft.Win32;
|
||||
using Volian.Base.Library;
|
||||
|
||||
namespace VG
|
||||
@@ -25,22 +20,11 @@ namespace VG
|
||||
}
|
||||
public partial class VGOut_Graphics: IVGOutput
|
||||
{
|
||||
private int _DebugStatus = 0;
|
||||
public int DebugStatus
|
||||
{
|
||||
get { return _DebugStatus; }
|
||||
set { _DebugStatus = value; }
|
||||
}
|
||||
private Graphics _VGOutput;
|
||||
//public Graphics VGOutput
|
||||
//{ get { return _VGOutput; } }
|
||||
public VGOut_Graphics(Graphics vgOutput)
|
||||
{ _VGOutput = vgOutput; }
|
||||
public float Scale
|
||||
{ get { return 1; } }
|
||||
//{ get { return _VGOutput.Transform.Elements[0]; } }
|
||||
public void DrawLine(Pen pn, float startx, float starty, float endx, float endy)
|
||||
{ _VGOutput.DrawLine(pn, startx, starty, endx, endy); }
|
||||
public int DebugStatus { get; set; } = 0;
|
||||
private readonly Graphics _VGOutput;
|
||||
public VGOut_Graphics(Graphics vgOutput) => _VGOutput = vgOutput;
|
||||
public float Scale => 1;
|
||||
public void DrawLine(Pen pn, float startx, float starty, float endx, float endy) => _VGOutput.DrawLine(pn, startx, starty, endx, endy);
|
||||
public void DrawRectangle(Pen pn, RectangleF rectf)
|
||||
{
|
||||
_VGOutput.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
|
||||
@@ -48,118 +32,13 @@ namespace VG
|
||||
_VGOutput.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
|
||||
_VGOutput.DrawRectangle(pn, rectf.X, rectf.Y, rectf.Width, rectf.Height);
|
||||
}
|
||||
public void DrawEllipse(Pen pn, float cx, float cy, float dx, float dy)
|
||||
{ _VGOutput.DrawEllipse(pn, cx, cy, dx, dy); }
|
||||
public void DrawImage(Bitmap bm, RectangleF rectf)
|
||||
{ _VGOutput.DrawImage(bm, rectf); }
|
||||
public void DrawString(string text, Font myFont, Brush brush, RectangleF rectf)
|
||||
{ _VGOutput.DrawString(text, myFont, brush, rectf, StringFormat.GenericTypographic); }
|
||||
public void DrawArc(Pen pn, RectangleF rectf, float startAngle, float sweepAngle)
|
||||
{ _VGOutput.DrawArc(pn, rectf, startAngle, sweepAngle); }
|
||||
public SizeF MeasureString(string text, Font myFont)
|
||||
{ return _VGOutput.MeasureString(text, myFont, new PointF(0, 0), StringFormat.GenericTypographic); }
|
||||
public void DrawEllipse(Pen pn, float cx, float cy, float dx, float dy) => _VGOutput.DrawEllipse(pn, cx, cy, dx, dy);
|
||||
public void DrawImage(Bitmap bm, RectangleF rectf) => _VGOutput.DrawImage(bm, rectf);
|
||||
public void DrawString(string text, Font myFont, Brush brush, RectangleF rectf) => _VGOutput.DrawString(text, myFont, brush, rectf, StringFormat.GenericTypographic);
|
||||
public void DrawArc(Pen pn, RectangleF rectf, float startAngle, float sweepAngle) => _VGOutput.DrawArc(pn, rectf, startAngle, sweepAngle);
|
||||
public SizeF MeasureString(string text, Font myFont) => _VGOutput.MeasureString(text, myFont, new PointF(0, 0), StringFormat.GenericTypographic);
|
||||
public void Save(string fileName)
|
||||
{ ;/* Don't do anything*/ }
|
||||
public float FontSizeAdjust
|
||||
{ get { return .71f * 96f / _VGOutput.DpiX; } } // Changed to adjust for Screen DPI Setting
|
||||
}
|
||||
public partial class VGOut_ITextSharp : IVGOutput
|
||||
{
|
||||
private int _DebugStatus = 0;
|
||||
public int DebugStatus
|
||||
{
|
||||
get { return _DebugStatus; }
|
||||
set { _DebugStatus = value; }
|
||||
}
|
||||
private PdfContentByte _VGOutput;
|
||||
//public Graphics VGOutput
|
||||
//{ get { return _VGOutput; } }
|
||||
public VGOut_ITextSharp(PdfContentByte vgOutput)
|
||||
{ _VGOutput = vgOutput; }
|
||||
public float Scale
|
||||
{ get { return 1; } }
|
||||
public void DrawLine(Pen pn, float startx, float starty, float endx, float endy)
|
||||
{
|
||||
_VGOutput.SaveState();
|
||||
SetStrokeData(pn);
|
||||
_VGOutput.MoveTo(startx, ScaleY(starty));
|
||||
_VGOutput.LineTo(endx, ScaleY(endy));
|
||||
_VGOutput.Stroke();
|
||||
_VGOutput.RestoreState();
|
||||
}
|
||||
private void SetStrokeData(Pen pn)
|
||||
{
|
||||
_VGOutput.SetLineWidth(pn.Width);
|
||||
_VGOutput.SetColorStroke(new iTextSharp.text.Color(pn.Color.R, pn.Color.G, pn.Color.B, pn.Color.A));
|
||||
}
|
||||
public void DrawRectangle(Pen pn, RectangleF rectf)
|
||||
{
|
||||
_VGOutput.SaveState();
|
||||
SetStrokeData(pn);
|
||||
_VGOutput.Rectangle(rectf.X, ScaleY(rectf.Y), rectf.Width, -rectf.Height);
|
||||
_VGOutput.Stroke();
|
||||
_VGOutput.RestoreState();
|
||||
}
|
||||
public void DrawEllipse(Pen pn, float cx, float cy, float dx, float dy)
|
||||
{
|
||||
_VGOutput.SaveState();
|
||||
SetStrokeData(pn);
|
||||
_VGOutput.Ellipse(cx, ScaleY(cy), dx, -dy);
|
||||
_VGOutput.Stroke();
|
||||
_VGOutput.RestoreState();
|
||||
}
|
||||
public void DrawImage(Bitmap bm, RectangleF rectf)
|
||||
{
|
||||
_VGOutput.SaveState();
|
||||
// TODO: Determine how I can create an iTextSharp.text.Image
|
||||
//_VGOutput.AddImage(new iTextSharp.text.Image(
|
||||
_VGOutput.RestoreState();
|
||||
}
|
||||
public void DrawString(string text, Font myFont, Brush brush, RectangleF rectf)
|
||||
{
|
||||
_VGOutput.SaveState();
|
||||
_VGOutput.BeginText();
|
||||
iTextSharp.text.Font itFont = GetFont(myFont.Name);
|
||||
iTextSharp.text.pdf.BaseFont baseFont = itFont.BaseFont;
|
||||
// _VGOutput.DrawString(text, myFont, brush, rectf, StringFormat.GenericTypographic);
|
||||
_VGOutput.MoveText(rectf.X, ScaleY(rectf.Y) - myFont.SizeInPoints);
|
||||
_VGOutput.SetFontAndSize(baseFont, myFont.SizeInPoints);
|
||||
_VGOutput.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL);
|
||||
_VGOutput.ShowTextKerned(text);
|
||||
_VGOutput.EndText();
|
||||
_VGOutput.RestoreState();
|
||||
}
|
||||
public void DrawArc(Pen pn, RectangleF rectf, float startAngle, float sweepAngle)
|
||||
{
|
||||
_VGOutput.SaveState();
|
||||
SetStrokeData(pn);
|
||||
_VGOutput.Arc(rectf.X, ScaleY(rectf.Y), rectf.X + rectf.Width, ScaleY(rectf.Y + rectf.Height), -startAngle, -sweepAngle);
|
||||
_VGOutput.Stroke();
|
||||
_VGOutput.RestoreState();
|
||||
}
|
||||
public SizeF MeasureString(string text, Font myFont)
|
||||
{
|
||||
iTextSharp.text.Font itFont = GetFont(myFont.Name);
|
||||
iTextSharp.text.pdf.BaseFont baseFont = itFont.BaseFont;
|
||||
return new SizeF(baseFont.GetWidthPoint(text,myFont.SizeInPoints)
|
||||
, baseFont.GetAscentPoint(text, myFont.SizeInPoints) + baseFont.GetDescentPoint(text, myFont.SizeInPoints));
|
||||
}
|
||||
public void Save(string fileName)
|
||||
{ ;/* Don't do anything*/ }
|
||||
public float FontSizeAdjust
|
||||
{ get { return 1; } } // Changed to adjust for Screen DPI Setting
|
||||
public static iTextSharp.text.Font GetFont(string fontName)
|
||||
{
|
||||
/// <summary>
|
||||
/// B2019-116 Volian.Base.Library This is a generic class for dealing with iTextSharp Fonts
|
||||
/// Code moved and consolidated from Volian.Print.Library Volian PDF.Library and VG
|
||||
/// </summary>
|
||||
VlnItextFont.RegisterFont(fontName);
|
||||
return iTextSharp.text.FontFactory.GetFont(fontName, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
|
||||
}
|
||||
private float ScaleY(float y)
|
||||
{
|
||||
return _VGOutput.PdfWriter.PageSize.Height - y;
|
||||
}
|
||||
public float FontSizeAdjust => .71f * 96f / _VGOutput.DpiX; // Changed to adjust for Screen DPI Setting
|
||||
}
|
||||
}
|
||||
|
||||
+32
-161
@@ -20,64 +20,34 @@ namespace VG
|
||||
// Temporary page class to store portrait/landscape, Left Margin, Vertical offset, etc
|
||||
public class Page
|
||||
{
|
||||
private bool _Portrait = true;
|
||||
public bool Portrait
|
||||
{
|
||||
get { return _Portrait; }
|
||||
set { _Portrait = value; }
|
||||
}
|
||||
private float _LeftMargin = 0;
|
||||
public float LeftMargin
|
||||
{
|
||||
get { return _LeftMargin; }
|
||||
set { _LeftMargin = value; }
|
||||
}
|
||||
private float _TopMargin = 0;
|
||||
public float TopMargin
|
||||
{
|
||||
get { return _TopMargin; }
|
||||
set { _TopMargin = value; }
|
||||
}
|
||||
private float _RightMargin = 0;
|
||||
public float RightMargin
|
||||
{
|
||||
get { return _RightMargin; }
|
||||
set { _RightMargin = value; }
|
||||
}
|
||||
private float _BottomMargin = 0;
|
||||
public float BottomMargin
|
||||
{
|
||||
get { return _BottomMargin; }
|
||||
set { _BottomMargin = value; }
|
||||
}
|
||||
public bool Portrait { get; set; } = true;
|
||||
public float LeftMargin { get; set; } = 0;
|
||||
public float TopMargin { get; set; } = 0;
|
||||
public float RightMargin { get; set; } = 0;
|
||||
public float BottomMargin { get; set; } = 0;
|
||||
public Page(bool portrait, float leftMargin, float topMargin, float rightMargin, float bottomMargin)
|
||||
{
|
||||
_Portrait = portrait;
|
||||
_LeftMargin = leftMargin;
|
||||
_TopMargin = topMargin;
|
||||
_RightMargin = rightMargin;
|
||||
_BottomMargin = bottomMargin;
|
||||
Portrait = portrait;
|
||||
LeftMargin = leftMargin;
|
||||
TopMargin = topMargin;
|
||||
RightMargin = rightMargin;
|
||||
BottomMargin = bottomMargin;
|
||||
}
|
||||
public Page(bool portrait, float leftMargin, float topMargin)
|
||||
{
|
||||
_Portrait = portrait;
|
||||
_LeftMargin = leftMargin;
|
||||
_TopMargin = topMargin;
|
||||
Portrait = portrait;
|
||||
LeftMargin = leftMargin;
|
||||
TopMargin = topMargin;
|
||||
}
|
||||
}
|
||||
public class VG
|
||||
{
|
||||
private static Brush _BlackBrush = Brushes.Black;
|
||||
public static Brush BlackBrush
|
||||
{
|
||||
get { return _BlackBrush; }
|
||||
set { _BlackBrush = value; }
|
||||
}
|
||||
public static Brush BlackBrush { get; set; } = Brushes.Black;
|
||||
private static Color _BlackColor = Color.Black;
|
||||
public static Color BlackColor
|
||||
{
|
||||
get { return _BlackColor; }
|
||||
set { _BlackColor = value; _BlackBrush = new SolidBrush(value); }
|
||||
set { _BlackColor = value; BlackBrush = new SolidBrush(value); }
|
||||
}
|
||||
// Values of vector graphics items are stored as twips (1440 twips in an inch)
|
||||
public int cx;
|
||||
@@ -105,16 +75,12 @@ namespace VG
|
||||
MoveAbsolute = ima;
|
||||
pg = ipg;
|
||||
}
|
||||
public float ToPoints(float twip)
|
||||
{
|
||||
float r = ((float)twip) * 0.05f;
|
||||
return r;
|
||||
}
|
||||
public float ToPoints(float twip) => (float)(((float)twip) * 0.05f);
|
||||
public void UpdatePageInfo(Page pa)
|
||||
{
|
||||
pg.LeftMargin = pa.LeftMargin;
|
||||
pg.Portrait = pa.Portrait; // RHM 20081003 - This had been pg.portrait=pg.portrait
|
||||
pg.TopMargin = pa.TopMargin; // RHM 20081003 - This had been pg.VertOffset=pg.VertOffset
|
||||
pg.Portrait = pa.Portrait;
|
||||
pg.TopMargin = pa.TopMargin;
|
||||
}
|
||||
public string AddRTFBUI(string origStr, string bold, string underline, string italics)
|
||||
{
|
||||
@@ -145,7 +111,6 @@ namespace VG
|
||||
int B1 = (int)(colorFraction * color.B);
|
||||
int B2 = (int)((1 - colorFraction) * Color.White.B);
|
||||
pn = new Pen(Color.FromArgb(R1 + R2, G1 + G2, B1 + B2), scaleWid);
|
||||
//pn = new Pen(color, wid*wid);
|
||||
}
|
||||
else
|
||||
pn = new Pen(color, scaleWid);
|
||||
@@ -217,74 +182,14 @@ namespace VG
|
||||
vgOutput.DrawRectangle(pn, rc);
|
||||
}
|
||||
}
|
||||
public class VG_Image : VG
|
||||
{
|
||||
private int Scale;
|
||||
private string FileName;
|
||||
// Image is defined as starting point, scale factor (defaults to 1) & image file name
|
||||
public VG_Image(int sx, int sy, int iscale, string fname)
|
||||
{
|
||||
cx = sx;
|
||||
cy = sy;
|
||||
Scale = 1;
|
||||
FileName = fname;
|
||||
}
|
||||
public VG_Image(XmlElement svg, Page ipg)
|
||||
{
|
||||
cx = System.Convert.ToInt32(svg.GetAttribute("x"));
|
||||
cy = System.Convert.ToInt32(svg.GetAttribute("y"));
|
||||
Scale = 1;
|
||||
if (svg.HasAttribute("scale")) Scale = System.Convert.ToInt32(svg.GetAttribute("scale"));
|
||||
FileName = svg.GetAttribute("bname");
|
||||
pg = ipg;
|
||||
}
|
||||
public void Draw(IVGOutput vgOutput)
|
||||
{
|
||||
Pen pn = new Pen(VG.BlackBrush, lnwid);
|
||||
Bitmap bm = new Bitmap(FileName);
|
||||
RectangleF rc = new RectangleF();
|
||||
rc.Height = ToPoints((bm.Height * Scale) * 4.8f);
|
||||
rc.Width = ToPoints((bm.Width * Scale) * 4.8f);
|
||||
rc.X = ToPoints(pg.LeftMargin + cx);
|
||||
rc.Y = ToPoints(pg.TopMargin + cy);
|
||||
// TODO: grfx.DrawImage(bm, rc, ContentAlignment.MiddleCenter, ImageSizeModeEnum.Scale);
|
||||
}
|
||||
}
|
||||
public class VG_Ellipse : VG
|
||||
{
|
||||
// Ellipse (circle) is defined by a bounding rectangle specified by a coordinate pair, a width, and a height
|
||||
public VG_Ellipse(int sx, int sy, int ex, int ey, int w, Page ipg)
|
||||
{
|
||||
cx = sx;
|
||||
cy = sy;
|
||||
dx = ex;
|
||||
dy = ey;
|
||||
lnwid = w;
|
||||
pg = ipg;
|
||||
}
|
||||
public VG_Ellipse(XmlElement svg, Page ipg)
|
||||
{
|
||||
cx = System.Convert.ToInt32(svg.GetAttribute("cx"));
|
||||
cy = System.Convert.ToInt32(svg.GetAttribute("cy"));
|
||||
dx = System.Convert.ToInt32(svg.GetAttribute("rx"));
|
||||
dy = System.Convert.ToInt32(svg.GetAttribute("ry"));
|
||||
lnwid = System.Convert.ToInt32(svg.GetAttribute("stroke-width"));
|
||||
pg = ipg;
|
||||
}
|
||||
public void Draw(IVGOutput vgOutput)
|
||||
{
|
||||
Pen pn = new Pen(VG.BlackBrush, ToPoints(lnwid));
|
||||
vgOutput.DrawEllipse(pn, ToPoints(pg.LeftMargin + cx), ToPoints(pg.TopMargin + cy), ToPoints(dx), ToPoints(dy));
|
||||
}
|
||||
}
|
||||
public class VG_Text : VG
|
||||
{
|
||||
private string FontName;
|
||||
private int FontSize;
|
||||
private string Bold;
|
||||
private string Underline;
|
||||
private string Italics;
|
||||
private string Text;
|
||||
private readonly string FontName;
|
||||
private readonly int FontSize;
|
||||
private readonly string Bold;
|
||||
private readonly string Underline;
|
||||
private readonly string Italics;
|
||||
private readonly string Text;
|
||||
// Text is defined by a starting location, attributes & the string
|
||||
public VG_Text(int sx, int sy, int fs, string txt, string fn, string ibold, string iunder, string iitalics, Page ipg)
|
||||
{
|
||||
@@ -297,48 +202,28 @@ namespace VG
|
||||
Underline = iunder;
|
||||
Italics = iitalics;
|
||||
pg = ipg;
|
||||
// TODO: The following were in the 16-bit code - we may need to use these, wait and see
|
||||
// strokeWidth = stroke;
|
||||
// strokeWidthBold = strokebold;
|
||||
// ULOffset = UnderlineOffset;
|
||||
// ULWidth = UnderlineWidth;
|
||||
}
|
||||
public VG_Text(XmlElement svg, Page ipg)
|
||||
{
|
||||
cx = System.Convert.ToInt32(svg.GetAttribute("x"));
|
||||
cy = System.Convert.ToInt32(svg.GetAttribute("y"));
|
||||
FontSize = System.Convert.ToInt32(svg.GetAttribute("font-size"));
|
||||
Bold = svg.GetAttribute("font-weight");
|
||||
Underline = svg.GetAttribute("text-decoration");
|
||||
Italics = svg.GetAttribute("font-style");
|
||||
FontName = svg.GetAttribute("font-family");
|
||||
Text = svg.InnerText;
|
||||
pg = ipg;
|
||||
}
|
||||
public void Draw(IVGOutput vgOutput)
|
||||
{
|
||||
// TODO: Font myfont = new Font(FontName, (FontSize*9)/10);
|
||||
Font myfont = new Font(FontName, FontSize * vgOutput.FontSizeAdjust); // TODO: Trying 80%
|
||||
RectangleF rc = new RectangleF();
|
||||
RectangleF rc = new RectangleF
|
||||
{
|
||||
// the returned value from c1 grfx code is already in points,
|
||||
// so need to convert the size.
|
||||
rc.Size = vgOutput.MeasureString(Text, myfont); // TODO: 500 or pagewidth, or what
|
||||
Size = vgOutput.MeasureString(Text, myfont), // TODO: 500 or pagewidth, or what
|
||||
//rc.Size = grfx.MeasureString(Text, myfont, 500); // TODO: 500 or pagewidth, or what
|
||||
rc.X = ToPoints(pg.LeftMargin + cx);
|
||||
rc.Y = ToPoints(pg.TopMargin + cy) - FontSize;
|
||||
X = ToPoints(pg.LeftMargin + cx),
|
||||
Y = ToPoints(pg.TopMargin + cy) - FontSize
|
||||
};
|
||||
rc.Height *= 1.0000001F; // Small factor to make text visible.
|
||||
// add bold, underline & italics for entire object.
|
||||
// TODO: string rtfout = AddRTFBUI(Text, Bold, Underline, Italics);
|
||||
//using(Pen pn = new Pen(Color.DarkBlue, .1F))
|
||||
// grfx.DrawRectangle(pn, rc.X,rc.Y,rc.Width,rc.Height);
|
||||
vgOutput.DrawString(Text, myfont, VG.BlackBrush, rc);
|
||||
//grfx.DrawString(Text, myfont, VG.BlackBrush, rc);
|
||||
}
|
||||
}
|
||||
public class VG_Arc : VG
|
||||
{
|
||||
public Single sweepAngle;
|
||||
public Single startAngle;
|
||||
public float sweepAngle;
|
||||
public float startAngle;
|
||||
public float stX, stY;
|
||||
public float rWid, rHgt;
|
||||
// Arc is defined by a bounding rectangle specified by a coordinate pair, a width, and a height
|
||||
@@ -365,9 +250,7 @@ namespace VG
|
||||
rHgt = -hight;
|
||||
}
|
||||
startAngle = stAngle;
|
||||
// startAngle = 90;
|
||||
sweepAngle = swpAngle;
|
||||
// sweepAngle = -45;
|
||||
lnwid = w;
|
||||
pg = ipg;
|
||||
}
|
||||
@@ -391,18 +274,6 @@ namespace VG
|
||||
float starty = pg.Portrait ? (stY + pg.TopMargin) : (pg.LeftMargin - stX);
|
||||
RectangleF rc = new RectangleF(ToPoints(startx), ToPoints(starty), ToPoints(rWid), ToPoints(rHgt));
|
||||
//Console.WriteLine("{0},'{1}',{2},{3},{4},{5},{6},{7}", iColor, pn.Color, rc.X, rc.Y, rc.Width, rc.Height, startAngle, sweepAngle);
|
||||
//if (iColor == 7 || iColor == 8) return;
|
||||
//if (iColor == 6) return;
|
||||
//if (iColor == 4 || iColor == 6)
|
||||
//{
|
||||
// using (Pen lightPen = new Pen(myColors[iColor % myColors.Length], .01F))
|
||||
//{
|
||||
// vgOutput.DrawEllipse(lightPen, rc.X, rc.Y, rc.Width, rc.Height);
|
||||
// float xc = rc.X + (rc.Width / 2);
|
||||
// float yc = rc.Y + (rc.Height / 2);
|
||||
// vgOutput.DrawEllipse(lightPen, xc - .5F, yc - .5F, 1F, 1F);
|
||||
//}
|
||||
//}
|
||||
if (sweepAngle > 0)
|
||||
vgOutput.DrawArc(pn, rc, startAngle, sweepAngle);
|
||||
else
|
||||
|
||||
@@ -6,7 +6,6 @@ using System.Xml.Serialization;
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
[Serializable()]
|
||||
//[XmlRoot("BigNum")]
|
||||
public class BigNum
|
||||
{
|
||||
#region fields
|
||||
@@ -22,18 +21,9 @@ namespace Volian.Base.Library
|
||||
public BigNum()
|
||||
{
|
||||
}
|
||||
public BigNum(int value)
|
||||
{
|
||||
SetFlag(value);
|
||||
}
|
||||
public BigNum(string values)
|
||||
{
|
||||
SetFlags(values);
|
||||
}
|
||||
public BigNum(ICollection<int> values)
|
||||
{
|
||||
SetFlags(values);
|
||||
}
|
||||
public BigNum(int value) => SetFlag(value);
|
||||
public BigNum(string values) => SetFlags(values);
|
||||
public BigNum(ICollection<int> values) => SetFlags(values);
|
||||
public override string ToString()
|
||||
{
|
||||
return FlagList;
|
||||
@@ -58,10 +48,6 @@ namespace Volian.Base.Library
|
||||
}
|
||||
#endregion
|
||||
#region methods
|
||||
//public override string ToString()
|
||||
//{
|
||||
// return GenericSerializer<BigNum>.StringSerialize(this);
|
||||
//}
|
||||
public bool Includes(BigNum other)
|
||||
{
|
||||
List<int> mine = GetFlags();
|
||||
@@ -82,12 +68,6 @@ namespace Volian.Base.Library
|
||||
public List<int> GetFlags()
|
||||
{
|
||||
List<int> myints = new List<int>();
|
||||
//if (MyValue.Count == 0)//1 && MyValue.ContainsKey(0) && MyValue[0] == 0)
|
||||
//{
|
||||
// myints.Add(-1);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
foreach (uint key in MyValue.Keys)
|
||||
{
|
||||
ulong y = MyValue[key];
|
||||
@@ -97,18 +77,10 @@ namespace Volian.Base.Library
|
||||
myints.Add((int)(i + (key * 64)));
|
||||
}
|
||||
}
|
||||
//}
|
||||
return myints;
|
||||
}
|
||||
public void SetFlag(int flag)
|
||||
{
|
||||
//if (flag == -1)
|
||||
//{
|
||||
// MyValue = new SortedDictionary<uint, ulong>();
|
||||
// //MyValue.Add(0, 0);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
uint offset = (uint)(flag / 64);
|
||||
ulong x = one << (flag % 64);
|
||||
if (MyValue.ContainsKey(offset))
|
||||
@@ -122,12 +94,7 @@ namespace Volian.Base.Library
|
||||
foreach (int f in flags)
|
||||
SetFlag(f);
|
||||
}
|
||||
public static BigNum MakeBigNum(string numbers)
|
||||
{
|
||||
if (numbers == "-1")
|
||||
return null;
|
||||
return new BigNum(numbers);
|
||||
}
|
||||
public static BigNum MakeBigNum(string numbers) => numbers == "-1" ? null : new BigNum(numbers);
|
||||
#endregion
|
||||
#region properties
|
||||
[XmlAttribute]
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Volian.Base.Library
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
public static class ByteArrayCompare
|
||||
{
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
public class DebugPrint:IDisposable
|
||||
{
|
||||
public void Dispose()
|
||||
{
|
||||
Close();
|
||||
}
|
||||
public void Dispose() => Close();
|
||||
private StreamWriter _MyStreamWriter = null;
|
||||
public StreamWriter MyStreamWriter
|
||||
{
|
||||
@@ -25,10 +20,7 @@ namespace Volian.Base.Library
|
||||
_MyStreamWriter = value;
|
||||
}
|
||||
}
|
||||
public bool IsOpen
|
||||
{
|
||||
get { return MyStreamWriter != null; }
|
||||
}
|
||||
public bool IsOpen => MyStreamWriter != null;
|
||||
private string _FileName = null;
|
||||
public string FileName
|
||||
{
|
||||
@@ -40,21 +32,14 @@ namespace Volian.Base.Library
|
||||
MyFileInfo = new FileInfo(value);
|
||||
}
|
||||
}
|
||||
private FileInfo _MyFileInfo;
|
||||
public FileInfo MyFileInfo
|
||||
{
|
||||
get { return _MyFileInfo; }
|
||||
set { _MyFileInfo = value; }
|
||||
}
|
||||
|
||||
public FileInfo MyFileInfo { get; set; }
|
||||
public void Open(string fileName)
|
||||
{
|
||||
FileName = fileName;
|
||||
MyStreamWriter = MyFileInfo.CreateText();
|
||||
}
|
||||
public void Close()
|
||||
{
|
||||
MyStreamWriter = null;
|
||||
}
|
||||
public void Close() => MyStreamWriter = null;
|
||||
public void Write(string format, params object[] args)
|
||||
{
|
||||
if (IsOpen) MyStreamWriter.Write(format, args);
|
||||
@@ -73,98 +58,62 @@ namespace Volian.Base.Library
|
||||
}
|
||||
public static class DebugPagination
|
||||
{
|
||||
private static int _TotalPages = 0;
|
||||
public static int TotalPages
|
||||
{
|
||||
get { return _TotalPages; }
|
||||
set { _TotalPages = value; }
|
||||
}
|
||||
private static DebugPrint _MyDebugPrint = new DebugPrint();
|
||||
public static void Open(string fileName)
|
||||
{ _MyDebugPrint.Open(fileName); }
|
||||
public static int TotalPages { get; set; } = 0;
|
||||
private static readonly DebugPrint _MyDebugPrint = new DebugPrint();
|
||||
public static void Open(string fileName) => _MyDebugPrint.Open(fileName);
|
||||
public static void Close()
|
||||
{
|
||||
WriteLine("{0} Total Pages", TotalPages);
|
||||
_MyDebugPrint.Close();
|
||||
}
|
||||
public static void Write(string format, params object[] args)
|
||||
{ _MyDebugPrint.Write(format, args); }
|
||||
public static void WriteLine(string format, params object[] args)
|
||||
{ _MyDebugPrint.WriteLine(format, args); }
|
||||
public static void Show()
|
||||
{ _MyDebugPrint.Show(); }
|
||||
public static bool IsOpen
|
||||
{ get { return _MyDebugPrint.IsOpen; } }
|
||||
public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args);
|
||||
public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args);
|
||||
public static void Show() => _MyDebugPrint.Show();
|
||||
public static bool IsOpen => _MyDebugPrint.IsOpen;
|
||||
}
|
||||
public static class DebugText
|
||||
{
|
||||
private static DebugPrint _MyDebugPrint = new DebugPrint();
|
||||
public static void Open(string fileName)
|
||||
{ _MyDebugPrint.Open(fileName); }
|
||||
public static void Close()
|
||||
{ _MyDebugPrint.Close(); }
|
||||
public static void Write(string format, params object[] args)
|
||||
{ _MyDebugPrint.Write(format, args); }
|
||||
public static void WriteLine(string format, params object[] args)
|
||||
{ _MyDebugPrint.WriteLine(format, args); }
|
||||
public static void Show()
|
||||
{ _MyDebugPrint.Show(); }
|
||||
public static bool IsOpen
|
||||
{ get { return _MyDebugPrint.IsOpen; } }
|
||||
private static readonly DebugPrint _MyDebugPrint = new DebugPrint();
|
||||
public static void Open(string fileName) => _MyDebugPrint.Open(fileName);
|
||||
public static void Close() => _MyDebugPrint.Close();
|
||||
public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args);
|
||||
public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args);
|
||||
public static void Show() => _MyDebugPrint.Show();
|
||||
public static bool IsOpen => _MyDebugPrint.IsOpen;
|
||||
}
|
||||
public static class DebugProfile
|
||||
{
|
||||
private static DebugPrint _MyDebugPrint = new DebugPrint();
|
||||
public static void Open(string fileName)
|
||||
{ _MyDebugPrint.Open(fileName); }
|
||||
public static void Open(string fileName) => _MyDebugPrint.Open(fileName);
|
||||
public static void Close()
|
||||
{ _MyDebugPrint.Close(); _MyDebugPrint = null; }
|
||||
public static void Write(string format, params object[] args)
|
||||
{ _MyDebugPrint.Write(format, args); }
|
||||
public static void WriteLine(string format, params object[] args)
|
||||
{ _MyDebugPrint.WriteLine(format, args); }
|
||||
public static void Show()
|
||||
{ _MyDebugPrint.Show(); }
|
||||
public static bool IsOpen
|
||||
{ get { return _MyDebugPrint.IsOpen; } }
|
||||
public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args);
|
||||
public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args);
|
||||
public static void Show() => _MyDebugPrint.Show();
|
||||
public static bool IsOpen => _MyDebugPrint.IsOpen;
|
||||
}
|
||||
public static class DebugDBTrack
|
||||
{
|
||||
private static DebugPrint _MyDebugPrint = new DebugPrint();
|
||||
public static void Open(string fileName)
|
||||
{ _MyDebugPrint.Open(fileName); }
|
||||
public static void Open(string fileName) => _MyDebugPrint.Open(fileName);
|
||||
public static void Close()
|
||||
{ _MyDebugPrint.Close(); _MyDebugPrint = null; }
|
||||
public static void Write(string format, params object[] args)
|
||||
{ _MyDebugPrint.Write(format, args); }
|
||||
public static void WriteLine(string format, params object[] args)
|
||||
{ _MyDebugPrint.WriteLine(format, args); }
|
||||
public static void Show()
|
||||
{ _MyDebugPrint.Show(); }
|
||||
public static bool IsOpen
|
||||
{ get { return _MyDebugPrint.IsOpen; } }
|
||||
public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args);
|
||||
public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args);
|
||||
public static void Show() => _MyDebugPrint.Show();
|
||||
public static bool IsOpen => _MyDebugPrint.IsOpen;
|
||||
}
|
||||
// C2018-004 create meta file for baseline compares
|
||||
public static class BaselineMetaFile
|
||||
{
|
||||
private static DebugPrint _MyDebugPrint = new DebugPrint();
|
||||
public static void Open(string fileName)
|
||||
{ _MyDebugPrint.Open(fileName); }
|
||||
public static void Close()
|
||||
{ _MyDebugPrint.Close(); }
|
||||
public static void Write(string format, params object[] args)
|
||||
{ _MyDebugPrint.Write(format, args); }
|
||||
public static void WriteLine(string format, params object[] args)
|
||||
{ _MyDebugPrint.WriteLine(format, args); }
|
||||
public static void Show()
|
||||
{ _MyDebugPrint.Show(); }
|
||||
public static bool IsOpen
|
||||
{ get { return _MyDebugPrint.IsOpen; } }
|
||||
private static bool _IncludeWordSecText = true;
|
||||
public static bool IncludeWordSecText
|
||||
{
|
||||
get { return BaselineMetaFile._IncludeWordSecText; }
|
||||
set { BaselineMetaFile._IncludeWordSecText = value; }
|
||||
}
|
||||
private static readonly DebugPrint _MyDebugPrint = new DebugPrint();
|
||||
public static void Open(string fileName) => _MyDebugPrint.Open(fileName);
|
||||
public static void Close() => _MyDebugPrint.Close();
|
||||
public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args);
|
||||
public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args);
|
||||
public static void Show() => _MyDebugPrint.Show();
|
||||
public static bool IsOpen => _MyDebugPrint.IsOpen;
|
||||
|
||||
public static bool IncludeWordSecText { get; set; } = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
@@ -11,11 +9,7 @@ namespace Volian.Base.Library
|
||||
#region Log4Net
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
#endregion
|
||||
public static string GetROEditorPath()
|
||||
{
|
||||
string roapp = PROMSExecutableFolderPath() + @"\ROEDITOR.EXE";
|
||||
return roapp;
|
||||
}
|
||||
public static string GetROEditorPath() => $@"{PROMSExecutableFolderPath()}\ROEDITOR.EXE";
|
||||
|
||||
// returns the path to the executable folder
|
||||
public static string PROMSExecutableFolderPath()
|
||||
@@ -24,7 +18,7 @@ namespace Volian.Base.Library
|
||||
if (pathPROMSexe[7] == ':') // either a local drive or a mapped network drive
|
||||
pathPROMSexe = pathPROMSexe.Substring(6);
|
||||
else
|
||||
pathPROMSexe = @"\" + pathPROMSexe.Substring(5); // non-mapped network drive - need to add extra back slash in front
|
||||
pathPROMSexe = $@"\{pathPROMSexe.Substring(5)}"; // non-mapped network drive - need to add extra back slash in front
|
||||
return pathPROMSexe;
|
||||
}
|
||||
|
||||
@@ -34,7 +28,7 @@ namespace Volian.Base.Library
|
||||
try
|
||||
{
|
||||
// Build the path to the PROMSFixes.sql file located in the PROMS exe folder
|
||||
string pathPROMSFixes = PROMSExecutableFolderPath() + @"\PROMSFixes.sql";
|
||||
string pathPROMSFixes = $@"{PROMSExecutableFolderPath()}\PROMSFixes.sql";
|
||||
|
||||
// open the PROMSFixes.sql file and grab the line of text containing the PROMSFixes RevDate
|
||||
// using Linq to open and read the PROMSFixes file
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing.Design;
|
||||
using System.Windows.Forms.Design;
|
||||
@@ -13,7 +10,6 @@ namespace Volian.Base.Library
|
||||
|
||||
public class FlagCheckedListBox : CheckedListBox
|
||||
{
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
public FlagCheckedListBox()
|
||||
{
|
||||
@@ -21,16 +17,6 @@ namespace Volian.Base.Library
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (components != null)
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
private void InitializeComponent()
|
||||
{
|
||||
@@ -124,7 +110,7 @@ namespace Volian.Base.Library
|
||||
|
||||
// If the item has been unchecked, remove its bits from the sum
|
||||
if (cs == CheckState.Unchecked)
|
||||
sum = sum & (~composite.value);
|
||||
sum &= (~composite.value);
|
||||
// If the item has been checked, combine its bits with the sum
|
||||
else
|
||||
sum |= composite.value;
|
||||
@@ -207,25 +193,13 @@ namespace Volian.Base.Library
|
||||
caption = c;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return caption;
|
||||
}
|
||||
public override string ToString() => caption;
|
||||
|
||||
// Returns true if the value corresponds to a single bit being set
|
||||
public bool IsFlag
|
||||
{
|
||||
get
|
||||
{
|
||||
return ((value & (value - 1)) == 0);
|
||||
}
|
||||
}
|
||||
public bool IsFlag => (value & (value - 1)) == 0;
|
||||
|
||||
// Returns true if this value is a member of the composite bit value
|
||||
public bool IsMemberFlag(FlagCheckedListBoxItem composite)
|
||||
{
|
||||
return (IsFlag && ((value & composite.value) == value));
|
||||
}
|
||||
public bool IsMemberFlag(FlagCheckedListBoxItem composite) => IsFlag && ((value & composite.value) == value);
|
||||
|
||||
public uint value;
|
||||
public string caption;
|
||||
@@ -236,12 +210,14 @@ namespace Volian.Base.Library
|
||||
public class FlagEnumUIEditor : UITypeEditor
|
||||
{
|
||||
// The checklistbox
|
||||
private FlagCheckedListBox flagEnumCB;
|
||||
private readonly FlagCheckedListBox flagEnumCB;
|
||||
|
||||
public FlagEnumUIEditor()
|
||||
{
|
||||
flagEnumCB = new FlagCheckedListBox();
|
||||
flagEnumCB.BorderStyle = BorderStyle.None;
|
||||
flagEnumCB = new FlagCheckedListBox
|
||||
{
|
||||
BorderStyle = BorderStyle.None
|
||||
};
|
||||
}
|
||||
|
||||
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
|
||||
@@ -266,10 +242,7 @@ namespace Volian.Base.Library
|
||||
return null;
|
||||
}
|
||||
|
||||
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
|
||||
{
|
||||
return UITypeEditorEditStyle.DropDown;
|
||||
}
|
||||
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) => UITypeEditorEditStyle.DropDown;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
@@ -17,7 +16,6 @@ namespace Volian.Base.Library
|
||||
using (MemoryStream ms = new MemoryStream())
|
||||
{
|
||||
xs.Serialize(new NonXsiTextWriter(ms, Encoding.Unicode), t);
|
||||
//xs.Serialize(ms, t);
|
||||
ms.Position = 0;
|
||||
StreamReader sr = new StreamReader(ms);
|
||||
strOutput = sr.ReadToEnd();
|
||||
@@ -38,26 +36,6 @@ namespace Volian.Base.Library
|
||||
}
|
||||
return t;
|
||||
}
|
||||
//public static void WriteFile(T t, string fileName)
|
||||
//{
|
||||
// string strOutput = string.Empty;
|
||||
// XmlSerializer xs = new XmlSerializer(typeof(T));
|
||||
// using (FileStream fs = new FileStream(fileName, FileMode.Create))
|
||||
// {
|
||||
// xs.Serialize(new NonXsiTextWriter(fs, Encoding.UTF8), t);
|
||||
// fs.Close();
|
||||
// }
|
||||
//}
|
||||
//public static T ReadFile(string fileName)
|
||||
//{
|
||||
// T t;
|
||||
// XmlSerializer xs = new XmlSerializer(typeof(T));
|
||||
// using (FileStream fs = new FileStream(fileName, FileMode.Open))
|
||||
// {
|
||||
// t = (T)xs.Deserialize(fs);
|
||||
// }
|
||||
// return t;
|
||||
//}
|
||||
}
|
||||
public class NonXsiTextWriter : XmlTextWriter
|
||||
{
|
||||
@@ -79,8 +57,6 @@ namespace Volian.Base.Library
|
||||
}
|
||||
if (localName == "xlink_href")
|
||||
base.WriteStartAttribute(prefix, "xlink:href", ns);
|
||||
//else if (localName == "encoding")
|
||||
// _skip = true;
|
||||
else
|
||||
base.WriteStartAttribute(prefix, localName, ns);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// This file is used by Code Analysis to maintain SuppressMessage
|
||||
// attributes that are applied to this project.
|
||||
// Project-level suppressions either have no target or are given
|
||||
// a specific target and scoped to a namespace, type, member, etc.
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
[assembly: SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Not modifying Naming Styles")]
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.Design;
|
||||
using System.Windows.Forms;
|
||||
using System.Reflection;
|
||||
@@ -17,10 +13,10 @@ namespace Volian.Base.Library
|
||||
// PropertyValueChanged event args...
|
||||
public delegate void MyPropertyValueChangedEventHandler(object sender, PropertyValueChangedEventArgs e);
|
||||
public static event MyPropertyValueChangedEventHandler MyPropertyValueChanged;
|
||||
private bool AllowAddDel = false; // flags whether the Add/Delete buttons should be displayed:
|
||||
private readonly bool AllowAddDel = false; // flags whether the Add/Delete buttons should be displayed:
|
||||
// Inherit the default constructor from the standard
|
||||
// Collection Editor...
|
||||
private Type _origType;
|
||||
private readonly Type _origType;
|
||||
public PropGridCollEditor(Type type)
|
||||
: base(type)
|
||||
{
|
||||
@@ -29,10 +25,7 @@ namespace Volian.Base.Library
|
||||
if (type.Name == "ReplaceStrData") AllowAddDel = true; // Defaults to not having the 'Add' & 'Remove' buttons.
|
||||
}
|
||||
|
||||
protected override Type CreateCollectionItemType()
|
||||
{
|
||||
return base.CreateCollectionItemType();
|
||||
}
|
||||
protected override Type CreateCollectionItemType() => base.CreateCollectionItemType();
|
||||
private Button resetbtn = null;
|
||||
// Override this method in order to access the containing user controls
|
||||
// from the default Collection Editor form or to add new ones...
|
||||
@@ -50,18 +43,19 @@ namespace Volian.Base.Library
|
||||
if (!AllowAddDel)
|
||||
{
|
||||
// add a reset button and put next to ok button:
|
||||
resetbtn = new Button();
|
||||
resetbtn.Text = "Reset";
|
||||
resetbtn.Location = new System.Drawing.Point(okbtn.Location.X - 20, okbtn.Location.Y);
|
||||
resetbtn.Width = 250;
|
||||
resetbtn.Visible = true;
|
||||
resetbtn.Enabled = false; // only enabled on data change
|
||||
resetbtn = new Button
|
||||
{
|
||||
Text = "Reset",
|
||||
Location = new System.Drawing.Point(okbtn.Location.X - 20, okbtn.Location.Y),
|
||||
Width = 250,
|
||||
Visible = true,
|
||||
Enabled = false // only enabled on data change
|
||||
};
|
||||
resetbtn.Click += resetbtn_Click;
|
||||
okbtn.Parent.Controls.Add(resetbtn);
|
||||
}
|
||||
SetMembersLabel(collectionForm);
|
||||
TableLayoutPanel tlpLayout = frmCollectionEditorForm.Controls[0] as TableLayoutPanel;
|
||||
if (tlpLayout != null)
|
||||
if (frmCollectionEditorForm.Controls[0] is TableLayoutPanel tlpLayout)
|
||||
{
|
||||
// Get a reference to the inner PropertyGrid and hook an event handler to it.
|
||||
if (tlpLayout.Controls[5] is PropertyGrid)
|
||||
@@ -93,20 +87,7 @@ namespace Volian.Base.Library
|
||||
else if (SelectedGridField.Contains("Active CheckOff"))
|
||||
ResetValue(propertyGrid.SelectedGridItem.Parent.Parent.Value, "Active");
|
||||
}
|
||||
private void ShowReflection(Object data)
|
||||
{
|
||||
if (data == null) return;
|
||||
//Object data = new A();
|
||||
FieldInfo[] fields = data.GetType().GetFields(BindingFlags.Public |
|
||||
BindingFlags.NonPublic |
|
||||
BindingFlags.Instance);
|
||||
String str = "";
|
||||
foreach (FieldInfo f in fields)
|
||||
{
|
||||
str += f.Name + " = " + f.GetValue(data) + "\r\n";
|
||||
}
|
||||
Console.WriteLine("reflection = {0}", str);
|
||||
}
|
||||
|
||||
PropertyGrid propertyGrid = null;
|
||||
private string SelectedGridField = "";
|
||||
// The following method is used to enable and set text on the 'Reset' button. When a grid item is selected, if it has
|
||||
@@ -114,7 +95,7 @@ namespace Volian.Base.Library
|
||||
void PG_SelectedGridItemChanged(object sender, SelectedGridItemChangedEventArgs e)
|
||||
{
|
||||
if (resetbtn == null) return;
|
||||
if (propertyGrid != null) Console.WriteLine(LabelPath(propertyGrid.SelectedGridItem)); // PG.SelectedGridItem.Label + " : " + PG.SelectedGridItem.Value;
|
||||
if (propertyGrid != null) Console.WriteLine(LabelPath(propertyGrid.SelectedGridItem));
|
||||
// see if data has changed, and if so, enable the Reset button.
|
||||
bool enabled = false;
|
||||
resetbtn.Text = "Reset";
|
||||
@@ -124,7 +105,7 @@ namespace Volian.Base.Library
|
||||
string origForButton = OrigValue(propertyGrid.SelectedGridItem.Parent.Value, "WindowsFont");
|
||||
if (origForButton != null)
|
||||
{
|
||||
resetbtn.Text = "Reset to " + origForButton;
|
||||
resetbtn.Text = $"Reset to {origForButton}";
|
||||
enabled = true;
|
||||
}
|
||||
}
|
||||
@@ -133,7 +114,7 @@ namespace Volian.Base.Library
|
||||
string origForButton = OrigValue(propertyGrid.SelectedGridItem.Parent.Value, "LeftMargin");
|
||||
if (origForButton != null)
|
||||
{
|
||||
resetbtn.Text = "Reset to " + origForButton;
|
||||
resetbtn.Text = $"Reset to {origForButton}";
|
||||
enabled = true;
|
||||
}
|
||||
}
|
||||
@@ -142,7 +123,7 @@ namespace Volian.Base.Library
|
||||
string origForButton = OrigValue(propertyGrid.SelectedGridItem.Parent.Value, "PageLength");
|
||||
if (origForButton != null)
|
||||
{
|
||||
resetbtn.Text = "Reset to " + origForButton;
|
||||
resetbtn.Text = $"Reset to {origForButton}";
|
||||
enabled = true;
|
||||
}
|
||||
}
|
||||
@@ -151,7 +132,7 @@ namespace Volian.Base.Library
|
||||
string origForButton = OrigValue(propertyGrid.SelectedGridItem.Parent.Parent.Value, "Active");
|
||||
if (origForButton != null)
|
||||
{
|
||||
resetbtn.Text = "Reset to " + origForButton;
|
||||
resetbtn.Text = $"Reset to {origForButton}";
|
||||
enabled = true;
|
||||
}
|
||||
}
|
||||
@@ -160,7 +141,7 @@ namespace Volian.Base.Library
|
||||
string origForButton = OrigValue(propertyGrid.SelectedGridItem.Parent.Parent.Value, "Active");
|
||||
if (origForButton != null)
|
||||
{
|
||||
resetbtn.Text = "Reset to " + origForButton;
|
||||
resetbtn.Text = $"Reset to {origForButton}";
|
||||
enabled = true;
|
||||
}
|
||||
}
|
||||
@@ -182,8 +163,8 @@ namespace Volian.Base.Library
|
||||
// field to compare the 2 to see if a change was made, i.e. UCF data exists.
|
||||
foreach (FieldInfo f in fields)
|
||||
{
|
||||
if (f.Name == "_" + fieldName) fldVal = f;
|
||||
if (f.Name == "_Orig" + fieldName) fldOrig = f;
|
||||
if (f.Name == $"_{fieldName}") fldVal = f;
|
||||
if (f.Name == $"_Orig{fieldName}") fldOrig = f;
|
||||
}
|
||||
if (fldVal != null && fldOrig != null)
|
||||
{
|
||||
@@ -200,7 +181,7 @@ namespace Volian.Base.Library
|
||||
if (orig != newv) return retval;
|
||||
else return null;
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@@ -218,8 +199,8 @@ namespace Volian.Base.Library
|
||||
BindingFlags.Instance);
|
||||
foreach (FieldInfo f in fields)
|
||||
{
|
||||
if (f.Name == "_" + fieldName) fldVal = f;
|
||||
if (f.Name == "_Orig" + fieldName) fldOrig = f;
|
||||
if (f.Name == $"_{fieldName}") fldVal = f;
|
||||
if (f.Name == $"_Orig{fieldName}") fldOrig = f;
|
||||
}
|
||||
if (fldVal != null && fldOrig != null)
|
||||
{
|
||||
@@ -228,10 +209,7 @@ namespace Volian.Base.Library
|
||||
}
|
||||
}
|
||||
// Remove this on release, and any uses of it.
|
||||
private string LabelPath(GridItem gi)
|
||||
{
|
||||
return (gi.Parent == null ? "" : LabelPath(gi.Parent) + ":" + gi.Label);
|
||||
}
|
||||
private string LabelPath(GridItem gi) => gi.Parent == null ? "" : $"{LabelPath(gi.Parent)}:{gi.Label}";
|
||||
|
||||
// set the 'members' label to better reflect what is displayed:
|
||||
private bool SetMembersLabel(Control myControl)
|
||||
@@ -292,10 +270,7 @@ namespace Volian.Base.Library
|
||||
void propertyGrid_PropertyValueChanged(object sender, PropertyValueChangedEventArgs e)
|
||||
{
|
||||
// Fire our customized collection event...
|
||||
if (PropGridCollEditor.MyPropertyValueChanged != null)
|
||||
{
|
||||
PropGridCollEditor.MyPropertyValueChanged(this, e);
|
||||
}
|
||||
PropGridCollEditor.MyPropertyValueChanged?.Invoke(this, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.ComponentModel;
|
||||
using Volian.Base.Library;
|
||||
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
@@ -451,11 +448,6 @@ namespace Volian.Base.Library
|
||||
}
|
||||
#endregion
|
||||
#region Structures
|
||||
//struct CharRange
|
||||
//{
|
||||
// public int cpMin;
|
||||
// public int cpMax;
|
||||
//}
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Auto)]
|
||||
public struct CharFormat2
|
||||
{
|
||||
@@ -483,16 +475,10 @@ namespace Volian.Base.Library
|
||||
}
|
||||
public class CharFormatTwo
|
||||
{
|
||||
public CharFormatTwo(CharFormat2 cf)
|
||||
{
|
||||
_CharFormat2 = cf;
|
||||
}
|
||||
public CharFormatTwo(CharFormat2 cf) => _CharFormat2 = cf;
|
||||
private CharFormat2 _CharFormat2;
|
||||
[Browsable(false)]
|
||||
public CharFormat2 CharFormat2
|
||||
{
|
||||
get { return _CharFormat2; }
|
||||
}
|
||||
public CharFormat2 CharFormat2 => _CharFormat2;
|
||||
[Browsable(false)]
|
||||
public int cbSize
|
||||
{
|
||||
@@ -521,14 +507,8 @@ namespace Volian.Base.Library
|
||||
get { return _CharFormat2.yOffset; }
|
||||
set { _CharFormat2.yOffset = value; }
|
||||
}
|
||||
private Color Int2Color(int color)
|
||||
{
|
||||
return Color.FromArgb(color % 256, (color / 256) % 256, color / (256 * 256));
|
||||
}
|
||||
private int Color2Int(Color color)
|
||||
{
|
||||
return color.R + (color.G * 256) + (color.B * 256 * 256);
|
||||
}
|
||||
private Color Int2Color(int color) => Color.FromArgb(color % 256, (color / 256) % 256, color / (256 * 256));
|
||||
private int Color2Int(Color color) => color.R + (color.G * 256) + (color.B * 256 * 256);
|
||||
public Color crTextColor
|
||||
{
|
||||
get { return Int2Color(_CharFormat2.crTextColor); }
|
||||
@@ -637,14 +617,8 @@ namespace Volian.Base.Library
|
||||
public class ParaFormatTwo
|
||||
{
|
||||
private ParaFormat2 _ParaFormat2;
|
||||
public ParaFormatTwo(ParaFormat2 pf)
|
||||
{
|
||||
_ParaFormat2 = pf;
|
||||
}
|
||||
public ParaFormat2 ParaFormat2
|
||||
{
|
||||
get { return _ParaFormat2; }
|
||||
}
|
||||
public ParaFormatTwo(ParaFormat2 pf) => _ParaFormat2 = pf;
|
||||
public ParaFormat2 ParaFormat2 => _ParaFormat2;
|
||||
public int cbSize
|
||||
{
|
||||
get { return _ParaFormat2.cbSize; }
|
||||
@@ -769,16 +743,8 @@ namespace Volian.Base.Library
|
||||
}
|
||||
#endregion
|
||||
#region Static Methods
|
||||
public static bool HasVertScroll(Control ctl)
|
||||
{
|
||||
int dwstyle = GetWindowLong(ctl.Handle, GWL_STYLE);
|
||||
return (dwstyle & WS_VSCROLL) != 0;
|
||||
}
|
||||
public static bool HasHorzScroll(Control ctl)
|
||||
{
|
||||
int dwstyle = GetWindowLong(ctl.Handle, GWL_STYLE);
|
||||
return (dwstyle & WS_HSCROLL) != 0;
|
||||
}
|
||||
public static bool HasVertScroll(Control ctl) => (GetWindowLong(ctl.Handle, GWL_STYLE) & WS_VSCROLL) != 0;
|
||||
public static bool HasHorzScroll(Control ctl) => (GetWindowLong(ctl.Handle, GWL_STYLE) & WS_HSCROLL) != 0;
|
||||
public static void SetScrollLocation(RichTextBox richTextBox, Point point)
|
||||
{
|
||||
if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETSCROLLPOS, 0, ref point) == 0)
|
||||
@@ -815,7 +781,6 @@ namespace Volian.Base.Library
|
||||
ParaFormat2 pf2 = pft.ParaFormat2;
|
||||
if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETPARAFORMAT, 0, ref pf2) == 0)
|
||||
{
|
||||
//if(Marshal.GetLastWin32Error()!=0)
|
||||
throw new Win32Exception();
|
||||
}
|
||||
}
|
||||
@@ -849,15 +814,6 @@ namespace Volian.Base.Library
|
||||
}
|
||||
|
||||
}
|
||||
public static void SetHighlightColor(RichTextBox richTextBox, RTBSelection selection, Color color)
|
||||
{
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, selection);
|
||||
cft.crBackColor = color;
|
||||
cft.dwEffects = 0;
|
||||
cft.dwMask = 0;
|
||||
cft.dwMask |= CharFormatMasks.CFM_BACKCOLOR;
|
||||
SetCharFormat(richTextBox, selection, cft);
|
||||
}
|
||||
public static void SetSpaceBefore(RichTextBox richTextBox, int spaceBefore)
|
||||
{
|
||||
ParaFormatTwo pft = GetParaFormat(richTextBox);
|
||||
@@ -875,236 +831,6 @@ namespace Volian.Base.Library
|
||||
pft.dySpaceBefore = spaceBefore * 1440 / dpi;
|
||||
SetParaFormat(richTextBox, pft);
|
||||
}
|
||||
//developed for equation editor interface work, but ended up not needing it. Kept it in
|
||||
// case it is needed in the future.
|
||||
//public static void SetSpaceAfter(RichTextBox richTextBox, int spaceAfter)
|
||||
//{
|
||||
// ParaFormatTwo pft = GetParaFormat(richTextBox);
|
||||
// pft.dwMask = 0;
|
||||
// pft.dwMask |= ParaFormatMasks.PFM_SPACEAFTER;
|
||||
// // get the monitor's resolution in DPI and use it to set the linespacing value for
|
||||
// // the richtextbox. Note that without this, the Arial Unicode font made the appearance of
|
||||
// // almost double linespacing. Using PFS_Exact makes it appear as regular single spacing.
|
||||
// Graphics g = richTextBox.CreateGraphics();
|
||||
// int dpi = Convert.ToInt32((g.DpiX + g.DpiY) / 2);
|
||||
// g.Dispose();
|
||||
// // dyLineSpacing is Spacing between lines. the PFS_EXACT sets line spacing as the spacing from one
|
||||
// //line to the next, in twips - thus the 1440.
|
||||
|
||||
// pft.dySpaceAfter = spaceAfter * 1440 / dpi;
|
||||
// SetParaFormat(richTextBox, pft);
|
||||
//}
|
||||
public static void SetLineSpacing(RichTextBox richTextBox, ParaSpacing type)
|
||||
{
|
||||
ParaFormatTwo pft = GetParaFormat(richTextBox);
|
||||
pft.bLineSpacingRule = type;
|
||||
pft.dwMask = 0;
|
||||
pft.dwMask |= ParaFormatMasks.PFM_LINESPACING;
|
||||
pft.dwMask |= ParaFormatMasks.PFM_SPACEAFTER;
|
||||
|
||||
// get the monitor's resolution in DPI and use it to set the linespacing value for
|
||||
// the richtextbox. Note that without this, the Arial Unicode font made the appearance of
|
||||
// almost double linespacing. Using PFS_Exact makes it appear as regular single spacing.
|
||||
Graphics g = richTextBox.CreateGraphics();
|
||||
int dpi = Convert.ToInt32((g.DpiX + g.DpiY) / 2);
|
||||
g.Dispose();
|
||||
// dyLineSpacing is Spacing between lines. the PFS_EXACT sets line spacing as the spacing from one
|
||||
//line to the next, in twips - thus the 1440.
|
||||
|
||||
pft.dyLineSpacing = Convert.ToInt32(.5 + richTextBox.Font.GetHeight(dpi)) * 1440 / dpi;
|
||||
SetParaFormat(richTextBox, pft);
|
||||
}
|
||||
public static E_FontStyle GetFontStyle(RichTextBox richTextBox)
|
||||
{
|
||||
E_FontStyle fs = E_FontStyle.FS_NONE;
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION);
|
||||
if (((cft.dwMask & CharFormatMasks.CFM_BOLD) == CharFormatMasks.CFM_BOLD) &&
|
||||
((cft.dwEffects & CharFormatEffects.CFE_BOLD) == CharFormatEffects.CFE_BOLD)) fs |= E_FontStyle.FS_BOLD;
|
||||
if (((cft.dwMask & CharFormatMasks.CFM_UNDERLINE) == CharFormatMasks.CFM_UNDERLINE) &&
|
||||
((cft.dwEffects & CharFormatEffects.CFE_UNDERLINE) == CharFormatEffects.CFE_UNDERLINE)) fs |= E_FontStyle.FS_UNDERLINE;
|
||||
if (((cft.dwMask & CharFormatMasks.CFM_ITALIC) == CharFormatMasks.CFM_ITALIC) &&
|
||||
((cft.dwEffects & CharFormatEffects.CFE_ITALIC) == CharFormatEffects.CFE_ITALIC)) fs |= E_FontStyle.FS_ITALIC;
|
||||
if (richTextBox.SelectionCharOffset == -2) fs |= E_FontStyle.FS_SUBSCRIPT;
|
||||
if (richTextBox.SelectionCharOffset == 2) fs |= E_FontStyle.FS_SUPERSCRIPT;
|
||||
return fs;
|
||||
}
|
||||
public static void SetFontStyle(RichTextBox richTextBox, E_FontStyle fs)
|
||||
{
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION);
|
||||
if ((fs & E_FontStyle.FS_BOLD) == E_FontStyle.FS_BOLD)
|
||||
{
|
||||
cft.dwEffects |= CharFormatEffects.CFE_BOLD;
|
||||
cft.dwMask |= CharFormatMasks.CFM_BOLD;
|
||||
}
|
||||
if ((fs & E_FontStyle.FS_UNDERLINE) == E_FontStyle.FS_UNDERLINE)
|
||||
{
|
||||
cft.dwEffects |= CharFormatEffects.CFE_UNDERLINE;
|
||||
cft.dwMask |= CharFormatMasks.CFM_UNDERLINE;
|
||||
}
|
||||
if ((fs & E_FontStyle.FS_ITALIC) == E_FontStyle.FS_ITALIC)
|
||||
{
|
||||
cft.dwEffects |= CharFormatEffects.CFE_ITALIC;
|
||||
cft.dwMask |= CharFormatMasks.CFM_ITALIC;
|
||||
}
|
||||
if ((fs & E_FontStyle.FS_SUBSCRIPT) == E_FontStyle.FS_SUBSCRIPT)
|
||||
{
|
||||
richTextBox.SelectionCharOffset = -2;
|
||||
}
|
||||
if ((fs & E_FontStyle.FS_SUPERSCRIPT) == E_FontStyle.FS_SUPERSCRIPT)
|
||||
{
|
||||
richTextBox.SelectionCharOffset = 2;
|
||||
}
|
||||
SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft);
|
||||
}
|
||||
public static bool IsSuperScript(RichTextBox richTextBox)
|
||||
{
|
||||
return (richTextBox.SelectionCharOffset>0);
|
||||
}
|
||||
public static bool IsSubScript(RichTextBox richTextBox)
|
||||
{
|
||||
return (richTextBox.SelectionCharOffset < 0);
|
||||
}
|
||||
public static void ToggleSubscript(bool bSet, RichTextBox richTextBox, RTBSelection selection)
|
||||
{
|
||||
if (bSet)
|
||||
richTextBox.SelectionCharOffset = -2;
|
||||
else
|
||||
richTextBox.SelectionCharOffset = 0;
|
||||
}
|
||||
public static void ToggleSuperscript(bool bSet, RichTextBox richTextBox, RTBSelection selection)
|
||||
{
|
||||
if (bSet)
|
||||
richTextBox.SelectionCharOffset = 2;
|
||||
else
|
||||
richTextBox.SelectionCharOffset = 0;
|
||||
}
|
||||
public static bool IsBold(RichTextBox richTextBox)
|
||||
{
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION);
|
||||
return (((cft.dwMask & CharFormatMasks.CFM_BOLD) == CharFormatMasks.CFM_BOLD) &&
|
||||
((cft.dwEffects & CharFormatEffects.CFE_BOLD) == CharFormatEffects.CFE_BOLD));
|
||||
}
|
||||
public static void ToggleBold(bool bSet, RichTextBox richTextBox, RTBSelection selection)
|
||||
{
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, selection);
|
||||
if (bSet)
|
||||
{
|
||||
cft.dwEffects = CharFormatEffects.CFE_BOLD;
|
||||
cft.dwMask = CharFormatMasks.CFM_BOLD;
|
||||
}
|
||||
else
|
||||
{
|
||||
cft.dwEffects = CharFormatEffects.CFE_NONE;
|
||||
cft.dwMask = CharFormatMasks.CFM_BOLD;
|
||||
}
|
||||
SetCharFormat(richTextBox, selection, cft);
|
||||
}
|
||||
public static bool IsUnderline(RichTextBox richTextBox)
|
||||
{
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION);
|
||||
return (((cft.dwMask & CharFormatMasks.CFM_UNDERLINE) == CharFormatMasks.CFM_UNDERLINE) &&
|
||||
((cft.dwEffects & CharFormatEffects.CFE_UNDERLINE) == CharFormatEffects.CFE_UNDERLINE));
|
||||
}
|
||||
public static void ToggleUnderline(bool bSet, RichTextBox richTextBox, RTBSelection selection)
|
||||
{
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, selection);
|
||||
if (bSet)
|
||||
{
|
||||
cft.dwEffects = CharFormatEffects.CFE_UNDERLINE;
|
||||
cft.dwMask = CharFormatMasks.CFM_UNDERLINE;
|
||||
}
|
||||
else
|
||||
{
|
||||
cft.dwEffects = CharFormatEffects.CFE_NONE;
|
||||
cft.dwMask = CharFormatMasks.CFM_UNDERLINE;
|
||||
}
|
||||
SetCharFormat(richTextBox, selection, cft);
|
||||
}
|
||||
public static bool IsItalic(RichTextBox richTextBox)
|
||||
{
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION);
|
||||
return (((cft.dwMask & CharFormatMasks.CFM_ITALIC) == CharFormatMasks.CFM_ITALIC) &&
|
||||
((cft.dwEffects & CharFormatEffects.CFE_ITALIC) == CharFormatEffects.CFE_ITALIC));
|
||||
}
|
||||
public static void ToggleItalic(bool bSet, RichTextBox richTextBox, RTBSelection selection)
|
||||
{
|
||||
CharFormatTwo cft = GetCharFormat(richTextBox, selection);
|
||||
if (bSet)
|
||||
{
|
||||
cft.dwEffects = CharFormatEffects.CFE_ITALIC;
|
||||
cft.dwMask = CharFormatMasks.CFM_ITALIC;
|
||||
}
|
||||
else
|
||||
{
|
||||
cft.dwEffects = CharFormatEffects.CFE_NONE;
|
||||
cft.dwMask = CharFormatMasks.CFM_ITALIC;
|
||||
}
|
||||
SetCharFormat(richTextBox, selection, cft);
|
||||
}
|
||||
//public static bool IsLink(RichTextBox richTextBox)
|
||||
//{
|
||||
// CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION);
|
||||
// return ((cft.dwEffects & CharFormatEffects.CFE_PROTECTED) == CharFormatEffects.CFE_PROTECTED);
|
||||
//}
|
||||
//public static void ToggleLink(bool bSet, RichTextBox richTextBox, RTBSelection selection)
|
||||
//{
|
||||
// CharFormatTwo cft = GetCharFormat(richTextBox, selection);
|
||||
// if (bSet)
|
||||
// {
|
||||
// cft.dwEffects |= CharFormatEffects.CFE_LINK;
|
||||
// cft.dwMask |= CharFormatMasks.CFM_LINK;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// cft.dwEffects &= ~RTBAPI.CharFormatEffects.CFE_LINK;
|
||||
// }
|
||||
// SetCharFormat(richTextBox, selection, cft);
|
||||
//}
|
||||
//public static void UnProtect(RichTextBox richTextBox) //, string type, string text, string link)
|
||||
//{
|
||||
// //richTextBox.DetectUrls = false;
|
||||
// CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ;
|
||||
// //int position = richTextBox.SelectionStart = richTextBox.TextLength;
|
||||
// //richTextBox.SelectionLength = 0;
|
||||
// //richTextBox.SelectedRtf = @"{\rtf1\ansi " + text + @"\v #" + link + @"\v0}";
|
||||
// //richTextBox.SelectedRtf = "{" + string.Format(@"\rtf1\ansi\protect\v {0}\v0 {1}\v #{2}", type, text, link) + "}";
|
||||
// //richTextBox.Select(position, type.Length + text.Length + link.Length + 1);
|
||||
// cft.dwMask = RTBAPI.CharFormatMasks.CFM_PROTECTED;
|
||||
// cft.dwEffects = 0;
|
||||
// // The lines below can be used to allow link text to be edited
|
||||
// //charFormat.dwMask = RTBAPI.CharFormatMasks.CFM_LINK;
|
||||
// //charFormat.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK;
|
||||
// SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft);
|
||||
// //rtbRTF.SetSelectionLink(true);
|
||||
// //richTextBox.SelectionStart = richTextBox.TextLength;
|
||||
// //richTextBox.SelectionLength = 0;
|
||||
//}
|
||||
//public static void Protect(RichTextBox richTextBox) //, string type, string text, string link)
|
||||
//{
|
||||
// CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ;
|
||||
// cft.dwMask = CharFormatMasks.CFM_PROTECTED;
|
||||
// cft.dwEffects = CharFormatEffects.CFE_PROTECTED;
|
||||
// SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft);
|
||||
//}
|
||||
//public static void SetLink(RichTextBox richTextBox, string type, string text, string link)
|
||||
//{
|
||||
// richTextBox.DetectUrls = false;
|
||||
// CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ;
|
||||
// int position = richTextBox.SelectionStart = richTextBox.TextLength;
|
||||
// richTextBox.SelectionLength = 0;
|
||||
// //richTextBox.SelectedRtf = @"{\rtf1\ansi " + text + @"\v #" + link + @"\v0}";
|
||||
// richTextBox.SelectedRtf = "{" + string.Format(@"\rtf1\ansi\protect\v {0}\v0 {1}\v #{2}", type, text, link) + "}";
|
||||
// richTextBox.Select(position, type.Length + text.Length + link.Length + 1);
|
||||
// cft.dwMask = RTBAPI.CharFormatMasks.CFM_LINK | RTBAPI.CharFormatMasks.CFM_PROTECTED;
|
||||
// cft.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK | RTBAPI.CharFormatEffects.CFE_PROTECTED;
|
||||
// // The lines below can be used to allow link text to be edited
|
||||
// //charFormat.dwMask = RTBAPI.CharFormatMasks.CFM_LINK;
|
||||
// //charFormat.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK;
|
||||
// SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft);
|
||||
// //rtbRTF.SetSelectionLink(true);
|
||||
// richTextBox.SelectionStart = richTextBox.TextLength;
|
||||
// richTextBox.SelectionLength = 0;
|
||||
//}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Volian.Base.Library
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
@@ -8,18 +6,8 @@ namespace Volian.Base.Library
|
||||
{
|
||||
public static class TmpFile
|
||||
{
|
||||
public static string CreateFileName(string procNumber, string sectNumber, string sectTitle)
|
||||
{
|
||||
return FixFileName(procNumber + "_" + ((sectNumber ?? "") != "" ? sectNumber : sectTitle));
|
||||
}
|
||||
public static string CreateFileName(string procNumber)
|
||||
{
|
||||
return FixFileName(procNumber);
|
||||
}
|
||||
public static string FixFileName(string name)
|
||||
{
|
||||
return Regex.Replace(name, "[ .,/]", "_") + ".pdf";
|
||||
}
|
||||
public static string CreateFileName(string procNumber) => FixFileName(procNumber);
|
||||
public static string FixFileName(string name) => $"{Regex.Replace(name, "[ .,/]", "_")}.pdf";
|
||||
public static void RemoveAllTmps()
|
||||
{
|
||||
RemoveTmpPDFs();
|
||||
@@ -41,7 +29,7 @@ namespace Volian.Base.Library
|
||||
if (fi.LastAccessTime.Ticks < (DateTime.Now.Ticks - TimeSpan.TicksPerHour))
|
||||
fi.Delete();
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
continue; // if an error, go onto next file.
|
||||
}
|
||||
@@ -70,7 +58,7 @@ namespace Volian.Base.Library
|
||||
if(fi.LastWriteTimeUtc < DateTime.Now.AddDays(-2.0))
|
||||
fi.Delete();
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
continue; // if an error, go onto next file.
|
||||
}
|
||||
@@ -90,7 +78,7 @@ namespace Volian.Base.Library
|
||||
// it may be open from another process.
|
||||
fi.Delete();
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
continue; // if an error, go onto next file.
|
||||
}
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using iTextSharp.text.factories;
|
||||
using Microsoft.Win32;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.IO;
|
||||
using iTextSharp.text;
|
||||
|
||||
@@ -53,7 +47,7 @@ namespace Volian.Base.Library
|
||||
_MyLog.WarnFormat("PROMS Font Folder = {0}", _PromsFontDir); // C2019-028 Add info in the error log
|
||||
}
|
||||
}
|
||||
int profileDepth1 = ProfileTimer.Push(">>>> RegisterDirectory " + _PromsFontDir);
|
||||
int profileDepth1 = ProfileTimer.Push($">>>> RegisterDirectory {_PromsFontDir}");
|
||||
//_MyLog.DebugFormat("Register this Font Folder = {0}", _PromsFontDir); // debug
|
||||
iTextSharp.text.FontFactory.RegisterDirectory(_PromsFontDir);
|
||||
ProfileTimer.Pop(profileDepth1);
|
||||
@@ -70,7 +64,7 @@ namespace Volian.Base.Library
|
||||
_MyLog.WarnFormat("Problem with Font {0} in {1}", fontName, _PromsFontDir);
|
||||
if (_PromsFontDir != FontFind.FontDir)
|
||||
{
|
||||
int profileDepth2 = ProfileTimer.Push(">>>> RegisterDirectory " + FontFind.FontDir);
|
||||
int profileDepth2 = ProfileTimer.Push($">>>> RegisterDirectory {FontFind.FontDir}");
|
||||
//_MyLog.DebugFormat("Register this Font Folder = {0}", FontFind.FontDir); // debug
|
||||
iTextSharp.text.FontFactory.RegisterDirectory(FontFind.FontDir);
|
||||
ProfileTimer.Pop(profileDepth2);
|
||||
@@ -109,9 +103,8 @@ namespace Volian.Base.Library
|
||||
}
|
||||
ProfileTimer.Pop(profileDepth);
|
||||
}
|
||||
private static RegistryKey _FontKey = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows NT").OpenSubKey("CurrentVersion").OpenSubKey("Fonts");
|
||||
public static RegistryKey FontKey
|
||||
{ get { return _FontKey; } }
|
||||
private static readonly RegistryKey _FontKey = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows NT").OpenSubKey("CurrentVersion").OpenSubKey("Fonts");
|
||||
public static RegistryKey FontKey => _FontKey;
|
||||
/// <summary>
|
||||
/// Try to register a particular font, if it fails register the entire font folder
|
||||
/// </summary>
|
||||
@@ -128,7 +121,7 @@ namespace Volian.Base.Library
|
||||
try // B2019-118 Add error handling for FontFacory.Register (Windows Registry contains a node that
|
||||
// points to a file that no longer exists
|
||||
{
|
||||
FontFactory.Register(fontFile.Contains("\\") ? fontFile : FontFind.FontDir + "\\" + fontFile);
|
||||
FontFactory.Register(fontFile.Contains("\\") ? fontFile : $"{FontFind.FontDir}\\{fontFile}");
|
||||
}
|
||||
catch (Exception ex) // catch any exception and add the error to the error log.
|
||||
{
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Configuration;
|
||||
using System.Reflection;
|
||||
@@ -17,24 +15,10 @@ namespace Volian.Base.Library
|
||||
// <add key ="OperatingMode" value ="Debug"|"Demo"|"Production"/>
|
||||
// For DataLoader, this is set via the Debug checkbox on the form.
|
||||
private static bool WasLoaded = false;
|
||||
private static bool _DoUpdateRO = true;
|
||||
public static bool DoUpdateRO
|
||||
{
|
||||
get { return VlnSettings._DoUpdateRO; }
|
||||
set { VlnSettings._DoUpdateRO = value; }
|
||||
}
|
||||
private static bool _DebugPagination = false;
|
||||
public static bool DebugPagination
|
||||
{
|
||||
get { return VlnSettings._DebugPagination; }
|
||||
set { VlnSettings._DebugPagination = value; }
|
||||
}
|
||||
private static bool _DebugText = false;
|
||||
public static bool DebugText
|
||||
{
|
||||
get { return VlnSettings._DebugText; }
|
||||
set { VlnSettings._DebugText = value; }
|
||||
}
|
||||
|
||||
public static bool DoUpdateRO { get; set; } = true;
|
||||
public static bool DebugPagination { get; set; } = false;
|
||||
public static bool DebugText { get; set; } = false;
|
||||
private static bool _DebugMode = false;
|
||||
public static bool DebugMode
|
||||
{
|
||||
@@ -135,8 +119,7 @@ namespace Volian.Base.Library
|
||||
{
|
||||
if (parameter.ToUpper().StartsWith("/" + commandName.ToUpper() + "="))
|
||||
{
|
||||
float result = def;
|
||||
if (float.TryParse(parameter.Substring(commandName.Length + 2), out result))
|
||||
if (float.TryParse(parameter.Substring(commandName.Length + 2), out float result))
|
||||
return result;
|
||||
else
|
||||
return def;
|
||||
@@ -182,7 +165,7 @@ namespace Volian.Base.Library
|
||||
// This will create a Temp\VE-PROMS folder in the LocalSettings Folder.
|
||||
//XP - C:\Documents and Settings\{user}\Local Settings\Application Data\Temp\VEPROMS
|
||||
//Vista - C:\Users\{user}\AppData\Local\Temp\VEPROMS
|
||||
_TemporaryFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Temp";
|
||||
_TemporaryFolder = $@"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\Temp";
|
||||
if (!Directory.Exists(TemporaryFolder)) Directory.CreateDirectory(TemporaryFolder);
|
||||
_TemporaryFolder += @"\VEPROMS";
|
||||
if (!Directory.Exists(TemporaryFolder)) Directory.CreateDirectory(TemporaryFolder);
|
||||
@@ -190,25 +173,10 @@ namespace Volian.Base.Library
|
||||
return _TemporaryFolder;
|
||||
}
|
||||
}
|
||||
private static string _UserID=Environment.UserName.ToUpper();
|
||||
public static string UserID
|
||||
{
|
||||
get { return VlnSettings._UserID; }
|
||||
set { VlnSettings._UserID = value; }
|
||||
}
|
||||
private static bool _StepTypeToolTip = false;
|
||||
public static bool StepTypeToolTip
|
||||
{
|
||||
get { return VlnSettings._StepTypeToolTip; }
|
||||
set { VlnSettings._StepTypeToolTip = value; }
|
||||
}
|
||||
// C2029-025 Show or hide replace words. Can highlight replace words in editor.
|
||||
private static bool _cbShwRplWrdsColor = false;
|
||||
public static bool cbShwRplWrdsColor
|
||||
{
|
||||
get { return VlnSettings._cbShwRplWrdsColor; }
|
||||
set { VlnSettings._cbShwRplWrdsColor = value; }
|
||||
}
|
||||
|
||||
public static string UserID { get; set; } = Environment.UserName.ToUpper();
|
||||
public static bool StepTypeToolTip { get; set; } = false;
|
||||
public static bool cbShwRplWrdsColor { get; set; } = false;
|
||||
private static string _ReleaseMode = null;
|
||||
public static string ReleaseMode
|
||||
{
|
||||
|
||||
@@ -1,26 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
public class VlnTimer
|
||||
{
|
||||
private DateTime _LastTime = DateTime.Now;
|
||||
public DateTime LastTime
|
||||
{
|
||||
get { return _LastTime; }
|
||||
set { _LastTime = value; }
|
||||
}
|
||||
private string _LastProcess = "Initialize";
|
||||
public string LastProcess
|
||||
{
|
||||
get { return _LastProcess; }
|
||||
set { _LastProcess = value; }
|
||||
}
|
||||
public DateTime LastTime { get; set; } = DateTime.Now;
|
||||
public string LastProcess { get; set; } = "Initialize";
|
||||
public string ActiveProcess
|
||||
{
|
||||
get { return _LastProcess; }
|
||||
get { return LastProcess; }
|
||||
set
|
||||
{
|
||||
DateTime tNow = DateTime.Now;
|
||||
@@ -33,12 +22,8 @@ namespace Volian.Base.Library
|
||||
LastProcess = value;
|
||||
}
|
||||
}
|
||||
Dictionary<string, TimeSpan> _ElapsedTimes = new Dictionary<string, TimeSpan>();
|
||||
public Dictionary<string, TimeSpan> ElapsedTimes
|
||||
{
|
||||
get { return _ElapsedTimes; }
|
||||
set { _ElapsedTimes = value; }
|
||||
}
|
||||
|
||||
public Dictionary<string, TimeSpan> ElapsedTimes { get; set; } = new Dictionary<string, TimeSpan>();
|
||||
public void ShowElapsedTimes()
|
||||
{
|
||||
ActiveProcess = "fini";
|
||||
@@ -54,26 +39,15 @@ namespace Volian.Base.Library
|
||||
}
|
||||
public static class ProfileTimer
|
||||
{
|
||||
#pragma warning disable S6669
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private static Stack<string> _MyStack = new Stack<string>();
|
||||
#pragma warning restore S6669
|
||||
|
||||
public static Stack<string> MyStack
|
||||
{
|
||||
get { return _MyStack; }
|
||||
set { _MyStack = value; }
|
||||
}
|
||||
private static DateTime _StartTime = DateTime.Now;
|
||||
public static DateTime StartTime
|
||||
{
|
||||
get { return _StartTime; }
|
||||
set { _StartTime = value; }
|
||||
}
|
||||
public static Stack<string> MyStack { get; set; } = new Stack<string>();
|
||||
public static DateTime StartTime { get; set; } = DateTime.Now;
|
||||
delegate int DoPushTrack(string start);
|
||||
private static DoPushTrack myDoPush = new DoPushTrack(IgnorePush);
|
||||
public static int Push(string start)
|
||||
{
|
||||
return DoPush(start);
|
||||
}
|
||||
public static int Push(string start) => DoPush(start);
|
||||
private static int DoPush(string start)
|
||||
{
|
||||
MyStack.Push(Start);
|
||||
@@ -87,10 +61,7 @@ namespace Volian.Base.Library
|
||||
}
|
||||
delegate int DoPopTrack(int depth);
|
||||
private static DoPopTrack myDoPop = new DoPopTrack(IgnorePop);
|
||||
public static int Pop(int depth)
|
||||
{
|
||||
return DoPop(depth);
|
||||
}
|
||||
public static int Pop(int depth) => DoPop(depth);
|
||||
private static int DoPop(int depth)
|
||||
{
|
||||
if (MyStack.Count != depth)
|
||||
@@ -98,28 +69,15 @@ namespace Volian.Base.Library
|
||||
Start = MyStack.Pop();
|
||||
return MyStack.Count;
|
||||
}
|
||||
private static int IgnorePop(int depth)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
public static int Depth
|
||||
{
|
||||
get
|
||||
{
|
||||
return MyStack.Count;
|
||||
}
|
||||
}
|
||||
private static Dictionary<string, long> _TimerTable = new Dictionary<string, long>();
|
||||
public static Dictionary<string, long> TimerTable
|
||||
{
|
||||
get { return ProfileTimer._TimerTable; }
|
||||
set { ProfileTimer._TimerTable = value; }
|
||||
}
|
||||
private static int IgnorePop(int depth) => 0;
|
||||
public static int Depth => MyStack.Count;
|
||||
|
||||
public static Dictionary<string, long> TimerTable { get; set; } = new Dictionary<string, long>();
|
||||
delegate void DoTrack(string module);
|
||||
private static DoTrack myDoTrack = new DoTrack(IgnoreModule);
|
||||
public static void TurnOnTracking(string filename)
|
||||
{
|
||||
DebugProfile.Open(VlnSettings.TemporaryFolder + "\\" + filename);
|
||||
DebugProfile.Open($"{VlnSettings.TemporaryFolder}\\{filename}");
|
||||
myDoTrack = new DoTrack(TrackModule);
|
||||
myDoPush = new DoPushTrack(DoPush);
|
||||
myDoPop = new DoPopTrack(DoPop);
|
||||
@@ -145,12 +103,9 @@ namespace Volian.Base.Library
|
||||
//Console.WriteLine("{0},'{1}'", TimeSpan.FromTicks(dtNext.Ticks - LastTime.Ticks).TotalSeconds, Description);
|
||||
AddTimerInfo(_Start, dtNext.Ticks - LastTime.Ticks);
|
||||
_Start = module;
|
||||
_LastTime = dtNext;
|
||||
}
|
||||
private static void IgnoreModule(string module)
|
||||
{
|
||||
_Start = module;
|
||||
LastTime = dtNext;
|
||||
}
|
||||
private static void IgnoreModule(string module) => _Start = module;
|
||||
private static void AddTimerInfo(string description, long ticks)
|
||||
{
|
||||
if (TimerTable.ContainsKey(description))
|
||||
@@ -205,16 +160,12 @@ namespace Volian.Base.Library
|
||||
}
|
||||
public static void Reset()
|
||||
{
|
||||
_TimerTable = new Dictionary<string, long>();
|
||||
TimerTable = new Dictionary<string, long>();
|
||||
_Start = "Start";
|
||||
_LastTime = DateTime.Now;
|
||||
_MyStack = new Stack<string>();
|
||||
}
|
||||
private static DateTime _LastTime = DateTime.Now;
|
||||
public static DateTime LastTime
|
||||
{
|
||||
get { return _LastTime; }
|
||||
set { _LastTime = value; }
|
||||
LastTime = DateTime.Now;
|
||||
MyStack = new Stack<string>();
|
||||
}
|
||||
|
||||
public static DateTime LastTime { get; set; } = DateTime.Now;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
<DependentUpon>FrmPopupStatusMessage.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GenericSerializer.cs" />
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="PropGridCollEditor.cs" />
|
||||
<Compile Include="RTBAPI.cs" />
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
@@ -12,45 +10,16 @@ namespace Volian.Base.Library
|
||||
/// </summary>
|
||||
public class VolianTimer
|
||||
{
|
||||
#pragma warning disable S6669
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
#pragma warning restore S6669
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
static List<VolianTimer> _Timers = new List<VolianTimer>();
|
||||
/// <summary>
|
||||
/// User defined name - should be as specific as possible
|
||||
/// Include Method Name, File Name and Line Number
|
||||
/// </summary>
|
||||
private string _Name;
|
||||
public string Name
|
||||
{
|
||||
get { return _Name; }
|
||||
set { _Name = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Set on open
|
||||
/// </summary>
|
||||
private DateTime _Start;
|
||||
public DateTime Start
|
||||
{
|
||||
get { return _Start; }
|
||||
set { _Start = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Calculate on Close
|
||||
/// </summary>
|
||||
private long _Ticks;
|
||||
public long Ticks
|
||||
{
|
||||
get { return _Ticks; }
|
||||
set { _Ticks = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Number of times open/close has been run
|
||||
/// </summary>
|
||||
private int _Count;
|
||||
public int Count
|
||||
{
|
||||
get { return _Count; }
|
||||
set { _Count = value; }
|
||||
}
|
||||
|
||||
public string Name { get; set; }
|
||||
public DateTime Start { get; set; }
|
||||
public long Ticks { get; set; }
|
||||
public int Count { get; set; }
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
@@ -60,6 +29,18 @@ namespace Volian.Base.Library
|
||||
Ticks = 0;
|
||||
}
|
||||
/// <summary>
|
||||
/// Constructor with Module and line number
|
||||
/// </summary>
|
||||
/// <param name="module">Method Name, File Name</param>
|
||||
/// <param name="line">Code Line Number</param>
|
||||
public VolianTimer(string module, int line)
|
||||
{
|
||||
Count = 0;
|
||||
Ticks = 0;
|
||||
Name = string.Format("{0}:{1}", module, line);
|
||||
if (TimingsOn) _Timers.Add(this);
|
||||
}
|
||||
/// <summary>
|
||||
/// Command Line Parameter /Timing turns timing on
|
||||
/// </summary>
|
||||
private static bool? _TimingsOn = null;
|
||||
@@ -73,18 +54,6 @@ namespace Volian.Base.Library
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Constructor with Module and line number
|
||||
/// </summary>
|
||||
/// <param name="module">Method Name, File Name</param>
|
||||
/// <param name="line">Code Line Number</param>
|
||||
public VolianTimer(string module, int line)
|
||||
{
|
||||
Count = 0;
|
||||
Ticks = 0;
|
||||
Name = string.Format("{0}:{1}", module, line);
|
||||
if(TimingsOn) _Timers.Add(this);
|
||||
}
|
||||
/// <summary>
|
||||
/// Start Timer
|
||||
/// </summary>
|
||||
public void Open()
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
@@ -11,7 +7,7 @@ namespace Volian.Base.Library
|
||||
public static class vlnFont
|
||||
{
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private static InstalledFontCollection _MyFontCollection = new InstalledFontCollection();
|
||||
private static readonly InstalledFontCollection _MyFontCollection = new InstalledFontCollection();
|
||||
private static string _ProportionalSymbolFont = null;
|
||||
// C2017-036 Look for suitable proportional font that will support the symbol characters used in PROMS
|
||||
// Microsoft removed Arial Unicode MS starting with Word16 (office 365 containing that version of Word)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
@@ -9,30 +8,8 @@ namespace Volian.Base.Library
|
||||
// This provides a more robust stack trace than what visual studio offers
|
||||
public static class vlnStackTrace
|
||||
{
|
||||
public static string GetStack(string str, params object[] objects)
|
||||
{
|
||||
return string.Format(str, objects) + StackToString();
|
||||
}
|
||||
public static void ShowStack(string str, params object[] objects)
|
||||
{
|
||||
Console.WriteLine(string.Format(str, objects) + StackToString());
|
||||
}
|
||||
public static string GetStack()
|
||||
{
|
||||
return StackToString();
|
||||
}
|
||||
public static string GetStack(bool showSame)
|
||||
{
|
||||
return StackToString(showSame);
|
||||
}
|
||||
public static void ShowStack()
|
||||
{
|
||||
Console.WriteLine(StackToString());
|
||||
}
|
||||
public static string StackToString()
|
||||
{
|
||||
return StackToString(true);
|
||||
}
|
||||
public static string GetStack(bool showSame) => StackToString(showSame);
|
||||
public static string StackToString() => StackToString(true);
|
||||
private static string StackToString(bool showSame)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
@@ -71,22 +48,6 @@ namespace Volian.Base.Library
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
public static void ShowStackLocal(string str, params object[] objects)
|
||||
{
|
||||
Console.WriteLine(string.Format(str, objects) + StackToStringLocal(2,10));
|
||||
}
|
||||
public static void ShowStackFirstLocal(string str)
|
||||
{
|
||||
Console.WriteLine(str + "\r\n" + StackToStringLocal(3, 0));
|
||||
}
|
||||
public static void ShowStackLocal(string str,int start)
|
||||
{
|
||||
Console.WriteLine(str + "\r\n" + StackToStringLocal(start,1));
|
||||
}
|
||||
public static void ShowStackLocal(int start, int limit, string str, params object[] objects)
|
||||
{
|
||||
Console.WriteLine(string.Format(str, objects) + StackToStringLocal(start, limit));
|
||||
}
|
||||
public static string StackToStringLocal(int start, int limit)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
@@ -118,36 +79,12 @@ namespace Volian.Base.Library
|
||||
return sb.ToString();
|
||||
return "No Local Method";
|
||||
}
|
||||
public static string CalledFrom
|
||||
{
|
||||
get
|
||||
{
|
||||
StackTrace st = new StackTrace(true);
|
||||
StackFrame[] sfs = st.GetFrames();
|
||||
int count = 0;
|
||||
foreach (StackFrame sf in sfs)
|
||||
{
|
||||
if (sf.GetFileLineNumber() != 0) // Only look at Local Methods
|
||||
{
|
||||
count++;
|
||||
if (count > 4) // The fourth entry should be the Calling Method
|
||||
{
|
||||
string sType = sf.GetMethod().ReflectedType.Name;
|
||||
string sMethod = sf.GetMethod().Name;
|
||||
return string.Format("{0}.{1}[{2}]", sType, sMethod, sf.GetFileLineNumber());
|
||||
}
|
||||
}
|
||||
}
|
||||
return "No Local Method";
|
||||
}
|
||||
}
|
||||
public static string CalledFromCSLA
|
||||
{
|
||||
get
|
||||
{
|
||||
StackTrace st = new StackTrace(true);
|
||||
StackFrame[] sfs = st.GetFrames();
|
||||
int count = 0;
|
||||
string lastWasCSLA = null;
|
||||
foreach (StackFrame sf in sfs)
|
||||
{
|
||||
@@ -187,71 +124,5 @@ namespace Volian.Base.Library
|
||||
if (stackFrame1.GetILOffset() != stackFrame2.GetILOffset()) return false;
|
||||
return true;
|
||||
}
|
||||
public static bool ScrollInStack()
|
||||
{
|
||||
StackTrace st = new StackTrace(true);
|
||||
StackFrame[] sfs = st.GetFrames();
|
||||
bool retval = false;
|
||||
foreach (StackFrame sf in sfs)
|
||||
{
|
||||
string sMethod = sf.GetMethod().Name;
|
||||
string sNamespace = sf.GetMethod().ReflectedType.Namespace;
|
||||
string sType = sf.GetMethod().ReflectedType.Name;
|
||||
if (sMethod.ToUpper().Contains("SCROLL") || sType.ToUpper().Contains("SCROLL"))
|
||||
{
|
||||
retval = true;
|
||||
Console.WriteLine("{0}.{1}.{2}", sNamespace, sType, sMethod);
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
/// <summary>
|
||||
/// This will clear the Output window when run in the Development Environment
|
||||
/// Add EnvDTE and EnvDTE80 to references from .NET
|
||||
/// </summary>
|
||||
public static void ClearOutputWindow()
|
||||
{
|
||||
#if (DEBUG)
|
||||
try
|
||||
{
|
||||
EnvDTE80.DTE2 dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.8.0");
|
||||
dte2.ToolWindows.OutputWindow.ActivePane.Clear();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("ClearOutputWindow {0} - {1}\r\n{2}", ex.GetType().Name, ex.Message, ex.StackTrace);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
public static class HWndCounter
|
||||
{
|
||||
[DllImport("kernel32.dll")]
|
||||
private static extern IntPtr GetCurrentProcess();
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern uint GetGuiResources(IntPtr hProcess, uint uiFlags);
|
||||
|
||||
private enum ResourceType
|
||||
{
|
||||
Gdi = 0,
|
||||
User = 1
|
||||
}
|
||||
public static void GetWindowHandlesForCurrentProcess(IntPtr hWnd)
|
||||
{
|
||||
GetWindowHandlesForCurrentProcess(hWnd, "");
|
||||
}
|
||||
private static uint lastUserObject = 0;
|
||||
public static void GetWindowHandlesForCurrentProcess(IntPtr hWnd, string str, params object[] objects)
|
||||
{
|
||||
IntPtr processHandle = GetCurrentProcess();
|
||||
uint gdiObjects = GetGuiResources(processHandle, (uint)ResourceType.Gdi);
|
||||
uint userObjects = GetGuiResources(processHandle, (uint)ResourceType.User);
|
||||
if (lastUserObject != userObjects)
|
||||
Console.WriteLine("winhandle count = {0} GDIObjs {1} UserObjs {2} dif {3} {4}", gdiObjects + userObjects, gdiObjects, userObjects,(int)userObjects - (int)lastUserObject, string.Format(str, objects));
|
||||
lastUserObject = userObjects;
|
||||
//return Convert.ToInt32(gdiObjects + userObjects);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
class AlphabeticalNumbering
|
||||
{
|
||||
//private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private static string Letter(int number)
|
||||
{
|
||||
char c = (char)(number + 64);
|
||||
return c.ToString();
|
||||
}
|
||||
public static string Convert(int number)
|
||||
{
|
||||
string retval=string.Empty;
|
||||
if (number > 26) retval += Letter((number-1) / 26);
|
||||
retval += Letter(1 + ((number-1) % 26));
|
||||
return retval;
|
||||
}
|
||||
//private static int[] _TestLetters = new int[] {
|
||||
// 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,
|
||||
// 52,53,78,79,104,105
|
||||
// };
|
||||
//public static void ShowLetters()
|
||||
//{
|
||||
// for (int i = 0; i < _TestLetters.Length; i++)
|
||||
// {
|
||||
// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0},{1}", _TestLetters[i], Convert(_TestLetters[i]));
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,11 @@
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Base.Library;
|
||||
using Volian.Pipe.Library;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
@@ -64,14 +59,14 @@ namespace Volian.Controls.Library
|
||||
AddAttribute(xe, "Text", myItemInfo.DisplayText);
|
||||
_ProcList.DocumentElement.AppendChild(xe);
|
||||
|
||||
if (myItemInfo.Cautions != null) foreach (StepInfo caui in myItemInfo.Cautions) AddItem(myItemInfo.ItemID, caui);
|
||||
if (myItemInfo.Notes != null) foreach (StepInfo noti in myItemInfo.Notes) AddItem(myItemInfo.ItemID, noti);
|
||||
if (myItemInfo.RNOs != null) foreach (StepInfo rnoi in myItemInfo.RNOs) AddItem(myItemInfo.ItemID, rnoi);
|
||||
if (myItemInfo.Sections != null) foreach (SectionInfo seci in myItemInfo.Sections) AddItem(myItemInfo.ItemID, seci);
|
||||
if (myItemInfo.Cautions != null) foreach (StepInfo caui in myItemInfo.Cautions.OfType<StepInfo>()) AddItem(myItemInfo.ItemID, caui);
|
||||
if (myItemInfo.Notes != null) foreach (StepInfo noti in myItemInfo.Notes.OfType<StepInfo>()) AddItem(myItemInfo.ItemID, noti);
|
||||
if (myItemInfo.RNOs != null) foreach (StepInfo rnoi in myItemInfo.RNOs.OfType<StepInfo>()) AddItem(myItemInfo.ItemID, rnoi);
|
||||
if (myItemInfo.Sections != null) foreach (SectionInfo seci in myItemInfo.Sections.OfType<SectionInfo>()) AddItem(myItemInfo.ItemID, seci);
|
||||
if (myItemInfo.Steps != null)
|
||||
{
|
||||
if(myItemInfo.IsSection || (myItemInfo.IsHigh && SubStepHasRNOs(myItemInfo.Steps)))
|
||||
foreach (StepInfo stpi in myItemInfo.Steps) AddItem(myItemInfo.ItemID, stpi);
|
||||
foreach (StepInfo stpi in myItemInfo.Steps.OfType<StepInfo>()) AddItem(myItemInfo.ItemID, stpi);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -102,7 +97,6 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
_CurrentItem = value;
|
||||
SetupCurrentItemValues();
|
||||
SetupConfigEdit();
|
||||
// B2017-126 Only turn-on NamedPipe if Command Line parameter /NamedPipe is used.
|
||||
// This eliminates waiting for the Pipe if the command line parameter is not used.
|
||||
if (ExeType > 0 && Volian.Base.Library.VlnSettings.GetCommandFlag("NamedPipe")) SendPromsAnnotationData();
|
||||
@@ -130,10 +124,7 @@ namespace Volian.Controls.Library
|
||||
if (ai.TypeID == ExeType) return ai;
|
||||
return null;
|
||||
}
|
||||
private void SetupConfigEdit()
|
||||
{
|
||||
//if (ExeType == 0) ; // initialize ExeType
|
||||
}
|
||||
|
||||
private string _ExePath;
|
||||
private string _PipeOut;
|
||||
private string _PipeIn;
|
||||
@@ -256,9 +247,6 @@ namespace Volian.Controls.Library
|
||||
public AnnotationDetails()
|
||||
{
|
||||
InitializeComponent();
|
||||
//#if(DEBUG)
|
||||
//Resize+=new EventHandler(AnnotationDetails_Resize); // Debug the resize event
|
||||
//#endif
|
||||
Resize += AnnotationDetails_Resize;
|
||||
}
|
||||
|
||||
@@ -284,17 +272,12 @@ namespace Volian.Controls.Library
|
||||
// CSM B2024-068 / B2024-069 - check if current annotation is not selected before removal of annotation
|
||||
if (CurrentAnnotation != null)
|
||||
{
|
||||
//using (Annotation annotation = CurrentAnnotation.Get())
|
||||
//{
|
||||
// annotation.Delete();
|
||||
_AnnotationSearch.LoadingList = true;
|
||||
Annotation.DeleteAnnotation(CurrentAnnotation);
|
||||
// annotation.Save();
|
||||
_AnnotationSearch.LoadingList = false;
|
||||
CurrentAnnotation = null;
|
||||
UpdateAnnotationGrid();
|
||||
_AnnotationSearch.UpdateAnnotationSearchResults(); // B2019-004: update search results list when an annotation is removed.
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -425,14 +408,6 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckClientProcess()
|
||||
{
|
||||
if (ClientProcess.HasExited)
|
||||
{
|
||||
ClientProcess = null;
|
||||
StartClientProcess();
|
||||
}
|
||||
}
|
||||
void ClientProcess_Exited(object sender, EventArgs e)
|
||||
{
|
||||
ClientProcess = null;
|
||||
@@ -477,7 +452,6 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
XmlDocument xdConfig = new XmlDocument();
|
||||
xdConfig.LoadXml(ai.Config);
|
||||
ProcedureInfo currentProc = CurrentItem.MyProcedure;
|
||||
XmlNode nd = xdMessage.DocumentElement.SelectSingleNode("//PromsAnnotationConfig");
|
||||
nd.AppendChild(xdMessage.ImportNode(xdConfig.DocumentElement, true));
|
||||
}
|
||||
@@ -595,7 +569,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
private XmlNode GetNode(XmlDocument xd, string nodeName)
|
||||
{
|
||||
return xd.DocumentElement.SelectSingleNode("//" + nodeName);
|
||||
return xd.DocumentElement.SelectSingleNode($"//{nodeName}");
|
||||
}
|
||||
private string GetAttribute(XmlDocument xd, string nodeName, string attrName)
|
||||
{
|
||||
@@ -670,7 +644,7 @@ namespace Volian.Controls.Library
|
||||
if (!_LoadingGrid && (dgAnnotations.FirstDisplayedScrollingRowIndex != -1))
|
||||
dgAnnotations.FirstDisplayedScrollingRowIndex = row;
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
_MyLog.InfoFormat("Trying to open an annotation which has been removed");
|
||||
}
|
||||
@@ -692,8 +666,6 @@ namespace Volian.Controls.Library
|
||||
using (Annotation annotation = Annotation.MakeAnnotation(myItem, annotationType, rtxbComment.Rtf, rtxbComment.Text, ""))
|
||||
{
|
||||
CurrentAnnotation = AnnotationInfo.Get(annotation.AnnotationID);
|
||||
//annotation.DTS = DateTime.Now;
|
||||
//annotation.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -724,7 +696,7 @@ namespace Volian.Controls.Library
|
||||
private void btnEPAnnotation_Click(object sender, EventArgs e)
|
||||
{
|
||||
frmEPAnnotationDetails EPfrm = new frmEPAnnotationDetails(CurrentAnnotation);
|
||||
DialogResult dr = EPfrm.ShowDialog(this);
|
||||
_ = EPfrm.ShowDialog(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
@@ -11,17 +8,9 @@ namespace Volian.Controls.Library
|
||||
public partial class BorderListBox : ListBox
|
||||
{
|
||||
#region Properties
|
||||
public GridLinePattern SelectedLinePattern
|
||||
{
|
||||
get { return (Items[SelectedIndex] as GridLBItem).LinePattern; }
|
||||
}
|
||||
public GridLinePattern SelectedLinePattern => (Items[SelectedIndex] as GridLBItem).LinePattern;
|
||||
#endregion
|
||||
#region ctor
|
||||
public BorderListBox()
|
||||
{
|
||||
InitializeComponent();
|
||||
SetupOptions();
|
||||
}
|
||||
public BorderListBox(IContainer container)
|
||||
{
|
||||
container.Add(this);
|
||||
@@ -31,9 +20,7 @@ namespace Volian.Controls.Library
|
||||
private void SetupOptions()
|
||||
{
|
||||
this.DrawMode = DrawMode.OwnerDrawFixed;
|
||||
//this.Font.Size;
|
||||
DrawItem += new DrawItemEventHandler(BorderListBox_DrawItem);
|
||||
//MeasureItem += new MeasureItemEventHandler(BorderListBox_MeasureItem);
|
||||
Items.Add(new GridLBItem(GridLinePattern.None));
|
||||
Items.Add(new GridLBItem(GridLinePattern.Single));
|
||||
Items.Add(new GridLBItem(GridLinePattern.Double));
|
||||
@@ -55,10 +42,6 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
#endregion
|
||||
#region Event Handlers
|
||||
//void BorderListBox_MeasureItem(object sender, MeasureItemEventArgs e)
|
||||
//{
|
||||
// e.ItemHeight = 22;
|
||||
//}
|
||||
private int _MaxLabelWidth = 0;
|
||||
private int MaxLabelWidth(Graphics gr)
|
||||
{
|
||||
@@ -103,24 +86,13 @@ namespace Volian.Controls.Library
|
||||
public class GridLBItem
|
||||
{
|
||||
#region Properties
|
||||
private GridLinePattern _LinePattern;
|
||||
public GridLinePattern LinePattern
|
||||
{
|
||||
get { return _LinePattern; }
|
||||
set { _LinePattern = value; }
|
||||
}
|
||||
public GridLinePattern LinePattern { get; set; }
|
||||
#endregion
|
||||
#region ctor
|
||||
public GridLBItem(GridLinePattern linePattern)
|
||||
{
|
||||
LinePattern = linePattern;
|
||||
}
|
||||
public GridLBItem(GridLinePattern linePattern) => LinePattern = linePattern;
|
||||
#endregion
|
||||
#region Public Methods
|
||||
public override string ToString()
|
||||
{
|
||||
return LinePattern.ToString();
|
||||
}
|
||||
public override string ToString() => LinePattern.ToString();
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing;
|
||||
using C1.Win.C1FlexGrid;
|
||||
@@ -16,7 +13,7 @@ namespace Volian.Controls.Library
|
||||
public event BorderSelectionPanelEvent BordersChanged;
|
||||
private void OnBordersChanged(object sender, EventArgs args)
|
||||
{
|
||||
if (BordersChanged != null) BordersChanged(sender, args);
|
||||
BordersChanged?.Invoke(sender, args);
|
||||
}
|
||||
#endregion
|
||||
#region Properties
|
||||
@@ -155,8 +152,6 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
public void InitializeBorder(VlnFlexGrid myFlexGrid, CellRange myRange)
|
||||
{
|
||||
//if (myRange.r1 == 0 && myRange.c1 == 0 && myRange.r2 == 2 && myRange.c2 == 2)
|
||||
//Console.WriteLine("here");
|
||||
_TopBorder = GridLinePattern.Unknown;
|
||||
_InsideHorizontalBorder = GridLinePattern.Unknown;
|
||||
_BottomBorder = GridLinePattern.Unknown;
|
||||
@@ -249,18 +244,11 @@ namespace Volian.Controls.Library
|
||||
DrawBackground(e, x1, y1, x2, y2, w1, h1, w2, h2, offset, HasRows, HasColumns);
|
||||
DrawBorder(e, x1, y1, x2, y2);
|
||||
}
|
||||
#pragma warning disable IDE0060 // Remove unused parameter
|
||||
private static void DrawBackground(PaintEventArgs e, int x1, int y1, int x2, int y2, int w1, int h1, int w2, int h2, int offset,bool hasRows, bool hasColumns)
|
||||
#pragma warning restore IDE0060 // Remove unused parameter
|
||||
{
|
||||
e.Graphics.FillRectangle(Brushes.White, offset, offset, w2 - 2* offset, h2 - 2* offset);
|
||||
// Old Backgound - Shows corners
|
||||
//e.Graphics.DrawLine(Pens.LightBlue, x1, offset, x1, y1);
|
||||
//e.Graphics.DrawLine(Pens.LightBlue, x2, offset, x2, y1);
|
||||
//e.Graphics.DrawLine(Pens.LightBlue, x1, y2, x1, h2 - offset);
|
||||
//e.Graphics.DrawLine(Pens.LightBlue, x2, y2, x2, h2 - offset);
|
||||
//e.Graphics.DrawLine(Pens.LightBlue, offset, y1, x1, y1);
|
||||
//e.Graphics.DrawLine(Pens.LightBlue, x2, y1, w2 - offset, y1);
|
||||
//e.Graphics.DrawLine(Pens.LightBlue, offset, y2, x1, y2);
|
||||
//e.Graphics.DrawLine(Pens.LightBlue, x2, y2, w2 - offset, y2);
|
||||
// Horizontal Lines
|
||||
e.Graphics.DrawLine(Pens.LightBlue, offset, y1, w2 - offset, y1);
|
||||
if (hasRows) e.Graphics.DrawLine(Pens.LightBlue, x1 + offset, (y1 + y2) / 2, x2 - offset , (y1 + y2) / 2);
|
||||
@@ -287,8 +275,8 @@ namespace Volian.Controls.Library
|
||||
if (LineWidth(linePattern) == 3)
|
||||
{
|
||||
dxo2 = dxo1 = -1;
|
||||
dyi2 = dyo1 = LineWidth(startPattern) == 3 ? -1 : 0;
|
||||
dyi1 =dyo2 = LineWidth(endPattern) == 3 ? 1 : 0;
|
||||
dyo1 = LineWidth(startPattern) == 3 ? -1 : 0;
|
||||
dyo2 = LineWidth(endPattern) == 3 ? 1 : 0;
|
||||
dxi1 = -dxo1; dxi2 = -dxo2; dyi1 = -dyo1; dyi2 = -dyo2;
|
||||
if (linePattern == GridLinePattern.Thick) dyo2++; // Fix for bug in Graphics. Seems to happen when line is thick.
|
||||
}
|
||||
@@ -303,8 +291,8 @@ namespace Volian.Controls.Library
|
||||
if (LineWidth(linePattern) == 3)
|
||||
{
|
||||
dyo2 = dyo1 = 1;
|
||||
dxi2 = dxo1 = LineWidth(startPattern) == 3 ? -1 : 0;
|
||||
dxi1 = dxo2 = LineWidth(endPattern) == 3 ? 1 : 0;
|
||||
dxo1 = LineWidth(startPattern) == 3 ? -1 : 0;
|
||||
dxo2 = LineWidth(endPattern) == 3 ? 1 : 0;
|
||||
dxi1 = -dxo1;dxi2 = -dxo2;dyi1 = -dyo1;dyi2 = -dyo2;
|
||||
if (linePattern == GridLinePattern.Thick) dxo2++; // Fix for bug in Graphics. Seems to happen when line is thick.
|
||||
}
|
||||
@@ -347,7 +335,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
if (linePattern == GridLinePattern.None) return;
|
||||
int dyi1 = 0; int dyi2 = 0; int dxi1 = 0; int dxi2 = 0;
|
||||
int dyo1 = 0; int dyo2 = 0; int dxo1 = 0; int dxo2 = 0;
|
||||
int dyo1; int dyo2; int dxo1 = 0; int dxo2 = 0;
|
||||
if (LineWidth(linePattern) == 3)
|
||||
{
|
||||
dxo2 = dxo1 = 1;
|
||||
@@ -368,7 +356,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
if (linePattern == GridLinePattern.None) return;
|
||||
int dyi1 = 0; int dyi2 = 0; int dxi1 = 0; int dxi2 = 0;
|
||||
int dyo1 = 0; int dyo2 = 0; int dxo1 = 0; int dxo2 = 0;
|
||||
int dyo1 = 0; int dyo2 = 0; int dxo1; int dxo2;
|
||||
if (LineWidth(linePattern) == 3)
|
||||
{
|
||||
dyo2 = dyo1 = -1;
|
||||
|
||||
@@ -1,33 +1,24 @@
|
||||
using C1.Win.C1FlexGrid;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Controls.Library;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
public partial class frmImportWordContents : Form
|
||||
{
|
||||
private static string GetTableText()
|
||||
{
|
||||
return TblFlexGrid.GetSearchableText();
|
||||
}
|
||||
private static VlnFlexGrid _TblFlexGrid = null;
|
||||
|
||||
public static VlnFlexGrid TblFlexGrid
|
||||
{
|
||||
get {
|
||||
if (_TblFlexGrid == null) _TblFlexGrid = new VlnFlexGrid();
|
||||
return frmImportWordContents._TblFlexGrid;
|
||||
return _TblFlexGrid;
|
||||
}
|
||||
set { frmImportWordContents._TblFlexGrid = value; }
|
||||
set { _TblFlexGrid = value; }
|
||||
}
|
||||
|
||||
private static void LoadTable2(XmlNode xn)
|
||||
@@ -54,15 +45,7 @@ namespace Volian.Controls.Library
|
||||
fg.BringToFront();
|
||||
fg.Invalidate();
|
||||
Application.DoEvents();
|
||||
//ShowColumnWidths(fg);
|
||||
fg.MakeRTFcells(false);
|
||||
//ShowMergedCells(fg);
|
||||
//ShowColumnWidths(fg);
|
||||
//Well, Can I save the table
|
||||
//using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, {TableContent}, 20008, E_FromType.Table))
|
||||
//{
|
||||
// Grid.MakeGrid(step.MyContent, fg.GetXMLData(), "");
|
||||
//}
|
||||
}
|
||||
public static VlnFlexGrid _MyFlexGrid = null;
|
||||
private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows)
|
||||
@@ -73,14 +56,7 @@ namespace Volian.Controls.Library
|
||||
foreach (XmlNode xc in xr.ChildNodes)
|
||||
{
|
||||
++cols;
|
||||
//if (xc.InnerText.Contains("RC-V200"))
|
||||
// Console.WriteLine(xc.InnerText);
|
||||
//if (xc.InnerText.Contains("RC-V121"))
|
||||
// Console.WriteLine(xc.InnerText);
|
||||
//if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01"))
|
||||
// Console.WriteLine("here");
|
||||
CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
|
||||
//Console.WriteLine("Check {0}", cr2);
|
||||
while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1)
|
||||
{
|
||||
cols++;
|
||||
@@ -123,7 +99,6 @@ namespace Volian.Controls.Library
|
||||
break;
|
||||
}
|
||||
}
|
||||
//ShowMergedCells(fg);
|
||||
if (xc.Name == "td")
|
||||
{
|
||||
AddTableColumn(xc, fg, rows, cols);
|
||||
@@ -131,26 +106,9 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
|
||||
//private static void ShowColumnWidths(VlnFlexGrid fg)
|
||||
//{
|
||||
// foreach (Column c in fg.Cols)
|
||||
// Console.WriteLine("Width[{0}]={1}", c.Index, c.Width);
|
||||
//}
|
||||
private static void ShowMergedCells(VlnFlexGrid fg)
|
||||
{
|
||||
for (int r = 0; r < fg.Rows.Count; r++)
|
||||
{
|
||||
for (int c = 0; c < fg.Cols.Count; c++)
|
||||
{
|
||||
CellRange cr3 = GetMyMergedRange(fg, r, c);
|
||||
if (fg.MergedRanges.Contains(cr3))
|
||||
Console.WriteLine("cr3 r={0},c={1},rng={2}", r, c, cr3);
|
||||
}
|
||||
}
|
||||
}
|
||||
private static int GetSpan(string span)
|
||||
{
|
||||
int retval = int.Parse("0" + (span ?? ""));
|
||||
int retval = int.Parse($"0{span ?? ""}");
|
||||
if (retval == 0) return 0;
|
||||
return retval - 1;
|
||||
}
|
||||
@@ -175,11 +133,13 @@ namespace Volian.Controls.Library
|
||||
if (r2 > fg.Rows.Count) fg.Rows.Count = r2;
|
||||
int c2 = c1 + GetSpan(colspan);
|
||||
if (c2 > fg.Cols.Count) fg.Cols.Count = c2;
|
||||
CellRange cr = new CellRange();
|
||||
cr.r1 = r1 - 1;
|
||||
cr.r2 = r2 - 1;
|
||||
cr.c1 = c1 - 1;
|
||||
cr.c2 = c2 - 1;
|
||||
CellRange cr = new CellRange
|
||||
{
|
||||
r1 = r1 - 1,
|
||||
r2 = r2 - 1,
|
||||
c1 = c1 - 1,
|
||||
c2 = c2 - 1
|
||||
};
|
||||
fg.MergedRanges.Add(cr);
|
||||
//Console.WriteLine("Merged {0}", cr);
|
||||
}
|
||||
@@ -194,7 +154,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
return fg.GetMergedRange(r, c);
|
||||
}
|
||||
private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled);
|
||||
private static readonly Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled);
|
||||
private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols)
|
||||
{
|
||||
//Console.WriteLine("Rows {0}, Cols {1}", rows, cols);
|
||||
@@ -218,7 +178,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
if (xn.Name == "p")
|
||||
{
|
||||
sb.Append(prefix + xn.InnerText);
|
||||
sb.Append($"{prefix}{xn.InnerText}");
|
||||
}
|
||||
if (xn.Name == "ul")
|
||||
{
|
||||
@@ -226,11 +186,11 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
if (xn2.Name == "li")
|
||||
{
|
||||
sb.Append(prefix + "*" + xn.InnerText);
|
||||
sb.Append($"{prefix}*{xn.InnerText}");
|
||||
}
|
||||
if (xn2.Name == "p")
|
||||
{
|
||||
sb.Append(prefix + xn.InnerText);
|
||||
sb.Append($"{prefix}{xn.InnerText}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Controls.Library;
|
||||
using System.Reflection;
|
||||
using LBWordLibrary;
|
||||
using JR.Utils.GUI.Forms;
|
||||
@@ -17,7 +12,7 @@ namespace Volian.Controls.Library
|
||||
public partial class DSOTabPanel : DevComponents.DotNetBar.PanelDockContainer
|
||||
{
|
||||
#region Private Fields
|
||||
private DisplayTabControl _MyDisplayTabControl;
|
||||
private readonly DisplayTabControl _MyDisplayTabControl;
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private AxEDWordLib.AxEDWord _MyEdWord; // B2017-133 Edraw DSO Framer Replacement
|
||||
public AxEDWordLib.AxEDWord MyEdWord
|
||||
@@ -26,9 +21,7 @@ namespace Volian.Controls.Library
|
||||
set { _MyEdWord = value; }
|
||||
}
|
||||
private TransparentPanel _MyTransparentPanel;
|
||||
private static int _Count = 0;
|
||||
private DocumentInfo _MyDocumentInfo;
|
||||
private int _MyCount;
|
||||
private readonly DocumentInfo _MyDocumentInfo;
|
||||
private DisplayTabItem _MyDisplayTabItem;
|
||||
private DSOFile _DSOFile;
|
||||
public static int MSWordLimit = 10;
|
||||
@@ -43,11 +36,7 @@ namespace Volian.Controls.Library
|
||||
/// <summary>
|
||||
/// Count of DSO Pages open. Limited to 18 in DisplayTabControl
|
||||
/// </summary>
|
||||
public static int Count
|
||||
{
|
||||
get { return _Count; }
|
||||
set { _Count = value; }
|
||||
}
|
||||
public static int Count { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Pointer to the related DisplayTabItem
|
||||
/// </summary>
|
||||
@@ -90,23 +79,17 @@ namespace Volian.Controls.Library
|
||||
if (_MyEdWord == null) return false; // B2017-133 Edraw Is Dirty Property
|
||||
// B2017-249 Recover Temporary File And AutoSave support for MSWord
|
||||
return _MyEdWord.IsDirty() || MyDSOFile.ContentIsDirty;
|
||||
//LBDocumentClass doc = new LBDocumentClass(_MyEdWord.ActiveDocument());
|
||||
//return !doc.Saved;
|
||||
}
|
||||
}
|
||||
private bool _OverrideClose = false;
|
||||
public bool OverrideClose
|
||||
{
|
||||
get { return _OverrideClose; }
|
||||
set { _OverrideClose = value; }
|
||||
}
|
||||
|
||||
public bool OverrideClose { get; set; } = false;
|
||||
public E_ViewMode PanelViewEditMode = E_ViewMode.Edit;
|
||||
#endregion
|
||||
//private frmPG _frm = null;
|
||||
#region Constructors
|
||||
private Timer _RefreshTimer;
|
||||
private ItemInfo _ItemInfo;
|
||||
private bool _AllowedToEdit;
|
||||
private readonly Timer _RefreshTimer;
|
||||
private readonly ItemInfo _ItemInfo;
|
||||
private readonly bool _AllowedToEdit;
|
||||
public DSOTabPanel(DocumentInfo documentInfo, DisplayTabControl myDisplayTabControl, ItemInfo itemInfo, bool allowedToEdit)
|
||||
{
|
||||
_MyDisplayTabControl = myDisplayTabControl;
|
||||
@@ -117,8 +100,10 @@ namespace Volian.Controls.Library
|
||||
_MyDocumentInfo = documentInfo;
|
||||
SetupDSO();
|
||||
if (_MyEdWord == null) return; //B2017-219 could not open the word attachment so just return
|
||||
_RefreshTimer = new Timer(); // Enabled is false and interval is 1/10th of second.
|
||||
_RefreshTimer.Interval = 500;// B2017-133 Edraw
|
||||
_RefreshTimer = new Timer
|
||||
{
|
||||
Interval = 500// B2017-133 Edraw
|
||||
}; // Enabled is false and interval is 1/10th of second.
|
||||
ClientSizeChanged += new EventHandler(DSOTabPanel_ClientSizeChanged);
|
||||
_RefreshTimer.Tick += new EventHandler(_RefreshTimer_Tick);
|
||||
// B2018-070 Activate MS Word Panel
|
||||
@@ -145,21 +130,14 @@ namespace Volian.Controls.Library
|
||||
_MyEdWord.DisablePrintHotKey(true);
|
||||
}
|
||||
// B2019-161 When tracking timing time this action
|
||||
private static VolianTimer _TimeActivity = new VolianTimer("DSOTabPanel.cs _RefreshTimer_Tick", 148);
|
||||
private static readonly VolianTimer _TimeActivity = new VolianTimer("DSOTabPanel.cs _RefreshTimer_Tick", 148);
|
||||
|
||||
void _RefreshTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
_TimeActivity.Open();
|
||||
_RefreshTimer.Enabled = false;
|
||||
if (_MyEdWord != null)// B2017-133 Edraw
|
||||
{
|
||||
// B2018-070 Activate MS Word Panel
|
||||
_MyEdWord.GotoItem(EDWordLib.WdGoToItem.wdGoToObject, EDWordLib.WdGoToDirection.wdGoToNext, 0, null);
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// _MyDisplayTabControl.CloseTabItem(_MyDisplayTabItem);
|
||||
//}
|
||||
_MyEdWord?.GotoItem(EDWordLib.WdGoToItem.wdGoToObject, EDWordLib.WdGoToDirection.wdGoToNext, 0, null);
|
||||
_TimeActivity.Close();
|
||||
}
|
||||
|
||||
@@ -180,8 +158,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
private void SetupDSO()
|
||||
{
|
||||
_Count++; // Increment the count of open Word documents (Limit = MSWordLimit)
|
||||
_MyCount = _Count;
|
||||
Count++; // Increment the count of open Word documents (Limit = MSWordLimit)
|
||||
this._MyTransparentPanel = new TransparentPanel();
|
||||
this._MyEdWord = new AxEDWordLib.AxEDWord();// B2017-133 Edraw
|
||||
_MyEdWord.BeginInit();
|
||||
@@ -195,14 +172,8 @@ namespace Volian.Controls.Library
|
||||
this._MyTransparentPanel.Font = new System.Drawing.Font("Tahoma", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this._MyTransparentPanel.ForeColor = System.Drawing.Color.Brown; // This is the color used to show InActive on the right side on the Word
|
||||
// document menu line.
|
||||
//this._MyTransPanel.Location = new System.Drawing.Point(0, 0);
|
||||
//this._MyTransPanel.Name = "transPanel1";
|
||||
//this._MyTransPanel.Size = new System.Drawing.Size(370, 423);
|
||||
//this._MyTransPanel.TabIndex = 1;
|
||||
this._MyTransparentPanel.Click += new EventHandler(_MyTransparentPanel_Click);
|
||||
this._MyEdWord.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
//System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WordDSOTab));
|
||||
//this._DSOFramer.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("_FC.OcxState")));
|
||||
_MyEdWord.EndInit();
|
||||
LBDocumentClass doc;
|
||||
try
|
||||
@@ -215,18 +186,13 @@ namespace Volian.Controls.Library
|
||||
this._MyEdWord.Open(MyDSOFile.MyFile.FullName);
|
||||
doc = new LBDocumentClass(_MyEdWord.ActiveDocument());
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
// B2017-137 Restore Previous valid version if the current version cannot be opened,
|
||||
using (DocumentAuditInfoList dail = DocumentAuditInfoList.Get(MyDocumentInfo.DocID))
|
||||
{
|
||||
if (dail.Count > 0)
|
||||
{
|
||||
//DocumentAuditInfo dai = dail[0];
|
||||
//foreach (DocumentAuditInfo tmpa in dail)
|
||||
//{
|
||||
// if (tmpa.DTS > dai.DTS) dai = tmpa;
|
||||
//}
|
||||
if (MessageBox.Show("Do you want to revert to a previous version?", "Error in MS Word section",
|
||||
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
@@ -239,15 +205,9 @@ namespace Volian.Controls.Library
|
||||
System.IO.FileStream fs = MyDSOFile.MyFile.Create();
|
||||
fs.Write(myDoc.DocContent, 0, myDoc.DocContent.Length);
|
||||
fs.Close();
|
||||
MyDSOFile.SaveFile(0, "", _ItemInfo, false, StatusChanged); // B2017-219 save the restored document to database
|
||||
MyDSOFile.SaveFile("", _ItemInfo, false, StatusChanged); // B2017-219 save the restored document to database
|
||||
this._MyEdWord = null; // B2017-219 Set MyEdWord to null - we will check for this in the calling functions
|
||||
return;
|
||||
//_MyDocumentInfo = DocumentInfo.Get(MyDocumentInfo.DocID);
|
||||
//DocumentInfo.Refresh(myDoc);
|
||||
////_DSOFile = null;
|
||||
//this._MyEdWord.Open(MyDSOFile.MyFile.FullName);
|
||||
//doc = new LBDocumentClass(_MyEdWord.ActiveDocument());
|
||||
//doc.Range(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,7 +216,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
System.IO.FileStream fs = MyDSOFile.MyFile.Create();
|
||||
fs.Close();
|
||||
MyDSOFile.SaveFile(0, "", _ItemInfo, false, StatusChanged); // B2017-219 save the blank document to database
|
||||
MyDSOFile.SaveFile("", _ItemInfo, false, StatusChanged); // B2017-219 save the blank document to database
|
||||
MessageBox.Show("Reverting to Blank Document", "Error in MS Word section",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
this._MyEdWord = null; // B2017-219 Set MyEdWord to null - we will check for this in the calling functions
|
||||
@@ -267,19 +227,16 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
doc = new LBDocumentClass(_MyEdWord.ActiveDocument());
|
||||
//Console.WriteLine("Version {0}", doc.Application.Version);
|
||||
float ver;
|
||||
if (!float.TryParse(doc.Application.Version, out ver))
|
||||
if (!float.TryParse(doc.Application.Version, out float ver))
|
||||
ver = 12.0F;
|
||||
this.Enter += new EventHandler(DSOTabPanel_Enter);
|
||||
// B2018-070 Use InDSOTabPanel to determine if the word panel should be activated - Activate MS Word Panel
|
||||
this.Leave += DSOTabPanel_Leave;
|
||||
Application.DoEvents();
|
||||
// The following line corrects Symbol characters in MSWord Sections
|
||||
// CheckForSymbolCharacters(doc);
|
||||
InitializeWordDocument(doc);
|
||||
FindSearchString();
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
//string message = ShowException(ex);
|
||||
//Console.WriteLine("\r\n-------------\r\n{0}{1}{2}\r\n-------------\r\n", MyDSOFile.MyFile.FullName, ex.GetType().Name, message);
|
||||
@@ -301,8 +258,6 @@ namespace Volian.Controls.Library
|
||||
DocStyle ds = MyDocumentInfo.DocumentEntries[0].MyContent.ContentItems[0].MyDocStyle;
|
||||
// this will cause an error and goto the Catch if the family or size is null,
|
||||
// Westinghouse needs it to to this - at least for now
|
||||
//if (ds.Font.Family != null) doc.Application.Selection.Font.Name = ds.Font.Family;
|
||||
//if (ds.Font.Size != null) doc.Application.Selection.Font.Size = (float)ds.Font.Size;
|
||||
doc.Application.Selection.Font.Name = ds.Font.Family;
|
||||
doc.Application.Selection.Font.Size = (float)ds.Font.Size;
|
||||
doc.Application.Selection.ParagraphFormat.SpaceBefore = 0;
|
||||
@@ -314,12 +269,12 @@ namespace Volian.Controls.Library
|
||||
if (doc.ActiveWindow.ActivePane.View.Zoom.Percentage < 40)
|
||||
doc.ActiveWindow.ActivePane.View.Zoom.Percentage = 100;
|
||||
}
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value", Justification = "found set for debugging purposes")]
|
||||
public void FindSearchString()
|
||||
{
|
||||
if (SearchString == null) return;
|
||||
// Get the Document
|
||||
LBDocumentClass wordDoc = new LBDocumentClass(_MyEdWord.ActiveDocument());
|
||||
//LBSelection sel = wordDoc.Application.Selection;
|
||||
LBFind find = wordDoc.Application.Selection.Find;
|
||||
find.ClearFormatting();
|
||||
bool wildCards = SearchString.Contains("?") || SearchString.Contains("*");
|
||||
@@ -350,51 +305,10 @@ namespace Volian.Controls.Library
|
||||
if (sel.Start == sel.End) return null;
|
||||
return sel.Text;
|
||||
}
|
||||
|
||||
private string ShowException(Exception ex)
|
||||
{
|
||||
string sep = "\r\n ";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
do
|
||||
{
|
||||
sb.Append(sep + ex.Message);
|
||||
sep += " ";
|
||||
ex = ex.InnerException;
|
||||
} while (ex != null);
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
//void _MyDSOFramer_Leave(object sender, EventArgs e)
|
||||
//{
|
||||
// vlnStackTrace.ShowStack("DSO Leave {0}", this.MyDocumentInfo.DocID);
|
||||
//}
|
||||
|
||||
//void _MyDSOFramer_Enter(object sender, EventArgs e)
|
||||
//{
|
||||
// vlnStackTrace.ShowStack("DSO Enter {0}", this.MyDocumentInfo.DocID);
|
||||
//}
|
||||
|
||||
//void _MyDSOFramer_GotFocus(object sender, EventArgs e)
|
||||
//{
|
||||
// vlnStackTrace.ShowStack("DSO Got Focus {0}",this.MyDocumentInfo.DocID);
|
||||
//}
|
||||
|
||||
//void _MyDSOFramer_LostFocus(object sender, EventArgs e)
|
||||
//{
|
||||
// vlnStackTrace.ShowStack("DSO Lost Focus {0}", this.MyDocumentInfo.DocID);
|
||||
//}
|
||||
public void EnterPanel()
|
||||
{
|
||||
DSOTabPanel_Enter(this, new EventArgs());
|
||||
}
|
||||
//void DSOTabPanel_LostFocus(object sender, EventArgs e)
|
||||
//{
|
||||
// vlnStackTrace.ShowStack("DSOTabPanel_LostFocus {0} DocID {1} Index {2} {3}", _In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName);
|
||||
//}
|
||||
//void DSOTabPanel_GotFocus(object sender, EventArgs e)
|
||||
//{
|
||||
// vlnStackTrace.ShowStack("DSOTabPanel_GotFocus {0} DocID {1} Index {2} {3}", _In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName);
|
||||
//}
|
||||
#endregion
|
||||
#region Event Handlers
|
||||
/// <summary>
|
||||
@@ -415,29 +329,16 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
this.Select();
|
||||
}
|
||||
///// <summary>
|
||||
///// If the user presses the save button, tell the file to save it's contents to the database
|
||||
///// </summary>
|
||||
///// <param name="sender"></param>
|
||||
///// <param name="e"></param>
|
||||
//void _MyDSOFramer_OnSaveCompleted(object sender, AxDSOFramer._DFramerCtlEvents_OnSaveCompletedEvent e)
|
||||
//{
|
||||
// _MyLog.WarnFormat("_MyDSOFramer_OnSaveCompleted");
|
||||
// Volian.Base.Library.vlnStackTrace.ShowStack("_MyDSOFramer_OnSaveCompleted");
|
||||
// SaveDSO_Phase2();
|
||||
//}
|
||||
|
||||
private void SaveDSO_Phase2()
|
||||
{
|
||||
// Unfortunately, the only way to handle view mode for DSO Framer is to not save.
|
||||
if (PanelViewEditMode == E_ViewMode.View)
|
||||
{
|
||||
MessageBox.Show("Currently in VIEW mode,\r\n cannot Save " + _MyDisplayTabItem.Tooltip);
|
||||
MessageBox.Show($"Currently in VIEW mode,\r\n cannot Save {_MyDisplayTabItem.Tooltip}");
|
||||
return;
|
||||
}
|
||||
LBDocumentClass doc = new LBDocumentClass(_MyEdWord.ActiveDocument());
|
||||
//while (doc.Saved = false)
|
||||
// Application.DoEvents();
|
||||
string tmp = GetReflectiveProperty(_MyEdWord.ActiveDocument(), "FullName");
|
||||
if (System.IO.File.Exists(tmp))
|
||||
MyDSOFile.FullName = tmp;
|
||||
@@ -451,15 +352,12 @@ namespace Volian.Controls.Library
|
||||
if (myei != null && myei.MyDocument != null && myei.MyDocument.LibTitle != null && myei.MyDocument.LibTitle != "")
|
||||
{
|
||||
// C2019-033 - make save options more clear with respect to library documents
|
||||
string msgstr = "Save to Library Document?" +
|
||||
"\n\n YES - Save for all usages of this Library Document." +
|
||||
"\n\n NO - Unlink this Section from the Library Document and Save in this Word Section.\n\n" +
|
||||
_MyDocumentInfo.LibraryDocumentUsageAll;
|
||||
string msgstr = $"Save to Library Document?\n\n YES - Save for all usages of this Library Document.\n\n NO - Unlink this Section from the Library Document and Save in this Word Section.\n\n{_MyDocumentInfo.LibraryDocumentUsageAll}";
|
||||
DialogResult ans = FlexibleMessageBox.Show(msgstr, "Document Save", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||||
if (ans == DialogResult.No) cvtLibDoc = true;
|
||||
}
|
||||
}
|
||||
MyDSOFile.SaveFile(doc.Length, doc.Ascii, MyDisplayTabItem.MyItemInfo, cvtLibDoc, StatusChanged);
|
||||
MyDSOFile.SaveFile(doc.Ascii, MyDisplayTabItem.MyItemInfo, cvtLibDoc, StatusChanged);
|
||||
if (cvtLibDoc)
|
||||
{
|
||||
MyDisplayTabItem.Text = MyDisplayTabItem.MyItemInfo.TabTitle;
|
||||
@@ -475,16 +373,6 @@ namespace Volian.Controls.Library
|
||||
tc.ONStatusChanged(this, new DisplayTabControlStatusEventArgs(type, count, text));
|
||||
}
|
||||
}
|
||||
///// <summary>
|
||||
///// Before a document closes check to see if it's contents should be saved.
|
||||
///// </summary>
|
||||
///// <param name="sender"></param>
|
||||
///// <param name="e"></param>
|
||||
//void _MyDSOFramer_BeforeDocumentClosed(object sender, AxDSOFramer._DFramerCtlEvents_BeforeDocumentClosedEvent e)
|
||||
//{
|
||||
// SaveDSOPhase1();
|
||||
//}
|
||||
|
||||
private void SaveDSO_Phase1()
|
||||
{
|
||||
try
|
||||
@@ -494,7 +382,6 @@ namespace Volian.Controls.Library
|
||||
this.Enter -= new EventHandler(DSOTabPanel_Enter);
|
||||
// B2018-070 Use InDSOTabPanel to determine if the word panel should be activated - Activate MS Word Panel
|
||||
this.Leave -= DSOTabPanel_Leave;
|
||||
// SaveDirty(); // SaveDirty happens in CloseDSO(bool)
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -514,11 +401,6 @@ namespace Volian.Controls.Library
|
||||
bool stat = _MyEdWord.Save();// B2017-133 Edraw
|
||||
//Console.WriteLine("Save = {0}", stat);
|
||||
SaveDSO_Phase2();
|
||||
//_MyDSOFramer_OnSaveCompleted(this, null);
|
||||
// These are handled in the method above
|
||||
//LBDocumentClass doc = new LBDocumentClass(_MyDSOFramer.ActiveDocument);
|
||||
//MyDSOFile.FullName = GetReflectiveProperty(_MyDSOFramer.ActiveDocument, "FullName");
|
||||
//MyDSOFile.SaveFile(doc.Length, doc.Ascii);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -543,13 +425,12 @@ namespace Volian.Controls.Library
|
||||
// Unfortunately, the only way to handle view mode for DSO Framer is to not save.
|
||||
if (PanelViewEditMode == E_ViewMode.View || !_AllowedToEdit)
|
||||
{
|
||||
MessageBox.Show("Currently in VIEW mode,\r\n cannot Save " + _MyDisplayTabItem.Tooltip);
|
||||
MessageBox.Show($"Currently in VIEW mode,\r\n cannot Save {_MyDisplayTabItem.Tooltip}");
|
||||
return false;
|
||||
}
|
||||
//if (MessageBox.Show("Save changes to " + _MyDisplayTabItem.MyItemInfo.TabTitle + "\r\n" + _MyDisplayTabItem.MyItemInfo.TabToolTip, "Document has Changed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
// B2017-249 Recover Temporary File And AutoSave support for MSWord
|
||||
// C2019-033 - make save options more clear with respect to library documents second dialog will appear if Yes is selected and it's a library document
|
||||
string msgstr = "Save changes to " + (MyDSOFile.MyDocument.ContentIsDirty ? "Recovered Version of " : "") + _MyDisplayTabItem.Text;
|
||||
string msgstr = $"Save changes to {(MyDSOFile.MyDocument.ContentIsDirty ? "Recovered Version of " : "")}{_MyDisplayTabItem.Text}";
|
||||
if (FlexibleMessageBox.Show(msgstr, (IsDirty ? "Document has Changed" : "Previous Changes were not Saved"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
return SaveDSO();
|
||||
//Console.WriteLine("Delete {0}", MyDSOFile.MyFile.Name);
|
||||
@@ -595,15 +476,6 @@ namespace Volian.Controls.Library
|
||||
StepTabPanel stpanel = _MyDisplayTabControl.GetProcedureTabPanel(MyDisplayTabItem.MyItemInfo);
|
||||
PanelViewEditMode = (stpanel == null) ? E_ViewMode.Edit : stpanel.MyStepPanel.VwMode;
|
||||
}
|
||||
try
|
||||
{
|
||||
//_MyDSOFramer.EventsEnabled = true;
|
||||
//_MyEdWord.FrameHookPolicy = DSOFramer.dsoFrameHookPolicy.dsoResetNow;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (_MyLog.IsErrorEnabled) _MyLog.ErrorFormat("DSOTabPage_Enter", ex);
|
||||
}
|
||||
if (_In_DSOTabPanel_Enter) return;
|
||||
//vlnStackTrace.ShowStack("DSOTabPanel_Enter {0} DocID {1} Index {2} {3}",_In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName);
|
||||
_In_DSOTabPanel_Enter = true;
|
||||
@@ -636,15 +508,6 @@ namespace Volian.Controls.Library
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool CloseDSO()
|
||||
{
|
||||
return CloseDSO(false);
|
||||
}
|
||||
/// <summary>
|
||||
/// Cleans-up the DSO Framer window
|
||||
/// </summary>
|
||||
/// <param name="force"></param>
|
||||
/// <returns></returns>
|
||||
public bool CloseDSO(bool force)
|
||||
{
|
||||
_MyLog.Debug("CloseDSO");
|
||||
bool result = true;
|
||||
@@ -660,38 +523,21 @@ namespace Volian.Controls.Library
|
||||
_MyEdWord = null;
|
||||
// B2017-249 Recover Temporary File And AutoSave support for MSWord
|
||||
if (DeleteOnClose) MyDSOFile.MyFile.Delete();
|
||||
_Count--;
|
||||
Count--;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (_MyLog.IsErrorEnabled) _MyLog.Error("SaveDSO - " + this.Name, ex);
|
||||
if (_MyLog.IsErrorEnabled) _MyLog.Error($"SaveDSO - {this.Name}", ex);
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// Activates the current DSO Framer window (Word)
|
||||
/// </summary>
|
||||
public void Activate()
|
||||
{
|
||||
try
|
||||
{
|
||||
//this._MyEdWord.Activate();
|
||||
//if (_MyCount <= MSWordLimit)
|
||||
// this._MyEdWord.FrameHookPolicy = DSOFramer.dsoFrameHookPolicy.dsoResetNow;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (_MyLog.IsErrorEnabled) _MyLog.Error("Activate", ex);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region DocumentProperties
|
||||
|
||||
private string GetReflectiveProperty(object objectToInspect, string propertyName)
|
||||
{
|
||||
string returnString = "";
|
||||
//To use reflection on an object, you
|
||||
// first need to get an instance
|
||||
// of that object's type.
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
using JR.Utils.GUI.Forms;
|
||||
using log4net.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
@@ -18,8 +16,7 @@ namespace Volian.Controls.Library
|
||||
public event DisplayApplicabilityEvent ApplicabilityViewModeChanged;
|
||||
private void OnApplicabilityViewModeChanged()
|
||||
{
|
||||
if (ApplicabilityViewModeChanged != null)
|
||||
ApplicabilityViewModeChanged(this, new EventArgs());
|
||||
ApplicabilityViewModeChanged?.Invoke(this, new EventArgs());
|
||||
}
|
||||
|
||||
private DisplayTabItem _MyDisplayTabItem = null;
|
||||
@@ -104,9 +101,9 @@ namespace Volian.Controls.Library
|
||||
Location = new System.Drawing.Point(0, 49),
|
||||
Margin = new System.Windows.Forms.Padding(4),
|
||||
Name = "gpSubItem",
|
||||
Padding = new System.Windows.Forms.Padding(13, 12, 13, 37)
|
||||
Padding = new System.Windows.Forms.Padding(13, 12, 13, 37),
|
||||
BackColor = Color.Transparent
|
||||
};
|
||||
gpSubItem.BackColor = Color.Transparent;
|
||||
gpSubItem.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
|
||||
gpSubItem.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
gpSubItem.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
|
||||
@@ -118,7 +115,9 @@ namespace Volian.Controls.Library
|
||||
gpSubItem.Size = new System.Drawing.Size(400, 250);
|
||||
return gpSubItem;
|
||||
}
|
||||
#pragma warning disable IDE0044 // Add readonly modifier
|
||||
private Dictionary<int, CheckBox> MyCheckBoxes = new Dictionary<int, CheckBox>();
|
||||
#pragma warning restore IDE0044 // Add readonly modifier
|
||||
private string _MyApplicability = string.Empty;
|
||||
public string MyApplicability
|
||||
{
|
||||
@@ -132,14 +131,16 @@ namespace Volian.Controls.Library
|
||||
|
||||
private void AddItemMode(string name, string value, ref DevComponents.DotNetBar.Controls.GroupPanel gpSubItem)
|
||||
{
|
||||
CheckBox cb = new CheckBox();
|
||||
cb.BackColor = Color.Transparent;
|
||||
cb.Height = 24;
|
||||
cb.Width = 75;
|
||||
cb.AutoSize = true;
|
||||
cb.Text = name;
|
||||
cb.Tag = value;
|
||||
cb.Dock = DockStyle.Top;
|
||||
CheckBox cb = new CheckBox
|
||||
{
|
||||
BackColor = Color.Transparent,
|
||||
Height = 24,
|
||||
Width = 75,
|
||||
AutoSize = true,
|
||||
Text = name,
|
||||
Tag = value,
|
||||
Dock = DockStyle.Top
|
||||
};
|
||||
gpSubItem.Controls.Add(cb);
|
||||
cb.BringToFront();
|
||||
cb.CheckedChanged += new EventHandler(cb_CheckedChanged);
|
||||
@@ -219,7 +220,7 @@ namespace Volian.Controls.Library
|
||||
List<InvalidTransition> invalidTrans = WillTransitionsBeValidCommand.Execute(MyItemInfo.ItemID, MyApplicability);
|
||||
// B2021-149: for Procedure level PC/PC, continue processing if all 'invalid' transitions are internal (query used
|
||||
// return internal and external for the procedure level)
|
||||
if ((!MyItemInfo.IsProcedure && invalidTrans.Count == 0) || IsProcWithNoExternalTrans(MyItemInfo, invalidTrans))
|
||||
if ((!MyItemInfo.IsProcedure && invalidTrans.Count == 0) || IsProcWithNoExternalTrans(invalidTrans))
|
||||
{
|
||||
// C2021 - 027: Procedure level PC/PC
|
||||
if (MyItemInfo.IsProcedure && MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ProcAppl)
|
||||
@@ -279,7 +280,7 @@ namespace Volian.Controls.Library
|
||||
|
||||
// C2026-023: Check for Transitions when setting Applicability to all for a level
|
||||
List<InvalidTransition> invalidTrans = WillTransitionsBeValidCommand.Execute(startitm.ItemID, MasterSlave_ApplicabilityTmp.ToString());
|
||||
if (IsProcWithNoExternalTrans(startitm, invalidTrans))
|
||||
if (IsProcWithNoExternalTrans(invalidTrans))
|
||||
{
|
||||
StepConfig sc2 = startitm.MyConfig as StepConfig;
|
||||
using (Content cnt = Content.Get(startitm.MyContent.ContentID))
|
||||
@@ -319,7 +320,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
|
||||
// B2021-149: for procedure, only consider external transitions as invalid
|
||||
private bool IsProcWithNoExternalTrans(ItemInfo ii, List<InvalidTransition> invalidTrans)
|
||||
private bool IsProcWithNoExternalTrans(List<InvalidTransition> invalidTrans)
|
||||
{
|
||||
if (invalidTrans.Count == 0) return true;
|
||||
foreach (InvalidTransition iT in invalidTrans)
|
||||
@@ -434,17 +435,16 @@ namespace Volian.Controls.Library
|
||||
foreach (CheckBox cb in MyCheckBoxes.Values)
|
||||
cb.Enabled = true;
|
||||
}
|
||||
private void AddViewMode(string name, string value)
|
||||
{
|
||||
AddViewMode(name, value, false);
|
||||
}
|
||||
|
||||
private void AddViewMode(string name, string value, bool selected)
|
||||
{
|
||||
RadioButton rb = new RadioButton();
|
||||
rb.BackColor = Color.Transparent;
|
||||
rb.Text = name;
|
||||
rb.Tag = value;
|
||||
rb.Dock = DockStyle.Top;
|
||||
RadioButton rb = new RadioButton
|
||||
{
|
||||
BackColor = Color.Transparent,
|
||||
Text = name,
|
||||
Tag = value,
|
||||
Dock = DockStyle.Top
|
||||
};
|
||||
gpMode.Controls.Add(rb);
|
||||
rb.BringToFront();
|
||||
rb.Checked = selected;
|
||||
@@ -469,7 +469,7 @@ namespace Volian.Controls.Library
|
||||
// C2021 - 027: Procedure level PC/PC - handle procedure level too for viewing in editor
|
||||
if (MyDisplayTabItem.MyStepTabPanel.SelectedItemInfo != null && MyDisplayTabItem.MyStepTabPanel.SelectedItemInfo.IsProcedure)
|
||||
ei = MyDisplayTabItem.MyStepTabPanel.SelectedEditItem;
|
||||
if (ei != null) ei.MyStepRTB.Focus();
|
||||
ei?.MyStepRTB.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -489,7 +489,7 @@ namespace Volian.Controls.Library
|
||||
void DisplayApplicability_VisibleChanged(object sender, EventArgs e)
|
||||
{
|
||||
MyItemInfo = MyItemInfo;
|
||||
gpItem.Enabled = ShowItemSelection && UserInfo.CanEdit(MyUserInfo,(MyItemInfo == null) ? null : MyItemInfo.MyDocVersion); //Can Change Applicability
|
||||
gpItem.Enabled = ShowItemSelection && UserInfo.CanEdit(MyUserInfo,MyItemInfo?.MyDocVersion); //Can Change Applicability
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using JR.Utils.GUI.Forms;
|
||||
@@ -18,8 +13,7 @@ namespace Volian.Controls.Library
|
||||
public event ResetBookMarksInPROMSWindowsEvent ResetBookMarksInPROMSWindows;
|
||||
private void OnResetBookMarksInPROMSWindows()
|
||||
{
|
||||
if (ResetBookMarksInPROMSWindows != null)
|
||||
ResetBookMarksInPROMSWindows(this, new EventArgs());
|
||||
ResetBookMarksInPROMSWindows?.Invoke(this, new EventArgs());
|
||||
}
|
||||
#endregion //delegates and Events
|
||||
#region Properties
|
||||
@@ -30,7 +24,6 @@ namespace Volian.Controls.Library
|
||||
set { _MyBookMarks = value; }
|
||||
}
|
||||
private ItemInfo _CurItemInfo = null;
|
||||
private bool _Initalizing = false;
|
||||
private DisplayTabControl _MyDisplayTabControl;
|
||||
public DisplayTabControl MyDisplayTabControl
|
||||
{
|
||||
@@ -53,24 +46,11 @@ namespace Volian.Controls.Library
|
||||
_CurItemInfo = MyEditItem.MyItemInfo;
|
||||
}
|
||||
}
|
||||
//private StepRTB _MyRTB;
|
||||
//public StepRTB MyRTB
|
||||
//{
|
||||
// get { return _MyRTB; }
|
||||
// set
|
||||
// {
|
||||
// if (value == null) return;
|
||||
// if (_CurItemInfo != null && _CurItemInfo.ItemID == value.MyItemInfo.ItemID) return;
|
||||
// _MyRTB = value;
|
||||
// _CurItemInfo = MyRTB.MyItemInfo;
|
||||
// }
|
||||
//}
|
||||
#endregion
|
||||
#region Constructors
|
||||
public DisplayBookMarks()
|
||||
{
|
||||
InitializeComponent();
|
||||
//SetupBookMarks();
|
||||
}
|
||||
public void SetupBookMarks()
|
||||
{
|
||||
@@ -81,9 +61,6 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
lbxBookMarks.SelectedValueChanged += new EventHandler(lbxBookMarks_SelectedValueChanged);
|
||||
RefreshBookMarkData();
|
||||
//btnPrevPos.Enabled = false;
|
||||
//lbxBookMarks.Enabled = false;
|
||||
//_PrevBookMark = null;
|
||||
}
|
||||
|
||||
void _MyBookMarks_AfterRemove(object sender)
|
||||
@@ -148,8 +125,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
private void lbxBookMarks_Click(object sender, EventArgs e)
|
||||
{
|
||||
MostRecentItem itm = lbxBookMarks.SelectedValue as MostRecentItem;
|
||||
if(itm != null)
|
||||
if (lbxBookMarks.SelectedValue is MostRecentItem itm)
|
||||
MyDisplayTabControl.OpenItem(itm.MyItemInfo);
|
||||
}
|
||||
#endregion
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user