All printers modified for new Results, other fixes and changes.

This commit is contained in:
Milan Hanajik
2016-01-06 21:39:52 +01:00
parent 511d86a186
commit 1ee5724082
17 changed files with 458 additions and 738 deletions
@@ -33,12 +33,9 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
///
/// Data to print
///
readonly GenericDevices.IBenchInfo benchId;
readonly Procedure procedure;
readonly int wmNr;
readonly IList<TestResult> unsortedResults;
readonly IList<TestResult> results;
readonly bool combined; /// true when MetersKind is MetersKind.Combined
readonly Results.Entities.WaterMeter wm;
readonly IList<Results.Entities.MeterTestRslt> results;
readonly bool compound; /// true when MetersKind is MetersKind.Combined
readonly int secondTableOffset; /// Calculated in the constructor
@@ -57,17 +54,17 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
/// </summary>
/// <param name="textToPrint">Text to be printed</param>
public MunichPrintDocument(Printer printer,
Procedure procedure,
IList<TestResult> unsortedResults,
int wmNr,
Results.Entities.WaterMeter wm,
PageOrientation pageOrientation)
{
prn = printer;
this.procedure = procedure;
this.unsortedResults = unsortedResults;
this.wmNr = wmNr;
combined = (procedure.MetersKind == MetersKind.Combined);
results = Utils.GetSortedTestResults(procedure, unsortedResults, Utils.PartNr(wmNr + 1, combined));
this.wm = wm;
compound = wm.Compound();
results = wm.MeterTestRslts;
int resultsCount = wm.MeterTestRslts.Count;
if (compound) resultsCount /= 3;
secondTableOffset = (results.Count + 2) * SpacingOneAndHalf;
@@ -128,9 +125,9 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
PrintAt(e, Tab1, lineNr * SpacingOne, prn.Version);
lineNr++;
PrintBoldAt(e, Tab1, lineNr * SpacingOne, "Prüfstand Nr :");
PrintBoldAt(e, Tab2, lineNr * SpacingOne, (prn.BenchId != null) ? prn.BenchId.TestBenchName : "");
PrintBoldAt(e, Tab2, lineNr * SpacingOne, wm.BenchId().ToString());
PrintBoldAt(e, Tab3, lineNr * SpacingOne, "Datum :");
PrintBoldAt(e, Tab4, lineNr * SpacingOne, DateTime.Now.Date.ToString("d"));
PrintBoldAt(e, Tab4, lineNr * SpacingOne, wm.Batch.EndTime.Date.ToString("d"));
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Zahlertyp :");
PrintAt(e, Tab2, lineNr * SpacingOne, prn.Zaehlertyp);
@@ -141,7 +138,7 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
PrintAt(e, Tab2, lineNr * SpacingOne, prn.Pruefvorlage);
lineNr += 2;
if (combined)
if (compound)
{
PrintBoldAt(e, Tab1, lineNr * SpacingOne, "Hauptzahler");
PrintBoldAt(e, Tab3, lineNr * SpacingOne, "Nebenzahler");
@@ -149,65 +146,65 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
}
PrintAt(e, Tab1, lineNr * SpacingOne, "Hersteller :");
PrintAt(e, Tab2, lineNr * SpacingOne, prn.WaterMeters[wmNr].Producer);
if (combined)
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Producer());
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Hersteller :");
PrintAt(e, Tab4, lineNr * SpacingOne, prn.WaterMeters[1].Producer);
PrintAt(e, Tab4, lineNr * SpacingOne, wm.Producer()); /// TODO
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Seriennummer :");
PrintAt(e, Tab2, lineNr * SpacingOne, prn.WaterMeters[wmNr].SerialNr);
if (combined)
PrintAt(e, Tab2, lineNr * SpacingOne, wm.SerialNr);
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Seriennummer :");
PrintAt(e, Tab4, lineNr * SpacingOne, prn.WaterMeters[1].SerialNr);
PrintAt(e, Tab4, lineNr * SpacingOne, wm.SerialNrEx);
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Qn :");
PrintAt(e, Tab2, lineNr * SpacingOne, prn.WaterMeters[wmNr].Qn.ToString());
if (combined)
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Qn().ToString());
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Qn :");
PrintAt(e, Tab4, lineNr * SpacingOne, prn.WaterMeters[1].Qn.ToString());
PrintAt(e, Tab4, lineNr * SpacingOne, wm.Qn().ToString()); /// TODO !!!!!
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Zulassungszeichen :");
PrintAt(e, Tab2, lineNr * SpacingOne, prn.WaterMeters[wmNr].ApprovalInfo);
if (combined)
PrintAt(e, Tab2, lineNr * SpacingOne, wm.ApprovalInfo());
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Zulassungszeichen :");
PrintAt(e, Tab4, lineNr * SpacingOne, prn.WaterMeters[1].ApprovalInfo);
PrintAt(e, Tab4, lineNr * SpacingOne, wm.ApprovalInfo()); /// TODO
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Metr. klasse :");
PrintAt(e, Tab2, lineNr * SpacingOne, prn.WaterMeters[wmNr].MetrologicalClass);
if (combined)
PrintAt(e, Tab2, lineNr * SpacingOne, wm.MetrologicalClass());
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Metr. klasse :");
PrintAt(e, Tab4, lineNr * SpacingOne, prn.WaterMeters[1].MetrologicalClass);
PrintAt(e, Tab4, lineNr * SpacingOne, wm.MetrologicalClass()); /// TODO
}
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Stand :");
PrintAt(e, Tab2, lineNr * SpacingOne, prn.WaterMeters[wmNr].EndState);
if (combined)
PrintAt(e, Tab2, lineNr * SpacingOne, wm.EndState);
if (compound)
{
PrintAt(e, Tab3, lineNr * SpacingOne, "Stand :");
PrintAt(e, Tab4, lineNr * SpacingOne, prn.WaterMeters[1].EndState);
PrintAt(e, Tab4, lineNr * SpacingOne, wm.EndStateAux);
lineNr += 2;
PrintAt(e, Tab1, lineNr * SpacingOne, "Umschaltpunkte :");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Qsteig");
PrintAt(e, Tab2, lineNr * SpacingOne, (1000.0f * Sequences.SequenceBase.Qrise).ToString("F1") + " l/h");
PrintAt(e, Tab2, lineNr * SpacingOne, (1000.0 * wm.QRise).ToString("F1") + " l/h");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Qfall");
PrintAt(e, Tab2, lineNr * SpacingOne, (1000.0f * Sequences.SequenceBase.Qfall).ToString("F1") + " l/h");
PrintAt(e, Tab2, lineNr * SpacingOne, (1000.0 * wm.QFall).ToString("F1") + " l/h");
}
lineNr += 2;
@@ -218,16 +215,16 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
lineNr += (secondTableOffset * 2) / SpacingOne;
PrintAt(e, Tab1, lineNr * SpacingOne, "Temperatur");
PrintAt(e, Tab2, lineNr * SpacingOne, results[0].AmbientTempAve.ToString("F1") + " \x00b0C");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientTempAve().ToString("F1") + " \x00b0C");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Feuchtigkeit");
PrintAt(e, Tab2, lineNr * SpacingOne, results[0].AmbientHumiAve.ToString("F0") + " %");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientHumiAve().ToString("F0") + " %");
lineNr++;
PrintAt(e, Tab1, lineNr * SpacingOne, "Luftdruck");
PrintAt(e, Tab2, lineNr * SpacingOne, results[0].AmbientPressAve.ToString("F0") + " mbar");
PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientPressAve().ToString("F0") + " mbar");
lineNr++;
PrintAt(e, Tab3, lineNr * SpacingOne, DateTime.Now.Date.ToString("d"));
PrintAt(e, Tab3, lineNr * SpacingOne, wm.Batch.EndTime.Date.ToString("d"));
lineNr ++;
PrintAt(e, Tab3, lineNr * SpacingOne, "Datum");
PrintAt(e, Tab4, lineNr * SpacingOne, "Unterschrift");
@@ -241,8 +238,8 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
PrintAt(e, FromTest(-1, -1), "Prüflauf");
PrintAt(e, FromTest(-1, 0), "Q [l/h]");
PrintAt(e, FromTest(-1, 1), "Prüf-Vol.[l]");
PrintAt(e, FromTest(-1, 2), combined ? "HZ-Vol.[l]" : "Z-Vol.[l]");
PrintAt(e, FromTest(-1, 3), combined ? "NZ-Vol.[l]" : "-");
PrintAt(e, FromTest(-1, 2), compound ? "HZ-Vol.[l]" : "Z-Vol.[l]");
PrintAt(e, FromTest(-1, 3), compound ? "NZ-Vol.[l]" : "-");
PrintAt(e, FromTest(-1, 4), "Fehler [%]");
PrintAt(e, FromTest(-1, 5), "Ergebnis");
@@ -253,33 +250,41 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
PrintAt(e, FromTest(-1, 10), "Druck Eing.");
PrintAt(e, FromTest(-1, 11), "Druck Ausg.");
for (int i = 0; i < results.Count; i++)
int i = 0;
foreach (var mtr in wm.MeterTestRslts)
{
Point p = FromTest(i, -1);
PrintAt(e, p.X, p.Y, results[i].Name);
PrintAt(e, p.X, p.Y + (results.Count + 2) * SpacingOneAndHalf, results[i].Name);
if (!compound || mtr.CompoundMeterId == (byte)CompoundMeterId.Compound)
{
Point p = FromTest(i, -1);
PrintAt(e, p.X, p.Y, mtr.Name());
PrintAt(e, p.X, p.Y + (results.Count + 2) * SpacingOneAndHalf, mtr.Name());
PrintAt(e, FromTest(i, 0), results[i].FlowMass.ToString("F1"));
PrintAt(e, FromTest(i, 1), results[i].VolumeCTV.ToString("F2"));
PrintAt(e, FromTest(i, 2), results[i].Meters[wmNr].VolumeMeter.ToString("F2"));
if (combined)
{
PrintAt(e, FromTest(i, 3), results[i].Meters[1].VolumeMeter.ToString("F2"));
PrintAt(e, FromTest(i, 4), results[i].CombinedMeters[wmNr].VolumeErrorPct.ToString("F2"));
PrintAt(e, FromTest(i, 5), results[i].CombinedMeters[wmNr].Passed ? "iO" : "NiO");
PrintAt(e, FromTest(i, 0), mtr.TestRslt.FlowMass.ToString("F1"));
PrintAt(e, FromTest(i, 1), mtr.TestRslt.VolumeCTV.ToString("F2"));
if (compound)
{
Results.Entities.MeterTestRslt mainMtr = wm.GetMeterTestRslt(mtr.Name(), CompoundMeterId.CompoundMain);
Results.Entities.MeterTestRslt auxMtr = wm.GetMeterTestRslt(mtr.Name(), CompoundMeterId.CompoundMain);
PrintAt(e, FromTest(i, 2), mainMtr.VolumeMeter.ToString("F2"));
PrintAt(e, FromTest(i, 3), auxMtr.VolumeMeter.ToString("F2"));
PrintAt(e, FromTest(i, 4), mtr.Error.ToString("F2"));
PrintAt(e, FromTest(i, 5), mtr.Passed ? "iO" : "NiO");
}
else
{
PrintAt(e, FromTest(i, 2), mtr.VolumeMeter.ToString("F2"));
PrintAt(e, FromTest(i, 3), "-");
PrintAt(e, FromTest(i, 4), mtr.Error.ToString("F2"));
PrintAt(e, FromTest(i, 5), mtr.Passed ? "iO" : "NiO");
}
PrintAt(e, FromTest(i, 6), mtr.TestRslt.FlowMass.ToString("F1"));
PrintAt(e, FromTest(i, 7), mtr.TestRslt.TempOutAvrg.ToString("F2"));
PrintAt(e, FromTest(i, 8), mtr.TestRslt.DensityDiv.ToString("F2"));
PrintAt(e, FromTest(i, 9), mtr.TestTime.ToString("F1"));
PrintAt(e, FromTest(i, 10), mtr.TestRslt.PressUpAvrg.ToString("F2"));
PrintAt(e, FromTest(i, 11), mtr.TestRslt.PressDownAvrg.ToString("F2"));
}
else
{
PrintAt(e, FromTest(i, 3), "-");
PrintAt(e, FromTest(i, 4), results[i].Meters[wmNr].VolumeErrorPct.ToString("F2"));
PrintAt(e, FromTest(i, 5), results[i].Meters[wmNr].Passed ? "iO" : "NiO");
}
PrintAt(e, FromTest(i, 6), results[i].FlowMass.ToString("F1"));
PrintAt(e, FromTest(i, 7), results[i].TempOutAvrg.ToString("F2"));
PrintAt(e, FromTest(i, 8), results[i].DensityDiv.ToString("F2"));
PrintAt(e, FromTest(i, 9), results[i].Time.ToString("F1"));
PrintAt(e, FromTest(i, 10), results[i].PressInAvrg.ToString("F2"));
PrintAt(e, FromTest(i, 11), results[i].PressOutAvrg.ToString("F2"));
}
}
@@ -18,28 +18,21 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
readonly PrinterCfg printerCfg;
/// <summary>
/// Data to print
/// </summary>
public GenericDevices.IBenchInfo BenchId;
public IList<GenericDevices.IWaterMeter> WaterMeters;
public IList<TestResult> Results;
Procedure procedure;
public IList<TestResult> unsortedResults;
public string Title;
public string Version { get { return printerCfg. ProcParams.Version; } }
public string Zaehlertyp { get { return printerCfg. ProcParams.Zaehlertyp; } }
public string Pruefvorlage { get { return printerCfg. ProcParams.Pruefvorlage; } }
public string Eichjahr { get { return printerCfg. ProcParams.Eichjahr; } }
public bool SupressPrinting { get { return false; } }
public Printer()
{
}
/// <summary> Data to print </summary>
Results.Entities.Batch batch;
public string Title;
public string Version { get { return printerCfg.ProcParams.Version; } }
public string Zaehlertyp { get { return printerCfg.ProcParams.Zaehlertyp; } }
public string Pruefvorlage { get { return printerCfg.ProcParams.Pruefvorlage; } }
public string Eichjahr { get { return printerCfg.ProcParams.Eichjahr; } }
public Printer() { }
public Printer(PrinterCfg cfg)
: base(cfg)
@@ -48,21 +41,14 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
log.Debug(this.ToString());
}
/// <summary>Events: ResultsPrinted</summary>
/// <param name="benchId">Procedure to print the results of</param>
/// <param name="results">Results to print</param>
/// <returns>Reference to the operation</returns>
public IOperation PrintResultsOp(GenericDevices.IBenchInfo benchId,
IList<GenericDevices.IWaterMeter> waterMeters,
Procedure procedure,
IList<TestResult> unsortedResults,
string title)
public IOperation PrintResultsOp(Results.Entities.Batch batch, string title)
{
this.BenchId = benchId;
this.WaterMeters = waterMeters;
this.procedure = procedure;
this.Results = unsortedResults;
this.unsortedResults = unsortedResults;
this.batch = batch;
this.Title = title;
return this;
}
@@ -70,24 +56,9 @@ namespace TBF.BenchControl.ResultsPrinters.Munich
/// <summary>Start this operation</summary>
public void Start()
{
if (unsortedResults != null && unsortedResults.Count > 0)
foreach (var wm in batch.WaterMeters)
{
if (procedure.MetersKind == MetersKind.Single)
{
/// Single
for (int wmNr = 0; wmNr < Config.Data.WMsCount; wmNr++)
{
new MunichPrintDocument(this, procedure, unsortedResults, wmNr, printerCfg.PageOrientation).Print();
}
}
else
{
/// Compound
for (int wmNr = 0; wmNr < Config.Data.CompoundWMsCount; wmNr++)
{
new MunichPrintDocument(this, procedure, unsortedResults, wmNr, printerCfg.PageOrientation).Print();
}
}
new MunichPrintDocument(this, wm, printerCfg.PageOrientation).Print();
}
}