Use "GetItemAndChildren" to assure that the latest data is used.

Fixed logic if trying to create a PDF while a previous PDF is open.
This commit is contained in:
Rich 2012-11-05 21:58:02 +00:00
parent 127a917e1e
commit 7b5fdd9f74
3 changed files with 29 additions and 119 deletions

View File

@ -393,11 +393,14 @@ namespace VEPROMS
pbPDFsStatus.Text = string.Format("Creating PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
pbPDFsStatus.Value = i;
// RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered.
frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNum, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left,Bottom-50));
frmStatus.CloseWhenDone = true;
frmStatus.CancelStop = true;
frmStatus.ShowDialog();
if (frmStatus.CancelPrinting) break;
using (ProcedureInfo pi = ProcedureInfo.GetItemAndChildren(myProc.ItemID))
{
frmPDFStatusForm frmStatus = new frmPDFStatusForm(pi, RevNum, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50));
frmStatus.CloseWhenDone = true;
frmStatus.CancelStop = true;
frmStatus.ShowDialog();
if (frmStatus.CancelPrinting) break;
}
}
}
pbPDFsStatus.Visible = false;
@ -429,8 +432,11 @@ namespace VEPROMS
// Also check that format allows override.
ChangeBarDefinition cbd = DetermineChangeBarSettings();
// RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered.
frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNum, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50));
frmStatus.ShowDialog();
using (ProcedureInfo pi = ProcedureInfo.GetItemAndChildren(MyProcedure.ItemID))
{
frmPDFStatusForm frmStatus = new frmPDFStatusForm(pi, RevNum, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50));
frmStatus.ShowDialog();
}
this.Close();
ShowDebugFiles();
}

View File

