Compare commits

...
Author SHA1 Message Date
plarsen 034aa67e31 C2026-041-invisible-position-changes-as-differences 2026-08-18 17:37:12 -04:00
plarsen f8ab3c57be C2026-041-invisible-position-changes-as-differences 2026-08-18 13:33:10 -04:00
plarsen 6376d4669b C2026-041-invisible-position-changes-as-differences 2026-08-18 13:22:29 -04:00
plarsen f9cce608d6 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-08-17 18:41:57 -04:00
plarsen 3d65b7c34a Development 2026-08-17 18:40:16 -04:00
jjenko dbea4abafb Merge pull request 'F2026-020 Added the missing Layout settings to "Attachments - Separate Page Numbers" document style in the Farley FSG format.' (#806) from F2026-20_Farley_FSG_Format into Development
format only change - good for testing
2026-08-14 11:01:17 -04:00
jjenko 57622931a5 F2026-020 Added the missing Layout settings to "Attachments - Separate Page Numbers" document style in the Farley FSG format. 2026-08-14 11:02:13 -04:00
mschill 75368c2fe0 Merge pull request 'F2026-018 Changed the font to Arial 11pt in all Farley formats B2026-072 Fixed bug where a Caution or Note in the RNO column would sometimes print on top of text in the AER column' (#805) from F2026-018_B2026-072_Farely_Arial_Print_Fix into Development
Looks Good to me. Ready for QA.
2026-08-13 14:31:33 -04:00
jjenko 5e071bd35a F2026-018 Changed the font to Arial 11pt in all Farley formats B2026-072 Fixed bug where a Caution or Note in the RNO column would sometimes print on top of text in the AER column 2026-08-13 14:28:55 -04:00
jjenko 77639318c6 Merge pull request 'F2026-019 FixedlLinked attachments that were showing a double attachment number prefixed to the step number Added a unlinked background step type that includes the attachment number' (#804) from F2026-019_CallawayBackgrounds into Development
format only change - good for testing
2026-08-12 10:37:04 -04:00
19 changed files with 179 additions and 288 deletions
+1
View File
@@ -67,6 +67,7 @@
<Compile Include="frmSettings.Designer.cs"> <Compile Include="frmSettings.Designer.cs">
<DependentUpon>frmSettings.cs</DependentUpon> <DependentUpon>frmSettings.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="frmBaseline.resx"> <EmbeddedResource Include="frmBaseline.resx">
+8
View File
@@ -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")]
-3
View File
@@ -1,7 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace Baseline namespace Baseline
+64 -187
View File
@@ -43,12 +43,9 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using System.Collections.Specialized;
using System.IO; using System.IO;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Xml.Serialization; using System.Xml.Serialization;
@@ -73,12 +70,7 @@ namespace Baseline
} }
public partial class frmBaseline : Form public partial class frmBaseline : Form
{ {
private IgnoreLines _MyIgnore = new IgnoreLines(); public IgnoreLines MyIgnore { get; set; } = new IgnoreLines();
public IgnoreLines MyIgnore
{
get { return _MyIgnore; }
set { _MyIgnore = value; }
}
private LastWas myLast = LastWas.Search; private LastWas myLast = LastWas.Search;
private Settings MySettings; private Settings MySettings;
public string MyStatus public string MyStatus
@@ -151,8 +143,10 @@ namespace Baseline
this.WindowState = Properties.Settings.Default.WidnowState; this.WindowState = Properties.Settings.Default.WidnowState;
if(Properties.Settings.Default.Ignore != null && Properties.Settings.Default.Ignore != "") if(Properties.Settings.Default.Ignore != null && Properties.Settings.Default.Ignore != "")
MyIgnore = IgnoreLines.Get(Properties.Settings.Default.Ignore); MyIgnore = IgnoreLines.Get(Properties.Settings.Default.Ignore);
MySettings= new Settings(); MySettings = new Settings
MySettings.IgnoreLines = new BindingList<string>(); {
IgnoreLines = new BindingList<string>()
};
splitContainer1.SplitterDistance = Properties.Settings.Default.Split1; splitContainer1.SplitterDistance = Properties.Settings.Default.Split1;
splitContainer2.SplitterDistance = Properties.Settings.Default.Split2; splitContainer2.SplitterDistance = Properties.Settings.Default.Split2;
splitContainer3.SplitterDistance = Properties.Settings.Default.Split3; splitContainer3.SplitterDistance = Properties.Settings.Default.Split3;
@@ -240,8 +234,7 @@ namespace Baseline
lbProcedures.Items.Clear(); lbProcedures.Items.Clear();
lbResults1.Items.Clear(); lbResults1.Items.Clear();
lbResults2.Items.Clear(); lbResults2.Items.Clear();
FindFile ff = lbDifferent.SelectedItem as FindFile; if (lbDifferent.SelectedItem is FindFile ff)
if (ff != null)
{ {
// Fill Procedure or Result ListBoxes // Fill Procedure or Result ListBoxes
switch (myLast) switch (myLast)
@@ -361,13 +354,6 @@ namespace Baseline
lines1 = list1.AsEnumerable<string>();// Convert back to Enumerable to work with LINQ lines1 = list1.AsEnumerable<string>();// Convert back to Enumerable to work with LINQ
return lines1; 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> /// <summary>
/// Include lines for Procedure or Page or Search is true /// Include lines for Procedure or Page or Search is true
/// Account for Case Insensitive CheckBox /// Account for Case Insensitive CheckBox
@@ -450,8 +436,8 @@ namespace Baseline
private void lbResults1_SelectedIndexChanged(object sender, EventArgs e) private void lbResults1_SelectedIndexChanged(object sender, EventArgs e)
{ {
string line=null; string line=null;
if (lbResults1.SelectedItem is string) if (lbResults1.SelectedItem is string v)
line = (string)lbResults1.SelectedItem; line = v;
Line myLine = lbResults1.SelectedItem as Line; Line myLine = lbResults1.SelectedItem as Line;
switch (myLast) switch (myLast)
{ {
@@ -472,8 +458,8 @@ namespace Baseline
{ {
string line=null; string line=null;
if(lbResults2.SelectedItem is string) if(lbResults2.SelectedItem is string v)
line = (string)lbResults2.SelectedItem; line = v;
Line myLine = lbResults2.SelectedItem as Line; Line myLine = lbResults2.SelectedItem as Line;
switch (myLast) switch (myLast)
@@ -515,15 +501,9 @@ namespace Baseline
/// <returns></returns> /// <returns></returns>
private string ParseOutProcedureNumberFromLine(string txt) 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 // 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 // so look for the last occurence of ".." which will be the end of the section information
lidx = txt.LastIndexOf(".."); int lidx = txt.LastIndexOf("..");
if (lidx > 0) if (lidx > 0)
{ {
lidx = txt.LastIndexOf(".S", lidx); // this will position us to the end of the procedure number lidx = txt.LastIndexOf(".S", lidx); // this will position us to the end of the procedure number
@@ -532,8 +512,12 @@ namespace Baseline
{ {
lidx = txt.LastIndexOf(".S"); // this will position us to the end of the procedure number if there was no step information lidx = txt.LastIndexOf(".S"); // this will position us to the end of the procedure number if there was no step information
} }
// 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. // 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("\\", "_"); string rtnstr = txt.Substring(8, lidx - 8).Replace("/", "_").Replace("\\", "_");
return rtnstr; return rtnstr;
} }
@@ -616,10 +600,10 @@ namespace Baseline
progname = @"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe"; progname = @"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe";
System.Diagnostics.ProcessStartInfo psi = System.Diagnostics.ProcessStartInfo psi =
new System.Diagnostics.ProcessStartInfo(progname, string.Format(@" -t ""{0}"" ""{1}""", compareFile, baseFile)); 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; private Timer queueTimer = null;
/// <summary> /// <summary>
/// Move a Process to a specific screen location - This is done with a timer so /// Move a Process to a specific screen location - This is done with a timer so
@@ -632,8 +616,10 @@ namespace Baseline
{ {
if (queueTimer == null) if (queueTimer == null)
{ {
queueTimer = new Timer(); queueTimer = new Timer
queueTimer.Enabled = false; {
Enabled = false
};
queueTimer.Tick += queueTimer_Tick; queueTimer.Tick += queueTimer_Tick;
queueTimer.Interval = 1000; queueTimer.Interval = 1000;
} }
@@ -669,7 +655,7 @@ namespace Baseline
string procPatern = string.Format("*{0}*.pdf", proc == string.Empty ? "noProcNumber" : proc); string procPatern = string.Format("*{0}*.pdf", proc == string.Empty ? "noProcNumber" : proc);
int pagenum = myLine.MyPage.Number; int pagenum = myLine.MyPage.Number;
FindFile ff = lbDifferent.SelectedItem as FindFile; FindFile ff = lbDifferent.SelectedItem as FindFile;
string PDFfileName = null; string PDFfileName;
if (list == 1) if (list == 1)
{ {
FileInfo fi1 = new FileInfo(ff.File1); FileInfo fi1 = new FileInfo(ff.File1);
@@ -702,9 +688,11 @@ namespace Baseline
} }
} }
// open the PDF and jump to the page number // 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)); 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); UseShellExecute = false
};
_ = System.Diagnostics.Process.Start(psi1);
} }
/// <summary> /// <summary>
/// Perform Debug Meta file comparison for all of the folders within the automated testing folders /// Perform Debug Meta file comparison for all of the folders within the automated testing folders
@@ -786,8 +774,7 @@ namespace Baseline
private void lbProcedures_SelectedIndexChanged(object sender, EventArgs e) private void lbProcedures_SelectedIndexChanged(object sender, EventArgs e)
{ {
//Initialize Results List Box //Initialize Results List Box
Procedure myProc = lbProcedures.SelectedItem as Procedure; if (!(lbProcedures.SelectedItem is Procedure myProc)) return; // clicked on the white space (blank line) in the list of different procedures
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 //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); Procedure myProc1 = MyProcs1.Find(x => x.Number == myProc.Number && x.Title == myProc.Title);
// Build the results ListBox for the left window // Build the results ListBox for the left window
@@ -836,27 +823,12 @@ namespace Baseline
}; };
public class Settings public class Settings
{ {
private BindingList<string> _IgnoreLines; public BindingList<string> IgnoreLines { get; set; }
public BindingList<string> IgnoreLines
{
get { return _IgnoreLines; }
set { _IgnoreLines = value; }
}
} }
public partial class FindFile public partial class FindFile
{ {
private string _File1; public string File1 { get; set; }
public string File1 public string File2 { get; set; }
{
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 FindFile(string file1, string file2)
{ {
File1 = file1; File1 = file1;
@@ -865,11 +837,8 @@ namespace Baseline
} }
public partial class FindFiles : List<FindFile> public partial class FindFiles : List<FindFile>
{ {
private string _FileName; private readonly string _FileName;
public string FileName public string FileName => _FileName;
{
get { return _FileName; }
}
/// <summary> /// <summary>
/// Build list of DocVersion Folders with differences /// Build list of DocVersion Folders with differences
/// </summary> /// </summary>
@@ -1103,33 +1072,15 @@ namespace Baseline
// Text - the line of text // Text - the line of text
public partial class Procedure public partial class Procedure
{ {
private string _Number; public string Number { get; set; }
public string Number public string Title { get; set; }
{ public Pages MyPages { get; set; } = new Pages();
get { return _Number; }
set { _Number = value; }
}
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) public Procedure(string number, string title)
{ {
_Number = number; Number = number;
_Title = title; 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> public partial class Procedures : List<Procedure>
{ {
@@ -1161,76 +1112,33 @@ namespace Baseline
} }
public partial class Page public partial class Page
{ {
private int _Number; public int Number { get; set; }
public int Number
{
get { return _Number; }
set { _Number = value; }
}
private Lines _MyLines = new Lines();
public Lines MyLines public Lines MyLines { get; set; } = new Lines();
{ public Page(int number) => Number = number;
get { return _MyLines; } public override string ToString() => string.Format("Page {0}", Number);
set { _MyLines = value; }
}
public Page(int number)
{
_Number = number;
}
public override string ToString()
{
return string.Format("Page {0}", Number);
}
} }
public partial class Pages : List<Page> public partial class Pages : List<Page>
{ {
public void Add(int number) public void Add(int number) => Add(new Page(number));
{
Add(new Page(number));
}
} }
public partial class Line public partial class Line
{ {
private Procedure _MyProc; public Procedure MyProc { get; set; }
public Procedure MyProc public Page MyPage { get; set; }
{ public string Text { get; set; }
get { return _MyProc; } public Line(string text) => Text = text;
set { _MyProc = value; }
}
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) public Line(string text, Procedure myProc, Page myPage)
{ {
_Text = text; Text = text;
_MyProc = myProc; MyProc = myProc;
_MyPage = myPage; MyPage = myPage;
}
public override string ToString()
{
return Text;
} }
public override string ToString() => Text;
} }
public partial class Lines : List<Line> public partial class Lines : List<Line>
{ {
public void Add(string text) public void Add(string text) => Add(new Line(text));
{
Add(new Line(text));
}
} }
[Serializable] [Serializable]
public partial class IgnoreLine public partial class IgnoreLine
@@ -1269,20 +1177,11 @@ namespace Baseline
public IgnoreLines() public IgnoreLines()
{ {
} }
public void Add(string text, Relation searchType, bool active) public void Add(string text, Relation searchType, bool active) => Add(new IgnoreLine(text, searchType, active));
{
Add(new IgnoreLine(text, searchType, active));
}
// Convert IgnoreLines to string (XML) // Convert IgnoreLines to string (XML)
public override string ToString() public override string ToString() => GenericSerializer<IgnoreLines>.StringSerialize(this);
{
return GenericSerializer<IgnoreLines>.StringSerialize(this);
}
// Convert string to IgnoreLines // Convert string to IgnoreLines
public static IgnoreLines Get(string xml) public static IgnoreLines Get(string xml) => GenericSerializer<IgnoreLines>.StringDeserialize(xml);
{
return GenericSerializer<IgnoreLines>.StringDeserialize(xml);
}
} }
/// <summary> /// <summary>
/// This is a simple serializer that takes a class and converts it to and from string (XML) /// This is a simple serializer that takes a class and converts it to and from string (XML)
@@ -1311,7 +1210,7 @@ namespace Baseline
string ss = s.Replace("encoding=\"utf-16\"", ""); string ss = s.Replace("encoding=\"utf-16\"", "");
XmlSerializer xs = new XmlSerializer(typeof(T)); XmlSerializer xs = new XmlSerializer(typeof(T));
UTF8Encoding enc = new UTF8Encoding(); UTF8Encoding enc = new UTF8Encoding();
Byte[] arrBytData = enc.GetBytes(ss); byte[] arrBytData = enc.GetBytes(ss);
using (MemoryStream ms = new MemoryStream(arrBytData)) using (MemoryStream ms = new MemoryStream(arrBytData))
{ {
t = (T)xs.Deserialize(ms); t = (T)xs.Deserialize(ms);
@@ -1326,10 +1225,7 @@ namespace Baseline
{ {
public NonXsiTextWriter(TextWriter w) : base(w) { } public NonXsiTextWriter(TextWriter w) : base(w) { }
public NonXsiTextWriter(Stream w, Encoding encoding) public NonXsiTextWriter(Stream w, Encoding encoding)
: base(w, encoding) : base(w, encoding) => Formatting = Formatting.Indented;
{
this.Formatting = Formatting.Indented;
}
public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { } public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { }
bool _skip = false; bool _skip = false;
public override void WriteStartAttribute(string prefix, string localName, string ns) public override void WriteStartAttribute(string prefix, string localName, string ns)
@@ -1372,32 +1268,16 @@ namespace Baseline
public const short SWP_NOZORDER = 0X4; public const short SWP_NOZORDER = 0X4;
public const int SWP_SHOWWINDOW = 0x0040; public const int SWP_SHOWWINDOW = 0x0040;
private System.Diagnostics.Process _Process; public System.Diagnostics.Process Process { get; set; }
public int X { get; set; }
public System.Diagnostics.Process Process public int Y { get; set; }
{
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 ProcessLocation(System.Diagnostics.Process process, int x, int y)
{ {
Process = process; Process = process;
X = x; X = x;
Y = y; Y = y;
} }
private static Boolean FoxitSettingInfo = true; private static bool FoxitSettingInfo = true;
/// <summary> /// <summary>
/// MoveIt() moves the window containing the PDF viewer to the right so the two pdf viewer windows will not overlap. /// MoveIt() moves the window containing the PDF viewer to the right so the two pdf viewer windows will not overlap.
@@ -1418,10 +1298,7 @@ namespace Baseline
} }
public class ProcessLocationQueue: Queue<ProcessLocation> public class ProcessLocationQueue: Queue<ProcessLocation>
{ {
public void Add(System.Diagnostics.Process process, int x, int y) public void Add(System.Diagnostics.Process process, int x, int y) => Enqueue(new ProcessLocation(process, x, y));
{
Enqueue(new ProcessLocation(process,x,y));
}
public void ProcessNext() public void ProcessNext()
{ {
ProcessLocation pl = Dequeue(); ProcessLocation pl = Dequeue();
+5 -25
View File
@@ -1,11 +1,4 @@
using System; 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 Baseline namespace Baseline
@@ -19,17 +12,7 @@ namespace Baseline
set { set {
_MyIgnore = value; _MyIgnore = value;
dgv.DataSource=null; 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; 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) public frmSettings(IgnoreLines myIgnore)
@@ -46,19 +29,16 @@ namespace Baseline
col.ValueType = typeof(Relation); col.ValueType = typeof(Relation);
} }
private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e) private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e) => Console.WriteLine("Here");
{
Console.WriteLine("Here");
}
private void btnOK_Click(object sender, EventArgs e) private void btnOK_Click(object sender, EventArgs e)
{ {
this.DialogResult = System.Windows.Forms.DialogResult.OK; DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close(); Close();
} }
private void btnCancel_Click(object sender, EventArgs e) private void btnCancel_Click(object sender, EventArgs e)
{ {
this.DialogResult = System.Windows.Forms.DialogResult.Cancel; DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.Close(); Close();
} }
} }
} }
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.
+9 -1
View File
@@ -1418,7 +1418,9 @@ namespace Volian.Print.Library
float yoff = 0; float yoff = 0;
if (_MyHelper.DidFirstPageDocStyle) yoff = origYoff - (float)mySection.MyDocStyle.Layout.TopMargin; if (_MyHelper.DidFirstPageDocStyle) yoff = origYoff - (float)mySection.MyDocStyle.Layout.TopMargin;
// C2018-004 create meta file for baseline compares // 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); 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 // B2019-102 Handle PDF Destinations for Word Sections
if (ii == 0 && _MyHelper.MyPromsPrinter.SaveLinks) if (ii == 0 && _MyHelper.MyPromsPrinter.SaveLinks)
@@ -1533,6 +1535,12 @@ namespace Volian.Print.Library
} }
ProfileTimer.Pop(profileDepth); 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 // 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 // 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) public static void AddMergedLandscapePage(VlnSvgPageHelper _MyHelper, string PDFFile)
+32 -12
View File
@@ -1,15 +1,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
//using System.Drawing;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.IO; using System.IO;
using iTextSharp.text.pdf; using iTextSharp.text.pdf;
using iTextSharp.text; using iTextSharp.text;
using Itenso.Rtf;
using Itenso.Rtf.Parser;
using Itenso.Rtf.Interpreter;
using Itenso.Rtf.Support;
using Volian.Controls.Library; using Volian.Controls.Library;
using VEPROMS.CSLA.Library; using VEPROMS.CSLA.Library;
using Volian.Base.Library; using Volian.Base.Library;
@@ -160,13 +155,44 @@ namespace Volian.Print.Library
childItemInfo.SetHeader(childItemInfo.FormatStepData.TabData.Font, lastHeader); childItemInfo.SetHeader(childItemInfo.FormatStepData.TabData.Font, lastHeader);
lastHeader = null; 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 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.FormatStepData != null && childItemInfo.FormatStepData.MatchUpRNO)
{ {
if (childItemInfo.MyParent != null && childItemInfo.MyParent.MyParent != null && !childItemInfo.MyParent.MyParent.IsHigh) if (childItemInfo.MyParent != null && childItemInfo.MyParent.MyParent != null && !childItemInfo.MyParent.MyParent.IsHigh)
{ {
yoff += vlnPrintObject.SixLinesPerInch; 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 // 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) 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 AdjustForXBlankW1stLevSub = 0; // B2020-112 this & next line
public float AdjustForMatchUpRNO = 0;
protected float _ContinueHeight = 0; protected float _ContinueHeight = 0;
public virtual float ContinueHeight public virtual float ContinueHeight
{ {
@@ -7170,11 +7195,6 @@ namespace Volian.Print.Library
// //Console.WriteLine("Adjust Add extra Line (flag) = '{0}'", para); // //Console.WriteLine("Adjust Add extra Line (flag) = '{0}'", para);
// adjust -= para.MyParent.AdjustForXBlankW1stLevSub; // 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))) if (!this[stepLevel].ContainsKey(-(yLocation + adjust)))
this[stepLevel].Add(-(yLocation + adjust), para); this[stepLevel].Add(-(yLocation + adjust), para);