Output.Printers.OnePagePerMeter.Printer implemented, fixes in Culture configuration, ver. 2.17.695
This commit is contained in:
parent
7d4f1b2a44
commit
c9c57db7c1
@ -45,8 +45,8 @@ namespace Results.Output.Printers.OnePagePerMeter
|
|||||||
/// Data to print
|
/// Data to print
|
||||||
///
|
///
|
||||||
Results.Entities.Batch batch;
|
Results.Entities.Batch batch;
|
||||||
|
|
||||||
EnhancedPrinterCfg cfg;
|
EnhancedPrinterCfg cfg;
|
||||||
|
Results.Entities.WaterMeter wm;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Items to print
|
/// Items to print
|
||||||
@ -56,25 +56,16 @@ namespace Results.Output.Printers.OnePagePerMeter
|
|||||||
IList<WMeterRsltItemSpec> testItems;
|
IList<WMeterRsltItemSpec> testItems;
|
||||||
string footer;
|
string footer;
|
||||||
|
|
||||||
///
|
|
||||||
/// Layout and status
|
|
||||||
///
|
|
||||||
int nrWMsOnFirstPage;
|
|
||||||
int nrWMsOnNextPage;
|
|
||||||
int nextWMNr; /// nr. of watermeter to be printed as the first one on the next page
|
|
||||||
int nrPages;
|
|
||||||
int pageNr; /// Page number to be printed at the bottom of the page
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor
|
/// Constructor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="textToPrint">Text to be printed</param>
|
/// <param name="textToPrint">Text to be printed</param>
|
||||||
public EnhancedPrintDocument(Results.Entities.Batch batch, EnhancedPrinterCfg cfg)
|
public EnhancedPrintDocument(Results.Entities.Batch batch, EnhancedPrinterCfg cfg, Results.Entities.WaterMeter wm)
|
||||||
{
|
{
|
||||||
this.batch = batch;
|
this.batch = batch;
|
||||||
|
|
||||||
this.cfg = cfg;
|
this.cfg = cfg;
|
||||||
|
this.wm = wm;
|
||||||
|
|
||||||
topMargin = cfg.TopMargin;
|
topMargin = cfg.TopMargin;
|
||||||
bottomMargin = cfg.BottomMargin;
|
bottomMargin = cfg.BottomMargin;
|
||||||
leftMargin = cfg.LeftMargin;
|
leftMargin = cfg.LeftMargin;
|
||||||
@ -85,9 +76,9 @@ namespace Results.Output.Printers.OnePagePerMeter
|
|||||||
footer = string.IsNullOrEmpty(cfg.Footer) ? string.Empty : cfg.Footer.Replace("~", Environment.NewLine);
|
footer = string.IsNullOrEmpty(cfg.Footer) ? string.Empty : cfg.Footer.Replace("~", Environment.NewLine);
|
||||||
|
|
||||||
/// Initialize fonts
|
/// Initialize fonts
|
||||||
titleFont = new Font(cfg.TitFntFml, cfg.TitFntSz, (FontStyle)cfg.TitFntSty);
|
titleFont = new Font((cfg.TitFntFml != null ? cfg.TitFntFml : "Arial"), (cfg.TitFntSz > 0 ? cfg.TitFntSz : 10), (FontStyle)cfg.TitFntSty);
|
||||||
headerFont = new Font(cfg.HdrFntFml, cfg.HdrFntSz, (FontStyle)cfg.HdrFntSty);
|
headerFont = new Font((cfg.HdrFntFml != null ? cfg.HdrFntFml : "Arial"), (cfg.HdrFntSz > 0 ? cfg.HdrFntSz : 10), (FontStyle)cfg.HdrFntSty);
|
||||||
font = new Font(cfg.BodyFntFml, cfg.BodyFntSz, (FontStyle)cfg.BodyFntSty);
|
font = new Font((cfg.BodyFntFml != null ? cfg.BodyFntFml : "Arial"), (cfg.BodyFntSz > 0 ? cfg.BodyFntSz : 10), (FontStyle)cfg.BodyFntSty);
|
||||||
|
|
||||||
/// Set print area size and margins (in dots using 100 dpi)
|
/// Set print area size and margins (in dots using 100 dpi)
|
||||||
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
||||||
@ -110,13 +101,10 @@ namespace Results.Output.Printers.OnePagePerMeter
|
|||||||
|
|
||||||
/// Calculate the tests count
|
/// Calculate the tests count
|
||||||
int testsCount = 0;
|
int testsCount = 0;
|
||||||
if (batch.WaterMeters.Count > 0)
|
foreach (var mtr in wm.MeterTestRslts)
|
||||||
{
|
|
||||||
foreach (var mtr in batch.WaterMeters[0].MeterTestRslts)
|
|
||||||
{
|
{
|
||||||
if (mtr.Publish() == Config.Entities.Publish.Always && mtr.IsPilotRslt()) testsCount++;
|
if (mtr.Publish() == Config.Entities.Publish.Always && mtr.IsPilotRslt()) testsCount++;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/// Prepare document outline
|
/// Prepare document outline
|
||||||
TitleX = cfg.LeftMargin;
|
TitleX = cfg.LeftMargin;
|
||||||
@ -129,15 +117,6 @@ namespace Results.Output.Printers.OnePagePerMeter
|
|||||||
BodyTop = CommonTop + commonHeight + SpacingOne4Header;
|
BodyTop = CommonTop + commonHeight + SpacingOne4Header;
|
||||||
|
|
||||||
int wmSectionHeight = (testsCount + 1) * SpacingOne + 3 * SpacingOne4Header;
|
int wmSectionHeight = (testsCount + 1) * SpacingOne + 3 * SpacingOne4Header;
|
||||||
|
|
||||||
nrWMsOnFirstPage = (printHeight - BodyTop + TitleY - 2 * SpacingOne) / wmSectionHeight;
|
|
||||||
nrWMsOnNextPage = (printHeight - 2 * SpacingOne) / wmSectionHeight;
|
|
||||||
nrWMsOnNextPage = Math.Max(nrWMsOnNextPage, 1); /// Prevent division by zero if there are too many WM tests
|
|
||||||
|
|
||||||
nrPages = 1 + (batch.WaterMeters.Count - nrWMsOnFirstPage + nrWMsOnNextPage - 1) / nrWMsOnNextPage;
|
|
||||||
|
|
||||||
pageNr = 1;
|
|
||||||
nextWMNr = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -169,8 +148,6 @@ namespace Results.Output.Printers.OnePagePerMeter
|
|||||||
/// Use the StringFormat class for the text layout of our document
|
/// Use the StringFormat class for the text layout of our document
|
||||||
StringFormat format = new StringFormat(StringFormatFlags.LineLimit);
|
StringFormat format = new StringFormat(StringFormatFlags.LineLimit);
|
||||||
|
|
||||||
if (pageNr == 1)
|
|
||||||
{
|
|
||||||
///----------
|
///----------
|
||||||
/// Title
|
/// Title
|
||||||
///----------
|
///----------
|
||||||
@ -201,7 +178,6 @@ namespace Results.Output.Printers.OnePagePerMeter
|
|||||||
PrintAt(e, leftMargin, CommonTop + SpacingOne * i, leftColumn[i]);
|
PrintAt(e, leftMargin, CommonTop + SpacingOne * i, leftColumn[i]);
|
||||||
PrintAt(e, 300, CommonTop + SpacingOne * i, rightColumn[i]);
|
PrintAt(e, 300, CommonTop + SpacingOne * i, rightColumn[i]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
///--------
|
///--------
|
||||||
/// Body
|
/// Body
|
||||||
@ -209,28 +185,21 @@ namespace Results.Output.Printers.OnePagePerMeter
|
|||||||
|
|
||||||
/// This variable represents the top coordinate of the area where WM results are printed
|
/// This variable represents the top coordinate of the area where WM results are printed
|
||||||
/// and it is updated (increased by) the value returned by PrintXyzWM() - the section size.
|
/// and it is updated (increased by) the value returned by PrintXyzWM() - the section size.
|
||||||
int nextWmTop = (pageNr == 1) ? BodyTop : TitleY;
|
int nextWmTop = BodyTop;
|
||||||
|
int wmPosition = wm.WMPosition;
|
||||||
|
nextWmTop += PrintWM(e, wm, wmPosition, nextWmTop);
|
||||||
|
|
||||||
int nrWMsOnPage = (pageNr == 1) ? nrWMsOnFirstPage : nrWMsOnNextPage;
|
e.HasMorePages = false;
|
||||||
|
|
||||||
for (int wmNr = nextWMNr; wmNr < Math.Min(nextWMNr + nrWMsOnPage, batch.WaterMeters.Count); wmNr++) /// wmNr is 0-based
|
|
||||||
{
|
|
||||||
int wmPosition = true ? batch.WaterMeters[wmNr].WMPosition : (wmNr + 1);
|
|
||||||
nextWmTop += PrintWM(e, batch.WaterMeters[wmNr], wmPosition, nextWmTop);
|
|
||||||
}
|
|
||||||
|
|
||||||
nextWMNr += nrWMsOnPage;
|
|
||||||
e.HasMorePages = (nextWMNr < batch.WaterMeters.Count);
|
|
||||||
|
|
||||||
///----------
|
///----------
|
||||||
/// Footer
|
/// Footer
|
||||||
///----------
|
///----------
|
||||||
int footerWidth = (int)e.Graphics.MeasureString(footer, font).Width;
|
int footerWidth = (int)e.Graphics.MeasureString(footer, font).Width;
|
||||||
PrintAt(e, leftMargin + (printWidth - footerWidth) / 2, topMargin + printHeight - 2 * SpacingOne, footer);
|
PrintAt(e, leftMargin, topMargin + printHeight - 2 * SpacingOne, footer);
|
||||||
|
|
||||||
string pageNrText = string.Format("{0} {1}/{2}", Strings.Page, pageNr++, nrPages);
|
//string pageNrText = string.Format("{0} {1}/{2}", Strings.Page, 1, 1);
|
||||||
int pageNrWidth = (int)e.Graphics.MeasureString(pageNrText, font).Width;
|
//int pageNrWidth = (int)e.Graphics.MeasureString(pageNrText, font).Width;
|
||||||
PrintAt(e, leftMargin + (printWidth - pageNrWidth) / 2, topMargin + printHeight - SpacingOne, pageNrText);
|
//PrintAt(e, leftMargin + (printWidth - pageNrWidth) / 2, topMargin + printHeight - SpacingOne, pageNrText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
|||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("2.17.693.0")]
|
[assembly: AssemblyVersion("2.17.695.0")]
|
||||||
[assembly: AssemblyFileVersion("2.17.693.0")]
|
[assembly: AssemblyFileVersion("2.17.695.0")]
|
||||||
|
|||||||
@ -435,4 +435,7 @@
|
|||||||
<data name="Yes" xml:space="preserve">
|
<data name="Yes" xml:space="preserve">
|
||||||
<value>Да</value>
|
<value>Да</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Water_Meter" xml:space="preserve">
|
||||||
|
<value>Счетчик воды</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@ -9,6 +9,9 @@ namespace TBF.BenchControl.Output
|
|||||||
EN,
|
EN,
|
||||||
DE,
|
DE,
|
||||||
SK,
|
SK,
|
||||||
|
CS,
|
||||||
|
PL,
|
||||||
|
RU,
|
||||||
Count
|
Count
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -323,6 +323,16 @@ namespace TBF.BenchControl.Output.Printers.Enhanced
|
|||||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (Culture i = 0; i < Culture.Count; i++)
|
||||||
|
{
|
||||||
|
if (i.ToString().Equals(cultureComboBox.Text) && (config.Culture != i))
|
||||||
|
{
|
||||||
|
config.Culture = i;
|
||||||
|
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((flags & CfgUpdateFlags.InvokeCfgChange) != 0)
|
if ((flags & CfgUpdateFlags.InvokeCfgChange) != 0)
|
||||||
{
|
{
|
||||||
Printer.OnCfgChange(this, new CfgChangeArgs(CfgChangeCmd.CfgChange, config));
|
Printer.OnCfgChange(this, new CfgChangeArgs(CfgChangeCmd.CfgChange, config));
|
||||||
|
|||||||
@ -5,7 +5,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Results.Output.Printers.Enhanced;
|
using Results.Output.Printers.OnePagePerMeter;
|
||||||
using log4net;
|
using log4net;
|
||||||
|
|
||||||
namespace TBF.BenchControl.Output.Printers.OnePagePerMeter
|
namespace TBF.BenchControl.Output.Printers.OnePagePerMeter
|
||||||
@ -19,6 +19,9 @@ namespace TBF.BenchControl.Output.Printers.OnePagePerMeter
|
|||||||
|
|
||||||
public bool SupressPrinting { get { return printerCfg.SupressPrinting; } }
|
public bool SupressPrinting { get { return printerCfg.SupressPrinting; } }
|
||||||
|
|
||||||
|
/// <summary> Data to print </summary>
|
||||||
|
Results.Entities.Batch batch;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Items to print
|
/// Items to print
|
||||||
///
|
///
|
||||||
@ -112,49 +115,33 @@ namespace TBF.BenchControl.Output.Printers.OnePagePerMeter
|
|||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation PrintResultsOp(Results.Entities.Batch batch)
|
public IOperation PrintResultsOp(Results.Entities.Batch batch)
|
||||||
{
|
{
|
||||||
thread = new Thread(() =>
|
this.batch = batch;
|
||||||
{
|
|
||||||
PrintResults(batch);
|
|
||||||
completed = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
thread.CurrentCulture = Thread.CurrentThread.CurrentCulture;
|
|
||||||
thread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture;
|
|
||||||
|
|
||||||
if (printerCfg.Culture > Culture.system && printerCfg.Culture < Culture.Count)
|
|
||||||
{
|
|
||||||
thread.CurrentCulture = new CultureInfo(printerCfg.Culture.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Start this operation</summary>
|
/// <summary>Start this operation</summary>
|
||||||
public void Start()
|
public void Start()
|
||||||
{
|
{
|
||||||
completed = false;
|
foreach (var wm in batch.WaterMeters)
|
||||||
abort = false;
|
{
|
||||||
thread.Start();
|
PrintResults(batch, wm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Run this operation</summary>
|
/// <summary>Run this operation</summary>
|
||||||
/// <returns>Event.ResultsPrinted</returns>
|
/// <returns>Event.ResultsPrinted</returns>
|
||||||
public Event Run()
|
public Event Run()
|
||||||
{
|
{
|
||||||
if (completed)
|
|
||||||
return Event.ResultsPrinted;
|
return Event.ResultsPrinted;
|
||||||
else
|
|
||||||
return Event.Busy;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Stop this operation</summary>
|
/// <summary>Stop this operation</summary>
|
||||||
public void Stop()
|
public void Stop()
|
||||||
{
|
{
|
||||||
if (!completed) abort = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PrintResults(Results.Entities.Batch batch)
|
void PrintResults(Results.Entities.Batch batch, Results.Entities.WaterMeter wm)
|
||||||
{
|
{
|
||||||
CultureInfo culture = Thread.CurrentThread.CurrentCulture;
|
CultureInfo culture = Thread.CurrentThread.CurrentCulture;
|
||||||
try { culture = new System.Globalization.CultureInfo(printerCfg.Culture.ToString()); }
|
try { culture = new System.Globalization.CultureInfo(printerCfg.Culture.ToString()); }
|
||||||
@ -184,7 +171,7 @@ namespace TBF.BenchControl.Output.Printers.OnePagePerMeter
|
|||||||
Footer = printerCfg.Footer,
|
Footer = printerCfg.Footer,
|
||||||
};
|
};
|
||||||
|
|
||||||
new Results.Output.Printers.Enhanced.EnhancedPrintDocument(batch, cfg).Print();
|
new EnhancedPrintDocument(batch, cfg, wm).Print();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -323,6 +323,16 @@ namespace TBF.BenchControl.Output.Printers.OnePagePerMeter
|
|||||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (Culture i = 0; i < Culture.Count; i++)
|
||||||
|
{
|
||||||
|
if (i.ToString().Equals(cultureComboBox.Text) && (config.Culture != i))
|
||||||
|
{
|
||||||
|
config.Culture = i;
|
||||||
|
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((flags & CfgUpdateFlags.InvokeCfgChange) != 0)
|
if ((flags & CfgUpdateFlags.InvokeCfgChange) != 0)
|
||||||
{
|
{
|
||||||
Printer.OnCfgChange(this, new CfgChangeArgs(CfgChangeCmd.CfgChange, config));
|
Printer.OnCfgChange(this, new CfgChangeArgs(CfgChangeCmd.CfgChange, config));
|
||||||
|
|||||||
@ -437,6 +437,16 @@ namespace TBF.BenchControl.Output.Printers.Zapiska
|
|||||||
|
|
||||||
if (config.Footer != footer) { config.Footer = footer; flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange); }
|
if (config.Footer != footer) { config.Footer = footer; flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange); }
|
||||||
|
|
||||||
|
for (Culture i = 0; i < Culture.Count; i++)
|
||||||
|
{
|
||||||
|
if (i.ToString().Equals(cultureComboBox.Text) && (config.Culture != i))
|
||||||
|
{
|
||||||
|
config.Culture = i;
|
||||||
|
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((flags & CfgUpdateFlags.InvokeCfgChange) != 0)
|
if ((flags & CfgUpdateFlags.InvokeCfgChange) != 0)
|
||||||
{
|
{
|
||||||
Printer.OnCfgChange(this, new CfgChangeArgs(CfgChangeCmd.CfgChange, config));
|
Printer.OnCfgChange(this, new CfgChangeArgs(CfgChangeCmd.CfgChange, config));
|
||||||
|
|||||||
@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
|||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
[assembly: AssemblyVersion("2.17.694.1")]
|
[assembly: AssemblyVersion("2.17.695.1")]
|
||||||
[assembly: AssemblyFileVersion("2.17.694.1")]
|
[assembly: AssemblyFileVersion("2.17.695.1")]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user