SourceCode/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs
2010-08-12 16:05:52 +00:00

375 lines
11 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using VEPROMS.CSLA.Library;
using Volian.Print.Library;
//using Volian.Controls.Library;
using Volian.Base.Library;
namespace VEPROMS
{
public partial class DlgPrintProcedure : DevComponents.DotNetBar.Office2007Form
{
private DocVersionConfig _DocVersionConfig;
//private string _RevNum;
public string RevNum
{
get { return txbRevNum.Text; }
set { txbRevNum.Text = value; }
}
//private string ProcNum;
public string ProcNum
{
get { return MyProcedure.DisplayNumber; }
}
//private string _PDFPath;
public string PDFPath
{
get { return txbPDFLocation.Text; }
set { txbPDFLocation.Text = value; }
}
//private DateTime _RevDate = DateTime.Today;
public DateTime RevDate
{
get { return dtRevDate.Value; }
set { dtRevDate.Value = value; }
}
//private DateTime _ReviewDate = DateTime.Today;
public DateTime ReviewDate
{
get { return dtReviewDate.Value; }
set { dtReviewDate.Value = value; }
}
public DlgPrintProcedure(ProcedureInfo pi)
{
InitializeComponent();
_DocVersionConfig = (pi.ActiveParent as DocVersionInfo).DocVersionConfig; //docVersionConfig;
_MyProcedure = pi;
GetDocVersionSettings();
// set to a default PDF location if non was specified in the DocVersions property
if (txbPDFLocation.Text == null || txbPDFLocation.Text.Length == 0 || !Directory.Exists(txbPDFLocation.Text))
txbPDFLocation.Text = VlnSettings.TemporaryFolder;
}
private void GetDocVersionSettings()
{
_DocVersionConfig.SaveChangesToDocVersionConfig = false;
_DocVersionConfig.ParentLookup = false;
// PDF Location
PDFPath = _DocVersionConfig.Print_PDFLocation;
//txbPDFLocation.Text = PDFPath;
// 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)
btnChgBarOff.PerformClick();
else
btnChgBarOn.PerformClick();
// Watermark on/off
if (_DocVersionConfig.Print_Watermark == PrintWatermark.None)
btnWaterMarkOff.PerformClick();
else
btnWaterMarkOn.PerformClick();
// Auto Duplexing on/off
if (_DocVersionConfig.Print_DisableDuplex)
btnDuplxOff.PerformClick();
else
btnDuplxOn.PerformClick();
// default to print Debug info if App.config is set to debug mode
cbxDebug.Checked = VlnSettings.DebugMode;
}
private void DlgPrintProcedure_Load(object sender, EventArgs e)
{
this.Text = "Create PDF for " + ProcNum;
//dtRevDate.Value = _RevDate;
//dtReviewDate.Value = _ReviewDate;
//tbxRevNum.Text = _RevNum;
// get list of previous pdf files
// if no previous pdf file, then get path from frmVersionProperties
// dlgSelectFile.InitialDirectory = pdf path from frmVersionProperties
//cbxPDF.Text = string.Format(@"{0}\{1}.pdf", _PDFPath, _ProcNum);
// General 2 settings
//txbPDFLocation.Text = _PDFPath;
tbxPDFName.Text = string.Format("{0}.pdf", ProcNum);
//txbRevNum.Text = _RevNum;
//dtRevDate.Value = _RevDate;
//dtReviewDate.Value = _ReviewDate;
// Advanced tab
//cbxPDFloc.Text = _PDFPath;
RevNum = "0"; // need to get from procedure config?
RevDate = DateTime.Today; // need to get from procedure config?
ReviewDate = DateTime.Today; // need to get from procedure config?
cbxWaterMark.DataSource = EnumDetail<PrintWatermark>.Details();
cbxWaterMark.DisplayMember = "Description";
cbxWaterMark.ValueMember = "EValue";
PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark;
cbxWaterMark.Text = pw.ToString();
ppCmbxChangeBarType.DataSource = EnumDetail<PrintChangeBar>.Details();
ppCmbxChangeBarType.DisplayMember = "Description";
ppCmbxChangeBarType.ValueMember = "EValue";
ppCmbxChangeBarType.Text = MyProcedure.MyDocVersion.DocVersionConfig.Print_ChangeBar.ToString();
ppCmbxChgBarPos.DataSource = EnumDetail<PrintChangeBarLoc>.Details();
ppCmbxChgBarPos.DisplayMember = "Description";
ppCmbxChgBarPos.ValueMember = "EValue";
ppCmbxChgBarPos.Text = MyProcedure.MyDocVersion.DocVersionConfig.Print_ChangeBarLoc.ToString();
ppCmbxChgBarTxtType.DataSource = EnumDetail<PrintChangeBarText>.Details();
ppCmbxChgBarTxtType.DisplayMember = "Description";
ppCmbxChgBarTxtType.ValueMember = "EValue";
ppCmbxChgBarTxtType.Text = MyProcedure.MyDocVersion.DocVersionConfig.Print_ChangeBarText.ToString();
ppTxbxChangeBarUserMsgOne.Text = MyProcedure.MyDocVersion.DocVersionConfig.Print_UserCBMess1;
ppTxbxChangeBarUserMsgTwo.Text = MyProcedure.MyDocVersion.DocVersionConfig.Print_UserCBMess2;
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
//private void btnOpenFolder_Click(object sender, EventArgs e)
//{
// saveFileDialog1.InitialDirectory = _PDFPath;//@"C:\16bit\PromsDat\VEHLP";
// saveFileDialog1.FileName = string.Format(@"{0}\{1}.pdf", _PDFPath, _ProcNum);
// DialogResult drslt = saveFileDialog1.ShowDialog();
// if (drslt == DialogResult.OK)
// {
// cbxPDF.Text = saveFileDialog1.FileName; // contails full path
// UpdateDropDown();
// }
//}
//private void btnAutoDuplxOn_Click(object sender, EventArgs e)
//{
// if (!btnAutoDuplxOn.Checked)
// {
// btnAutoDuplxOn.Checked = true;
// btnAutoDuplxOff.Checked = false;
// }
//}
//private void btnAutoDuplxOff_Click(object sender, EventArgs e)
//{
// if (!btnAutoDuplxOff.Checked)
// {
// btnAutoDuplxOff.Checked = true;
// btnAutoDuplxOn.Checked = false;
// }
//}
private void buttonX9_Click(object sender, EventArgs e)
{
DlgBrowseFolder.SelectedPath = PDFPath;
DialogResult drslt = DlgBrowseFolder.ShowDialog();
if (drslt == DialogResult.OK)
{
//cbxPDFloc.Text = DlgBrowseFolder.SelectedPath;
txbPDFLocation.Text = DlgBrowseFolder.SelectedPath;
//lblCurPDFLoc.Text = cbxPDFloc.Text;
//UpdateDropDown2();
}
}
//private void UpdateDropDown2()
//{
// if (!cbxPDFloc.Text.Equals(string.Empty))
// {
// string tstr = cbxPDFloc.Text;
// // if its already exists in the list - remove it
// if (cbxPDFloc.Items.Contains(tstr))
// cbxPDFloc.Items.Remove(tstr);
// // Add the new criteria to the top of the list
// cbxPDFloc.Items.Insert(0, tstr);
// // set the text to the new criteria
// cbxPDFloc.Text = tstr;
// // If there are more than 10 remove the last one
// if (cbxPDFloc.Items.Count > 10)
// cbxPDFloc.Items.RemoveAt(10);
// }
//}
private void btnAvChgBarOn_Click(object sender, EventArgs e)
{
if (!btnChgBarOn.Checked)
{
btnChgBarOn.Checked = true;
btnChgBarOff.Checked = false;
tbChangeBars.Visible = true;
}
}
private void btnAvChgBarOff_Click(object sender, EventArgs e)
{
if (!btnChgBarOff.Checked)
{
btnChgBarOff.Checked = true;
btnChgBarOn.Checked = false;
tbChangeBars.Visible = false;
}
}
private void btnAdvDuplxOn_Click(object sender, EventArgs e)
{
if (!btnDuplxOn.Checked)
{
btnDuplxOn.Checked = true;
btnDuplxOff.Checked = false;
}
}
private void btnAdvDuplxOff_Click(object sender, EventArgs e)
{
if (!btnDuplxOff.Checked)
{
btnDuplxOff.Checked = true; ;
btnDuplxOn.Checked = false;
}
}
private void btnAdvWaterMarkOn_Click(object sender, EventArgs e)
{
if (!btnWaterMarkOn.Checked)
{
btnWaterMarkOn.Checked = true;
btnWaterMarkOff.Checked = false;
cbxWaterMark.Visible = true;
}
}
private void btnAdvWaterMarkOff_Click(object sender, EventArgs e)
{
if (!btnWaterMarkOff.Checked)
{
btnWaterMarkOff.Checked = true;
btnWaterMarkOn.Checked = false;
cbxWaterMark.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;
}
private ProcedureInfo _MyProcedure;
public ProcedureInfo MyProcedure
{
get { return _MyProcedure; }
set { _MyProcedure = value; }
}
private void CreatePDF()
{
Volian.Print.Library.Rtf2Pdf.PdfDebug = true;
//tbTimings.Text = "";
//Cursor saveCursor = this.Cursor;
//this.Cursor = Cursors.WaitCursor;
//ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark;
PrintWatermark pw = (PrintWatermark)cbxWaterMark.SelectedValue;
frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNum, RevDate.ToShortDateString(), pw.ToString(), cbxDebug.Checked, VlnSettings.OldPDFFolder, cbxOpenAfterCreate2.Checked, PDFPath);
frmStatus.Show();
this.Close();
//PromsPrinter pp = new PromsPrinter(MyProcedure, RevNum, RevDate.ToShortDateString(), pw.ToString(), true, @"C:\TEMP\16Bit", cbxOpenAfterCreate2.Checked);
////pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
//pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
////_ElapsedTime = new Dictionary<PromsPrinterStatusType, TimeSpan>();
//DateTime tStart = DateTime.Now;
//string pdfFile = pp.Print(PDFPath);
//DateTime tEnd = DateTime.Now;
////_ElapsedTime.Add(PromsPrinterStatusType.Total, DateTime.Now - tStart);
//MyStatus = pdfFile + " created.";
////this.Cursor = saveCursor;
////ShowElapsedTime();
//MyStatus = string.Format("{0} created in {1:0.} milliseconds", pdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds));
}
//void pp_StatusChanged(object sender, PromsPrintStatusArgs args)
//{
// MyStatus = args.MyStatus;
//}
private void btnCreatePDF_Click(object sender, EventArgs e)
{
CreatePDF();
}
//private void txbRevNum_TextChanged(object sender, EventArgs e)
//{
// RevNum = txbRevNum.Text;
//}
//private void dtRevDate_TextChanged(object sender, EventArgs e)
//{
// RevDate = dtRevDate.Value;
//}
//private void dtReviewDate_Click(object sender, EventArgs e)
//{
// ReviewDate = dtReviewDate.Value;
//}
//public string MyStatus
//{
// get { return lblStatus.Text;}
// set { lblStatus.Text = value; Application.DoEvents(); }
//}
}
}