diff --git a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs
index 52c6bc5b..fb46f0f8 100644
--- a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs
+++ b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs
@@ -16,105 +16,98 @@ namespace VEPROMS
{
public partial class DlgPrintProcedure : DevComponents.DotNetBar.Office2007Form
{
- #region Fields
-
- private string _Prefix = string.Empty; // RHM20150506 Multiline ItemID TextBox
- private SessionInfo _MySessionInfo;
- private bool _Automatic;
- private Timer _MyTimer;
-
- private bool _AllProcedures;
- private int _SelectedSlave = 0;
- private ProcedureInfo _MyProcedure;
- private DocVersionInfo _DocVersionInfo = null;
- private DocVersionConfig _DocVersionConfig;
- private ROFSTLookup _rofstLookup = null;
-
- private string _MultiunitPdfLocation = string.Empty;
- private MergedPdf _MergedPfd = null;
- private string _MergedPdfPath = null;
-
- private bool _Initializing = false;
-
- // C2018-033 Used to turn off using the date/time PDF file prefix and suffix when doing batch file automatic baseline print testing (frmVEPROMS.cs RunAutomatic())
- // This is needed so the automatic baselines can compare results from different runs of PROMS
- private bool _AllowDateTimePrefixSuffix = true;
-
- private DateTime _PrefixSuffixDTS = DateTime.Now; // C2018-033 date/time used for the date/time PDF file prefix and suffix
- private bool _DateTimePrefixSuffixPrintingAllProcedures = true; // C2018-033 to control adding the Date/Time Prefix/Suffix to PFD name when printing All procedures
- private bool _IncludeWordSecTextInMetafile = true; // C2018-023 so that we can turn off including Word attachment text in metafile
-
- private bool _CreateButtonClicked = false; // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
-
- private string _UnitNumber;
- private int _UnitIndex;
-
- private TextBox txbDate = null;
- string _NewRevForAllProcs = null;
-
- #endregion
-
- #region Properties
-
public bool SaveLinks
{
- get { return swtbtnPDFLinks.Value; }
+ get
+ {
+ return swtbtnPDFLinks.Value;
+ }
}
-
public int RemoveTrailingHardReturnsAndManualPageBreaks
{
- get
+ get
{
// C2021-010: Remove trailing returns/spaces & manual page breaks & allow save.
- // return values: 0=None; 1=Trailing; 2=ManualPgBrk; 3=Both.
- // The designer file has the additional controls
+ // return values: 0=None; 1=Trailing; 2=ManualPgBrk; 3=Both.
+ // The designer file has the additional controls
if (!cbxRemoveManualPgBrk.Checked && !cbxRemoveTrailing.Checked) return 0;
if (!cbxRemoveManualPgBrk.Checked && cbxRemoveTrailing.Checked) return 1;
if (cbxRemoveManualPgBrk.Checked && !cbxRemoveTrailing.Checked) return 2;
- return 3;
+ return 3;
}
}
-
+ private string _Prefix = ""; // RHM20150506 Multiline ItemID TextBox
public string Prefix
{
get { return _Prefix; }
set { _Prefix = value; }
}
-
public bool OpenAfterCreate // RHM20150506 Multiline ItemID TextBox
{
get { return cbxOpenAfterCreate2.Checked; }
set { cbxOpenAfterCreate2.Checked = value; }
}
-
+ private SessionInfo _MySessionInfo;
public SessionInfo MySessionInfo
{
get { return _MySessionInfo; }
set { _MySessionInfo = value; }
}
-
+ private bool _Automatic;
public bool Automatic
{
get { return _Automatic; }
set { _Automatic = value; }
}
+ // C2018-033 Used to turn off using the date/time PDF file prefix and suffix when doing batch file autmatic baseline print testing (frmVEPROMS.cs RunAutomatic())
+ // This is needed so the the automatic baselines can compare results from different runs of PROMS
+ private bool _AllowDateTimePrefixSuffix = true;
public bool AllowDateTimePrefixSuffix
{
get { return _AllowDateTimePrefixSuffix; }
- set
- {
+ set
+ {
_AllowDateTimePrefixSuffix = value;
swtbtnPDFdtPrefixSuffix.Value = swtbtnPDFdtPrefixSuffix.Enabled = _AllowDateTimePrefixSuffix;
}
}
-
+ private DateTime _PrefixSuffixDTS = DateTime.Now; // C2018-033 date/time used for the date/time PDF file prefix and suffix
+ private bool _DateTimePrefixSuffixPrintingAllProcedures = true; // C2018-033 to control adding the Date/Time Prefix/Suffix to PFD name when printing All procedures
+ private bool _IncludeWordSecTextInMetafile = true; // C2018-023 so that we can turn off including Word attachment text in metafile
+ private void RunAutomatic()
+ {
+ cbxDebugPagination.Checked = true;
+ cbxDebugText.Checked = true;
+ cbxMetaFile.Checked = true; // C2018-004 create meta file for baseline compares
+ _IncludeWordSecTextInMetafile = true;
+ Application.DoEvents();
+ string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray());
+ bool ranAuto = false;
+ foreach (string parameter in parameters)
+ {
+ if (parameter.ToUpper() == "/NT")
+ cbxDebugText.Checked = false;
+ else if (parameter.ToUpper() == "/NP")
+ cbxDebugPagination.Checked = false;
+ else if (parameter.ToUpper() == "/NC")
+ cbxDebug.Checked = false;
+ else if (parameter.ToUpper() == "/NM")
+ cbxMetaFile.Checked = false; // C2018-004 turn off create meta file for baseline compares
+ else if (parameter.ToUpper() == "/NW")
+ _IncludeWordSecTextInMetafile = false; // C2018-023 turn off putting Word attachment text in the meta file for baseline compares
+ }
+ CreatePDFs();
+ this.Close();
+ }
+ private DocVersionInfo _DocVersionInfo = null;
+ private bool _AllProcedures;
+ private DocVersionConfig _DocVersionConfig;
public string RevNum
{
get { return txbRevNum.Text; }
set { txbRevNum.Text = value; }
}
-
public string RevNumAndDate
{
get
@@ -137,371 +130,275 @@ namespace VEPROMS
return RevNum + "/" + RevDate;
}
}
-
public string ProcNum
{
get { return MyProcedure.DisplayNumber; }
}
-
public string PDFPath
{
- get
- {// B2018-069 Revert to Temporary for Baseline testing
+ get {// B2018-069 Revert to Temporary for Baseline testing
if (PromsPrinter.BaselineTesting)
return VlnSettings.TemporaryFolder;
- return txbPDFLocation.Text;
+ return txbPDFLocation.Text;
}
set { txbPDFLocation.Text = value; }
}
-
public string RevDate
{
get { return txbRevDate.Text; }
set { txbRevDate.Text = value; }
}
-
public string ReviewDate
{
get { return txbReviewDate.Text; }
set { txbReviewDate.Text = value; }
}
-
public bool CreateContinuousActionSummary
{
get { return cbxGenerateConActSum.Checked; }
set { cbxGenerateConActSum.Checked = value; }
}
-
- public string UnitNumber
- {
- get { return _UnitNumber; }
- set { _UnitNumber = value; }
- }
-
- public int UnitIndex
- {
- get { return _UnitIndex; }
- set { _UnitIndex = value; }
- }
-
- public ProcedureInfo MyProcedure
- {
- get { return _MyProcedure; }
- set
- {
- _MyProcedure = value;
-
- // if procedure has supplemental information, the automatically check the add blank pages for duplex printing
- if (_MyProcedure.ProcHasSupInfoData)
- {
- swtbtnBlankPgsForDuplex.Value = true;
- tbBlankPage.Enabled = true;
- }
-
- SetupPrefixSuffixSwitch(); // C2018-033 Enable the switch to control whether to add Prefix and/or Suffix to PDF file name
- }
- }
-
- public int SelectedSlave
- {
- get { return _SelectedSlave; }
- set
- {
- if (_SelectedSlave != value)
- {
- if (MyProcedure != null && MyProcedure. MyDocVersion != null && MyProcedure.MyDocVersion.DocVersionConfig != null)
- {
- MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = (value > 0) ? value : 0;
- }
-
- _rofstLookup = null;
- }
-
- lblMultiunitPdfLocation.Visible = (value > -1);
- cbxMultiunitPdfLocation.Visible = (value > -1);
- cbxMultiunitPdfLocation.SelectedIndex = 1;
-
- _SelectedSlave = value;
- }
- }
-
- public ROFSTLookup MyROFSTLookup
- {
- get
- {
- if (_rofstLookup == null)
- {
- var dvi = MyProcedure.MyDocVersion;
-
- // RofstLookup requires (RofstID, DocVersionInfo, selectedSlave)
- if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0)
- {
- int rofstID = dvi.DocVersionAssociations[0].ROFstID;
- string slaveOverride = (_SelectedSlave < 0) ? "0" : _SelectedSlave.ToString();
-
- _rofstLookup = new ROFSTLookup(rofstID, dvi, slaveOverride);
- }
- }
-
- return _rofstLookup;
- }
- }
-
- #endregion
-
- #region Constructors
-
- public DlgPrintProcedure(DocVersionInfo dvi)
- {
- InitializeComponent();
-
- _Automatic = false;
- _AllProcedures = true;
-
- MyProcedure = dvi.Procedures[0].MyProcedure;
-
- var dvc = dvi.DocVersionConfig;
-
- _DocVersionInfo = dvi;
- _DocVersionConfig = dvc;
- SelectedSlave = dvc.SelectedSlave;
-
- swtbtnBlankPgsForDuplex.Value = dvc.Print_AddBlankPagesWhenUsingDuplexFoldouts;
- tbBlankPage.Text = dvc.Print_DuplexBlankPageText;
- tbBlankPage.Enabled = swtbtnBlankPgsForDuplex.Value;
-
- if (_MyProcedure != null && _MyProcedure.ProcHasSupInfoData)
- {
- swtbtnBlankPgsForDuplex.Enabled = false;
- tbBlankPage.Enabled = true;
- }
-
- btnCreatePDF.Text = "Create PDFs";
-
- HandleDocVersionSettings();
- PrepForAllOrOne(false);
-
- // don't open all PDFs if doing All Procedures
- // C2018-033 added the Prefix / Suffix switch to the expand Additional Settings check
- expPrnSetting.Expanded = swtbtnBlankPgsForDuplex.Value || swtbtnChgBar.Value || swtbtnGeneratePlacekeeper.Value || swtbtnPDFLinks.Value || swtbtnPROMSVersion.Value || swtbtnWaterMark.Value || swtbtnPDFdtPrefixSuffix.Value;
- }
-
+ private bool _CreateButtonClicked = false; // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
public DlgPrintProcedure(DocVersionInfo dvi, bool automatic)
{
- InitializeComponent();
-
_Automatic = automatic;
+ InitializeComponent();
_AllProcedures = true;
-
- MyProcedure = dvi.Procedures[0].MyProcedure;
-
- var dvc = dvi.DocVersionConfig;
-
+ _DocVersionConfig = dvi.DocVersionConfig;
_DocVersionInfo = dvi;
- _DocVersionConfig = dvc;
- SelectedSlave = dvc.SelectedSlave;
+ MyProcedure = dvi.Procedures[0].MyProcedure;
// C2019-004: Allow user to define duplex lank page text at the docversion level (this is used in baselines)
// 2nd line was added to other constructors (1st line already existed)
- swtbtnBlankPgsForDuplex.Value = dvc.Print_AddBlankPagesWhenUsingDuplexFoldouts;
- tbBlankPage.Text = dvc.Print_DuplexBlankPageText;
- tbBlankPage.Enabled = swtbtnBlankPgsForDuplex.Value;
-
+ swtbtnBlankPgsForDuplex.Value = dvi.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts;
+ tbBlankPage.Text = dvi.DocVersionConfig.Print_DuplexBlankPageText;
// B2017-188: Don't allow user to uncheck the checkbox for printing blank pages if procedure has supplemental information
// This change was made to each of the DlgPrintProcedure methods.
if (_MyProcedure != null && _MyProcedure.ProcHasSupInfoData)
{
swtbtnBlankPgsForDuplex.Enabled = false;
- tbBlankPage.Enabled = true; // C2019-004: Allow user to define duplex blank page text (similar changes throughout file are not commented)
+ tbBlankPage.Enabled = true; // C2019-004: Allow user to define duplex blank page text (similar changes throughout file are not commented)
}
-
btnCreatePDF.Text = "Create PDFs";
-
HandleDocVersionSettings();
PrepForAllOrOne(false);
-
// don't open all PDFs if doing All Procedures
//cbxOpenAfterCreate2.Checked = dvi.DocVersionConfig.Print_AlwaysViewPDFAfterCreate;
// C2018-033 added the Prefix / Suffix switch to the expand Additional Settings check
expPrnSetting.Expanded = swtbtnBlankPgsForDuplex.Value || swtbtnChgBar.Value || swtbtnGeneratePlacekeeper.Value || swtbtnPDFLinks.Value || swtbtnPROMSVersion.Value || swtbtnWaterMark.Value || swtbtnPDFdtPrefixSuffix.Value;
}
+ public DlgPrintProcedure(DocVersionInfo dvi)
+ {
+ _Automatic = false;
+ InitializeComponent();
+ _AllProcedures = true;
+ _DocVersionConfig = dvi.DocVersionConfig;
+ _DocVersionInfo = dvi;
+ swtbtnBlankPgsForDuplex.Value = dvi.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts;
+ tbBlankPage.Text = dvi.DocVersionConfig.Print_DuplexBlankPageText;
+ tbBlankPage.Enabled = swtbtnBlankPgsForDuplex.Value;
+ MyProcedure = dvi.Procedures[0].MyProcedure;
+ if (_MyProcedure != null && _MyProcedure.ProcHasSupInfoData)
+ {
+ swtbtnBlankPgsForDuplex.Enabled = false;
+ tbBlankPage.Enabled = true;
+ }
+ btnCreatePDF.Text = "Create PDFs";
+ HandleDocVersionSettings();
+ PrepForAllOrOne(false);
+ // don't open all PDFs if doing All Procedures
+ // C2018-033 added the Prefix / Suffix switch to the expand Additional Settings check
+ expPrnSetting.Expanded = swtbtnBlankPgsForDuplex.Value || swtbtnChgBar.Value || swtbtnGeneratePlacekeeper.Value || swtbtnPDFLinks.Value || swtbtnPROMSVersion.Value || swtbtnWaterMark.Value || swtbtnPDFdtPrefixSuffix.Value;
+ }
+ private void PrepForAllOrOne(bool oneProcedure)
+ {
+ txbPDFName.Visible = lblPDFFileName.Visible = oneProcedure;
+ txbReviewDate.Visible = lblReviewDate.Visible = oneProcedure;
+ txbRevDate.Visible = lblRevDate.Visible = oneProcedure;
+ cbxOpenAfterCreate2.Visible = oneProcedure;
+ cbxOpenAfterCreate2.Checked = false;
+ cbxOverwritePDF2.Visible = oneProcedure;
+ cbxOverwritePDF2.Checked = true;
+ gpnlDebug.Visible = Volian.Base.Library.VlnSettings.DebugMode;
+ swtbtnGeneratePlacekeeper.Value = false;
+ cbxGenerateConActSum.Checked = false;
+ swtbtnGeneratePlacekeeper.Visible = lblGeneratePlacekeeper.Visible = oneProcedure &&
+ ((MyProcedure.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.AutoPlacekeeper) == E_PurchaseOptions.AutoPlacekeeper);
+ // C2021-062 make visable the check box to assign rev number for all procedures being printed
+ // also make visable the Rev Num entry field.
+ txbRevNum.Enabled = oneProcedure;
+ cbxAssignRevToAllMergedPrcs.Visible = btnMergePDFs.Visible = !oneProcedure;
+ // C2021-063 make the Generate Alarm Point List text checkbox visable in the format flag is set.
+ cbxAlmPtTxt.Visible = !oneProcedure && MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.ChkBoxToGeneratePointListText;
+ }
+ private string _UnitNumber;
+ public string UnitNumber
+ {
+ get { return _UnitNumber; }
+ set { _UnitNumber = value; }
+ }
+ private int _UnitIndex;
+ public int UnitIndex
+ {
+ get { return _UnitIndex; }
+ set { _UnitIndex = value; }
+ }
+ // C2018-012 - Code Cleanup - redesigned the Print Dialog to include a sliding panel and remplaced check boxes with ON/OFF switches
public DlgPrintProcedure(ProcedureInfo pi)
{
- // C2018-012 - Code Cleanup - redesigned the Print Dialog to include a sliding panel and replaced check boxes with ON/OFF switches
InitializeComponent();
-
- _Automatic = false;
_AllProcedures = false;
-
- MyProcedure = pi;
-
- var dvi = pi.MyDocVersion;
- var dvc = dvi.DocVersionConfig;
-
- _DocVersionInfo = dvi;
- _DocVersionConfig = dvc;
- SelectedSlave = dvc.SelectedSlave;
-
- swtbtnBlankPgsForDuplex.Value = dvc.Print_AddBlankPagesWhenUsingDuplexFoldouts;
- tbBlankPage.Text = dvc.Print_DuplexBlankPageText;
+ _DocVersionConfig = pi.MyDocVersion.DocVersionConfig;
+ swtbtnBlankPgsForDuplex.Value = pi.MyDocVersion.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts;
+ tbBlankPage.Text = pi.MyDocVersion.DocVersionConfig.Print_DuplexBlankPageText;
tbBlankPage.Enabled = swtbtnBlankPgsForDuplex.Value;
-
+ MyProcedure = pi;
if (_MyProcedure != null && _MyProcedure.ProcHasSupInfoData)
{
swtbtnBlankPgsForDuplex.Enabled = false;
tbBlankPage.Enabled = true;
}
-
btnCreatePDF.Text = "Create PDF";
-
HandleDocVersionSettings();
PrepForAllOrOne(true);
-
- cbxOpenAfterCreate2.Checked = dvc.Print_AlwaysViewPDFAfterCreate;
-
+ cbxOpenAfterCreate2.Checked = pi.MyDocVersion.DocVersionConfig.Print_AlwaysViewPDFAfterCreate;
// C2018-033 added the Prefix / Suffix switch to the expand Additional Settings check
expPrnSetting.Expanded = swtbtnBlankPgsForDuplex.Value || swtbtnChgBar.Value || swtbtnGeneratePlacekeeper.Value || swtbtnPDFLinks.Value || swtbtnPROMSVersion.Value || swtbtnWaterMark.Value || swtbtnPDFdtPrefixSuffix.Value;
}
-
public DlgPrintProcedure(ProcedureInfo pi, bool automatic) // RHM20150506 Multiline ItemID TextBox
- {
+ {
InitializeComponent();
-
- _Automatic = automatic;
+ Automatic = automatic;
_AllProcedures = false;
-
- MyProcedure = pi;
-
- var dvi = pi.MyDocVersion;
- var dvc = dvi.DocVersionConfig;
-
- _DocVersionInfo = dvi;
- _DocVersionConfig = dvc;
- SelectedSlave = dvc.SelectedSlave;
-
- swtbtnBlankPgsForDuplex.Value = dvc.Print_AddBlankPagesWhenUsingDuplexFoldouts;
- tbBlankPage.Text = dvc.Print_DuplexBlankPageText;
+ _DocVersionConfig = pi.MyDocVersion.DocVersionConfig;
+ swtbtnBlankPgsForDuplex.Value = pi.MyDocVersion.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts;
+ tbBlankPage.Text = pi.MyDocVersion.DocVersionConfig.Print_DuplexBlankPageText;
tbBlankPage.Enabled = swtbtnBlankPgsForDuplex.Value;
-
+ MyProcedure = pi;
if (_MyProcedure != null && _MyProcedure.ProcHasSupInfoData)
{
swtbtnBlankPgsForDuplex.Enabled = false;
tbBlankPage.Enabled = true;
}
-
btnCreatePDF.Text = "Create PDF";
-
HandleDocVersionSettings();
PrepForAllOrOne(true);
-
- cbxOpenAfterCreate2.Checked = dvc.Print_AlwaysViewPDFAfterCreate;
-
+ cbxOpenAfterCreate2.Checked = pi.MyDocVersion.DocVersionConfig.Print_AlwaysViewPDFAfterCreate;
// C2018-033 added the Prefix / Suffix switch to the expand Additional Settings check
expPrnSetting.Expanded = swtbtnBlankPgsForDuplex.Value || swtbtnChgBar.Value || swtbtnGeneratePlacekeeper.Value || swtbtnPDFLinks.Value || swtbtnPROMSVersion.Value || swtbtnWaterMark.Value || swtbtnPDFdtPrefixSuffix.Value;
}
-
- #endregion
-
- #region Public Methods
-
- public void CreatePDF() // RHM20150506 Multiline ItemID TextBox
+ ///
+ /// RHM 20120925 Added so that the dialog would center over the PROMS window
+ ///
+ ///
+ protected override void OnActivated(EventArgs e)
+ {
+ base.OnActivated(e);
+ if (Owner != null)
+ Location = new Point(Owner.Left + Owner.Width / 2 - Width / 2, Owner.Top + Owner.Height/2 - Height/2);
+ }
+ private void HandleDocVersionSettings()
{
- if (VlnSettings.GetCommandFlag("PROFILE")) ProfileTimer.TurnOnTracking("Profile.txt");
- VEPROMS.CSLA.Library.Database.TrackDBUsage = VlnSettings.GetCommandFlag("DBTrack");
- ProfileTimer.Reset();
- int profileDepth = ProfileTimer.Push(">>>> CreatePdf");
- string message = string.Empty;
+ GetDocVersionSettings();
- if (!MySessionInfo.CanCheckOutItem(MyProcedure.ItemID, CheckOutType.Procedure, ref message))
+ // set to a default PDF location if none was specified in the DocVersions property
+ if (txbPDFLocation.Text == null || txbPDFLocation.Text.Length == 0 || !Directory.Exists(txbPDFLocation.Text))
+ txbPDFLocation.Text = VlnSettings.TemporaryFolder;
+ SetCompareVisibility();
+ // if the default setting is 'SelectBeforePrinting', expand the Additional Print Settings panel
+ if (_DocVersionConfig.Print_ChangeBar == PrintChangeBar.SelectBeforePrinting)
{
- if (MessageBox.Show(this, message + Environment.NewLine + Environment.NewLine + "Do you want to continue to print the procedure?", "Procedure Is Checked Out", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
- return;
- }
-
- // B2021-127: BNPPalr - Auto set of serial #, skip Front Matter as per PAL 11/1/21 (set to 1 not 0)
- // Only do if set has applicability, printing an individual procedure, need to determine
- // applicability count.
- if (MyProcedure.MyDocVersion.MultiUnitCount > 1)
- {
- VlnSvgPageHelper.CountInApplProcs = 1;
-
- foreach (ProcedureInfo pi in MyProcedure.MyDocVersion.Procedures)
- {
- if (pi.ItemID == MyProcedure.ItemID) break;
-
- bool includeProc = pi.ApplInclude(SelectedSlave);
- if (!includeProc) VlnSvgPageHelper.CountInApplProcs++;
+ swtbtnChgBar.Value = false;
+ cbxOvrrideDefChgBars.Checked = false;
+ expPrnSetting.Expanded = true;
}
- }
-
- CreateDebugFiles();
-
- // If file exists, determine if overwrite checkbox allows overwrite, if not prompt.
- Volian.Print.Library.Rtf2Pdf.PdfDebug = cbxDebug.Checked;
-
- // B2019-044 don't print the watermark if the watermark switch on the print dialog is turned off
- cbxWaterMark.Visible = true;
- string waterMarkText = (swtbtnWaterMark.Value) ? cbxWaterMark.Text : "None"; // B2018-124 use text of watermark form drop down list instead of enum value
- string watermarkColor = "Blue"; // this is the default watermark color
-
- frmPDFStatusForm.SetUnitWatermark(MyProcedure, ref waterMarkText, ref watermarkColor); //C2022-004 Unit Designator Watermark
-
- ProcedureConfig procConfig = MyProcedure.MyConfig as ProcedureConfig;
- string waterMarkTextOverride = string.Empty;
-
- if (procConfig != null) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE"); // C2021-019: override watermark text
- if (swtbtnWaterMark.Value && waterMarkTextOverride != null && waterMarkTextOverride != "") waterMarkText = waterMarkTextOverride;
-
- // Determine change bar settings. First get from config & then see if override from dialog. Also check that format allows override.
- ChangeBarDefinition cbd = DetermineChangeBarSettings();
- int profileDepth2 = ProfileTimer.Push(">>>> CreatePdf.GetItemAndChildren");
-
- // RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered.
- ProfileTimer.Pop(profileDepth2);
-
- MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = this.SelectedSlave;
-
- // B2016-249 Output Procedure to folder associated with Parent Child
- // B2018-124 use text of watermark form drop down list instead of enum value
- using (frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, waterMarkText, cbxDebug.Checked, cbxOrPgBrk.Checked,
- cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, GetMultiunitPDFPath(), cbd, txbPDFName.Text, new Point(Left, Bottom - 50),
- swtbtnBlankPgsForDuplex.Value, _AllProcedures || Automatic, Prefix, SaveLinks, RemoveTrailingHardReturnsAndManualPageBreaks, swtbtnPROMSVersion.Value, false, tbBlankPage.Text, _MergedPfd, watermarkColor))//; //C2018-009 print PROMS version
- {
- frmStatus.MakePlaceKeeper = swtbtnGeneratePlacekeeper.Value;
- frmStatus.MakeContinuousActionSummary = cbxGenerateConActSum.Checked;
-
- if (Automatic && cbxGenerateConActSum.Checked)
- frmStatus.OnlyShowContinuousActionSummary = true;
-
- int profileDepth3 = ProfileTimer.Push(">>>> frmStatus");
- frmStatus.ShowDialog();
-
- ProfileTimer.Pop(profileDepth3);
- }
-
- MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
-
- this.Close();
- ShowDebugFiles();
-
- ProfileTimer.Pop(profileDepth);
- ProfileTimer.ShowTimerTable();
-
- if (VlnSettings.GetCommandFlag("DBTrack"))
- {
- VEPROMS.CSLA.Library.Database.TrackDBUsage = false;
- VEPROMS.CSLA.Library.Database.ShowDBTracking("DBTracking.txt");
- }
}
+ private void GetDocVersionSettings()
+ {
+ _DocVersionConfig.SaveChangesToDocVersionConfig = false;
+ _DocVersionConfig.ParentLookup = false;
+ // PDF Location
+ PDFPath = _DocVersionConfig.Print_PDFLocation;
+ // Overwrite PDF
+ cbxOverwritePDF2.Checked = _DocVersionConfig.Print_AlwaysOverwritePDF;
+ // Open PDF After Create
+ cbxOpenAfterCreate2.Checked = _DocVersionConfig.Print_AlwaysViewPDFAfterCreate;
+ // Changebars on/off
+ if (_DocVersionConfig.Print_ChangeBar == PrintChangeBar.Without)
+ swtbtnChgBar.Value = false;
+ else
+ swtbtnChgBar.Value = true;
+ // Watermark on/off
+ if (_DocVersionConfig.Print_Watermark == PrintWatermark.None)
+ swtbtnWaterMark.Value = false;
+ else
+ swtbtnWaterMark.Value = true;
+ // Auto Duplexing on/off - Auto duplex was used only by Point Beach formats These buttons were removed from the dialog
+ // There was not print coding to support this format flag
+
+ //if ((_MyProcedure.ActiveParent as DocVersionInfo).ActiveFormat.PlantFormat.FormatData.PrintData.AllowDuplex)
+ //{
+ // lblAutoDuplexing.Visible = true;
+ // btnDuplxOff.Visible = true;
+ // btnDuplxOn.Visible = true;
+ // if (_DocVersionConfig.Print_DisableDuplex)
+ // btnDuplxOff.PerformClick();
+ // else
+ // btnDuplxOn.PerformClick();
+ //}
+ //else
+ //{
+ // lblAutoDuplexing.Visible = false;
+ // btnDuplxOff.Visible = false;
+ // btnDuplxOn.Visible = false;
+ //}
+ SetCompareVisibility();
+
+ // default to using OriginalPageBreaks (16bit page breaks) if App.config is set
+ // to true:
+ //cbxOrPgBrk.Visible = VlnSettings.OriginalPageBreak && VlnSettings.DebugMode;
+ cbxOrPgBrk.Visible = false; //per Harry
+ cbxOrPgBrk.Checked = false;
+ }
+
+ private void SetCompareVisibility()
+ {
+ // default to print Debug info if App.config is set to debug mode
+ // This checkbox is now labeled as "Compare PDF"
+ // If the PDF location has a Compare folder or we are in Debug Mode
+ // then make the checkbox visible
+ string cmpfldr = txbPDFLocation.Text;
+ if (!cmpfldr.EndsWith("\\")) cmpfldr += "\\";
+ cmpfldr += "Compare";
+ cbxDebug.Visible = Directory.Exists(cmpfldr) || VlnSettings.DebugMode;
+ cbxDebug.Checked = VlnSettings.DebugMode;
+ }
+
+ private void DlgPrintProcedure_Load(object sender, EventArgs e)
+ {
+ SetupForProcedure();
+ _MyTimer = new Timer();
+ _MyTimer.Tick += new EventHandler(_MyTimer_Tick);
+ _MyTimer.Interval = 100;
+ _MyTimer.Enabled = true;
+ btnCreatePDF.Select();
+ }
+
+ void _MyTimer_Tick(object sender, EventArgs e)
+ {
+ _MyTimer.Enabled = false;
+ BringToFront();
+ if (Automatic) RunAutomatic();
+ }
+
+ private Timer _MyTimer;
public void SetupForProcedure() // RHM20150506 Multiline ItemID TextBox
{
- if (_DocVersionInfo == null)
- this.Text = "Create PDF for " + ProcNum;
-
+ if(_DocVersionInfo == null)this.Text = "Create PDF for " + ProcNum;
// get list of previous pdf files
// if no previous pdf file, then get path from frmVersionProperties
// dlgSelectFile.InitialDirectory = pdf path from frmVersionProperties
@@ -509,24 +406,21 @@ namespace VEPROMS
// General 2 settings
//txbPDFLocation.Text = _PDFPath;
BuildPDFFileName();
-
ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig;
- if (SelectedSlave > 0) pc.SelectedSlave = SelectedSlave;
-
+ if(SelectedSlave > 0) pc.SelectedSlave = SelectedSlave;
if (pc != null)
{
//C2021-062 use the save rev number for all procedures if set, or just use the rev number in the current procedure config
RevNum = (_NewRevForAllProcs == null) ? pc.Print_Rev : _NewRevForAllProcs;
RevDate = pc.Print_RevDate; //== null || pc.Print_RevDate=="" ? DateTime.Today : Convert.ToDateTime(pc.Print_RevDate);
ReviewDate = pc.Print_ReviewDate; // == null ? DateTime.Today : Convert.ToDateTime(pc.Print_ReviewDate);
-
- //Now check the format flags to determine if/how the Rev string should be parsed.
+ //Now check the format flags to determine if/how the Rev string should be parsed.
// This will covert the old way (16-bit) of setting a RevDate (appending it to the RevNumber)
// to the new way saving the RevNumber and RevDate in there own config fields
if ((_MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate && RevNum.Contains("/"))
- || (_MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash && RevNum.Contains("\\")))
+ || (_MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash && RevNum.Contains("\\")))
{
- int indx = RevNum.IndexOf(_MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash ? '\\' : '/');
+ int indx = RevNum.IndexOf(_MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash ? '\\' : '/');
pc.Print_RevDate = RevDate = RevNum.Substring(indx + 1);
pc.Print_Rev = RevNum = RevNum.Substring(0, indx);
// save the RevNumber and RevDate to the procedure's config.
@@ -536,16 +430,14 @@ namespace VEPROMS
itm.Save();
}
}
-
// C2021-019: Override Watermark Text and Color from PSI
string waterMarkTextOverride = pc.GetValue("PSI", "WATERMARKOVERRIDE");
- if (!string.IsNullOrEmpty(waterMarkTextOverride))
+ if (waterMarkTextOverride != null && waterMarkTextOverride != "")
{
cbxWaterMark.Visible = false;
lblWaterMarkOvrd.Visible = true;
lblWaterMarkOvrd.Text = waterMarkTextOverride;
}
-
// do color override
// if there is override text, label contains overridden text in the color selected from color override
// if no override text, combo box text color is override color
@@ -566,13 +458,11 @@ namespace VEPROMS
ReviewDate = null;
cbxWaterMark.Visible = true;
}
-
// B2019-044 use Enum without the "None" option for the print dialog
cbxWaterMark.DataSource = EnumDetail.Details();
cbxWaterMark.ValueMember = "EValue";
PrintWatermark pw = _DocVersionConfig.Print_Watermark; // MyProcedure.ProcedureConfig.Print_Watermark;
string pwstr = pw.ToString().ToUpper();
-
if (!pwstr.Equals("NONE")) //B2019-044 check setting from folder level
{
if (pwstr.Equals("INFORMATIONONLY"))
@@ -583,9 +473,7 @@ namespace VEPROMS
cbxWaterMark.Text = pw.ToString(); // position print dialog list to setting from folder level
}
else
- {
swtbtnWaterMark.Value = false; // set to None at folder level so set Watermark switch to the off position
- }
//ppCmbxChgBarPos.DataSource = EnumDetail.Details();
//ppCmbxChgBarPos.DisplayMember = "Description";
@@ -600,18 +488,13 @@ namespace VEPROMS
ppTxbxChangeBarUserMsgOne.Text = _DocVersionConfig.Print_UserCBMess1;
ppTxbxChangeBarUserMsgTwo.Text = _DocVersionConfig.Print_UserCBMess2;
ppGpbxUserSpecTxt.Enabled = ppCmbxChgBarTxtType.SelectedIndex == (int)PrintChangeBarText.UserDef;
-
bool hasReviewDate = _MyProcedure.ActiveFormat.PlantFormat.HasPageListToken("{REVIEWDATE}");
bool usesRevDate = _MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate || _MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash;
-
if (_MyProcedure.Sections != null)
{
foreach (SectionInfo mysection in _MyProcedure.Sections)
- {
hasReviewDate |= mysection.ActiveFormat.PlantFormat.HasPageListToken("{REVIEWDATE}");
- }
}
-
// Only the New HLP format and the MYA format use this
// South Texas does not use their new HLP format and MYA (Main Yankee) has dropped us (they closed)
// thus there is no supporting code to print a Review Date
@@ -622,10 +505,183 @@ namespace VEPROMS
lblRevDate.Visible = txbRevDate.Visible = !_AllProcedures && usesRevDate;
}
- #endregion
+ // C2018-033 add the Prefix and/or Suffix to PDF file name if defined and wanted by the user
+ // this piece of code was functionalized from SetupForProcedure()
+ private void BuildPDFFileName()
+ {
+ if (MyProcedure == null) return;
+ string PDFFilePrefix = _DocVersionConfig.Print_PDFFilePrefix;
+ string PDFFileSuffix = _DocVersionConfig.Print_PDFFileSuffix;
+ string PDFFileName = "";
+ PDFDTPrefix dtPre = _DocVersionConfig.Print_PDFdtFilePrefix;
+ PDFDTSuffix dtSuf = _DocVersionConfig.Print_PDFdtFileSuffix;
+ if (dtPre != PDFDTPrefix.None) PDFFilePrefix = ""; // incase user entered prefix text but then selected a date/time (in working draft properties)
+ if (dtSuf != PDFDTSuffix.None) PDFFileSuffix = ""; // incase user entered suffix text but then selected a date/time (in working draft properties)
+ // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
+ // disable the date/time Prefix/Suffix switch if no date/time was selected
+ // This switch is does not affect the use of it if the user typed in text for prefix/suffix
+ if (!AllowDateTimePrefixSuffix || (dtPre == PDFDTPrefix.None && dtSuf == PDFDTSuffix.None))
+ {
+ swtbtnPDFdtPrefixSuffix.Value = false;
+ swtbtnPDFdtPrefixSuffix.Enabled = false;
+ }
+ if (AllowDateTimePrefixSuffix && swtbtnPDFdtPrefixSuffix.Value)
+ {
+ //DateTime dts = DateTime.Now;
+ if (dtPre != PDFDTPrefix.None)
+ PDFFilePrefix = (_PrefixSuffixDTS.ToString(dtPre.ToString())).Replace("__", " ").Replace("_", "-") + "_";
+ if (dtSuf != PDFDTSuffix.None)
+ PDFFileSuffix = "_" + (_PrefixSuffixDTS.ToString(dtSuf.ToString())).Replace("__", " ").Replace("_", "-");
+ }
+ if (ProcNum == string.Empty)
+ //txbPDFName.Text = this.UnitNumber + ".pdf";
+ PDFFileName = this.UnitNumber;
+ else
+ //txbPDFName.Text = string.Format("{0}.pdf", _MyProcedure.PDFNumber);
+ PDFFileName = string.Format("{0}", _MyProcedure.PDFNumber);
+ //if (txbPDFName.Text.StartsWith("*"))
+ // txbPDFName.Text = txbPDFName.Text.Replace("*", this.UnitNumber);
+ if ((PDFFileName ?? "") == "") PDFFileName = "NoProcNumber";
+ if (PDFFileName.StartsWith("*"))
+ PDFFileName = PDFFileName.Replace("*", this.UnitNumber);
+ if (PDFFileName.Contains("?")) PDFFileName = PDFFileName.Replace("?", "_"); // for wcn sys/BM-2xxA??, etc
+ txbPDFName.Text = PDFFilePrefix + PDFFileName + PDFFileSuffix + ".pdf";
+ }
- #region Private Methods
+ // C2018-033 Enable/disable the switch to control whether to add Prefix and/or Suffix to PDF file name
+ private void SetupPrefixSuffixSwitch()
+ {
+ if (_CreateButtonClicked) return; // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
+ // note that MyProcedure must be set before calling this because BuildPDFFileName() will be called when the swbtnPDFPrefixSuffix is set
+ string PDFFilePrefix = _DocVersionConfig.Print_PDFFilePrefix;
+ string PDFFileSuffix = _DocVersionConfig.Print_PDFFileSuffix;
+ PDFDTPrefix dtPre = _DocVersionConfig.Print_PDFdtFilePrefix;
+ PDFDTSuffix dtSuf = _DocVersionConfig.Print_PDFdtFileSuffix;
+ bool hasPrefixSuffix = _DateTimePrefixSuffixPrintingAllProcedures && (PDFFilePrefix.Length > 0 || PDFFileSuffix.Length > 0 || dtPre != PDFDTPrefix.None || dtSuf != PDFDTSuffix.None);
+ swtbtnPDFdtPrefixSuffix.Value = hasPrefixSuffix; // this will call BuildPDFFileName() thus MyProcedure must be set
+ swtbtnPDFdtPrefixSuffix.Enabled = hasPrefixSuffix;
+ }
+ private void btnCancel_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void swtbtnChgBar_ValueChanged(object sender, EventArgs e)
+ {
+ // C2019-031 - disable the override change bar grouping when default change bar is set to format default or no change bar
+ cbxOvrrideDefChgBars.Checked = false; // uncheck the override change bar check box inside the grouping
+ cbxOvrrideDefChgBars.Enabled = swtbtnChgBar.Value; // C2022-015 enable if Change Bars are turned on
+
+ if (swtbtnChgBar.Value)
+ {
+ switch (_DocVersionConfig.Print_ChangeBar)
+ {
+ case PrintChangeBar.WithUserSpecified:
+ cbxOvrrideDefChgBars.Enabled = true; // change bar text is pre-selected in procedure set properties, allow user to change change bar text
+ cbxOvrrideDefChgBars.Checked = true;
+ break;
+ case PrintChangeBar.SelectBeforePrinting:
+ cbxOvrrideDefChgBars.Enabled = true; // allow user to select change bar text every time procedure is printed
+ break;
+ case PrintChangeBar.Without:
+ case PrintChangeBar.WithDefault:
+ cbxOvrrideDefChgBars.Enabled = false; // printing with format default change bars - don't allow override
+ cbxOvrrideDefChgBars.Checked = false;
+ break;
+ }
+ }
+ }
+
+ private void swtbtnWaterMark_ValueChanged(object sender, EventArgs e)
+ {
+ if (!swtbtnWaterMark.Value) // C2021-019: make both invisible
+ {
+ cbxWaterMark.Visible = swtbtnWaterMark.Value;
+ lblWaterMarkOvrd.Visible = swtbtnWaterMark.Value;
+ }
+ else // C2021-019: determine whether combo box or lable needs to be made visible
+ {
+ ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig;
+ string waterMarkTextOverride = pc.GetValue("PSI", "WATERMARKOVERRIDE");
+ if (waterMarkTextOverride != null && waterMarkTextOverride != "")
+ {
+ cbxWaterMark.Visible = false;
+ lblWaterMarkOvrd.Visible = true;
+ }
+ else
+ {
+ cbxWaterMark.Visible = true;
+ lblWaterMarkOvrd.Visible = false;
+ }
+ }
+ }
+
+ private void txbPDFLocation_Leave(object sender, EventArgs e)
+ {
+ if (!Directory.Exists(PDFPath))
+ {
+ string msg = string.Format("'{0}' does not exist. \n\nCreate it?", PDFPath);
+ DialogResult dr= MessageBox.Show(msg, "Folder Not Found", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
+ if (dr == DialogResult.Yes)
+ {
+ try
+ {
+ Directory.CreateDirectory(PDFPath);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Error trying to create folder", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ PDFPath = _DocVersionConfig.Print_PDFLocation;
+ }
+ }
+ else
+ {
+ PDFPath = _DocVersionConfig.Print_PDFLocation;
+ }
+ }
+ }
+
+ private void DlgPrintProcedure_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ _DocVersionConfig.SaveChangesToDocVersionConfig = true;
+ //_DocVersionConfig.ParentLookup = true;
+
+ ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig;
+ if (SelectedSlave > 0) pc.SelectedSlave = 0;
+ }
+
+ private ProcedureInfo _MyProcedure;
+
+ public ProcedureInfo MyProcedure
+ {
+ get { return _MyProcedure; }
+ set
+ {
+ _MyProcedure = value;
+ // if procedure has supplemental information, the automatially check the add blank pages for duplex printing
+ if (_MyProcedure.ProcHasSupInfoData)
+ {
+ swtbtnBlankPgsForDuplex.Value = true;
+ tbBlankPage.Enabled = true;
+ }
+ SetupPrefixSuffixSwitch(); // C2018-033 Enable the switch to control whether to add Prefix and/or Suffix to PDF file name
+ }
+ }
+ private int _SelectedSlave = 0;
+ public int SelectedSlave
+ {
+ get { return _SelectedSlave; }
+ set
+ {
+ _SelectedSlave = value;
+ lblMultiunitPdfLocation.Visible = cbxMultiunitPdfLocation.Visible = (value > -1);
+ cbxMultiunitPdfLocation.SelectedIndex = 1;
+ }
+ }
+ private string _MultiunitPdfLocation = string.Empty;
+ private MergedPdf _MergedPfd = null;
+ private string _MergedPdfPath = null;
private void CreatePDFs()
{
if (VlnSettings.GetCommandFlag("PROFILE")) ProfileTimer.TurnOnTracking("Profile.txt");
@@ -633,7 +689,6 @@ namespace VEPROMS
ProfileTimer.Reset();
int profileDepth = ProfileTimer.Push(">>>> CreatePdf");
StringBuilder sb = new StringBuilder();
-
if (MySessionInfo != null)
{
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures)
@@ -644,22 +699,18 @@ namespace VEPROMS
sb.AppendLine(message);
}
}
-
if (sb.Length > 0)
{
if (MessageBox.Show(sb.ToString() + Environment.NewLine + Environment.NewLine + "Do you want to continue to print all procedures?", "Procedures Already Checked Out", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
return;
}
}
-
CreateDebugFiles();
-
// If file exists, determine if overwrite checkbox allows overwrite, if not prompt.
Volian.Print.Library.Rtf2Pdf.PdfDebug = cbxDebug.Checked;
// B2019-128: The combo box list did not include the 'None' option so the selected value was not the correct watermark (had to add 1 to the selected index)
string waterMarkText = (swtbtnWaterMark.Value) ? cbxWaterMark.Text : "None"; // C2021-019
string watermarkColor = "Blue"; // this is the default watermark color
-
// Determine change bar settings. First get from config & then see if override from dialog.
// Also check that format allows override.
ChangeBarDefinition cbd = DetermineChangeBarSettings();
@@ -667,22 +718,18 @@ namespace VEPROMS
int i = 0;
pbPDFsStatus.Maximum = n;
pbPDFsStatus.Visible = true;
- VlnSvgPageHelper.CountInApplProcs = 1; // B2021-127: BNPPalr - Auto set of serial #, skip Front Matter as per PAL 11/1/21 (set to 1 not 0)
+ VlnSvgPageHelper.CountInApplProcs = 1; // B2021-127: BNPPalr - Auto set of serial #, skip Front Matter as per PAL 11/1/21 (set to 1 not 0)
this.Text = string.Format("Processing {0}", _DocVersionInfo.MyFolder.Name);
-
foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures)
{
- string locpdfname = null; // get pdf file name for later merge code
+ string locpdfname = null; // get pdf file name for later merge code
MyProcedure = myProc;
-
// C2021-019: Override Watermark Text, 'waterMarkText' will have whatever watermark text should be printed
ProcedureConfig procConfig = MyProcedure.MyConfig as ProcedureConfig;
- string waterMarkTextOverride = string.Empty;
+ string waterMarkTextOverride = "";
if (procConfig != null) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE");
-
// C2020-002 paper size is now set in the format files - default is Letter
Volian.Print.Library.Rtf2Pdf.PaperSize = myProc.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize;
-
if (myProc.Sections != null)
{
// This is master/slave & a slave has been selected for printing (SelectedSlave > 0)
@@ -690,18 +737,15 @@ namespace VEPROMS
{
bool includeProc = MyProcedure.ApplInclude(SelectedSlave); // C2021-027: Procedure level PC/PC
if (!includeProc) VlnSvgPageHelper.CountInApplProcs++; // B2021-127: BNPPalr - Auto set of serial #
-
if (includeProc)
{
MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = SelectedSlave;
SetupForProcedure();
-
//B2022-030 moved the watermark stuff after SetupForProcedure so that DisplayNumber is properly resolved and the proper unit watermark is found
// also moved the setting of override watermark to after SetUnitWatermark so that it truely overrrides
- frmPDFStatusForm.SetUnitWatermark(MyProcedure, ref waterMarkText, ref watermarkColor); //C2022-004 Unit Designator watermark // C2021-062 save the entered Rev Number to all of the procedures that are being printed?
+ frmPDFStatusForm.SetUnitWatermark(MyProcedure, ref waterMarkText, ref watermarkColor); //C2022-004 Unit Designator watermark // C2021-062 save the entered Rev Number to all of the procedures that are being printed
if (swtbtnWaterMark.Value && waterMarkTextOverride != null && waterMarkTextOverride != "") waterMarkText = waterMarkTextOverride;
if (_NewRevForAllProcs != null) SaveRevNumToProcedureConfig(_NewRevForAllProcs);
-
pbPDFsStatus.TextVisible = true;
pbPDFsStatus.Text = string.Format("Creating PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n);
pbPDFsStatus.Value = i;
@@ -716,7 +760,6 @@ namespace VEPROMS
string myPDFPath = GetMultiunitPDFPath();
_MergedPdfPath = myPDFPath; // If Slave, need its subdirectory/unit path for merging
// RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered.
-
// B2021-102 put in the using for better memory management
using (frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, waterMarkText, cbxDebug.Checked, cbxOrPgBrk.Checked,
cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, myPDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50),
@@ -739,10 +782,9 @@ namespace VEPROMS
{
MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = k;
SetupForProcedure();
-
//B2022-030 moved the watermark stuff after SetupForProcedure so that DisplayNumber is properly resolved and the proper unit watermark is found
// also moved the setting of override watermark to after SetUnitWatermark so that it truely overrrides
- frmPDFStatusForm.SetUnitWatermark(MyProcedure, ref waterMarkText, ref watermarkColor); //C2022-004 Unit Designator watermark // C2021-062 save the entered Rev Number to all of the procedures that are being printed?
+ frmPDFStatusForm.SetUnitWatermark(MyProcedure, ref waterMarkText, ref watermarkColor); //C2022-004 Unit Designator watermark // C2021-062 save the entered Rev Number to all of the procedures that are being printed
if (swtbtnWaterMark.Value && waterMarkTextOverride != null && waterMarkTextOverride != "") waterMarkText = waterMarkTextOverride;
// C2021-062 save the entered Rev Number to all of the procedures that are being printed
if (_NewRevForAllProcs != null) SaveRevNumToProcedureConfig(_NewRevForAllProcs);
@@ -777,9 +819,7 @@ namespace VEPROMS
// Not master/slave
else
{
- MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = SelectedSlave;
SetupForProcedure();
-
//B2022-030 moved the watermark stuff after SetupForProcedure so that DisplayNumber is properly resolved and the proper unit watermark is found
// also moved the setting of override watermark to after SetUnitWatermark so that it truely overrrides
frmPDFStatusForm.SetUnitWatermark(MyProcedure, ref waterMarkText, ref watermarkColor); //C2022-004 Unit Designator watermark // C2021-062 save the entered Rev Number to all of the procedures that are being printed
@@ -817,293 +857,17 @@ namespace VEPROMS
}
}
}
-
pbPDFsStatus.Visible = false;
-
- if (!Automatic)
+ if(!Automatic)
ShowDebugFiles();
-
ProfileTimer.Pop(profileDepth);
ProfileTimer.ShowTimerTable();
-
if (VlnSettings.GetCommandFlag("DBTrack"))
{
VEPROMS.CSLA.Library.Database.TrackDBUsage = false;
VEPROMS.CSLA.Library.Database.ShowDBTracking("DBTracking.txt");
}
}
-
- private void HandleDocVersionSettings()
- {
- GetDocVersionSettings();
-
- // set to a default PDF location if none was specified in the DocVersions property
- if (txbPDFLocation.Text == null || txbPDFLocation.Text.Length == 0 || !Directory.Exists(txbPDFLocation.Text))
- txbPDFLocation.Text = VlnSettings.TemporaryFolder;
-
- SetCompareVisibility();
-
- // if the default setting is 'SelectBeforePrinting', expand the Additional Print Settings panel
- if (_DocVersionConfig.Print_ChangeBar == PrintChangeBar.SelectBeforePrinting)
- {
- swtbtnChgBar.Value = false;
- cbxOvrrideDefChgBars.Checked = false;
- expPrnSetting.Expanded = true;
- }
- }
-
- private void GetDocVersionSettings()
- {
- _DocVersionConfig.SaveChangesToDocVersionConfig = false;
- _DocVersionConfig.ParentLookup = false;
-
- // PDF Location
- PDFPath = _DocVersionConfig.Print_PDFLocation;
-
- // Overwrite PDF
- cbxOverwritePDF2.Checked = _DocVersionConfig.Print_AlwaysOverwritePDF;
-
- // Open PDF After Create
- cbxOpenAfterCreate2.Checked = _DocVersionConfig.Print_AlwaysViewPDFAfterCreate;
-
- // ChangeBars on/off
- if (_DocVersionConfig.Print_ChangeBar == PrintChangeBar.Without)
- swtbtnChgBar.Value = false;
- else
- swtbtnChgBar.Value = true;
-
- // Watermark on/off
- if (_DocVersionConfig.Print_Watermark == PrintWatermark.None)
- swtbtnWaterMark.Value = false;
- else
- swtbtnWaterMark.Value = true;
-
- SetCompareVisibility();
-
- // default to using OriginalPageBreaks (16bit page breaks) if App.config is set
- // to true:
- //cbxOrPgBrk.Visible = VlnSettings.OriginalPageBreak && VlnSettings.DebugMode;
- cbxOrPgBrk.Visible = false; //per Harry
- cbxOrPgBrk.Checked = false;
- }
-
- private void SetCompareVisibility()
- {
- // default to print Debug info if App.config is set to debug mode
- // This checkbox is now labeled as "Compare PDF"
- // If the PDF location has a Compare folder or we are in Debug Mode
- // then make the checkbox visible
- string cmpfldr = txbPDFLocation.Text;
- if (!cmpfldr.EndsWith("\\")) cmpfldr += "\\";
- cmpfldr += "Compare";
-
- cbxDebug.Visible = Directory.Exists(cmpfldr) || VlnSettings.DebugMode;
- cbxDebug.Checked = VlnSettings.DebugMode;
- }
-
- private void PrepForAllOrOne(bool oneProcedure)
- {
- txbPDFName.Visible = lblPDFFileName.Visible = oneProcedure;
- txbReviewDate.Visible = lblReviewDate.Visible = oneProcedure;
- txbRevDate.Visible = lblRevDate.Visible = oneProcedure;
- cbxOpenAfterCreate2.Visible = oneProcedure;
- cbxOpenAfterCreate2.Checked = false;
- cbxOverwritePDF2.Visible = oneProcedure;
- cbxOverwritePDF2.Checked = true;
- gpnlDebug.Visible = Volian.Base.Library.VlnSettings.DebugMode;
- swtbtnGeneratePlacekeeper.Value = false;
- cbxGenerateConActSum.Checked = false;
-
- swtbtnGeneratePlacekeeper.Visible = lblGeneratePlacekeeper.Visible = oneProcedure &&
- ((MyProcedure.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.AutoPlacekeeper) == E_PurchaseOptions.AutoPlacekeeper);
-
- // C2021-062 make visible the check box to assign rev number for all procedures being printed
- // also make visible the Rev Num entry field.
- txbRevNum.Enabled = oneProcedure;
- cbxAssignRevToAllMergedPrcs.Visible = btnMergePDFs.Visible = !oneProcedure;
-
- // C2021-063 make the Generate Alarm Point List text checkbox visible in the format flag is set.
- cbxAlmPtTxt.Visible = !oneProcedure && MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.ChkBoxToGeneratePointListText;
- }
-
- // C2018-033 add the Prefix and/or Suffix to PDF file name if defined and wanted by the user
- // this piece of code was functionalized from SetupForProcedure()
- private void BuildPDFFileName()
- {
- if (MyProcedure == null) return;
-
- string PDFFilePrefix = _DocVersionConfig.Print_PDFFilePrefix;
- string PDFFileSuffix = _DocVersionConfig.Print_PDFFileSuffix;
- string PDFFileName = string.Empty;
-
- PDFDTPrefix dtPre = _DocVersionConfig.Print_PDFdtFilePrefix;
- PDFDTSuffix dtSuf = _DocVersionConfig.Print_PDFdtFileSuffix;
-
- if (dtPre != PDFDTPrefix.None) PDFFilePrefix = string.Empty; // incase user entered prefix text but then selected a date/time (in working draft properties)
- if (dtSuf != PDFDTSuffix.None) PDFFileSuffix = string.Empty; // incase user entered suffix text but then selected a date/time (in working draft properties)
-
- // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
- // disable the date/time Prefix/Suffix switch if no date/time was selected
- // This switch is does not affect the use of it if the user typed in text for prefix/suffix
- if (!AllowDateTimePrefixSuffix || (dtPre == PDFDTPrefix.None && dtSuf == PDFDTSuffix.None))
- {
- swtbtnPDFdtPrefixSuffix.Value = false;
- swtbtnPDFdtPrefixSuffix.Enabled = false;
- }
-
- if (AllowDateTimePrefixSuffix && swtbtnPDFdtPrefixSuffix.Value)
- {
- //DateTime dts = DateTime.Now;
- if (dtPre != PDFDTPrefix.None)
- PDFFilePrefix = (_PrefixSuffixDTS.ToString(dtPre.ToString())).Replace("__", " ").Replace("_", "-") + "_";
-
- if (dtSuf != PDFDTSuffix.None)
- PDFFileSuffix = "_" + (_PrefixSuffixDTS.ToString(dtSuf.ToString())).Replace("__", " ").Replace("_", "-");
- }
-
- if (string.IsNullOrEmpty(ProcNum))
- PDFFileName = this.UnitNumber;
- else
- PDFFileName = string.Format("{0}", _MyProcedure.PDFNumber);
-
- if (string.IsNullOrEmpty(PDFFileName))
- PDFFileName = "NoProcNumber";
-
- if (PDFFileName.StartsWith("*"))
- PDFFileName = PDFFileName.Replace("*", this.UnitNumber);
-
- if (PDFFileName.Contains("?"))
- PDFFileName = PDFFileName.Replace("?", "_"); // for wcn sys/BM-2xxA??, etc
-
- txbPDFName.Text = PDFFilePrefix + PDFFileName + PDFFileSuffix + ".pdf";
- }
-
- // C2018-033 Enable/disable the switch to control whether to add Prefix and/or Suffix to PDF file name
- private void SetupPrefixSuffixSwitch()
- {
- if (_CreateButtonClicked) return; // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
-
- // note that MyProcedure must be set before calling this because BuildPDFFileName() will be called when the swbtnPDFPrefixSuffix is set
- DocVersionConfig dvc = (_DocVersionConfig != null) ? _DocVersionConfig : MyProcedure.MyDocVersion.DocVersionConfig;
-
- string PDFFilePrefix = dvc.Print_PDFFilePrefix;
- string PDFFileSuffix = dvc.Print_PDFFileSuffix;
-
- PDFDTPrefix dtPre = dvc.Print_PDFdtFilePrefix;
- PDFDTSuffix dtSuf = dvc.Print_PDFdtFileSuffix;
-
- bool hasPrefixSuffix = _DateTimePrefixSuffixPrintingAllProcedures && (PDFFilePrefix.Length > 0 || PDFFileSuffix.Length > 0 || dtPre != PDFDTPrefix.None || dtSuf != PDFDTSuffix.None);
-
- // this will call BuildPDFFileName() thus MyProcedure must be set
- swtbtnPDFdtPrefixSuffix.Value = hasPrefixSuffix;
- swtbtnPDFdtPrefixSuffix.Enabled = hasPrefixSuffix;
- }
-
- private void DlgPrintProcedure_Load(object sender, EventArgs e)
- {
- SetupForProcedure();
-
- _MyTimer = new Timer();
- _MyTimer.Tick += new EventHandler(_MyTimer_Tick);
- _MyTimer.Interval = 100;
- _MyTimer.Enabled = true;
-
- btnCreatePDF.Select();
- }
-
- void _MyTimer_Tick(object sender, EventArgs e)
- {
- _MyTimer.Enabled = false;
- BringToFront();
- if (Automatic) RunAutomatic();
- }
-
- private void RunAutomatic()
- {
- cbxDebugPagination.Checked = true;
- cbxDebugText.Checked = true;
- cbxMetaFile.Checked = true; // C2018-004 create meta file for baseline compares
- _IncludeWordSecTextInMetafile = true;
-
- Application.DoEvents();
-
- string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray());
- bool ranAuto = false;
-
- foreach (string parameter in parameters)
- {
- if (parameter.ToUpper() == "/NT")
- cbxDebugText.Checked = false;
- else if (parameter.ToUpper() == "/NP")
- cbxDebugPagination.Checked = false;
- else if (parameter.ToUpper() == "/NC")
- cbxDebug.Checked = false;
- else if (parameter.ToUpper() == "/NM")
- cbxMetaFile.Checked = false; // C2018-004 turn off create meta file for baseline compares
- else if (parameter.ToUpper() == "/NW")
- _IncludeWordSecTextInMetafile = false; // C2018-023 turn off putting Word attachment text in the meta file for baseline compares
- }
-
- CreatePDFs();
-
- this.Close();
- }
-
- private void btnCreatePDF_Click(object sender, EventArgs e)
- {
- DoCreatePDF();
- }
-
- private void DoCreatePDF()
- {
- if (_AllProcedures)
- {
- this.Cursor = Cursors.WaitCursor;
-
- DateTime dtStart = DateTime.Now;
- _MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString();
-
- PromsPrinter.ClearTransPageNumProblems();
- CreatePDFs();
- PromsPrinter.ReportTransPageNumProblems();
-
- this.Cursor = Cursors.Default;
-
- if (_MergedPfd == null)
- {
- if (VlnSettings.DebugMode)
- {
- MessageBox.Show(string.Format("{0} Minutes to Print All Procedures"
- , TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalMinutes),
- "Printing Duration", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- else // Production or Demo mode
- {
- MessageBox.Show("Completed Successfully", "Print All Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
-
- this.Close();
- }
- }
- else
- {
- // B2016-249 Output Procedure to folder associated with Parent Child
- // B2017-009 If the selected item is null don't add a folder
- if (cbxMultiunitPdfLocation.SelectedItem != null)
- {
- _MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString();
- }
-
- this.Cursor = Cursors.WaitCursor;
-
- _CreateButtonClicked = true; // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
- CreatePDF();
- _CreateButtonClicked = false;
-
- this.Cursor = Cursors.Default;
- }
- }
-
private void AddToMergeList(ProcedureInfo myProc, string locpdfname)
{
// if doing a merge and this procedure should be included, add it to _MergedPdf:
@@ -1112,63 +876,20 @@ namespace VEPROMS
// pdf name from printing has the path, remove it.
string pdfname = locpdfname.Substring(locpdfname.LastIndexOf(@"\") + 1);
MergedPdfProc mpp = new MergedPdfProc(myProc.DisplayText, pdfname);
-
// F2021-046: flag if cover page section doesn't print page number on first page of merged pdf:
if (myProc.Sections != null)
{
foreach (ItemInfo ii in myProc.Sections) if (ii.MyDocStyle != null && ii.MyDocStyle.CoverNoMergedPageNum) mpp.FirstPageNoPageNum = true;
}
-
if (_MergedPfd.MergedPdfs == null) _MergedPfd.MergedPdfs = new List();
mpp.PageCount = PromsPrinter.ProcPageCount;
-
_MergedPfd.MergedPdfs.Add(mpp);
}
}
- private void btnMergePDFs_Click(object sender, EventArgs e)
- {
- // Merge the pdfs into one pdf file (C2019-012)
- DateTime dtStart = DateTime.Now;
- _MergedPfd = new MergedPdf(PDFPath, _DocVersionInfo);
-
- // B2019-152: MergedLandscapePages has data set when creating separate pdfs (DoCreatePDF)
- PromsPrinter.MergedLandscapePages = null;
-
- DoCreatePDF(); // create individual pdfs
-
- if (_MergedPdfPath != null && _MergedPdfPath != PDFPath) PDFPath = _MergedPfd.Folder = _MergedPdfPath;
- // C2021-063 pass in whether to generate Alarm Point List text when a merge is done
- if (!_MergedPfd.DoTheMerge(PromsPrinter.MergedLandscapePages, cbxAlmPtTxt.Checked)) return; // merge them together.
-
- // if the property to show the file after printing is set (on the version dialog), display it. Otherwise do a dialog to let user know it's done
- if (_DocVersionConfig.Print_MergedPdfsViewAfter)
- {
- if (_MergedPfd.MergedPdfs != null && _MergedPfd.MergedPdfs.Count > 0)
- {
- System.Diagnostics.Process sdp = System.Diagnostics.Process.Start(_MergedPfd.MergedFileName);
- if (sdp != null) // B2020-055 if the current .NET version does not recognize the program used to display the PDF, it will return a NULL (ex. Microsoft Edge)
- sdp.WaitForInputIdle();
- }
- }
- else if (VlnSettings.DebugMode)
- {
- FlexibleMessageBox.Show(string.Format("{0} Minutes to Print and Merge Procedures"
- , TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalMinutes),
- "Printing Duration", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- else // Production or Demo mode
- {
- FlexibleMessageBox.Show("Completed Successfully", "Print All and Merge Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
-
- this.Close();
- }
-
private string GetMultiunitPDFPath()
{
string newPDFPath = string.Empty;
-
if (_MultiunitPdfLocation == "None")
newPDFPath = PDFPath;
if (_MultiunitPdfLocation == "Unit Name")
@@ -1180,39 +901,28 @@ namespace VEPROMS
if (_MultiunitPdfLocation == "Unit ID")
newPDFPath = PDFPath + @"\" + MyProcedure.MyDocVersion.DocVersionConfig.Unit_ID;
if (newPDFPath == "") newPDFPath = Volian.Base.Library.VlnSettings.TemporaryFolder;
-
- // B2016-255 Non-P/C PC procedures need to remove that \0 that the code above adds
- if (newPDFPath.EndsWith("\\0"))
- newPDFPath = newPDFPath.Substring(0, newPDFPath.Length - 2);
-
+ // B2016-255 Non-P/C PC proceduress need to remove that \0 that the code above addds
+ if (newPDFPath.EndsWith("\\0")) newPDFPath = newPDFPath.Substring(0, newPDFPath.Length - 2);
if (!Directory.Exists(newPDFPath))
Directory.CreateDirectory(newPDFPath);
-
return newPDFPath;
}
-
private void CreateDebugFiles()
{
if (cbxDebugPagination.Checked)
Volian.Base.Library.DebugPagination.Open(PDFPath + "\\DebugPagination.txt"); // RHM 20120925 Corrected spelling
-
if (cbxDebugText.Checked)
Volian.Base.Library.DebugText.Open(PDFPath + "\\DebugText.txt");
-
if (cbxMetaFile.Checked) // C2018-004 create meta file for baseline compares
{
Volian.Base.Library.BaselineMetaFile.Open(PDFPath + "\\DebugMeta.txt");
-
// C2018-015 add the PROMS Version, SQL Server, and Database to top of the meta file
Volian.Base.Library.BaselineMetaFile.WriteLine("!! Ver {0} {1} {2}", AboutVEPROMS.PROMSVersion, AboutVEPROMS.SQLServerName, AboutVEPROMS.DatabaseName);
-
// C2018-023 set as to whether we are going to include the Word attment text in the baseline metafile
Volian.Base.Library.BaselineMetaFile.IncludeWordSecText = _IncludeWordSecTextInMetafile;
}
-
Rtf2Pdf._lastPageNum = 0; // reset page number
}
-
private void ShowDebugFiles()
{
if (cbxDebugPagination.Checked)
@@ -1220,7 +930,86 @@ namespace VEPROMS
if (cbxDebugText.Checked)
Volian.Base.Library.DebugText.Show();
if (cbxMetaFile.Checked)// C2018-004 create meta file for baseline compares
- Volian.Base.Library.BaselineMetaFile.Show(); // baseline
+ Volian.Base.Library.BaselineMetaFile.Show(); // baseline
+ }
+ public void CreatePDF() // RHM20150506 Multiline ItemID TextBox
+ {
+ if (VlnSettings.GetCommandFlag("PROFILE")) ProfileTimer.TurnOnTracking("Profile.txt");
+ VEPROMS.CSLA.Library.Database.TrackDBUsage = VlnSettings.GetCommandFlag("DBTrack");
+ ProfileTimer.Reset();
+ int profileDepth = ProfileTimer.Push(">>>> CreatePdf");
+ string message = string.Empty;
+ if (!MySessionInfo.CanCheckOutItem(MyProcedure.ItemID, CheckOutType.Procedure, ref message))
+ {
+ if (MessageBox.Show(this, message + Environment.NewLine + Environment.NewLine + "Do you want to continue to print the procedure?", "Procedure Is Checked Out", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
+ return;
+ }
+ // B2021-127: BNPPalr - Auto set of serial #, skip Front Matter as per PAL 11/1/21 (set to 1 not 0)
+ // Only do if set has applicability, printing an individual procedure, need to determine
+ // applicability count.
+ if (MyProcedure.MyDocVersion.MultiUnitCount > 1)
+ {
+ VlnSvgPageHelper.CountInApplProcs = 1;
+ foreach (ProcedureInfo pi in MyProcedure.MyDocVersion.Procedures)
+ {
+ if (pi.ItemID == MyProcedure.ItemID) break;
+ bool includeProc = pi.ApplInclude(SelectedSlave);
+ if (!includeProc) VlnSvgPageHelper.CountInApplProcs++;
+ }
+ }
+ CreateDebugFiles();
+ // If file exists, determine if overwrite checkbox allows overwrite, if not prompt.
+
+ Volian.Print.Library.Rtf2Pdf.PdfDebug = cbxDebug.Checked;
+ // B2019-044 don't print the watermark if the watermark switch on the print dialog is turned off
+ cbxWaterMark.Visible = true;
+ string waterMarkText = (swtbtnWaterMark.Value) ? cbxWaterMark.Text : "None" ; // B2018-124 use text of watermark form drop down list instead of enum value
+ string watermarkColor = "Blue"; // this is the default watermark color
+ frmPDFStatusForm.SetUnitWatermark(MyProcedure, ref waterMarkText, ref watermarkColor); //C2022-004 Unit Designator Watermark
+ ProcedureConfig procConfig = MyProcedure.MyConfig as ProcedureConfig;
+ string waterMarkTextOverride = "";
+ if (procConfig != null) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE"); // C2021-019: override watermark text
+ if (swtbtnWaterMark.Value && waterMarkTextOverride != null && waterMarkTextOverride != "") waterMarkText = waterMarkTextOverride;
+ // Determine change bar settings. First get from config & then see if override from dialog.
+ // Also check that format allows override.
+ ChangeBarDefinition cbd = DetermineChangeBarSettings();
+ int profileDepth2 = ProfileTimer.Push(">>>> CreatePdf.GetItemAndChildren");
+
+ // B2021-088 moved this if/else to frmPDFStatusForm() so that the Approval logic will have access to this logic
+ //if (MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave > 0 || MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier || MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificTransitionModifier)
+ // MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave);
+ //else
+ // MyProcedure = ProcedureInfo.GetItemAndChildren(MyProcedure.ItemID);
+ // C2018-015 add the procedure tree path and the procedure number and title to the meta file
+ //if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0}", MyProcedure.SearchDVPath.Replace("\a"," | "));
+ //if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0} | {1}", MyProcedure.DisplayNumber, MyProcedure.DisplayText);
+
+ // RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered.
+ ProfileTimer.Pop(profileDepth2);
+ // B2016-249 Output Procedure to folder associated with Parent Child
+ // B2018-124 use text of watermark form drop down list instead of enum value
+ using (frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, waterMarkText, cbxDebug.Checked, cbxOrPgBrk.Checked,
+ cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, GetMultiunitPDFPath(), cbd, txbPDFName.Text, new Point(Left, Bottom - 50),
+ swtbtnBlankPgsForDuplex.Value, _AllProcedures || Automatic, Prefix, SaveLinks, RemoveTrailingHardReturnsAndManualPageBreaks, swtbtnPROMSVersion.Value, false, tbBlankPage.Text, _MergedPfd, watermarkColor))//; //C2018-009 print PROMS version
+ {
+ frmStatus.MakePlaceKeeper = swtbtnGeneratePlacekeeper.Value;
+ frmStatus.MakeContinuousActionSummary = cbxGenerateConActSum.Checked;
+ if (Automatic && cbxGenerateConActSum.Checked)
+ frmStatus.OnlyShowContinuousActionSummary = true;
+ int profileDepth3 = ProfileTimer.Push(">>>> frmStatus");
+ frmStatus.ShowDialog();
+ ProfileTimer.Pop(profileDepth3);
+ }
+ MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
+ this.Close();
+ ShowDebugFiles();
+ ProfileTimer.Pop(profileDepth);
+ ProfileTimer.ShowTimerTable();
+ if (VlnSettings.GetCommandFlag("DBTrack"))
+ {
+ VEPROMS.CSLA.Library.Database.TrackDBUsage = false;
+ VEPROMS.CSLA.Library.Database.ShowDBTracking("DBTracking.txt");
+ }
}
// Determine if any dialog selections for change bars have overridden the data
@@ -1235,7 +1024,6 @@ namespace VEPROMS
cbd.MyChangeBarType = PrintChangeBar.Without;
return cbd;
}
-
// Get settings from dialog because these are used to set the initial dialog values and
// any changes from user overrides the initial settings.
ChangeBarData changeBarData = MyProcedure.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData;
@@ -1273,113 +1061,56 @@ namespace VEPROMS
}
return cbd;
}
-
- private void btnCancel_Click(object sender, EventArgs e)
+ private void btnCreatePDF_Click(object sender, EventArgs e)
{
- this.Close();
+ DoCreatePDF();
}
- private void swtbtnChgBar_ValueChanged(object sender, EventArgs e)
+ private void DoCreatePDF()
{
- // C2019-031 - disable the override change bar grouping when default change bar is set to format default or no change bar
- cbxOvrrideDefChgBars.Checked = false; // uncheck the override change bar check box inside the grouping
- cbxOvrrideDefChgBars.Enabled = swtbtnChgBar.Value; // C2022-015 enable if Change Bars are turned on
-
- if (swtbtnChgBar.Value)
+ if (_AllProcedures)
{
- switch (_DocVersionConfig.Print_ChangeBar)
+ this.Cursor = Cursors.WaitCursor;
+ DateTime dtStart = DateTime.Now;
+ _MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString();
+ PromsPrinter.ClearTransPageNumProblems();
+ CreatePDFs();
+ PromsPrinter.ReportTransPageNumProblems();
+ this.Cursor = Cursors.Default;
+ if (_MergedPfd == null)
{
- case PrintChangeBar.WithUserSpecified:
- cbxOvrrideDefChgBars.Enabled = true; // change bar text is pre-selected in procedure set properties, allow user to change change bar text
- cbxOvrrideDefChgBars.Checked = true;
- break;
- case PrintChangeBar.SelectBeforePrinting:
- cbxOvrrideDefChgBars.Enabled = true; // allow user to select change bar text every time procedure is printed
- break;
- case PrintChangeBar.Without:
- case PrintChangeBar.WithDefault:
- cbxOvrrideDefChgBars.Enabled = false; // printing with format default change bars - don't allow override
- cbxOvrrideDefChgBars.Checked = false;
- break;
- }
- }
- }
-
- private void swtbtnWaterMark_ValueChanged(object sender, EventArgs e)
- {
- if (!swtbtnWaterMark.Value) // C2021-019: make both invisible
- {
- cbxWaterMark.Visible = swtbtnWaterMark.Value;
- lblWaterMarkOvrd.Visible = swtbtnWaterMark.Value;
- }
- else // C2021-019: determine whether combo box or lable needs to be made visible
- {
- ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig;
- string waterMarkTextOverride = pc.GetValue("PSI", "WATERMARKOVERRIDE");
- if (waterMarkTextOverride != null && waterMarkTextOverride != "")
- {
- cbxWaterMark.Visible = false;
- lblWaterMarkOvrd.Visible = true;
- }
- else
- {
- cbxWaterMark.Visible = true;
- lblWaterMarkOvrd.Visible = false;
- }
- }
- }
-
- private void txbPDFLocation_Leave(object sender, EventArgs e)
- {
- if (!Directory.Exists(PDFPath))
- {
- string msg = string.Format("'{0}' does not exist. \n\nCreate it?", PDFPath);
- DialogResult dr = MessageBox.Show(msg, "Folder Not Found", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
-
- if (dr == DialogResult.Yes)
- {
- try
+ if (VlnSettings.DebugMode)
{
- Directory.CreateDirectory(PDFPath);
+ MessageBox.Show(string.Format("{0} Minutes to Print All Procedures"
+ , TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalMinutes),
+ "Printing Duration", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
- catch (Exception ex)
+ else // Production or Demo mode
{
- MessageBox.Show(ex.Message, "Error trying to create folder", MessageBoxButtons.OK, MessageBoxIcon.Error);
- PDFPath = _DocVersionConfig.Print_PDFLocation;
+ MessageBox.Show("Completed Successfully", "Print All Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
- }
- else
- {
- PDFPath = _DocVersionConfig.Print_PDFLocation;
+ this.Close();
}
}
+ else
+ {
+ // B2016-249 Output Procedure to folder associated with Parent Child
+ // B2017-009 If the selected item is null don't add a folder
+ if (cbxMultiunitPdfLocation.SelectedItem != null)
+ _MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString();
+ this.Cursor = Cursors.WaitCursor;
+ _CreateButtonClicked = true; // B2020-062 control the toggle of date/time prefix/suffix on pdf file name
+ CreatePDF();
+ _CreateButtonClicked = false;
+ this.Cursor = Cursors.Default;
+ }
}
-
- ///
- /// RHM 20120925 Added so that the dialog would center over the PROMS window
- ///
- ///
- protected override void OnActivated(EventArgs e)
- {
- base.OnActivated(e);
- if (Owner != null)
- Location = new Point(Owner.Left + Owner.Width / 2 - Width / 2, Owner.Top + Owner.Height / 2 - Height / 2);
- }
-
- private void DlgPrintProcedure_FormClosed(object sender, FormClosedEventArgs e)
- {
- _DocVersionConfig.SaveChangesToDocVersionConfig = true;
- //_DocVersionConfig.ParentLookup = true;
-
- ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig;
- if (SelectedSlave > 0) pc.SelectedSlave = 0;
- }
+ private bool _Initializing = false;
private void btnPdfLocation_Click(object sender, EventArgs e)
{
DlgBrowseFolder.SelectedPath = PDFPath;
DialogResult drslt = DlgBrowseFolder.ShowDialog();
-
if (drslt == DialogResult.OK)
{
txbPDFLocation.Text = DlgBrowseFolder.SelectedPath;
@@ -1400,7 +1131,6 @@ namespace VEPROMS
ppTxbxChangeBarUserMsgOne.Enabled = enabled;
ppTxbxChangeBarUserMsgTwo.Enabled = enabled;
}
-
private void cbxOvrrideDefChgBars_CheckStateChanged(object sender, EventArgs e)
{
SetCustomControls(cbxOvrrideDefChgBars.Checked);
@@ -1425,7 +1155,6 @@ namespace VEPROMS
if (_Initializing) return;
ppGpbxUserSpecTxt.Enabled = ppCmbxChgBarTxtType.SelectedIndex == (int)PrintChangeBarText.UserDef;
}
-
private void txbRevDate_Enter(object sender, EventArgs e)
{
txbDate = txbRevDate;
@@ -1455,6 +1184,7 @@ namespace VEPROMS
itm.MyContent.Config = MyProcedure.MyConfig.ToString();
itm.Save();
}
+
}
private void txbReviewDate_Leave(object sender, EventArgs e)
@@ -1472,8 +1202,8 @@ namespace VEPROMS
itm.Save();
// need to reset config to !dirty?
}
- }
+ }
private void txbReviewDate_Enter(object sender, EventArgs e)
{
txbDate = txbReviewDate;
@@ -1484,12 +1214,14 @@ namespace VEPROMS
calDateSelector.DisplayMonth = calDateSelector.SelectedDate = initSelDate;
}
+ private TextBox txbDate = null;
private void calDateSelector_DateSelected(object sender, DateRangeEventArgs e)
{
if (txbDate != null)
txbDate.Text = e.Start.ToShortDateString();
}
+ string _NewRevForAllProcs = null;
private void txbRevNum_Leave(object sender, EventArgs e)
{
if (_Initializing) return;
@@ -1528,22 +1260,20 @@ namespace VEPROMS
}
private void expPrnSetting_ExpandedChanging(object sender, DevComponents.DotNetBar.ExpandedChangeEventArgs e)
- {
- if (expPrnSetting.Expanded)
- {
- this.Size = new Size(this.Size.Width - (expPrnSetting.Size.Width - expPrnSetting.TitlePanel.Size.Height), this.Size.Height);
- }
+ {
+ if (expPrnSetting.Expanded)
+ //this.Size = new Size(this.Size.Width+(expPrnSetting.Size.Width-expPrnSetting.TitlePanel.Size.Height), this.Size.Height);
+ //else
+ this.Size = new Size(this.Size.Width-(expPrnSetting.Size.Width-expPrnSetting.TitlePanel.Size.Height), this.Size.Height);
+ //Refresh();
+
}
private void swtbtnPDFdtPrefixSuffix_ValueChanged(object sender, EventArgs e)
{
if (swtbtnPDFdtPrefixSuffix.Value)
swtbtnPDFLinks.Value = false;
-
- // C2018-033 add switch to use Prefix and Suffix on PDF file name
- if (_AllProcedures)
- _DateTimePrefixSuffixPrintingAllProcedures = swtbtnPDFdtPrefixSuffix.Value;
-
+ if (_AllProcedures) _DateTimePrefixSuffixPrintingAllProcedures = swtbtnPDFdtPrefixSuffix.Value; // C2018-033 add switch to use Prefix and Suffix on PDF file name
BuildPDFFileName();
}
@@ -1551,7 +1281,6 @@ namespace VEPROMS
{
if (swtbtnPDFLinks.Value)
swtbtnPDFdtPrefixSuffix.Value = false;
-
BuildPDFFileName();
}
@@ -1562,6 +1291,39 @@ namespace VEPROMS
tbBlankPage.Enabled = swtbtnBlankPgsForDuplex.Value;
}
+ // Merge the pdfs into one pdf file (C2019-012)
+ private void btnMergePDFs_Click(object sender, EventArgs e)
+ {
+ DateTime dtStart = DateTime.Now;
+ _MergedPfd = new MergedPdf(PDFPath, _DocVersionInfo);
+ PromsPrinter.MergedLandscapePages = null; // B2019-152: MergedLandscapePages has data set when creating separate pdfs (DoCreatePDF)
+ DoCreatePDF(); // create indivitual pdfs
+ if (_MergedPdfPath != null && _MergedPdfPath != PDFPath) PDFPath = _MergedPfd.Folder = _MergedPdfPath;
+ // C2021-063 pass in whether to generate Alarm Point List text when a merge is done
+ if (!_MergedPfd.DoTheMerge(PromsPrinter.MergedLandscapePages,cbxAlmPtTxt.Checked)) return; // merge them together.
+ // if the property to show the file after printing is set (on the version dialog), display it. Otherwise do a dialog to let user know it's done
+ if (_DocVersionConfig.Print_MergedPdfsViewAfter)
+ {
+ if (_MergedPfd.MergedPdfs != null && _MergedPfd.MergedPdfs.Count > 0)
+ {
+ System.Diagnostics.Process sdp = System.Diagnostics.Process.Start(_MergedPfd.MergedFileName);
+ if (sdp != null) // B2020-055 if the current .NET version does not recognize the program used to display the PDF, it will return a NULL (ex. Microsoft Edge)
+ sdp.WaitForInputIdle();
+ }
+ }
+ else if (VlnSettings.DebugMode)
+ {
+ FlexibleMessageBox.Show(string.Format("{0} Minutes to Print and Merge Procedures"
+ , TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalMinutes),
+ "Printing Duration", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else // Production or Demo mode
+ {
+ FlexibleMessageBox.Show("Completed Successfully", "Print All and Merge Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ this.Close();
+ }
+
private void cbxAssignRevToAllMergedPrcs_CheckedChanged(object sender, EventArgs e)
{
txbRevNum.Enabled = cbxAssignRevToAllMergedPrcs.Checked;
@@ -1571,6 +1333,9 @@ namespace VEPROMS
_NewRevForAllProcs = null;
}
- #endregion
+ //private void cbxDebug_CheckedChanged(object sender, EventArgs e)
+ //{
+ // cbxCmpPRMSpfd.Visible = cbxDebug.Checked;
+ //}
}
}