Get data into memory for approval generation so that page number transitions resolve
Fixed B2014-025:If not master/slave, load all data into memory for page number transitions. Present dialog if there are errors in page number transitions so that user can resolve. Added a property to determine if page number transition has incorrect page number caused by length of step’s text/wrapping & pagination Set property to determine if page number transition has incorrect page number caused by length of step’s text/wrapping & pagination Add tracking of inconsistent page number transitions; if pdf already open, don’t run 2nd pass for page number transitions (resulting pdf had unresolved page numbers);
This commit is contained in:
parent
63acad915d
commit
622717ba1a
@ -537,6 +537,7 @@ namespace VEPROMS
|
|||||||
MyProcedure = myProc;
|
MyProcedure = myProc;
|
||||||
if (myProc.Sections != null)
|
if (myProc.Sections != null)
|
||||||
{
|
{
|
||||||
|
// This is master/slave & a slave has been selected for printing (SelectedSlave > 0)
|
||||||
if (SelectedSlave > 0)
|
if (SelectedSlave > 0)
|
||||||
{
|
{
|
||||||
MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = SelectedSlave;
|
MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = SelectedSlave;
|
||||||
@ -555,6 +556,7 @@ namespace VEPROMS
|
|||||||
frmStatus.ShowDialog();
|
frmStatus.ShowDialog();
|
||||||
if (frmStatus.CancelPrinting) break;
|
if (frmStatus.CancelPrinting) break;
|
||||||
}
|
}
|
||||||
|
// This is a master/slave for printing of all slaves (SelectedSave == 0)
|
||||||
else if (SelectedSlave == 0)
|
else if (SelectedSlave == 0)
|
||||||
{
|
{
|
||||||
for (int k = 1; k <= MyProcedure.MyDocVersion.MultiUnitCount; k++)
|
for (int k = 1; k <= MyProcedure.MyDocVersion.MultiUnitCount; k++)
|
||||||
@ -575,6 +577,7 @@ namespace VEPROMS
|
|||||||
if (frmStatus.CancelPrinting) break;
|
if (frmStatus.CancelPrinting) break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Not master/slave
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetupForProcedure();
|
SetupForProcedure();
|
||||||
@ -583,6 +586,9 @@ namespace VEPROMS
|
|||||||
pbPDFsStatus.Value = i;
|
pbPDFsStatus.Value = i;
|
||||||
// this.Text = string.Format("Create PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
|
// 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.
|
// RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered.
|
||||||
|
if (MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier)
|
||||||
|
MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave);
|
||||||
|
else
|
||||||
MyProcedure = ProcedureInfo.GetItemAndChildren(MyProcedure.ItemID);
|
MyProcedure = ProcedureInfo.GetItemAndChildren(MyProcedure.ItemID);
|
||||||
frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50), cbxBlankPgsForDuplex.Checked);
|
frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50), cbxBlankPgsForDuplex.Checked);
|
||||||
frmStatus.CloseWhenDone = true;
|
frmStatus.CloseWhenDone = true;
|
||||||
@ -713,7 +719,9 @@ namespace VEPROMS
|
|||||||
{
|
{
|
||||||
DateTime dtStart = DateTime.Now;
|
DateTime dtStart = DateTime.Now;
|
||||||
_MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString();
|
_MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString();
|
||||||
|
PromsPrinter.ClearTransPageNumProblems();
|
||||||
CreatePDFs();
|
CreatePDFs();
|
||||||
|
PromsPrinter.ReportTransPageNumProblems();
|
||||||
if (VlnSettings.DebugMode)
|
if (VlnSettings.DebugMode)
|
||||||
{
|
{
|
||||||
MessageBox.Show(string.Format("{0} Minutes to Print All Procedures"
|
MessageBox.Show(string.Format("{0} Minutes to Print All Procedures"
|
||||||
@ -722,7 +730,7 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
else // Production or Demo mode
|
else // Production or Demo mode
|
||||||
{
|
{
|
||||||
MessageBox.Show("Completed Successfully","Print All Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show("Completed Successfully", "Print All Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
}
|
}
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
@ -1027,6 +1027,9 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (pi.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier)
|
||||||
|
pi = ProcedureInfo.GetItemAndChildrenByUnit(pi.ItemID, 0, pi.MyDocVersion.DocVersionConfig.SelectedSlave);
|
||||||
|
else
|
||||||
pi = ProcedureInfo.GetItemAndChildren(pi.ItemID);
|
pi = ProcedureInfo.GetItemAndChildren(pi.ItemID);
|
||||||
pi.ChangeBarDate = myDTS;
|
pi.ChangeBarDate = myDTS;
|
||||||
cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false, pi.ChangeBarDate);
|
cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false, pi.ChangeBarDate);
|
||||||
|
@ -113,6 +113,7 @@ namespace VEPROMS
|
|||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
MyPromsPrinter.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
|
MyPromsPrinter.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
|
||||||
DateTime tStart = DateTime.Now;
|
DateTime tStart = DateTime.Now;
|
||||||
|
if (!CancelStop) PromsPrinter.ClearTransPageNumProblems();
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
_PdfFile = MyPromsPrinter.Print(PDFPath);
|
_PdfFile = MyPromsPrinter.Print(PDFPath);
|
||||||
@ -123,6 +124,7 @@ namespace VEPROMS
|
|||||||
this.Close();
|
this.Close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (!CancelStop) PromsPrinter.ReportTransPageNumProblems();
|
||||||
DateTime tEnd = DateTime.Now;
|
DateTime tEnd = DateTime.Now;
|
||||||
MyStatus = _PdfFile + " created.";
|
MyStatus = _PdfFile + " created.";
|
||||||
MyStatus = string.Format("{0} created in {1:0.} milliseconds", _PdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds));
|
MyStatus = string.Format("{0} created in {1:0.} milliseconds", _PdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds));
|
||||||
|
@ -570,18 +570,29 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
set { _PrintLevel = value; }
|
set { _PrintLevel = value; }
|
||||||
}
|
}
|
||||||
// The following property tracks the page number that this item is on if the resolved
|
// The following properties track the page number that this item is on if the resolved
|
||||||
// transition text has a Page Number associated with it. Formats that have this either
|
// transition text has a Page Number associated with it. Formats that have this either
|
||||||
// have the UseTransitionModfier flag or have '{Page Num}' in respective transition formats.
|
// have the UseTransitionModfier flag or have '{Page Num}' in respective transition formats.
|
||||||
// If the format requires page numbers in transitions text, two passes are run through the
|
// If the format requires page numbers in transitions text, two passes are run through the
|
||||||
// data for printing. The first determines page numbers, the seconds resolves the transition
|
// data for printing. The first determines page numbers, the seconds resolves the transition
|
||||||
// text.
|
// text. The PageNumberUsed value is used to determine if the page number in 1st & 2nd passes
|
||||||
|
// are different. This can be caused by the page number text causing different heights of
|
||||||
|
// the step that causes change in pagination. If this occurs, the user is presented with a
|
||||||
|
// dialog box that shows the step that causes the problem & a manual change will be necessary.
|
||||||
|
// This is a rare occurence so it was decided that the amount of coding effort to fix this
|
||||||
|
// would be so much in comparison to having the user fix manually (RHM/KBR Feb 2014).
|
||||||
private int _PageNumber = 0;
|
private int _PageNumber = 0;
|
||||||
public int PageNumber
|
public int PageNumber
|
||||||
{
|
{
|
||||||
get { return _PageNumber; }
|
get { return _PageNumber; }
|
||||||
set { _PageNumber = value; }
|
set { _PageNumber = value; }
|
||||||
}
|
}
|
||||||
|
private int _PageNumberUsed = 0;
|
||||||
|
public int PageNumberUsed
|
||||||
|
{
|
||||||
|
get { return _PageNumberUsed; }
|
||||||
|
set { _PageNumberUsed = value; }
|
||||||
|
}
|
||||||
private float _MSWordPageCount = 0;
|
private float _MSWordPageCount = 0;
|
||||||
public float MSWordPageCount
|
public float MSWordPageCount
|
||||||
{
|
{
|
||||||
|
@ -808,6 +808,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
if (tb._ToItem.PageNumber != 0 && tb._FromItem.PageNumber != 0)
|
if (tb._ToItem.PageNumber != 0 && tb._FromItem.PageNumber != 0)
|
||||||
{
|
{
|
||||||
int pgoffset = tb._ToItem.PageNumber - tb._FromItem.PageNumber;
|
int pgoffset = tb._ToItem.PageNumber - tb._FromItem.PageNumber;
|
||||||
|
tb._ToItem.PageNumberUsed = tb._ToItem.PageNumber;
|
||||||
switch (pgoffset)
|
switch (pgoffset)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -155,6 +155,26 @@ namespace Volian.Print.Library
|
|||||||
get { return _InsertBlankPages; }
|
get { return _InsertBlankPages; }
|
||||||
set { _InsertBlankPages = value; }
|
set { _InsertBlankPages = value; }
|
||||||
}
|
}
|
||||||
|
private static List<string> _TransPageNumProblems = null;
|
||||||
|
public static List<string> TransPageNumProblems
|
||||||
|
{
|
||||||
|
get { return PromsPrinter._TransPageNumProblems; }
|
||||||
|
set { PromsPrinter._TransPageNumProblems = value; }
|
||||||
|
}
|
||||||
|
public static void ClearTransPageNumProblems()
|
||||||
|
{
|
||||||
|
_TransPageNumProblems = null;
|
||||||
|
}
|
||||||
|
public static void ReportTransPageNumProblems()
|
||||||
|
{
|
||||||
|
if (TransPageNumProblems != null && TransPageNumProblems.Count > 0)
|
||||||
|
{
|
||||||
|
string pnProbl = null;
|
||||||
|
foreach (string pstr in TransPageNumProblems)
|
||||||
|
pnProbl = pnProbl + "\n" + pstr;
|
||||||
|
MessageBox.Show("Review the page numbers specified on transitions that transition to the following:\n" + pnProbl, "Inconsistent transition page numbers.");
|
||||||
|
}
|
||||||
|
}
|
||||||
public PromsPrinter(ItemInfo myItem, string rev, string watermark, bool debugOutput, bool origPgBrk, string backgroundFolder, bool openPDF, bool overWrite, ChangeBarDefinition cbd, String pdfFile, bool insertBlankPages)
|
public PromsPrinter(ItemInfo myItem, string rev, string watermark, bool debugOutput, bool origPgBrk, string backgroundFolder, bool openPDF, bool overWrite, ChangeBarDefinition cbd, String pdfFile, bool insertBlankPages)
|
||||||
{
|
{
|
||||||
_MyItem = myItem;
|
_MyItem = myItem;
|
||||||
@ -180,7 +200,8 @@ namespace Volian.Print.Library
|
|||||||
// if the plant uses transition modifiers and/or page num in transition format,
|
// if the plant uses transition modifiers and/or page num in transition format,
|
||||||
// need to do two passes. First pass, sets the pagenumbers for each item,
|
// need to do two passes. First pass, sets the pagenumbers for each item,
|
||||||
// 2nd pass fills in the page numbers in transitions.
|
// 2nd pass fills in the page numbers in transitions.
|
||||||
Print(_MyItem as ProcedureInfo, pdfFolder);
|
string retstr = Print(_MyItem as ProcedureInfo, pdfFolder);
|
||||||
|
if (retstr == null) return null;
|
||||||
ProcedureInfo.RefreshPageNumTransitions(_MyItem as ProcedureInfo);
|
ProcedureInfo.RefreshPageNumTransitions(_MyItem as ProcedureInfo);
|
||||||
return Print(_MyItem as ProcedureInfo, pdfFolder);
|
return Print(_MyItem as ProcedureInfo, pdfFolder);
|
||||||
}
|
}
|
||||||
@ -312,6 +333,8 @@ namespace Volian.Print.Library
|
|||||||
private static List<SectionInfo> _MyFoldoutSection = null;
|
private static List<SectionInfo> _MyFoldoutSection = null;
|
||||||
private string Print(ProcedureInfo myProcedure, string pdfFolder)
|
private string Print(ProcedureInfo myProcedure, string pdfFolder)
|
||||||
{
|
{
|
||||||
|
if (_TransPageNumProblems == null) _TransPageNumProblems = new List<string>();
|
||||||
|
|
||||||
if (_MyFoldoutReader != null) _MyFoldoutReader.Clear();
|
if (_MyFoldoutReader != null) _MyFoldoutReader.Clear();
|
||||||
else _MyFoldoutReader = new List<PdfReader>();
|
else _MyFoldoutReader = new List<PdfReader>();
|
||||||
|
|
||||||
|
@ -313,6 +313,11 @@ namespace Volian.Print.Library
|
|||||||
public float ParagraphToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin)
|
public float ParagraphToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin)
|
||||||
{
|
{
|
||||||
if (MyItemInfo.PageNumber == 0) MyItemInfo.PageNumber = MyPageHelper.CurrentPageNumber;
|
if (MyItemInfo.PageNumber == 0) MyItemInfo.PageNumber = MyPageHelper.CurrentPageNumber;
|
||||||
|
else if (MyItemInfo.PageNumberUsed != 0 && MyItemInfo.PageNumberUsed != MyPageHelper.CurrentPageNumber)
|
||||||
|
{
|
||||||
|
if (PromsPrinter.TransPageNumProblems == null) PromsPrinter.TransPageNumProblems = new List<string>();
|
||||||
|
PromsPrinter.TransPageNumProblems.Add(MyItemInfo.ShortPath);
|
||||||
|
}
|
||||||
if (Processed) return yPageStart;
|
if (Processed) return yPageStart;
|
||||||
//float localYPageStart = yPageStart;
|
//float localYPageStart = yPageStart;
|
||||||
Processed = true;
|
Processed = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user