diff --git a/Results/BatchResults.cs b/Results/BatchResults.cs index 88753707f..669d8544f 100644 --- a/Results/BatchResults.cs +++ b/Results/BatchResults.cs @@ -27,8 +27,8 @@ namespace Results public Batch Batch; public WaterMeter[] WaterMeters; - public static BatchResults NewFromProcedure(int batchNr, int benchId, string user, int userNr, string programVer, - Config.Entities.Procedure procedure, + public static BatchResults NewFromProcedure(int batchNr, int benchId, string benchName, string a1, string a2, string a3, string a4, string a5, + string user, int userNr, string programVer, Config.Entities.Procedure procedure, WaterMeterData[] waterMeterDatas, int[] waterMeterParts, double densityCorr) { BatchResults d = new BatchResults(waterMeterDatas.Length); @@ -37,8 +37,14 @@ namespace Results /// Create new batch d.Batch = new Batch() { - TestBenchId = benchId, - BatchNr = batchNr, + BatchNr = batchNr, + TestBenchId = benchId, + TestBenchName = benchName, + Address1 = a1, + Address2 = a2, + Address3 = a3, + Address4 = a4, + Address5 = a5, ProgramVersion = programVer, UserName = user, UserNumber = userNr, diff --git a/Results/Entities/Batch.cs b/Results/Entities/Batch.cs index 771ff25da..b77d535b1 100644 --- a/Results/Entities/Batch.cs +++ b/Results/Entities/Batch.cs @@ -11,7 +11,13 @@ namespace Results.Entities public virtual int Id { get; protected set; } public virtual int BatchNr { get; set; } public virtual int TestBenchId { get; set; } - public virtual string ProgramVersion { get; set; } + public virtual string TestBenchName { get; set; } /// CEVAK, not mapped to DB + public virtual string Address1 { get; set; } /// CEVAK, not mapped to DB + public virtual string Address2 { get; set; } /// CEVAK, not mapped to DB + public virtual string Address3 { get; set; } /// CEVAK, not mapped to DB + public virtual string Address4 { get; set; } /// CEVAK, not mapped to DB + public virtual string Address5 { get; set; } /// CEVAK, not mapped to DB + public virtual string ProgramVersion { get; set; } public virtual string UserName { get; set; } public virtual int UserNumber { get; set; } public virtual string ProcedureName { get; set; } diff --git a/Results/ItemID.cs b/Results/ItemID.cs index 37f086d60..2b2b8cb3b 100644 --- a/Results/ItemID.cs +++ b/Results/ItemID.cs @@ -71,7 +71,7 @@ namespace Results Pulse__liter, /// 61 Water meter constant (pulses per liter) specific for one test Reference_pulses_ni, /// 62 Reference pulses gated for specific meter (synchro method) Reference_energy, /// 63 - Test_bench_ID, /// 64 + Bench_ID, /// 64 Test bench ID (int) obtained from a component implementing IBenchInfo Program_version, /// 65 User_name, /// 66 User_nr, /// 67 @@ -253,6 +253,14 @@ namespace Results ConstMasterRaw, /// 219 ConstMaster (like 194) uncorrected Reference_error_corr, /// 220 Reference flow meter error after correction using correction curve + Proc_description, /// 221 Procedure description (CEVAK, not mapped to DB) + Bench_name, /// 222 'Test bench name' (string) obtained from a component implementing IBenchInfo + Bench_address1, /// 223 'Address 1' from IBenchInfo + Bench_address2, /// 224 'Address 2' from IBenchInfo + Bench_address3, /// 225 'Address 3' from IBenchInfo + Bench_address4, /// 226 'Address 4' from IBenchInfo + Bench_address5, /// 227 'Address 5' from IBenchInfo + Count, } } diff --git a/Results/Output/Printers/Table.cs b/Results/Output/Printers/Table.cs index 0b8f5f5ce..ae4781949 100644 --- a/Results/Output/Printers/Table.cs +++ b/Results/Output/Printers/Table.cs @@ -57,10 +57,21 @@ namespace Results.Output.Printers } + /// + /// Returns true when table has either rows or columns count == 0 + /// + /// true when empty + public bool IsEmpty() + { + return (RowsCount == 0 || Rows[0].Length == 0); + } + + public SizeF Measure(System.Drawing.Printing.PrintPageEventArgs e) { SizeF retVal = new SizeF(0, 0); - if (RowsCount == 0) return retVal; + + if (IsEmpty()) return retVal; /// Empty table => zero Size float[] columnWidth = new float[ColumnsCount]; float[] rowHeight = new float[RowsCount]; @@ -117,10 +128,10 @@ namespace Results.Output.Printers public float Draw(System.Drawing.Printing.PrintPageEventArgs e, float left, float top) { - if (RowsCount == 0) return top; + if (IsEmpty()) return top; /// Empty table int tblColumnsCount = Rows[0].Length; - + float[] columnWidth = new float[tblColumnsCount]; float[] columnPos = new float[tblColumnsCount]; float[] vertLinePos = new float[tblColumnsCount + 1]; diff --git a/Results/Properties/AssemblyInfo.cs b/Results/Properties/AssemblyInfo.cs index d62f2df64..2522b5e8c 100644 --- a/Results/Properties/AssemblyInfo.cs +++ b/Results/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.18.990.0")] -[assembly: AssemblyFileVersion("2.18.990.0")] +[assembly: AssemblyVersion("2.18.995.0")] +[assembly: AssemblyFileVersion("2.18.995.0")] diff --git a/Results/Resources/Strings.Designer.cs b/Results/Resources/Strings.Designer.cs index 74511c828..6c9aa3e40 100644 --- a/Results/Resources/Strings.Designer.cs +++ b/Results/Resources/Strings.Designer.cs @@ -69,6 +69,15 @@ namespace Results.Resources { } } + /// + /// Looks up a localized string similar to Address. + /// + internal static string Address { + get { + return ResourceManager.GetString("Address", resourceCulture); + } + } + /// /// Looks up a localized string similar to Alignment. /// @@ -123,6 +132,24 @@ namespace Results.Resources { } } + /// + /// Looks up a localized string similar to Bench ID. + /// + internal static string Bench_ID { + get { + return ResourceManager.GetString("Bench_ID", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bench name. + /// + internal static string Bench_name { + get { + return ResourceManager.GetString("Bench_name", resourceCulture); + } + } + /// /// Looks up a localized string similar to Cancel. /// @@ -636,6 +663,15 @@ namespace Results.Resources { } } + /// + /// Looks up a localized string similar to Procedure description. + /// + internal static string Procedure_description { + get { + return ResourceManager.GetString("Procedure_description", resourceCulture); + } + } + /// /// Looks up a localized string similar to Producer. /// diff --git a/Results/Resources/Strings.cs.resx b/Results/Resources/Strings.cs.resx index f352bf2e4..c8f2c7b07 100644 --- a/Results/Resources/Strings.cs.resx +++ b/Results/Resources/Strings.cs.resx @@ -213,4 +213,43 @@ Jednotka + + Schválení + + + Stanice + + + Hustota + + + Korekce hustoty + + + Konec + + + Procedura + + + Popis procedury + + + Začátek + + + Uživatel + + + Popis uživatele + + + ID stanice + + + Jméno stanice + + + Adresa + \ No newline at end of file diff --git a/Results/Resources/Strings.resx b/Results/Resources/Strings.resx index 201ab64b7..090f1e370 100644 --- a/Results/Resources/Strings.resx +++ b/Results/Resources/Strings.resx @@ -723,4 +723,16 @@ Unit + + Procedure description + + + Bench ID + + + Bench name + + + Address + \ No newline at end of file diff --git a/Results/WMeterRsltItemSpec.cs b/Results/WMeterRsltItemSpec.cs index 015dc48aa..41ec45a9d 100644 --- a/Results/WMeterRsltItemSpec.cs +++ b/Results/WMeterRsltItemSpec.cs @@ -144,10 +144,11 @@ namespace Results AllItems.Add(new WMeterRsltItemSpec(ItemID.Separator, "Separator", "", Quantity.String, ItemCategory.Other, (w, t, u, f, p) => string.Empty)); /// Common - AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_name, Strings.Test + "()", Quantity.String, ItemCategory.TestData, (w, t, u, f, p) => FormatStr(f, (w.GetTestRslt(t) == null) ? "" : w.GetTestRslt(t).Name()))); - AllItems.Add(new WMeterRsltItemSpec(ItemID.Procedure_name, Strings.Procedure, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.ProcedureName()))); - AllItems.Add(new WMeterRsltItemSpec(ItemID.Batch_number, Strings.Batch_nr, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.BatchNr()))); - AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_method, Strings.Test_method + "()", Quantity.String, ItemCategory.TestData, (w, t, u, f, p) => FormatStr(f, (w.GetTestRslt(t) == null) ? "" : w.GetTestRslt(t).Method()))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_name, Strings.Test + "()", Quantity.String, ItemCategory.TestData, (w, t, u, f, p) => FormatStr(f, (w.GetTestRslt(t) == null) ? "" : w.GetTestRslt(t).Name()))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Procedure_name, Strings.Procedure, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.ProcedureName()))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Proc_description, Strings.Procedure_description, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.Batch.ProcedureDescription))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Batch_number, Strings.Batch_nr, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.BatchNr()))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_method, Strings.Test_method + "()", Quantity.String, ItemCategory.TestData, (w, t, u, f, p) => FormatStr(f, (w.GetTestRslt(t) == null) ? "" : w.GetTestRslt(t).Method()))); /// /// Volume @@ -375,8 +376,14 @@ namespace Results AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state_aux, Strings.EndState_aux, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.EndStateAux))); /// Batch info - AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_bench_ID, Strings.Bench, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.Batch.TestBenchId.ToString()))); - AllItems.Add(new WMeterRsltItemSpec(ItemID.Program_version, Strings.Ver, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.Batch.ProgramVersion))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Bench_ID, Strings.Bench_ID, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.Batch.TestBenchId.ToString()))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Bench_name, Strings.Bench_name, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, !string.IsNullOrEmpty(w.Batch.TestBenchName) ? w.Batch.TestBenchName : ""))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Bench_address1, Strings.Address + " 1", Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, !string.IsNullOrEmpty(w.Batch.Address1) ? w.Batch.Address1 : ""))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Bench_address2, Strings.Address + " 2", Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, !string.IsNullOrEmpty(w.Batch.Address2) ? w.Batch.Address2 : ""))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Bench_address3, Strings.Address + " 3", Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, !string.IsNullOrEmpty(w.Batch.Address3) ? w.Batch.Address3 : ""))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Bench_address4, Strings.Address + " 4", Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, !string.IsNullOrEmpty(w.Batch.Address4) ? w.Batch.Address4 : ""))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Bench_address5, Strings.Address + " 5", Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, !string.IsNullOrEmpty(w.Batch.Address5) ? w.Batch.Address5 : ""))); + AllItems.Add(new WMeterRsltItemSpec(ItemID.Program_version, Strings.Ver, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.Batch.ProgramVersion))); AllItems.Add(new WMeterRsltItemSpec(ItemID.User_nr, Strings.User_nr, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.Batch.UserNumber))); AllItems.Add(new WMeterRsltItemSpec(ItemID.User_name, Strings.User, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, Users.Entities.User.EncodedStrToUserName(w.Batch.UserName)))); AllItems.Add(new WMeterRsltItemSpec(ItemID.User_description, Strings.User_description, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, Users.Entities.User.EncodedStrToFullName(w.Batch.UserName)))); diff --git a/TBF/BenchControl/BenchInfo/Extended/Component.cs b/TBF/BenchControl/BenchInfo/Extended/Component.cs index 1e5a87340..2c95e465f 100644 --- a/TBF/BenchControl/BenchInfo/Extended/Component.cs +++ b/TBF/BenchControl/BenchInfo/Extended/Component.cs @@ -23,6 +23,11 @@ namespace TBF.BenchControl.BenchInfo.Extended public string TestBenchName { get { return myCfg.TestBenchName; } } public int TestBenchId { get { return myCfg.TestBenchId; } } + public string Address1 { get { return myCfg.Address1; } } + public string Address2 { get { return myCfg.Address2; } } + public string Address3 { get { return myCfg.Address3; } } + public string Address4 { get { return myCfg.Address4; } } + public string Address5 { get { return myCfg.Address5; } } public RemoteDBUse RemoteDBUse { get { return myCfg.RemoteDBUse; } } public Component() diff --git a/TBF/BenchControl/BenchInfo/Munich/Component.cs b/TBF/BenchControl/BenchInfo/Munich/Component.cs index 370402893..da8f6f8e8 100644 --- a/TBF/BenchControl/BenchInfo/Munich/Component.cs +++ b/TBF/BenchControl/BenchInfo/Munich/Component.cs @@ -23,6 +23,11 @@ namespace TBF.BenchControl.BenchInfo.Munich public string TestBenchName { get { return benchInfoCfg.TestBenchName; } } public int TestBenchId { get { return benchInfoCfg.TestBenchId; } } + public string Address1 { get { return string.Empty; } } + public string Address2 { get { return string.Empty; } } + public string Address3 { get { return string.Empty; } } + public string Address4 { get { return string.Empty; } } + public string Address5 { get { return string.Empty; } } public RemoteDBUse RemoteDBUse { get { return RemoteDBUse.LocalDBOnly; } } public Component() diff --git a/TBF/BenchControl/GenericDevices/IBenchInfo.cs b/TBF/BenchControl/GenericDevices/IBenchInfo.cs index a223e026d..ed2ba6e70 100644 --- a/TBF/BenchControl/GenericDevices/IBenchInfo.cs +++ b/TBF/BenchControl/GenericDevices/IBenchInfo.cs @@ -1,6 +1,5 @@ /// -/// Copyright (c) 2015 Sensus Metering Systems -/// Author: Milan Hanajík +/// Copyright (c) 2015-2018 Sensus Slovensko a.s. /// using Config.Entities; using TBF.BenchControl.Generic; @@ -14,6 +13,11 @@ namespace TBF.BenchControl.GenericDevices { string TestBenchName { get; } int TestBenchId { get; } + string Address1 { get; } + string Address2 { get; } + string Address3 { get; } + string Address4 { get; } + string Address5 { get; } RemoteDBUse RemoteDBUse { get; } } } diff --git a/TBF/BenchControl/Sequences/MainSeq.cs b/TBF/BenchControl/Sequences/MainSeq.cs index 446b5c339..c6134c054 100644 --- a/TBF/BenchControl/Sequences/MainSeq.cs +++ b/TBF/BenchControl/Sequences/MainSeq.cs @@ -1455,7 +1455,13 @@ namespace TBF.BenchControl.Sequences /// Prepare empty results return Results.BatchResults.NewFromProcedure(newBatchNr, (BenchInfo != null) ? BenchInfo.TestBenchId : 1, - Users.GlobalData.CurrentUser.ToEncodedStr(), + (BenchInfo != null) ? BenchInfo.TestBenchName : "testbench", + (BenchInfo != null) ? BenchInfo.Address1 : string.Empty, + (BenchInfo != null) ? BenchInfo.Address2 : string.Empty, + (BenchInfo != null) ? BenchInfo.Address3 : string.Empty, + (BenchInfo != null) ? BenchInfo.Address4 : string.Empty, + (BenchInfo != null) ? BenchInfo.Address5 : string.Empty, + Users.GlobalData.CurrentUser.ToEncodedStr(), Users.GlobalData.CurrentUser.Number, Program.Version, StateMachine.Procedure, @@ -1480,6 +1486,8 @@ namespace TBF.BenchControl.Sequences if (oriBatch == null) return; batchResults.Batch.StartTime = oriBatch.StartTime; + batchResults.Batch.TestBenchId = (BenchInfo != null) ? BenchInfo.TestBenchId : 1; + batchResults.Batch.TestBenchName = (BenchInfo != null) ? BenchInfo.TestBenchName : "testbench"; foreach (var testRslt in batchResults.Batch.TestRslts) {