@ -641,11 +641,11 @@ namespace VEPROMS
RevNumber = proc.ProcedureConfig.Print_Rev == string.Empty ? "0" : proc.ProcedureConfig.Print_Rev;
//AppRevDate Change
//DateTime revdate;
//string print_revdate = proc.ProcedureConfig.Print_RevDate;
RevDate = proc.ProcedureConfig.Print_RevDate;
//if (print_revdate == string.Empty && DateTime.TryParse(RevNumber, out revdate))
// ;
// ;
//else
// revdate = DateTime.TryParse(proc.ProcedureConfig.Print_RevDate.Replace("-","/").Replace("00/","01/"), out revdate) ? revdate : DateTime.Now;
// revdate = DateTime.TryParse(proc.ProcedureConfig.Print_RevDate.Replace("-", "/").Replace("00/", "01/"), out revdate) ? revdate : DateTime.Now;
//RevDate = revdate;
}
}
@ -989,10 +989,13 @@ namespace VEPROMS
// Moved to end so that Item and Content are saved at the same time
//UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS);
string waterMark = Stage.Get(RevStage).IsApproved > 0 ? null : Stage.Get(RevStage).Name;
frmPDFStatusForm frm = new frmPDFStatusForm(pi, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location);
frm.AllowAllWatermarks = true;
frm.CloseWhenDone = !ViewPDF;
frm.ShowDialog();
using (ProcedureInfo myproc = ProcedureInfo.GetItemAndChildren(pi.ItemID))
{
frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location);
frm.AllowAllWatermarks = true;
frm.CloseWhenDone = !ViewPDF;
frm.ShowDialog();
}
pdfFile = new FileInfo(pdfPath);
fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
byte[] buf = new byte[pdfFile.Length];
@ -1007,109 +1010,6 @@ namespace VEPROMS
//UpdateProcedureDTS(pi, DateTime.Now);
}
return true;
#region old code
//if (MyProcedures.Count == 1)
//{
// ApprovalProcedure ap = MyProcedures[0];
// //string revnum = RevNumber == "*" ? pi.ProcedureConfig.Print_Rev : RevNumber == "+" ? (int.Parse(Regex.Replace(pi.ProcedureConfig.Print_Rev, "^ *([0-9]*)[^0-9]*$", "0$1")) + 1).ToString() : RevNumber;
// //if (FancyShmancyRevCompare(revnum, ric.RevisionNumber) < 0)
// //{
// // MessageBox.Show("Revision Number must be greater than or equal to current revision","Revision Number Error",MessageBoxButtons.OK,MessageBoxIcon.Stop);
// // return false;
// //}
// //jcb add 20111029 chronology report
// //end jcb add 20111029 chronology report
//}
//else
//{
// ViewPDF = false;
// if (RevNumber != "*" && RevNumber != "+")
// {
// //need to check all procedures for adequate rev number
// bool hdr = false;
// StringBuilder msg = new StringBuilder();
// foreach (ApprovalProcedure ap in MyProcedures)
// {
// ProcedureInfo pi = ap.ProcInfo;
// RevisionInfo ri = RevisionInfo.GetCurrentByItemID(pi.ItemID);
// if (FancyShmancyRevCompare(RevNumber, ri.RevisionNumber) < 0)
// {
// if (!hdr)
// {
// msg.Append("Revision Number is not greater than or equal to the current revision for the following procedure(s):");
// msg.AppendLine();
// msg.AppendLine();
// hdr = true;
// }
// msg.Append(string.Format("{0} Revision {1}", pi.DisplayNumber, pi.ProcedureConfig.Print_Rev));
// msg.AppendLine();
// }
// }
// if (msg.Length > 0)
// {
// MessageBox.Show(msg.ToString(), "Revision Number Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
// return false;
// }
// }
// foreach (ApprovalProcedure ap in MyProcedures)
// {
// ProcedureInfo pi = ap.ProcInfo;
// OnStatusUpdated(this,new ApprovalMessageArgs(string.Format("Processing {0}", pi.DisplayNumber)));
// //jcb add 20111029 chronology report
// string summaryPDF = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MySummary.pdf";
// ContentAuditInfoList cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false);
// AnnotationAuditInfoList aail = AnnotationAuditInfoList.GetChronology(pi.ItemID, pi.ItemID);
// Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(summaryPDF, pi, cail, aail);
// myChronoRpt.BuildSummary(ViewPDF);
// FileInfo pdfFile = new FileInfo(summaryPDF);
// FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
// byte[] summaryBuf = new byte[pdfFile.Length];
// fs.Read(summaryBuf, 0, summaryBuf.Length);
// fs.Close();
// //end jcb add 20111029 chronology report
// RevisionInfo ric = RevisionInfo.GetCurrentByItemID(pi.ItemID);
// RevisionInfo rip = RevisionInfo.GetPreviousByItemID(pi.ItemID);
// string revnum = RevNumber == "*" ? pi.ProcedureConfig.Print_Rev : RevNumber == "+" ? (int.Parse(Regex.Replace(pi.ProcedureConfig.Print_Rev, "^ *([0-9]*)[^0-9]*$", "0$1")) + 1).ToString() : RevNumber;
// DateTime myDTS = pi.DTS;
// if (ric != null && revnum == ric.RevisionNumber && ric.LatestVersion.MyStage.IsApproved == 1)
// {
// myDTS = rip.DTS;
// UpdateProcedureDTS(pi, myDTS);
// }
// DateTime dts = RevDate == null ? pi.ProcedureConfig.Print_RevDate == string.Empty ? DateTime.Now : DateTime.Parse(pi.ProcedureConfig.Print_RevDate) : RevDate.Value;
// Revision revision = Revision.GetByItemIDAndRevisionNumber(pi.ItemID, revnum);
// if(revision == null)
// revision = Revision.MakeRevision(pi.ItemID, RevType, revnum, dts, RevNote, "", DateTime.Now, Volian.Base.Library.VlnSettings.UserID);
// else if (revision.Notes != RevNote || revision.RevisionDate != dts)
// {
// revision.Notes = RevNote;
// revision.RevisionDate = dts;
// revision = revision.Save();
// }
// Check check = Check.MakeCheck(revision, Stage.Get(RevStage), RevisionInfo.BuildRevisionChecks(pi));
// string pdfTmp = string.Format(@"{0}.pdf", pi.DisplayNumber);
// string pdfPath = string.Format(@"{0}\{1}", VlnSettings.TemporaryFolder, pdfTmp);
// UpdateProcedureConfig(pi, revnum, dts, myDTS);
// string waterMark = Stage.Get(RevStage).Name == "Approved" ? "" : Stage.Get(RevStage).Name;
// frmPDFStatusForm frm = new frmPDFStatusForm(pi, ap.RevNumber, ap.RevDate.ToString(), waterMark, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(), pdfTmp, location);
// frm.CloseWhenDone = !ViewPDF;
// frm.ShowDialog();
// //PromsPrinter pp = new PromsPrinter(pi, revnum, dts.ToString(), "", false, "", false, true, new ChangeBarDefinition(), pdfTmp);
// //pp.Print(VlnSettings.TemporaryFolder);
// pdfFile = new FileInfo(pdfPath);
// fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
// byte[] buf = new byte[pdfFile.Length];
// fs.Read(buf, 0, buf.Length);
// fs.Close();
// VEPROMS.CSLA.Library.Version version = VEPROMS.CSLA.Library.Version.MakeVersion(revision, Stage.Get(RevStage), buf, summaryBuf, DateTime.Now, VlnSettings.UserID);
// StageInfo si = StageInfo.Get(RevStage);
// if(si.IsApproved == 1)
// UpdateProcedureDTS(pi, DateTime.Now);
// //pdfFile.Delete();
// }
// return true;
//}
#endregion
}
private void UpdateProcedureDTS(ProcedureInfo pi, DateTime dts)
@ -1126,7 +1026,7 @@ namespace VEPROMS
if (pc == null) return;
pc.Print_Rev = revNumber;
//AppRevDate Change
//pc.Print_RevDate = revDate.ToString();
pc.Print_RevDate = revDate.ToString("MM/dd/yyyy");
using (Item itm = Item.Get(procedureInfo.ItemID))
{
itm.MyContent.Config = pc.ToString();

View File

@ -113,7 +113,11 @@ namespace VEPROMS
Application.DoEvents();
MyPromsPrinter.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
DateTime tStart = DateTime.Now;
_PdfFile = MyPromsPrinter.Print(PDFPath);
do
{
_PdfFile = MyPromsPrinter.Print(PDFPath);
}
while (_PdfFile == null && MessageBox.Show("Try Again?", "PDF Creation Failed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes);
if (_PdfFile == null)
{
this.Close();