
Settings for Builders Group Demo Event handler for Search Results Report and Resolution User Interface Added code to make DataLoader and PDF generation faster Added ToolTip Property to ItemInfo Added code to handle "AND Range" Transitions Changed comment Sorts ROs by value
156 lines
5.4 KiB
C#
156 lines
5.4 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 VEPROMS.CSLA.Library;
|
|
using System.IO;
|
|
using Volian.Svg.Library;
|
|
using Volian.Print.Library;
|
|
using Volian.Base.Library;
|
|
|
|
namespace PrintMSWord
|
|
{
|
|
public partial class frmPrintMSWord : Form
|
|
{
|
|
public frmPrintMSWord()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
public string MyStatus
|
|
{
|
|
get { return tsslStatus.Text; }
|
|
set { tsslStatus.Text = value; Application.DoEvents(); }
|
|
}
|
|
private DateTime _TimerStart;
|
|
public DateTime TimerStart
|
|
{
|
|
get { return _TimerStart; }
|
|
set { _TimerStart = value; }
|
|
}
|
|
private string _ProcedureNumber;
|
|
public string ProcedureNumber
|
|
{
|
|
get { return _ProcedureNumber; }
|
|
set { _ProcedureNumber = value; }
|
|
}
|
|
public string MyTimerStatus
|
|
{
|
|
get { return tsslStatus.Text; }
|
|
set {
|
|
TimeSpan ts = DateTime.Now - _TimerStart;
|
|
DateTime dt = new DateTime(ts.Ticks);
|
|
tsslStatus.Text = string.Format("{0:HH:mm:ss.fff} {1} {2}",dt,ProcedureNumber,value);
|
|
Application.DoEvents();
|
|
}
|
|
}
|
|
private DocVersionInfo GetDocVersionWithContent()
|
|
{
|
|
DocVersionInfoList dvList = DocVersionInfoList.Get();
|
|
foreach (DocVersionInfo docVersion in dvList)
|
|
if (docVersion.Procedures != null)
|
|
if (docVersion.Procedures[0].ItemID != 0)
|
|
return docVersion;
|
|
return null;
|
|
}
|
|
public ProcedureInfo MyProcedure
|
|
{
|
|
get { return lbProcs.SelectedValue as ProcedureInfo; }
|
|
}
|
|
private void lbProcs_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
CreatePDF();
|
|
}
|
|
private void CreatePDF()
|
|
{
|
|
TimerStart = DateTime.Now;
|
|
ProcedureInfo myProcedure = MyProcedure;
|
|
Volian.Print.Library.Rtf2Pdf.PdfDebug = true;
|
|
tbTimings.Text = "";
|
|
Cursor saveCursor = this.Cursor;
|
|
this.Cursor = Cursors.WaitCursor;
|
|
//ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark;
|
|
CreatePDF(myProcedure,true);
|
|
this.Cursor = saveCursor;
|
|
}
|
|
|
|
private void CreatePDF(ProcedureInfo myProcedure, bool openPdf)
|
|
{
|
|
// set up for using format default change bars.
|
|
ChangeBarDefinition cbd = new ChangeBarDefinition();
|
|
ChangeBarData changeBarData = MyProcedure.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData;
|
|
cbd.MyChangeBarType = PrintChangeBar.WithDefault;
|
|
cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID :
|
|
changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID :
|
|
changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None :
|
|
changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef;
|
|
PromsPrinter pp = new PromsPrinter(myProcedure, tbRev.Text, tbRevDate.Text, cbWatermark.Text, cbDebugOutput.Checked, VlnSettings.OldPDFFolder, openPdf, true, cbd);
|
|
pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
|
|
_ElapsedTime = new Dictionary<PromsPrinterStatusType, TimeSpan>();
|
|
DateTime tStart = DateTime.Now;
|
|
string pdfFile = pp.Print(@"C:\TEMP\32Bit");
|
|
DateTime tEnd = DateTime.Now;
|
|
_ElapsedTime.Add(PromsPrinterStatusType.Total, DateTime.Now - tStart);
|
|
MyTimerStatus = pdfFile + " created.";
|
|
ShowElapsedTime();
|
|
//MyStatus = string.Format("{0} created in {1:0.} milliseconds", pdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds));
|
|
}
|
|
private void ShowElapsedTime()
|
|
{
|
|
foreach (PromsPrinterStatusType type in _ElapsedTime.Keys)
|
|
tbTimings.Text += "\r\n" + string.Format("'{0}',{1:0.}", type, _ElapsedTime[type].TotalMilliseconds);
|
|
}
|
|
private Dictionary<PromsPrinterStatusType, TimeSpan> _ElapsedTime;
|
|
private DateTime _LastTime=DateTime.Now;
|
|
private DateTime _StartTime = DateTime.Now;
|
|
void pp_StatusChanged(object sender, PromsPrintStatusArgs args)
|
|
{
|
|
if (args.Type == PromsPrinterStatusType.Start) _LastTime = _StartTime = args.When;
|
|
MyStatus = args.MyStatus;
|
|
TimeSpan delta = TimeSpan.FromTicks(args.When.Ticks - _LastTime.Ticks);
|
|
if (_ElapsedTime.ContainsKey(args.Type))
|
|
_ElapsedTime[args.Type] += delta;
|
|
else
|
|
_ElapsedTime.Add(args.Type, delta);
|
|
//if (tbTimings.Text != "") tbTimings.Text += "\r\n";
|
|
//tbTimings.Text += string.Format("{0},{1},'{2}','{3}'", TimeSpan.FromTicks(args.When.Ticks -_StartTime.Ticks).TotalSeconds, delta.TotalMilliseconds, args.Type, args.MyStatus);
|
|
_LastTime = args.When;
|
|
}
|
|
private void pDFToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
CreatePDF();
|
|
}
|
|
private void frmPrintMSWord_Load(object sender, EventArgs e)
|
|
{
|
|
DocVersionInfo dvi = GetDocVersionWithContent();
|
|
lbProcs.DataSource = dvi.Procedures;
|
|
}
|
|
|
|
private void pDFsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
TimerStart = DateTime.Now;
|
|
Volian.Print.Library.Rtf2Pdf.PdfDebug = true;
|
|
tbTimings.Text = "";
|
|
Cursor saveCursor = this.Cursor;
|
|
this.Cursor = Cursors.WaitCursor;
|
|
//ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark;
|
|
ItemInfoList myItems = lbProcs.DataSource as ItemInfoList;
|
|
tspbStatus.Maximum = myItems.Count;
|
|
tspbStatus.Value = 0;
|
|
tspbStatus.Visible = true;
|
|
foreach (ItemInfo myItem in myItems)
|
|
{
|
|
ProcedureNumber = myItem.DisplayNumber;
|
|
if (tspbStatus != null) tspbStatus.Value++;
|
|
CreatePDF(myItem.MyProcedure, false);
|
|
}
|
|
ProcedureNumber = "";
|
|
MyTimerStatus = "Processing Complete";
|
|
tspbStatus.Visible = false;
|
|
this.Cursor = saveCursor;
|
|
}
|
|
}
|
|
}
|