From 3acdf1f6b43e2bfc4d2981457ed861cf4e664455 Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Wed, 20 Dec 2023 12:21:43 -0500 Subject: [PATCH 1/2] C2023-023 Quick Print --- .../DlgPrintProcedure.cs | 5 +++ PROMS/VEPROMS User Interface/frmVEPROMS.cs | 33 ++++++++++++++++++- PROMS/Volian.Controls.Library/vlnTreeView.cs | 25 +++++++++++++- PROMS/Volian.Print.Library/PromsPrinter.cs | 2 +- 4 files changed, 62 insertions(+), 3 deletions(-) diff --git a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs index 10d094a3..40be0144 100644 --- a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs +++ b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs @@ -1091,6 +1091,11 @@ namespace VEPROMS DoCreatePDF(); } + public void QPCreatePDF() + { + DoCreatePDF(); + } + private void DoCreatePDF() { if (_AllProcedures) diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index a5baf6f2..dc12b362 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -512,6 +512,7 @@ namespace VEPROMS ItemInfo.ItemDeleted += new ItemInfoEvent(RefreshDisplayHistory); tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure); + tv.QPrintProcedure += new vlnTreeViewEvent(tv_QPrintProcedure); tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures); tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure); tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures); @@ -1151,7 +1152,37 @@ namespace VEPROMS pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; } - + + void tv_QPrintProcedure(object sender, vlnTreeEventArgs args) // Quick Print + { + ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; + if (pi == null) return; + + tc.SaveCurrentEditItem(pi); + + pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; + + using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi)) + { + prnDlg.SelectedSlave = args.UnitIndex; + prnDlg.MySessionInfo = MySessionInfo; + prnDlg.SetupForProcedure(); // Setup filename + prnDlg.QPCreatePDF(); // Create Print report + + pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; + } + + //DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi); + //prnDlg.SelectedSlave = args.UnitIndex; + //prnDlg.MySessionInfo = MySessionInfo; + ////prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window + ////private void btnCreatePDF_Click(object sender, EventArgs e) + //prnDlg.QPCreatePDF(); + + //pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; + + } + void tv_CreateContinuousActionSummary(object sender, vlnTreeEventArgs args) { DialogResult dr = System.Windows.Forms.DialogResult.Yes; diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs b/PROMS/Volian.Controls.Library/vlnTreeView.cs index 9e8ce687..eb220f91 100644 --- a/PROMS/Volian.Controls.Library/vlnTreeView.cs +++ b/PROMS/Volian.Controls.Library/vlnTreeView.cs @@ -501,6 +501,11 @@ namespace Volian.Controls.Library { if (PrintProcedure != null) PrintProcedure(sender, args); } + public event vlnTreeViewEvent QPrintProcedure; + private void OnQPrintProcedure(object sender, vlnTreeEventArgs args) + { + if (QPrintProcedure != null) QPrintProcedure(sender, args); + } public event vlnTreeViewEvent PrintAllProcedures; private void OnPrintAllProcedures(object sender, vlnTreeEventArgs args) { @@ -831,6 +836,7 @@ namespace Volian.Controls.Library MenuItem micas = new MenuItem("Create Continuous Action Summary"); MenuItem mitcas = new MenuItem("Create Time Critical Action Summary"); //F2022-024 added menu option MenuItem mip = new MenuItem("Print"); + MenuItem miqp = new MenuItem("Quick Print"); MenuItem mia = new MenuItem("Approve"); int k = 0; foreach (string s in pri.MyDocVersion.UnitNames) @@ -841,6 +847,9 @@ namespace Volian.Controls.Library MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); mp.Enabled = procAppl; mp.Tag = k; + MenuItem mqp = miqp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); + mqp.Enabled = procAppl; + mqp.Tag = k; MenuItem ma = mia.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); ma.Enabled = procAppl; ma.Tag = k; @@ -853,7 +862,8 @@ namespace Volian.Controls.Library } cm.MenuItems.Add(micas); cm.MenuItems.Add(mitcas); - cm.MenuItems.Add(mip); + cm.MenuItems.Add(mip); + cm.MenuItems.Add(miqp); AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri); cm.MenuItems.Add(mia); AddApprovedRevisionsMultiUnit(cm.MenuItems, pri); @@ -863,6 +873,8 @@ namespace Volian.Controls.Library cm.MenuItems.Add("Create Continuous Action Summary", new EventHandler(mi_Click)); cm.MenuItems.Add("Create Time Critical Action Summary", new EventHandler(mi_Click)); cm.MenuItems.Add("Print", new EventHandler(mi_Click)); + cm.MenuItems.Add("Quick Print", new EventHandler(mi_Click)); + //MenuItem miqp = new MenuItem("Print"); AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri); cm.MenuItems.Add("Approve", new EventHandler(mi_Click)); //_MyLog.WarnFormat("Context Menu 1 before - {0}", GC.GetTotalMemory(true)); @@ -877,19 +889,24 @@ namespace Volian.Controls.Library if (pri.MyDocVersion.MultiUnitCount > 1) { MenuItem mip = new MenuItem("Print"); + MenuItem miqp = new MenuItem("Quick Print"); int k = 0; foreach (string s in pri.MyDocVersion.UnitNames) { k++; MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); mp.Tag = k; + MenuItem mqp = miqp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); + mqp.Tag = k; } cm.MenuItems.Add(mip); + cm.MenuItems.Add(miqp); AddApprovedRevisionsMultiUnit(cm.MenuItems, pri); } else { cm.MenuItems.Add("Print", new EventHandler(mi_Click)); + cm.MenuItems.Add("Quick Print", new EventHandler(mi_Click)); AddApprovedRevisions(cm.MenuItems, pri); } } @@ -1727,6 +1744,9 @@ namespace Volian.Controls.Library case "Print": OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; + case "Quick Print": + OnQPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); + break; case "Print All Procedures for": OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag)); break; @@ -1967,6 +1987,9 @@ namespace Volian.Controls.Library case "Print": OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); break; + case "Quick Print": + OnQPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); + break; case "Print All Procedures": OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); break; diff --git a/PROMS/Volian.Print.Library/PromsPrinter.cs b/PROMS/Volian.Print.Library/PromsPrinter.cs index 321126aa..84c89f8c 100644 --- a/PROMS/Volian.Print.Library/PromsPrinter.cs +++ b/PROMS/Volian.Print.Library/PromsPrinter.cs @@ -687,7 +687,7 @@ namespace Volian.Print.Library PdfWriter writer=null; iTextSharp.text.Document document = new iTextSharp.text.Document(rect); try - { + { writer = PdfWriter.GetInstance(document, new FileStream(outputFileName, FileMode.Create)); // PDFA1B does not allow layers, so this is disabled for now // If enabled, CreateLayers will need to be skipped. From 051805c76dcf50615f7ee0680bf93d7e4f4b288b Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Thu, 21 Dec 2023 10:04:58 -0500 Subject: [PATCH 2/2] C2023-023 Quick Print --- PROMS/VEPROMS User Interface/frmVEPROMS.cs | 44 ++++++++++++---------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index dc12b362..ce507bea 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -1155,31 +1155,35 @@ namespace VEPROMS void tv_QPrintProcedure(object sender, vlnTreeEventArgs args) // Quick Print { - ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - if (pi == null) return; - - tc.SaveCurrentEditItem(pi); - - pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; - - using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi)) + try { - prnDlg.SelectedSlave = args.UnitIndex; - prnDlg.MySessionInfo = MySessionInfo; - prnDlg.SetupForProcedure(); // Setup filename - prnDlg.QPCreatePDF(); // Create Print report + ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; + if (pi == null) return; - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; + tc.SaveCurrentEditItem(pi); + + pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; + + using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi)) + { + prnDlg.SelectedSlave = args.UnitIndex; + prnDlg.MySessionInfo = MySessionInfo; + prnDlg.SetupForProcedure(); // Setup filename + prnDlg.QPCreatePDF(); // Create Print report + + pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; + } } + catch(Exception ex) + { + StringBuilder sb = new StringBuilder(); - //DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi); - //prnDlg.SelectedSlave = args.UnitIndex; - //prnDlg.MySessionInfo = MySessionInfo; - ////prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - ////private void btnCreatePDF_Click(object sender, EventArgs e) - //prnDlg.QPCreatePDF(); + sb.AppendLine("Could not create PDF Print"); + sb.AppendLine(); + MessageBox.Show(sb.ToString(), "Error when creating PDF Print", MessageBoxButtons.OK, MessageBoxIcon.Warning); - //pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; + _MyLog.Warn("Failed to create PDF print", ex); + } }