(1) Output.Printers.Zapiska introduced, (2) Kempno component upgraded, dated 13..9.2017
This commit is contained in:
parent
754bd14342
commit
2e1d497aad
380
Results/Output/Printers/Zapiska/ZapiskaPrintDocument.cs
Normal file
380
Results/Output/Printers/Zapiska/ZapiskaPrintDocument.cs
Normal file
@ -0,0 +1,380 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Printing;
|
||||
using System.IO;
|
||||
using Config.Entities;
|
||||
using Results.Resources;
|
||||
|
||||
namespace Results.Output.Printers.Zapiska
|
||||
{
|
||||
public class ZapiskaPrintDocument : PrintDocument
|
||||
{
|
||||
/// Size of the printed area without margins, after taking into account 'pageOrientation'
|
||||
readonly int printHeight;
|
||||
readonly int printWidth;
|
||||
|
||||
readonly int topMargin;
|
||||
readonly int bottomMargin;
|
||||
readonly int leftMargin;
|
||||
readonly int leftMargin2;
|
||||
readonly int leftMargin3;
|
||||
readonly int TitleX;
|
||||
readonly int TitleY; /// Depends on the size of the header
|
||||
|
||||
readonly int SpacingOne;
|
||||
readonly int SpacingOneAndHalf;
|
||||
readonly int SpacingOne4Header;
|
||||
readonly int SpacingOneAndHalf4Header;
|
||||
|
||||
int CommonTop; /// = TitleY + 60
|
||||
int BodyTop; /// = HdrTop + 160
|
||||
///
|
||||
int titleHeight;
|
||||
int commonHeight;
|
||||
|
||||
/// <summary>
|
||||
/// Property variable for the Font the user wishes to use
|
||||
/// </summary>
|
||||
Font font;
|
||||
Font headerFont;
|
||||
Font titleFont;
|
||||
|
||||
///
|
||||
/// Data to print
|
||||
///
|
||||
Results.Entities.Batch batch;
|
||||
|
||||
ZapiskaPrinterCfg cfg;
|
||||
|
||||
///
|
||||
/// Items to print
|
||||
///
|
||||
string header;
|
||||
IList<WMeterRsltItemSpec> commonItems1;
|
||||
IList<WMeterRsltItemSpec> commonItems2;
|
||||
IList<WMeterRsltItemSpec> commonItems3;
|
||||
IList<WMeterRsltItemSpec> testItems;
|
||||
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>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="textToPrint">Text to be printed</param>
|
||||
public ZapiskaPrintDocument(Results.Entities.Batch batch, ZapiskaPrinterCfg cfg)
|
||||
{
|
||||
this.batch = batch;
|
||||
|
||||
this.cfg = cfg;
|
||||
topMargin = cfg.TopMargin;
|
||||
bottomMargin = cfg.BottomMargin;
|
||||
leftMargin = cfg.LeftMargin;
|
||||
|
||||
header = string.IsNullOrEmpty(cfg.Header) ? string.Empty : cfg.Header.Replace("~", Environment.NewLine);
|
||||
commonItems1 = Results.WMeterRsltItemSpec.FromStrArray(cfg.CommonItems1);
|
||||
commonItems2 = Results.WMeterRsltItemSpec.FromStrArray(cfg.CommonItems2);
|
||||
commonItems3 = Results.WMeterRsltItemSpec.FromStrArray(cfg.CommonItems3);
|
||||
testItems = Results.WMeterRsltItemSpec.FromStrArray(cfg.TestItems); /// TestID info will be overwritten later on
|
||||
footer = string.IsNullOrEmpty(cfg.Footer) ? string.Empty : cfg.Footer.Replace("~", Environment.NewLine);
|
||||
|
||||
/// Initialize fonts
|
||||
titleFont = new Font((cfg.TitFntFml != null ? cfg.TitFntFml : "Arial"), (cfg.TitFntSz > 0 ? cfg.TitFntSz : 10), (FontStyle)cfg.TitFntSty);
|
||||
headerFont = new Font((cfg.HdrFntFml != null ? cfg.HdrFntFml : "Arial"), (cfg.HdrFntSz > 0 ? cfg.HdrFntSz : 10), (FontStyle)cfg.HdrFntSty);
|
||||
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)
|
||||
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
||||
///
|
||||
if (DefaultPageSettings.Landscape)
|
||||
{
|
||||
printHeight = base.DefaultPageSettings.PaperSize.Width - topMargin - bottomMargin;
|
||||
printWidth = base.DefaultPageSettings.PaperSize.Height - leftMargin - leftMargin;
|
||||
}
|
||||
else
|
||||
{
|
||||
printHeight = base.DefaultPageSettings.PaperSize.Height - topMargin - bottomMargin;
|
||||
printWidth = base.DefaultPageSettings.PaperSize.Width - leftMargin - leftMargin;
|
||||
}
|
||||
|
||||
leftMargin2 = leftMargin + (int)(printWidth * cfg.ColW1Pct / 100.0f);
|
||||
leftMargin3 = leftMargin + (int)(printWidth * (cfg.ColW1Pct + cfg.ColW2Pct) / 100.0f);
|
||||
|
||||
SpacingOne = System.Windows.Forms.TextRenderer.MeasureText("Abcgq", font).Height;
|
||||
SpacingOneAndHalf = (3 * SpacingOne) / 2;
|
||||
SpacingOne4Header = System.Windows.Forms.TextRenderer.MeasureText("Abcgq", headerFont).Height;
|
||||
SpacingOneAndHalf4Header = (3 * SpacingOne4Header) / 2;
|
||||
|
||||
/// Calculate the tests count
|
||||
int testsCount = 0;
|
||||
if (batch.WaterMeters.Count > 0)
|
||||
{
|
||||
foreach (var mtr in batch.WaterMeters[0].MeterTestRslts)
|
||||
{
|
||||
if (mtr.Publish() == Config.Entities.Publish.Always && mtr.IsPilotRslt()) testsCount++;
|
||||
}
|
||||
}
|
||||
|
||||
/// Prepare document outline
|
||||
TitleX = cfg.LeftMargin;
|
||||
TitleY = cfg.TopMargin;
|
||||
|
||||
titleHeight = System.Windows.Forms.TextRenderer.MeasureText(header, titleFont).Height;
|
||||
CommonTop = TitleY + titleHeight + SpacingOne4Header;
|
||||
|
||||
int commonCount = Math.Max(commonItems1.Count, Math.Max(commonItems2.Count, commonItems3.Count));
|
||||
commonHeight = commonCount * SpacingOne;
|
||||
BodyTop = CommonTop + commonHeight + 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>
|
||||
/// Override the default onbeginPrint method of the PrintDocument Object
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks></remarks>
|
||||
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
|
||||
{
|
||||
base.OnBeginPrint(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Override the default OnPrintPage method of the PrintDocument.
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks>This provides the print logic for our document</remarks>
|
||||
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
|
||||
{
|
||||
/// Run base code
|
||||
base.OnPrintPage(e);
|
||||
|
||||
if (File.Exists("C:\\TBF\\header.png"))
|
||||
{
|
||||
Image img = Image.FromFile("C:\\TBF\\header.png");
|
||||
e.Graphics.DrawImage(new Bitmap(img), new Rectangle(0, 0, 827, 1169));
|
||||
}
|
||||
|
||||
/// Use the StringFormat class for the text layout of our document
|
||||
StringFormat format = new StringFormat(StringFormatFlags.LineLimit);
|
||||
|
||||
if (pageNr == 1)
|
||||
{
|
||||
///----------
|
||||
/// Title
|
||||
///----------
|
||||
RectangleF printArea = new RectangleF(TitleX, TitleY, printWidth, titleHeight);
|
||||
e.Graphics.DrawString(header, titleFont, Brushes.Black, printArea);
|
||||
|
||||
///----------------
|
||||
/// Common items
|
||||
///----------------
|
||||
for (int n = 1; n <= 3; n++)
|
||||
{
|
||||
IList<WMeterRsltItemSpec> commonItems;
|
||||
int lMargin;
|
||||
switch (n)
|
||||
{
|
||||
default:
|
||||
case 1: commonItems = commonItems1; lMargin = leftMargin; break;
|
||||
case 2: commonItems = commonItems2; lMargin = leftMargin2; break;
|
||||
case 3: commonItems = commonItems3; lMargin = leftMargin3; break;
|
||||
}
|
||||
|
||||
if (commonItems.Count == 0) continue; /// Common part is empty
|
||||
|
||||
string[] leftColumn = new string[commonItems.Count];
|
||||
string[] rightColumn = new string[commonItems.Count];
|
||||
|
||||
int cnt = 0;
|
||||
foreach (var v in commonItems)
|
||||
{
|
||||
leftColumn[cnt] = v.Caption;
|
||||
rightColumn[cnt] = (batch.WaterMeters.Count > 0) ? v.Print(batch.WaterMeters[0]) : string.Empty;
|
||||
cnt++;
|
||||
}
|
||||
|
||||
/// Determine left column width
|
||||
int leftColWidth = 0;
|
||||
foreach (var s in leftColumn)
|
||||
{
|
||||
int itemWidth = (int)e.Graphics.MeasureString(s, font).Width;
|
||||
if (itemWidth > leftColWidth) leftColWidth = itemWidth;
|
||||
}
|
||||
|
||||
/// Write aligned columns
|
||||
for (int i = 0; i < Math.Min(leftColumn.Length, rightColumn.Length); i++)
|
||||
{
|
||||
PrintAt(e, lMargin, CommonTop + SpacingOne * i, leftColumn[i]);
|
||||
PrintAt(e, lMargin + leftColWidth + 30, CommonTop + SpacingOne * i, rightColumn[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///--------
|
||||
/// Body
|
||||
///--------
|
||||
|
||||
/// 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.
|
||||
int nextWmTop = (pageNr == 1) ? BodyTop : TitleY;
|
||||
|
||||
int nrWMsOnPage = (pageNr == 1) ? nrWMsOnFirstPage : nrWMsOnNextPage;
|
||||
|
||||
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
|
||||
///----------
|
||||
int footerWidth = (int)e.Graphics.MeasureString(footer, font).Width;
|
||||
PrintAt(e, leftMargin + (printWidth - footerWidth) / 2, topMargin + printHeight - 2 * SpacingOne, footer);
|
||||
|
||||
string pageNrText = string.Format("{0} {1}/{2}", Strings.Page, pageNr++, nrPages);
|
||||
int pageNrWidth = (int)e.Graphics.MeasureString(pageNrText, font).Width;
|
||||
PrintAt(e, leftMargin + (printWidth - pageNrWidth) / 2, topMargin + printHeight - SpacingOne, pageNrText);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Print one water meter results
|
||||
/// </summary>
|
||||
/// <param name="wm">Water meter</param>
|
||||
/// <param name="printedWMNr">Number of the water meter printed</param>
|
||||
/// <param name="top">Top coordinate of watermeter data</param>
|
||||
/// <returns>The height of the printed section</returns>
|
||||
int PrintWM(System.Drawing.Printing.PrintPageEventArgs e,
|
||||
Results.Entities.WaterMeter wm, int printedWMNr, int top)
|
||||
{
|
||||
/// Determin column widths
|
||||
float[] columnPos = new float[testItems.Count + 1];
|
||||
columnPos[0] = (float)leftMargin;
|
||||
|
||||
for (int i = 0; i < testItems.Count; i++)
|
||||
{
|
||||
float columnWidth = e.Graphics.MeasureString(testItems[i].Caption, headerFont).Width;
|
||||
foreach (var mtr in wm.MeterTestRslts)
|
||||
{
|
||||
if (mtr != null && mtr.IsPilotRslt() && mtr.Publish() == Config.Entities.Publish.Always)
|
||||
{
|
||||
string itemText = testItems[i].Print(wm, mtr.Name());
|
||||
|
||||
/// Strip color information
|
||||
string[] texts = itemText.Split(new char[] { '|' });
|
||||
if (texts.Length == 2) { itemText = texts[0]; }
|
||||
|
||||
float width = e.Graphics.MeasureString(itemText, font).Width;
|
||||
if (width > columnWidth) columnWidth = width;
|
||||
}
|
||||
}
|
||||
columnPos[i + 1] = columnPos[i] + columnWidth + 20.0f;
|
||||
}
|
||||
int tableLeftX = (int)columnPos[0];
|
||||
int tableRightX = (int)columnPos[testItems.Count] - 20;
|
||||
|
||||
string wmText = string.Format("{0} {1}", Strings.Water_Meter, printedWMNr);
|
||||
PrintHeaderAt(e, leftMargin, top, wmText);
|
||||
if (!string.IsNullOrEmpty(wm.SerialNr))
|
||||
{
|
||||
PrintHeaderAt(e, leftMargin + (int)e.Graphics.MeasureString(wmText, headerFont).Width, top,
|
||||
string.Format(" {0} = {1}", Strings.sn, wm.SerialNr));
|
||||
}
|
||||
|
||||
/// Horizontal line
|
||||
int horY = top + SpacingOneAndHalf4Header;
|
||||
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||
|
||||
for (int i = 0; i < testItems.Count; i++)
|
||||
{
|
||||
PrintHeaderAt(e, (int)columnPos[i], top + (int)(1.6 * SpacingOne4Header), testItems[i].Caption);
|
||||
}
|
||||
|
||||
/// Horizontal line
|
||||
horY = top + (int)(2.8 * SpacingOne4Header);
|
||||
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||
|
||||
int testsCount = 0;
|
||||
foreach (var mtr in wm.MeterTestRslts)
|
||||
{
|
||||
if ((mtr != null) && (mtr.Publish() == Config.Entities.Publish.Always))
|
||||
{
|
||||
testsCount++;
|
||||
for (int i = 0; i < testItems.Count; i++)
|
||||
{
|
||||
string itemText = testItems[i].Print(wm, mtr.Name());
|
||||
|
||||
/// Strip color information
|
||||
string[] texts = itemText.Split(new char[] { '|' });
|
||||
if (texts.Length == 2)
|
||||
{
|
||||
itemText = texts[0];
|
||||
Color color = texts[1].Equals("Green") ? Color.Green : (texts[1].Equals("Red") ? Color.Red : Color.White);
|
||||
/// TODO: How to print colors?
|
||||
}
|
||||
|
||||
PrintAt(e, (int)columnPos[i], top + 2 * SpacingOne4Header + SpacingOne * testsCount, itemText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Horizontal line
|
||||
horY = top + 2 * SpacingOneAndHalf4Header + SpacingOne * testsCount;
|
||||
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||
|
||||
return (testsCount + 1) * SpacingOne + 3 * SpacingOne4Header;
|
||||
}
|
||||
|
||||
|
||||
void PrintAt(System.Drawing.Printing.PrintPageEventArgs e, Point p, string text)
|
||||
{
|
||||
PrintAt(e, p.X, p.Y, text);
|
||||
}
|
||||
|
||||
|
||||
void PrintAt(System.Drawing.Printing.PrintPageEventArgs e, int x, int y, string text)
|
||||
{
|
||||
RectangleF printArea = new RectangleF(x, y, 2000, SpacingOne);
|
||||
e.Graphics.DrawString(text, this.font, Brushes.Black, printArea);
|
||||
}
|
||||
|
||||
|
||||
void PrintHeaderAt(System.Drawing.Printing.PrintPageEventArgs e, Point p, string text)
|
||||
{
|
||||
PrintHeaderAt(e, p.X, p.Y, text);
|
||||
}
|
||||
|
||||
|
||||
void PrintHeaderAt(System.Drawing.Printing.PrintPageEventArgs e, int x, int y, string text)
|
||||
{
|
||||
RectangleF printArea = new RectangleF(x, y, 2000, SpacingOne4Header);
|
||||
e.Graphics.DrawString(text, this.headerFont, Brushes.Black, printArea);
|
||||
}
|
||||
}
|
||||
}
|
||||
37
Results/Output/Printers/Zapiska/ZapiskaPrinterCfg.cs
Normal file
37
Results/Output/Printers/Zapiska/ZapiskaPrinterCfg.cs
Normal file
@ -0,0 +1,37 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Results.Output.Printers.Zapiska
|
||||
{
|
||||
public class ZapiskaPrinterCfg
|
||||
{
|
||||
public Config.Entities.PageOrientation PageOrientation;
|
||||
public int TopMargin;
|
||||
public int BottomMargin;
|
||||
public int LeftMargin;
|
||||
public string TitFntFml;
|
||||
public int TitFntSz;
|
||||
public int TitFntSty;
|
||||
public string HdrFntFml;
|
||||
public int HdrFntSz;
|
||||
public int HdrFntSty;
|
||||
public string BodyFntFml;
|
||||
public int BodyFntSz;
|
||||
public int BodyFntSty;
|
||||
public bool SupressPrinting; /// Bypass printing when true
|
||||
public System.Globalization.CultureInfo CultureInfo;
|
||||
public int ColW1Pct;
|
||||
public int ColW2Pct;
|
||||
public string[] CommonItems1;
|
||||
public string[] CommonItems2;
|
||||
public string[] CommonItems3;
|
||||
public string[] TestItems;
|
||||
public string Header; /// =Title
|
||||
public string Footer;
|
||||
}
|
||||
}
|
||||
@ -111,6 +111,10 @@
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Output\Printers\OnePagePerMeter\EnhancedPrinterCfg.cs" />
|
||||
<Compile Include="Output\Printers\Zapiska\ZapiskaPrintDocument.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Output\Printers\Zapiska\ZapiskaPrinterCfg.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ItemSpec.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System.Collections.Generic;
|
||||
using TBF.BenchControl.Generic;
|
||||
|
||||
namespace TBF.BenchControl.Output.Printers.Zapiska
|
||||
{
|
||||
public class FactoryCompound : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return this.GetType().Namespace.Substring(17) + ".Compound"; } }
|
||||
|
||||
public void ResetStaticProperties() { Printer.ResetStaticProperties(); }
|
||||
|
||||
public IComponent DummyComponent() { return new Printer(); }
|
||||
|
||||
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new Printer(cfg); }
|
||||
|
||||
public IComponentCfg DefaultConfig() { return new PrinterCfg("Printer.Zapiska.Compound", this, Config.Entities.MetersKind.Combined); }
|
||||
|
||||
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
|
||||
{
|
||||
return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System.Collections.Generic;
|
||||
using TBF.BenchControl.Generic;
|
||||
|
||||
namespace TBF.BenchControl.Output.Printers.Zapiska
|
||||
{
|
||||
public class FactoryHeatMeters : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return this.GetType().Namespace.Substring(17) + ".HeatMeters"; } }
|
||||
|
||||
public void ResetStaticProperties() { Printer.ResetStaticProperties(); }
|
||||
|
||||
public IComponent DummyComponent() { return new Printer(); }
|
||||
|
||||
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new Printer(cfg); }
|
||||
|
||||
public IComponentCfg DefaultConfig() { return new PrinterCfg("Printer.Zapiska.HeatMeters", this, Config.Entities.MetersKind.HeatMeter); }
|
||||
|
||||
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
|
||||
{
|
||||
return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System.Collections.Generic;
|
||||
using TBF.BenchControl.Generic;
|
||||
|
||||
namespace TBF.BenchControl.Output.Printers.Zapiska
|
||||
{
|
||||
public class FactorySingle : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return this.GetType().Namespace.Substring(17) + ".Single"; } }
|
||||
|
||||
public void ResetStaticProperties() { Printer.ResetStaticProperties(); }
|
||||
|
||||
public IComponent DummyComponent() { return new Printer(); }
|
||||
|
||||
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new Printer(cfg); }
|
||||
|
||||
public IComponentCfg DefaultConfig() { return new PrinterCfg("Printer.Zapiska.Single", this, Config.Entities.MetersKind.Single); }
|
||||
|
||||
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
|
||||
{
|
||||
return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,199 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Threading;
|
||||
using Results.Output.Printers.Zapiska;
|
||||
using log4net;
|
||||
|
||||
namespace TBF.BenchControl.Output.Printers.Zapiska
|
||||
{
|
||||
public class Printer : ComponentBase, IOperation, GenericDevices.IResultsPrinter
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(Printer));
|
||||
public override string ToString() { return string.Format("ResultsPrinters.Basic({0})", Cfg.ToString(1)); }
|
||||
|
||||
readonly PrinterCfg printerCfg;
|
||||
|
||||
public bool SupressPrinting { get { return printerCfg.SupressPrinting; } }
|
||||
|
||||
///
|
||||
/// Items to print
|
||||
///
|
||||
string header;
|
||||
IList<Results.WMeterRsltItemSpec> commonItems;
|
||||
IList<Results.WMeterRsltItemSpec> testItems;
|
||||
string footer;
|
||||
|
||||
|
||||
Thread thread; /// Thread where results are printed
|
||||
bool completed; /// Set to 'true' by the thread when printing results is completed
|
||||
bool abort; /// Set to 'true' by Stop() operation to abort printing results
|
||||
|
||||
|
||||
public Printer() { }
|
||||
|
||||
|
||||
public Printer(Generic.IComponentCfg cfg)
|
||||
: base(cfg)
|
||||
{
|
||||
printerCfg = cfg as PrinterCfg;
|
||||
ApplyConfig();
|
||||
log.Debug(this.ToString());
|
||||
}
|
||||
|
||||
|
||||
void ApplyConfig()
|
||||
{
|
||||
header = string.IsNullOrEmpty(printerCfg.Header) ? string.Empty : printerCfg.Header.Replace("~", Environment.NewLine);
|
||||
commonItems = Results.WMeterRsltItemSpec.FromStrArray(printerCfg.CommonItems1);
|
||||
testItems = Results.WMeterRsltItemSpec.FromStrArray(printerCfg.SelectedItems); /// TestID info will be overwritten later on
|
||||
footer = string.IsNullOrEmpty(printerCfg.Footer) ? string.Empty : printerCfg.Footer.Replace("~", Environment.NewLine);
|
||||
}
|
||||
|
||||
|
||||
#region Configuration Change Handling
|
||||
|
||||
public static void OnCfgChange(object sender, CfgChangeArgs args)
|
||||
{
|
||||
if (CfgChangeHandler == null) return;
|
||||
try { CfgChangeHandler(sender, args); }
|
||||
catch (Exception e) { log.Error("CfgChangeHandler(...) failed", e); }
|
||||
}
|
||||
|
||||
public static event EventHandler<CfgChangeArgs> CfgChangeHandler;
|
||||
|
||||
public override void StartChangeHandler()
|
||||
{
|
||||
CfgChangeHandler += delegate(object sender, CfgChangeArgs args)
|
||||
{
|
||||
PrinterCfg newCfg = args.Cfg as PrinterCfg;
|
||||
if (newCfg != null && newCfg.Name.Equals(Name))
|
||||
{
|
||||
if (args.Command == CfgChangeCmd.CfgChange)
|
||||
{
|
||||
printerCfg.PageOrientation = newCfg.PageOrientation;
|
||||
printerCfg.TopMargin = newCfg.TopMargin;
|
||||
printerCfg.BottomMargin = newCfg.BottomMargin;
|
||||
printerCfg.LeftMargin = newCfg.LeftMargin;
|
||||
|
||||
printerCfg.TitFntFml = newCfg.TitFntFml;
|
||||
printerCfg.TitFntSz = newCfg.TitFntSz;
|
||||
printerCfg.TitFntSty = newCfg.TitFntSty;
|
||||
printerCfg.HdrFntFml = newCfg.HdrFntFml;
|
||||
printerCfg.HdrFntSz = newCfg.HdrFntSz;
|
||||
printerCfg.HdrFntSty = newCfg.HdrFntSty;
|
||||
printerCfg.BodyFntFml = newCfg.BodyFntFml;
|
||||
printerCfg.BodyFntSz = newCfg.BodyFntSz;
|
||||
printerCfg.BodyFntSty = newCfg.BodyFntSty;
|
||||
|
||||
printerCfg.SupressPrinting = newCfg.SupressPrinting;
|
||||
printerCfg.Culture = newCfg.Culture;
|
||||
printerCfg.Header = newCfg.Header;
|
||||
printerCfg.ColW1Pct = newCfg.ColW1Pct;
|
||||
printerCfg.ColW2Pct = newCfg.ColW2Pct;
|
||||
printerCfg.CommonItems1 = newCfg.CommonItems1;
|
||||
printerCfg.CommonItems2 = newCfg.CommonItems2;
|
||||
printerCfg.CommonItems3 = newCfg.CommonItems3;
|
||||
printerCfg.SelectedItems = newCfg.SelectedItems;
|
||||
printerCfg.Footer = newCfg.Footer;
|
||||
|
||||
ApplyConfig();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#endregion Configuration Change Handling
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Prints the test cycle results, Events: Event.ResultsPrinted
|
||||
/// </summary>
|
||||
/// <param name="batch">Batch results to print</param>
|
||||
/// <returns>Reference to the operation</returns>
|
||||
public IOperation PrintResultsOp(Results.Entities.Batch batch)
|
||||
{
|
||||
thread = new Thread(() =>
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>Start this operation</summary>
|
||||
public void Start()
|
||||
{
|
||||
completed = false;
|
||||
abort = false;
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
/// <summary>Run this operation</summary>
|
||||
/// <returns>Event.ResultsPrinted</returns>
|
||||
public Event Run()
|
||||
{
|
||||
if (completed)
|
||||
return Event.ResultsPrinted;
|
||||
else
|
||||
return Event.Busy;
|
||||
}
|
||||
|
||||
/// <summary>Stop this operation</summary>
|
||||
public void Stop()
|
||||
{
|
||||
if (!completed) abort = true;
|
||||
}
|
||||
|
||||
|
||||
void PrintResults(Results.Entities.Batch batch)
|
||||
{
|
||||
CultureInfo culture = Thread.CurrentThread.CurrentCulture;
|
||||
try { culture = new System.Globalization.CultureInfo(printerCfg.Culture.ToString()); }
|
||||
catch { }
|
||||
|
||||
if (batch.WaterMeters.Count > 0)
|
||||
{
|
||||
ZapiskaPrinterCfg cfg = new ZapiskaPrinterCfg {
|
||||
PageOrientation = printerCfg.PageOrientation,
|
||||
TopMargin = printerCfg.TopMargin,
|
||||
BottomMargin = printerCfg.BottomMargin,
|
||||
LeftMargin = printerCfg.LeftMargin,
|
||||
TitFntFml = printerCfg.TitFntFml,
|
||||
HdrFntFml = printerCfg.HdrFntFml,
|
||||
BodyFntFml = printerCfg.BodyFntFml,
|
||||
TitFntSz = printerCfg.TitFntSz,
|
||||
HdrFntSz = printerCfg.HdrFntSz,
|
||||
BodyFntSz = printerCfg.BodyFntSz,
|
||||
TitFntSty = printerCfg.TitFntSty,
|
||||
HdrFntSty = printerCfg.HdrFntSty,
|
||||
BodyFntSty = printerCfg.BodyFntSty,
|
||||
SupressPrinting = printerCfg.SupressPrinting,
|
||||
CultureInfo = culture,
|
||||
Header = printerCfg.Header,
|
||||
ColW1Pct = printerCfg.ColW1Pct,
|
||||
ColW2Pct = printerCfg.ColW2Pct,
|
||||
CommonItems1 = printerCfg.CommonItems1,
|
||||
CommonItems2 = printerCfg.CommonItems2,
|
||||
CommonItems3 = printerCfg.CommonItems3,
|
||||
TestItems = printerCfg.SelectedItems,
|
||||
Footer = printerCfg.Footer,
|
||||
};
|
||||
|
||||
new Results.Output.Printers.Zapiska.ZapiskaPrintDocument(batch, cfg).Print();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System.Xml.Serialization;
|
||||
using Config.Entities;
|
||||
using TBF.BenchControl.Generic;
|
||||
|
||||
namespace TBF.BenchControl.Output.Printers.Zapiska
|
||||
{
|
||||
public class PrinterCfg : ComponentCfgBase, Generic.IComponentCfg
|
||||
{
|
||||
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PrinterCfg) })[0];
|
||||
protected override XmlSerializer GetSerializer() { return Serializer; }
|
||||
|
||||
public IComponentCfgCtrl GetControl() { return new PrinterCfgCtrl(); }
|
||||
|
||||
///
|
||||
/// Serialized parameters
|
||||
///
|
||||
public PageOrientation PageOrientation;
|
||||
public int TopMargin;
|
||||
public int BottomMargin;
|
||||
public int LeftMargin;
|
||||
public string TitFntFml;
|
||||
public string HdrFntFml;
|
||||
public string BodyFntFml;
|
||||
public int TitFntSz;
|
||||
public int HdrFntSz;
|
||||
public int BodyFntSz;
|
||||
public int TitFntSty;
|
||||
public int HdrFntSty;
|
||||
public int BodyFntSty;
|
||||
public bool SupressPrinting; /// Bypass printing when true
|
||||
public Culture Culture;
|
||||
public int ColW1Pct;
|
||||
public int ColW2Pct;
|
||||
public string[] CommonItems1;
|
||||
public string[] CommonItems2;
|
||||
public string[] CommonItems3;
|
||||
public string[] SelectedItems;
|
||||
public string Header; /// =Title
|
||||
public string Footer;
|
||||
|
||||
[XmlIgnore]
|
||||
public Config.Entities.MetersKind MetersKind;
|
||||
|
||||
/// Private parameterless constructor invoked by all other (public) constructors
|
||||
PrinterCfg()
|
||||
{
|
||||
}
|
||||
|
||||
public PrinterCfg(string name, IComponentFactory factory, Config.Entities.MetersKind metersKind)
|
||||
: this()
|
||||
{
|
||||
Name = name;
|
||||
Factory = factory;
|
||||
MetersKind = metersKind;
|
||||
|
||||
ParentName = string.Empty;
|
||||
PageOrientation = PageOrientation.Portrait;
|
||||
TopMargin = 100;
|
||||
BottomMargin = 100;
|
||||
LeftMargin = 100;
|
||||
TitFntFml = "Arial";
|
||||
TitFntSz = 18;
|
||||
TitFntSty = 1;
|
||||
TitFntFml = "Arial";
|
||||
TitFntSz = 10;
|
||||
TitFntSty = 0;
|
||||
TitFntFml = "Arial";
|
||||
TitFntSz = 10;
|
||||
TitFntSty = 0;
|
||||
SupressPrinting = false;
|
||||
Header = string.Empty;
|
||||
Footer = string.Empty;
|
||||
}
|
||||
|
||||
public string ToString(int i)
|
||||
{
|
||||
return string.Format("Name={0}, Orientation={1}, Margins T={2} B={3} L={4}, SupressPrinting={5}",
|
||||
Name,
|
||||
PageOrientation,
|
||||
TopMargin,
|
||||
BottomMargin,
|
||||
LeftMargin,
|
||||
SupressPrinting ? "yes" : "no"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
544
TestBenchFramework/BenchControl/Output/Printers/Zapiska/PrinterCfgCtrl.Designer.cs
generated
Normal file
544
TestBenchFramework/BenchControl/Output/Printers/Zapiska/PrinterCfgCtrl.Designer.cs
generated
Normal file
@ -0,0 +1,544 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
namespace TBF.BenchControl.Output.Printers.Zapiska
|
||||
{
|
||||
partial class PrinterCfgCtrl
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.nameTextBox = new System.Windows.Forms.TextBox();
|
||||
this.nameLabel = new System.Windows.Forms.Label();
|
||||
this.classNameLabel = new System.Windows.Forms.Label();
|
||||
this.supressPrintingCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.orientationLabel = new System.Windows.Forms.Label();
|
||||
this.orientationComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.topMarginTextBox = new System.Windows.Forms.TextBox();
|
||||
this.topMarginLabel = new System.Windows.Forms.Label();
|
||||
this.leftMarginTextBox = new System.Windows.Forms.TextBox();
|
||||
this.bottomMarginTextBox = new System.Windows.Forms.TextBox();
|
||||
this.cultureComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.cultureLabel = new System.Windows.Forms.Label();
|
||||
this.commonItems1Button = new System.Windows.Forms.Button();
|
||||
this.footerButton = new System.Windows.Forms.Button();
|
||||
this.headerButton = new System.Windows.Forms.Button();
|
||||
this.testItemsButton = new System.Windows.Forms.Button();
|
||||
this.headerFontLabel = new System.Windows.Forms.Label();
|
||||
this.titleFontLabel = new System.Windows.Forms.Label();
|
||||
this.titleFontFamilyComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.headerFontFamilyComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.bodyFontFamilyComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.bodyFontLabel = new System.Windows.Forms.Label();
|
||||
this.titleFontSizeTextBox = new System.Windows.Forms.TextBox();
|
||||
this.headerFontSizeTextBox = new System.Windows.Forms.TextBox();
|
||||
this.bodyFontSizeTextBox = new System.Windows.Forms.TextBox();
|
||||
this.titleBoldCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.titleItalicCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.headerItalicCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.headerBoldCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.bodyItalicCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.bodyBoldCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.commonItems2Button = new System.Windows.Forms.Button();
|
||||
this.commonItems3Button = new System.Windows.Forms.Button();
|
||||
this.colW2TextBox = new System.Windows.Forms.TextBox();
|
||||
this.colW1TextBox = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// nameTextBox
|
||||
//
|
||||
this.nameTextBox.Enabled = false;
|
||||
this.nameTextBox.Location = new System.Drawing.Point(142, 40);
|
||||
this.nameTextBox.Name = "nameTextBox";
|
||||
this.nameTextBox.Size = new System.Drawing.Size(218, 20);
|
||||
this.nameTextBox.TabIndex = 2;
|
||||
//
|
||||
// nameLabel
|
||||
//
|
||||
this.nameLabel.AutoSize = true;
|
||||
this.nameLabel.Location = new System.Drawing.Point(16, 43);
|
||||
this.nameLabel.Name = "nameLabel";
|
||||
this.nameLabel.Size = new System.Drawing.Size(35, 13);
|
||||
this.nameLabel.TabIndex = 1;
|
||||
this.nameLabel.Text = "Name";
|
||||
//
|
||||
// classNameLabel
|
||||
//
|
||||
this.classNameLabel.AutoSize = true;
|
||||
this.classNameLabel.Location = new System.Drawing.Point(139, 16);
|
||||
this.classNameLabel.Name = "classNameLabel";
|
||||
this.classNameLabel.Size = new System.Drawing.Size(83, 13);
|
||||
this.classNameLabel.TabIndex = 0;
|
||||
this.classNameLabel.Text = "ComonentName";
|
||||
//
|
||||
// supressPrintingCheckBox
|
||||
//
|
||||
this.supressPrintingCheckBox.AutoSize = true;
|
||||
this.supressPrintingCheckBox.Enabled = false;
|
||||
this.supressPrintingCheckBox.Location = new System.Drawing.Point(19, 313);
|
||||
this.supressPrintingCheckBox.Name = "supressPrintingCheckBox";
|
||||
this.supressPrintingCheckBox.Size = new System.Drawing.Size(101, 17);
|
||||
this.supressPrintingCheckBox.TabIndex = 38;
|
||||
this.supressPrintingCheckBox.Text = "Supress printing";
|
||||
this.supressPrintingCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// orientationLabel
|
||||
//
|
||||
this.orientationLabel.AutoSize = true;
|
||||
this.orientationLabel.Location = new System.Drawing.Point(16, 67);
|
||||
this.orientationLabel.Name = "orientationLabel";
|
||||
this.orientationLabel.Size = new System.Drawing.Size(84, 13);
|
||||
this.orientationLabel.TabIndex = 3;
|
||||
this.orientationLabel.Text = "Page orientation";
|
||||
//
|
||||
// orientationComboBox
|
||||
//
|
||||
this.orientationComboBox.Enabled = false;
|
||||
this.orientationComboBox.FormattingEnabled = true;
|
||||
this.orientationComboBox.Location = new System.Drawing.Point(142, 64);
|
||||
this.orientationComboBox.Name = "orientationComboBox";
|
||||
this.orientationComboBox.Size = new System.Drawing.Size(218, 21);
|
||||
this.orientationComboBox.TabIndex = 4;
|
||||
//
|
||||
// topMarginTextBox
|
||||
//
|
||||
this.topMarginTextBox.Enabled = false;
|
||||
this.topMarginTextBox.Location = new System.Drawing.Point(142, 89);
|
||||
this.topMarginTextBox.Name = "topMarginTextBox";
|
||||
this.topMarginTextBox.Size = new System.Drawing.Size(44, 20);
|
||||
this.topMarginTextBox.TabIndex = 6;
|
||||
//
|
||||
// topMarginLabel
|
||||
//
|
||||
this.topMarginLabel.AutoSize = true;
|
||||
this.topMarginLabel.Location = new System.Drawing.Point(16, 92);
|
||||
this.topMarginLabel.Name = "topMarginLabel";
|
||||
this.topMarginLabel.Size = new System.Drawing.Size(116, 13);
|
||||
this.topMarginLabel.TabIndex = 5;
|
||||
this.topMarginLabel.Text = "Top/bottom/left margin";
|
||||
//
|
||||
// leftMarginTextBox
|
||||
//
|
||||
this.leftMarginTextBox.Enabled = false;
|
||||
this.leftMarginTextBox.Location = new System.Drawing.Point(244, 89);
|
||||
this.leftMarginTextBox.Name = "leftMarginTextBox";
|
||||
this.leftMarginTextBox.Size = new System.Drawing.Size(44, 20);
|
||||
this.leftMarginTextBox.TabIndex = 8;
|
||||
//
|
||||
// bottomMarginTextBox
|
||||
//
|
||||
this.bottomMarginTextBox.Enabled = false;
|
||||
this.bottomMarginTextBox.Location = new System.Drawing.Point(193, 89);
|
||||
this.bottomMarginTextBox.Name = "bottomMarginTextBox";
|
||||
this.bottomMarginTextBox.Size = new System.Drawing.Size(44, 20);
|
||||
this.bottomMarginTextBox.TabIndex = 7;
|
||||
//
|
||||
// cultureComboBox
|
||||
//
|
||||
this.cultureComboBox.Enabled = false;
|
||||
this.cultureComboBox.FormattingEnabled = true;
|
||||
this.cultureComboBox.Location = new System.Drawing.Point(142, 185);
|
||||
this.cultureComboBox.Name = "cultureComboBox";
|
||||
this.cultureComboBox.Size = new System.Drawing.Size(218, 21);
|
||||
this.cultureComboBox.TabIndex = 26;
|
||||
//
|
||||
// cultureLabel
|
||||
//
|
||||
this.cultureLabel.AutoSize = true;
|
||||
this.cultureLabel.Location = new System.Drawing.Point(16, 188);
|
||||
this.cultureLabel.Name = "cultureLabel";
|
||||
this.cultureLabel.Size = new System.Drawing.Size(42, 13);
|
||||
this.cultureLabel.TabIndex = 25;
|
||||
this.cultureLabel.Text = "Cullture";
|
||||
//
|
||||
// commonItems1Button
|
||||
//
|
||||
this.commonItems1Button.Enabled = false;
|
||||
this.commonItems1Button.Location = new System.Drawing.Point(142, 259);
|
||||
this.commonItems1Button.Name = "commonItems1Button";
|
||||
this.commonItems1Button.Size = new System.Drawing.Size(70, 23);
|
||||
this.commonItems1Button.TabIndex = 33;
|
||||
this.commonItems1Button.Text = "Common 1";
|
||||
this.commonItems1Button.UseVisualStyleBackColor = true;
|
||||
this.commonItems1Button.Click += new System.EventHandler(this.commonItems1Button_Click);
|
||||
//
|
||||
// footerButton
|
||||
//
|
||||
this.footerButton.Enabled = false;
|
||||
this.footerButton.Location = new System.Drawing.Point(142, 309);
|
||||
this.footerButton.Name = "footerButton";
|
||||
this.footerButton.Size = new System.Drawing.Size(218, 23);
|
||||
this.footerButton.TabIndex = 37;
|
||||
this.footerButton.Text = "Footer";
|
||||
this.footerButton.UseVisualStyleBackColor = true;
|
||||
this.footerButton.Click += new System.EventHandler(this.footerButton_Click);
|
||||
//
|
||||
// headerButton
|
||||
//
|
||||
this.headerButton.Enabled = false;
|
||||
this.headerButton.Location = new System.Drawing.Point(142, 209);
|
||||
this.headerButton.Name = "headerButton";
|
||||
this.headerButton.Size = new System.Drawing.Size(218, 23);
|
||||
this.headerButton.TabIndex = 27;
|
||||
this.headerButton.Text = "Title";
|
||||
this.headerButton.UseVisualStyleBackColor = true;
|
||||
this.headerButton.Click += new System.EventHandler(this.headerButton_Click);
|
||||
//
|
||||
// testItemsButton
|
||||
//
|
||||
this.testItemsButton.Enabled = false;
|
||||
this.testItemsButton.Location = new System.Drawing.Point(142, 284);
|
||||
this.testItemsButton.Name = "testItemsButton";
|
||||
this.testItemsButton.Size = new System.Drawing.Size(218, 23);
|
||||
this.testItemsButton.TabIndex = 36;
|
||||
this.testItemsButton.Text = "Test items";
|
||||
this.testItemsButton.UseVisualStyleBackColor = true;
|
||||
this.testItemsButton.Click += new System.EventHandler(this.testItemsButton_Click);
|
||||
//
|
||||
// headerFontLabel
|
||||
//
|
||||
this.headerFontLabel.AutoSize = true;
|
||||
this.headerFontLabel.Location = new System.Drawing.Point(16, 140);
|
||||
this.headerFontLabel.Name = "headerFontLabel";
|
||||
this.headerFontLabel.Size = new System.Drawing.Size(112, 13);
|
||||
this.headerFontLabel.TabIndex = 14;
|
||||
this.headerFontLabel.Text = "Header font/size/style";
|
||||
//
|
||||
// titleFontLabel
|
||||
//
|
||||
this.titleFontLabel.AutoSize = true;
|
||||
this.titleFontLabel.Location = new System.Drawing.Point(16, 116);
|
||||
this.titleFontLabel.Name = "titleFontLabel";
|
||||
this.titleFontLabel.Size = new System.Drawing.Size(97, 13);
|
||||
this.titleFontLabel.TabIndex = 9;
|
||||
this.titleFontLabel.Text = "Title font/size/style";
|
||||
//
|
||||
// titleFontFamilyComboBox
|
||||
//
|
||||
this.titleFontFamilyComboBox.Enabled = false;
|
||||
this.titleFontFamilyComboBox.FormattingEnabled = true;
|
||||
this.titleFontFamilyComboBox.Location = new System.Drawing.Point(142, 113);
|
||||
this.titleFontFamilyComboBox.Name = "titleFontFamilyComboBox";
|
||||
this.titleFontFamilyComboBox.Size = new System.Drawing.Size(110, 21);
|
||||
this.titleFontFamilyComboBox.TabIndex = 10;
|
||||
//
|
||||
// headerFontFamilyComboBox
|
||||
//
|
||||
this.headerFontFamilyComboBox.Enabled = false;
|
||||
this.headerFontFamilyComboBox.FormattingEnabled = true;
|
||||
this.headerFontFamilyComboBox.Location = new System.Drawing.Point(142, 137);
|
||||
this.headerFontFamilyComboBox.Name = "headerFontFamilyComboBox";
|
||||
this.headerFontFamilyComboBox.Size = new System.Drawing.Size(110, 21);
|
||||
this.headerFontFamilyComboBox.TabIndex = 15;
|
||||
//
|
||||
// bodyFontFamilyComboBox
|
||||
//
|
||||
this.bodyFontFamilyComboBox.Enabled = false;
|
||||
this.bodyFontFamilyComboBox.FormattingEnabled = true;
|
||||
this.bodyFontFamilyComboBox.Location = new System.Drawing.Point(142, 161);
|
||||
this.bodyFontFamilyComboBox.Name = "bodyFontFamilyComboBox";
|
||||
this.bodyFontFamilyComboBox.Size = new System.Drawing.Size(110, 21);
|
||||
this.bodyFontFamilyComboBox.TabIndex = 20;
|
||||
//
|
||||
// bodyFontLabel
|
||||
//
|
||||
this.bodyFontLabel.AutoSize = true;
|
||||
this.bodyFontLabel.Location = new System.Drawing.Point(16, 164);
|
||||
this.bodyFontLabel.Name = "bodyFontLabel";
|
||||
this.bodyFontLabel.Size = new System.Drawing.Size(101, 13);
|
||||
this.bodyFontLabel.TabIndex = 19;
|
||||
this.bodyFontLabel.Text = "Body font/size/style";
|
||||
//
|
||||
// titleFontSizeTextBox
|
||||
//
|
||||
this.titleFontSizeTextBox.Enabled = false;
|
||||
this.titleFontSizeTextBox.Location = new System.Drawing.Point(258, 113);
|
||||
this.titleFontSizeTextBox.Name = "titleFontSizeTextBox";
|
||||
this.titleFontSizeTextBox.Size = new System.Drawing.Size(30, 20);
|
||||
this.titleFontSizeTextBox.TabIndex = 11;
|
||||
//
|
||||
// headerFontSizeTextBox
|
||||
//
|
||||
this.headerFontSizeTextBox.Enabled = false;
|
||||
this.headerFontSizeTextBox.Location = new System.Drawing.Point(258, 137);
|
||||
this.headerFontSizeTextBox.Name = "headerFontSizeTextBox";
|
||||
this.headerFontSizeTextBox.Size = new System.Drawing.Size(30, 20);
|
||||
this.headerFontSizeTextBox.TabIndex = 16;
|
||||
//
|
||||
// bodyFontSizeTextBox
|
||||
//
|
||||
this.bodyFontSizeTextBox.Enabled = false;
|
||||
this.bodyFontSizeTextBox.Location = new System.Drawing.Point(258, 161);
|
||||
this.bodyFontSizeTextBox.Name = "bodyFontSizeTextBox";
|
||||
this.bodyFontSizeTextBox.Size = new System.Drawing.Size(29, 20);
|
||||
this.bodyFontSizeTextBox.TabIndex = 21;
|
||||
//
|
||||
// titleBoldCheckBox
|
||||
//
|
||||
this.titleBoldCheckBox.AutoSize = true;
|
||||
this.titleBoldCheckBox.Enabled = false;
|
||||
this.titleBoldCheckBox.Location = new System.Drawing.Point(306, 116);
|
||||
this.titleBoldCheckBox.Name = "titleBoldCheckBox";
|
||||
this.titleBoldCheckBox.Size = new System.Drawing.Size(15, 14);
|
||||
this.titleBoldCheckBox.TabIndex = 12;
|
||||
this.titleBoldCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// titleItalicCheckBox
|
||||
//
|
||||
this.titleItalicCheckBox.AutoSize = true;
|
||||
this.titleItalicCheckBox.Enabled = false;
|
||||
this.titleItalicCheckBox.Location = new System.Drawing.Point(334, 116);
|
||||
this.titleItalicCheckBox.Name = "titleItalicCheckBox";
|
||||
this.titleItalicCheckBox.Size = new System.Drawing.Size(15, 14);
|
||||
this.titleItalicCheckBox.TabIndex = 13;
|
||||
this.titleItalicCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// headerItalicCheckBox
|
||||
//
|
||||
this.headerItalicCheckBox.AutoSize = true;
|
||||
this.headerItalicCheckBox.Enabled = false;
|
||||
this.headerItalicCheckBox.Location = new System.Drawing.Point(334, 140);
|
||||
this.headerItalicCheckBox.Name = "headerItalicCheckBox";
|
||||
this.headerItalicCheckBox.Size = new System.Drawing.Size(15, 14);
|
||||
this.headerItalicCheckBox.TabIndex = 18;
|
||||
this.headerItalicCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// headerBoldCheckBox
|
||||
//
|
||||
this.headerBoldCheckBox.AutoSize = true;
|
||||
this.headerBoldCheckBox.Enabled = false;
|
||||
this.headerBoldCheckBox.Location = new System.Drawing.Point(306, 140);
|
||||
this.headerBoldCheckBox.Name = "headerBoldCheckBox";
|
||||
this.headerBoldCheckBox.Size = new System.Drawing.Size(15, 14);
|
||||
this.headerBoldCheckBox.TabIndex = 17;
|
||||
this.headerBoldCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// bodyItalicCheckBox
|
||||
//
|
||||
this.bodyItalicCheckBox.AutoSize = true;
|
||||
this.bodyItalicCheckBox.Enabled = false;
|
||||
this.bodyItalicCheckBox.Location = new System.Drawing.Point(334, 164);
|
||||
this.bodyItalicCheckBox.Name = "bodyItalicCheckBox";
|
||||
this.bodyItalicCheckBox.Size = new System.Drawing.Size(15, 14);
|
||||
this.bodyItalicCheckBox.TabIndex = 23;
|
||||
this.bodyItalicCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// bodyBoldCheckBox
|
||||
//
|
||||
this.bodyBoldCheckBox.AutoSize = true;
|
||||
this.bodyBoldCheckBox.Enabled = false;
|
||||
this.bodyBoldCheckBox.Location = new System.Drawing.Point(306, 164);
|
||||
this.bodyBoldCheckBox.Name = "bodyBoldCheckBox";
|
||||
this.bodyBoldCheckBox.Size = new System.Drawing.Size(15, 14);
|
||||
this.bodyBoldCheckBox.TabIndex = 22;
|
||||
this.bodyBoldCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.label1.Location = new System.Drawing.Point(296, 100);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(32, 13);
|
||||
this.label1.TabIndex = 31;
|
||||
this.label1.Text = "Bold";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.label2.Location = new System.Drawing.Point(330, 100);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(24, 13);
|
||||
this.label2.TabIndex = 32;
|
||||
this.label2.Text = "Ital.";
|
||||
//
|
||||
// commonItems2Button
|
||||
//
|
||||
this.commonItems2Button.Enabled = false;
|
||||
this.commonItems2Button.Location = new System.Drawing.Point(216, 259);
|
||||
this.commonItems2Button.Name = "commonItems2Button";
|
||||
this.commonItems2Button.Size = new System.Drawing.Size(70, 23);
|
||||
this.commonItems2Button.TabIndex = 34;
|
||||
this.commonItems2Button.Text = "Common 2";
|
||||
this.commonItems2Button.UseVisualStyleBackColor = true;
|
||||
this.commonItems2Button.Click += new System.EventHandler(this.commonItems2Button_Click);
|
||||
//
|
||||
// commonItems3Button
|
||||
//
|
||||
this.commonItems3Button.Enabled = false;
|
||||
this.commonItems3Button.Location = new System.Drawing.Point(290, 259);
|
||||
this.commonItems3Button.Name = "commonItems3Button";
|
||||
this.commonItems3Button.Size = new System.Drawing.Size(70, 23);
|
||||
this.commonItems3Button.TabIndex = 35;
|
||||
this.commonItems3Button.Text = "Common 3";
|
||||
this.commonItems3Button.UseVisualStyleBackColor = true;
|
||||
this.commonItems3Button.Click += new System.EventHandler(this.commonItems3Button_Click);
|
||||
//
|
||||
// colW2TextBox
|
||||
//
|
||||
this.colW2TextBox.Enabled = false;
|
||||
this.colW2TextBox.Location = new System.Drawing.Point(216, 236);
|
||||
this.colW2TextBox.Name = "colW2TextBox";
|
||||
this.colW2TextBox.Size = new System.Drawing.Size(44, 20);
|
||||
this.colW2TextBox.TabIndex = 31;
|
||||
//
|
||||
// colW1TextBox
|
||||
//
|
||||
this.colW1TextBox.Enabled = false;
|
||||
this.colW1TextBox.Location = new System.Drawing.Point(142, 236);
|
||||
this.colW1TextBox.Name = "colW1TextBox";
|
||||
this.colW1TextBox.Size = new System.Drawing.Size(44, 20);
|
||||
this.colW1TextBox.TabIndex = 29;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(186, 239);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(15, 13);
|
||||
this.label3.TabIndex = 30;
|
||||
this.label3.Text = "%";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(260, 238);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(15, 13);
|
||||
this.label4.TabIndex = 32;
|
||||
this.label4.Text = "%";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(16, 239);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(97, 13);
|
||||
this.label5.TabIndex = 28;
|
||||
this.label5.Text = "Column widths in %";
|
||||
//
|
||||
// PrinterCfgCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.colW2TextBox);
|
||||
this.Controls.Add(this.colW1TextBox);
|
||||
this.Controls.Add(this.commonItems3Button);
|
||||
this.Controls.Add(this.commonItems2Button);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.bodyItalicCheckBox);
|
||||
this.Controls.Add(this.bodyBoldCheckBox);
|
||||
this.Controls.Add(this.headerItalicCheckBox);
|
||||
this.Controls.Add(this.headerBoldCheckBox);
|
||||
this.Controls.Add(this.titleItalicCheckBox);
|
||||
this.Controls.Add(this.titleBoldCheckBox);
|
||||
this.Controls.Add(this.bodyFontSizeTextBox);
|
||||
this.Controls.Add(this.headerFontSizeTextBox);
|
||||
this.Controls.Add(this.titleFontSizeTextBox);
|
||||
this.Controls.Add(this.bodyFontFamilyComboBox);
|
||||
this.Controls.Add(this.bodyFontLabel);
|
||||
this.Controls.Add(this.headerFontFamilyComboBox);
|
||||
this.Controls.Add(this.titleFontFamilyComboBox);
|
||||
this.Controls.Add(this.cultureComboBox);
|
||||
this.Controls.Add(this.cultureLabel);
|
||||
this.Controls.Add(this.commonItems1Button);
|
||||
this.Controls.Add(this.footerButton);
|
||||
this.Controls.Add(this.headerButton);
|
||||
this.Controls.Add(this.testItemsButton);
|
||||
this.Controls.Add(this.bottomMarginTextBox);
|
||||
this.Controls.Add(this.titleFontLabel);
|
||||
this.Controls.Add(this.leftMarginTextBox);
|
||||
this.Controls.Add(this.headerFontLabel);
|
||||
this.Controls.Add(this.topMarginTextBox);
|
||||
this.Controls.Add(this.topMarginLabel);
|
||||
this.Controls.Add(this.orientationComboBox);
|
||||
this.Controls.Add(this.orientationLabel);
|
||||
this.Controls.Add(this.supressPrintingCheckBox);
|
||||
this.Controls.Add(this.nameTextBox);
|
||||
this.Controls.Add(this.nameLabel);
|
||||
this.Controls.Add(this.classNameLabel);
|
||||
this.Name = "PrinterCfgCtrl";
|
||||
this.Size = new System.Drawing.Size(400, 350);
|
||||
this.Load += new System.EventHandler(this.PrinterCfgCtrl_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox nameTextBox;
|
||||
private System.Windows.Forms.Label nameLabel;
|
||||
private System.Windows.Forms.Label classNameLabel;
|
||||
private System.Windows.Forms.CheckBox supressPrintingCheckBox;
|
||||
private System.Windows.Forms.Label orientationLabel;
|
||||
private System.Windows.Forms.ComboBox orientationComboBox;
|
||||
private System.Windows.Forms.TextBox topMarginTextBox;
|
||||
private System.Windows.Forms.Label topMarginLabel;
|
||||
private System.Windows.Forms.TextBox leftMarginTextBox;
|
||||
private System.Windows.Forms.TextBox bottomMarginTextBox;
|
||||
private System.Windows.Forms.ComboBox cultureComboBox;
|
||||
private System.Windows.Forms.Label cultureLabel;
|
||||
private System.Windows.Forms.Button commonItems1Button;
|
||||
private System.Windows.Forms.Button footerButton;
|
||||
private System.Windows.Forms.Button headerButton;
|
||||
private System.Windows.Forms.Button testItemsButton;
|
||||
private System.Windows.Forms.Label headerFontLabel;
|
||||
private System.Windows.Forms.Label titleFontLabel;
|
||||
private System.Windows.Forms.ComboBox titleFontFamilyComboBox;
|
||||
private System.Windows.Forms.ComboBox headerFontFamilyComboBox;
|
||||
private System.Windows.Forms.ComboBox bodyFontFamilyComboBox;
|
||||
private System.Windows.Forms.Label bodyFontLabel;
|
||||
private System.Windows.Forms.TextBox titleFontSizeTextBox;
|
||||
private System.Windows.Forms.TextBox headerFontSizeTextBox;
|
||||
private System.Windows.Forms.TextBox bodyFontSizeTextBox;
|
||||
private System.Windows.Forms.CheckBox titleBoldCheckBox;
|
||||
private System.Windows.Forms.CheckBox titleItalicCheckBox;
|
||||
private System.Windows.Forms.CheckBox headerItalicCheckBox;
|
||||
private System.Windows.Forms.CheckBox headerBoldCheckBox;
|
||||
private System.Windows.Forms.CheckBox bodyItalicCheckBox;
|
||||
private System.Windows.Forms.CheckBox bodyBoldCheckBox;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Button commonItems2Button;
|
||||
private System.Windows.Forms.Button commonItems3Button;
|
||||
private System.Windows.Forms.TextBox colW2TextBox;
|
||||
private System.Windows.Forms.TextBox colW1TextBox;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label5;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,478 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Config.Entities;
|
||||
using TBF.BenchControl.Generic;
|
||||
using TBF.Resources;
|
||||
|
||||
namespace TBF.BenchControl.Output.Printers.Zapiska
|
||||
{
|
||||
public partial class PrinterCfgCtrl : UserControl, IComponentCfgCtrl
|
||||
{
|
||||
static readonly ILog log = LogManager.GetLogger(typeof(PrinterCfgCtrl));
|
||||
|
||||
public bool ShowMore { get { return false; } }
|
||||
|
||||
PrinterCfg config;
|
||||
public IComponentCfg Config
|
||||
{
|
||||
get { return config as IComponentCfg; }
|
||||
set
|
||||
{
|
||||
config = value as PrinterCfg;
|
||||
Redraw();
|
||||
}
|
||||
}
|
||||
|
||||
string header;
|
||||
string[] commonItems1;
|
||||
string[] commonItems2;
|
||||
string[] commonItems3;
|
||||
string[] testItems;
|
||||
string footer;
|
||||
|
||||
public PrinterCfgCtrl()
|
||||
{
|
||||
InitializeComponent();
|
||||
Localize();
|
||||
|
||||
orientationComboBox.Items.Add(PageOrientation.Portrait.ToString());
|
||||
orientationComboBox.Items.Add(PageOrientation.Landscape.ToString());
|
||||
|
||||
foreach (var ff in System.Drawing.FontFamily.Families)
|
||||
{
|
||||
titleFontFamilyComboBox.Items.Add(ff.Name);
|
||||
headerFontFamilyComboBox.Items.Add(ff.Name);
|
||||
bodyFontFamilyComboBox.Items.Add(ff.Name);
|
||||
}
|
||||
}
|
||||
|
||||
private void PrinterCfgCtrl_Load(object sender, EventArgs e)
|
||||
{
|
||||
for (Culture s = 0; s < Culture.Count; s++) cultureComboBox.Items.Add(s.ToString());
|
||||
|
||||
header = config.Header;
|
||||
commonItems1 = config.CommonItems1;
|
||||
commonItems2 = config.CommonItems2;
|
||||
commonItems3 = config.CommonItems3;
|
||||
testItems = config.SelectedItems;
|
||||
footer = config.Footer;
|
||||
|
||||
Redraw();
|
||||
}
|
||||
|
||||
void Localize()
|
||||
{
|
||||
nameLabel.Text = Strings.Name;
|
||||
cultureLabel.Text = "Culture";
|
||||
headerButton.Text = Strings.Header;
|
||||
commonItems1Button.Text = "Common 1";
|
||||
commonItems2Button.Text = "Common 2";
|
||||
commonItems3Button.Text = "Common 3";
|
||||
testItemsButton.Text = "Test items";
|
||||
footerButton.Text = Strings.Footer;
|
||||
}
|
||||
|
||||
public void Closing()
|
||||
{
|
||||
}
|
||||
|
||||
PageOrientation GetOrientation(string str)
|
||||
{
|
||||
if (str.Equals(PageOrientation.Landscape.ToString())) return PageOrientation.Landscape;
|
||||
if (str.Equals(PageOrientation.Portrait.ToString())) return PageOrientation.Portrait;
|
||||
return (PageOrientation)(-1);
|
||||
}
|
||||
|
||||
void Redraw()
|
||||
{
|
||||
if (config == null) return; /// Control was not loaded, settings were not changed
|
||||
classNameLabel.Text = config.Factory.ClassName;
|
||||
nameTextBox.Text = config.Name;
|
||||
orientationComboBox.Text = config.PageOrientation.ToString();
|
||||
topMarginTextBox.Text = config.TopMargin.ToString();
|
||||
bottomMarginTextBox.Text = config.BottomMargin.ToString();
|
||||
leftMarginTextBox.Text = config.LeftMargin.ToString();
|
||||
|
||||
titleFontFamilyComboBox.Text = config.TitFntFml;
|
||||
titleFontSizeTextBox.Text = config.TitFntSz.ToString();
|
||||
titleBoldCheckBox.Checked = ((config.TitFntSty & (int)System.Drawing.FontStyle.Bold) != 0);
|
||||
titleItalicCheckBox.Checked = ((config.TitFntSty & (int)System.Drawing.FontStyle.Italic) != 0);
|
||||
|
||||
headerFontFamilyComboBox.Text = config.HdrFntFml;
|
||||
headerFontSizeTextBox.Text = config.HdrFntSz.ToString();
|
||||
headerBoldCheckBox.Checked = ((config.HdrFntSty & (int)System.Drawing.FontStyle.Bold) != 0);
|
||||
headerItalicCheckBox.Checked = ((config.HdrFntSty & (int)System.Drawing.FontStyle.Italic) != 0);
|
||||
|
||||
bodyFontFamilyComboBox.Text = config.BodyFntFml;
|
||||
bodyFontSizeTextBox.Text = config.BodyFntSz.ToString();
|
||||
bodyBoldCheckBox.Checked = ((config.BodyFntSty & (int)System.Drawing.FontStyle.Bold) != 0);
|
||||
bodyItalicCheckBox.Checked = ((config.BodyFntSty & (int)System.Drawing.FontStyle.Italic) != 0);
|
||||
|
||||
colW1TextBox.Text = config.ColW1Pct.ToString();
|
||||
colW2TextBox.Text = config.ColW2Pct.ToString();
|
||||
|
||||
supressPrintingCheckBox.Checked = config.SupressPrinting;
|
||||
cultureComboBox.Text = config.Culture.ToString();
|
||||
}
|
||||
|
||||
public void Unlock()
|
||||
{
|
||||
nameTextBox.Enabled = true;
|
||||
orientationComboBox.Enabled = true;
|
||||
topMarginTextBox.Enabled = true;
|
||||
bottomMarginTextBox.Enabled = true;
|
||||
leftMarginTextBox.Enabled = true;
|
||||
titleFontFamilyComboBox.Enabled = true;
|
||||
titleFontSizeTextBox.Enabled = true;
|
||||
titleBoldCheckBox.Enabled = true;
|
||||
titleItalicCheckBox.Enabled = true;
|
||||
headerFontFamilyComboBox.Enabled = true;
|
||||
headerFontSizeTextBox.Enabled = true;
|
||||
headerBoldCheckBox.Enabled = true;
|
||||
headerItalicCheckBox.Enabled = true;
|
||||
bodyFontFamilyComboBox.Enabled = true;
|
||||
bodyFontSizeTextBox.Enabled = true;
|
||||
bodyBoldCheckBox.Enabled = true;
|
||||
bodyItalicCheckBox.Enabled = true;
|
||||
supressPrintingCheckBox.Enabled = true;
|
||||
cultureComboBox.Enabled = true;
|
||||
headerButton.Enabled = true;
|
||||
colW1TextBox.Enabled = true;
|
||||
colW2TextBox.Enabled = true;
|
||||
commonItems1Button.Enabled = true;
|
||||
commonItems2Button.Enabled = true;
|
||||
commonItems3Button.Enabled = true;
|
||||
testItemsButton.Enabled = true;
|
||||
footerButton.Enabled = true;
|
||||
}
|
||||
|
||||
public CfgUpdateFlags VerifyCfg(ref string message)
|
||||
{
|
||||
CfgUpdateFlags flags = CfgUpdateFlags.None;
|
||||
|
||||
if ((int)GetOrientation(orientationComboBox.Text) < 0)
|
||||
{
|
||||
message += Environment.NewLine + "Invalid 'Page orientation'";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
int dummy, dummy2;
|
||||
if (!int.TryParse(topMarginTextBox.Text, out dummy) || dummy < 0 || dummy > 500)
|
||||
{
|
||||
message += Environment.NewLine + "'Top margin' should be between 0 and 500";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
if (!int.TryParse(bottomMarginTextBox.Text, out dummy) || dummy < 0 || dummy > 200)
|
||||
{
|
||||
message += Environment.NewLine + "'Bottom margin' should be between 0 and 200";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
if (!int.TryParse(leftMarginTextBox.Text, out dummy) || dummy < 0 || dummy > 200)
|
||||
{
|
||||
message += Environment.NewLine + "Left margin' should be between 0 and 200";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
if (!int.TryParse(titleFontSizeTextBox.Text, out dummy) || dummy < 6 || dummy > 48)
|
||||
{
|
||||
message += Environment.NewLine + "Title font size should be between 6 and 48";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
if (!int.TryParse(headerFontSizeTextBox.Text, out dummy) || dummy < 6 || dummy > 48)
|
||||
{
|
||||
message += Environment.NewLine + "Header font size should be between 6 and 48";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
if (!int.TryParse(bodyFontSizeTextBox.Text, out dummy) || dummy < 6 || dummy > 48)
|
||||
{
|
||||
message += Environment.NewLine + "Body font size should be between 6 and 48";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
if (!cultureComboBox.Items.Contains(cultureComboBox.Text))
|
||||
{
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
message += Environment.NewLine + "Invalid culture";
|
||||
}
|
||||
|
||||
if (!int.TryParse(colW1TextBox.Text, out dummy) || dummy < 0 || dummy > 100)
|
||||
{
|
||||
message += Environment.NewLine + "Column width 1 should be between 0 and 100";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
if (!int.TryParse(colW2TextBox.Text, out dummy2) || dummy2 < 0 || dummy2 > 100)
|
||||
{
|
||||
message += Environment.NewLine + "Column width 2 should be between 0 and 100";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
if (dummy + dummy2 > 100)
|
||||
{
|
||||
message += Environment.NewLine + "Sum of column widths should be <= 100";
|
||||
flags |= CfgUpdateFlags.Error;
|
||||
}
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
public CfgUpdateFlags UpdateCfg()
|
||||
{
|
||||
CfgUpdateFlags flags = CfgUpdateFlags.None;
|
||||
|
||||
if (config == null) return CfgUpdateFlags.Error; /// Control was not loaded, settings were not changed
|
||||
|
||||
if (config.Name != nameTextBox.Text)
|
||||
{
|
||||
config.Name = nameTextBox.Text;
|
||||
flags |= (CfgUpdateFlags.RestartRqrd | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
if (config.PageOrientation != GetOrientation(orientationComboBox.Text))
|
||||
{
|
||||
config.PageOrientation = GetOrientation(orientationComboBox.Text);
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
int tmp = int.Parse(topMarginTextBox.Text);
|
||||
if (config.TopMargin != tmp)
|
||||
{
|
||||
config.TopMargin = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
tmp = int.Parse(bottomMarginTextBox.Text);
|
||||
if (config.BottomMargin != tmp)
|
||||
{
|
||||
config.BottomMargin = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
tmp = int.Parse(leftMarginTextBox.Text);
|
||||
if (config.LeftMargin != tmp)
|
||||
{
|
||||
config.LeftMargin = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
/// Title font properties
|
||||
if (config.TitFntFml != titleFontFamilyComboBox.Text)
|
||||
{
|
||||
config.TitFntFml = titleFontFamilyComboBox.Text;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
tmp = int.Parse(titleFontSizeTextBox.Text);
|
||||
if (config.TitFntSz != tmp)
|
||||
{
|
||||
config.TitFntSz = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
tmp = (titleBoldCheckBox.Checked ? (int)System.Drawing.FontStyle.Bold : 0)
|
||||
+ (titleItalicCheckBox.Checked ? (int)System.Drawing.FontStyle.Italic : 0);
|
||||
if (config.TitFntSty != tmp)
|
||||
{
|
||||
config.TitFntSty = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
/// Header font properties
|
||||
if (config.HdrFntFml != headerFontFamilyComboBox.Text)
|
||||
{
|
||||
config.HdrFntFml = headerFontFamilyComboBox.Text;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
tmp = int.Parse(headerFontSizeTextBox.Text);
|
||||
if (config.HdrFntSz != tmp)
|
||||
{
|
||||
config.HdrFntSz = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
tmp = (headerBoldCheckBox.Checked ? (int)System.Drawing.FontStyle.Bold : 0)
|
||||
+ (headerItalicCheckBox.Checked ? (int)System.Drawing.FontStyle.Italic : 0);
|
||||
if (config.HdrFntSty != tmp)
|
||||
{
|
||||
config.HdrFntSty = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
/// Body font properties
|
||||
if (config.BodyFntFml != bodyFontFamilyComboBox.Text)
|
||||
{
|
||||
config.BodyFntFml = bodyFontFamilyComboBox.Text;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
tmp = int.Parse(bodyFontSizeTextBox.Text);
|
||||
if (config.BodyFntSz != tmp)
|
||||
{
|
||||
config.BodyFntSz = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
tmp = (bodyBoldCheckBox.Checked ? (int)System.Drawing.FontStyle.Bold : 0)
|
||||
+ (bodyItalicCheckBox.Checked ? (int)System.Drawing.FontStyle.Italic : 0);
|
||||
if (config.BodyFntSty != tmp)
|
||||
{
|
||||
config.BodyFntSty = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
if (config.SupressPrinting != supressPrintingCheckBox.Checked)
|
||||
{
|
||||
config.SupressPrinting = supressPrintingCheckBox.Checked;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
tmp = int.Parse(colW1TextBox.Text);
|
||||
if (config.ColW1Pct != tmp)
|
||||
{
|
||||
config.ColW1Pct = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
tmp = int.Parse(colW2TextBox.Text);
|
||||
if (config.ColW2Pct != tmp)
|
||||
{
|
||||
config.ColW2Pct = tmp;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
if (config.CommonItems1 != commonItems1)
|
||||
{
|
||||
config.CommonItems1 = commonItems1;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
if (config.CommonItems2 != commonItems2)
|
||||
{
|
||||
config.CommonItems2 = commonItems2;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
if (config.CommonItems3 != commonItems3)
|
||||
{
|
||||
config.CommonItems3 = commonItems3;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
if (config.SelectedItems != testItems)
|
||||
{
|
||||
config.SelectedItems = testItems;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
if (config.Header != header)
|
||||
{
|
||||
config.Header = header;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
if (config.Footer != footer)
|
||||
{
|
||||
config.Footer = footer;
|
||||
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
|
||||
}
|
||||
|
||||
if ((flags & CfgUpdateFlags.InvokeCfgChange) != 0)
|
||||
{
|
||||
Printer.OnCfgChange(this, new CfgChangeArgs(CfgChangeCmd.CfgChange, config));
|
||||
}
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
private void headerButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
HeaderFooterDlg dlg = new HeaderFooterDlg(true, string.IsNullOrEmpty(header) ? string.Empty : header.Replace("~", Environment.NewLine));
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
header = dlg.EditedText.Replace(Environment.NewLine, "~");
|
||||
}
|
||||
}
|
||||
|
||||
private void commonItems1Button_Click(object sender, EventArgs e)
|
||||
{
|
||||
Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg()
|
||||
{
|
||||
MetersKind = config.MetersKind,
|
||||
SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(commonItems1),
|
||||
};
|
||||
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
commonItems1 = Results.WMeterRsltItemSpec.ToStrArray(dlg.SelectedItems);
|
||||
}
|
||||
}
|
||||
|
||||
private void commonItems2Button_Click(object sender, EventArgs e)
|
||||
{
|
||||
Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg()
|
||||
{
|
||||
MetersKind = config.MetersKind,
|
||||
SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(commonItems2),
|
||||
};
|
||||
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
commonItems2 = Results.WMeterRsltItemSpec.ToStrArray(dlg.SelectedItems);
|
||||
}
|
||||
}
|
||||
|
||||
private void commonItems3Button_Click(object sender, EventArgs e)
|
||||
{
|
||||
Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg()
|
||||
{
|
||||
MetersKind = config.MetersKind,
|
||||
SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(commonItems3),
|
||||
};
|
||||
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
commonItems3 = Results.WMeterRsltItemSpec.ToStrArray(dlg.SelectedItems);
|
||||
}
|
||||
}
|
||||
|
||||
private void testItemsButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg(true)
|
||||
{
|
||||
MetersKind = config.MetersKind,
|
||||
SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(testItems),
|
||||
};
|
||||
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
testItems = Results.WMeterRsltItemSpec.ToStrArray(dlg.SelectedItems);
|
||||
}
|
||||
}
|
||||
|
||||
private void footerButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
HeaderFooterDlg dlg = new HeaderFooterDlg(false, string.IsNullOrEmpty(footer) ? string.Empty : footer.Replace("~", Environment.NewLine));
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
footer = dlg.EditedText.Replace(Environment.NewLine, "~");
|
||||
}
|
||||
}
|
||||
|
||||
#region Configuration Change Handling
|
||||
|
||||
public static void OnCmdResponse(object sender, CmdResponseArgs args)
|
||||
{
|
||||
if (CmdResponseHandler == null) return;
|
||||
try { CmdResponseHandler(sender, args); }
|
||||
catch (Exception e) { log.Error("CmdResponseHandler(...) failed", e); }
|
||||
}
|
||||
|
||||
public static event EventHandler<CmdResponseArgs> CmdResponseHandler;
|
||||
|
||||
public void StartResponseHandler() { }
|
||||
public void StopResponseHandler() { }
|
||||
|
||||
#endregion Configuration Change Handling
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@ -103,6 +103,9 @@ namespace TBF.BenchControl
|
||||
Factories.Add(new Output.Printers.OnePagePerMeter.FactorySingle());
|
||||
Factories.Add(new Output.Printers.OnePagePerMeter.FactoryCompound());
|
||||
Factories.Add(new Output.Printers.OnePagePerMeter.FactoryHeatMeters());
|
||||
Factories.Add(new Output.Printers.Zapiska.FactorySingle());
|
||||
Factories.Add(new Output.Printers.Zapiska.FactoryCompound());
|
||||
Factories.Add(new Output.Printers.Zapiska.FactoryHeatMeters());
|
||||
Factories.Add(new Elde.PressureMeter.PressureMeterFactory());
|
||||
Factories.Add(new Elde.PressureMeterInternal.PressureMeterFactory());
|
||||
Factories.Add(new Elde.Pump.PumpFactory());
|
||||
|
||||
@ -774,6 +774,17 @@
|
||||
<Compile Include="BenchControl\Output\Printers\OnePagePerMeter\PrinterCfgCtrl.designer.cs">
|
||||
<DependentUpon>PrinterCfgCtrl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="BenchControl\Output\Printers\Zapiska\FactoryCompound.cs" />
|
||||
<Compile Include="BenchControl\Output\Printers\Zapiska\FactoryHeatMeters.cs" />
|
||||
<Compile Include="BenchControl\Output\Printers\Zapiska\FactorySingle.cs" />
|
||||
<Compile Include="BenchControl\Output\Printers\Zapiska\Printer.cs" />
|
||||
<Compile Include="BenchControl\Output\Printers\Zapiska\PrinterCfg.cs" />
|
||||
<Compile Include="BenchControl\Output\Printers\Zapiska\PrinterCfgCtrl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="BenchControl\Output\Printers\Zapiska\PrinterCfgCtrl.designer.cs">
|
||||
<DependentUpon>PrinterCfgCtrl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="BenchControl\ResultsPrinters\Cevak\Printer.cs" />
|
||||
<Compile Include="BenchControl\ResultsPrinters\Cevak\PrinterCfg.cs" />
|
||||
<Compile Include="BenchControl\ResultsPrinters\Cevak\PrinterCfgCtrl.cs">
|
||||
@ -2143,6 +2154,9 @@
|
||||
<EmbeddedResource Include="BenchControl\Output\Printers\OnePagePerMeter\PrinterCfgCtrl.resx">
|
||||
<DependentUpon>PrinterCfgCtrl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="BenchControl\Output\Printers\Zapiska\PrinterCfgCtrl.resx">
|
||||
<DependentUpon>PrinterCfgCtrl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="BenchControl\ResultsPrinters\Cevak\PrinterCfgCtrl.resx">
|
||||
<DependentUpon>PrinterCfgCtrl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user