Compare commits
89
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
034aa67e31 | ||
|
|
f8ab3c57be | ||
|
|
6376d4669b | ||
|
|
f9cce608d6 | ||
|
|
3d65b7c34a | ||
|
|
dbea4abafb | ||
|
|
57622931a5 | ||
|
|
75368c2fe0 | ||
|
|
5e071bd35a | ||
|
|
77639318c6 | ||
|
|
1a890b11cb | ||
|
|
795f21f04b | ||
|
|
c95e86c2a6 | ||
|
|
18d2aa3b51 | ||
|
|
7ba3ea8b13 | ||
|
|
30b34c3a50 | ||
|
|
6a42800d2c | ||
|
|
70f132540f | ||
|
|
cd9eaaaba1 | ||
|
|
70aa1f4024 | ||
|
|
1d634d96fe | ||
|
|
4eb5254d96 | ||
|
|
6c2eee0cbc | ||
|
|
3c5265cecf | ||
|
|
478d35890d | ||
|
|
1b9b63412c | ||
|
|
3bb8fff3a1 | ||
|
|
694bc0ead4 | ||
|
|
cfc324d31e | ||
|
|
43b63e2843 | ||
|
|
f2ec510a70 | ||
|
|
453edbb28e | ||
|
|
bc9407f52f | ||
|
|
954cc5918f | ||
|
|
4ef16e7856 | ||
|
|
1eb3c3e725 | ||
|
|
a89c2d3d22 | ||
|
|
914837a5a2 | ||
|
|
9643a71ba5 | ||
|
|
aa7e0528f8 | ||
|
|
57bd8d569e | ||
|
|
b49d8871a2 | ||
|
|
b90d419bc5 | ||
|
|
1f48d498e1 | ||
|
|
da6139c932 | ||
|
|
be744b40a3 | ||
|
|
780ce657ca | ||
|
|
464be0f803 | ||
|
|
58a6cb9a24 | ||
|
|
9bf7b2ffde | ||
|
|
cde1f28215 | ||
|
|
db198cb7d0 | ||
|
|
99fe567e78 | ||
|
|
2261c8f0f5 | ||
|
|
f93b16fc52 | ||
|
|
7c3a43749c | ||
|
|
ecec7b9f1a | ||
|
|
1aca7335f7 | ||
|
|
ba5aee6640 | ||
|
|
abaf55e9b1 | ||
|
|
3a2dd0b0aa | ||
|
|
0fed1acfd8 | ||
|
|
d7c2300021 | ||
|
|
fca333299d | ||
|
|
a13b03a136 | ||
|
|
48054f5bf1 | ||
|
|
51f2897a33 | ||
|
|
7a3a07b0da | ||
|
|
7c3cfca86c | ||
|
|
352af15984 | ||
|
|
2c42933d58 | ||
|
|
2e68362836 | ||
|
|
c6736db7ea | ||
|
|
c005f03af8 | ||
|
|
459aabcc86 | ||
|
|
ad33097d5e | ||
|
|
8d7735735e | ||
|
|
25bbc46925 | ||
|
|
5a26b0ee35 | ||
|
|
09a397bed2 | ||
|
|
a33039bcae | ||
|
|
0ebd125266 | ||
|
|
fd16a6b6c3 | ||
|
|
cf19f764c7 | ||
|
|
88850d6c25 | ||
|
|
b173c61575 | ||
|
|
3b866f0952 | ||
|
|
05ab48cdc5 | ||
|
|
fd51c209a3 |
@@ -402,3 +402,4 @@ FodyWeavers.xsd
|
||||
/fmtall
|
||||
/genmacall
|
||||
*AssemblyInfo.cs
|
||||
/PROMS/Baseline/Baseline.sln
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
<Compile Include="frmSettings.Designer.cs">
|
||||
<DependentUpon>frmSettings.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="frmBaseline.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,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Baseline
|
||||
|
||||
+124
-247
@@ -43,12 +43,9 @@ 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.Collections.Specialized;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml.Serialization;
|
||||
@@ -73,13 +70,8 @@ namespace Baseline
|
||||
}
|
||||
public partial class frmBaseline : Form
|
||||
{
|
||||
private IgnoreLines _MyIgnore = new IgnoreLines();
|
||||
public IgnoreLines MyIgnore
|
||||
{
|
||||
get { return _MyIgnore; }
|
||||
set { _MyIgnore = value; }
|
||||
}
|
||||
private LastWas myLast = LastWas.Search;
|
||||
public IgnoreLines MyIgnore { get; set; } = new IgnoreLines();
|
||||
private LastWas myLast = LastWas.Search;
|
||||
private Settings MySettings;
|
||||
public string MyStatus
|
||||
{
|
||||
@@ -151,9 +143,11 @@ namespace Baseline
|
||||
this.WindowState = Properties.Settings.Default.WidnowState;
|
||||
if(Properties.Settings.Default.Ignore != null && Properties.Settings.Default.Ignore != "")
|
||||
MyIgnore = IgnoreLines.Get(Properties.Settings.Default.Ignore);
|
||||
MySettings= new Settings();
|
||||
MySettings.IgnoreLines = new BindingList<string>();
|
||||
splitContainer1.SplitterDistance = Properties.Settings.Default.Split1;
|
||||
MySettings = new Settings
|
||||
{
|
||||
IgnoreLines = new BindingList<string>()
|
||||
};
|
||||
splitContainer1.SplitterDistance = Properties.Settings.Default.Split1;
|
||||
splitContainer2.SplitterDistance = Properties.Settings.Default.Split2;
|
||||
splitContainer3.SplitterDistance = Properties.Settings.Default.Split3;
|
||||
if (Properties.Settings.Default.MRU1 != null && Properties.Settings.Default.MRU1.Count > 0)
|
||||
@@ -240,28 +234,27 @@ namespace Baseline
|
||||
lbProcedures.Items.Clear();
|
||||
lbResults1.Items.Clear();
|
||||
lbResults2.Items.Clear();
|
||||
FindFile ff = lbDifferent.SelectedItem as FindFile;
|
||||
if (ff != null)
|
||||
{
|
||||
// Fill Procedure or Result ListBoxes
|
||||
switch (myLast)
|
||||
{
|
||||
case LastWas.Pagination:
|
||||
CompareContent(ff.File1, ff.File2);// Compare DebugPagination
|
||||
break;
|
||||
case LastWas.Baseline:
|
||||
CompareContent3(ff.File1, ff.File2);// Compare DebugMeta
|
||||
break;
|
||||
case LastWas.Search:
|
||||
ShowSearchResults(ff.File1, ff.File2);// Perform search on DebugMeta
|
||||
break;
|
||||
default:
|
||||
CompareContent(ff.File1, ff.File2);//Default DebugPagination
|
||||
break;
|
||||
}
|
||||
//CompareOneFile(ff.File1, ff.File2);
|
||||
}
|
||||
}
|
||||
if (lbDifferent.SelectedItem is FindFile ff)
|
||||
{
|
||||
// Fill Procedure or Result ListBoxes
|
||||
switch (myLast)
|
||||
{
|
||||
case LastWas.Pagination:
|
||||
CompareContent(ff.File1, ff.File2);// Compare DebugPagination
|
||||
break;
|
||||
case LastWas.Baseline:
|
||||
CompareContent3(ff.File1, ff.File2);// Compare DebugMeta
|
||||
break;
|
||||
case LastWas.Search:
|
||||
ShowSearchResults(ff.File1, ff.File2);// Perform search on DebugMeta
|
||||
break;
|
||||
default:
|
||||
CompareContent(ff.File1, ff.File2);//Default DebugPagination
|
||||
break;
|
||||
}
|
||||
//CompareOneFile(ff.File1, ff.File2);
|
||||
}
|
||||
}
|
||||
Procedures MyProcs1;
|
||||
Procedures MyProcs2;
|
||||
/// <summary>
|
||||
@@ -361,13 +354,6 @@ namespace Baseline
|
||||
lines1 = list1.AsEnumerable<string>();// Convert back to Enumerable to work with LINQ
|
||||
return lines1;
|
||||
}
|
||||
private string GetProcNum(string line)
|
||||
{
|
||||
string retval = line.Substring(3, line.IndexOf(" | ") - 3);
|
||||
if (retval.Contains("_"))
|
||||
retval = retval.Substring(0, retval.IndexOf("_") - 1);
|
||||
return retval;
|
||||
}
|
||||
/// <summary>
|
||||
/// Include lines for Procedure or Page or Search is true
|
||||
/// Account for Case Insensitive CheckBox
|
||||
@@ -450,8 +436,8 @@ namespace Baseline
|
||||
private void lbResults1_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string line=null;
|
||||
if (lbResults1.SelectedItem is string)
|
||||
line = (string)lbResults1.SelectedItem;
|
||||
if (lbResults1.SelectedItem is string v)
|
||||
line = v;
|
||||
Line myLine = lbResults1.SelectedItem as Line;
|
||||
switch (myLast)
|
||||
{
|
||||
@@ -472,8 +458,8 @@ namespace Baseline
|
||||
{
|
||||
|
||||
string line=null;
|
||||
if(lbResults2.SelectedItem is string)
|
||||
line = (string)lbResults2.SelectedItem;
|
||||
if(lbResults2.SelectedItem is string v)
|
||||
line = v;
|
||||
Line myLine = lbResults2.SelectedItem as Line;
|
||||
|
||||
switch (myLast)
|
||||
@@ -503,7 +489,7 @@ namespace Baseline
|
||||
string[] fileList = Directory.GetFiles(fi.DirectoryName, patern);
|
||||
// sort the list of file list
|
||||
Array.Sort((string[])fileList);
|
||||
return fileList.First(); // the PDF file that we what should be top of the list then.
|
||||
return fileList.FirstOrDefault(); // the PDF file that we what should be top of the list then.
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -515,16 +501,10 @@ namespace Baseline
|
||||
/// <returns></returns>
|
||||
private string ParseOutProcedureNumberFromLine(string txt)
|
||||
{
|
||||
// old logic was looking for the first occurence of ".S" in the txt string as the ending point of the procedure nuumber
|
||||
// Beaver Valley has a procedure number "1.SBGEN" in which the old logic would not work
|
||||
// 1.SBGEN.SC. ==> short path of attachment section "C"
|
||||
// 1.SBGEN.SC..S1. ==> short path of Step 1 in attachment section "C"
|
||||
string rtnstr = null;
|
||||
int lidx = -1;
|
||||
// if the item is to a high levels step or sub-step the short path as "..S" for each part of the step
|
||||
// so look for the last occurence of ".." which will be the end of the section information
|
||||
lidx = txt.LastIndexOf("..");
|
||||
if (lidx > 0)
|
||||
// if the item is to a high levels step or sub-step the short path as "..S" for each part of the step
|
||||
// so look for the last occurence of ".." which will be the end of the section information
|
||||
int lidx = txt.LastIndexOf("..");
|
||||
if (lidx > 0)
|
||||
{
|
||||
lidx = txt.LastIndexOf(".S", lidx); // this will position us to the end of the procedure number
|
||||
}
|
||||
@@ -532,9 +512,13 @@ namespace Baseline
|
||||
{
|
||||
lidx = txt.LastIndexOf(".S"); // this will position us to the end of the procedure number if there was no step information
|
||||
}
|
||||
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
|
||||
rtnstr = txt.Substring(8, lidx - 8).Replace("/", "_").Replace("\\", "_");
|
||||
return rtnstr;
|
||||
// old logic was looking for the first occurence of ".S" in the txt string as the ending point of the procedure nuumber
|
||||
// Beaver Valley has a procedure number "1.SBGEN" in which the old logic would not work
|
||||
// 1.SBGEN.SC. ==> short path of attachment section "C"
|
||||
// 1.SBGEN.SC..S1. ==> short path of Step 1 in attachment section "C"
|
||||
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
|
||||
string rtnstr = txt.Substring(8, lidx - 8).Replace("/", "_").Replace("\\", "_");
|
||||
return rtnstr;
|
||||
}
|
||||
|
||||
string exePath;
|
||||
@@ -616,10 +600,10 @@ namespace Baseline
|
||||
progname = @"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe";
|
||||
System.Diagnostics.ProcessStartInfo psi =
|
||||
new System.Diagnostics.ProcessStartInfo(progname, string.Format(@" -t ""{0}"" ""{1}""", compareFile, baseFile));
|
||||
System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi);
|
||||
}
|
||||
_ = System.Diagnostics.Process.Start(psi);
|
||||
}
|
||||
|
||||
private ProcessLocationQueue myQueue= new ProcessLocationQueue();
|
||||
private readonly ProcessLocationQueue myQueue= new ProcessLocationQueue();
|
||||
private Timer queueTimer = null;
|
||||
/// <summary>
|
||||
/// Move a Process to a specific screen location - This is done with a timer so
|
||||
@@ -632,9 +616,11 @@ namespace Baseline
|
||||
{
|
||||
if (queueTimer == null)
|
||||
{
|
||||
queueTimer = new Timer();
|
||||
queueTimer.Enabled = false;
|
||||
queueTimer.Tick += queueTimer_Tick;
|
||||
queueTimer = new Timer
|
||||
{
|
||||
Enabled = false
|
||||
};
|
||||
queueTimer.Tick += queueTimer_Tick;
|
||||
queueTimer.Interval = 1000;
|
||||
}
|
||||
myQueue.Add(proc, x, y);
|
||||
@@ -669,8 +655,8 @@ namespace Baseline
|
||||
string procPatern = string.Format("*{0}*.pdf", proc == string.Empty ? "noProcNumber" : proc);
|
||||
int pagenum = myLine.MyPage.Number;
|
||||
FindFile ff = lbDifferent.SelectedItem as FindFile;
|
||||
string PDFfileName = null;
|
||||
if (list == 1)
|
||||
string PDFfileName;
|
||||
if (list == 1)
|
||||
{
|
||||
FileInfo fi1 = new FileInfo(ff.File1);
|
||||
PDFfileName = GetPFDFileAndPath(fi1, procPatern);
|
||||
@@ -701,11 +687,13 @@ namespace Baseline
|
||||
return;
|
||||
}
|
||||
}
|
||||
// open the PDF and jump to the page number
|
||||
System.Diagnostics.ProcessStartInfo psi1 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A \"page={0}\" \"{1}\" ", pagenum,PDFfileName));
|
||||
psi1.UseShellExecute = false;
|
||||
System.Diagnostics.Process p1 = System.Diagnostics.Process.Start(psi1);
|
||||
}
|
||||
// open the PDF and jump to the page number
|
||||
System.Diagnostics.ProcessStartInfo psi1 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A \"page={0}\" \"{1}\" ", pagenum, PDFfileName))
|
||||
{
|
||||
UseShellExecute = false
|
||||
};
|
||||
_ = System.Diagnostics.Process.Start(psi1);
|
||||
}
|
||||
/// <summary>
|
||||
/// Perform Debug Meta file comparison for all of the folders within the automated testing folders
|
||||
/// </summary>
|
||||
@@ -785,11 +773,10 @@ namespace Baseline
|
||||
}
|
||||
private void lbProcedures_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
//Initialize Results List Box
|
||||
Procedure myProc = lbProcedures.SelectedItem as Procedure;
|
||||
if (myProc == null) return; // clicked on the white space (blank line) in the list of different procedures
|
||||
//TODO: May need to consider if there are duplicate procedure numers and titles
|
||||
Procedure myProc1 = MyProcs1.Find(x => x.Number == myProc.Number && x.Title == myProc.Title);
|
||||
//Initialize Results List Box
|
||||
if (!(lbProcedures.SelectedItem is Procedure myProc)) return; // clicked on the white space (blank line) in the list of different procedures
|
||||
//TODO: May need to consider if there are duplicate procedure numers and titles
|
||||
Procedure myProc1 = MyProcs1.Find(x => x.Number == myProc.Number && x.Title == myProc.Title);
|
||||
// Build the results ListBox for the left window
|
||||
lbResults1.Items.Clear();
|
||||
if (myProc1 != null)
|
||||
@@ -836,28 +823,13 @@ namespace Baseline
|
||||
};
|
||||
public class Settings
|
||||
{
|
||||
private BindingList<string> _IgnoreLines;
|
||||
public BindingList<string> IgnoreLines
|
||||
{
|
||||
get { return _IgnoreLines; }
|
||||
set { _IgnoreLines = value; }
|
||||
}
|
||||
}
|
||||
public BindingList<string> IgnoreLines { get; set; }
|
||||
}
|
||||
public partial class FindFile
|
||||
{
|
||||
private string _File1;
|
||||
public string File1
|
||||
{
|
||||
get { return _File1; }
|
||||
set { _File1 = value; }
|
||||
}
|
||||
private string _File2;
|
||||
public string File2
|
||||
{
|
||||
get { return _File2; }
|
||||
set { _File2 = value; }
|
||||
}
|
||||
public FindFile(string file1, string file2)
|
||||
public string File1 { get; set; }
|
||||
public string File2 { get; set; }
|
||||
public FindFile(string file1, string file2)
|
||||
{
|
||||
File1 = file1;
|
||||
File2 = file2;
|
||||
@@ -865,19 +837,16 @@ namespace Baseline
|
||||
}
|
||||
public partial class FindFiles : List<FindFile>
|
||||
{
|
||||
private string _FileName;
|
||||
public string FileName
|
||||
{
|
||||
get { return _FileName; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Build list of DocVersion Folders with differences
|
||||
/// </summary>
|
||||
/// <param name="path1">Base path</param>
|
||||
/// <param name="path2">Compare path</param>
|
||||
/// <param name="fileName">filename</param>
|
||||
/// <param name="myIgnore">Ignore list</param>
|
||||
public FindFiles(string path1, string path2, string fileName,IgnoreLines myIgnore)
|
||||
private readonly string _FileName;
|
||||
public string FileName => _FileName;
|
||||
/// <summary>
|
||||
/// Build list of DocVersion Folders with differences
|
||||
/// </summary>
|
||||
/// <param name="path1">Base path</param>
|
||||
/// <param name="path2">Compare path</param>
|
||||
/// <param name="fileName">filename</param>
|
||||
/// <param name="myIgnore">Ignore list</param>
|
||||
public FindFiles(string path1, string path2, string fileName,IgnoreLines myIgnore)
|
||||
{
|
||||
DirectoryInfo di1 = new DirectoryInfo(path1);
|
||||
DirectoryInfo di2 = new DirectoryInfo(path2);
|
||||
@@ -1103,34 +1072,16 @@ namespace Baseline
|
||||
// Text - the line of text
|
||||
public partial class Procedure
|
||||
{
|
||||
private string _Number;
|
||||
public string Number
|
||||
public string Number { get; set; }
|
||||
public string Title { get; set; }
|
||||
public Pages MyPages { get; set; } = new Pages();
|
||||
public Procedure(string number, string title)
|
||||
{
|
||||
get { return _Number; }
|
||||
set { _Number = value; }
|
||||
Number = number;
|
||||
Title = title;
|
||||
}
|
||||
private string _Title;
|
||||
public string Title
|
||||
{
|
||||
get { return _Title; }
|
||||
set { _Title = value; }
|
||||
}
|
||||
private Pages _MyPages = new Pages();
|
||||
public Pages MyPages
|
||||
{
|
||||
get { return _MyPages; }
|
||||
set { _MyPages = value; }
|
||||
}
|
||||
public Procedure(string number, string title)
|
||||
{
|
||||
_Number = number;
|
||||
_Title = title;
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("{0} - {1}", Number, Title);
|
||||
}
|
||||
}
|
||||
public override string ToString() => string.Format("{0} - {1}", Number, Title);
|
||||
}
|
||||
public partial class Procedures : List<Procedure>
|
||||
{
|
||||
// Sample data for a Procedure Number line
|
||||
@@ -1161,77 +1112,34 @@ namespace Baseline
|
||||
}
|
||||
public partial class Page
|
||||
{
|
||||
private int _Number;
|
||||
public int Number
|
||||
{
|
||||
get { return _Number; }
|
||||
set { _Number = value; }
|
||||
}
|
||||
private Lines _MyLines = new Lines();
|
||||
public int Number { get; set; }
|
||||
|
||||
public Lines MyLines
|
||||
{
|
||||
get { return _MyLines; }
|
||||
set { _MyLines = value; }
|
||||
}
|
||||
public Page(int number)
|
||||
{
|
||||
_Number = number;
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("Page {0}", Number);
|
||||
}
|
||||
}
|
||||
public Lines MyLines { get; set; } = new Lines();
|
||||
public Page(int number) => Number = number;
|
||||
public override string ToString() => string.Format("Page {0}", Number);
|
||||
}
|
||||
public partial class Pages : List<Page>
|
||||
{
|
||||
public void Add(int number)
|
||||
{
|
||||
Add(new Page(number));
|
||||
}
|
||||
}
|
||||
public void Add(int number) => Add(new Page(number));
|
||||
}
|
||||
public partial class Line
|
||||
{
|
||||
private Procedure _MyProc;
|
||||
public Procedure MyProc
|
||||
public Procedure MyProc { get; set; }
|
||||
public Page MyPage { get; set; }
|
||||
public string Text { get; set; }
|
||||
public Line(string text) => Text = text;
|
||||
public Line(string text, Procedure myProc, Page myPage)
|
||||
{
|
||||
get { return _MyProc; }
|
||||
set { _MyProc = value; }
|
||||
Text = text;
|
||||
MyProc = myProc;
|
||||
MyPage = myPage;
|
||||
}
|
||||
private Page _MyPage;
|
||||
public Page MyPage
|
||||
{
|
||||
get { return _MyPage; }
|
||||
set { _MyPage = value; }
|
||||
}
|
||||
private string _Text;
|
||||
public string Text
|
||||
{
|
||||
get { return _Text; }
|
||||
set { _Text = value; }
|
||||
}
|
||||
public Line(string text)
|
||||
{
|
||||
_Text = text;
|
||||
}
|
||||
public Line(string text, Procedure myProc, Page myPage)
|
||||
{
|
||||
_Text = text;
|
||||
_MyProc = myProc;
|
||||
_MyPage = myPage;
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return Text;
|
||||
}
|
||||
}
|
||||
public override string ToString() => Text;
|
||||
}
|
||||
public partial class Lines : List<Line>
|
||||
{
|
||||
public void Add(string text)
|
||||
{
|
||||
Add(new Line(text));
|
||||
}
|
||||
}
|
||||
public void Add(string text) => Add(new Line(text));
|
||||
}
|
||||
[Serializable]
|
||||
public partial class IgnoreLine
|
||||
{
|
||||
@@ -1269,21 +1177,12 @@ namespace Baseline
|
||||
public IgnoreLines()
|
||||
{
|
||||
}
|
||||
public void Add(string text, Relation searchType, bool active)
|
||||
{
|
||||
Add(new IgnoreLine(text, searchType, active));
|
||||
}
|
||||
// Convert IgnoreLines to string (XML)
|
||||
public override string ToString()
|
||||
{
|
||||
return GenericSerializer<IgnoreLines>.StringSerialize(this);
|
||||
}
|
||||
// Convert string to IgnoreLines
|
||||
public static IgnoreLines Get(string xml)
|
||||
{
|
||||
return GenericSerializer<IgnoreLines>.StringDeserialize(xml);
|
||||
}
|
||||
}
|
||||
public void Add(string text, Relation searchType, bool active) => Add(new IgnoreLine(text, searchType, active));
|
||||
// Convert IgnoreLines to string (XML)
|
||||
public override string ToString() => GenericSerializer<IgnoreLines>.StringSerialize(this);
|
||||
// Convert string to IgnoreLines
|
||||
public static IgnoreLines Get(string xml) => GenericSerializer<IgnoreLines>.StringDeserialize(xml);
|
||||
}
|
||||
/// <summary>
|
||||
/// This is a simple serializer that takes a class and converts it to and from string (XML)
|
||||
/// </summary>
|
||||
@@ -1311,7 +1210,7 @@ namespace Baseline
|
||||
string ss = s.Replace("encoding=\"utf-16\"", "");
|
||||
XmlSerializer xs = new XmlSerializer(typeof(T));
|
||||
UTF8Encoding enc = new UTF8Encoding();
|
||||
Byte[] arrBytData = enc.GetBytes(ss);
|
||||
byte[] arrBytData = enc.GetBytes(ss);
|
||||
using (MemoryStream ms = new MemoryStream(arrBytData))
|
||||
{
|
||||
t = (T)xs.Deserialize(ms);
|
||||
@@ -1325,12 +1224,9 @@ namespace Baseline
|
||||
public class NonXsiTextWriter : XmlTextWriter
|
||||
{
|
||||
public NonXsiTextWriter(TextWriter w) : base(w) { }
|
||||
public NonXsiTextWriter(Stream w, Encoding encoding)
|
||||
: base(w, encoding)
|
||||
{
|
||||
this.Formatting = Formatting.Indented;
|
||||
}
|
||||
public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { }
|
||||
public NonXsiTextWriter(Stream w, Encoding encoding)
|
||||
: base(w, encoding) => Formatting = Formatting.Indented;
|
||||
public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { }
|
||||
bool _skip = false;
|
||||
public override void WriteStartAttribute(string prefix, string localName, string ns)
|
||||
{
|
||||
@@ -1372,32 +1268,16 @@ namespace Baseline
|
||||
public const short SWP_NOZORDER = 0X4;
|
||||
public const int SWP_SHOWWINDOW = 0x0040;
|
||||
|
||||
private System.Diagnostics.Process _Process;
|
||||
|
||||
public System.Diagnostics.Process Process
|
||||
{
|
||||
get { return _Process; }
|
||||
set { _Process = value; }
|
||||
}
|
||||
private int _X;
|
||||
public int X
|
||||
{
|
||||
get { return _X; }
|
||||
set { _X = value; }
|
||||
}
|
||||
private int _Y;
|
||||
public int Y
|
||||
{
|
||||
get { return _Y; }
|
||||
set { _Y = value; }
|
||||
}
|
||||
public ProcessLocation(System.Diagnostics.Process process, int x, int y)
|
||||
public System.Diagnostics.Process Process { get; set; }
|
||||
public int X { get; set; }
|
||||
public int Y { get; set; }
|
||||
public ProcessLocation(System.Diagnostics.Process process, int x, int y)
|
||||
{
|
||||
Process = process;
|
||||
X = x;
|
||||
Y = y;
|
||||
}
|
||||
private static Boolean FoxitSettingInfo = true;
|
||||
private static bool FoxitSettingInfo = true;
|
||||
|
||||
/// <summary>
|
||||
/// MoveIt() moves the window containing the PDF viewer to the right so the two pdf viewer windows will not overlap.
|
||||
@@ -1418,11 +1298,8 @@ namespace Baseline
|
||||
}
|
||||
public class ProcessLocationQueue: Queue<ProcessLocation>
|
||||
{
|
||||
public void Add(System.Diagnostics.Process process, int x, int y)
|
||||
{
|
||||
Enqueue(new ProcessLocation(process,x,y));
|
||||
}
|
||||
public void ProcessNext()
|
||||
public void Add(System.Diagnostics.Process process, int x, int y) => Enqueue(new ProcessLocation(process, x, y));
|
||||
public void ProcessNext()
|
||||
{
|
||||
ProcessLocation pl = Dequeue();
|
||||
pl.MoveIt();
|
||||
|
||||
@@ -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 Baseline
|
||||
@@ -19,17 +12,7 @@ namespace Baseline
|
||||
set {
|
||||
_MyIgnore = value;
|
||||
dgv.DataSource=null;
|
||||
//dgvcSearchType.ValueType = typeof(Relation);
|
||||
//dgvcSearchType.ValueMember = "Value";
|
||||
//dgvcSearchType.DisplayMember = "Display";
|
||||
//dgvcSearchType.DataSource = new Relation[] { Relation.Contains, Relation.StartsWith, Relation.EndsWith, Relation.Regex }
|
||||
//.Select(x => new { Display = x.ToString(), Value = x })
|
||||
//.ToList();
|
||||
dgv.DataSource=value;
|
||||
//dgvcSearchType.DataSource =
|
||||
//new List<Relation>((Relation[]) Enum.GetValues(typeof(Relation)))
|
||||
//.Select(x => new { Display=x.ToString(), Value=(int)x })
|
||||
//.ToList();;
|
||||
}
|
||||
}
|
||||
public frmSettings(IgnoreLines myIgnore)
|
||||
@@ -46,19 +29,16 @@ namespace Baseline
|
||||
col.ValueType = typeof(Relation);
|
||||
}
|
||||
|
||||
private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e)
|
||||
private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e) => Console.WriteLine("Here");
|
||||
private void btnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
Console.WriteLine("Here");
|
||||
}
|
||||
private void btnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.Close();
|
||||
DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.Close();
|
||||
DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,6 +179,7 @@
|
||||
<Content Include="fmtall\CPL_00all.xml" />
|
||||
<Content Include="fmtall\CPL_01all.xml" />
|
||||
<Content Include="fmtall\CPL_02all.xml" />
|
||||
<Content Include="fmtall\CPL_04all.xml" />
|
||||
<Content Include="fmtall\CPL_03all.xml" />
|
||||
<Content Include="fmtall\CPSAMGDataall.xml" />
|
||||
<Content Include="fmtall\CPSAMGDEVall.xml" />
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1817,7 +1817,7 @@ ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete a
|
||||
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
|
||||
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||
where ii.DeleteStatus > 0
|
||||
update ga set ga.contentauditid = (select max(auditid) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
||||
update ga set ga.contentauditid = (select ISNULL(max(auditid),0) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
||||
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
|
||||
end
|
||||
go
|
||||
|
||||
@@ -5547,6 +5547,12 @@ ELSE PRINT 'Function: ve_GetItemDerivedApplicability Error on Creation'
|
||||
GO
|
||||
|
||||
-------
|
||||
|
||||
-- =============================================
|
||||
-- Author: Matthew Schill
|
||||
-- Modify date: 07/14/2026
|
||||
-- Description: Reworked ve_GetParentItem for Performance improvement
|
||||
-- =============================================
|
||||
/****** Object: UserDefinedFunction [dbo].[vefn_GetParentItem] Script Date: 03/28/2012 17:58:48 ******/
|
||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetParentItem]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1)
|
||||
DROP FUNCTION [ve_GetParentItem];
|
||||
@@ -5555,35 +5561,46 @@ GO
|
||||
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
|
||||
*****************************************************************************/
|
||||
CREATE FUNCTION [dbo].[ve_GetParentItem] (@ItemID int) RETURNS int
|
||||
CREATE OR ALTER FUNCTION [dbo].[ve_GetParentItem] (@ItemID int) RETURNS int
|
||||
WITH EXECUTE AS OWNER
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @ParentID int;
|
||||
WITH Itemz([ItemID],[IsFound]) as
|
||||
WITH Itemz([ItemID]) as
|
||||
(
|
||||
select ii.itemid,0 from items ii where ii.itemid = @ItemID
|
||||
select ii.itemid from items ii WITH (NOLOCK) where ii.itemid = @ItemID
|
||||
union all
|
||||
select ii.previousid,0 from items ii
|
||||
select ii.previousid from items ii WITH (NOLOCK)
|
||||
join itemz zz on ii.itemid = zz.itemid
|
||||
where ii.previousid is not null
|
||||
and zz.isfound = 0
|
||||
union all
|
||||
select ii.itemid,1
|
||||
from parts pp
|
||||
join itemz zz on pp.itemid = zz.itemid
|
||||
join items ii on ii.contentid = pp.contentid
|
||||
)
|
||||
select top 1 @ParentID = itemid from itemz
|
||||
where isfound = 1 OPTION (MAXRECURSION 10000)
|
||||
select top 1 @ParentID = ii.itemid
|
||||
from itemz
|
||||
inner join parts pp WITH (NOLOCK) on pp.itemid = itemz.itemid
|
||||
inner join items ii WITH (NOLOCK) on ii.contentid = pp.contentid
|
||||
OPTION (MAXRECURSION 10000)
|
||||
|
||||
RETURN @ParentID
|
||||
END
|
||||
|
||||
GO
|
||||
|
||||
IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetParentItem] Succeeded'
|
||||
ELSE PRINT 'ScalerFunction [vefn_GetParentItem] Error on Creation'
|
||||
go
|
||||
|
||||
IF EXISTS (SELECT * FROM dbo.sysIndexes WHERE name like 'IX_PartsItemID')
|
||||
DROP INDEX [IX_PartsItemID] ON [dbo].[tblParts];
|
||||
GO
|
||||
|
||||
CREATE NONCLUSTERED INDEX IX_PartsItemID
|
||||
ON [dbo].[tblParts] ([ItemID] ASC)
|
||||
INCLUDE([ContentID],[DeleteStatus],[FromType]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
PRINT 'Added IX_PartsItemID Index. Speeds up Getting Parent Items'
|
||||
GO
|
||||
|
||||
/****** Object: UserDefinedFunction [dbo].[vefn_CanTransitionBeCreated] Script Date: 10/14/2012 02:03:30 ******/
|
||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CanTransitionBeCreated]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1)
|
||||
DROP FUNCTION [vefn_CanTransitionBeCreated];
|
||||
@@ -24990,6 +25007,34 @@ IF (@@Error = 0) PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber
|
||||
ELSE PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber Error on Creation'
|
||||
GO
|
||||
|
||||
/*
|
||||
==========================================================================================================
|
||||
Author: Matthew Schill
|
||||
Create Date: 06/29/2026
|
||||
Description: Added an ISNULL check when setting GridAudits.contentauditid.
|
||||
Was Causing Deletion of some Grids to fail.
|
||||
==========================================================================================================
|
||||
*/
|
||||
/****** Object: Trigger [tr_Contents_Delete] ******/
|
||||
ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete as
|
||||
begin
|
||||
update ii set DeleteStatus = (select max(DeleteID) from DeleteLog where SPID = @@spid), ActionDTS = getdate(),
|
||||
UserID = (select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc)
|
||||
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||
insert into ContentAudits(ContentID,Number,Text,Type,FormatID,Config,DTS,UserID,DeleteStatus,ActionDTS)
|
||||
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
|
||||
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||
where ii.DeleteStatus > 0
|
||||
update ga set ga.contentauditid = (select ISNULL(max(auditid),0) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
||||
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
|
||||
end
|
||||
go
|
||||
|
||||
-- Display the status of Trigger alter
|
||||
IF (@@Error = 0) PRINT 'Trigger Alteration: tr_Contents_Delete Succeeded'
|
||||
ELSE PRINT 'Trigger Alteration: tr_Contents_Delete Error on Creation'
|
||||
GO
|
||||
|
||||
/*
|
||||
---------------------------------------------------------------------------
|
||||
| ADD New Code Before this Block |
|
||||
@@ -25023,8 +25068,8 @@ BEGIN TRY -- Try Block
|
||||
DECLARE @RevDate varchar(255)
|
||||
DECLARE @RevDescription varchar(255)
|
||||
|
||||
set @RevDate = '05/26/2026 7:00 AM'
|
||||
set @RevDescription = 'Get Most Recent Revision when Duplicates'
|
||||
set @RevDate = '07/16/2026 8:30 AM'
|
||||
set @RevDescription = 'Reworked ve_GetParentItem for Performance improvement'
|
||||
|
||||
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
||||
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
||||
|
||||
@@ -2148,7 +2148,7 @@ namespace VEPROMS
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
// View Only Mode is no longer checked out, so no longer has an OwnerID
|
||||
// This will keep those tabs from auto-closing based on the timer
|
||||
if (!myList.Contains(dti.OwnerID) && dti.MyStepTabPanel.MyStepPanel.VwMode != E_ViewMode.View)
|
||||
if (!myList.Contains(dti.OwnerID) && dti?.MyStepTabPanel?.MyStepPanel?.VwMode != E_ViewMode.View)
|
||||
{
|
||||
MyCloseTabList.PushDTI(dti);
|
||||
}
|
||||
@@ -3578,6 +3578,7 @@ namespace VEPROMS
|
||||
{
|
||||
if (parameter.StartsWith("/P="))
|
||||
{
|
||||
BaseLnSettings.blBaseLine = true;
|
||||
MSWordToPDF.Automatic = true;
|
||||
PromsPrinter.BaselineTesting = true;// Set Baseline Testing property for PROMsPrinter
|
||||
string[] dvstrs = parameter.Substring(3).Split(",".ToCharArray());
|
||||
@@ -3623,7 +3624,7 @@ namespace VEPROMS
|
||||
}
|
||||
ranAuto = true;
|
||||
}
|
||||
|
||||
BaseLnSettings.blBaseLine = false;
|
||||
if (ranAuto)
|
||||
{
|
||||
this.Close();
|
||||
|
||||
@@ -1258,7 +1258,7 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
int lastStart = sel == null ? 0 : sel.Start;
|
||||
|
||||
while (sel != null)
|
||||
while (sel != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(sel.Text))
|
||||
{
|
||||
@@ -1438,7 +1438,7 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
lastStart = sel.Start;
|
||||
|
||||
sel = FindRO();
|
||||
sel = FindRO();
|
||||
|
||||
if (sel != null && !string.IsNullOrEmpty(sel.Text) && sel.Start == lastStart)
|
||||
{
|
||||
@@ -2124,22 +2124,22 @@ namespace VEPROMS.CSLA.Library
|
||||
bool executeResult = false;
|
||||
LBSelection sel = null;
|
||||
|
||||
while (!executeResult)
|
||||
while (!executeResult)
|
||||
{
|
||||
sel = MyApp.Selection;
|
||||
LBFind find = sel.Find;
|
||||
find.ClearFormatting();
|
||||
|
||||
// Search string format - this is MSWord wildcard format
|
||||
// If you do a search in MSWord, make sure wildcard box is checked and then press the
|
||||
// Special button to see the definitions of the various wildcards
|
||||
// [<] - Less-Than Character
|
||||
// [!<> -]@ - 1 or more characters not including Less-Than, Greater-Than, Dash or Space
|
||||
// - Dash
|
||||
// [!<>]@ - 1 or more characters not including Less-Than, Greater-Than.
|
||||
// a space be included as part of the accessory page id (Callaway, EOP Addendum 37)
|
||||
// [>] - Greater-Than Character
|
||||
find.Text = "[<][!<> -]@-[!<>]@[>]";
|
||||
// Search string format - this is MSWord wildcard format
|
||||
// If you do a search in MSWord, make sure wildcard box is checked and then press the
|
||||
// Special button to see the definitions of the various wildcards
|
||||
// [<] - Less-Than Character
|
||||
// [!<> -]@ - 1 or more characters not including Less-Than, Greater-Than, Dash or Space
|
||||
// - Dash
|
||||
// [!<>]@ - 1 or more characters not including Less-Than, Greater-Than.
|
||||
// a space be included as part of the accessory page id (Callaway, EOP Addendum 37)
|
||||
// [>] - Greater-Than Character
|
||||
find.Text = "[<][!<> -]@-[!<>]@[>]";
|
||||
find.Wrap = LBWdFindWrap.wdFindContinue;
|
||||
find.MatchCase = false;
|
||||
find.MatchWholeWord = false;
|
||||
@@ -2159,14 +2159,18 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
tryagain = false;
|
||||
executeResult = find.Execute();
|
||||
// B2022-053 if the found text does not begin with a "<" and end with a ">", then
|
||||
// move past that text and try the Word Find function again.
|
||||
// B2022-088: [JPR] Find Doc Ro button not working in Word Sections
|
||||
// B2022-098: [JPR] ROs not being resolved in Word Sections
|
||||
// B2022-053 if the found text does not begin with a "<" and end with a ">", then
|
||||
// move past that text and try the Word Find function again.
|
||||
// B2022-088: [JPR] Find Doc Ro button not working in Word Sections
|
||||
// B2022-098: [JPR] ROs not being resolved in Word Sections
|
||||
// B2026-070: When there is a less-then sign (<) followed by a numeric value in a Word attachment (inside of a table), PROMS thinks the user put in an RO token will generate an RO not found error in the following table row who's text contains <U-Name>.
|
||||
if (executeResult && !string.IsNullOrEmpty(sel.Text) && !sel.Text.StartsWith("<") && !sel.Text.EndsWith(">"))
|
||||
{
|
||||
sel.MoveStart(LBWdUnits.wdCharacter, sel.Text.Length - 1);
|
||||
tryagain = true;
|
||||
{
|
||||
int location = sel.Start + sel.Text.Length - 1; //do not do this inline - this needs captured before WholeStory
|
||||
|
||||
sel.WholeStory();
|
||||
sel.MoveStart(LBWdUnits.wdCharacter, location);
|
||||
tryagain = true;
|
||||
}
|
||||
} while (tryagain);
|
||||
|
||||
@@ -2191,7 +2195,7 @@ namespace VEPROMS.CSLA.Library
|
||||
sel.MoveStart(LBWdUnits.wdCharacter, 1);
|
||||
executeResult = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (executeResult) return sel;
|
||||
|
||||
|
||||
@@ -262,8 +262,10 @@ namespace VEPROMS.CSLA.Library
|
||||
if (dvi.DocVersionAssociations[0].MyROFst.ROFstID != newfstid)
|
||||
{
|
||||
dv.DocVersionAssociations[0].MyROFst = localROFst.GetJustROFst();
|
||||
SetAssociationLastCompleted(dv, DateTime.Now.ToString());
|
||||
}
|
||||
// B2026-066 moved this out of if statement above
|
||||
// - was not resetting the datetime and thus not disabling the Update RO Values button and menu item
|
||||
SetAssociationLastCompleted(dv, DateTime.Now.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -326,7 +328,9 @@ namespace VEPROMS.CSLA.Library
|
||||
// all of the calls aways set the flags to not update the RO values
|
||||
public static ROFst UpdateRoFst(RODbInfo rdi, DocVersion docver, ROFstInfo origROFst, ROFstInfoProgressBarRefresh myProgressBarRefresh)
|
||||
{
|
||||
if (myProgressBarRefresh != null) myProgressBarRefresh(0, 100, "Starting Update");
|
||||
ROWorkingDraftAsk.ClearWorkingDrafts();
|
||||
|
||||
if (myProgressBarRefresh != null) myProgressBarRefresh(0, 100, "Starting Update");
|
||||
|
||||
int origFSTid = origROFst.ROFstID;
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
public static class ROWorkingDraftAsk
|
||||
{
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0044:Add readonly modifier", Justification = "Keeping Collections Not ReadOnly")]
|
||||
private static List<int> WorkingDrafts = new List<int>();
|
||||
|
||||
public static void AddWorkingDrafts(int wd) => WorkingDrafts.Add(wd);
|
||||
|
||||
public static void ClearWorkingDrafts() => WorkingDrafts.Clear();
|
||||
|
||||
public static bool ContainsWorkingDraft(int wd) => WorkingDrafts.Contains(wd);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -396,6 +396,7 @@
|
||||
<Compile Include="Minimal\UserReports.cs" />
|
||||
<Compile Include="Minimal\UserSettings.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Session\ROWorkingDraftAsk.cs" />
|
||||
<Compile Include="VEObjects\VEDrillDown.cs" />
|
||||
<Compile Include="VEObjects\VETreeNode.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
namespace Volian.Base.Library
|
||||
{
|
||||
public static class BaseLnSettings
|
||||
{
|
||||
public static bool blBaseLine { get; set; } = false;
|
||||
}
|
||||
}
|
||||
@@ -90,6 +90,7 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BaseLnSettings.cs" />
|
||||
<Compile Include="BigNum.cs" />
|
||||
<Compile Include="ByteArrayCompare.cs" />
|
||||
<Compile Include="DebugPrint.cs" />
|
||||
|
||||
@@ -613,7 +613,15 @@ namespace Volian.Controls.Library
|
||||
_In_DSOTabPanel_Enter = false;
|
||||
_MyDisplayTabControl.SelectedDisplayTabItem = MyDisplayTabItem;
|
||||
// B2018-070 Position the text cursor - Activate MS Word Panel
|
||||
_MyEdWord.GotoItem(EDWordLib.WdGoToItem.wdGoToObject, EDWordLib.WdGoToDirection.wdGoToNext, 0, null);
|
||||
try
|
||||
{
|
||||
_MyEdWord.GotoItem(EDWordLib.WdGoToItem.wdGoToObject, EDWordLib.WdGoToDirection.wdGoToNext, 0, null);
|
||||
}
|
||||
catch
|
||||
{
|
||||
//B2026-067 - Do nothing if cannot Position cursor
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
#region Public Methods
|
||||
|
||||
@@ -643,19 +643,16 @@ namespace Volian.Controls.Library
|
||||
if (_docVersionInfo != null && fstid != -1 && fstid != MyROFSTLookup.RofstID)
|
||||
{
|
||||
string message = string.Empty;
|
||||
if (_progressBar?.Text != "Cannot check-out Working Draft" && !MySessionInfo.CanCheckOutItem(_docVersionInfo.VersionID, CheckOutType.DocVersion, ref message))
|
||||
if (_progressBar?.Text != "RO Check Paused - Other Users In Set" && !MySessionInfo.CanCheckOutItem(_docVersionInfo.VersionID, CheckOutType.DocVersion, ref message))
|
||||
{
|
||||
FlexibleMessageBox.Show(this, message, "Working Draft Has Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
FinalProgressBarMessage = "Cannot check-out Working Draft";
|
||||
FinalProgressBarMessage = "RO Check Paused - Other Users In Set";
|
||||
}
|
||||
else if (!MySessionInfo.CanCheckOutItem(_docVersionInfo.VersionID, CheckOutType.DocVersion, ref message))
|
||||
{
|
||||
//do nothing - is still checked out
|
||||
}
|
||||
else if (changedDocVersion && !askedAboutchangedDocVersion)
|
||||
else if (changedDocVersion && !askedAboutchangedDocVersion && !ROWorkingDraftAsk.ContainsWorkingDraft(_docVersionInfo.VersionID))
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
if (MessageBox.Show($"There exists a newer ROFST for this RO database that was loaded for other sets.\r\n\r\nDo you want to update this set's ROs to be consistent/use the latest loaded ROFST?", "Load ROs", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
InitialProgressBarMessage = "Updating ROs";
|
||||
@@ -673,12 +670,14 @@ namespace Volian.Controls.Library
|
||||
updatedROs = true;
|
||||
|
||||
askedAboutchangedDocVersion = false;
|
||||
ROWorkingDraftAsk.ClearWorkingDrafts();
|
||||
}
|
||||
else
|
||||
{
|
||||
askedAboutchangedDocVersion = true;
|
||||
if (!ROWorkingDraftAsk.ContainsWorkingDraft(_docVersionInfo.VersionID))
|
||||
ROWorkingDraftAsk.AddWorkingDrafts(_docVersionInfo.VersionID);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -719,7 +718,7 @@ namespace Volian.Controls.Library
|
||||
if (tmpROID != null) ExpandNode(ROFSTLookup.FormatRoidKey(tmpROID, true));
|
||||
|
||||
//doc version would have updated (if needed) so reset flag
|
||||
if (_progressBar?.Text != "Cannot check-out Working Draft")
|
||||
if (_progressBar?.Text != "RO Check Paused - Other Users In Set")
|
||||
{
|
||||
changedDocVersion = false;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3684,15 +3684,14 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
ROFSTLookup myLookup = MySection.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MySection.MyDocVersion, null);
|
||||
|
||||
string accpgid = accpageid;
|
||||
|
||||
//B2022 - 083: Support Conditional RO Values
|
||||
ROFSTLookup.rochild roc = myLookup.GetROChildByAccPageID(string.Format("<{0}.{1}>", accpgid, multiid), MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
|
||||
//B2022-083: Support Conditional RO Values
|
||||
//C2026-047 first try the RO Lookup with the ascii dash character in the accpageid. If not found, try again with the unicode dash
|
||||
ROFSTLookup.rochild roc = myLookup.GetROChildByAccPageID(string.Format("<{0}.{1}>", accpageid.Replace(@"\u8209?", "-"), multiid), MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
|
||||
|
||||
if (roc.value == null)
|
||||
{
|
||||
accpgid = accpgid.Replace(@"\u8209?", "-");
|
||||
roc = myLookup.GetROChildByAccPageID(string.Format("<{0}.{1}>", accpgid, multiid), MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
|
||||
// try again but this time with the unicode dash
|
||||
roc = myLookup.GetROChildByAccPageID(string.Format("<{0}.{1}>", accpageid, multiid), MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
|
||||
}
|
||||
|
||||
if (!deflt.StartsWith("[") && !string.IsNullOrEmpty(roc.value) && roc.value.Trim().Length > 0) // don't return val if it's an empty or blank string - jsj 01-28-2019
|
||||
|
||||
@@ -1418,7 +1418,9 @@ namespace Volian.Print.Library
|
||||
float yoff = 0;
|
||||
if (_MyHelper.DidFirstPageDocStyle) yoff = origYoff - (float)mySection.MyDocStyle.Layout.TopMargin;
|
||||
// C2018-004 create meta file for baseline compares
|
||||
Volian.Base.Library.BaselineMetaFile.WriteLine("WD Height={0} Width={1} scPgCnt={2} locEnd={3} pdfSz={4} xOff={5} yOff={6} ScPgNum {7}", fgPage.Height, fgPage.Width, sectPageCount, locEndOfWordDoc, pdfSize, (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0.0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0.0) + yoff, pageNumber);
|
||||
|
||||
Volian.Base.Library.BaselineMetaFile.WriteLine("WD Height={0} Width={1} scPgCnt={2} locEnd={3} pdfSz={4} xOff={5} yOff={6} ScPgNum {7}", fgPage.Height, fgPage.Width, sectPageCount, Truncate(locEndOfWordDoc, 2), Truncate(pdfSize, 2), (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0.0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0.0) + yoff, pageNumber);
|
||||
|
||||
AddImportedPageToLayer(cb.PdfWriter.DirectContent, _MSWordLayer, fgPage, (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0) + yoff);
|
||||
// B2019-102 Handle PDF Destinations for Word Sections
|
||||
if (ii == 0 && _MyHelper.MyPromsPrinter.SaveLinks)
|
||||
@@ -1533,6 +1535,12 @@ namespace Volian.Print.Library
|
||||
}
|
||||
ProfileTimer.Pop(profileDepth);
|
||||
}
|
||||
public static float Truncate(float value, int digits)
|
||||
{
|
||||
double mult = Math.Pow(10.0, digits);
|
||||
double result = Math.Truncate(mult * value) / mult;
|
||||
return (float)result;
|
||||
}
|
||||
// B2019-152: AddMergedLandscapePage adds entries to the dictionary that keeps track of what pages in a pdf are landscape
|
||||
// so that if merge is done, the pages that are landscaped can have landscaped page numbers placed on them
|
||||
public static void AddMergedLandscapePage(VlnSvgPageHelper _MyHelper, string PDFFile)
|
||||
|
||||
@@ -1660,13 +1660,13 @@ i = 0;
|
||||
{
|
||||
ROFSTLookup myLookup = MySection.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MySection.MyDocVersion, overrideChild);
|
||||
|
||||
string accpgid = accpageid;
|
||||
ROFSTLookup.rochild roc = myLookup.GetROChildByAccPageID("<" + accpgid + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
|
||||
//C2026-047 first try the RO Lookup with the ascii dash character in the accpageid. If not found, try again with the unicode dash
|
||||
ROFSTLookup.rochild roc = myLookup.GetROChildByAccPageID("<" + accpageid.Replace(@"\u8209?", "-") + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
|
||||
|
||||
if (roc.value == null)
|
||||
{
|
||||
accpgid = accpgid.Replace(@"\u8209?", "-");
|
||||
roc = myLookup.GetROChildByAccPageID("<" + accpgid + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
|
||||
// try again but this time with the unicode dash
|
||||
roc = myLookup.GetROChildByAccPageID("<" + accpageid + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
|
||||
}
|
||||
|
||||
if (!deflt.StartsWith("[") && !string.IsNullOrEmpty(roc.value) && roc.value.Trim().Length > 0) // don't return val if it's an empty or blank string - jsj 01-28-2019
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
//using System.Drawing;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.IO;
|
||||
using iTextSharp.text.pdf;
|
||||
using iTextSharp.text;
|
||||
using Itenso.Rtf;
|
||||
using Itenso.Rtf.Parser;
|
||||
using Itenso.Rtf.Interpreter;
|
||||
using Itenso.Rtf.Support;
|
||||
using Volian.Controls.Library;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Base.Library;
|
||||
@@ -160,13 +155,44 @@ namespace Volian.Print.Library
|
||||
childItemInfo.SetHeader(childItemInfo.FormatStepData.TabData.Font, lastHeader);
|
||||
lastHeader = null;
|
||||
}
|
||||
// B2026-072 Caution/Note off of an RNO sub-step was printing on top of the parent AER sub-step text
|
||||
// ex: Farley Unit 1 AOPs 1-AOP-1.0, Procedure Steps section, step 8.4.1
|
||||
// if printing a Caution or Note type that is in the RNO column and we are a printing a two column section
|
||||
if ((childItemInfo.IsCaution || childItemInfo.IsNote) && childItemInfo.IsInRNO && childItemInfo.ColumnMode>0)
|
||||
{
|
||||
// get the starting positon of the RNO column
|
||||
float colR = float.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[childItemInfo.ColumnMode]);
|
||||
// get the starting position of the Caution or Note
|
||||
float startColOfCautionNote = xoff;
|
||||
if (bxIndx != null)
|
||||
{
|
||||
// if it is a boxed Caution or Note, then get the starting colun of the box
|
||||
Box bx = childItemInfo.ActiveFormat.PlantFormat.FormatData.BoxList[(int)bxIndx];
|
||||
startColOfCautionNote = bx.Start??0;
|
||||
}
|
||||
// If the starting positon of Caution/Note is in the AER column, find the y position of the last text line of
|
||||
// the AER parent to the RNO step.
|
||||
if (startColOfCautionNote < colR)
|
||||
{
|
||||
vlnParagraph tparent = Parent;
|
||||
while (tparent.MyItemInfo.IsInRNO) tparent = tparent.MyParent; // find the parent AER sub-step
|
||||
if (tparent != Parent && tparent.MyItemInfo.IsInSubStep)
|
||||
{
|
||||
// add the height of the AER sub-step text to its starting yoffset
|
||||
float tyoff = tparent.YOffset + tparent.Height;
|
||||
// while the position in the AER column (tyoff) is greater then or equal to starting position
|
||||
// of the Note or Caution, move down the page a line at time.
|
||||
// SixLinesPerInch adjusts for when we are printing in compress mode.
|
||||
while (tyoff >= yoff) yoff += vlnPrintObject.SixLinesPerInch;
|
||||
}
|
||||
}
|
||||
}
|
||||
// if the format has MatchUpRNOCautNote, then add a line to yoff, if not at top of rno column.
|
||||
if (childItemInfo.FormatStepData != null && childItemInfo.FormatStepData.MatchUpRNO)
|
||||
{
|
||||
if (childItemInfo.MyParent != null && childItemInfo.MyParent.MyParent != null && !childItemInfo.MyParent.MyParent.IsHigh)
|
||||
{
|
||||
yoff += vlnPrintObject.SixLinesPerInch;
|
||||
Parent.AdjustForMatchUpRNO = vlnPrintObject.SixLinesPerInch; // B2020-112
|
||||
}
|
||||
}
|
||||
// if this is a caution/note and it has a caution/note substep, do it before this caution/note, so that
|
||||
@@ -1554,7 +1580,6 @@ namespace Volian.Print.Library
|
||||
}
|
||||
private static bool DoSubs = true; // flag whether to print substeps (don't if doing continued checklist header)
|
||||
public float AdjustForXBlankW1stLevSub = 0; // B2020-112 this & next line
|
||||
public float AdjustForMatchUpRNO = 0;
|
||||
protected float _ContinueHeight = 0;
|
||||
public virtual float ContinueHeight
|
||||
{
|
||||
@@ -7170,11 +7195,6 @@ namespace Volian.Print.Library
|
||||
// //Console.WriteLine("Adjust Add extra Line (flag) = '{0}'", para);
|
||||
// adjust -= para.MyParent.AdjustForXBlankW1stLevSub;
|
||||
//}
|
||||
//if (para.AdjustForMatchUpRNO != 0 && (para.ChildrenAbove == null || para.ChildrenAbove.Count == 0))
|
||||
// adjust -= para.AdjustForMatchUpRNO;
|
||||
//else if (para.MyParent.AdjustForMatchUpRNO != 0 && (para.MyParent.ChildrenAbove != null && para.MyParent.ChildrenAbove.Count > 0)
|
||||
// && para.MyParent.ChildrenAbove[0] == para)
|
||||
// adjust -= para.MyParent.AdjustForMatchUpRNO;
|
||||
|
||||
if (!this[stepLevel].ContainsKey(-(yLocation + adjust)))
|
||||
this[stepLevel].Add(-(yLocation + adjust), para);
|
||||
|
||||
+42
-19
@@ -6,6 +6,7 @@ using System.Windows.Forms;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Text.RegularExpressions;
|
||||
using Volian.Base.Library;
|
||||
using VG;
|
||||
|
||||
namespace XYPlots
|
||||
@@ -282,9 +283,12 @@ namespace XYPlots
|
||||
{
|
||||
if (!File.Exists(FileName))
|
||||
{
|
||||
// File does not exist, show error message
|
||||
MessageBox.Show(String.Format("X/Y Plot File {0} Does Not Exist", FileName), "Error Opening X/Y Plot File");
|
||||
return false;
|
||||
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
|
||||
{
|
||||
// File does not exist, show error message
|
||||
MessageBox.Show(String.Format("X/Y Plot File {0} Does Not Exist", FileName), "Error Opening X/Y Plot File");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Open the X/Y Plot file
|
||||
try
|
||||
@@ -293,9 +297,12 @@ namespace XYPlots
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// cannot open the x/y plot file
|
||||
MessageBox.Show(e.Message, String.Format("Error Opening {0} for Reading", FileName));
|
||||
return false;
|
||||
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
|
||||
{
|
||||
// cannot open the x/y plot file
|
||||
MessageBox.Show(e.Message, String.Format("Error Opening {0} for Reading", FileName));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
int blen = (int)XYPlotFile.Length;
|
||||
int bread = 0;
|
||||
@@ -309,8 +316,11 @@ namespace XYPlots
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show(e.Message, String.Format("Error Reading {0}", FileName));
|
||||
return false;
|
||||
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
|
||||
{
|
||||
MessageBox.Show(e.Message, String.Format("Error Reading {0}", FileName));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
@@ -318,8 +328,11 @@ namespace XYPlots
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show(e.Message, String.Format("Error Closing {0}", FileName));
|
||||
return false;
|
||||
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
|
||||
{
|
||||
MessageBox.Show(e.Message, String.Format("Error Closing {0}", FileName));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < bbuf.Length; i++)
|
||||
@@ -446,7 +459,7 @@ namespace XYPlots
|
||||
char retval;
|
||||
StringBuilder Lbuff = new StringBuilder();
|
||||
retval = NextChar();
|
||||
if (retval != '"' && retval != '\x1C') // open double quote
|
||||
if (retval != '"' && retval != '\x1C' && !BaseLnSettings.blBaseLine) // open double quote
|
||||
MessageBox.Show("Double Quote not found", "Syntax problem in XY Plot");
|
||||
retval = NextChar();
|
||||
while (retval != 0 && retval != '\n')
|
||||
@@ -1440,7 +1453,10 @@ namespace XYPlots
|
||||
}
|
||||
private void PrintStackError(string relation, int limit)
|
||||
{
|
||||
MessageBox.Show(String.Format("Position Stack Pointer {0} {1}", relation, limit.ToString()), "Print Stack Error");
|
||||
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
|
||||
{
|
||||
MessageBox.Show(String.Format("Position Stack Pointer {0} {1}", relation, limit.ToString()), "Print Stack Error");
|
||||
}
|
||||
}
|
||||
private void SavePosition()
|
||||
{
|
||||
@@ -1658,8 +1674,11 @@ namespace XYPlots
|
||||
}
|
||||
private void err_exit(string msg, string msg2)
|
||||
{
|
||||
MessageBox.Show(msg + "\n" + msg2 + "\n\n This p=Process Will Terminate", "\n## ERROR ## - ");
|
||||
Environment.Exit(255);
|
||||
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
|
||||
{
|
||||
MessageBox.Show(msg + "\n" + msg2 + "\n\n This p=Process Will Terminate", "\n## ERROR ## - ");
|
||||
Environment.Exit(255);
|
||||
}
|
||||
}
|
||||
private void FindBoxesinArea(int ptval, int flag)
|
||||
{
|
||||
@@ -1916,7 +1935,7 @@ namespace XYPlots
|
||||
{
|
||||
// MSWord enters left and right double-quotes when you press the double-quote key
|
||||
//B2017 - Replace left and right double-quotes with normal double-quotes
|
||||
PlotCommands = PlotCommands.Replace('\u201C', '"').Replace('\u201D', '"');
|
||||
PlotCommands = PlotCommands.Replace('\u201C', '"').Replace('\u201D', '"');
|
||||
LoadBuffFromString(PlotCommands);
|
||||
Setup();
|
||||
//#if DEBUG
|
||||
@@ -1991,10 +2010,14 @@ namespace XYPlots
|
||||
AxisLabel[1] = getint();
|
||||
break;
|
||||
default:
|
||||
if (PrevCommand.Equals(null))
|
||||
MessageBox.Show("Check the first line of the X/Y Plot definition.", "Unrecognized Graph Command");
|
||||
else
|
||||
MessageBox.Show(string.Format("Problem with the X/Y Plot Command after {0}", PrevCommand.ToString()), "Unrecognized Graph Command");
|
||||
if (BaseLnSettings.blBaseLine == false) // B2026-056 suppress messages when running baseline.
|
||||
{
|
||||
if (PrevCommand.Equals(null))
|
||||
MessageBox.Show("Check the first line of the X/Y Plot definition.", "Unrecognized Graph Command");
|
||||
else
|
||||
MessageBox.Show(string.Format("Problem with the X/Y Plot Command after {0}", PrevCommand.ToString()), "Unrecognized Graph Command");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
PrevCommand = Command;
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
<Project>{52D74078-3822-410E-889B-464BD21AAB9E}</Project>
|
||||
<Name>VG</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Volian.Base.Library\Volian.Base.Library.csproj">
|
||||
<Project>{aeee9fd1-6892-45e2-a67e-418c06d46ff9}</Project>
|
||||
<Name>Volian.Base.Library</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
|
||||
Reference in New Issue
Block a user