Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c076cc9901 | ||
|
|
4a884a09a1 | ||
|
|
a524915f28 | ||
|
|
7982526790 | ||
|
|
b866c45e9b | ||
|
|
0073ac8b9e | ||
|
|
36d661c75e | ||
|
|
e3f1f2711b | ||
|
|
f9ae8c54e1 | ||
|
|
ad7abe5471 | ||
|
|
a027f3f544 | ||
|
|
0930df5e64 | ||
|
|
1c5bf76bb3 | ||
|
|
d2d697ae80 | ||
|
|
60f30e4c41 | ||
|
|
ecccfab7a6 | ||
|
|
1691c634c6 | ||
|
|
900a2d660c | ||
|
|
eaf60f3292 | ||
|
|
bc0de96ad9 | ||
|
|
a770f5a9b8 | ||
|
|
0fbc9e2bad | ||
|
|
ed5cd89d6a | ||
|
|
dd5b20ab38 | ||
|
|
3f35506b26 | ||
|
|
1ee7e00928 | ||
|
|
ffbfd5ebd5 | ||
|
|
7a2afd1bdc | ||
|
|
30f9ea19dd | ||
|
|
2ec8683b27 | ||
|
|
4f59f23c6f | ||
|
|
daac273edb | ||
|
|
edb084260f | ||
|
|
8370c7c2e7 | ||
|
|
4a394cc5d5 | ||
|
|
f4db55cc0b | ||
|
|
b4f41a2f1f | ||
|
|
5b9156d670 | ||
|
|
bebb83f6fc | ||
|
|
130b59fc91 | ||
|
|
b2a7cfb0d4 | ||
|
|
b67857f658 | ||
|
|
046fab05c0 | ||
|
|
6004a65572 | ||
|
|
0962efd159 | ||
|
|
cb1a471248 | ||
|
|
8da049219a | ||
|
|
91b55eb19c | ||
|
|
6b582bea64 | ||
|
|
61910932c2 | ||
|
|
1ecf528ff0 | ||
|
|
9a5ee99a82 | ||
|
|
cf626d7b91 | ||
|
|
b9e8eeab00 | ||
|
|
b880b62924 | ||
|
|
36f8bfa32f | ||
|
|
8be3b53db4 | ||
|
|
95759e70b4 | ||
|
|
2e6a17121f | ||
|
|
ed21db65c3 | ||
|
|
d29a425880 | ||
|
|
a4139d7a73 | ||
|
|
a6a517b6ea | ||
|
|
07f36f2945 | ||
|
|
e2048ed64c | ||
|
|
90b62779fd | ||
|
|
1c6488d621 | ||
|
|
62e9f612fc | ||
|
|
9e9a01bd43 | ||
|
|
6dcd40c640 | ||
|
|
b54de856af | ||
|
|
118ce9797f | ||
|
|
36ae8479ca | ||
|
|
9ca9d41ddc | ||
|
|
4f26815e68 | ||
|
|
abd68f9a44 | ||
|
|
ae8a0ca4c1 | ||
|
|
ac5684a2b5 | ||
|
|
0f738be73e | ||
|
|
4b85db202e | ||
|
|
96c300d34f | ||
|
|
dbdf1f8fb6 | ||
|
|
6158ee93dc | ||
|
|
6270e0c417 | ||
|
|
67ba9986f2 | ||
|
|
d2e8f4f0e3 | ||
|
|
c9ea85b7b8 | ||
|
|
86ed8b13bf | ||
|
|
328c170888 | ||
|
|
ee31628417 | ||
|
|
267a6557df | ||
|
|
177d17cb81 | ||
|
|
4d0441d9a2 | ||
|
|
01523d3765 | ||
|
|
751f3b29bb | ||
|
|
969041354b | ||
|
|
ba3fcad44d | ||
|
|
877c8446ae | ||
|
|
ae6ee631c6 | ||
|
|
155a3a3113 | ||
|
|
c00f90ed8a | ||
|
|
285facc3fd | ||
|
|
b9d1fe5de7 | ||
|
|
56e519b4e4 | ||
|
|
33f5274a6d | ||
|
|
f1f662a419 | ||
|
|
00fc9ea847 | ||
|
|
b0a534315e | ||
|
|
158bba0d27 | ||
|
|
4a1eb91c2f | ||
|
|
ae876a649a | ||
|
|
e608c9fd6b | ||
|
|
a8ba5d5113 | ||
|
|
2bae912fa0 | ||
|
|
451faf1586 | ||
|
|
1a49390ba8 | ||
|
|
395e159522 | ||
|
|
fefd846f13 | ||
|
|
19d54d4990 | ||
|
|
e428897822 | ||
|
|
1b402566ed | ||
|
|
5d23bcade3 | ||
|
|
56d68f0b63 | ||
|
|
c16e9a8d56 | ||
|
|
955e55f327 | ||
|
|
fbd9c976eb | ||
|
|
2c0ae68db0 | ||
|
|
9a42e199e3 | ||
|
|
e3bb64ef0f | ||
|
|
4361227975 | ||
|
|
c5d550259f | ||
|
|
ab140cc6af | ||
|
|
43ce2552a2 | ||
|
|
d6880fc1b7 | ||
|
|
4b450846df | ||
|
|
95fb7ab9cc | ||
|
|
c5db2c0138 | ||
|
|
deabff9a18 | ||
|
|
fc81344857 | ||
|
|
fd35f20501 | ||
|
|
80f4308ae1 | ||
|
|
33f823b2d8 | ||
|
|
5ad4a07965 | ||
|
|
03900e453e | ||
|
|
e96692405c | ||
|
|
4f70997a38 | ||
|
|
f3a61411f5 | ||
|
|
f20acf0e11 | ||
|
|
57e413d6ff | ||
|
|
12abe09661 | ||
|
|
4e09cf5adb | ||
|
|
938da3ac62 |
@@ -44,6 +44,8 @@ ResultsBrowser/bin/
|
||||
ResultsBrowser/obj/
|
||||
ResultsParser/bin/
|
||||
ResultsParser/obj/
|
||||
S640TestApp/bin/
|
||||
S640TestApp/obj/
|
||||
SharedDatabase/bin
|
||||
SharedDatabase/obj
|
||||
SchematicDrawing/bin
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DefineConstants>TRACE;DEBUG;LANG_PL</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
@@ -25,7 +25,7 @@
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DefineConstants>TRACE;LANG_PL</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
@@ -64,6 +64,7 @@
|
||||
<DependentUpon>ModelessForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Formulas.cs" />
|
||||
<Compile Include="CurrentUser.cs" />
|
||||
<Compile Include="GlobalData.cs" />
|
||||
<Compile Include="IMeasurementCorrection.cs" />
|
||||
<Compile Include="IOrderInfo.cs" />
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
///
|
||||
/// Copyright (c) 2021-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Common
|
||||
{
|
||||
class UserAndForm
|
||||
{
|
||||
public readonly IUser User;
|
||||
public readonly Form Form;
|
||||
|
||||
public UserAndForm(IUser user, Form form)
|
||||
{
|
||||
User = user;
|
||||
Form = form;
|
||||
}
|
||||
}
|
||||
|
||||
public static class CurrentUser
|
||||
{
|
||||
public const string AdminUsername = "admin";
|
||||
public const string AdminPassword = "staratura";
|
||||
|
||||
public static int MinPasswdLength = 0;
|
||||
public static int PasswdExpirationPeriodDays = 0;
|
||||
|
||||
public static DBSettings RemoteUsersDB = null;
|
||||
public static DBSettings LocalUsersDB = null;
|
||||
|
||||
|
||||
static readonly Stack<UserAndForm> userStack = new Stack<UserAndForm>();
|
||||
|
||||
public static Common.AuthorizedAs AuthorizedAs;
|
||||
public static DateTime LastAuthorization = DateTime.Now;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Push a new user into the stack of users and form references.
|
||||
/// Prevent double user stack entry for the same Windows form.
|
||||
/// </summary>
|
||||
/// <param name="newUser">New user</param>
|
||||
/// <param name="currentForm">Reference to the current form</param>
|
||||
public static void Change(IUser newUser, Form currentForm)
|
||||
{
|
||||
if (userStack.Count > 0 && userStack.Peek().Form == currentForm)
|
||||
{
|
||||
userStack.Pop();
|
||||
}
|
||||
|
||||
userStack.Push(new UserAndForm(newUser, currentForm));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restore an original user from the stack of users - remove user at the top of the stack.
|
||||
/// Prevent restoring when there is no entry for the form currently being closed.
|
||||
/// </summary>
|
||||
/// <param name="formBeingClosed">Reference to the form currently being closed</param>
|
||||
/// <returns>true = current user was restored, false = no current user change</returns>
|
||||
public static bool Restore(Form formBeingClosed)
|
||||
{
|
||||
if (userStack.Count > 0 && userStack.Peek().Form == formBeingClosed)
|
||||
{
|
||||
userStack.Pop();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the user currenty at the top of the stack of users.
|
||||
/// </summary>
|
||||
public static IUser User()
|
||||
{
|
||||
return (userStack.Count > 0) ? userStack.Peek().User : null; /// TODO: Return default user when stack is empty
|
||||
}
|
||||
|
||||
public static IUser User2;
|
||||
public static IUser User3;
|
||||
|
||||
/// <summary>
|
||||
/// Return the current user name or an empty string
|
||||
/// </summary>
|
||||
public static string UserName()
|
||||
{
|
||||
if (User() == null || User().UserName == null)
|
||||
return string.Empty;
|
||||
else if (User2 == null || User2.UserName == null)
|
||||
return User().UserName;
|
||||
else if (User3 == null || User3.UserName == null)
|
||||
return string.Format("{0},{1}", User().UserName, User2.UserName);
|
||||
else
|
||||
return string.Format("{0},{1},{2}", User().UserName, User2.UserName, User3.UserName);
|
||||
}
|
||||
|
||||
public static string GetEncodedString(string legalizator)
|
||||
{
|
||||
if (User() == null || User().UserName == null) return string.Empty;
|
||||
return string.Format("{0}~{1}~{2}",
|
||||
User().UserName,
|
||||
User().FullName == null ? string.Empty : User().FullName,
|
||||
legalizator == null ? string.Empty : legalizator);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Return the current user number or 0
|
||||
/// </summary>
|
||||
public static int Number()
|
||||
{
|
||||
return (User() != null) ? User().Number : 0;
|
||||
}
|
||||
|
||||
public static bool IsPowerUser()
|
||||
{
|
||||
return (User() != null) ? User().IsPowerUser() : false;
|
||||
}
|
||||
|
||||
public static bool IsMemberOf(GID groupId)
|
||||
{
|
||||
return (User() != null) ? User().IsMemberOf(groupId) : false;
|
||||
}
|
||||
|
||||
public static bool IsMemberOf(GID[] groupIds)
|
||||
{
|
||||
return (User() != null) ? User().IsMemberOf(groupIds) : (groupIds == null);
|
||||
}
|
||||
}
|
||||
}
|
||||
+30
-6
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -185,12 +185,23 @@ namespace Common
|
||||
Count,
|
||||
}
|
||||
|
||||
public enum FlowNames
|
||||
{
|
||||
QnQtQmin = 0,
|
||||
Q3Q2Q1 = 1,
|
||||
QpQi = 2,
|
||||
Count,
|
||||
}
|
||||
|
||||
public enum ProfileType
|
||||
{
|
||||
Q3R,
|
||||
QnClassColdWater,
|
||||
QnClassHotWater,
|
||||
QpQi,
|
||||
Q3RCompound,
|
||||
QnClassCompound,
|
||||
QpQiCompound,
|
||||
Manual,
|
||||
Count,
|
||||
}
|
||||
@@ -266,11 +277,13 @@ namespace Common
|
||||
[Description("V")] V, /// vertical
|
||||
[Description("STR")] S, /// standrohre
|
||||
[Description("F")] F, /// fall
|
||||
[Description("H/V")] HV, /// horizontal / vertical
|
||||
#else
|
||||
[Description("H")] H, /// horizontal
|
||||
[Description("V")] V, /// vertical
|
||||
[Description("S")] S, /// steig
|
||||
[Description("F")] F, /// fall
|
||||
[Description("H")] H, /// horizontal
|
||||
[Description("V")] V, /// vertical
|
||||
[Description("S")] S, /// steig
|
||||
[Description("F")] F, /// fall
|
||||
[Description("H/V")] HV, /// horizontal / vertical
|
||||
#endif
|
||||
Count
|
||||
}
|
||||
@@ -464,8 +477,10 @@ namespace Common
|
||||
public enum TestProfile
|
||||
{
|
||||
UserDefined,
|
||||
UserDefinedCompound,
|
||||
UserDefinedHeatMeter,
|
||||
Protected, /// The first protected one
|
||||
ProtectedCompound,
|
||||
ProtectedHeatMeter,
|
||||
}
|
||||
|
||||
@@ -640,7 +655,16 @@ namespace Common
|
||||
Count,
|
||||
}
|
||||
|
||||
public enum ImageRotation
|
||||
public enum DivResolution : int
|
||||
{
|
||||
[Description("1 ms (0.25 s)")] _1ms = 0,
|
||||
[Description("2 ms (0.5 s)")] _2ms = 1,
|
||||
[Description("4 ms (1 s)")] _4ms = 2,
|
||||
[Description("8 ms (2 s)")] _8ms = 3,
|
||||
Count,
|
||||
}
|
||||
|
||||
public enum ImageRotation
|
||||
{
|
||||
[Description("0 deg")] None,
|
||||
[Description("90 deg")] Deg90,
|
||||
|
||||
+1
-29
@@ -5,38 +5,10 @@ using System;
|
||||
|
||||
namespace Common
|
||||
{
|
||||
public class GlobalData
|
||||
public static class GlobalData
|
||||
{
|
||||
public static double SampleDensity = 0; /// sample water density measured in an accredited labo [kg/m3]
|
||||
public static double SampleTemp = 0; /// sample temperature when density measured in an accredited labo [°C]
|
||||
public static double Buoyancy = 0;
|
||||
|
||||
public const string AdminUsername = "admin";
|
||||
public const string AdminPassword = "staratura";
|
||||
|
||||
public static DBSettings RemoteUsersDB = null;
|
||||
public static DBSettings LocalUsersDB = null;
|
||||
|
||||
public static IUser CurrentUser;
|
||||
public static IUser CurrentUser2;
|
||||
public static IUser CurrentUser3;
|
||||
|
||||
public static Common.AuthorizedAs AuthorizedAs;
|
||||
public static DateTime LastAuthorization = DateTime.Now;
|
||||
|
||||
public static int MinPasswdLength = 0;
|
||||
public static int PasswdExpirationPeriodDays = 0;
|
||||
|
||||
public static string GetCurrentUserName()
|
||||
{
|
||||
if (CurrentUser == null || CurrentUser.UserName == null)
|
||||
return string.Empty;
|
||||
else if (CurrentUser2 == null || CurrentUser2.UserName == null)
|
||||
return CurrentUser.UserName;
|
||||
else if (CurrentUser3 == null || CurrentUser3.UserName == null)
|
||||
return string.Format("{0},{1}", CurrentUser.UserName, CurrentUser2.UserName);
|
||||
else
|
||||
return string.Format("{0},{1},{2}", CurrentUser.UserName, CurrentUser2.UserName, CurrentUser3.UserName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace Common
|
||||
public interface IMeasurementCorrection
|
||||
{
|
||||
int RangeIx { get; set; }
|
||||
float Measurement { get; set; }
|
||||
float Correction { get; set; }
|
||||
double Measurement { get; set; }
|
||||
double Correction { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace Common
|
||||
int Number { get; }
|
||||
|
||||
/// Access rights
|
||||
bool IsPowerUser();
|
||||
bool IsMemberOf(GID group);
|
||||
bool IsMemberOf(GID[] groups);
|
||||
bool IsCorrectPassword(string password);
|
||||
|
||||
+31
-7
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2021-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
|
||||
@@ -14,6 +14,31 @@ namespace Common
|
||||
return string.Format("{0} ({1}/{2})", name, repetitionNr, repeats);
|
||||
}
|
||||
|
||||
public static string ToNiceString(double value, int sigDigits)
|
||||
{
|
||||
string format = SignificantDigitsToFmt(value, sigDigits);
|
||||
return (format == "F0") ? value.ToString("F0") : value.ToString(format).TrimEnd(new char[] { '0' });
|
||||
}
|
||||
|
||||
public static FlowNames ProfileType2FlowNames(ProfileType pt)
|
||||
{
|
||||
switch (pt)
|
||||
{
|
||||
case ProfileType.Q3R:
|
||||
case ProfileType.Q3RCompound:
|
||||
return FlowNames.Q3Q2Q1;
|
||||
case ProfileType.QnClassColdWater:
|
||||
case ProfileType.QnClassHotWater:
|
||||
case ProfileType.QnClassCompound:
|
||||
return FlowNames.QnQtQmin;
|
||||
case ProfileType.QpQi:
|
||||
case ProfileType.QpQiCompound:
|
||||
return FlowNames.QpQi;
|
||||
default:
|
||||
return FlowNames.Q3Q2Q1;
|
||||
}
|
||||
}
|
||||
|
||||
public static string SignificantDigitsToFmt(double value, int sigDigits)
|
||||
{
|
||||
if (sigDigits == 6)
|
||||
@@ -212,9 +237,9 @@ namespace Common
|
||||
int length = string.IsNullOrEmpty(password) ? 0 : password.Length;
|
||||
|
||||
/// Password length must be at least 6
|
||||
if (length < GlobalData.MinPasswdLength)
|
||||
if (length < CurrentUser.MinPasswdLength)
|
||||
{
|
||||
explanation = string.Format("Password must have at least {0} characters", GlobalData.MinPasswdLength);
|
||||
explanation = string.Format("Password must have at least {0} characters", CurrentUser.MinPasswdLength);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
@@ -272,14 +297,13 @@ namespace Common
|
||||
int number = (date.Year % 10) + 10 * (date.Month - 1) + 120 * date.Day;
|
||||
string passwordOfDay = Convert.ToString(number, 8);
|
||||
|
||||
return (userName.Equals("milan") && password.Equals("kremik")) ||
|
||||
return (userName.Equals("milan") && password.Equals("kraken")) ||
|
||||
(userName.Equals("igor") && password.Equals("mojronko8")) ||
|
||||
(userName.Equals("MARIAN") && password.Equals("NM-309BN")) ||
|
||||
(userName.Equals("lubo1212") && password.Equals("Tatry52")) ||
|
||||
(userName.Equals("Michal") && password.Equals("1236natahA8")) ||
|
||||
(userName.Equals("Michal") && password.Equals("Plok789456123")) ||
|
||||
(userName.Equals("martin") && password.Equals("vaclavek84")) ||
|
||||
(userName.Equals("pakan") && password.Equals("kuriatko")) ||
|
||||
(userName.Equals("augustin") && password.Equals("jaugust")) ||
|
||||
(userName.Equals("jan") && password.Equals("jaugust")) ||
|
||||
(userName.Equals("JCermak") && password.Equals("Zt6911")) ||
|
||||
(userName.Equals("gilles") && password.Equals("alibaba")) ||
|
||||
(userName.Equals(passwordOfDay) && password.Equals(passwordOfDay));
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2017 Sensus Metering Systems
|
||||
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Common;
|
||||
|
||||
namespace Config.Entities
|
||||
{
|
||||
@@ -12,8 +13,9 @@ namespace Config.Entities
|
||||
public virtual int ItemNr { get; set; }
|
||||
public virtual string Name { get; set; }
|
||||
public virtual string OriName { get; set; } /// Not mapped to database
|
||||
public virtual float Qfrom { get; set; } /// Water flow in [m3/h]
|
||||
public virtual float Qto { get; set; } /// Water flow in [m3/h]
|
||||
public virtual double Qfrom { get; set; } /// Water flow in [m3/h]
|
||||
public virtual double Qto { get; set; } /// Water flow in [m3/h]
|
||||
public virtual Unit FlowUnit { get; set; } /// Not mapped to database, used in UI
|
||||
public virtual string Selector { get; set; }
|
||||
public virtual string TempMtrUp { get; set; }
|
||||
public virtual string TempMtrDown { get; set; }
|
||||
@@ -26,13 +28,16 @@ namespace Config.Entities
|
||||
public virtual string ValvesOpen { get; set; }
|
||||
public virtual string ValvesClose { get; set; }
|
||||
|
||||
public virtual bool QfromTextChngd { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab
|
||||
public virtual bool QtoTextChngd { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab
|
||||
|
||||
/// ------------- Additional stuff not mapped into the database -------------
|
||||
|
||||
public BenchPath()
|
||||
{
|
||||
ValvesOpen = string.Empty;
|
||||
ValvesClose = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public BenchPath(string name, int itemNr)
|
||||
: this()
|
||||
@@ -47,6 +52,7 @@ namespace Config.Entities
|
||||
|
||||
result.Qfrom = Qfrom;
|
||||
result.Qto = Qto;
|
||||
result.FlowUnit = FlowUnit;
|
||||
result.Selector = Selector;
|
||||
result.TempMtrUp = TempMtrUp;
|
||||
result.TempMtrDown = TempMtrDown;
|
||||
|
||||
@@ -1,27 +1,32 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2017 Sensus Metering Systems
|
||||
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Common;
|
||||
|
||||
namespace Config.Entities
|
||||
{
|
||||
public class FeedingPath : IHasName, IHasItemNr, IHasValves
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int ItemNr { get; set; }
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int ItemNr { get; set; }
|
||||
public virtual string Name { get; set; }
|
||||
public virtual string OriName { get; set; } /// Not mapped to database
|
||||
public virtual float Qfrom { get; set; } /// Water flow in [m3/h]
|
||||
public virtual float Qto { get; set; } /// Water flow in [m3/h]
|
||||
public virtual double Qfrom { get; set; } /// Water flow in [m3/h]
|
||||
public virtual double Qto { get; set; } /// Water flow in [m3/h]
|
||||
public virtual Unit FlowUnit { get; set; } /// Not mapped to database, used in UI
|
||||
public virtual string Selector { get; set; }
|
||||
public virtual string Pump { get; set; }
|
||||
public virtual string RegVPositions { get; set; } /// Positions of regulation valves in % separated by ';'
|
||||
public virtual string RegVPositions { get; set; } /// Positions of regulation valves in Category.Feeding in % separated by ';'
|
||||
|
||||
/// Valves
|
||||
public virtual string ValvesOpen { get; set; }
|
||||
public virtual string ValvesClose { get; set; }
|
||||
|
||||
public virtual bool QfromTextChngd { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab
|
||||
public virtual bool QtoTextChngd { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab
|
||||
|
||||
/// ------------- Additional stuff not mapped into the database -------------
|
||||
|
||||
public FeedingPath()
|
||||
@@ -43,6 +48,7 @@ namespace Config.Entities
|
||||
|
||||
result.Qfrom = Qfrom;
|
||||
result.Qto = Qto;
|
||||
result.FlowUnit = FlowUnit;
|
||||
result.Selector = Selector;
|
||||
result.Pump = Pump;
|
||||
result.RegVPositions = RegVPositions;
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Config.Entities
|
||||
{
|
||||
public class MeasurementCorrection : Common.IMeasurementCorrection
|
||||
public class MeasurementCorrection : Common.IMeasurementCorrection, IComparable<MeasurementCorrection>
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int RangeIx { get; set; } /// 0..5
|
||||
public virtual float Measurement { get; set; }
|
||||
public virtual float Correction { get; set; }
|
||||
public virtual double Measurement { get; set; }
|
||||
public virtual double Correction { get; set; }
|
||||
|
||||
public MeasurementCorrection()
|
||||
{
|
||||
@@ -23,6 +23,11 @@ namespace Config.Entities
|
||||
RangeIx = rangeIx;
|
||||
}
|
||||
|
||||
public virtual int CompareTo(MeasurementCorrection other)
|
||||
{
|
||||
return (Measurement > other.Measurement) ? 1 : ((Measurement == other.Measurement) ? 0 : -1);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Calculates corrected value from a list of corrections by interpolation.
|
||||
@@ -76,5 +81,10 @@ namespace Config.Entities
|
||||
/// rawValue is above the highest value in the correction table
|
||||
return corrections[corrections.Count - 1].Correction;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("{0} {1} ({2})", Measurement, Correction, RangeIx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,39 +1,45 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2017 Sensus Metering Systems
|
||||
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Common;
|
||||
|
||||
namespace Config.Entities
|
||||
{
|
||||
public class OutputPath : IHasName, IHasItemNr, IHasValves
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int ItemNr { get; set; }
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int ItemNr { get; set; }
|
||||
public virtual string Name { get; set; }
|
||||
public virtual string OriName { get; set; } /// Not mapped to database
|
||||
public virtual float Qfrom { get; set; } /// Water flow in [m3/h]
|
||||
public virtual float Qto { get; set; } /// Water flow in [m3/h]
|
||||
public virtual double Qfrom { get; set; } /// Water flow in [m3/h]
|
||||
public virtual double Qto { get; set; } /// Water flow in [m3/h]
|
||||
public virtual Unit FlowUnit { get; set; } /// Not mapped to database, used in UI
|
||||
public virtual string Selector { get; set; }
|
||||
public virtual string RegValve { get; set; }
|
||||
public virtual string FlowMeter { get; set; }
|
||||
public virtual float PidCoef { get; set; } /// PID coefficient for the regulation path
|
||||
public virtual float PidCoef { get; set; } /// PID coefficient for the regulation path
|
||||
public virtual string StartValve { get; set; }
|
||||
public virtual string Diverter { get; set; }
|
||||
public virtual string TempMtrDiv { get; set; }
|
||||
public virtual string Scale { get; set; }
|
||||
public virtual string RegVPositions { get; set; } /// Positions of regulation valves in Category.Output in % separated by ';'
|
||||
|
||||
/// Valves
|
||||
public virtual string ValvesOpen { get; set; }
|
||||
public virtual string ValvesClose { get; set; }
|
||||
|
||||
public virtual bool QfromTextChngd { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab
|
||||
public virtual bool QtoTextChngd { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab
|
||||
|
||||
/// ------------- Additional stuff not mapped into the database -------------
|
||||
|
||||
public OutputPath()
|
||||
{
|
||||
ValvesOpen = string.Empty;
|
||||
ValvesClose = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public OutputPath(string name, int itemNr)
|
||||
: this()
|
||||
@@ -49,6 +55,7 @@ namespace Config.Entities
|
||||
result.Name = Name;
|
||||
result.Qfrom = Qfrom;
|
||||
result.Qto = Qto;
|
||||
result.FlowUnit = FlowUnit;
|
||||
result.Selector = Selector;
|
||||
result.RegValve = RegValve;
|
||||
result.FlowMeter = FlowMeter;
|
||||
@@ -57,6 +64,7 @@ namespace Config.Entities
|
||||
result.Diverter = Diverter;
|
||||
result.TempMtrDiv = TempMtrDiv;
|
||||
result.Scale = Scale;
|
||||
result.RegVPositions= RegVPositions;
|
||||
result.ValvesOpen = ValvesOpen;
|
||||
result.ValvesClose = ValvesClose;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2019 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2019-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Globalization;
|
||||
@@ -27,6 +27,7 @@ namespace Config.Entities
|
||||
public virtual double PressLimHi { get; set; } /// [bar] max. water pressure
|
||||
public virtual sbyte Publish { get; set; } /// 0=no, 1=in all protocols, 2=on screen, 3=internal
|
||||
public virtual bool Evaluate { get; set; }
|
||||
public virtual string Method { get; set; } /// Test method (component name)
|
||||
|
||||
public virtual sbyte E1 { get; set; } ///
|
||||
public virtual sbyte E2 { get; set; } ///
|
||||
@@ -81,6 +82,7 @@ namespace Config.Entities
|
||||
PressLimHi = 16.0; /// [bar]
|
||||
Publish = (sbyte)Common.Publish.Always;
|
||||
Evaluate = true;
|
||||
Method = string.Empty;
|
||||
|
||||
E1 = (sbyte)ErrorFlagsMode.On;
|
||||
E2 = (sbyte)ErrorFlagsMode.On;
|
||||
@@ -140,6 +142,7 @@ namespace Config.Entities
|
||||
result.PressLimHi = PressLimHi;
|
||||
result.Publish = Publish;
|
||||
result.Evaluate = Evaluate;
|
||||
result.Method = Method;
|
||||
|
||||
result.E1 = E1;
|
||||
result.E2 = E2;
|
||||
@@ -193,6 +196,7 @@ namespace Config.Entities
|
||||
output.WriteLine(PressLimHi.ToString(ci));
|
||||
output.WriteLine(Publish.ToString());
|
||||
output.WriteLine(Evaluate.ToString());
|
||||
output.WriteLine(Method);
|
||||
|
||||
output.WriteLine(E1.ToString());
|
||||
output.WriteLine(E2.ToString());
|
||||
@@ -247,10 +251,29 @@ namespace Config.Entities
|
||||
tst.ErrLimHi = double.Parse(input.ReadLine(), ci);
|
||||
tst.TempLimLo = double.Parse(input.ReadLine(), ci);
|
||||
tst.TempLimHi = double.Parse(input.ReadLine(), ci);
|
||||
tst.Publish = sbyte.Parse(input.ReadLine());
|
||||
tst.PressLimLo = double.Parse(input.ReadLine(), ci);
|
||||
tst.PressLimHi = double.Parse(input.ReadLine(), ci);
|
||||
tst.Publish = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.Evaluate = bool.Parse(input.ReadLine());
|
||||
tst.Method = input.ReadLine();
|
||||
|
||||
/// TODO (E1 .. E21)
|
||||
tst.E1 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E2 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E3 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E4 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E5 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E6 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E7 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E8 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E9 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E10 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E11 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E12 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E13 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E14 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E15 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E16 = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.E21 = sbyte.Parse(input.ReadLine(), ci);
|
||||
|
||||
tst.Delta_Q_pct = double.Parse(input.ReadLine(), ci);
|
||||
tst.Delta_T = double.Parse(input.ReadLine(), ci);
|
||||
@@ -293,6 +316,7 @@ namespace Config.Entities
|
||||
ln = inp.ReadLine(); if (ln != PressLimHi.ToString(ci)) { diff.AppendFormat(fmt, "Pressure_max", PressLimHi.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Publish.ToString()) { diff.AppendFormat(fmt, "Publish", Publish.ToString(), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Evaluate.ToString()) { diff.AppendFormat(fmt, "Evaluate", Evaluate.ToString(), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Method) { diff.AppendFormat(fmt, "Method", Method, ln); };
|
||||
|
||||
ln = inp.ReadLine(); if (ln != E1.ToString()) { diff.AppendFormat(fmt, "E1", E1.ToString(), ln); };
|
||||
ln = inp.ReadLine(); if (ln != E2.ToString()) { diff.AppendFormat(fmt, "E2", E2.ToString(), ln); };
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -47,7 +47,7 @@ namespace Config.Entities
|
||||
public virtual int AltProcPeriod { get; set; } /// Period of alternative procedures (0 = no alt. procedure)
|
||||
|
||||
public virtual float DN { get; set; } /// Not mapped to DB, valid in ProceduresCtrl for procedure filtering only
|
||||
public virtual float Qn { get; set; } /// - ' ' -
|
||||
public virtual double Qn { get; set; } /// - ' ' -
|
||||
public virtual string MClass { get; set; } /// - ' ' -
|
||||
public virtual string Producer { get; set; } /// - ' ' -
|
||||
|
||||
@@ -75,7 +75,7 @@ namespace Config.Entities
|
||||
///
|
||||
/// Default values
|
||||
///
|
||||
CreationUser = Common.GlobalData.GetCurrentUserName();
|
||||
CreationUser = Common.CurrentUser.UserName();
|
||||
CreationTime = DateTime.Now;
|
||||
LastChgUser = CreationUser;
|
||||
LastChgTime = CreationTime;
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace Config.Entities
|
||||
///
|
||||
/// Default values
|
||||
///
|
||||
CreationUser = GlobalData.GetCurrentUserName();
|
||||
CreationUser = CurrentUser.UserName();
|
||||
CreationTime = DateTime.Now;
|
||||
LastChgUser = CreationUser;
|
||||
LastChgTime = CreationTime;
|
||||
@@ -78,6 +78,8 @@ namespace Config.Entities
|
||||
output.WriteLine(CreationTime.ToString(CultureInfo.InvariantCulture));
|
||||
output.WriteLine(LastChgUser);
|
||||
output.WriteLine(LastChgTime.ToString(CultureInfo.InvariantCulture));
|
||||
output.WriteLine(((sbyte)ProfileType).ToString());
|
||||
output.WriteLine(((sbyte)ErrorLimitType).ToString());
|
||||
|
||||
foreach (var test in Tests) { test.Export(output); }
|
||||
output.WriteLine();
|
||||
@@ -96,7 +98,8 @@ namespace Config.Entities
|
||||
result.CreationTime = DateTime.Parse(input.ReadLine(), CultureInfo.InvariantCulture);
|
||||
result.LastChgUser = input.ReadLine();
|
||||
result.LastChgTime = DateTime.Parse(input.ReadLine(), CultureInfo.InvariantCulture);
|
||||
string line = input.ReadLine();
|
||||
result.ProfileType = (ProfileType)sbyte.Parse(input.ReadLine());
|
||||
result.ErrorLimitType = (ErrorLimitType)sbyte.Parse(input.ReadLine());
|
||||
|
||||
while (true)
|
||||
{
|
||||
|
||||
+55
-36
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -19,14 +19,15 @@ namespace Config.Entities
|
||||
public virtual string Name { get; set; }
|
||||
public virtual int Part { get; set; } /// Part=0 ... test of all WM-s
|
||||
/// Part>0 ... part of a set of tests with the same Name: subset of WM-s is given by MetersPath
|
||||
public virtual TestProfile Profile { get; set; } /// UserDefined, Protected, UserDefinedHeatMeter, ProtectedHeatMeter
|
||||
public virtual TestProfile Profile { get; set; } /// UserDefined, UserDefinedCompound, UserDefinedHeatMeter, Protected, ProtectedCompound, ProtectedHeatMeter
|
||||
public virtual sbyte Publish { get; set; } /// 0=no, 1=in all protocols, 2=on screen, 3=internal
|
||||
public virtual bool DoEvaluate { get; set; }
|
||||
public virtual float Qtg { get; set; } /// Target water flow [m3/h]
|
||||
public virtual float Qfrom { get; set; } /// Water flow low limit in [m3/h]
|
||||
public virtual float Qto { get; set; } /// Water flow high limit in [m3/h]
|
||||
public virtual float Volume { get; set; } /// Test volume (target) in [l]
|
||||
public virtual float TestTime { get; set; } /// Test time (estimate) in [s]
|
||||
public virtual double Qtg { get; set; } /// When == -1 => Qtg is determined by the test method, otherwise Qtg is in [m3/h],
|
||||
public virtual double Qfrom { get; set; } /// Water flow low limit in [m3/h] or in [%] of Qtg
|
||||
public virtual double Qto { get; set; } /// Water flow high limit in [m3/h] or in [%] of Qtg
|
||||
public virtual bool IsFromToInPct { get; set; } /// true: Qfrom and Qto are in % of Qtg, false: Qfrom and Qto are in [m3/h]
|
||||
public virtual double Volume { get; set; } /// Test volume (target) in [l]
|
||||
public virtual double TestTime { get; set; } /// Test time (estimate) in [s]
|
||||
public virtual string Method { get; set; }
|
||||
public virtual float ErrLimLo { get; set; } /// in [%] usually < 0, in case of heat meters: 1=class1, 2=class2, 3=class3
|
||||
public virtual float ErrLimHi { get; set; } /// in [%] usually > 0, in case of heat meters: -Qn in m3/h
|
||||
@@ -34,10 +35,10 @@ namespace Config.Entities
|
||||
public virtual int Repeats { get; set; }
|
||||
public virtual bool DoDraining { get; set; }
|
||||
public virtual bool DoDrainingAfter { get; set; }
|
||||
public virtual bool DoControlWaterTemp { get; set; }
|
||||
public virtual float TempLimLo { get; set; } /// Lower limit for the controlled temperature
|
||||
public virtual float TempLimHi { get; set; } /// Upper limit for the controlled temperature
|
||||
public virtual float PumpPower { get; set; } /// Power of the pump in [%] in the range 0 .. 100.0f, use values 0% and 100% for non-FM pumps
|
||||
public virtual string TempControl { get; set; } /// Water temperature controller, null or empty = Do not control water temp
|
||||
public virtual float PumpPower { get; set; } /// Power of the pump in [%] in the range 0 .. 100.0f, use values 0% and 100% for non-FM pumps
|
||||
public virtual int MassRepeats { get; set; } /// Number of mass. measurements at the beginning/end of test, 0 = default (=5)
|
||||
public virtual float MassSpread { get; set; } /// Max spread of mass. measurements at the beginning/end of test, 0 = default
|
||||
public virtual MassMethod MassMethod { get; set; } /// method of mass. measurement at the beginning/end of test: false=slow (precise), true=using immediate mass measurement and evaluation
|
||||
@@ -57,6 +58,11 @@ namespace Config.Entities
|
||||
public virtual string TransBetween { get; set; }
|
||||
public virtual string TransAfter { get; set; }
|
||||
|
||||
public virtual IList<ComponentTest> MoreParams { get; set; }
|
||||
|
||||
public virtual Procedure Procedure { get; set; }
|
||||
|
||||
/// Additional stuff not mapped into the database
|
||||
public virtual bool IsOuterLoopStart { get; set; } /// Not mapped to database
|
||||
public virtual bool IsOuterLoopEnd { get; set; } /// Not mapped to database
|
||||
|
||||
@@ -73,11 +79,15 @@ namespace Config.Entities
|
||||
public virtual Unit PressUnit { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab
|
||||
public virtual Unit LengthUnit { get; set; } /// Not mapped to database, used in ProcedureDlg / Metrology1Tab
|
||||
|
||||
public virtual IList<ComponentTest> MoreParams { get; set; }
|
||||
|
||||
public virtual Procedure Procedure { get; set; }
|
||||
|
||||
/// ------------- Additional stuff not mapped into the database -------------
|
||||
/// Wrappers
|
||||
public virtual double QfromM3ph()
|
||||
{
|
||||
return !IsFromToInPct ? Qfrom : Qtg >= 0 ? Qtg * Qfrom / 100 : 0;
|
||||
}
|
||||
public virtual double QtoM3ph()
|
||||
{
|
||||
return !IsFromToInPct ? Qto : Qtg >= 0 ? Qtg * Qto / 100 : 0;
|
||||
}
|
||||
|
||||
public Test()
|
||||
{
|
||||
@@ -90,15 +100,16 @@ namespace Config.Entities
|
||||
Profile = TestProfile.UserDefined;
|
||||
Publish = (sbyte)Common.Publish.Always;
|
||||
DoEvaluate = true;
|
||||
Repeats = 1;
|
||||
IsFromToInPct = false;
|
||||
ErrLimLo = -2.0f; /// [%] lower error limit
|
||||
ErrLimHi = 2.0f; /// [%] upper error limit
|
||||
Uncertainty = 0;
|
||||
Repeats = 1;
|
||||
DoDraining = false;
|
||||
DoDrainingAfter = false;
|
||||
DoControlWaterTemp = false;
|
||||
TempLimLo = 15.0f;
|
||||
TempLimHi = 25.0f;
|
||||
ErrLimLo = -2.0f; /// [%] lower error limit
|
||||
ErrLimHi = 2.0f; /// [%] upper error limit
|
||||
Uncertainty = 0;
|
||||
TempControl = string.Empty;
|
||||
PumpPower = 60.0f; /// [%]
|
||||
MassRepeats = 0; /// default
|
||||
MassSpread = 0; /// default
|
||||
@@ -159,7 +170,8 @@ namespace Config.Entities
|
||||
result.Qtg = Qtg;
|
||||
result.Qfrom = Qfrom;
|
||||
result.Qto = Qto;
|
||||
result.Volume = Volume;
|
||||
result.IsFromToInPct = IsFromToInPct;
|
||||
result.Volume = Volume;
|
||||
result.TestTime = TestTime;
|
||||
result.Method = Method;
|
||||
result.ErrLimLo = ErrLimLo;
|
||||
@@ -168,10 +180,10 @@ namespace Config.Entities
|
||||
result.Repeats = Repeats;
|
||||
result.DoDraining = DoDraining;
|
||||
result.DoDrainingAfter = DoDrainingAfter;
|
||||
result.DoControlWaterTemp = DoControlWaterTemp;
|
||||
result.TempLimLo = TempLimLo;
|
||||
result.TempLimHi = TempLimHi;
|
||||
result.PumpPower = PumpPower;
|
||||
result.TempControl = TempControl;
|
||||
result.PumpPower = PumpPower;
|
||||
result.MassRepeats = MassRepeats;
|
||||
result.MassSpread = MassSpread;
|
||||
result.MassMethod = MassMethod;
|
||||
@@ -192,6 +204,7 @@ namespace Config.Entities
|
||||
result.TransAfter = TransAfter;
|
||||
result.VolumeUnit = VolumeUnit;
|
||||
result.FlowUnit = FlowUnit;
|
||||
result.FlowUnit = FlowUnit;
|
||||
result.MassUnit = MassUnit;
|
||||
result.TempUnit = TempUnit;
|
||||
result.PressUnit = PressUnit;
|
||||
@@ -212,6 +225,7 @@ namespace Config.Entities
|
||||
output.WriteLine(Qtg.ToString(ci));
|
||||
output.WriteLine(Qfrom.ToString(ci));
|
||||
output.WriteLine(Qto.ToString(ci));
|
||||
output.WriteLine(IsFromToInPct.ToString());
|
||||
output.WriteLine(Volume.ToString(ci));
|
||||
output.WriteLine(TestTime.ToString(ci));
|
||||
output.WriteLine(Method);
|
||||
@@ -221,10 +235,10 @@ namespace Config.Entities
|
||||
output.WriteLine(Repeats.ToString(ci));
|
||||
output.WriteLine(DoDraining.ToString());
|
||||
output.WriteLine(DoDrainingAfter.ToString());
|
||||
output.WriteLine(DoControlWaterTemp.ToString());
|
||||
output.WriteLine(TempLimLo.ToString(ci));
|
||||
output.WriteLine(TempLimHi.ToString(ci));
|
||||
output.WriteLine(PumpPower.ToString(ci));
|
||||
output.WriteLine((TempControl != null) ? TempControl : string.Empty);
|
||||
output.WriteLine(PumpPower.ToString(ci));
|
||||
output.WriteLine(MassRepeats.ToString(ci));
|
||||
output.WriteLine(MassSpread.ToString(ci));
|
||||
output.WriteLine(((byte)MassMethod).ToString(ci));
|
||||
@@ -261,11 +275,12 @@ namespace Config.Entities
|
||||
tst.Part = int.Parse(input.ReadLine(), ci);
|
||||
tst.Publish = sbyte.Parse(input.ReadLine(), ci);
|
||||
tst.DoEvaluate = bool.Parse(input.ReadLine());
|
||||
tst.Qtg = float.Parse(input.ReadLine(), ci);
|
||||
tst.Qfrom = float.Parse(input.ReadLine(), ci);
|
||||
tst.Qto = float.Parse(input.ReadLine(), ci);
|
||||
tst.Volume = float.Parse(input.ReadLine(), ci);
|
||||
tst.TestTime = float.Parse(input.ReadLine(), ci);
|
||||
tst.Qtg = double.Parse(input.ReadLine(), ci);
|
||||
tst.Qfrom = double.Parse(input.ReadLine(), ci);
|
||||
tst.Qto = double.Parse(input.ReadLine(), ci);
|
||||
tst.IsFromToInPct = bool.Parse(input.ReadLine());
|
||||
tst.Volume = double.Parse(input.ReadLine(), ci);
|
||||
tst.TestTime = double.Parse(input.ReadLine(), ci);
|
||||
tst.Method = input.ReadLine();
|
||||
tst.ErrLimLo = float.Parse(input.ReadLine(), ci);
|
||||
tst.ErrLimHi = float.Parse(input.ReadLine(), ci);
|
||||
@@ -273,10 +288,10 @@ namespace Config.Entities
|
||||
tst.Repeats = int.Parse(input.ReadLine(), ci);
|
||||
tst.DoDraining = bool.Parse(input.ReadLine());
|
||||
tst.DoDrainingAfter = bool.Parse(input.ReadLine());
|
||||
tst.DoControlWaterTemp = bool.Parse(input.ReadLine());
|
||||
tst.TempLimLo = float.Parse(input.ReadLine(), ci);
|
||||
tst.TempLimHi = float.Parse(input.ReadLine(), ci);
|
||||
tst.PumpPower = float.Parse(input.ReadLine(), ci);
|
||||
tst.TempControl = input.ReadLine();
|
||||
tst.PumpPower = float.Parse(input.ReadLine(), ci);
|
||||
tst.MassRepeats = int.Parse(input.ReadLine(), ci);
|
||||
tst.MassSpread = float.Parse(input.ReadLine(), ci);
|
||||
tst.MassMethod = (MassMethod)byte.Parse(input.ReadLine(), ci);
|
||||
@@ -293,8 +308,11 @@ namespace Config.Entities
|
||||
tst.TransBetween = input.ReadLine();
|
||||
string line = input.ReadLine();
|
||||
tst.Profile = line.Equals(TestProfile.ProtectedHeatMeter.ToString()) ? TestProfile.ProtectedHeatMeter
|
||||
: line.Equals(TestProfile.UserDefinedHeatMeter.ToString()) ? TestProfile.UserDefinedHeatMeter
|
||||
: line.Equals(TestProfile.Protected.ToString()) ? TestProfile.Protected : TestProfile.UserDefined; /// UserDefined is the default
|
||||
: line.Equals(TestProfile.ProtectedCompound.ToString()) ? TestProfile.ProtectedCompound
|
||||
: line.Equals(TestProfile.Protected.ToString()) ? TestProfile.Protected
|
||||
: line.Equals(TestProfile.UserDefinedHeatMeter.ToString()) ? TestProfile.UserDefinedHeatMeter
|
||||
: line.Equals(TestProfile.UserDefinedCompound.ToString()) ? TestProfile.UserDefinedCompound
|
||||
: TestProfile.UserDefined; /// UserDefined is the default
|
||||
tst.TransAfter = input.ReadLine();
|
||||
|
||||
while (true)
|
||||
@@ -327,6 +345,7 @@ namespace Config.Entities
|
||||
ln = inp.ReadLine(); if (ln != Qtg.ToString(ci)) { diff.AppendFormat(fmt, "Qtg", Qtg.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Qfrom.ToString(ci)) { diff.AppendFormat(fmt, "Qfrom", Qfrom.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Qto.ToString(ci)) { diff.AppendFormat(fmt, "Qto", Qto.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != IsFromToInPct.ToString()) { diff.AppendFormat(fmt, "IsFromToInPct", IsFromToInPct.ToString(), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Volume.ToString(ci)) { diff.AppendFormat(fmt, "Volume", Volume.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != TestTime.ToString(ci)) { diff.AppendFormat(fmt, "TstTime", TestTime.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Method) { diff.AppendFormat(fmt, "Method", Method, ln); };
|
||||
@@ -334,11 +353,11 @@ namespace Config.Entities
|
||||
ln = inp.ReadLine(); if (ln != ErrLimHi.ToString(ci)) { diff.AppendFormat(fmt, "ErrLimHi", ErrLimHi.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Uncertainty.ToString(ci)) { diff.AppendFormat(fmt, "Uncertainty", Uncertainty.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != Repeats.ToString(ci)) { diff.AppendFormat(fmt, "Repeats", Repeats.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != DoDraining.ToString(ci)) { diff.AppendFormat(fmt, "DoDraining", DoDraining.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != DoDrainingAfter.ToString(ci)) { diff.AppendFormat(fmt, "DoDrainingAfter", DoDrainingAfter.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != DoControlWaterTemp.ToString()) { diff.AppendFormat(fmt, "DoControlWaterTemp", DoControlWaterTemp.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != DoDraining.ToString()) { diff.AppendFormat(fmt, "DoDraining", DoDraining.ToString(), ln); };
|
||||
ln = inp.ReadLine(); if (ln != DoDrainingAfter.ToString()) { diff.AppendFormat(fmt, "DoDrainingAfter", DoDrainingAfter.ToString(), ln); };
|
||||
ln = inp.ReadLine(); if (ln != TempLimLo.ToString(ci)) { diff.AppendFormat(fmt, "TempLimLo", TempLimLo.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != TempLimHi.ToString(ci)) { diff.AppendFormat(fmt, "TempLimHi", TempLimHi.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != TempControl) { diff.AppendFormat(fmt, "TempController", TempControl, ln); };
|
||||
ln = inp.ReadLine(); if (ln != PumpPower.ToString(ci)) { diff.AppendFormat(fmt, "PumpPower", PumpPower.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != MassRepeats.ToString(ci)) { diff.AppendFormat(fmt, "MassRepeats", MassRepeats.ToString(ci), ln); };
|
||||
ln = inp.ReadLine(); if (ln != MassSpread.ToString(ci)) { diff.AppendFormat(fmt, "MassSpread", MassSpread.ToString(ci), ln); };
|
||||
|
||||
@@ -157,14 +157,14 @@ namespace Config.Entities
|
||||
/// <returns></ returns>
|
||||
public virtual bool IsPasswordExpired()
|
||||
{
|
||||
if (IsPowerUser() || IsMemberOf(GID.Administrators) || GlobalData.PasswdExpirationPeriodDays == 0)
|
||||
if (IsPowerUser() || IsMemberOf(GID.Administrators) || CurrentUser.PasswdExpirationPeriodDays == 0)
|
||||
{
|
||||
/// Password cannot expirate for this user or this feature is disabled in Backup and Security options
|
||||
return false;
|
||||
}
|
||||
|
||||
/// Password expiration time is 3 months
|
||||
return (DateTime.Now - LastPwChange > new TimeSpan(GlobalData.PasswdExpirationPeriodDays, 0, 0, 0));
|
||||
return (DateTime.Now - LastPwChange > new TimeSpan(CurrentUser.PasswdExpirationPeriodDays, 0, 0, 0));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -28,13 +28,13 @@ namespace Config
|
||||
switch (dbType)
|
||||
{
|
||||
default:
|
||||
case DBType.SQLite:
|
||||
cfg = cfg.Database(SQLiteConfiguration.Standard.UsingFile(connectionString));
|
||||
break;
|
||||
case DBType.MySql:
|
||||
cfg = cfg.Database(MySQLConfiguration.Standard.ConnectionString(connectionString));
|
||||
break;
|
||||
}
|
||||
case DBType.SQLite:
|
||||
cfg = cfg.Database(SQLiteConfiguration.Standard.UsingFile(connectionString));
|
||||
break;
|
||||
}
|
||||
|
||||
switch (database)
|
||||
{
|
||||
@@ -105,11 +105,11 @@ namespace Config
|
||||
///
|
||||
var admin = new Config.Entities.User
|
||||
{
|
||||
UserName = GlobalData.AdminUsername,
|
||||
UserName = CurrentUser.AdminUsername,
|
||||
FullName = Strings.Administrator,
|
||||
LastPwChange = DateTime.Now
|
||||
};
|
||||
admin.SetPassword(GlobalData.AdminPassword);
|
||||
admin.SetPassword(CurrentUser.AdminPassword);
|
||||
|
||||
///
|
||||
/// Prepare all groups, add some of them to admin
|
||||
@@ -128,7 +128,7 @@ namespace Config
|
||||
case GID.Administrators:
|
||||
#if TURA_IPERL || TURA_IPERL_NEW || TURA_SPECIAL
|
||||
case GID.TraceabilityManagement:
|
||||
#elif KEMPNO_50 || KRAKOW_50 || TORUN_50 || WARSAW_END
|
||||
#elif LANG_PL
|
||||
case GID.MetrologicalAuthority:
|
||||
case GID.WaterMeterAuthority:
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2015 Sensus Metering Systems
|
||||
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using FluentNHibernate.Mapping;
|
||||
using Config.Entities;
|
||||
@@ -23,6 +23,7 @@ namespace Config.Mappings
|
||||
Map(x => x.Diverter);
|
||||
Map(x => x.TempMtrDiv);
|
||||
Map(x => x.Scale);
|
||||
Map(x => x.RegVPositions);
|
||||
Map(x => x.ValvesOpen)
|
||||
.CustomType("StringClob")
|
||||
.CustomSqlType("varchar(8000)");
|
||||
|
||||
@@ -24,6 +24,7 @@ namespace Config.Mappings
|
||||
Map(x => x.PressLimHi);
|
||||
Map(x => x.Publish);
|
||||
Map(x => x.Evaluate);
|
||||
Map(x => x.Method);
|
||||
Map(x => x.E1);
|
||||
Map(x => x.E2);
|
||||
Map(x => x.E3);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2017 Sensus Metering Systems
|
||||
/// Copyright (c) 2013-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using FluentNHibernate.Mapping;
|
||||
using Config.Entities;
|
||||
@@ -20,15 +20,16 @@ namespace Config.Mappings
|
||||
Map(x => x.Qtg);
|
||||
Map(x => x.Qfrom);
|
||||
Map(x => x.Qto);
|
||||
Map(x => x.Volume);
|
||||
Map(x => x.IsFromToInPct);
|
||||
Map(x => x.Volume);
|
||||
Map(x => x.TestTime);
|
||||
Map(x => x.Repeats);
|
||||
Map(x => x.DoDraining);
|
||||
Map(x => x.DoDrainingAfter);
|
||||
Map(x => x.DoControlWaterTemp);
|
||||
Map(x => x.TempLimLo);
|
||||
Map(x => x.TempLimHi);
|
||||
Map(x => x.PumpPower);
|
||||
Map(x => x.TempControl);
|
||||
Map(x => x.PumpPower);
|
||||
Map(x => x.MassRepeats);
|
||||
Map(x => x.MassSpread);
|
||||
Map(x => x.MassMethod)
|
||||
|
||||
+32
-15
@@ -423,7 +423,7 @@ namespace DeviceTest
|
||||
{
|
||||
parentCfg = parentFactory.DefaultConfig();
|
||||
}
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg();
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg(this);
|
||||
cfgForm.CmpntEntities = new List<Config.Entities.Component>();
|
||||
|
||||
IComponentCfgCtrl cfgControl = parentCfg.GetControl(cfgForm.CmpntEntities);
|
||||
@@ -452,7 +452,7 @@ namespace DeviceTest
|
||||
{
|
||||
component1Cfg = component1Factory.DefaultConfig();
|
||||
}
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg();
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg(this);
|
||||
///
|
||||
var compEntities = new List<Config.Entities.Component>();
|
||||
if (parentFactory != null && parentCfg != null) compEntities.Add(parentCfg.CreateDbEntity());
|
||||
@@ -486,7 +486,7 @@ namespace DeviceTest
|
||||
{
|
||||
component2Cfg = component2Factory.DefaultConfig();
|
||||
}
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg();
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg(this);
|
||||
///
|
||||
var compEntities = new List<Config.Entities.Component>();
|
||||
if (parentFactory != null && parentCfg != null) compEntities.Add(parentCfg.CreateDbEntity());
|
||||
@@ -521,7 +521,7 @@ namespace DeviceTest
|
||||
{
|
||||
component3Cfg = component3Factory.DefaultConfig();
|
||||
}
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg();
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg(this);
|
||||
///
|
||||
var compEntities = new List<Config.Entities.Component>();
|
||||
if (parentFactory != null && parentCfg != null) compEntities.Add(parentCfg.CreateDbEntity());
|
||||
@@ -678,11 +678,16 @@ namespace DeviceTest
|
||||
{
|
||||
operation1 = (tbfComponent1forOp as TBF.Rig.Network.Camera.Roi.Roi).RoiDetectionOp();
|
||||
}
|
||||
else if (tbfComponent1forOp is TBF.Rig.Modbus.Easytherm.Easytherm)
|
||||
else if (tbfComponent1forOp is TBF.Rig.Modbus.TempControl.Easytherm.TControl)
|
||||
{
|
||||
operation1 = (tbfComponent1forOp as TBF.Rig.Modbus.Easytherm.Easytherm).SetTemperatureOp(10);
|
||||
operation2 = (tbfComponent1forOp as TBF.Rig.Modbus.Easytherm.Easytherm).SetTemperatureOp(20);
|
||||
operation1 = (tbfComponent1forOp as TBF.Rig.Modbus.TempControl.Easytherm.TControl).SetTemperatureSetpointOp(10);
|
||||
operation2 = (tbfComponent1forOp as TBF.Rig.Modbus.TempControl.Easytherm.TControl).SetTemperatureSetpointOp(20);
|
||||
}
|
||||
else if (tbfComponent1forOp is TBF.Rig.Modbus.TempControl.Novus.TControl)
|
||||
{
|
||||
operation1 = (tbfComponent1forOp as TBF.Rig.Modbus.TempControl.Novus.TControl).SetTemperatureSetpointOp(10);
|
||||
operation2 = (tbfComponent1forOp as TBF.Rig.Modbus.TempControl.Novus.TControl).SetTemperatureSetpointOp(20);
|
||||
}
|
||||
else if (tbfComponent1forOp is TBF.Rig.Modbus.UltrasoundLevelMeter.LevelMeter)
|
||||
{
|
||||
operation1 = (tbfComponent1forOp as TBF.Rig.Modbus.UltrasoundLevelMeter.LevelMeter).ReadLevelOp(ref dblBox1);
|
||||
@@ -717,11 +722,16 @@ namespace DeviceTest
|
||||
{
|
||||
operation21 = (tbfComponent2forOp as TBF.Rig.Network.Camera.Roi.Roi).RoiDetectionOp();
|
||||
}
|
||||
else if (tbfComponent2forOp is TBF.Rig.Modbus.Easytherm.Easytherm)
|
||||
else if (tbfComponent2forOp is TBF.Rig.Modbus.TempControl.Easytherm.TControl)
|
||||
{
|
||||
operation21 = (tbfComponent2forOp as TBF.Rig.Modbus.Easytherm.Easytherm).SetTemperatureOp(10);
|
||||
operation22 = (tbfComponent2forOp as TBF.Rig.Modbus.Easytherm.Easytherm).SetTemperatureOp(20);
|
||||
operation21 = (tbfComponent2forOp as TBF.Rig.Modbus.TempControl.Easytherm.TControl).SetTemperatureSetpointOp(10);
|
||||
operation22 = (tbfComponent2forOp as TBF.Rig.Modbus.TempControl.Easytherm.TControl).SetTemperatureSetpointOp(20);
|
||||
}
|
||||
else if (tbfComponent2forOp is TBF.Rig.Modbus.TempControl.Novus.TControl)
|
||||
{
|
||||
operation21 = (tbfComponent2forOp as TBF.Rig.Modbus.TempControl.Novus.TControl).SetTemperatureSetpointOp(10);
|
||||
operation22 = (tbfComponent2forOp as TBF.Rig.Modbus.TempControl.Novus.TControl).SetTemperatureSetpointOp(20);
|
||||
}
|
||||
else if (tbfComponent2forOp is TBF.Rig.Modbus.UltrasoundLevelMeter.LevelMeter)
|
||||
{
|
||||
operation21 = (tbfComponent2forOp as TBF.Rig.Modbus.UltrasoundLevelMeter.LevelMeter).ReadLevelOp(ref dblBox1);
|
||||
@@ -756,11 +766,16 @@ namespace DeviceTest
|
||||
{
|
||||
operation31 = (tbfComponent3forOp as TBF.Rig.Network.Camera.Roi.Roi).RoiDetectionOp();
|
||||
}
|
||||
else if (tbfComponent3forOp is TBF.Rig.Modbus.Easytherm.Easytherm)
|
||||
{
|
||||
operation31 = (tbfComponent3forOp as TBF.Rig.Modbus.Easytherm.Easytherm).SetTemperatureOp(10);
|
||||
operation32 = (tbfComponent3forOp as TBF.Rig.Modbus.Easytherm.Easytherm).SetTemperatureOp(20);
|
||||
}
|
||||
else if (tbfComponent3forOp is TBF.Rig.Modbus.TempControl.Easytherm.TControl)
|
||||
{
|
||||
operation31 = (tbfComponent3forOp as TBF.Rig.Modbus.TempControl.Easytherm.TControl).SetTemperatureSetpointOp(10);
|
||||
operation32 = (tbfComponent3forOp as TBF.Rig.Modbus.TempControl.Easytherm.TControl).SetTemperatureSetpointOp(20);
|
||||
}
|
||||
else if (tbfComponent3forOp is TBF.Rig.Modbus.TempControl.Novus.TControl)
|
||||
{
|
||||
operation31 = (tbfComponent3forOp as TBF.Rig.Modbus.TempControl.Novus.TControl).SetTemperatureSetpointOp(10);
|
||||
operation32 = (tbfComponent3forOp as TBF.Rig.Modbus.TempControl.Novus.TControl).SetTemperatureSetpointOp(20);
|
||||
}
|
||||
else if (tbfComponent3forOp is TBF.Rig.Modbus.UltrasoundLevelMeter.LevelMeter)
|
||||
{
|
||||
operation31 = (tbfComponent3forOp as TBF.Rig.Modbus.UltrasoundLevelMeter.LevelMeter).ReadLevelOp(ref dblBox1);
|
||||
@@ -884,6 +899,8 @@ namespace DeviceTest
|
||||
{
|
||||
Cursor = Cursors.WaitCursor;
|
||||
|
||||
CurrentUser.Restore(this);
|
||||
|
||||
if (workerThread != null)
|
||||
{
|
||||
workerThreadRunning = false;
|
||||
|
||||
@@ -291,7 +291,7 @@ namespace EventViewer
|
||||
{
|
||||
try
|
||||
{
|
||||
GlobalData.RemoteUsersDB = new DBSettings(DBType.MySql, Program.LocalSettings.UsersDBConnString);
|
||||
CurrentUser.RemoteUsersDB = new DBSettings(DBType.MySql, Program.LocalSettings.UsersDBConnString);
|
||||
SharedDatabase.Forms.LoginDlg dlg = new SharedDatabase.Forms.LoginDlg();
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<OldToolsVersion>2.0</OldToolsVersion>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
@@ -76,6 +76,7 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
@@ -99,6 +100,7 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>none</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System">
|
||||
|
||||
Generated
+3
-4
@@ -130,7 +130,7 @@
|
||||
this.vertSplitContainer.Panel2.Controls.Add(this.startButton);
|
||||
this.vertSplitContainer.Panel2.Controls.Add(this.stopButton);
|
||||
this.vertSplitContainer.Size = new System.Drawing.Size(1033, 151);
|
||||
this.vertSplitContainer.SplitterDistance = 942;
|
||||
this.vertSplitContainer.SplitterDistance = 945;
|
||||
this.vertSplitContainer.SplitterWidth = 1;
|
||||
this.vertSplitContainer.TabIndex = 2;
|
||||
//
|
||||
@@ -140,7 +140,7 @@
|
||||
this.resultsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.resultsGroupBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.resultsGroupBox.Name = "resultsGroupBox";
|
||||
this.resultsGroupBox.Size = new System.Drawing.Size(942, 151);
|
||||
this.resultsGroupBox.Size = new System.Drawing.Size(945, 151);
|
||||
this.resultsGroupBox.TabIndex = 1;
|
||||
this.resultsGroupBox.TabStop = false;
|
||||
this.resultsGroupBox.Text = "Aktivita";
|
||||
@@ -152,7 +152,7 @@
|
||||
this.activityListView.Location = new System.Drawing.Point(3, 16);
|
||||
this.activityListView.Name = "activityListView";
|
||||
this.activityListView.Scrollable = false;
|
||||
this.activityListView.Size = new System.Drawing.Size(936, 132);
|
||||
this.activityListView.Size = new System.Drawing.Size(939, 132);
|
||||
this.activityListView.TabIndex = 0;
|
||||
this.activityListView.UseCompatibleStateImageBehavior = false;
|
||||
this.activityListView.View = System.Windows.Forms.View.Details;
|
||||
@@ -239,7 +239,6 @@
|
||||
this.ClientSize = new System.Drawing.Size(1164, 207);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "GenericTestDlg";
|
||||
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||
this.Text = "RF Power New / Oracle / Printing";
|
||||
|
||||
@@ -176,13 +176,11 @@ namespace GenericTest
|
||||
|
||||
private void settingsButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
IUser oriUser = GlobalData.CurrentUser; /// Save the original user (= tester)
|
||||
|
||||
if (new LoginDlg(Program.SettingsAccessLevel).ShowDialog() == DialogResult.OK)
|
||||
if (new LoginDlg(Program.SettingsAccessLevel, this).ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
/// Logged in at 'TraceabilityManagement' level
|
||||
|
||||
GlobalData.CurrentUser = oriUser; /// Restore the original user (= tester)
|
||||
CurrentUser.Restore(this); /// Restore the original user (= tester)
|
||||
|
||||
string oriWorkplace = Program.LocalSettings.Workplace;
|
||||
///
|
||||
@@ -195,7 +193,7 @@ namespace GenericTest
|
||||
TracingDB.UnregisterWorkplaceObsolete(dbSession, oriWorkplace);
|
||||
TracingDB.RegisterWorkplaceObsolete(dbSession,
|
||||
Program.LocalSettings.Workplace,
|
||||
GlobalData.GetCurrentUserName(),
|
||||
CurrentUser.UserName(),
|
||||
"1.2.3.4",
|
||||
"<multiple>",
|
||||
WorkflowStep,
|
||||
@@ -714,14 +712,14 @@ namespace GenericTest
|
||||
|
||||
if (!string.IsNullOrEmpty(Program.LocalSettings.UsersDBConnString))
|
||||
{
|
||||
GlobalData.LocalUsersDB = new DBSettings(DBType.MySql, Program.LocalSettings.UsersDBConnString);
|
||||
CurrentUser.LocalUsersDB = new DBSettings(DBType.MySql, Program.LocalSettings.UsersDBConnString);
|
||||
}
|
||||
|
||||
UpdateTitle();
|
||||
|
||||
TracingDB.RegisterWorkplaceObsolete(dbSession,
|
||||
Program.LocalSettings.Workplace,
|
||||
GlobalData.GetCurrentUserName(),
|
||||
CurrentUser.UserName(),
|
||||
"1.2.3.4",
|
||||
"<multiple>",
|
||||
WorkflowStep,
|
||||
@@ -1037,7 +1035,7 @@ namespace GenericTest
|
||||
|
||||
void UpdateTitle()
|
||||
{
|
||||
Text = string.Format("{0} v.{1} ({2}, {3})", DfltWorkplaceName, Program.Version, Program.LocalSettings.Workplace, GlobalData.GetCurrentUserName());
|
||||
Text = string.Format("{0} v.{1} ({2}, {3})", DfltWorkplaceName, Program.Version, Program.LocalSettings.Workplace, CurrentUser.UserName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ namespace GenericTest
|
||||
{
|
||||
try
|
||||
{
|
||||
GlobalData.LocalUsersDB = new DBSettings(DBType.MySql, LocalSettings.UsersDBConnString);
|
||||
CurrentUser.LocalUsersDB = new DBSettings(DBType.MySql, LocalSettings.UsersDBConnString);
|
||||
|
||||
if (new SharedDatabase.Forms.LoginDlg().ShowDialog() != DialogResult.OK) return;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("GenericTest")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@@ -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("3.0.1")]
|
||||
[assembly: AssemblyFileVersion("3.0.1")]
|
||||
[assembly: AssemblyVersion("3.0.2")]
|
||||
[assembly: AssemblyFileVersion("3.0.2")]
|
||||
|
||||
@@ -26,6 +26,7 @@ namespace OrderManagement
|
||||
public string Language; /// User interface language used as CultureInfo(..) constructor argument
|
||||
public bool IsUserLoginRequired; /// true = require user login on program start-up
|
||||
public bool IsShowPredefinedOrders; /// true = show predefined orders with nr. <= 1000
|
||||
public bool IsShowFinishedOrders; /// true = show finished orders
|
||||
public string TracingDBConnString; /// Connection string to MySQL database with production tracing records
|
||||
public string UsersDBConnString; /// Connection string to MySQL database with authorized users
|
||||
public string[] SapNumberHistory; /// SAP number history
|
||||
@@ -45,6 +46,7 @@ namespace OrderManagement
|
||||
Language = "EN";
|
||||
IsUserLoginRequired = false;
|
||||
IsShowPredefinedOrders = false;
|
||||
IsShowFinishedOrders = false;
|
||||
#if DEBUG
|
||||
TracingDBConnString = "SERVER=localhost; DATABASE=nanjingshared; UID=root; PASSWORD=kraken; CHARSET=utf8;";
|
||||
#else
|
||||
|
||||
+27
-12
@@ -32,12 +32,13 @@
|
||||
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.listViewEx1 = new Common.Forms.ListViewEx();
|
||||
this.copyButton = new System.Windows.Forms.Button();
|
||||
this.printButton = new System.Windows.Forms.Button();
|
||||
this.addButton = new System.Windows.Forms.Button();
|
||||
this.editButton = new System.Windows.Forms.Button();
|
||||
this.closeButton = new System.Windows.Forms.Button();
|
||||
this.deleteButton = new System.Windows.Forms.Button();
|
||||
this.copyButton = new System.Windows.Forms.Button();
|
||||
this.finishButton = new System.Windows.Forms.Button();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
@@ -75,6 +76,7 @@
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.finishButton);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.copyButton);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.printButton);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.addButton);
|
||||
@@ -92,6 +94,7 @@
|
||||
this.listViewEx1.DoubleClickActivation = false;
|
||||
this.listViewEx1.FullRowSelect = true;
|
||||
this.listViewEx1.GridLines = true;
|
||||
this.listViewEx1.HideSelection = false;
|
||||
this.listViewEx1.Location = new System.Drawing.Point(0, 0);
|
||||
this.listViewEx1.Name = "listViewEx1";
|
||||
this.listViewEx1.Size = new System.Drawing.Size(1214, 481);
|
||||
@@ -101,10 +104,21 @@
|
||||
this.listViewEx1.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewEx1_ColumnClick);
|
||||
this.listViewEx1.DoubleClick += new System.EventHandler(this.listViewEx1_DoubleClick);
|
||||
//
|
||||
// copyButton
|
||||
//
|
||||
this.copyButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.copyButton.Location = new System.Drawing.Point(23, 223);
|
||||
this.copyButton.Name = "copyButton";
|
||||
this.copyButton.Size = new System.Drawing.Size(85, 40);
|
||||
this.copyButton.TabIndex = 7;
|
||||
this.copyButton.Text = "Copy";
|
||||
this.copyButton.UseVisualStyleBackColor = true;
|
||||
this.copyButton.Click += new System.EventHandler(this.copyButton_Click);
|
||||
//
|
||||
// printButton
|
||||
//
|
||||
this.printButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.printButton.Location = new System.Drawing.Point(23, 290);
|
||||
this.printButton.Location = new System.Drawing.Point(23, 335);
|
||||
this.printButton.Name = "printButton";
|
||||
this.printButton.Size = new System.Drawing.Size(85, 40);
|
||||
this.printButton.TabIndex = 6;
|
||||
@@ -148,7 +162,7 @@
|
||||
// deleteButton
|
||||
//
|
||||
this.deleteButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.deleteButton.Location = new System.Drawing.Point(23, 223);
|
||||
this.deleteButton.Location = new System.Drawing.Point(23, 268);
|
||||
this.deleteButton.Name = "deleteButton";
|
||||
this.deleteButton.Size = new System.Drawing.Size(85, 40);
|
||||
this.deleteButton.TabIndex = 5;
|
||||
@@ -156,16 +170,16 @@
|
||||
this.deleteButton.UseVisualStyleBackColor = true;
|
||||
this.deleteButton.Click += new System.EventHandler(this.deleteButton_Click);
|
||||
//
|
||||
// copyButton
|
||||
// finishButton
|
||||
//
|
||||
this.copyButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.copyButton.Location = new System.Drawing.Point(23, 178);
|
||||
this.copyButton.Name = "copyButton";
|
||||
this.copyButton.Size = new System.Drawing.Size(85, 40);
|
||||
this.copyButton.TabIndex = 7;
|
||||
this.copyButton.Text = "Copy";
|
||||
this.copyButton.UseVisualStyleBackColor = true;
|
||||
this.copyButton.Click += new System.EventHandler(this.copyButton_Click);
|
||||
this.finishButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.finishButton.Location = new System.Drawing.Point(23, 178);
|
||||
this.finishButton.Name = "finishButton";
|
||||
this.finishButton.Size = new System.Drawing.Size(85, 40);
|
||||
this.finishButton.TabIndex = 8;
|
||||
this.finishButton.Text = "Finish";
|
||||
this.finishButton.UseVisualStyleBackColor = true;
|
||||
this.finishButton.Click += new System.EventHandler(this.finishButton_Click);
|
||||
//
|
||||
// OrderManagementDlg
|
||||
//
|
||||
@@ -203,6 +217,7 @@
|
||||
private Common.Forms.ListViewEx listViewEx1;
|
||||
private System.Windows.Forms.Button printButton;
|
||||
private System.Windows.Forms.Button copyButton;
|
||||
private System.Windows.Forms.Button finishButton;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2021-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -10,6 +10,7 @@ using Common;
|
||||
using SharedDatabase.Entities;
|
||||
using OrderManagement.Resources;
|
||||
using Common.Forms;
|
||||
using SharedDatabase;
|
||||
|
||||
namespace OrderManagement
|
||||
{
|
||||
@@ -92,6 +93,8 @@ namespace OrderManagement
|
||||
{
|
||||
Order,
|
||||
State,
|
||||
Pieces,
|
||||
CurrentPcs,
|
||||
Workflow,
|
||||
Procedure,
|
||||
Variant,
|
||||
@@ -101,7 +104,6 @@ namespace OrderManagement
|
||||
ModuleParam,
|
||||
LaserMarking,
|
||||
Packing,
|
||||
Pieces,
|
||||
SNPrefix,
|
||||
SNFirst,
|
||||
SNDigitsCount,
|
||||
@@ -115,8 +117,10 @@ namespace OrderManagement
|
||||
|
||||
void InitializeColumns(ListView lv)
|
||||
{
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Order, Width = 65 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.State, Width = 65 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Order, Width = 70 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.State, Width = 60 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = "Target", Width = 50 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = "Produced", Width = 60 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Workflow, Width = 100 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Test_procedure, Width = 200 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Variant_code, Width = 150 });
|
||||
@@ -126,7 +130,6 @@ namespace OrderManagement
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Module_parameter, Width = 100 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Laser_marking, Width = 100 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Packing, Width = 100 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.Pieces_count, Width = 80 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.SN + " " + Strings.prefix, Width = 80 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.SN + " " + Strings.first, Width = 80 });
|
||||
lv.Columns.Add(new ColumnHeader { Text = Strings.SN + " " + Strings.digits_count, Width = 80 });
|
||||
@@ -141,6 +144,8 @@ namespace OrderManagement
|
||||
{
|
||||
ListViewItem lvi = new ListViewItem(o.POName);
|
||||
lvi.SubItems.Add(((OrderState)o.POState).ToString());
|
||||
lvi.SubItems.Add(o.PiecesCount.ToString());
|
||||
lvi.SubItems.Add(o.CurrentPcsCount.ToString());
|
||||
lvi.SubItems.Add(o.Workflow);
|
||||
lvi.SubItems.Add(o.TestProcedure);
|
||||
lvi.SubItems.Add(o.VariantCode);
|
||||
@@ -150,7 +155,6 @@ namespace OrderManagement
|
||||
lvi.SubItems.Add(o.ModuleParam);
|
||||
lvi.SubItems.Add(o.LaserMarking);
|
||||
lvi.SubItems.Add(o.Packing);
|
||||
lvi.SubItems.Add(o.PiecesCount.ToString());
|
||||
lvi.SubItems.Add(o.SNPrefix);
|
||||
lvi.SubItems.Add(o.SNFirst.ToString(string.Format("D{0}", o.SNDigitsCount)));
|
||||
lvi.SubItems.Add(o.SNDigitsCount.ToString());
|
||||
@@ -168,6 +172,8 @@ namespace OrderManagement
|
||||
int i = 0;
|
||||
lvi.SubItems[i++].Text = o.POName;
|
||||
lvi.SubItems[i++].Text = ((OrderState)o.POState).ToString();
|
||||
lvi.SubItems[i++].Text = o.PiecesCount.ToString();
|
||||
lvi.SubItems[i++].Text = o.CurrentPcsCount.ToString();
|
||||
lvi.SubItems[i++].Text = o.Workflow;
|
||||
lvi.SubItems[i++].Text = o.TestProcedure;
|
||||
lvi.SubItems[i++].Text = o.VariantCode;
|
||||
@@ -177,7 +183,6 @@ namespace OrderManagement
|
||||
lvi.SubItems[i++].Text = o.ModuleParam;
|
||||
lvi.SubItems[i++].Text = o.LaserMarking;
|
||||
lvi.SubItems[i++].Text = o.Packing;
|
||||
lvi.SubItems[i++].Text = o.PiecesCount.ToString();
|
||||
lvi.SubItems[i++].Text = o.SNPrefix;
|
||||
lvi.SubItems[i++].Text = o.SNFirst.ToString(string.Format("D{0}", o.SNDigitsCount));
|
||||
lvi.SubItems[i++].Text = o.SNDigitsCount.ToString();
|
||||
@@ -192,7 +197,7 @@ namespace OrderManagement
|
||||
{
|
||||
try
|
||||
{
|
||||
Common.GlobalData.RemoteUsersDB = new Common.DBSettings(Common.DBType.MySql, Program.LocalSettings.UsersDBConnString);
|
||||
Common.CurrentUser.RemoteUsersDB = new Common.DBSettings(Common.DBType.MySql, Program.LocalSettings.UsersDBConnString);
|
||||
|
||||
DialogResult dr = new SharedDatabase.Forms.LoginDlg().ShowDialog();
|
||||
if (dr != DialogResult.OK) return;
|
||||
@@ -288,6 +293,46 @@ namespace OrderManagement
|
||||
}
|
||||
}
|
||||
|
||||
private void finishButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listViewEx1.SelectedItems.Count != 1 || !(listViewEx1.SelectedItems[0].Tag is OrderInfo)) return;
|
||||
|
||||
OrderInfo order = listViewEx1.SelectedItems[0].Tag as OrderInfo;
|
||||
if (order.POState == (sbyte)OrderState.Active && order.CurrentPcsCount >= order.PiecesCount)
|
||||
{
|
||||
ISession session = null;
|
||||
try
|
||||
{
|
||||
session = sessionFactory.OpenSession();
|
||||
|
||||
var selectedOrders = session.QueryOver<OrderInfo>()
|
||||
.Where(x => x.Id == order.Id)
|
||||
.List();
|
||||
|
||||
if (selectedOrders.Count == 1)
|
||||
{
|
||||
selectedOrders[0].POState = (sbyte)OrderState.Finished;
|
||||
session.SaveOrUpdate(selectedOrders[0]);
|
||||
session.Flush();
|
||||
order.POState = (sbyte)OrderState.Finished;
|
||||
UpdateRow(listViewEx1.SelectedItems[0], order);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Changing production order state failed: {0}", ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (session != null && session.IsOpen) session.Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(Strings.You_can_only_finish_completed_production_orders);
|
||||
}
|
||||
}
|
||||
|
||||
private void copyButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listViewEx1.SelectedItems.Count != 1 || !(listViewEx1.SelectedItems[0].Tag is OrderInfo)) return;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2021-2022 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2021-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -14,6 +14,7 @@ using Common;
|
||||
using SharedDatabase;
|
||||
using SharedDatabase.Entities;
|
||||
using OrderManagement.Resources;
|
||||
using System.Linq;
|
||||
|
||||
namespace OrderManagement
|
||||
{
|
||||
@@ -160,7 +161,7 @@ namespace OrderManagement
|
||||
{
|
||||
try
|
||||
{
|
||||
Common.GlobalData.RemoteUsersDB = new DBSettings(Common.DBType.MySql, LocalSettings.UsersDBConnString);
|
||||
Common.CurrentUser.RemoteUsersDB = new DBSettings(Common.DBType.MySql, LocalSettings.UsersDBConnString);
|
||||
|
||||
DialogResult dr = new SharedDatabase.Forms.LoginDlg().ShowDialog();
|
||||
if (dr != DialogResult.OK) return;
|
||||
@@ -186,7 +187,16 @@ namespace OrderManagement
|
||||
|
||||
ISession session = sessionFactory.OpenSession();
|
||||
|
||||
listOfOrders = session.QueryOver<OrderInfo>().List();
|
||||
if (LocalSettings.IsShowFinishedOrders)
|
||||
{
|
||||
listOfOrders = session.QueryOver<OrderInfo>().List();
|
||||
}
|
||||
else
|
||||
{
|
||||
listOfOrders = session.QueryOver<OrderInfo>()
|
||||
.Where(x => x.POState != (sbyte)OrderState.Finished)
|
||||
.List();
|
||||
}
|
||||
|
||||
listOfWorkflows = session.QueryOver<Process>()
|
||||
.Where(x => x.ReleaseStatus != ReleaseStatus.Deactivated)
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("OrderManagement")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2021-2022")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2021-2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@@ -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("3.0.13.0")]
|
||||
[assembly: AssemblyFileVersion("3.0.13.0")]
|
||||
[assembly: AssemblyVersion("3.0.14.0")]
|
||||
[assembly: AssemblyFileVersion("3.0.14.0")]
|
||||
|
||||
+12
-3
@@ -19,7 +19,7 @@ namespace OrderManagement.Resources {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Strings {
|
||||
@@ -637,7 +637,7 @@ namespace OrderManagement.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to You can only delete 'New' porduction orders.
|
||||
/// Looks up a localized string similar to You can only delete 'New' production orders.
|
||||
/// </summary>
|
||||
internal static string You_can_only_delete_New_porduction_orders {
|
||||
get {
|
||||
@@ -646,12 +646,21 @@ namespace OrderManagement.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to You can only edit 'New' porduction orders.
|
||||
/// Looks up a localized string similar to You can only edit 'New' production orders.
|
||||
/// </summary>
|
||||
internal static string You_can_only_edit_New_porduction_orders {
|
||||
get {
|
||||
return ResourceManager.GetString("You_can_only_edit_New_porduction_orders", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to You can only finish completed production orders.
|
||||
/// </summary>
|
||||
internal static string You_can_only_finish_completed_production_orders {
|
||||
get {
|
||||
return ResourceManager.GetString("You_can_only_finish_completed_production_orders", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,10 +223,10 @@
|
||||
<value>S/N</value>
|
||||
</data>
|
||||
<data name="You_can_only_edit_New_porduction_orders" xml:space="preserve">
|
||||
<value>You can only edit 'New' porduction orders</value>
|
||||
<value>You can only edit 'New' production orders</value>
|
||||
</data>
|
||||
<data name="You_can_only_delete_New_porduction_orders" xml:space="preserve">
|
||||
<value>You can only delete 'New' porduction orders</value>
|
||||
<value>You can only delete 'New' production orders</value>
|
||||
</data>
|
||||
<data name="Laser_marking" xml:space="preserve">
|
||||
<value>Laser marking</value>
|
||||
@@ -315,4 +315,7 @@
|
||||
<data name="Print" xml:space="preserve">
|
||||
<value>Print</value>
|
||||
</data>
|
||||
<data name="You_can_only_finish_completed_production_orders" xml:space="preserve">
|
||||
<value>You can only finish completed production orders</value>
|
||||
</data>
|
||||
</root>
|
||||
Generated
+23
-10
@@ -29,6 +29,7 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.commonGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.showPredefinedOrdersCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.loginRequiredCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.languageComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.languageLabel = new System.Windows.Forms.Label();
|
||||
@@ -38,7 +39,7 @@
|
||||
this.usersDBConnStringTextBox = new System.Windows.Forms.TextBox();
|
||||
this.saveButton = new System.Windows.Forms.Button();
|
||||
this.cancelButton = new System.Windows.Forms.Button();
|
||||
this.showPredefinedOrdersCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.showFinishedOrdersCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.commonGroupBox.SuspendLayout();
|
||||
this.connStrForTracingGroupBox.SuspendLayout();
|
||||
this.connStrForUsersGroupBox.SuspendLayout();
|
||||
@@ -46,6 +47,7 @@
|
||||
//
|
||||
// commonGroupBox
|
||||
//
|
||||
this.commonGroupBox.Controls.Add(this.showFinishedOrdersCheckBox);
|
||||
this.commonGroupBox.Controls.Add(this.showPredefinedOrdersCheckBox);
|
||||
this.commonGroupBox.Controls.Add(this.loginRequiredCheckBox);
|
||||
this.commonGroupBox.Controls.Add(this.languageComboBox);
|
||||
@@ -56,10 +58,20 @@
|
||||
this.commonGroupBox.TabIndex = 16;
|
||||
this.commonGroupBox.TabStop = false;
|
||||
//
|
||||
// showPredefinedOrdersCheckBox
|
||||
//
|
||||
this.showPredefinedOrdersCheckBox.AutoSize = true;
|
||||
this.showPredefinedOrdersCheckBox.Location = new System.Drawing.Point(22, 67);
|
||||
this.showPredefinedOrdersCheckBox.Name = "showPredefinedOrdersCheckBox";
|
||||
this.showPredefinedOrdersCheckBox.Size = new System.Drawing.Size(138, 17);
|
||||
this.showPredefinedOrdersCheckBox.TabIndex = 3;
|
||||
this.showPredefinedOrdersCheckBox.Text = "Show predefined orders";
|
||||
this.showPredefinedOrdersCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// loginRequiredCheckBox
|
||||
//
|
||||
this.loginRequiredCheckBox.AutoSize = true;
|
||||
this.loginRequiredCheckBox.Location = new System.Drawing.Point(22, 55);
|
||||
this.loginRequiredCheckBox.Location = new System.Drawing.Point(22, 45);
|
||||
this.loginRequiredCheckBox.Name = "loginRequiredCheckBox";
|
||||
this.loginRequiredCheckBox.Size = new System.Drawing.Size(114, 17);
|
||||
this.loginRequiredCheckBox.TabIndex = 2;
|
||||
@@ -139,15 +151,15 @@
|
||||
this.cancelButton.UseVisualStyleBackColor = true;
|
||||
this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
|
||||
//
|
||||
// showPredefinedOrdersCheckBox
|
||||
// showFinishedOrdersCheckBox
|
||||
//
|
||||
this.showPredefinedOrdersCheckBox.AutoSize = true;
|
||||
this.showPredefinedOrdersCheckBox.Location = new System.Drawing.Point(22, 82);
|
||||
this.showPredefinedOrdersCheckBox.Name = "showPredefinedOrdersCheckBox";
|
||||
this.showPredefinedOrdersCheckBox.Size = new System.Drawing.Size(138, 17);
|
||||
this.showPredefinedOrdersCheckBox.TabIndex = 3;
|
||||
this.showPredefinedOrdersCheckBox.Text = "Show predefined orders";
|
||||
this.showPredefinedOrdersCheckBox.UseVisualStyleBackColor = true;
|
||||
this.showFinishedOrdersCheckBox.AutoSize = true;
|
||||
this.showFinishedOrdersCheckBox.Location = new System.Drawing.Point(22, 89);
|
||||
this.showFinishedOrdersCheckBox.Name = "showFinishedOrdersCheckBox";
|
||||
this.showFinishedOrdersCheckBox.Size = new System.Drawing.Size(124, 17);
|
||||
this.showFinishedOrdersCheckBox.TabIndex = 4;
|
||||
this.showFinishedOrdersCheckBox.Text = "Show finished orders";
|
||||
this.showFinishedOrdersCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// SettingsDlg
|
||||
//
|
||||
@@ -188,5 +200,6 @@
|
||||
private System.Windows.Forms.Button saveButton;
|
||||
private System.Windows.Forms.Button cancelButton;
|
||||
private System.Windows.Forms.CheckBox showPredefinedOrdersCheckBox;
|
||||
private System.Windows.Forms.CheckBox showFinishedOrdersCheckBox;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2021-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
@@ -48,6 +48,7 @@ namespace OrderManagement
|
||||
|
||||
loginRequiredCheckBox.Checked = ls.IsUserLoginRequired;
|
||||
showPredefinedOrdersCheckBox.Checked = ls.IsShowPredefinedOrders;
|
||||
showFinishedOrdersCheckBox.Checked = ls.IsShowFinishedOrders;
|
||||
|
||||
tracingDBConnStringTextBox.Text = ls.TracingDBConnString;
|
||||
usersDBConnStringTextBox.Text = ls.UsersDBConnString;
|
||||
@@ -95,6 +96,12 @@ namespace OrderManagement
|
||||
isDifferent = true;
|
||||
}
|
||||
|
||||
if (ls.IsShowFinishedOrders != showFinishedOrdersCheckBox.Checked)
|
||||
{
|
||||
ls.IsShowFinishedOrders = showFinishedOrdersCheckBox.Checked;
|
||||
isDifferent = true;
|
||||
}
|
||||
|
||||
if (ls.TracingDBConnString != tracingDBConnStringTextBox.Text)
|
||||
{
|
||||
ls.TracingDBConnString = tracingDBConnStringTextBox.Text;
|
||||
|
||||
@@ -158,7 +158,7 @@ namespace ProductionTracing
|
||||
{
|
||||
try
|
||||
{
|
||||
Common.GlobalData.RemoteUsersDB = new DBSettings(Common.DBType.MySql, LocalSettings.UsersDBConnString);
|
||||
Common.CurrentUser.RemoteUsersDB = new DBSettings(Common.DBType.MySql, LocalSettings.UsersDBConnString);
|
||||
|
||||
DialogResult dr = new SharedDatabase.Forms.LoginDlg().ShowDialog();
|
||||
if (dr != DialogResult.OK) return;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -38,7 +38,8 @@ namespace Results.Entities
|
||||
public virtual int Counter9 { get; set; }
|
||||
public virtual int Counter10 { get; set; }
|
||||
public virtual DateTime StartTime { get; set; }
|
||||
public virtual DateTime EndTime { get; set; }
|
||||
public virtual DateTime EndTime { get; set; }
|
||||
public virtual DateTime SaveTime { get; set; }
|
||||
public virtual bool Dirty { get; set; }
|
||||
public virtual bool RsltsSent { get; set; }
|
||||
public virtual bool RsltsPrinted { get; set; }
|
||||
@@ -156,6 +157,7 @@ namespace Results.Entities
|
||||
Counter10 = oriBatch.Counter10;
|
||||
StartTime = oriBatch.StartTime;
|
||||
EndTime = oriBatch.EndTime;
|
||||
SaveTime = oriBatch.SaveTime;
|
||||
Dirty = oriBatch.Dirty;
|
||||
RsltsSent = oriBatch.RsltsSent;
|
||||
RsltsPrinted = oriBatch.RsltsPrinted;
|
||||
@@ -322,7 +324,8 @@ namespace Results.Entities
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("Batch #{0}, Start:{1}, End:{2}, Procedure:{3}", BatchNr, StartTime, EndTime, ProcedureName);
|
||||
return string.Format("Batch {0} ({1}s) Start {2}, End {3}, Proc={4}",
|
||||
BatchNr, (EndTime - StartTime).TotalSeconds, StartTime, EndTime, ProcedureName);
|
||||
}
|
||||
|
||||
public virtual string ToString(int i)
|
||||
@@ -363,6 +366,7 @@ namespace Results.Entities
|
||||
writer.Write(Counter10);
|
||||
writer.Write(StartTime.ToString());
|
||||
writer.Write(EndTime.ToString());
|
||||
writer.Write(SaveTime.ToString());
|
||||
writer.Write(Dirty);
|
||||
writer.Write(RsltsSent);
|
||||
writer.Write(RsltsPrinted);
|
||||
@@ -429,6 +433,7 @@ namespace Results.Entities
|
||||
Counter10 = reader.ReadInt32();
|
||||
StartTime = DateTime.Parse(reader.ReadString());
|
||||
EndTime = DateTime.Parse(reader.ReadString());
|
||||
SaveTime = DateTime.Parse(reader.ReadString());
|
||||
Dirty = reader.ReadBoolean();
|
||||
RsltsSent = reader.ReadBoolean();
|
||||
RsltsPrinted = reader.ReadBoolean();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -55,8 +55,7 @@ namespace Results.Entities
|
||||
public virtual DateTime StartTime() { return TestRslt.StartTime; }
|
||||
public virtual DateTime EndTime() { return TestRslt.EndTime; }
|
||||
public virtual double FlowSetTime() { return TestRslt.FlowSetTime; } /// [s]
|
||||
public virtual double FlowMass() { return TestRslt.FlowMass; } /// [kg/h]
|
||||
public virtual double FlowVolume() { return TestRslt.FlowVolume; } /// [m3/h]
|
||||
public virtual double Flow() { return TestRslt.Flow; } /// [m3/h]
|
||||
public virtual double ErrorMaster() { return TestRslt.ErrorMaster; } /// [%]
|
||||
public virtual double DensityLine() { return TestRslt.DensityLine; }
|
||||
public virtual Components Components(){ return TestRslt.Components; }
|
||||
@@ -76,12 +75,14 @@ namespace Results.Entities
|
||||
|
||||
public virtual string ProcedureName() { return WaterMeter.Batch.ProcedureName; }
|
||||
public virtual int BatchNr() { return WaterMeter.Batch.BatchNr; }
|
||||
public virtual string SerialNr() { return WaterMeter.SerialNr; }
|
||||
public virtual string SerialNr() { return (CompoundMeterId == (byte)Common.CompoundMeterId.CompoundAux)
|
||||
? WaterMeter.SerialNrAux
|
||||
: WaterMeter.SerialNr; }
|
||||
public virtual string EndState() { return WaterMeter.EndState; }
|
||||
public virtual double QRise() { return WaterMeter.QRise; } /// [m3/h]
|
||||
public virtual double QFall() { return WaterMeter.QFall; } /// [m3/h]
|
||||
|
||||
public virtual bool Evaluate() { return TestData().Evaluate; }
|
||||
public virtual bool Evaluate() { return TestData().Evaluate; }
|
||||
public virtual Publish Publish() { return (Publish)TestData().Publish; }
|
||||
|
||||
public virtual WaterMeterData WaterMeterData() { return WaterMeter.WaterMeterData; }
|
||||
@@ -99,6 +100,13 @@ namespace Results.Entities
|
||||
public virtual bool IsDataStream() { return (RegReaderType == (int)RegisterReaderType.DataStream); }
|
||||
public virtual bool IsManual() { return (RegReaderType == (int)RegisterReaderType.Manual); }
|
||||
|
||||
public virtual string PassedOrErrorFlagsStr()
|
||||
{
|
||||
string eFlags = Utils.ErrorFlagsStr(ErrorIndicators);
|
||||
var str = string.IsNullOrEmpty(eFlags) ? PassedColorStr(null) : eFlags;
|
||||
return str;
|
||||
}
|
||||
|
||||
public virtual string PassedColorStr(string yesNoFormatOrEmpty)
|
||||
{
|
||||
if (string.IsNullOrEmpty(yesNoFormatOrEmpty))
|
||||
|
||||
@@ -26,10 +26,10 @@ namespace Results.Entities
|
||||
public virtual double ErrLimLo { get; set; } /// [%] usually < 0, in case of heat meters: 1=class1, 2=class2, 3=class3
|
||||
public virtual double ErrLimHi { get; set; } /// [%] usually > 0, in case of heat meters: -Qn in m3/h
|
||||
public virtual double ErrLimMargin { get; set; } /// [%] makes error limits tighter: 0 <= ErrLimMargin <= abs(ErrLimXx)
|
||||
public virtual bool DoControlWaterTemp { get; set; }
|
||||
public virtual float TempLimLo { get; set; }
|
||||
public virtual float TempLimHi { get; set; }
|
||||
public virtual sbyte Publish { get; set; } /// 0=no, 1=in all protocols, 2=on screen, 3=internal
|
||||
public virtual string TempControl { get; set; }
|
||||
public virtual sbyte Publish { get; set; } /// 0=no, 1=in all protocols, 2=on screen, 3=internal
|
||||
public virtual bool Evaluate { get; set; }
|
||||
|
||||
|
||||
@@ -45,22 +45,22 @@ namespace Results.Entities
|
||||
public TestData(Test test)
|
||||
: this()
|
||||
{
|
||||
Name = test.Name;
|
||||
Repeats = test.Repeats;
|
||||
Qtg = (double)test.Qtg;
|
||||
Qfrom = (double)test.Qfrom;
|
||||
Qto = (double)test.Qto;
|
||||
TargetVolume = (double)test.Volume;
|
||||
TargetTime = (double)test.TestTime;
|
||||
Method = test.Method;
|
||||
ErrLimLo = (double)test.ErrLimLo;
|
||||
ErrLimHi = (double)test.ErrLimHi;
|
||||
ErrLimMargin = (double)test.Uncertainty;
|
||||
DoControlWaterTemp = test.DoControlWaterTemp;
|
||||
TempLimLo = test.TempLimLo;
|
||||
TempLimHi = test.TempLimHi;
|
||||
Publish = test.Publish;
|
||||
Evaluate = test.DoEvaluate;
|
||||
Name = test.Name;
|
||||
Repeats = test.Repeats;
|
||||
Qtg = test.Qtg;
|
||||
Qfrom = test.QfromM3ph();
|
||||
Qto = test.QtoM3ph();
|
||||
TargetVolume = test.Volume;
|
||||
TargetTime = test.TestTime;
|
||||
Method = test.Method;
|
||||
ErrLimLo = test.ErrLimLo;
|
||||
ErrLimHi = test.ErrLimHi;
|
||||
ErrLimMargin = test.Uncertainty;
|
||||
TempLimLo = test.TempLimLo;
|
||||
TempLimHi = test.TempLimHi;
|
||||
TempControl = test.TempControl;
|
||||
Publish = test.Publish;
|
||||
Evaluate = test.DoEvaluate;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -68,22 +68,22 @@ namespace Results.Entities
|
||||
/// </summary>
|
||||
public TestData(TestData oriTestData)
|
||||
{
|
||||
Name = oriTestData.Name;
|
||||
Repeats = oriTestData.Repeats;
|
||||
Qtg = oriTestData.Qtg;
|
||||
Qfrom = oriTestData.Qfrom;
|
||||
Qto = oriTestData.Qto;
|
||||
TargetVolume = oriTestData.TargetVolume;
|
||||
TargetTime = oriTestData.TargetTime;
|
||||
Method = oriTestData.Method;
|
||||
ErrLimLo = oriTestData.ErrLimLo;
|
||||
ErrLimHi = oriTestData.ErrLimHi;
|
||||
ErrLimMargin = oriTestData.ErrLimMargin;
|
||||
DoControlWaterTemp = oriTestData.DoControlWaterTemp;
|
||||
TempLimLo = oriTestData.TempLimLo;
|
||||
TempLimHi = oriTestData.TempLimHi;
|
||||
Publish = oriTestData.Publish;
|
||||
Evaluate = oriTestData.Evaluate;
|
||||
Name = oriTestData.Name;
|
||||
Repeats = oriTestData.Repeats;
|
||||
Qtg = oriTestData.Qtg;
|
||||
Qfrom = oriTestData.Qfrom;
|
||||
Qto = oriTestData.Qto;
|
||||
TargetVolume = oriTestData.TargetVolume;
|
||||
TargetTime = oriTestData.TargetTime;
|
||||
Method = oriTestData.Method;
|
||||
ErrLimLo = oriTestData.ErrLimLo;
|
||||
ErrLimHi = oriTestData.ErrLimHi;
|
||||
ErrLimMargin = oriTestData.ErrLimMargin;
|
||||
TempLimLo = oriTestData.TempLimLo;
|
||||
TempLimHi = oriTestData.TempLimHi;
|
||||
TempControl = oriTestData.TempControl;
|
||||
Publish = oriTestData.Publish;
|
||||
Evaluate = oriTestData.Evaluate;
|
||||
}
|
||||
|
||||
|
||||
@@ -105,13 +105,10 @@ namespace Results.Entities
|
||||
if (ErrLimLo != td.ErrLimLo) return false;
|
||||
if (ErrLimHi != td.ErrLimHi) return false;
|
||||
if (ErrLimMargin != td.ErrLimMargin) return false;
|
||||
if (DoControlWaterTemp != td.DoControlWaterTemp) return false;
|
||||
if (DoControlWaterTemp)
|
||||
{
|
||||
if (TempLimLo != td.TempLimLo) return false;
|
||||
if (TempLimHi != td.TempLimHi) return false;
|
||||
}
|
||||
if (Publish != td.Publish) return false;
|
||||
if (TempLimLo != td.TempLimLo) return false;
|
||||
if (TempLimHi != td.TempLimHi) return false;
|
||||
if (TempControl != td.TempControl) return false;
|
||||
if (Publish != td.Publish) return false;
|
||||
if (Evaluate != td.Evaluate) return false;
|
||||
|
||||
return true;
|
||||
@@ -150,9 +147,9 @@ namespace Results.Entities
|
||||
writer.Write(ErrLimLo);
|
||||
writer.Write(ErrLimHi);
|
||||
writer.Write(ErrLimMargin);
|
||||
writer.Write(DoControlWaterTemp);
|
||||
writer.Write(TempLimLo);
|
||||
writer.Write(TempLimHi);
|
||||
writer.Write((TempControl != null) ? TempControl : string.Empty);
|
||||
writer.Write(Publish);
|
||||
writer.Write(Evaluate);
|
||||
}
|
||||
@@ -171,9 +168,9 @@ namespace Results.Entities
|
||||
ErrLimLo = reader.ReadDouble();
|
||||
ErrLimHi = reader.ReadDouble();
|
||||
ErrLimMargin = reader.ReadDouble();
|
||||
DoControlWaterTemp = reader.ReadBoolean();
|
||||
TempLimLo = reader.ReadSingle();
|
||||
TempLimHi = reader.ReadSingle();
|
||||
TempControl = reader.ReadString();
|
||||
Publish = reader.ReadSByte();
|
||||
Evaluate = reader.ReadBoolean();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -44,18 +44,18 @@ namespace Results.Entities
|
||||
public virtual double DensityLine { get; set; } /// [kg/m3]
|
||||
public virtual double DensityDiv { get; set; } /// [kg/m3]
|
||||
public virtual double MassOfEvapWater { get; set; } /// [kg]
|
||||
public virtual double FlowMass { get; set; } /// [kg/h] calculated from conventional true value
|
||||
public virtual double FlowVolume { get; set; } /// [m3/h]
|
||||
public virtual double SpareDbl { get; set; }
|
||||
public virtual double Flow { get; set; } /// [m3/h] calculated from conventional true value
|
||||
public virtual double VolumeCTV { get; set; } /// [l] Volume conventional true value
|
||||
public virtual double VolumeMaster { get; set; } /// [l] Volume from the master flow meter
|
||||
public virtual double ErrorMaster { get; set; } /// [%] Error of the master flow meter
|
||||
|
||||
public virtual float DiverterStart { get; set; } /// [s] Diverter switch time when test starts
|
||||
public virtual float DiverterStart { get; set; } /// [s] Diverter switch time or a start/stop valve open time when the test starts
|
||||
public virtual float DivStart10 { get; set; } /// [s] Diverter switch time when test starts at level 10 (e.g. 10%) (not mapped to DB)
|
||||
public virtual float DivStart50 { get; set; } /// [s] Diverter switch time when test starts at level 50 (e.g. 50%) (not mapped to DB)
|
||||
public virtual float DivStart90 { get; set; } /// [s] Diverter switch time when test starts at level 90 (e.g. 90%) (not mapped to DB)
|
||||
|
||||
public virtual float DiverterEnd { get; set; } /// [s] Diverter switch time when test ends
|
||||
public virtual float DiverterEnd { get; set; } /// [s] Diverter switch time or a start/stop valve close time when the test ends
|
||||
public virtual float DivEnd90 { get; set; } /// [s] Diverter switch time when test starts at level 90 (e.g. 90%) (not mapped to DB)
|
||||
public virtual float DivEnd50 { get; set; } /// [s] Diverter switch time when test starts at level 50 (e.g. 50%) (not mapped to DB)
|
||||
public virtual float DivEnd10 { get; set; } /// [s] Diverter switch time when test starts at level 10 (e.g. 10%) (not mapped to DB)
|
||||
@@ -147,7 +147,8 @@ namespace Results.Entities
|
||||
public virtual int Counter5 { get; set; }
|
||||
|
||||
/// Wrappers
|
||||
public virtual string Name() { return Utils.GetTestName(TestData.Name, TestData.Repeats, RepetitionNr); }
|
||||
public virtual string Name() { return Common.Utils.GetTestName(TestData.Name, TestData.Repeats, RepetitionNr); }
|
||||
public virtual string Key() { return string.Format("{0}~{1}~{2}~{3}", TestData.Name, Part, TestData.Repeats, RepetitionNr); } /// Unique key
|
||||
public virtual int Repeats() { return TestData.Repeats; }
|
||||
public virtual double Qfrom() { return TestData.Qfrom; }
|
||||
public virtual double Qto() { return TestData.Qto; }
|
||||
@@ -158,11 +159,11 @@ namespace Results.Entities
|
||||
public virtual string Scale() { return (Components != null && Components.Scale != null) ? Components.Scale : string.Empty; }
|
||||
public virtual string Diverter() { return (Components != null && Components.Diverter != null) ? Components.Diverter : string.Empty; }
|
||||
public virtual string RegValve() { return (Components != null && Components.RegValve != null) ? Components.RegValve : string.Empty; }
|
||||
public virtual bool IsRelErrTest() { return (MethodClass != null) ? (MethodClass.Contains("FixedStart") || MethodClass.Contains("FlyingStart") || MethodClass.Contains("CombinedWithDetection") || MethodClass.Contains("DiverterTest") || MethodClass.Contains("ManualEntry")) : true; }
|
||||
public virtual bool IsRelErrTest() { return (MethodClass != null) ? (MethodClass.Contains("StandingStart") || MethodClass.Contains("FlyingStart") || MethodClass.Contains("CombinedWithDetection") || MethodClass.Contains("DiverterTest") || MethodClass.Contains("ManualEntry")) : true; }
|
||||
public virtual bool IsPMaxTest() { return (MethodClass != null) ? (MethodClass.Contains("PMaxTest") || MethodClass.Contains("LeakTest") || TestData.Method.ToLower().Contains("pmax")) : true; }
|
||||
public virtual bool IsStartStop() { return (MethodClass != null) ? MethodClass.Contains("FixedStart") : true; }
|
||||
public virtual bool IsStartStop() { return (MethodClass != null) ? MethodClass.Contains("StandingStart") : true; }
|
||||
public virtual bool IsDiverter() { return (MethodClass != null) ? ((MethodClass.Contains("FlyingStart") && MethodClass.Contains("MassColl")) || MethodClass.Contains("DiverterTest")) : true; }
|
||||
public virtual bool IsVolumeMethod() { return (MethodClass != null) ? (MethodClass.Contains("TestMethods.FixedStart.") || MethodClass.Contains("TestMethods.FlyingStart.")) : false; }
|
||||
public virtual bool IsVolumeMethod() { return (MethodClass != null) ? (MethodClass.Contains("TestMethods.StandingStart.") || MethodClass.Contains("TestMethods.FlyingStart.")) : false; }
|
||||
|
||||
public virtual string MethodElde()
|
||||
{
|
||||
@@ -171,9 +172,9 @@ namespace Results.Entities
|
||||
else if (MethodClass.Contains("TestMethods.FlyingStartMassCollectionProlonged.")) return "MS";
|
||||
else if (MethodClass.Contains("TestMethods.FlyingStartMassCollectionComparative.")) return "MS";
|
||||
else if (MethodClass.Contains("TestMethods.FlyingStart.")) return "VS";
|
||||
else if (MethodClass.Contains("TestMethods.FixedStartMassCollection.")) return "MP";
|
||||
else if (MethodClass.Contains("TestMethods.FixedStartTankCollection.")) return "VP";
|
||||
else if (MethodClass.Contains("TestMethods.FixedStart.")) return "VP";
|
||||
else if (MethodClass.Contains("TestMethods.StandingStartMassCollection.")) return "MP";
|
||||
else if (MethodClass.Contains("TestMethods.StandingStartTankCollection.")) return "VP";
|
||||
else if (MethodClass.Contains("TestMethods.StandingStart.")) return "VP";
|
||||
else return string.Empty;
|
||||
}
|
||||
|
||||
@@ -229,7 +230,7 @@ namespace Results.Entities
|
||||
public virtual float TempLimLo() { return TestData.TempLimLo; }
|
||||
public virtual float TempLimHi() { return TestData.TempLimHi; }
|
||||
public virtual bool Evaluate() { return TestData.Evaluate; }
|
||||
public virtual Common.Publish Publish() { return (Publish)TestData.Publish; }
|
||||
public virtual Publish Publish() { return (Publish)TestData.Publish; }
|
||||
|
||||
|
||||
public TestRslt()
|
||||
@@ -277,8 +278,8 @@ namespace Results.Entities
|
||||
DensityLine = src.DensityLine;
|
||||
DensityDiv = src.DensityDiv;
|
||||
MassOfEvapWater = src.MassOfEvapWater;
|
||||
FlowMass = src.FlowMass;
|
||||
FlowVolume = src.FlowVolume;
|
||||
SpareDbl = src.SpareDbl;
|
||||
Flow = src.Flow;
|
||||
VolumeCTV = src.VolumeCTV;
|
||||
VolumeMaster = src.VolumeMaster;
|
||||
ErrorMaster = src.ErrorMaster;
|
||||
@@ -415,7 +416,7 @@ namespace Results.Entities
|
||||
return string.Format("TestRslt: Part={0} RepetitionNr={1} TestDone={2} Remark={3} StartTime={4} EndTime={5} FlowSetTime={6} TestTime={7} PulsesMaster={8} ConstMaster={9} MassStartRaw={10} MassStart={11} MassEndRaw={12} MassEnd={13} DensityIn={14} DensityOut={15} DensityDiv={16} MassOfEvapWaater={17} FlowMass={18} FlowVolume={19} VolumeCTV={20} VolumeMaster={21} ErrorMaster={22} DiverterStart={85} DiverterEnd={86} ErrorFlags={23} InfoFlags={24} AmbTempMean={25} AmbTempStart={26} AmbTempEnd={27} AmbTempMin={28} AmbTempMax={29} AmbPressMean={30} AmbPressStart={31} AmbPressEnd={32} AmbPressMin={33} AmbPressMax={34} AmbHumiMean={35} AmbHumiStart={36} AmbHumiEnd={37} AmbHumiMin={38} AmbHumiMax={39} PressUpMean={40} PressUpStart={41} PressUpEnd={42} PressUpMin={43} PressUpMax={44} PressDownMean={45} PressDownStart={46} PressDownEnd={47} PressDownMin={48} PressDownMax={49} PressDeltaMean={50} PressDeltaStart={51} PressDeltaEnd={52} PressDeltaMin={53} PressDeltaMax={54} TempUpMean={55} TempUpStart={56} TempUpEnd={57} TempUpMin={58} TempUpMax={59} TempDownMean={60} TempDownStart={61} TempDownEnd={62} TempDownMin={63} TempDownMax={64} TempDivMean={65} TempDivStart={66} TempDivEnd={67} TempDivMin={68} TempDivMax={69} FlowMean={70} FlowStart={71} FlowEnd={72} FlowMin={73} FlowMax={74} Custom1={75} Custom2={76} Custom3={77} Custom4={78} Custom5={79} Custom6={80} Custom7={81} Custom8={82} Custom9={83} Custom10={84}",
|
||||
Part, RepetitionNr, TestDone, Remark, StartTime, EndTime, FlowSetTime, TestTime,
|
||||
PulsesMaster, ConstMaster, MassStartRaw, MassStart, MassEndRaw, MassEnd,
|
||||
DensityIn, DensityLine, DensityDiv, MassOfEvapWater, FlowMass, FlowVolume,
|
||||
DensityIn, DensityLine, DensityDiv, MassOfEvapWater, SpareDbl, Flow,
|
||||
VolumeCTV, VolumeMaster, ErrorMaster, ErrorFlags, InfoFlags,
|
||||
AmbTempMean, AmbTempStart, AmbTempEnd, AmbTempMin, AmbTempMax,
|
||||
AmbPressMean, AmbPressStart, AmbPressEnd, AmbPressMin, AmbPressMax,
|
||||
@@ -484,8 +485,8 @@ namespace Results.Entities
|
||||
writer.Write(DensityLine);
|
||||
writer.Write(DensityDiv);
|
||||
writer.Write(MassOfEvapWater);
|
||||
writer.Write(FlowMass);
|
||||
writer.Write(FlowVolume);
|
||||
writer.Write(SpareDbl);
|
||||
writer.Write(Flow);
|
||||
writer.Write(VolumeCTV);
|
||||
writer.Write(VolumeMaster);
|
||||
writer.Write(ErrorMaster);
|
||||
@@ -625,8 +626,8 @@ namespace Results.Entities
|
||||
DensityLine = reader.ReadDouble();
|
||||
DensityDiv = reader.ReadDouble();
|
||||
MassOfEvapWater = reader.ReadDouble();
|
||||
FlowMass = reader.ReadDouble();
|
||||
FlowVolume = reader.ReadDouble();
|
||||
SpareDbl = reader.ReadDouble();
|
||||
Flow = reader.ReadDouble();
|
||||
VolumeCTV = reader.ReadDouble();
|
||||
VolumeMaster = reader.ReadDouble();
|
||||
ErrorMaster = reader.ReadDouble();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -99,7 +99,7 @@ namespace Results.Entities
|
||||
public virtual string CompleteSerialNr { get; set; }
|
||||
public virtual string OriRadioAddress { get; set; } /// Not mapped to DB !!! Original radio address of a 640 water meter (albatrosID)
|
||||
public virtual int WMTypeRevision { get; set; }
|
||||
public virtual int Pruefindex { get; set; } /// >= 1 ... pruefindex
|
||||
public virtual int Pruefindex { get; set; } /// >=1 ... pruefindex, 0 ... unknown (no reading from DB yet)
|
||||
public virtual int HydrPruefung { get; set; }
|
||||
public virtual object RawTestInfos { get; set; } /// IList<SensusTestInfo> fetched from Oracle at the beginning of the cycle, not mapped to DB !!!
|
||||
public virtual object CompleteTestInfos { get; set; } /// SensusTestInfo[] obtained as a best match at the beginning of the cycle, not mapped to DB !!!
|
||||
@@ -117,15 +117,23 @@ namespace Results.Entities
|
||||
///
|
||||
/// Wrappers
|
||||
///
|
||||
public virtual string ProductName() { return WaterMeterData.ProductName; }
|
||||
public virtual string GetEndStateAux() { return Compound() ? EndStateAux : string.Empty; }
|
||||
public virtual void SetEndStateAux(string s) { if (Compound()) EndStateAux = s; }
|
||||
|
||||
public virtual string GetStartState() { return Compound() ? string.Empty : EndStateAux; }
|
||||
public virtual void SetStartState(string s) { if (!Compound()) EndStateAux = s; }
|
||||
|
||||
public virtual string ProductName() { return WaterMeterData.ProductName; }
|
||||
public virtual string Producer() { return WaterMeterData.Producer; }
|
||||
public virtual string MetrologicalClass() { return WaterMeterData.MetrologicalClass; }
|
||||
public virtual string ApprovalInfo() { return WaterMeterData.ApprovalInfo; }
|
||||
public virtual bool NewQnames() { return WaterMeterData.NewQnames; }
|
||||
public virtual FlowNames Qnames() { return (FlowNames)WaterMeterData.Qnames; }
|
||||
public virtual double Q4_Qmax() { return WaterMeterData.Q4_Qmax; }
|
||||
public virtual double Q3_Qn() { return WaterMeterData.Q3_Qn; }
|
||||
public virtual double Q2_Qt() { return WaterMeterData.Q2_Qt; }
|
||||
public virtual double Q1_Qmin() { return WaterMeterData.Q1_Qmin; }
|
||||
public virtual double ErrLimHiQ() { return WaterMeterData.ErrLimHiQ; }
|
||||
public virtual double ErrLimLoQ() { return WaterMeterData.ErrLimLoQ; }
|
||||
|
||||
public virtual bool Compound() { return WaterMeterData.Compound; }
|
||||
public virtual bool HeatMeter() { return WaterMeterData.HeatMeter; }
|
||||
@@ -430,7 +438,7 @@ namespace Results.Entities
|
||||
Suffix = string.Empty;
|
||||
CompleteSerialNr = string.Empty;
|
||||
WMTypeRevision = 0;
|
||||
Pruefindex = 1;
|
||||
Pruefindex = 0;
|
||||
HydrPruefung = 0;
|
||||
RawTestInfos = null;
|
||||
CompleteTestInfos = null;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -17,11 +17,14 @@ namespace Results.Entities
|
||||
public virtual double DN { get; set; } /// [mm]
|
||||
public virtual double L { get; set; } /// [mm]
|
||||
public virtual Mounting Mounting { get; set; } /// H / V / S / F
|
||||
public virtual bool NewQnames { get; set; } /// Yes = Q3... No = Qn...
|
||||
public virtual sbyte Qnames { get; set; } /// see Common.Enums.FlowNames
|
||||
public virtual double Q4_Qmax { get; set; } /// [m3/h]
|
||||
public virtual double Q3_Qn { get; set; } /// [m3/h]
|
||||
public virtual double Q2_Qt { get; set; } /// [m3/h]
|
||||
public virtual double Q1_Qmin { get; set; } /// [m3/h]
|
||||
public virtual double ErrLimHiQ { get; set; } /// [%]
|
||||
public virtual double ErrLimLoQ { get; set; } /// [%]
|
||||
|
||||
public virtual string MetrologicalClass { get; set; }
|
||||
public virtual TemperatureClass TemperatureClass { get; set; }
|
||||
public virtual PressureLossClass PressureLossClass { get; set; }
|
||||
@@ -36,6 +39,7 @@ namespace Results.Entities
|
||||
public virtual double Q3_Qn_Aux { get; set; } /// [m3/h]
|
||||
public virtual string MetrologicalClassAux { get; set; }
|
||||
public virtual string ApprovalInfoAux { get; set; }
|
||||
public virtual double PulsesPerLtrAux { get; set; }
|
||||
|
||||
public virtual Medium Medium { get; set; }
|
||||
public virtual string Text1 { get; set; }
|
||||
@@ -52,7 +56,9 @@ namespace Results.Entities
|
||||
/// </summary>
|
||||
public WaterMeterData()
|
||||
{
|
||||
}
|
||||
PulsesPerLtr = 1;
|
||||
PulsesPerLtrAux = 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Copy constructor, copies all except of Id
|
||||
@@ -64,11 +70,13 @@ namespace Results.Entities
|
||||
DN = oriWMData.DN;
|
||||
L = oriWMData.L;
|
||||
Mounting = oriWMData.Mounting;
|
||||
NewQnames = oriWMData.NewQnames;
|
||||
Qnames = oriWMData.Qnames;
|
||||
Q4_Qmax = oriWMData.Q4_Qmax;
|
||||
Q3_Qn = oriWMData.Q3_Qn;
|
||||
Q2_Qt = oriWMData.Q2_Qt;
|
||||
Q1_Qmin = oriWMData.Q1_Qmin;
|
||||
ErrLimHiQ = oriWMData.ErrLimHiQ;
|
||||
ErrLimLoQ = oriWMData.ErrLimLoQ;
|
||||
MetrologicalClass = oriWMData.MetrologicalClass;
|
||||
TemperatureClass = oriWMData.TemperatureClass;
|
||||
PressureLossClass = oriWMData.PressureLossClass;
|
||||
@@ -81,6 +89,7 @@ namespace Results.Entities
|
||||
Q3_Qn_Aux = oriWMData.Q3_Qn_Aux;
|
||||
MetrologicalClassAux = oriWMData.MetrologicalClassAux;
|
||||
ApprovalInfoAux = oriWMData.ApprovalInfoAux;
|
||||
PulsesPerLtrAux = oriWMData.PulsesPerLtrAux;
|
||||
Medium = oriWMData.Medium;
|
||||
Text1 = oriWMData.Text1;
|
||||
Text2 = oriWMData.Text2;
|
||||
@@ -105,11 +114,13 @@ namespace Results.Entities
|
||||
if (DN != wmd.DN) return false;
|
||||
if (L != wmd.L) return false;
|
||||
if (Mounting != wmd.Mounting) return false;
|
||||
if (NewQnames != wmd.NewQnames) return false;
|
||||
if (Qnames != wmd.Qnames) return false;
|
||||
if (Q4_Qmax != wmd.Q4_Qmax) return false;
|
||||
if (Q3_Qn != wmd.Q3_Qn) return false;
|
||||
if (Q2_Qt != wmd.Q2_Qt) return false;
|
||||
if (Q1_Qmin != wmd.Q1_Qmin) return false;
|
||||
if (ErrLimHiQ != wmd.ErrLimHiQ) return false;
|
||||
if (ErrLimLoQ != wmd.ErrLimLoQ) return false;
|
||||
if (MetrologicalClass != wmd.MetrologicalClass) return false;
|
||||
if (TemperatureClass != wmd.TemperatureClass) return false;
|
||||
if (PressureLossClass != wmd.PressureLossClass) return false;
|
||||
@@ -122,6 +133,7 @@ namespace Results.Entities
|
||||
if (Q3_Qn_Aux != wmd.Q3_Qn_Aux) return false;
|
||||
if (MetrologicalClassAux != wmd.MetrologicalClassAux) return false;
|
||||
if (ApprovalInfoAux != wmd.ApprovalInfoAux) return false;
|
||||
if (PulsesPerLtrAux != wmd.PulsesPerLtrAux) return false;
|
||||
if (Medium != wmd.Medium) return false;
|
||||
if (Text1 != wmd.Text1) return false;
|
||||
if (Text2 != wmd.Text2) return false;
|
||||
@@ -161,11 +173,13 @@ namespace Results.Entities
|
||||
writer.Write(DN);
|
||||
writer.Write(L);
|
||||
writer.Write((int)Mounting);
|
||||
writer.Write(NewQnames);
|
||||
writer.Write((int)Qnames);
|
||||
writer.Write(Q4_Qmax);
|
||||
writer.Write(Q3_Qn);
|
||||
writer.Write(Q2_Qt);
|
||||
writer.Write(Q1_Qmin);
|
||||
writer.Write(ErrLimHiQ);
|
||||
writer.Write(ErrLimLoQ);
|
||||
writer.Write((MetrologicalClass != null) ? MetrologicalClass : string.Empty);
|
||||
writer.Write((int)TemperatureClass);
|
||||
writer.Write((int)PressureLossClass);
|
||||
@@ -178,6 +192,7 @@ namespace Results.Entities
|
||||
writer.Write(Q3_Qn_Aux);
|
||||
writer.Write((MetrologicalClassAux != null) ? MetrologicalClassAux : string.Empty);
|
||||
writer.Write((ApprovalInfoAux != null) ? ApprovalInfoAux : string.Empty);
|
||||
writer.Write(PulsesPerLtrAux);
|
||||
writer.Write((int)Medium);
|
||||
writer.Write((Text1 != null) ? Text1 : string.Empty);
|
||||
writer.Write((Text2 != null) ? Text2 : string.Empty);
|
||||
@@ -197,11 +212,13 @@ namespace Results.Entities
|
||||
DN = reader.ReadDouble();
|
||||
L = reader.ReadDouble();
|
||||
Mounting = (Mounting)reader.ReadInt32();
|
||||
NewQnames = reader.ReadBoolean();
|
||||
Qnames = (sbyte)reader.ReadInt32();
|
||||
Q4_Qmax = reader.ReadDouble();
|
||||
Q3_Qn = reader.ReadDouble();
|
||||
Q2_Qt = reader.ReadDouble();
|
||||
Q1_Qmin = reader.ReadDouble();
|
||||
ErrLimHiQ = reader.ReadDouble();
|
||||
ErrLimLoQ = reader.ReadDouble();
|
||||
MetrologicalClass = reader.ReadString();
|
||||
TemperatureClass = (TemperatureClass)reader.ReadInt32();
|
||||
PressureLossClass = (PressureLossClass)reader.ReadInt32();
|
||||
@@ -214,6 +231,7 @@ namespace Results.Entities
|
||||
Q3_Qn_Aux = reader.ReadDouble();
|
||||
MetrologicalClassAux = reader.ReadString();
|
||||
ApprovalInfoAux = reader.ReadString();
|
||||
PulsesPerLtrAux = reader.ReadDouble();
|
||||
Medium = (Medium)reader.ReadInt32();
|
||||
Text1 = reader.ReadString();
|
||||
Text2 = reader.ReadString();
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace Results.Forms
|
||||
public int PopupResultsWidth;
|
||||
public int PopupResultsHeight;
|
||||
public int[] RsltsClmnWidths;
|
||||
public IList<string> SerialNrs;
|
||||
|
||||
|
||||
///
|
||||
@@ -126,7 +127,8 @@ namespace Results.Forms
|
||||
int displayedControlsCount = 0;
|
||||
for (int i = 0; i < results.Batch.WaterMeters.Count; i++)
|
||||
{
|
||||
if ((!results.Batch.WaterMeters[i].Disabled) || ShowDisabledPositions)
|
||||
if ((ShowDisabledPositions || !results.Batch.WaterMeters[i].Disabled) &&
|
||||
(SerialNrs == null || SerialNrs.Contains(results.Batch.WaterMeters[i].SerialNr)))
|
||||
{
|
||||
displayedControlsCount++;
|
||||
}
|
||||
@@ -167,7 +169,8 @@ namespace Results.Forms
|
||||
firstEnabledControl = null;
|
||||
for (int i = 0; i < results.Batch.WaterMeters.Count; i++)
|
||||
{
|
||||
if (!results.Batch.WaterMeters[i].Disabled || ShowDisabledPositions)
|
||||
if ((ShowDisabledPositions || !results.Batch.WaterMeters[i].Disabled) &&
|
||||
(SerialNrs == null || SerialNrs.Contains(results.Batch.WaterMeters[i].SerialNr)))
|
||||
{
|
||||
/// Create one water meter position / control
|
||||
wmRsltsCtrl[ix] = (TestsArrangement == TestsArrangement.Rows)
|
||||
@@ -216,7 +219,8 @@ namespace Results.Forms
|
||||
int ctrlIx = 0;
|
||||
for (int wmNr0 = 0; wmNr0 < results.Batch.WaterMeters.Count; wmNr0++)
|
||||
{
|
||||
if (!results.Batch.WaterMeters[wmNr0].Disabled || ShowDisabledPositions)
|
||||
if ((ShowDisabledPositions || !results.Batch.WaterMeters[wmNr0].Disabled) &&
|
||||
(SerialNrs == null || SerialNrs.Contains(results.Batch.WaterMeters[wmNr0].SerialNr)))
|
||||
{
|
||||
if (ctrlIx < wmRsltsCtrl.Length) wmRsltsCtrl[ctrlIx++].Update(results.Batch.WaterMeters[wmNr0]);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2019 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2019-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -14,6 +14,13 @@ namespace Results.Forms
|
||||
{
|
||||
public partial class MoreWMResultsDlg : Form
|
||||
{
|
||||
enum Tabs
|
||||
{
|
||||
Results = 0,
|
||||
Graph,
|
||||
Tracing,
|
||||
}
|
||||
|
||||
public MoreWMResultsDlg(Results.Entities.WaterMeter wm, IList<ReferenceRecord> refRecords)
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -23,14 +30,15 @@ namespace Results.Forms
|
||||
ShowAllResults(wm);
|
||||
ShowChart(wm);
|
||||
|
||||
/// Select the initial tab page to be displayed
|
||||
if (refRecords == null)
|
||||
{
|
||||
tabControl1.SelectTab(1);
|
||||
tabControl1.TabPages.RemoveAt(2);
|
||||
tabControl1.SelectTab((int)Tabs.Graph);
|
||||
tabControl1.TabPages.RemoveAt((int)Tabs.Tracing);
|
||||
}
|
||||
else
|
||||
{
|
||||
tabControl1.SelectTab(2);
|
||||
tabControl1.SelectTab((int)Tabs.Tracing);
|
||||
ShowTracingResults(wm, refRecords);
|
||||
}
|
||||
}
|
||||
@@ -39,9 +47,9 @@ namespace Results.Forms
|
||||
void Localize()
|
||||
{
|
||||
Text = Strings.Water_meter_results;
|
||||
tabControl1.TabPages[0].Text = Strings.All_results;
|
||||
tabControl1.TabPages[1].Text = Strings.Graphs;
|
||||
tabControl1.TabPages[2].Text = Strings.Production_tracing_results;
|
||||
tabControl1.TabPages[(int)Tabs.Results].Text = Strings.All_results;
|
||||
tabControl1.TabPages[(int)Tabs.Graph].Text = Strings.Graphs;
|
||||
tabControl1.TabPages[(int)Tabs.Tracing].Text = Strings.Production_tracing_results;
|
||||
}
|
||||
|
||||
|
||||
@@ -107,11 +115,7 @@ namespace Results.Forms
|
||||
|
||||
void ShowChart(Results.Entities.WaterMeter wm)
|
||||
{
|
||||
//chart.ChartAreas[0].AxisX.LabelStyle.Format = "dd.MM.yy";
|
||||
//chart.ChartAreas[0].AxisX.Interval = 1;
|
||||
//chart.ChartAreas[0].AxisX.IntervalType = ;
|
||||
|
||||
tabControl1.TabPages[1].Controls.Add(Results.Output.WMChart.GetChart(wm, false));
|
||||
tabControl1.TabPages[(int)Tabs.Graph].Controls.Add(Results.Output.WMChart.GetChart(wm, false));
|
||||
}
|
||||
|
||||
|
||||
|
||||
+7
-5
@@ -41,6 +41,7 @@
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
@@ -48,12 +49,13 @@
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tBox);
|
||||
this.splitContainer1.Panel1MinSize = 26;
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.lView);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(352, 318);
|
||||
this.splitContainer1.SplitterDistance = 25;
|
||||
this.splitContainer1.SplitterDistance = 26;
|
||||
this.splitContainer1.SplitterWidth = 1;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
@@ -62,7 +64,7 @@
|
||||
this.tBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.tBox.Name = "tBox";
|
||||
this.tBox.Size = new System.Drawing.Size(352, 20);
|
||||
this.tBox.Size = new System.Drawing.Size(352, 26);
|
||||
this.tBox.TabIndex = 0;
|
||||
this.tBox.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.tBox_MouseDoubleClick);
|
||||
//
|
||||
@@ -73,17 +75,17 @@
|
||||
this.lView.GridLines = true;
|
||||
this.lView.Location = new System.Drawing.Point(0, 0);
|
||||
this.lView.Name = "lView";
|
||||
this.lView.Size = new System.Drawing.Size(352, 292);
|
||||
this.lView.Size = new System.Drawing.Size(352, 291);
|
||||
this.lView.TabIndex = 0;
|
||||
this.lView.UseCompatibleStateImageBehavior = false;
|
||||
this.lView.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// OneWMResultsCtrl
|
||||
// OneWMResultsColumnsCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Name = "OneWMResultsCtrl";
|
||||
this.Name = "OneWMResultsColumnsCtrl";
|
||||
this.Size = new System.Drawing.Size(352, 318);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.PerformLayout();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2019 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2019-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Drawing;
|
||||
@@ -85,7 +85,11 @@ namespace Results.Forms
|
||||
|
||||
/// Update caption
|
||||
#if ORACLE_DB
|
||||
tBox.Text = caption = string.Format("{0} ({1}) {2}", (string.IsNullOrEmpty(wMtr.SerialNr) ? string.Empty : wMtr.SerialNr), (wMtr.Pruefindex % 100), message);
|
||||
tBox.Text = caption = string.Format("{0} ({1}) {2} {3}",
|
||||
wMtr.WMPosition,
|
||||
wMtr.Pruefindex == 0 ? "?" : string.Format("{0}x", wMtr.Pruefindex % 100),
|
||||
(string.IsNullOrEmpty(wMtr.SerialNr) ? string.Empty : wMtr.SerialNr),
|
||||
message);
|
||||
#else
|
||||
tBox.Text = caption = string.Format("s/n = {0}", string.IsNullOrEmpty(wMtr.SerialNr) ? string.Empty : wMtr.SerialNr);
|
||||
#endif
|
||||
|
||||
+7
-5
@@ -48,21 +48,23 @@
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tBox);
|
||||
this.splitContainer1.Panel1MinSize = 26;
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.lView);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(352, 318);
|
||||
this.splitContainer1.SplitterDistance = 25;
|
||||
this.splitContainer1.SplitterDistance = 26;
|
||||
this.splitContainer1.SplitterWidth = 1;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// tBox
|
||||
//
|
||||
this.tBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.tBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.tBox.Name = "tBox";
|
||||
this.tBox.Size = new System.Drawing.Size(352, 20);
|
||||
this.tBox.Size = new System.Drawing.Size(352, 26);
|
||||
this.tBox.TabIndex = 0;
|
||||
this.tBox.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.tBox_MouseDoubleClick);
|
||||
//
|
||||
@@ -73,17 +75,17 @@
|
||||
this.lView.GridLines = true;
|
||||
this.lView.Location = new System.Drawing.Point(0, 0);
|
||||
this.lView.Name = "lView";
|
||||
this.lView.Size = new System.Drawing.Size(352, 292);
|
||||
this.lView.Size = new System.Drawing.Size(352, 291);
|
||||
this.lView.TabIndex = 0;
|
||||
this.lView.UseCompatibleStateImageBehavior = false;
|
||||
this.lView.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// OneWMResultsCtrl
|
||||
// OneWMResultsRowsCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Name = "OneWMResultsCtrl";
|
||||
this.Name = "OneWMResultsRowsCtrl";
|
||||
this.Size = new System.Drawing.Size(352, 318);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.PerformLayout();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2019 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2019-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Drawing;
|
||||
@@ -97,7 +97,11 @@ namespace Results.Forms
|
||||
|
||||
/// Update caption
|
||||
#if ORACLE_DB
|
||||
tBox.Text = caption = string.Format("{0} ({1}) {2}", (string.IsNullOrEmpty(wMtr.SerialNr) ? string.Empty : wMtr.SerialNr), (wMtr.Pruefindex % 100), message);
|
||||
tBox.Text = caption = string.Format("{0} ({1}) {2} {3}",
|
||||
wMtr.WMPosition,
|
||||
wMtr.Pruefindex == 0 ? "?" : string.Format("{0}x", wMtr.Pruefindex % 100),
|
||||
(string.IsNullOrEmpty(wMtr.SerialNr) ? string.Empty : wMtr.SerialNr),
|
||||
message);
|
||||
#else
|
||||
tBox.Text = caption = string.Format("s/n = {0}", string.IsNullOrEmpty(wMtr.SerialNr) ? string.Empty : wMtr.SerialNr);
|
||||
#endif
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace Results.Forms
|
||||
Precision,
|
||||
Width,
|
||||
Alignment,
|
||||
Merge,
|
||||
TestID,
|
||||
Count,
|
||||
}
|
||||
@@ -91,7 +92,8 @@ namespace Results.Forms
|
||||
selectedResultsListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Precision });
|
||||
selectedResultsListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Width });
|
||||
selectedResultsListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Alignment });
|
||||
if (!SupressTestIDColumn)
|
||||
selectedResultsListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Merge });
|
||||
if (!SupressTestIDColumn)
|
||||
{
|
||||
selectedResultsListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Test_ID });
|
||||
}
|
||||
@@ -99,12 +101,16 @@ namespace Results.Forms
|
||||
/// Create controls used by ListViewEx to edit items
|
||||
unitsCB = new ComboBox();
|
||||
|
||||
ComboBox alignmentCB = new ComboBox();
|
||||
var alignmentCB = new ComboBox();
|
||||
for (Alignment a = 0; a < Alignment.Count; a++)
|
||||
{
|
||||
alignmentCB.Items.Add(a.ToDescription());
|
||||
}
|
||||
|
||||
var mergeCB = new ComboBox();
|
||||
mergeCB.Items.Add(Strings.No);
|
||||
mergeCB.Items.Add(Strings.Yes);
|
||||
|
||||
editors = new Control[]
|
||||
{
|
||||
null,
|
||||
@@ -114,6 +120,7 @@ namespace Results.Forms
|
||||
new TextBox(), /// precision
|
||||
new TextBox(), /// width
|
||||
alignmentCB,
|
||||
mergeCB,
|
||||
new TextBox(), /// testID
|
||||
};
|
||||
foreach (var edi in editors)
|
||||
@@ -198,7 +205,20 @@ namespace Results.Forms
|
||||
}
|
||||
break; /// Error
|
||||
|
||||
case Column.TestID: item.TestID = e.DisplayText; return;
|
||||
case Column.Merge:
|
||||
if (editors[e.SubItem].Text == Strings.Yes)
|
||||
{
|
||||
item.Merge = true;
|
||||
return;
|
||||
}
|
||||
else if (editors[e.SubItem].Text == Strings.No)
|
||||
{
|
||||
item.Merge = false;
|
||||
return;
|
||||
}
|
||||
break; /// Error
|
||||
|
||||
case Column.TestID: item.TestID = e.DisplayText; return;
|
||||
|
||||
default:
|
||||
return; /// OK
|
||||
@@ -324,17 +344,18 @@ namespace Results.Forms
|
||||
|
||||
foreach (var item in SelectedItems)
|
||||
{
|
||||
ListViewItem lvi = new ListViewItem(item.Name); /// Item
|
||||
ListViewItem lvi = new ListViewItem(item.Name); /// Item
|
||||
lvi.Tag = item;
|
||||
lvi.SubItems.Add(item.Caption); /// Header
|
||||
lvi.SubItems.Add(item.Units.ToDescription()); /// Units
|
||||
lvi.SubItems.Add(item.Format); /// Format
|
||||
lvi.SubItems.Add(item.Precision); /// Precision
|
||||
lvi.SubItems.Add(item.Width.ToString()); /// Width
|
||||
lvi.SubItems.Add(item.Alignment.ToDescription()); /// Alignment
|
||||
lvi.SubItems.Add(item.Caption); /// Header
|
||||
lvi.SubItems.Add(item.Units.ToDescription()); /// Units
|
||||
lvi.SubItems.Add(item.Format); /// Format
|
||||
lvi.SubItems.Add(item.Precision); /// Precision
|
||||
lvi.SubItems.Add(item.Width.ToString()); /// Width
|
||||
lvi.SubItems.Add(item.Alignment.ToDescription()); /// Alignment
|
||||
lvi.SubItems.Add(item.Merge ? Strings.Yes : Strings.No); /// Merge
|
||||
if (!SupressTestIDColumn)
|
||||
{
|
||||
lvi.SubItems.Add(item.TestID); /// TestID
|
||||
lvi.SubItems.Add(item.TestID); /// TestID
|
||||
}
|
||||
|
||||
selectedResultsListViewEx.Items.Add(lvi);
|
||||
|
||||
+12
-8
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2016-2018 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2016-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Results
|
||||
Test_start_time, /// 12
|
||||
Test_end_time, /// 13
|
||||
Test_time, /// 14
|
||||
Flow, /// 15
|
||||
Flow, /// 15 Calculated flow (use ConstMasterRaw/ConstMaster to calculate uncorrected flow of the reference flow meter)
|
||||
T_up_mean, /// 16
|
||||
T_down_mean, /// 17
|
||||
T_div, /// 18
|
||||
@@ -230,7 +230,7 @@ namespace Results
|
||||
PMax_test_time, /// 199 Pressure test time
|
||||
Start_valve_open_time, /// 200
|
||||
Start_valve_close_time, /// 201
|
||||
Qc, /// 202 Flow for a water meter
|
||||
NotUsed202, /// 202
|
||||
Degree__liter, /// 203 Water meter constant (degree per liter) specific for one test with camera
|
||||
Camera_angle, /// 204
|
||||
Camera_angle_start, /// 205
|
||||
@@ -245,11 +245,11 @@ namespace Results
|
||||
|
||||
Medium, /// 213 Woda zimna/ciepla
|
||||
|
||||
Flow_ctv, /// 214
|
||||
Flow_ctv_min, /// 215
|
||||
Flow_ctv_max, /// 216
|
||||
Flow_ctv_start, /// 217
|
||||
Flow_ctv_end, /// 218
|
||||
NotUsed214, /// 214
|
||||
NotUsed215, /// 215
|
||||
NotUsed216, /// 216
|
||||
NotUsed217, /// 217
|
||||
NotUsed218, /// 218
|
||||
ConstMasterRaw, /// 219 ConstMaster (like 194) uncorrected
|
||||
Reference_error_corr, /// 220 Reference flow meter error after correction using correction curve
|
||||
|
||||
@@ -345,6 +345,10 @@ namespace Results
|
||||
RadioAddress, /// 292
|
||||
OriRadioAddress, /// 293
|
||||
|
||||
Pls_per_ltr_aux, /// 294 Compound water meter constant (water meter data, not used in calculations)
|
||||
Pulses_main, /// 295 Compound main meter pulses (recalculated so that the gated ref. pulses for this meter are equal to the total ref. pulses)
|
||||
Pulses_aux, /// 296 Compound aux meter pulses (recalculated so that the gated ref. pulses for this meter are equal to the total ref. pulses)
|
||||
|
||||
Count,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using FluentNHibernate.Mapping;
|
||||
using Results.Entities;
|
||||
@@ -34,6 +34,7 @@ namespace Results.Mappings
|
||||
|
||||
Map(x => x.StartTime);
|
||||
Map(x => x.EndTime);
|
||||
Map(x => x.SaveTime);
|
||||
Map(x => x.Dirty);
|
||||
Map(x => x.RsltsSent);
|
||||
Map(x => x.RsltsPrinted);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2020 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using FluentNHibernate.Mapping;
|
||||
using Results.Entities;
|
||||
@@ -39,10 +39,9 @@ namespace Results.Mappings
|
||||
Map(x => x.DensityIn);
|
||||
Map(x => x.DensityLine);
|
||||
Map(x => x.DensityDiv);
|
||||
Map(x => x.MassOfEvapWater)
|
||||
.Column("Buoyancy");
|
||||
Map(x => x.FlowMass);
|
||||
Map(x => x.FlowVolume);
|
||||
Map(x => x.MassOfEvapWater).Column("Buoyancy");
|
||||
Map(x => x.SpareDbl).Column("FlowMass");
|
||||
Map(x => x.Flow).Column("FlowVolume");
|
||||
Map(x => x.VolumeCTV);
|
||||
Map(x => x.VolumeMaster);
|
||||
Map(x => x.ErrorMaster);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2017 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using FluentNHibernate.Mapping;
|
||||
using Results.Entities;
|
||||
@@ -18,13 +18,13 @@ namespace Results.Mappings
|
||||
Map(x => x.L);
|
||||
Map(x => x.Mounting);
|
||||
|
||||
#if MUNICH && LANG_DE
|
||||
Map(x => x.NewQnames);
|
||||
#endif
|
||||
Map(x => x.Qnames);
|
||||
Map(x => x.Q4_Qmax);
|
||||
Map(x => x.Q3_Qn);
|
||||
Map(x => x.Q2_Qt);
|
||||
Map(x => x.Q1_Qmin);
|
||||
Map(x => x.ErrLimHiQ);
|
||||
Map(x => x.ErrLimLoQ);
|
||||
|
||||
Map(x => x.MetrologicalClass);
|
||||
Map(x => x.TemperatureClass);
|
||||
@@ -41,6 +41,7 @@ namespace Results.Mappings
|
||||
Map(x => x.Q3_Qn_Aux);
|
||||
Map(x => x.MetrologicalClassAux);
|
||||
Map(x => x.ApprovalInfoAux);
|
||||
Map(x => x.PulsesPerLtrAux);
|
||||
|
||||
Map(x => x.Medium);
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
///
|
||||
/// Copyright (c) 2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using Common;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Printing;
|
||||
|
||||
namespace Results.Output
|
||||
{
|
||||
public class Cell
|
||||
{
|
||||
public readonly string Text;
|
||||
public readonly Font Font;
|
||||
public readonly Alignment HorizAlignment;
|
||||
public readonly VertAlignment VertAlignment;
|
||||
public readonly bool TopBorder;
|
||||
public readonly bool LeftBorder;
|
||||
public readonly bool BottomMerge;
|
||||
public readonly bool RightMerge;
|
||||
|
||||
public SizeF Size { get { return size; } }
|
||||
SizeF size;
|
||||
|
||||
public Cell() { }
|
||||
|
||||
public Cell(string text, Font font, Alignment horizAlignment = Alignment.Left,
|
||||
VertAlignment vertAlignment = VertAlignment.Top, bool topBorder = false,
|
||||
bool leftBorder = false, bool bottomMerge = false, bool rightMerge = false)
|
||||
{
|
||||
Text = text;
|
||||
Font = font;
|
||||
HorizAlignment = horizAlignment;
|
||||
VertAlignment = vertAlignment;
|
||||
TopBorder = topBorder;
|
||||
LeftBorder = leftBorder;
|
||||
BottomMerge = bottomMerge;
|
||||
RightMerge = rightMerge;
|
||||
}
|
||||
|
||||
public void Measure(PrintPageEventArgs e)
|
||||
{
|
||||
size = (Text != null && Font != null)
|
||||
? Common.Printers.PrintersCommon.Measure(e, Text, Font)
|
||||
: new SizeF(0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -34,6 +34,22 @@ namespace Results.Output.Printers.Enhanced
|
||||
readonly int spacingOneAndHalf4Header;
|
||||
readonly int spacingOne4Footer;
|
||||
|
||||
/// <summary>
|
||||
/// Property variable for the Font the user wishes to use
|
||||
/// </summary>
|
||||
readonly Font titleFont;
|
||||
readonly Font headerFont;
|
||||
readonly Font font;
|
||||
readonly Font footerFont;
|
||||
|
||||
///
|
||||
/// Items to print
|
||||
///
|
||||
readonly string header;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems;
|
||||
readonly IList<WMeterRsltItemSpec> testItems;
|
||||
readonly string footer;
|
||||
|
||||
int spacingAboveTable;
|
||||
int spacingBelowTable;
|
||||
|
||||
@@ -43,14 +59,6 @@ namespace Results.Output.Printers.Enhanced
|
||||
int titleHeight;
|
||||
int commonHeight;
|
||||
|
||||
/// <summary>
|
||||
/// Property variable for the Font the user wishes to use
|
||||
/// </summary>
|
||||
Font titleFont;
|
||||
Font headerFont;
|
||||
Font font;
|
||||
Font footerFont;
|
||||
|
||||
TableStyle style;
|
||||
|
||||
///
|
||||
@@ -60,14 +68,6 @@ namespace Results.Output.Printers.Enhanced
|
||||
|
||||
EnhancedPrinterCfg cfg;
|
||||
|
||||
///
|
||||
/// Items to print
|
||||
///
|
||||
string header;
|
||||
IList<WMeterRsltItemSpec> commonItems;
|
||||
IList<WMeterRsltItemSpec> testItems;
|
||||
string footer;
|
||||
|
||||
///
|
||||
/// Layout and status
|
||||
///
|
||||
@@ -93,15 +93,15 @@ namespace Results.Output.Printers.Enhanced
|
||||
leftMargin = cfg.LeftMargin;
|
||||
|
||||
header = string.IsNullOrEmpty(cfg.Header) ? string.Empty : cfg.Header.Replace("~", Environment.NewLine);
|
||||
commonItems = Results.WMeterRsltItemSpec.FromStrArray(cfg.CommonItems);
|
||||
testItems = Results.WMeterRsltItemSpec.FromStrArray(cfg.TestItems); /// TestID info will be overwritten later on
|
||||
commonItems = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems);
|
||||
testItems = 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);
|
||||
footerFont = new Font((cfg.FooterFntFml != null ? cfg.FooterFntFml : "Arial"), (cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10), (FontStyle)cfg.FooterFntSty);
|
||||
titleFont = new Font(cfg.TitFntFml ?? "Arial", cfg.TitFntSz > 0 ? cfg.TitFntSz : 10, (FontStyle)cfg.TitFntSty);
|
||||
headerFont = new Font(cfg.HdrFntFml ?? "Arial", cfg.HdrFntSz > 0 ? cfg.HdrFntSz : 10, (FontStyle)cfg.HdrFntSty);
|
||||
font = new Font(cfg.BodyFntFml ?? "Arial", cfg.BodyFntSz > 0 ? cfg.BodyFntSz : 10, (FontStyle)cfg.BodyFntSty);
|
||||
footerFont = new Font(cfg.FooterFntFml ?? "Arial", cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10, (FontStyle)cfg.FooterFntSty);
|
||||
|
||||
/// Table style of one water meter table where tests are rows
|
||||
style = new TableStyle
|
||||
@@ -149,7 +149,7 @@ namespace Results.Output.Printers.Enhanced
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks></remarks>
|
||||
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
|
||||
protected override void OnBeginPrint(PrintEventArgs e)
|
||||
{
|
||||
base.OnBeginPrint(e);
|
||||
}
|
||||
@@ -159,7 +159,7 @@ namespace Results.Output.Printers.Enhanced
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks>This provides the print logic for our document</remarks>
|
||||
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
|
||||
protected override void OnPrintPage(PrintPageEventArgs e)
|
||||
{
|
||||
/// Run base code
|
||||
base.OnPrintPage(e);
|
||||
@@ -284,7 +284,7 @@ namespace Results.Output.Printers.Enhanced
|
||||
/// <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>
|
||||
float PrintWM(System.Drawing.Printing.PrintPageEventArgs e,
|
||||
float PrintWM(PrintPageEventArgs e,
|
||||
Results.Entities.WaterMeter wm, int printedWMNr, int top)
|
||||
{
|
||||
int tableTop = top + spacingAboveTable;
|
||||
@@ -332,33 +332,33 @@ namespace Results.Output.Printers.Enhanced
|
||||
}
|
||||
|
||||
|
||||
void PrintAt(System.Drawing.Printing.PrintPageEventArgs e, Point p, string text)
|
||||
void PrintAt(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)
|
||||
void PrintAt(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)
|
||||
void PrintHeaderAt(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)
|
||||
void PrintHeaderAt(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);
|
||||
}
|
||||
|
||||
|
||||
void PrintFooterAt(System.Drawing.Printing.PrintPageEventArgs e, Point p, string text)
|
||||
void PrintFooterAt(PrintPageEventArgs e, Point p, string text)
|
||||
{
|
||||
PrintFooterAt(e, p.X, p.Y, text);
|
||||
}
|
||||
void PrintFooterAt(System.Drawing.Printing.PrintPageEventArgs e, int x, int y, string text)
|
||||
void PrintFooterAt(PrintPageEventArgs e, int x, int y, string text)
|
||||
{
|
||||
RectangleF printArea = new RectangleF(x, y, 2000, spacingOne4Footer);
|
||||
e.Graphics.DrawString(text, this.footerFont, Brushes.Black, printArea);
|
||||
|
||||
@@ -9,7 +9,6 @@ using System.Drawing.Printing;
|
||||
using System.IO;
|
||||
using Gma.QrCodeNet.Encoding;
|
||||
using Common;
|
||||
using Results.Resources;
|
||||
using GenCode128;
|
||||
|
||||
namespace Results.Output.Printers.Label
|
||||
@@ -22,17 +21,17 @@ namespace Results.Output.Printers.Label
|
||||
readonly int printHeight;
|
||||
readonly int printWidth;
|
||||
|
||||
/// Selected font
|
||||
readonly Font font;
|
||||
/// Items to print
|
||||
readonly IList<WMeterRsltItemSpec> itemsToPrint;
|
||||
|
||||
/// Selected font
|
||||
readonly Font font;
|
||||
|
||||
/// Data to print
|
||||
Results.Entities.Batch batch;
|
||||
LabelPrinterCfg cfg;
|
||||
Results.Entities.WaterMeter wm;
|
||||
|
||||
/// Items to print
|
||||
IList<WMeterRsltItemSpec> itemsToPrint;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
@@ -44,12 +43,10 @@ namespace Results.Output.Printers.Label
|
||||
this.batch = batch;
|
||||
this.cfg = cfg;
|
||||
this.wm = wm;
|
||||
this.itemsToPrint = Results.WMeterRsltItemSpec.FromStrArray(cfg.ItemsToPrint);
|
||||
this.itemsToPrint = WMeterRsltItemSpec.FromStrArray(cfg.ItemsToPrint);
|
||||
|
||||
/// Initialize fonts
|
||||
font = new Font((cfg.FontFamily != null ? cfg.FontFamily : "Arial"),
|
||||
(cfg.FontSize > 0 ? cfg.FontSize : 10),
|
||||
(FontStyle)cfg.FontStyle);
|
||||
font = new Font(cfg.FontFamily ?? "Arial", cfg.FontSize > 0 ? cfg.FontSize : 10, (FontStyle)cfg.FontStyle);
|
||||
|
||||
/// Set print area size and margins (in dots using 100 dpi)
|
||||
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
||||
@@ -63,7 +60,7 @@ namespace Results.Output.Printers.Label
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks></remarks>
|
||||
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
|
||||
protected override void OnBeginPrint(PrintEventArgs e)
|
||||
{
|
||||
base.OnBeginPrint(e);
|
||||
}
|
||||
@@ -73,7 +70,7 @@ namespace Results.Output.Printers.Label
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks>This provides the print logic for our document</remarks>
|
||||
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
|
||||
protected override void OnPrintPage(PrintPageEventArgs e)
|
||||
{
|
||||
/// Run base code
|
||||
base.OnPrintPage(e);
|
||||
|
||||
@@ -9,7 +9,6 @@ using System.Drawing.Printing;
|
||||
using System.IO;
|
||||
using Gma.QrCodeNet.Encoding;
|
||||
using Common;
|
||||
using Results.Resources;
|
||||
using GenCode128;
|
||||
|
||||
namespace Results.Output.Printers.MultiLabel
|
||||
@@ -22,17 +21,17 @@ namespace Results.Output.Printers.MultiLabel
|
||||
readonly int labelHeight;
|
||||
readonly int labelWidth;
|
||||
|
||||
/// Selected font
|
||||
readonly Font font;
|
||||
/// Items to print
|
||||
readonly IList<WMeterRsltItemSpec> itemsToPrint;
|
||||
|
||||
/// Selected font
|
||||
readonly Font font;
|
||||
|
||||
/// Data to print
|
||||
Results.Entities.Batch batch;
|
||||
MultiLabelPrinterCfg cfg;
|
||||
IList<Results.Entities.WaterMeter> waterMeters;
|
||||
|
||||
/// Items to print
|
||||
IList<WMeterRsltItemSpec> itemsToPrint;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
@@ -44,15 +43,13 @@ namespace Results.Output.Printers.MultiLabel
|
||||
this.batch = batch;
|
||||
this.waterMeters = batch.WaterMeters;
|
||||
this.cfg = cfg;
|
||||
this.itemsToPrint = Results.WMeterRsltItemSpec.FromStrArray(cfg.ItemsToPrint);
|
||||
this.itemsToPrint = WMeterRsltItemSpec.FromStrArray(cfg.ItemsToPrint);
|
||||
|
||||
/// Initialize fonts
|
||||
font = new Font((cfg.FontFamily != null ? cfg.FontFamily : "Arial"),
|
||||
(cfg.FontSize > 0 ? cfg.FontSize : 10),
|
||||
(FontStyle)cfg.FontStyle);
|
||||
/// Initialize fonts
|
||||
font = new Font(cfg.FontFamily ?? "Arial", cfg.FontSize > 0 ? cfg.FontSize : 10, (FontStyle)cfg.FontStyle);
|
||||
|
||||
/// Set print area size and margins (in dots using 100 dpi)
|
||||
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
||||
/// Set print area size and margins (in dots using 100 dpi)
|
||||
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
||||
///
|
||||
labelHeight = cfg.LabelHeight;
|
||||
labelWidth = cfg.LabelWidth;
|
||||
@@ -63,7 +60,7 @@ namespace Results.Output.Printers.MultiLabel
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks></remarks>
|
||||
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
|
||||
protected override void OnBeginPrint(PrintEventArgs e)
|
||||
{
|
||||
base.OnBeginPrint(e);
|
||||
}
|
||||
@@ -73,7 +70,7 @@ namespace Results.Output.Printers.MultiLabel
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks>This provides the print logic for our document</remarks>
|
||||
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
|
||||
protected override void OnPrintPage(PrintPageEventArgs e)
|
||||
{
|
||||
/// Run base code
|
||||
base.OnPrintPage(e);
|
||||
|
||||
@@ -13,9 +13,6 @@ namespace Results.Output.Printers.OnePerBatch
|
||||
{
|
||||
public class OnePerBatchPrintDocument : Common.Printers.PrintersCommon
|
||||
{
|
||||
const float GapBetweenTableColumns = 10;
|
||||
const float GapBetweenCommonColumns = 10;
|
||||
|
||||
/// Size of the printed area without margins, after taking into account 'pageOrientation'
|
||||
readonly int printHeight;
|
||||
readonly int printWidth;
|
||||
@@ -28,39 +25,39 @@ namespace Results.Output.Printers.OnePerBatch
|
||||
|
||||
readonly int spacingOne;
|
||||
readonly int spacingOne4Header;
|
||||
|
||||
float titleHeight;
|
||||
|
||||
/// <summary>
|
||||
/// Property variable for the Font the user wishes to use
|
||||
/// </summary>
|
||||
Font titleFont;
|
||||
Font headerFont;
|
||||
Font font;
|
||||
Font footerFont;
|
||||
|
||||
///
|
||||
/// Data to print
|
||||
///
|
||||
Results.Entities.Batch batch;
|
||||
OnePerBatchPrinterCfg cfg;
|
||||
Results.Entities.WaterMeter wm;
|
||||
readonly Font titleFont;
|
||||
readonly Font headerFont;
|
||||
readonly Font font;
|
||||
readonly Font footerFont;
|
||||
|
||||
///
|
||||
/// Items to print
|
||||
///
|
||||
string header;
|
||||
IList<WMeterRsltItemSpec> commonItems1;
|
||||
IList<WMeterRsltItemSpec> commonItems2;
|
||||
IList<WMeterRsltItemSpec> commonItems3;
|
||||
IList<WMeterRsltItemSpec> testItems;
|
||||
IList<WMeterRsltItemSpec> testItems2;
|
||||
IList<WMeterRsltItemSpec> belowItems1;
|
||||
IList<WMeterRsltItemSpec> belowItems2;
|
||||
IList<WMeterRsltItemSpec> belowItems3;
|
||||
string footer;
|
||||
readonly string header;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems1;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems2;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems3;
|
||||
readonly IList<WMeterRsltItemSpec> testItems;
|
||||
readonly IList<WMeterRsltItemSpec> testItems2;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems1;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems2;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems3;
|
||||
readonly string footer;
|
||||
|
||||
int nrPages;
|
||||
///
|
||||
/// Data to print
|
||||
///
|
||||
Results.Entities.Batch batch;
|
||||
OnePerBatchPrinterCfg cfg;
|
||||
Results.Entities.WaterMeter wm;
|
||||
|
||||
float titleHeight;
|
||||
|
||||
int nrPages;
|
||||
int pageNr; /// Page number to be printed at the bottom of the page
|
||||
|
||||
/// <summary>
|
||||
@@ -79,21 +76,21 @@ namespace Results.Output.Printers.OnePerBatch
|
||||
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
|
||||
testItems2 = Results.WMeterRsltItemSpec.FromStrArray(cfg.TestItems2); /// TestID info will be overwritten later on
|
||||
belowItems1 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems1);
|
||||
belowItems2 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems2);
|
||||
belowItems3 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems3);
|
||||
commonItems1 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems1);
|
||||
commonItems2 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems2);
|
||||
commonItems3 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems3);
|
||||
testItems = WMeterRsltItemSpec.FromStrArray(cfg.TestItems); /// TestID info will be overwritten later on
|
||||
testItems2 = WMeterRsltItemSpec.FromStrArray(cfg.TestItems2); /// TestID info will be overwritten later on
|
||||
belowItems1 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems1);
|
||||
belowItems2 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems2);
|
||||
belowItems3 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems3);
|
||||
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);
|
||||
footerFont = new Font((cfg.FooterFntFml != null ? cfg.FooterFntFml : "Arial"), (cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10), (FontStyle)cfg.FooterFntSty);
|
||||
titleFont = new Font(cfg.TitFntFml ?? "Arial", cfg.TitFntSz > 0 ? cfg.TitFntSz : 10, (FontStyle)cfg.TitFntSty);
|
||||
headerFont = new Font(cfg.HdrFntFml ?? "Arial", cfg.HdrFntSz > 0 ? cfg.HdrFntSz : 10, (FontStyle)cfg.HdrFntSty);
|
||||
font = new Font(cfg.BodyFntFml ?? "Arial", cfg.BodyFntSz > 0 ? cfg.BodyFntSz : 10, (FontStyle)cfg.BodyFntSty);
|
||||
footerFont = new Font(cfg.FooterFntFml ?? "Arial", cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10, (FontStyle)cfg.FooterFntSty);
|
||||
|
||||
/// Set print area size and margins (in dots using 100 dpi)
|
||||
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
||||
@@ -125,7 +122,7 @@ namespace Results.Output.Printers.OnePerBatch
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks></remarks>
|
||||
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
|
||||
protected override void OnBeginPrint(PrintEventArgs e)
|
||||
{
|
||||
base.OnBeginPrint(e);
|
||||
}
|
||||
@@ -135,7 +132,7 @@ namespace Results.Output.Printers.OnePerBatch
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks>This provides the print logic for our document</remarks>
|
||||
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
|
||||
protected override void OnPrintPage(PrintPageEventArgs e)
|
||||
{
|
||||
/// Run base code
|
||||
base.OnPrintPage(e);
|
||||
@@ -194,35 +191,33 @@ namespace Results.Output.Printers.OnePerBatch
|
||||
float leftMarginCommon2 = leftMargin + printWidth * 0.01f * (cfg.ColW0Pct + cfg.ColW1Pct);
|
||||
float leftMarginCommon3 = leftMargin + printWidth * 0.01f * (cfg.ColW0Pct + cfg.ColW1Pct + cfg.ColW2Pct);
|
||||
|
||||
Alignment[] horizAlgn = new Alignment[] { Alignment.Left, Alignment.Left };
|
||||
VertAlignment[] vertAlgn = new VertAlignment[] { VertAlignment.Top, VertAlignment.Top };
|
||||
TableStyle commonTableStyle = new TableStyle { Font = font, MarginX = 5, MarginY = 3 };
|
||||
|
||||
Table table1 = new Table(2, cfg.AutoTestParam) { Style = commonTableStyle };
|
||||
var table1 = new Table(2, commonTableStyle, cfg.AutoTestParam);
|
||||
foreach (var item in commonItems1)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table1.AddRow(row, horizAlgn, vertAlgn);
|
||||
table1.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
float bodyTop1 = table1.Draw(e, leftMarginCommon1, commonTop);
|
||||
|
||||
|
||||
table1 = new Table(2, cfg.AutoTestParam) { Style = commonTableStyle };
|
||||
var table2 = new Table(2, commonTableStyle, cfg.AutoTestParam);
|
||||
foreach (var item in commonItems2)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table1.AddRow(row, horizAlgn, vertAlgn);
|
||||
table2.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
float bodyTop2 = table1.Draw(e, leftMarginCommon2, commonTop);
|
||||
float bodyTop2 = table2.Draw(e, leftMarginCommon2, commonTop);
|
||||
|
||||
|
||||
table1 = new Table(2, cfg.AutoTestParam) { Style = commonTableStyle };
|
||||
var table3 = new Table(2, commonTableStyle, cfg.AutoTestParam);
|
||||
foreach (var item in commonItems3)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table1.AddRow(row, horizAlgn, vertAlgn);
|
||||
table3.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
float bodyTop3 = table1.Draw(e, leftMarginCommon3, commonTop);
|
||||
float bodyTop3 = table3.Draw(e, leftMarginCommon3, commonTop);
|
||||
|
||||
float bodyTop12 = (bodyTop1 > bodyTop2) ? bodyTop1 : bodyTop2;
|
||||
tableTop = (bodyTop12 > bodyTop3) ? bodyTop12 : bodyTop3; /// Max. of all three bodyTop-s
|
||||
@@ -302,35 +297,33 @@ namespace Results.Output.Printers.OnePerBatch
|
||||
float leftMarginBelow2 = leftMargin + printWidth * 0.01f * (cfg.BelowW0Pct + cfg.BelowW1Pct);
|
||||
float leftMarginBelow3 = leftMargin + printWidth * 0.01f * (cfg.BelowW0Pct + cfg.BelowW1Pct + cfg.BelowW2Pct);
|
||||
|
||||
Alignment[] horizAlgn = new Alignment[] { Alignment.Left, Alignment.Left };
|
||||
VertAlignment[] vertAlgn = new VertAlignment[] { VertAlignment.Top, VertAlignment.Top };
|
||||
TableStyle commonTableStyle = new TableStyle { Font = font, MarginX = 5, MarginY = 3 };
|
||||
|
||||
Table table2 = new Table(2, cfg.AutoTestParam) { Style = commonTableStyle };
|
||||
var table4 = new Table(2, commonTableStyle, cfg.AutoTestParam);
|
||||
foreach (var item in belowItems1)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table2.AddRow(row, horizAlgn, vertAlgn);
|
||||
table4.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
table2.Draw(e, leftMarginBelow1, belowTop);
|
||||
table4.Draw(e, leftMarginBelow1, belowTop);
|
||||
|
||||
|
||||
table2 = new Table(2, cfg.AutoTestParam) { Style = commonTableStyle };
|
||||
var table5 = new Table(2, commonTableStyle, cfg.AutoTestParam);
|
||||
foreach (var item in belowItems2)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table2.AddRow(row, horizAlgn, vertAlgn);
|
||||
table5.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
table2.Draw(e, leftMarginBelow2, belowTop);
|
||||
table5.Draw(e, leftMarginBelow2, belowTop);
|
||||
|
||||
|
||||
table2 = new Table(2, cfg.AutoTestParam) { Style = commonTableStyle };
|
||||
var table6 = new Table(2, commonTableStyle, cfg.AutoTestParam);
|
||||
foreach (var item in belowItems3)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table2.AddRow(row, horizAlgn, vertAlgn);
|
||||
table6.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
table2.Draw(e, leftMarginBelow3, belowTop);
|
||||
table6.Draw(e, leftMarginBelow3, belowTop);
|
||||
|
||||
|
||||
///
|
||||
|
||||
@@ -16,9 +16,6 @@ namespace Results.Output.Printers.OnePerMeter
|
||||
{
|
||||
public class OnePerMeterPrintDocument : Common.Printers.PrintersCommon
|
||||
{
|
||||
const float GapBetweenTableColumns = 10;
|
||||
const float GapBetweenCommonColumns = 10;
|
||||
|
||||
static QrEncoder encoder = new QrEncoder();
|
||||
|
||||
/// Size of the printed area without margins, after taking into account 'pageOrientation'
|
||||
@@ -33,39 +30,39 @@ namespace Results.Output.Printers.OnePerMeter
|
||||
|
||||
readonly int spacingOne;
|
||||
readonly int spacingOne4Header;
|
||||
|
||||
float titleHeight;
|
||||
|
||||
/// <summary>
|
||||
/// Property variable for the Font the user wishes to use
|
||||
/// </summary>
|
||||
Font titleFont;
|
||||
Font headerFont;
|
||||
Font font;
|
||||
Font footerFont;
|
||||
|
||||
///
|
||||
/// Data to print
|
||||
///
|
||||
Results.Entities.Batch batch;
|
||||
OnePerMeterPrinterCfg cfg;
|
||||
Results.Entities.WaterMeter wm;
|
||||
readonly Font titleFont;
|
||||
readonly Font headerFont;
|
||||
readonly Font font;
|
||||
readonly Font footerFont;
|
||||
|
||||
///
|
||||
/// Items to print
|
||||
///
|
||||
string header;
|
||||
IList<WMeterRsltItemSpec> commonItems1;
|
||||
IList<WMeterRsltItemSpec> commonItems2;
|
||||
IList<WMeterRsltItemSpec> commonItems3;
|
||||
IList<WMeterRsltItemSpec> testItems;
|
||||
IList<WMeterRsltItemSpec> testItems2;
|
||||
IList<WMeterRsltItemSpec> belowItems1;
|
||||
IList<WMeterRsltItemSpec> belowItems2;
|
||||
IList<WMeterRsltItemSpec> belowItems3;
|
||||
string footer;
|
||||
readonly string header;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems1;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems2;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems3;
|
||||
readonly IList<WMeterRsltItemSpec> testItems;
|
||||
readonly IList<WMeterRsltItemSpec> testItems2;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems1;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems2;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems3;
|
||||
readonly string footer;
|
||||
|
||||
int nrPages;
|
||||
///
|
||||
/// Data to print
|
||||
///
|
||||
Results.Entities.Batch batch;
|
||||
OnePerMeterPrinterCfg cfg;
|
||||
Results.Entities.WaterMeter wm;
|
||||
|
||||
float titleHeight;
|
||||
|
||||
int nrPages;
|
||||
int pageNr; /// Page number to be printed at the bottom of the page
|
||||
|
||||
/// <summary>
|
||||
@@ -84,21 +81,21 @@ namespace Results.Output.Printers.OnePerMeter
|
||||
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
|
||||
testItems2 = Results.WMeterRsltItemSpec.FromStrArray(cfg.TestItems2); /// TestID info will be overwritten later on
|
||||
belowItems1 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems1);
|
||||
belowItems2 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems2);
|
||||
belowItems3 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems3);
|
||||
commonItems1 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems1);
|
||||
commonItems2 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems2);
|
||||
commonItems3 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems3);
|
||||
testItems = WMeterRsltItemSpec.FromStrArray(cfg.TestItems); /// TestID info will be overwritten later on
|
||||
testItems2 = WMeterRsltItemSpec.FromStrArray(cfg.TestItems2); /// TestID info will be overwritten later on
|
||||
belowItems1 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems1);
|
||||
belowItems2 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems2);
|
||||
belowItems3 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems3);
|
||||
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);
|
||||
footerFont = new Font((cfg.FooterFntFml != null ? cfg.FooterFntFml : "Arial"), (cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10), (FontStyle)cfg.FooterFntSty);
|
||||
titleFont = new Font(cfg.TitFntFml ?? "Arial", cfg.TitFntSz > 0 ? cfg.TitFntSz : 10, (FontStyle)cfg.TitFntSty);
|
||||
headerFont = new Font(cfg.HdrFntFml ?? "Arial", cfg.HdrFntSz > 0 ? cfg.HdrFntSz : 10, (FontStyle)cfg.HdrFntSty);
|
||||
font = new Font(cfg.BodyFntFml ?? "Arial", cfg.BodyFntSz > 0 ? cfg.BodyFntSz : 10, (FontStyle)cfg.BodyFntSty);
|
||||
footerFont = new Font(cfg.FooterFntFml ?? "Arial", cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10, (FontStyle)cfg.FooterFntSty);
|
||||
|
||||
/// Set print area size and margins (in dots using 100 dpi)
|
||||
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
||||
@@ -130,7 +127,7 @@ namespace Results.Output.Printers.OnePerMeter
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks></remarks>
|
||||
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
|
||||
protected override void OnBeginPrint(PrintEventArgs e)
|
||||
{
|
||||
base.OnBeginPrint(e);
|
||||
}
|
||||
@@ -140,7 +137,7 @@ namespace Results.Output.Printers.OnePerMeter
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks>This provides the print logic for our document</remarks>
|
||||
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
|
||||
protected override void OnPrintPage(PrintPageEventArgs e)
|
||||
{
|
||||
/// Run base code
|
||||
base.OnPrintPage(e);
|
||||
@@ -223,35 +220,33 @@ namespace Results.Output.Printers.OnePerMeter
|
||||
float leftMarginCommon2 = leftMargin + printWidth * 0.01f * (cfg.ColW0Pct + cfg.ColW1Pct);
|
||||
float leftMarginCommon3 = leftMargin + printWidth * 0.01f * (cfg.ColW0Pct + cfg.ColW1Pct + cfg.ColW2Pct);
|
||||
|
||||
Alignment[] horizAlgn = new Alignment[] { Alignment.Left, Alignment.Left };
|
||||
VertAlignment[] vertAlgn = new VertAlignment[] { VertAlignment.Top, VertAlignment.Top };
|
||||
TableStyle commonTableStyle = new TableStyle { Font = font, MarginX = 5, MarginY = 3 };
|
||||
|
||||
Table table1 = new Table(2) { Style = commonTableStyle };
|
||||
var table1 = new Table(2, commonTableStyle);
|
||||
foreach (var item in commonItems1)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table1.AddRow(row, horizAlgn, vertAlgn);
|
||||
table1.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
float bodyTop1 = table1.Draw(e, leftMarginCommon1, commonTop);
|
||||
|
||||
|
||||
table1 = new Table(2) { Style = commonTableStyle };
|
||||
var table2 = new Table(2, commonTableStyle);
|
||||
foreach (var item in commonItems2)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table1.AddRow(row, horizAlgn, vertAlgn);
|
||||
table2.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
float bodyTop2 = table1.Draw(e, leftMarginCommon2, commonTop);
|
||||
float bodyTop2 = table2.Draw(e, leftMarginCommon2, commonTop);
|
||||
|
||||
|
||||
table1 = new Table(2) { Style = commonTableStyle };
|
||||
var table3 = new Table(2, commonTableStyle);
|
||||
foreach (var item in commonItems3)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table1.AddRow(row, horizAlgn, vertAlgn);
|
||||
table3.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
float bodyTop3 = table1.Draw(e, leftMarginCommon3, commonTop);
|
||||
float bodyTop3 = table3.Draw(e, leftMarginCommon3, commonTop);
|
||||
|
||||
float bodyTop12 = (bodyTop1 > bodyTop2) ? bodyTop1 : bodyTop2;
|
||||
tableTop = (bodyTop12 > bodyTop3) ? bodyTop12 : bodyTop3; /// Max. of all three bodyTop-s
|
||||
@@ -331,35 +326,33 @@ namespace Results.Output.Printers.OnePerMeter
|
||||
float leftMarginBelow2 = leftMargin + printWidth * 0.01f * (cfg.BelowW0Pct + cfg.BelowW1Pct);
|
||||
float leftMarginBelow3 = leftMargin + printWidth * 0.01f * (cfg.BelowW0Pct + cfg.BelowW1Pct + cfg.BelowW2Pct);
|
||||
|
||||
Alignment[] horizAlgn = new Alignment[] { Alignment.Left, Alignment.Left };
|
||||
VertAlignment[] vertAlgn = new VertAlignment[] { VertAlignment.Top, VertAlignment.Top };
|
||||
TableStyle commonTableStyle = new TableStyle { Font = font, MarginX = 5, MarginY = 3 };
|
||||
|
||||
Table table2 = new Table(2) { Style = commonTableStyle };
|
||||
var table4 = new Table(2, commonTableStyle);
|
||||
foreach (var item in belowItems1)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table2.AddRow(row, horizAlgn, vertAlgn);
|
||||
table4.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
table2.Draw(e, leftMarginBelow1, belowTop);
|
||||
table4.Draw(e, leftMarginBelow1, belowTop);
|
||||
|
||||
|
||||
table2 = new Table(2) { Style = commonTableStyle };
|
||||
var table5 = new Table(2, commonTableStyle);
|
||||
foreach (var item in belowItems2)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table2.AddRow(row, horizAlgn, vertAlgn);
|
||||
table5.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
table2.Draw(e, leftMarginBelow2, belowTop);
|
||||
table5.Draw(e, leftMarginBelow2, belowTop);
|
||||
|
||||
|
||||
table2 = new Table(2) { Style = commonTableStyle };
|
||||
var table6 = new Table(2, commonTableStyle);
|
||||
foreach (var item in belowItems3)
|
||||
{
|
||||
string[] row = new string[] { item.Caption, item.Print(wm).Split(new char[] { '|' })[0] };
|
||||
table2.AddRow(row, horizAlgn, vertAlgn);
|
||||
table6.AddRow(new Cell[] { new Cell(item.Caption, font),
|
||||
new Cell(item.Print(wm).Split(new char[] { '|' })[0], font) });
|
||||
}
|
||||
table2.Draw(e, leftMarginBelow3, belowTop);
|
||||
table6.Draw(e, leftMarginBelow3, belowTop);
|
||||
|
||||
|
||||
///
|
||||
|
||||
@@ -35,7 +35,6 @@ namespace Results.Output.Printers.OnePerMeter
|
||||
public string[] CommonItems3;
|
||||
public Common.TableForm Form;
|
||||
public string[] TestItems;
|
||||
public Common.TableForm Form2;
|
||||
public string[] TestItems2;
|
||||
public int BelowW0Pct;
|
||||
public int BelowW1Pct;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Metering Systems
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -7,8 +7,6 @@ using System.Drawing;
|
||||
using System.Drawing.Printing;
|
||||
using System.IO;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using Results;
|
||||
using Results.Resources;
|
||||
|
||||
namespace Results.Output.Printers.Zapiska
|
||||
@@ -60,15 +58,15 @@ namespace Results.Output.Printers.Zapiska
|
||||
///
|
||||
/// Items to print
|
||||
///
|
||||
string header;
|
||||
IList<WMeterRsltItemSpec> commonItems1;
|
||||
IList<WMeterRsltItemSpec> commonItems2;
|
||||
IList<WMeterRsltItemSpec> commonItems3;
|
||||
IList<WMeterRsltItemSpec> selectedItems;
|
||||
IList<WMeterRsltItemSpec> belowItems1;
|
||||
IList<WMeterRsltItemSpec> belowItems2;
|
||||
IList<WMeterRsltItemSpec> belowItems3;
|
||||
string footer;
|
||||
readonly string header;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems1;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems2;
|
||||
readonly IList<WMeterRsltItemSpec> commonItems3;
|
||||
readonly IList<WMeterRsltItemSpec> selectedItems;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems1;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems2;
|
||||
readonly IList<WMeterRsltItemSpec> belowItems3;
|
||||
readonly string footer;
|
||||
|
||||
///
|
||||
/// Layout and status
|
||||
@@ -94,20 +92,20 @@ namespace Results.Output.Printers.Zapiska
|
||||
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);
|
||||
selectedItems = Results.WMeterRsltItemSpec.FromStrArray(cfg.SelectedItems);
|
||||
belowItems1 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems1);
|
||||
belowItems2 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems2);
|
||||
belowItems3 = Results.WMeterRsltItemSpec.FromStrArray(cfg.BelowItems3);
|
||||
commonItems1 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems1);
|
||||
commonItems2 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems2);
|
||||
commonItems3 = WMeterRsltItemSpec.FromStrArray(cfg.CommonItems3);
|
||||
selectedItems = WMeterRsltItemSpec.FromStrArray(cfg.SelectedItems);
|
||||
belowItems1 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems1);
|
||||
belowItems2 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems2);
|
||||
belowItems3 = WMeterRsltItemSpec.FromStrArray(cfg.BelowItems3);
|
||||
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);
|
||||
footerFont = new Font((cfg.FooterFntFml != null ? cfg.FooterFntFml : "Arial"), (cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10), (FontStyle)cfg.FooterFntSty);
|
||||
titleFont = new Font(cfg.TitFntFml ?? "Arial", cfg.TitFntSz > 0 ? cfg.TitFntSz : 10, (FontStyle)cfg.TitFntSty);
|
||||
headerFont = new Font(cfg.HdrFntFml ?? "Arial", cfg.HdrFntSz > 0 ? cfg.HdrFntSz : 10, (FontStyle)cfg.HdrFntSty);
|
||||
font = new Font(cfg.BodyFntFml ?? "Arial", cfg.BodyFntSz > 0 ? cfg.BodyFntSz : 10, (FontStyle)cfg.BodyFntSty);
|
||||
footerFont = new Font(cfg.FooterFntFml ?? "Arial", cfg.FooterFntSz > 0 ? cfg.FooterFntSz : 10, (FontStyle)cfg.FooterFntSty);
|
||||
|
||||
/// Set print area size and margins (in dots using 100 dpi)
|
||||
DefaultPageSettings.Landscape = (cfg.PageOrientation == PageOrientation.Landscape);
|
||||
@@ -142,7 +140,7 @@ namespace Results.Output.Printers.Zapiska
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks></remarks>
|
||||
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
|
||||
protected override void OnBeginPrint(PrintEventArgs e)
|
||||
{
|
||||
base.OnBeginPrint(e);
|
||||
}
|
||||
@@ -152,7 +150,7 @@ namespace Results.Output.Printers.Zapiska
|
||||
/// </summary>
|
||||
/// <param name=e></param>
|
||||
/// <remarks>This provides the print logic for our document</remarks>
|
||||
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
|
||||
protected override void OnPrintPage(PrintPageEventArgs e)
|
||||
{
|
||||
/// Run base code
|
||||
base.OnPrintPage(e);
|
||||
@@ -344,8 +342,7 @@ namespace Results.Output.Printers.Zapiska
|
||||
/// <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>
|
||||
float PrintWMs(System.Drawing.Printing.PrintPageEventArgs e,
|
||||
IList<Results.Entities.WaterMeter> wms, float top)
|
||||
float PrintWMs(PrintPageEventArgs e, IList<Results.Entities.WaterMeter> wms, float top)
|
||||
{
|
||||
///
|
||||
/// Prepare table content
|
||||
@@ -384,7 +381,7 @@ namespace Results.Output.Printers.Zapiska
|
||||
}
|
||||
|
||||
|
||||
float DrawTable(System.Drawing.Printing.PrintPageEventArgs e, float left, float top, string[] header, IList<string[]> rows, Alignment[] alignment)
|
||||
float DrawTable(PrintPageEventArgs e, float left, float top, string[] header, IList<string[]> rows, Alignment[] alignment)
|
||||
{
|
||||
int tblColumnsCount = header.Length;
|
||||
|
||||
@@ -462,7 +459,7 @@ namespace Results.Output.Printers.Zapiska
|
||||
static Font lastFont = null;
|
||||
static float lastSpacing = 0;
|
||||
|
||||
SizeF Measure(System.Drawing.Printing.PrintPageEventArgs e, string paragraph, Font font)
|
||||
SizeF Measure(PrintPageEventArgs e, string paragraph, Font font)
|
||||
{
|
||||
if (font != lastFont)
|
||||
{
|
||||
@@ -482,7 +479,7 @@ namespace Results.Output.Printers.Zapiska
|
||||
}
|
||||
|
||||
|
||||
void PrintAt(System.Drawing.Printing.PrintPageEventArgs e, float x, float y, float width, string paragraph, Font font, Alignment alignment)
|
||||
void PrintAt(PrintPageEventArgs e, float x, float y, float width, string paragraph, Font font, Alignment alignment)
|
||||
{
|
||||
SizeF size = Measure(e, paragraph, font);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2018-2020 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2018-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -15,6 +15,7 @@ namespace Results.Output
|
||||
Just_Q3Q2adjQ1_Alt, /// pNrs = -1,5,2,1
|
||||
JustA0A4_Q3Q2adjQ1, /// pNrs = -2,-1,3,2,1 (Australia 169 MHz, raw data pNrs: -2,-1,4,3,2,1)
|
||||
JustA0A4_Q3Q2Q1, /// pNrs = -2,-1,3,2,1 (Australia 169 MHz smart, raw data pNrs: -2,-1,3,2,1)
|
||||
JustA0_Q3Q2Q1, /// pNrs = -1,3,2,1 (Australia 169 MHz smart, raw data pNrs: -1,3,2,1)
|
||||
DEWA, /// Q4, Q3, Q2adj, Q2, Q1
|
||||
DEWA_wo_Q2, /// Q4, Q3, Q2adj, Q1
|
||||
Suez, /// Two directions, with Q2 and Q2ac
|
||||
@@ -101,7 +102,8 @@ namespace Results.Output
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether test infos are compatible with procedure tests.
|
||||
/// Determines whether test infos are compatible with procedure tests:
|
||||
/// For each 'cti'in candidate SensusTestInfo array there must exist a string 'cti.TestName' in testNames.
|
||||
/// </summary>
|
||||
/// <returns>true when compatible</returns>
|
||||
public static bool AreCompatible(SensusTestInfo[] completeTestInfo, IList<string> testNames)
|
||||
@@ -126,7 +128,9 @@ namespace Results.Output
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether Oracle and complete test infos are compatible.
|
||||
/// Determines whether Oracle and complete test infos are compatible:
|
||||
/// For each 'oti' in OracleTestInfo there must exist a compatible ...
|
||||
/// ... cti.PruefungsNrDB + cti.QBezeichnungDB pair in candidate SensusTestInfo.
|
||||
/// </summary>
|
||||
/// <returns>true when compatible</returns>
|
||||
public static bool AreCompatible(IList<SensusTestInfo> oracleTestInfo, SensusTestInfo[] completeTestInfo)
|
||||
@@ -178,7 +182,7 @@ namespace Results.Output
|
||||
SensusTestInfo[] candidateTinfo = SensusTestInfo.GetTestInfos(lt);
|
||||
|
||||
if (AreCompatible(candidateTinfo, testNames) && AreCompatible(oracleTestInfo, candidateTinfo) &&
|
||||
((bestMatch == null) || (candidateTinfo.Length > bestMatchLen)))
|
||||
((bestMatch == null) || (candidateTinfo.Length < bestMatchLen)))
|
||||
{
|
||||
bestLT = lt;
|
||||
bestMatch = candidateTinfo;
|
||||
@@ -292,6 +296,16 @@ namespace Results.Output
|
||||
new SensusTestInfo("Q2", 2, "Q2", 2, "02", 2, "Q2", Range.R100_110),
|
||||
new SensusTestInfo("Q1", 1, "Q1", 1, "01", 1, "Q1", Range.R100_110),
|
||||
};
|
||||
|
||||
case LogType.JustA0_Q3Q2Q1: /// Australia 169 MHz with default Q2 corrections and conditional update at the end of cycle
|
||||
return new SensusTestInfo[]
|
||||
{
|
||||
/// TBF Oracle DB Opto RAW LU logfiles
|
||||
new SensusTestInfo("Qjust_A0", -1, "Just", -1, "-1", -1, "Q-1", Range.R95_105),
|
||||
new SensusTestInfo("Q3", 3, "Q3", 3, "03", 3, "Q3", Range.R90_100),
|
||||
new SensusTestInfo("Q2", 2, "Q2", 2, "02", 2, "Q2", Range.R100_110),
|
||||
new SensusTestInfo("Q1", 1, "Q1", 1, "01", 1, "Q1", Range.R100_110),
|
||||
};
|
||||
|
||||
case LogType.DEWA: /// DEWA (with Q4 and Q2 after correction)
|
||||
return new SensusTestInfo[]
|
||||
@@ -557,7 +571,7 @@ namespace Results.Output
|
||||
PruefungsNrLog = luID, /// Identification of a flow
|
||||
QBezeichnungLog = fullTestNameWoPart, /// Flow name in Oracle database
|
||||
Range = range,
|
||||
Flow = (range == Range.R100_110) ? test.Qfrom : (range == Range.R90_100) ? test.Qto : (test.Qfrom + test.Qto) / 2,
|
||||
Flow = (range == Range.R100_110) ? test.QfromM3ph() : (range == Range.R90_100) ? test.QtoM3ph() : (test.QfromM3ph() + test.QtoM3ph()) / 2,
|
||||
TestTime = (int)Math.Round(test.TestTime),
|
||||
ErrLimLoFromDB = test.ErrLimLo,
|
||||
ErrLimHiFromDB = test.ErrLimHi,
|
||||
|
||||
+330
-264
@@ -1,12 +1,11 @@
|
||||
///
|
||||
/// Copyright (c) 2018 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2018-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using Common;
|
||||
using Results.Resources;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Printing;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
|
||||
namespace Results.Output
|
||||
{
|
||||
@@ -34,35 +33,56 @@ namespace Results.Output
|
||||
|
||||
public class Table
|
||||
{
|
||||
public readonly int ColumnsCount;
|
||||
public readonly string AutoTestParam;
|
||||
public int RowsCount { get { return Rows.Count; } }
|
||||
public readonly int ColumnsCount; /// Number of columns including the headers
|
||||
public readonly string AutoTestParam; /// Reserved for future use
|
||||
public readonly IList<Cell[]> Cells; /// Table content: List of rows, each row is an array of cells
|
||||
public readonly TableStyle Style;
|
||||
|
||||
public readonly IList<string[]> Rows;
|
||||
public readonly IList<Alignment[]> HorizAlignments;
|
||||
public readonly IList<VertAlignment[]> VertAlignments;
|
||||
public TableStyle Style;
|
||||
/// <summary>
|
||||
/// Calculated by Measure(e)
|
||||
/// </summary>
|
||||
float width;
|
||||
float height;
|
||||
float[] columnWidth; /// Widths of columns of cells
|
||||
float[] columnPos; /// X-coordinate of positions of texts in columns (MarginX is left empty)
|
||||
float[] vertLinePos; /// X-coordinate of positions of vertical lines
|
||||
float[] rowHeight; /// Heights of rows of cells
|
||||
float[] rowPos; /// Y-coordinate of positions of texts in columns (MarginY is left empty)
|
||||
float[] horizLinePos; /// Y-coordinate of positions of horizontal lines
|
||||
|
||||
public int RowsCount /// Number of rows including the headers
|
||||
{
|
||||
get { return Cells.Count; }
|
||||
}
|
||||
|
||||
public Table(int columnsCount, string autoTestParam = null)
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="columnsCount">Number of columns</param>
|
||||
/// <param name="autoTestParam">Reserved for future use</param>
|
||||
public Table(int columnsCount, TableStyle style, string autoTestParam = null)
|
||||
{
|
||||
this.ColumnsCount = columnsCount;
|
||||
this.Style = style;
|
||||
this.AutoTestParam = autoTestParam;
|
||||
|
||||
Rows = new List<string[]>();
|
||||
HorizAlignments = new List<Alignment[]>();
|
||||
VertAlignments = new List<VertAlignment[]>();
|
||||
Style = new TableStyle();
|
||||
Cells = new List<Cell[]>();
|
||||
columnWidth = null;
|
||||
}
|
||||
|
||||
|
||||
public void AddRow(string[] texts, Alignment[] horizAlignment, VertAlignment[] vertAlignemnt)
|
||||
public void Clear()
|
||||
{
|
||||
Rows.Add(texts);
|
||||
HorizAlignments.Add(horizAlignment);
|
||||
VertAlignments.Add(vertAlignemnt);
|
||||
Cells.Clear();
|
||||
columnWidth = null;
|
||||
}
|
||||
|
||||
public void AddRow(Cell[] rowOfCells)
|
||||
{
|
||||
if (rowOfCells != null && rowOfCells.Length == ColumnsCount)
|
||||
{
|
||||
Cells.Add(rowOfCells);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true when table has either rows or columns count == 0
|
||||
@@ -70,235 +90,217 @@ namespace Results.Output
|
||||
/// <returns>true when empty</returns>
|
||||
public bool IsEmpty()
|
||||
{
|
||||
return (Rows == null || RowsCount == 0 || Rows[0] == null || Rows[0].Length == 0);
|
||||
return RowsCount == 0 || ColumnsCount == 0;
|
||||
}
|
||||
|
||||
|
||||
public SizeF Measure(System.Drawing.Printing.PrintPageEventArgs e)
|
||||
/// <summary>
|
||||
/// Calculates table dimensions. Inputs: ColumnsCount, Cells, Style
|
||||
/// </summary>
|
||||
/// <param name="e">PrintPageEventArgs passed to Measure(...)</param>
|
||||
/// <returns>Table width and height (SizeF)</returns>
|
||||
public SizeF Measure(PrintPageEventArgs e)
|
||||
{
|
||||
SizeF retVal = new SizeF(0, 0);
|
||||
if (IsEmpty()) return new SizeF(0, 0); /// Empty table => zero Size
|
||||
|
||||
if (IsEmpty()) return retVal; /// Empty table => zero Size
|
||||
columnWidth = new float[ColumnsCount];
|
||||
columnPos = new float[ColumnsCount];
|
||||
vertLinePos = new float[ColumnsCount + 1];
|
||||
|
||||
float[] columnWidth = new float[ColumnsCount];
|
||||
float[] rowHeight = new float[RowsCount];
|
||||
rowHeight = new float[RowsCount];
|
||||
rowPos = new float[RowsCount];
|
||||
horizLinePos = new float[RowsCount + 1];
|
||||
|
||||
width = 0;
|
||||
height = 0;
|
||||
vertLinePos[0] = 0;
|
||||
horizLinePos[0] = 0;
|
||||
|
||||
///
|
||||
/// Measure table column widths and header height
|
||||
/// Measure table column widths, vertical line and text positions, etc.
|
||||
///
|
||||
for (int colIx = 0; colIx < ColumnsCount; colIx++)
|
||||
{
|
||||
bool hasLineToLeft = false;
|
||||
|
||||
for (int rowIx = 0; rowIx < RowsCount; rowIx++)
|
||||
{
|
||||
if (Rows[rowIx] == null)
|
||||
{
|
||||
/// Separator row -> do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
bool isHeader = (colIx < Style.LeftHeadersCount) || (rowIx < Style.TopHeadersCount);
|
||||
SizeF size = Common.Printers.PrintersCommon.Measure(e, Rows[rowIx][colIx], isHeader ? Style.HeaderFont : Style.Font);
|
||||
if (size.Width > columnWidth[colIx]) columnWidth[colIx] = size.Width;
|
||||
if (size.Height > rowHeight[rowIx]) rowHeight[rowIx] = size.Height;
|
||||
}
|
||||
Cells[rowIx][colIx].Measure(e);
|
||||
|
||||
float cellWidth = (Style.ColumnWidths != null && Style.ColumnWidths.Length > colIx)
|
||||
? Style.ColumnWidths[colIx]
|
||||
: Cells[rowIx][colIx].Size.Width;
|
||||
if (cellWidth > columnWidth[colIx]) columnWidth[colIx] = cellWidth;
|
||||
|
||||
if (Cells[rowIx][colIx].LeftBorder) hasLineToLeft = true;
|
||||
}
|
||||
|
||||
bool hasLineToTheLeft = (Style.VertLines == TableLines.All)
|
||||
|| ((Style.VertLines == TableLines.FirstAndLast) && (colIx == 0))
|
||||
|| ((Style.VertLines == TableLines.FirstSecondAndLast) && (colIx <= 1));
|
||||
|
||||
retVal.Width += columnWidth[colIx] + (hasLineToTheLeft ? (Style.LineWidth + Style.MarginX) : 0) + Style.MarginX;
|
||||
}
|
||||
for (int rowIx = 0; rowIx < RowsCount; rowIx++)
|
||||
{
|
||||
if (Rows[rowIx] == null)
|
||||
{
|
||||
/// Separator row -> do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
bool hasLineAbove = (Style.HorizLines == TableLines.All)
|
||||
|| ((Style.HorizLines == TableLines.FirstAndLast) && (rowIx == 0))
|
||||
|| ((Style.HorizLines == TableLines.FirstSecondAndLast) && (rowIx <= 1))
|
||||
|| ((rowIx >= 1) && (Rows[rowIx - 1] == null));
|
||||
|
||||
retVal.Height += rowHeight[rowIx] + (hasLineAbove ? (Style.LineWidth + Style.MarginY) : 0) + Style.MarginY;
|
||||
}
|
||||
}
|
||||
|
||||
if (Style.VertLines == TableLines.None) retVal.Width -= Style.MarginX;
|
||||
if (Style.HorizLines == TableLines.None) retVal.Height -= Style.MarginY;
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
public float Draw(System.Drawing.Printing.PrintPageEventArgs e, float left, float 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];
|
||||
|
||||
float[] rowHeight = new float[RowsCount];
|
||||
float[] rowPos = new float[RowsCount];
|
||||
float[] horizLinePos = new float[RowsCount + 1];
|
||||
|
||||
///
|
||||
/// Measure table column widths and header height
|
||||
///
|
||||
vertLinePos[0] = left;
|
||||
horizLinePos[0] = top;
|
||||
for (int colIx = 0; colIx < tblColumnsCount; colIx++)
|
||||
{
|
||||
for (int rowIx = 0; rowIx < RowsCount; rowIx++)
|
||||
{
|
||||
if (Rows[rowIx] != null)
|
||||
{
|
||||
/// In not a separator line
|
||||
bool isHeader = (colIx < Style.LeftHeadersCount) || (rowIx < Style.TopHeadersCount);
|
||||
SizeF size = Common.Printers.PrintersCommon.Measure(e, Rows[rowIx][colIx], isHeader ? Style.HeaderFont : Style.Font);
|
||||
if ((Style.ColumnWidths != null) && (Style.ColumnWidths.Length > colIx))
|
||||
{
|
||||
size.Width = Style.ColumnWidths[colIx]; /// Override measurement if column width is defined
|
||||
}
|
||||
if (size.Width > columnWidth[colIx]) columnWidth[colIx] = size.Width;
|
||||
if (size.Height > rowHeight[rowIx]) rowHeight[rowIx] = size.Height;
|
||||
}
|
||||
else
|
||||
{
|
||||
/// Separator line -> do nothing
|
||||
rowHeight[rowIx] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool hasLineToTheLeft = (Style.VertLines == TableLines.All)
|
||||
|| ((Style.VertLines == TableLines.FirstAndLast) && (colIx == 0))
|
||||
|| ((Style.VertLines == TableLines.FirstSecondAndLast) && (colIx <= 1));
|
||||
|
||||
columnPos[colIx] = vertLinePos[colIx] + (hasLineToTheLeft ? (Style.LineWidth + Style.MarginX) : 0);
|
||||
width += columnWidth[colIx] + (hasLineToLeft ? (Style.LineWidth + Style.MarginX) : 0) + Style.MarginX;
|
||||
columnPos[colIx] = vertLinePos[colIx] + (hasLineToLeft ? (Style.LineWidth + Style.MarginX) : 0);
|
||||
vertLinePos[colIx + 1] = columnPos[colIx] + columnWidth[colIx] + Style.MarginX;
|
||||
}
|
||||
|
||||
///
|
||||
/// Measure table row heights, horixontal line and text positions, etc.
|
||||
///
|
||||
for (int rowIx = 0; rowIx < RowsCount; rowIx++)
|
||||
{
|
||||
if (Rows[rowIx] != null)
|
||||
{
|
||||
/// In not a separator line
|
||||
bool hasLineAbove = (Style.HorizLines == TableLines.All)
|
||||
|| ((Style.HorizLines == TableLines.FirstAndLast) && (rowIx == 0))
|
||||
|| ((Style.HorizLines == TableLines.FirstSecondAndLast) && (rowIx <= 1))
|
||||
|| ((rowIx >= 1) && (Rows[rowIx - 1] == null));
|
||||
bool hasLineAbove = false;
|
||||
|
||||
rowPos[rowIx] = horizLinePos[rowIx] + (hasLineAbove ? Style.MarginY : 0);
|
||||
horizLinePos[rowIx + 1] = rowPos[rowIx] + rowHeight[rowIx] + Style.LineWidth + Style.MarginY;
|
||||
}
|
||||
else if (rowIx > 0)
|
||||
for (int colIx = 0; colIx < ColumnsCount; colIx++)
|
||||
{
|
||||
/// Separator line
|
||||
rowPos[rowIx] = rowPos[rowIx - 1];
|
||||
horizLinePos[rowIx + 1] = horizLinePos[rowIx];
|
||||
if (Cells[rowIx][colIx].Size.Height > rowHeight[rowIx]) rowHeight[rowIx] = Cells[rowIx][colIx].Size.Height;
|
||||
if (Cells[rowIx][colIx].TopBorder) hasLineAbove = true;
|
||||
}
|
||||
|
||||
height += rowHeight[rowIx] + (hasLineAbove ? (Style.LineWidth + Style.MarginY) : 0) + Style.MarginY;
|
||||
rowPos[rowIx] = horizLinePos[rowIx] + (hasLineAbove ? Style.MarginY : 0);
|
||||
horizLinePos[rowIx + 1] = rowPos[rowIx] + rowHeight[rowIx] + Style.LineWidth + Style.MarginY;
|
||||
}
|
||||
|
||||
/// Horizontal lines
|
||||
float tableLeftX = left;
|
||||
float tableRightX = vertLinePos[tblColumnsCount] + Style.LineWidth;
|
||||
if (Style.HorizLines != TableLines.None)
|
||||
if (Style.VertLines == TableLines.None) width -= Style.MarginX;
|
||||
if (Style.HorizLines == TableLines.None) height -= Style.MarginY;
|
||||
|
||||
return new SizeF(width, height);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Prints a table defined by ColumnsCount, Rows, HorizAlignments, VertAlignments and Style
|
||||
/// </summary>
|
||||
/// <param name="e">PrintPageEventArgs passed to Measure(.), DrawLine(.) and PrintAt(.)</param>
|
||||
/// <param name="left">X-coordinate of the top-left corner of the table</param>
|
||||
/// <param name="top">Y-coordinate of the top-left corner of the table</param>
|
||||
/// <returns>Y-coordinate for a next item following this table on a page</returns>
|
||||
public float Draw(PrintPageEventArgs e, float left, float top)
|
||||
{
|
||||
if (IsEmpty()) return top; /// Empty table or Mesure(e) have not been called yet
|
||||
|
||||
if (columnWidth == null) Measure(e);
|
||||
|
||||
for (int rowIx = 0; rowIx <= RowsCount; rowIx++)
|
||||
{
|
||||
for (int rowIx = 0; rowIx <= RowsCount; rowIx++)
|
||||
for (int colIx = 0; colIx <= ColumnsCount; colIx++)
|
||||
{
|
||||
if (Style.HorizLines == TableLines.All || rowIx == 0
|
||||
|| rowIx == RowsCount
|
||||
|| (Style.HorizLines == TableLines.FirstSecondAndLast && rowIx == 1)
|
||||
|| ((rowIx >= 1) && (Rows[rowIx - 1] == null)))
|
||||
///
|
||||
/// Draw horizontal line
|
||||
///
|
||||
if (colIx < ColumnsCount && Style.HorizLines != TableLines.None &&
|
||||
(rowIx == 0 || rowIx == RowsCount || Cells[rowIx][colIx].TopBorder))
|
||||
{
|
||||
e.Graphics.DrawLine(new Pen(Color.Black, Style.LineWidth), new PointF(tableLeftX, horizLinePos[rowIx] + Style.LineWidth / 2), new PointF(tableRightX, horizLinePos[rowIx] + Style.LineWidth / 2));
|
||||
e.Graphics.DrawLine(new Pen(Color.Black, Style.LineWidth),
|
||||
new PointF(left + vertLinePos[colIx], top + horizLinePos[rowIx] + Style.LineWidth / 2),
|
||||
new PointF(left + vertLinePos[colIx + 1] + Style.LineWidth, top + horizLinePos[rowIx] + Style.LineWidth / 2));
|
||||
}
|
||||
|
||||
///
|
||||
/// Draw vertical line
|
||||
///
|
||||
if (rowIx < RowsCount && Style.VertLines != TableLines.None &&
|
||||
(colIx == 0 || colIx == ColumnsCount || Cells[rowIx][colIx].LeftBorder))
|
||||
{
|
||||
e.Graphics.DrawLine(new Pen(Color.Black, Style.LineWidth),
|
||||
new PointF(left + vertLinePos[colIx] + Style.LineWidth / 2, top + horizLinePos[rowIx]),
|
||||
new PointF(left + vertLinePos[colIx] + Style.LineWidth / 2, top + horizLinePos[rowIx + 1] + Style.LineWidth));
|
||||
}
|
||||
|
||||
///
|
||||
/// Draw table item (a text)
|
||||
///
|
||||
if (rowIx < RowsCount && colIx < ColumnsCount) /// Make sure Cells[][] indices are within range
|
||||
{
|
||||
if (!Cells[rowIx][colIx].BottomMerge && !Cells[rowIx][colIx].RightMerge)
|
||||
{
|
||||
/// This is not a cell that is merged with a subsequent cell => print content
|
||||
|
||||
/// Calculate X-coordinate taking into account cell merging
|
||||
float mergedColPos = columnPos[colIx];
|
||||
int mergedCellsCount = 1;
|
||||
for (int colIx2 = colIx - 1; colIx2 >= 0 && Cells[rowIx][colIx2].RightMerge; colIx2--)
|
||||
{
|
||||
mergedColPos += columnPos[colIx2];
|
||||
mergedCellsCount++;
|
||||
}
|
||||
mergedColPos /= mergedCellsCount;
|
||||
|
||||
/// Calculate Y-coordinate taking into account cell merging
|
||||
float mergedRowPos = rowPos[rowIx];
|
||||
mergedCellsCount = 1;
|
||||
for (int rowIx2 = rowIx - 1; rowIx2 >= 0 && Cells[rowIx2][colIx].BottomMerge; rowIx2--)
|
||||
{
|
||||
mergedRowPos += rowPos[rowIx2];
|
||||
mergedCellsCount++;
|
||||
}
|
||||
mergedRowPos /= mergedCellsCount;
|
||||
|
||||
/// Print the text at the calculated position
|
||||
Common.Printers.PrintersCommon.PrintAt(e, Cells[rowIx][colIx].Text,
|
||||
Cells[rowIx][colIx].Font,
|
||||
left + mergedColPos,
|
||||
top + mergedRowPos,
|
||||
columnWidth[colIx],
|
||||
rowHeight[rowIx],
|
||||
Cells[rowIx][colIx].HorizAlignment,
|
||||
Cells[rowIx][colIx].VertAlignment);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Vertical lines
|
||||
float tableTopY = top;
|
||||
float tableBottomY = horizLinePos[RowsCount] + Style.LineWidth;
|
||||
if (Style.VertLines != TableLines.None)
|
||||
{
|
||||
for (int colIx = 0; colIx <= tblColumnsCount; colIx++)
|
||||
{
|
||||
if (Style.VertLines == TableLines.All || colIx == 0 || colIx == ColumnsCount || (Style.VertLines == TableLines.FirstSecondAndLast && colIx == 1))
|
||||
{
|
||||
e.Graphics.DrawLine(new Pen(Color.Black, Style.LineWidth), new PointF(vertLinePos[colIx] + Style.LineWidth / 2, tableTopY), new PointF(vertLinePos[colIx] + Style.LineWidth / 2, tableBottomY));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
/// Draw table body
|
||||
///
|
||||
for (int rowIndex = 0; rowIndex < RowsCount; rowIndex++)
|
||||
{
|
||||
string[] oneTableRow = Rows[rowIndex];
|
||||
if (oneTableRow != null)
|
||||
{
|
||||
Alignment[] horizAlignment = HorizAlignments[(RowsCount > rowIndex) ? rowIndex : 0];
|
||||
VertAlignment[] vertAlignment = VertAlignments[(RowsCount > rowIndex) ? rowIndex : 0];
|
||||
for (int colIndex = 0; colIndex < tblColumnsCount; colIndex++)
|
||||
{
|
||||
bool isHeader = (colIndex < Style.LeftHeadersCount) || (rowIndex < Style.TopHeadersCount);
|
||||
Common.Printers.PrintersCommon.PrintAt(e, oneTableRow[colIndex],
|
||||
isHeader ? Style.HeaderFont : Style.Font,
|
||||
columnPos[colIndex],
|
||||
rowPos[rowIndex],
|
||||
columnWidth[colIndex],
|
||||
rowHeight[rowIndex],
|
||||
horizAlignment[colIndex],
|
||||
vertAlignment[colIndex]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return tableBottomY;
|
||||
return top + horizLinePos[RowsCount] + Style.LineWidth;
|
||||
}
|
||||
|
||||
|
||||
public static Table Create_TestsAreRows(Results.Entities.WaterMeter wm, IList<WMeterRsltItemSpec> items, TableStyle style, string autoTestParam = null)
|
||||
public static Table Create_TestsAreRows(Entities.WaterMeter wm, IList<WMeterRsltItemSpec> items, TableStyle style, string autoTestParam = null)
|
||||
{
|
||||
/// Top row contains column captions
|
||||
/// Select results to be printed
|
||||
var mtrTestRslts = string.IsNullOrEmpty(autoTestParam) ? wm.RegularMeterTestRslts() : wm.AutoMeterTestRslts(autoTestParam);
|
||||
|
||||
Table table = new Table(items.Count);
|
||||
table.Style = style;
|
||||
|
||||
string[] tableHeader = new string[table.ColumnsCount];
|
||||
Alignment[] horizAlignment = new Alignment[table.ColumnsCount];
|
||||
VertAlignment[] vertAlignment = new VertAlignment[table.ColumnsCount];
|
||||
for (int i = 0; i < table.ColumnsCount; i++)
|
||||
{
|
||||
tableHeader[i] = items[i].Caption;
|
||||
horizAlignment[i] = Alignment.Center;
|
||||
vertAlignment[i] = VertAlignment.Middle;
|
||||
}
|
||||
table.AddRow(tableHeader, horizAlignment, vertAlignment);
|
||||
|
||||
WMeterRsltItemSpec.TableRowNr = 1;
|
||||
foreach (var mtr in string.IsNullOrEmpty(autoTestParam) ? wm.RegularMeterTestRslts() : wm.AutoMeterTestRslts(autoTestParam))
|
||||
///
|
||||
/// Calculate rows count
|
||||
///
|
||||
int rowsCount = 1; /// Top row contains item captions
|
||||
foreach (var mtr in mtrTestRslts)
|
||||
{
|
||||
if (mtr != null && mtr.IsPilotRslt() && mtr.Publish() == Publish.Always)
|
||||
{
|
||||
string[] oneTableRow = new string[table.ColumnsCount];
|
||||
horizAlignment = new Alignment[table.ColumnsCount];
|
||||
vertAlignment = new VertAlignment[table.ColumnsCount];
|
||||
rowsCount++; /// One additional row for each test to be published
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < table.ColumnsCount; i++)
|
||||
Table table = new Table(items.Count, style);
|
||||
|
||||
///
|
||||
/// Top row contains column captions
|
||||
///
|
||||
var header = new Cell[items.Count];
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
header[i] = new Cell(items[i].Caption, style.HeaderFont, Alignment.Center, VertAlignment.Middle, true, true);
|
||||
}
|
||||
table.AddRow(header);
|
||||
|
||||
///
|
||||
/// Create and add a row for each test
|
||||
///
|
||||
WMeterRsltItemSpec.TableRowNr = 1;
|
||||
foreach (var mtr in mtrTestRslts)
|
||||
{
|
||||
if (mtr != null && mtr.IsPilotRslt() && mtr.Publish() == Publish.Always)
|
||||
{
|
||||
var aTableRow = new Cell[items.Count];
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
WMeterRsltItemSpec.TableColumnNr = i + 1;
|
||||
oneTableRow[i] = items[i].Print(wm, mtr.Name()).Split(new char[] { '|' })[0];
|
||||
horizAlignment[i] = items[i].Alignment;
|
||||
vertAlignment[i] = VertAlignment.Middle;
|
||||
string text = items[i].Print(wm, mtr.Name()).Split(new char[] { '|' })[0];
|
||||
aTableRow[i] = new Cell(text,
|
||||
style.Font,
|
||||
items[i].Alignment,
|
||||
VertAlignment.Middle,
|
||||
(WMeterRsltItemSpec.TableRowNr == 1) || !items[i].Merge,
|
||||
true,
|
||||
(WMeterRsltItemSpec.TableRowNr != rowsCount - 1) && items[i].Merge,
|
||||
false);
|
||||
}
|
||||
|
||||
table.AddRow(oneTableRow, horizAlignment, vertAlignment);
|
||||
table.AddRow(aTableRow);
|
||||
|
||||
WMeterRsltItemSpec.TableRowNr++;
|
||||
}
|
||||
@@ -307,16 +309,25 @@ namespace Results.Output
|
||||
return table;
|
||||
}
|
||||
|
||||
|
||||
public static Table Create_TestsAreColumns(Results.Entities.WaterMeter wm, IList<WMeterRsltItemSpec> items, TableStyle style, string autoTestParam = null)
|
||||
/// <summary>
|
||||
/// Create a table where tests are in columns.
|
||||
/// Left column contains item (or row) captions.
|
||||
/// </summary>
|
||||
/// <param name="wm">Water meter</param>
|
||||
/// <param name="items">Result items</param>
|
||||
/// <param name="style">Table style</param>
|
||||
/// <param name="autoTestParam">Auto test parameter</param>
|
||||
/// <returns>Table to be printed</returns>
|
||||
public static Table Create_TestsAreColumns(Entities.WaterMeter wm, IList<WMeterRsltItemSpec> items, TableStyle style, string autoTestParam = null)
|
||||
{
|
||||
/// Left column contains row captions
|
||||
/// Select results to be printed
|
||||
var mtrTestRslts = string.IsNullOrEmpty(autoTestParam) ? wm.RegularMeterTestRslts() : wm.AutoMeterTestRslts(autoTestParam);
|
||||
|
||||
///
|
||||
/// Calculate columns count
|
||||
///
|
||||
int columnsCount = 1; /// Left column contains item caption
|
||||
foreach (var mtr in string.IsNullOrEmpty(autoTestParam) ? wm.RegularMeterTestRslts() : wm.AutoMeterTestRslts(autoTestParam))
|
||||
int columnsCount = 1; /// Left column contains item captions
|
||||
foreach (var mtr in mtrTestRslts)
|
||||
{
|
||||
if (mtr != null && mtr.IsPilotRslt() && mtr.Publish() == Publish.Always)
|
||||
{
|
||||
@@ -324,39 +335,63 @@ namespace Results.Output
|
||||
}
|
||||
}
|
||||
|
||||
Table table = new Table(columnsCount);
|
||||
table.Style = style;
|
||||
Table table = new Table(columnsCount, style);
|
||||
|
||||
///
|
||||
/// Table content
|
||||
///
|
||||
bool separatorLineSignalled = false;
|
||||
WMeterRsltItemSpec.TableRowNr = 1;
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
string[] oneTableRow = new string[columnsCount];
|
||||
Alignment[] horizAlignment = new Alignment[columnsCount];
|
||||
VertAlignment[] vertAlignment = new VertAlignment[columnsCount];
|
||||
|
||||
oneTableRow[0] = items[i].Caption;
|
||||
horizAlignment[0] = Alignment.Center;
|
||||
vertAlignment[0] = VertAlignment.Middle;
|
||||
|
||||
WMeterRsltItemSpec.TableColumnNr = 1;
|
||||
foreach (var mtr in string.IsNullOrEmpty(autoTestParam) ? wm.RegularMeterTestRslts() : wm.AutoMeterTestRslts(autoTestParam))
|
||||
if (items[i].Uid == (int)ItemID.Separator)
|
||||
{
|
||||
/// Insert a separator line (topBorder = true for all row cells)
|
||||
separatorLineSignalled = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
bool topBorder = (style.HorizLines == TableLines.All)
|
||||
|| (style.HorizLines == TableLines.FirstAndLast && i == 0)
|
||||
|| (style.HorizLines == TableLines.FirstSecondAndLast && i <= 1)
|
||||
|| separatorLineSignalled;
|
||||
|
||||
separatorLineSignalled = false;
|
||||
|
||||
Cell[] aTableRow = new Cell[columnsCount];
|
||||
|
||||
aTableRow[0] = new Cell(items[i].Caption,
|
||||
style.HeaderFont,
|
||||
Alignment.Center,
|
||||
VertAlignment.Middle,
|
||||
topBorder,
|
||||
style.VertLines != TableLines.None);
|
||||
|
||||
for (int j = 0; j < mtrTestRslts.Count; j++)
|
||||
{
|
||||
var mtr = mtrTestRslts[j];
|
||||
|
||||
bool leftBorder = (style.VertLines == TableLines.All && (!items[i].Merge || j == 0))
|
||||
|| (style.VertLines == TableLines.FirstSecondAndLast && j == 0);
|
||||
|
||||
if (mtr != null && mtr.IsPilotRslt() && mtr.Publish() == Publish.Always)
|
||||
{
|
||||
/// Strip color information
|
||||
oneTableRow[WMeterRsltItemSpec.TableColumnNr] =
|
||||
items[i].Print(wm, mtr.Name()).Split(new char[] { '|' })[0];
|
||||
horizAlignment[WMeterRsltItemSpec.TableColumnNr] = items[i].Alignment;
|
||||
vertAlignment[WMeterRsltItemSpec.TableColumnNr] = VertAlignment.Middle;
|
||||
/// Get a text, strip color information
|
||||
WMeterRsltItemSpec.TableColumnNr = j + 1;
|
||||
string text = items[i].Print(wm, mtr.Name()).Split(new char[] { '|' })[0];
|
||||
|
||||
WMeterRsltItemSpec.TableColumnNr++;
|
||||
aTableRow[j + 1] = new Cell(text,
|
||||
style.Font,
|
||||
items[i].Alignment,
|
||||
VertAlignment.Middle,
|
||||
topBorder,
|
||||
leftBorder,
|
||||
false,
|
||||
(j != mtrTestRslts.Count - 1) && items[i].Merge);
|
||||
}
|
||||
}
|
||||
|
||||
table.AddRow(oneTableRow, horizAlignment, vertAlignment);
|
||||
table.AddRow(aTableRow);
|
||||
|
||||
WMeterRsltItemSpec.TableRowNr++;
|
||||
}
|
||||
@@ -365,15 +400,26 @@ namespace Results.Output
|
||||
}
|
||||
|
||||
|
||||
public static Table Create_TestsAreColumnsPL(Results.Entities.WaterMeter wm, IList<WMeterRsltItemSpec> items, TableStyle style, string autoTestParam = null)
|
||||
/// <summary>
|
||||
/// Create a table where tests are in columns.
|
||||
/// Two leftmost columns contains item (or row) captions and units.
|
||||
/// Separator lines can be inserted between rows.
|
||||
/// </summary>
|
||||
/// <param name="wm">Water meter</param>
|
||||
/// <param name="items">Result items</param>
|
||||
/// <param name="style">Table style</param>
|
||||
/// <param name="autoTestParam">Auto test parameter</param>
|
||||
/// <returns>Table to be printed</returns>
|
||||
public static Table Create_TestsAreColumnsPL(Entities.WaterMeter wm, IList<WMeterRsltItemSpec> items, TableStyle style, string autoTestParam = null)
|
||||
{
|
||||
/// Left column contains row captions
|
||||
/// Select results to be printed
|
||||
var mtrTestRslts = string.IsNullOrEmpty(autoTestParam) ? wm.RegularMeterTestRslts() : wm.AutoMeterTestRslts(autoTestParam);
|
||||
|
||||
///
|
||||
/// Calculate columns count
|
||||
///
|
||||
int columnsCount = 2; /// Left two columns contain item caption and units
|
||||
foreach (var mtr in string.IsNullOrEmpty(autoTestParam) ? wm.RegularMeterTestRslts() : wm.AutoMeterTestRslts(autoTestParam))
|
||||
int columnsCount = 2; /// Two left columns contain item caption and unit
|
||||
foreach (var mtr in mtrTestRslts)
|
||||
{
|
||||
if (mtr != null && mtr.IsPilotRslt() && mtr.Publish() == Publish.Always)
|
||||
{
|
||||
@@ -381,51 +427,71 @@ namespace Results.Output
|
||||
}
|
||||
}
|
||||
|
||||
Table table = new Table(columnsCount);
|
||||
table.Style = style;
|
||||
Table table = new Table(columnsCount, style);
|
||||
|
||||
///
|
||||
/// Table content
|
||||
///
|
||||
bool separatorLineSignalled = false;
|
||||
WMeterRsltItemSpec.TableRowNr = 1;
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
if (items[i].Uid == (int)ItemID.Separator)
|
||||
{
|
||||
table.AddRow(null, null, null); /// 'separator' row
|
||||
/// Insert a separator line (topBorder = true for all row cells)
|
||||
separatorLineSignalled = true;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
|
||||
bool topBorder = (style.HorizLines == TableLines.All)
|
||||
|| (style.HorizLines == TableLines.FirstAndLast && i == 0)
|
||||
|| (style.HorizLines == TableLines.FirstSecondAndLast && i <= 1)
|
||||
|| separatorLineSignalled;
|
||||
|
||||
separatorLineSignalled = false;
|
||||
|
||||
Cell[] aTableRow = new Cell[columnsCount];
|
||||
|
||||
aTableRow[0] = new Cell(items[i].Caption,
|
||||
style.HeaderFont,
|
||||
Alignment.Center,
|
||||
VertAlignment.Middle,
|
||||
topBorder,
|
||||
style.VertLines != TableLines.None);
|
||||
|
||||
aTableRow[1] = new Cell((i == 0) ? Strings.Unit : items[i].Units.ToDescription(),
|
||||
style.HeaderFont,
|
||||
Alignment.Center,
|
||||
VertAlignment.Middle,
|
||||
topBorder,
|
||||
style.VertLines == TableLines.All || style.VertLines == TableLines.FirstSecondAndLast);
|
||||
|
||||
for (int j = 0; j < mtrTestRslts.Count; j++)
|
||||
{
|
||||
string[] oneTableRow = new string[columnsCount];
|
||||
Alignment[] horizAlignment = new Alignment[columnsCount];
|
||||
VertAlignment[] vertAlignment = new VertAlignment[columnsCount];
|
||||
var mtr = mtrTestRslts[j];
|
||||
|
||||
oneTableRow[0] = items[i].Caption;
|
||||
horizAlignment[0] = Alignment.Center;
|
||||
vertAlignment[0] = VertAlignment.Middle;
|
||||
bool leftBorder = (style.VertLines == TableLines.All && (!items[i].Merge || j == 0))
|
||||
|| (style.VertLines == TableLines.FirstSecondAndLast && WMeterRsltItemSpec.TableColumnNr == 1);
|
||||
|
||||
oneTableRow[1] = (i == 0) ? "Jednostka" : items[i].Units.ToDescription();
|
||||
horizAlignment[1] = Alignment.Center;
|
||||
vertAlignment[1] = VertAlignment.Middle;
|
||||
|
||||
WMeterRsltItemSpec.TableColumnNr = 1;
|
||||
foreach (var mtr in string.IsNullOrEmpty(autoTestParam) ? wm.RegularMeterTestRslts() : wm.AutoMeterTestRslts(autoTestParam))
|
||||
if (mtr != null && mtr.IsPilotRslt() && mtr.Publish() == Publish.Always)
|
||||
{
|
||||
if (mtr != null && mtr.IsPilotRslt() && mtr.Publish() == Publish.Always)
|
||||
{
|
||||
int colIx = WMeterRsltItemSpec.TableColumnNr + 1;
|
||||
/// Get a text, strip color information
|
||||
WMeterRsltItemSpec.TableColumnNr = j + 1;
|
||||
string text = items[i].Print(wm, mtr.Name()).Split(new char[] { '|' })[0];
|
||||
|
||||
/// Strip color information
|
||||
oneTableRow[colIx] = items[i].Print(wm, mtr.Name()).Split(new char[] { '|' })[0];
|
||||
horizAlignment[colIx] = items[i].Alignment;
|
||||
vertAlignment[colIx] = VertAlignment.Middle;
|
||||
|
||||
WMeterRsltItemSpec.TableColumnNr++;
|
||||
}
|
||||
aTableRow[j + 2] = new Cell(text,
|
||||
style.Font,
|
||||
items[i].Alignment,
|
||||
VertAlignment.Middle,
|
||||
topBorder,
|
||||
leftBorder,
|
||||
false,
|
||||
(j != mtrTestRslts.Count - 1) && items[i].Merge);
|
||||
}
|
||||
|
||||
table.AddRow(oneTableRow, horizAlignment, vertAlignment);
|
||||
}
|
||||
|
||||
table.AddRow(aTableRow);
|
||||
|
||||
WMeterRsltItemSpec.TableRowNr++;
|
||||
}
|
||||
|
||||
|
||||
+109
-16
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2019-2022 Sensus Metering Systems
|
||||
/// Copyright (c) 2019-2023 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -25,7 +25,7 @@ namespace Results.Output
|
||||
IList<PointF> unsortedPoints = new List<PointF>();
|
||||
foreach (var mtr in wm.RegularMeterTestRslts())
|
||||
{
|
||||
double flow = mtr.TestRslt.FlowVolume;
|
||||
double flow = mtr.TestRslt.Flow;
|
||||
var td = mtr.TestRslt.TestData;
|
||||
|
||||
if (mtr.IsPilotRslt() && flow > 0 && td.Evaluate &&
|
||||
@@ -55,6 +55,9 @@ namespace Results.Output
|
||||
chArea.AxisX.LogarithmBase = 10;
|
||||
chArea.AxisX.IsLabelAutoFit = true;
|
||||
|
||||
Series upperLimit = new Series { Name = Strings.Upper_limit, ChartArea = "ChartArea1", ChartType = SeriesChartType.Line, Color = Color.Red };
|
||||
Series lowerLimit = new Series { Name = Strings.Lower_limit, ChartArea = "ChartArea1", ChartType = SeriesChartType.Line, Color = Color.Red };
|
||||
|
||||
List<double> xs = new List<double>() { 0.0001, 0.0002, 0.0005,
|
||||
0.001, 0.002, 0.005,
|
||||
0.01, 0.02, 0.05,
|
||||
@@ -71,6 +74,8 @@ namespace Results.Output
|
||||
double from = Common.Units.ConvertTo(flowUnit, wm.WaterMeterData.Q1_Qmin);
|
||||
double to = Common.Units.ConvertTo(flowUnit, isQ4 ? wm.WaterMeterData.Q4_Qmax : wm.WaterMeterData.Q3_Qn);
|
||||
bool inRange = false;
|
||||
double qSharp = (wm.WaterMeterData.Qnames == (sbyte)FlowNames.QpQi) ? GetQsharp(wm, flowUnit) : 0;
|
||||
double lastXs = 0;
|
||||
for (int i = 0; i < xs.Count - 3; i += 3)
|
||||
{
|
||||
if (xs[i] <= from && from < xs[i + 3])
|
||||
@@ -88,6 +93,37 @@ namespace Results.Output
|
||||
cl.FromPosition = Math.Log10(xs[j] * spacer);
|
||||
cl.ToPosition = Math.Log10(xs[j] / spacer);
|
||||
chArea.AxisX.CustomLabels.Add(cl);
|
||||
|
||||
if (wm.WaterMeterData.Qnames == (sbyte)FlowNames.QpQi)
|
||||
{
|
||||
if (lastXs != 0)
|
||||
{
|
||||
double insertedXs = Math.Sqrt(lastXs * xs[j]);
|
||||
|
||||
if (lastXs < qSharp && qSharp < insertedXs)
|
||||
{
|
||||
double errLim3 = GetErrorLimit(wm, flowUnit, qSharp);
|
||||
lowerLimit.Points.AddXY(qSharp, -errLim3);
|
||||
upperLimit.Points.AddXY(qSharp, +errLim3);
|
||||
}
|
||||
|
||||
double errLim2 = GetErrorLimit(wm, flowUnit, insertedXs);
|
||||
lowerLimit.Points.AddXY(insertedXs, -errLim2);
|
||||
upperLimit.Points.AddXY(insertedXs, +errLim2);
|
||||
|
||||
if (insertedXs < qSharp && qSharp < xs[j])
|
||||
{
|
||||
double errLim3 = GetErrorLimit(wm, flowUnit, qSharp);
|
||||
lowerLimit.Points.AddXY(qSharp, -errLim3);
|
||||
upperLimit.Points.AddXY(qSharp, +errLim3);
|
||||
}
|
||||
}
|
||||
lastXs = xs[j];
|
||||
|
||||
double errLim = GetErrorLimit(wm, flowUnit, xs[j]);
|
||||
lowerLimit.Points.AddXY(xs[j], -errLim);
|
||||
upperLimit.Points.AddXY(xs[j], +errLim);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,6 +137,36 @@ namespace Results.Output
|
||||
cl.ToPosition = Math.Log10(xs[i + 3] / spacer);
|
||||
chArea.AxisX.CustomLabels.Add(cl);
|
||||
|
||||
if (wm.WaterMeterData.Qnames == (sbyte)FlowNames.QpQi)
|
||||
{
|
||||
if (lastXs != 0)
|
||||
{
|
||||
double insertedXs = Math.Sqrt(lastXs * xs[i + 3]);
|
||||
|
||||
if (lastXs < qSharp && qSharp < insertedXs)
|
||||
{
|
||||
double errLim3 = GetErrorLimit(wm, flowUnit, qSharp);
|
||||
lowerLimit.Points.AddXY(qSharp, -errLim3);
|
||||
upperLimit.Points.AddXY(qSharp, +errLim3);
|
||||
}
|
||||
|
||||
double errLim2 = GetErrorLimit(wm, flowUnit, insertedXs);
|
||||
lowerLimit.Points.AddXY(insertedXs, -errLim2);
|
||||
upperLimit.Points.AddXY(insertedXs, +errLim2);
|
||||
|
||||
if (insertedXs < qSharp && qSharp < xs[i + 3])
|
||||
{
|
||||
double errLim3 = GetErrorLimit(wm, flowUnit, qSharp);
|
||||
lowerLimit.Points.AddXY(qSharp, -errLim3);
|
||||
upperLimit.Points.AddXY(qSharp, +errLim3);
|
||||
}
|
||||
}
|
||||
|
||||
double errLim = GetErrorLimit(wm, flowUnit, xs[i + 3]);
|
||||
lowerLimit.Points.AddXY(xs[i + 3], -errLim);
|
||||
upperLimit.Points.AddXY(xs[i + 3], +errLim);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -111,19 +177,20 @@ namespace Results.Output
|
||||
|
||||
Legend legend1 = new Legend { Name = "Legend1" };
|
||||
|
||||
Series upperLimit = new Series { Name = Strings.Upper_limit, ChartArea = "ChartArea1", ChartType = SeriesChartType.Line, Color = Color.Red };
|
||||
upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q1_Qmin), 5);
|
||||
upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q2_Qt), 5);
|
||||
upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q2_Qt), 2);
|
||||
upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q3_Qn), 2);
|
||||
if (isQ4) upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q4_Qmax), 2);
|
||||
if (wm.WaterMeterData.Qnames == (sbyte)FlowNames.Q3Q2Q1 || wm.WaterMeterData.Qnames == (sbyte)FlowNames.QnQtQmin)
|
||||
{
|
||||
upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q1_Qmin), wm.WaterMeterData.ErrLimLoQ);
|
||||
upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q2_Qt), wm.WaterMeterData.ErrLimLoQ);
|
||||
upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q2_Qt), wm.WaterMeterData.ErrLimHiQ);
|
||||
upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q3_Qn), wm.WaterMeterData.ErrLimHiQ);
|
||||
if (isQ4) upperLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q4_Qmax), wm.WaterMeterData.ErrLimHiQ);
|
||||
|
||||
Series lowerLimit = new Series { Name = Strings.Lower_limit, ChartArea = "ChartArea1", ChartType = SeriesChartType.Line, Color = Color.Red };
|
||||
lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q1_Qmin), -5);
|
||||
lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q2_Qt), -5);
|
||||
lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q2_Qt), -2);
|
||||
lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q3_Qn), -2);
|
||||
if (isQ4) lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q4_Qmax), -2);
|
||||
lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q1_Qmin), -wm.WaterMeterData.ErrLimLoQ);
|
||||
lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q2_Qt), -wm.WaterMeterData.ErrLimLoQ);
|
||||
lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q2_Qt), -wm.WaterMeterData.ErrLimHiQ);
|
||||
lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q3_Qn), -wm.WaterMeterData.ErrLimHiQ);
|
||||
if (isQ4) lowerLimit.Points.AddXY(Units.ConvertTo(flowUnit, wm.WaterMeterData.Q4_Qmax), -wm.WaterMeterData.ErrLimHiQ);
|
||||
}
|
||||
|
||||
Series line = new Series { Name = Strings.Relative_error, ChartArea = "ChartArea1", ChartType = SeriesChartType.Line, Color = Color.DeepSkyBlue };
|
||||
Series dots = new Series { Name = Strings.Relative_error + " ", ChartArea = "ChartArea1", ChartType = SeriesChartType.Point, Color = Color.RoyalBlue };
|
||||
@@ -137,12 +204,38 @@ namespace Results.Output
|
||||
|
||||
chart.ChartAreas.Add(chArea);
|
||||
chart.Legends.Add(legend1);
|
||||
chart.Series.Add(upperLimit);
|
||||
chart.Series.Add(lowerLimit);
|
||||
if (upperLimit.Points.Count > 1) chart.Series.Add(upperLimit);
|
||||
if (lowerLimit.Points.Count > 1) chart.Series.Add(lowerLimit);
|
||||
chart.Series.Add(dots);
|
||||
chart.Series.Add(line);
|
||||
|
||||
return chart;
|
||||
}
|
||||
|
||||
static double GetErrorLimit(WaterMeter wm, Unit flowUnit, double x)
|
||||
{
|
||||
double flow_m3 = Units.ConvertFrom(flowUnit, x);
|
||||
switch (Convert.ToInt32(wm.WaterMeterData.Q2_Qt))
|
||||
{
|
||||
default:
|
||||
case 1: return Math.Min(3.5, 1.0 + 0.01 * wm.WaterMeterData.Q3_Qn / flow_m3);
|
||||
case 2: return Math.Min(5.0, 2.0 + 0.02 * wm.WaterMeterData.Q3_Qn / flow_m3);
|
||||
case 3: return Math.Min(5.0, 3.0 + 0.05 * wm.WaterMeterData.Q3_Qn / flow_m3);
|
||||
}
|
||||
}
|
||||
|
||||
static double GetQsharp(WaterMeter wm, Unit flowUnit)
|
||||
{
|
||||
double qSharp;
|
||||
switch (Convert.ToInt32(wm.WaterMeterData.Q2_Qt))
|
||||
{
|
||||
default:
|
||||
case 1: qSharp = (0.01 / 2.5) * wm.WaterMeterData.Q3_Qn; break;
|
||||
case 2: qSharp = (0.02 / 3.0) * wm.WaterMeterData.Q3_Qn; break;
|
||||
case 3: qSharp = (0.05 / 2.0) * wm.WaterMeterData.Q3_Qn; break;
|
||||
}
|
||||
return Units.ConvertTo(flowUnit, qSharp);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+10
-1
@@ -19,7 +19,7 @@ namespace Results.Resources {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Strings {
|
||||
@@ -573,6 +573,15 @@ namespace Results.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Merge.
|
||||
/// </summary>
|
||||
internal static string Merge {
|
||||
get {
|
||||
return ResourceManager.GetString("Merge", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Meter type.
|
||||
/// </summary>
|
||||
|
||||
@@ -348,4 +348,7 @@
|
||||
<data name="Workstep" xml:space="preserve">
|
||||
<value>Krok</value>
|
||||
</data>
|
||||
<data name="Merge" xml:space="preserve">
|
||||
<value>Spojit</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -163,22 +163,22 @@
|
||||
<value>Stan końcowy</value>
|
||||
</data>
|
||||
<data name="ErrLimHi" xml:space="preserve">
|
||||
<value>Max. Dopuszczalny błąd</value>
|
||||
<value>Max. dopuszczalny błąd</value>
|
||||
</data>
|
||||
<data name="ErrLimLo" xml:space="preserve">
|
||||
<value>Min. Dopuszczalny błąd</value>
|
||||
<value>Min. dopuszczalny błąd</value>
|
||||
</data>
|
||||
<data name="Error" xml:space="preserve">
|
||||
<value>Błąd</value>
|
||||
</data>
|
||||
<data name="ErrRef" xml:space="preserve">
|
||||
<value>Zakres błędów</value>
|
||||
<value>Błąd wzorcowy</value>
|
||||
</data>
|
||||
<data name="Err_aux" xml:space="preserve">
|
||||
<value>Błąd dopuszczalny</value>
|
||||
<value>Błąd dodatkowy</value>
|
||||
</data>
|
||||
<data name="Err_main" xml:space="preserve">
|
||||
<value>Błąd podstawowy</value>
|
||||
<value>Błąd główny</value>
|
||||
</data>
|
||||
<data name="Flow" xml:space="preserve">
|
||||
<value>Przepływ</value>
|
||||
|
||||
@@ -849,4 +849,7 @@
|
||||
<data name="Workstep" xml:space="preserve">
|
||||
<value>Workstep</value>
|
||||
</data>
|
||||
<data name="Merge" xml:space="preserve">
|
||||
<value>Merge</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -19,7 +19,7 @@
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<DefineConstants>TRACE;DEBUG;LANG_PL</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
@@ -29,7 +29,7 @@
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DefineConstants>TRACE;LANG_PL</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
@@ -134,6 +134,7 @@
|
||||
<Compile Include="Mappings\TestRsltMap.cs" />
|
||||
<Compile Include="Mappings\WaterMeterDataMap.cs" />
|
||||
<Compile Include="Mappings\WaterMeterMap.cs" />
|
||||
<Compile Include="Output\Cell.cs" />
|
||||
<Compile Include="Output\Printers\Enhanced\EnhancedPrintDocument.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
|
||||
+370
-378
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2018 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -7,6 +7,7 @@ using Common;
|
||||
using Results.Entities;
|
||||
using Results.Resources;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
||||
namespace Results
|
||||
{
|
||||
@@ -28,6 +29,7 @@ namespace Results
|
||||
public string Precision; /// Specifies precision for the output
|
||||
public int Width; /// Specifies the number of characters of the output, 0 = automatic
|
||||
public Alignment Alignment; /// Specifies alignment for the output
|
||||
public bool Merge; /// true = items are merged into one cell for a meter, for all tests
|
||||
|
||||
public WMeterRsltItemSpec Clone()
|
||||
{
|
||||
@@ -39,6 +41,7 @@ namespace Results
|
||||
item2.Precision = Precision;
|
||||
item2.Width = Width;
|
||||
item2.Alignment = Alignment;
|
||||
item2.Merge = Merge;
|
||||
return item2;
|
||||
}
|
||||
|
||||
@@ -102,24 +105,15 @@ namespace Results
|
||||
Format = string.Empty;
|
||||
Precision = string.Empty;
|
||||
TestID = string.Empty;
|
||||
Merge = false;
|
||||
}
|
||||
|
||||
///
|
||||
/// Constructor without ToolTip text
|
||||
/// Constructor without a ToolTip text
|
||||
///
|
||||
public WMeterRsltItemSpec(ItemID itemId, string name, Quantity quantity, ItemCategory category, PrintDlgt printDlgt)
|
||||
: this(itemId, name, null, quantity, category, printDlgt)
|
||||
{
|
||||
Uid = (int)itemId;
|
||||
OldUid = itemId.ToString().Replace("__", "/").Replace('_', ' ');
|
||||
Name = name;
|
||||
ToolTipText = null;
|
||||
Quantity = quantity;
|
||||
Category = category;
|
||||
this.printDlgt = printDlgt;
|
||||
|
||||
Format = string.Empty;
|
||||
Precision = string.Empty;
|
||||
TestID = string.Empty;
|
||||
}
|
||||
|
||||
|
||||
@@ -134,374 +128,370 @@ namespace Results
|
||||
{
|
||||
AllItems = new List<WMeterRsltItemSpec>();
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.String, "String", "", Quantity.String, ItemCategory.Other, (w, t, u, f, p) => f));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Separator, "Separator", "", Quantity.String, ItemCategory.Other, (w, t, u, f, p) => string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.String, "String", "", Quantity.String, ItemCategory.Other, (w,t,u,f,p) => f));
|
||||
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.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())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_Method_Elde, Strings.Test_method + " Elde ()", Quantity.String, ItemCategory.TestData, (w, t, u, f, p) => FormatStr(f, (w.GetTestRslt(t) == null) ? "" : w.GetTestRslt(t).MethodElde())));
|
||||
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())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_Method_Elde, Strings.Test_method + " Elde ()", Quantity.String, ItemCategory.TestData, (w,t,u,f,p) => FormatStr(f, (w.GetTestRslt(t) == null) ? "" : w.GetTestRslt(t).MethodElde())));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.RefFlowmeter, "Ref. flowmeter", Quantity.String, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null) ? FormatStr(f, w.GetTestRslt(t).RefFlowmeter()) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Scale, "Scale", Quantity.String, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null) ? FormatStr(f, w.GetTestRslt(t).Scale()) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Diverter, "Diverter", Quantity.String, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null) ? FormatStr(f, w.GetTestRslt(t).Diverter()) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.RegValve, "Reg. valve", Quantity.String, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null) ? FormatStr(f, w.GetTestRslt(t).RegValve()) : string.Empty));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TestDone, Strings.Test_done + "()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => FormatBool(f, (w.GetMeterTestRslt(t) != null) && w.GetMeterTestRslt(t).TestDone)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TestPassed, Strings.Test_passed + "()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => FormatBool(f, (w.GetMeterTestRslt(t) != null) && w.GetMeterTestRslt(t).Passed)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Passed, Strings.Result, Quantity.Boolean, ItemCategory.MeterResult, (w,t,u,f,p) => w.PassedColorStr(f)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ThreeState, "Three state result",Quantity.Enumerated, ItemCategory.MeterResult, (w,t,u,f,p) => FormatThreeState(f, w.ThreeStateFromTests())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ResultOrErrorFlags,"Winiki lub E", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) != null) ? FormatStr(f, w.GetMeterTestRslt(t).PassedOrErrorFlagsStr())
|
||||
: FormatStr(f, w.PassedOrErrorFlagsStr()))); /// PL specific result
|
||||
///
|
||||
/// Volume
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_volume, Strings.Test_vol + "()", Quantity.Volume, ItemCategory.TestData, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V2", w.GetTestRslt(t).TargetVolume())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.VolumeCTV, string.Format("{0} CTV ()", Strings.VName_Vol), Quantity.Volume, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).VolumeCTV)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Volume, string.Format("{0} Mt. ()", Strings.VName_Vol), Strings.Tooltip_Vol_Mt, Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).VolumeMeter) : ((w.GetMeterTestRslt(t) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).VolumeMeter) : string.Empty)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_volume, string.Format("{0} rm ()", Strings.VName_Vol), Strings.Tooltip_Vol_rm, Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).VolumeRef) : ((w.GetMeterTestRslt(t) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).VolumeRef) : string.Empty)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Volume_main, string.Format("{0} {1} ()", Strings.VName_Vol, Strings.main), Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).VolumeMeter) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Volume_aux, string.Format("{0} {1} ()", Strings.VName_Vol, Strings.aux), Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).VolumeMeter) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_volume, Strings.Start_volume + "()", Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).VolumeStart) : ((w.GetMeterTestRslt(t) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).VolumeStart) : string.Empty)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_volume_main, Strings.Start_volume_main + "()", Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).VolumeStart) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_volume_aux, Strings.Start_volume_aux + "()", Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).VolumeStart) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_volume, Strings.End_volume + "()", Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).VolumeEnd) : ((w.GetMeterTestRslt(t) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).VolumeEnd) : string.Empty)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_volume_main, Strings.End_volume_main + "()", Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).VolumeEnd) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_volume_aux, Strings.End_volume_aux + "()", Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).VolumeEnd) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_volume, Strings.Test_vol + "()", Quantity.Volume, ItemCategory.TestData, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V2", w.GetTestRslt(t).TargetVolume())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.VolumeCTV, string.Format("{0} CTV ()", Strings.VName_Vol), Quantity.Volume, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).VolumeCTV)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Volume, string.Format("{0} Mt. ()", Strings.VName_Vol), Strings.Tooltip_Vol_Mt, Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).VolumeMeter) : ((w.GetMeterTestRslt(t) != null) ? FormatDbl(u,f,p, "V4", w.GetMeterTestRslt(t).VolumeMeter) : string.Empty)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_volume, string.Format("{0} rm ()", Strings.VName_Vol), Strings.Tooltip_Vol_rm, Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).VolumeRef) : ((w.GetMeterTestRslt(t) != null) ? FormatDbl(u,f,p, "V4", w.GetMeterTestRslt(t).VolumeRef) : string.Empty)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Volume_main, string.Format("{0} {1} ()", Strings.VName_Vol, Strings.main), Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).VolumeMeter) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Volume_aux, string.Format("{0} {1} ()", Strings.VName_Vol, Strings.aux), Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).VolumeMeter) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_volume, Strings.Start_volume + "()", Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).VolumeStart) : ((w.GetMeterTestRslt(t) != null) ? FormatDbl(u,f,p, "V4", w.GetMeterTestRslt(t).VolumeStart) : string.Empty)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_volume_main, Strings.Start_volume_main + "()", Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).VolumeStart) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_volume_aux, Strings.Start_volume_aux + "()", Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).VolumeStart) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_volume, Strings.End_volume + "()", Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).VolumeEnd) : ((w.GetMeterTestRslt(t) != null) ? FormatDbl(u,f,p, "V4", w.GetMeterTestRslt(t).VolumeEnd) : string.Empty)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_volume_main, Strings.End_volume_main + "()", Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).VolumeEnd) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_volume_aux, Strings.End_volume_aux + "()", Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) != null) ? FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).VolumeEnd) : string.Empty));
|
||||
|
||||
///
|
||||
/// Mass
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass_start_raw, string.Format("{0} ST raw ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).MassStartRaw)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass_start, string.Format("{0} ST ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).MassStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass_end_raw, string.Format("{0} EN raw ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).MassEndRaw)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass_end, string.Format("{0} EN ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).MassEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass, string.Format("{0} ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).MassEnd - w.GetTestRslt(t).MassStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass_start_raw, string.Format("{0} ST raw ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", w.GetTestRslt(t).MassStartRaw)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass_start, string.Format("{0} ST ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", w.GetTestRslt(t).MassStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass_end_raw, string.Format("{0} EN raw ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", w.GetTestRslt(t).MassEndRaw)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass_end, string.Format("{0} EN ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", w.GetTestRslt(t).MassEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mass, string.Format("{0} ()", Strings.VName_Mass), Quantity.Mass, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", w.GetTestRslt(t).MassEnd - w.GetTestRslt(t).MassStart)));
|
||||
|
||||
///
|
||||
/// Density
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Density, Strings.Density + " ()", Quantity.Density, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).DensityLine)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Density_correction, Strings.Density_correction + " ()", Quantity.Density, ItemCategory.BenchData, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", Formulas.DensityCorrection(w.Batch.SampleDensity, w.Batch.SampleTemp))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Rho_Wa_calc, string.Format("{0} of sample", Strings.Density), Quantity.Density, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", w.Batch.SampleDensity)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.RhoDistilledWtrAtMeLineTemp, string.Format("{0} of distilled water at T line", Strings.Density), Quantity.Density, ItemCategory.BenchData, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", (w.GetTestRslt(t) == null) ? 0 : Formulas.DistilledWaterDensityFromTemp((w.GetTestRslt(t).TempUpMean + w.GetTestRslt(t).TempDownMean) / 2))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Density, Strings.Density + " ()", Quantity.Density, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", w.GetTestRslt(t).DensityLine)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Density_correction, Strings.Density_correction + " ()", Quantity.Density, ItemCategory.BenchData, (w,t,u,f,p) => FormatDbl(u,f,p, "V3", Formulas.DensityCorrection(w.Batch.SampleDensity, w.Batch.SampleTemp))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Rho_Wa_calc, string.Format("{0} of sample", Strings.Density), Quantity.Density, ItemCategory.TestResult, (w,t,u,f,p) => FormatDbl(u,f,p, "V4", w.Batch.SampleDensity)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.RhoDistilledWtrAtMeLineTemp, string.Format("{0} of distilled water at T line", Strings.Density), Quantity.Density, ItemCategory.BenchData, (w,t,u,f,p) => FormatDbl(u,f,p, "V4", (w.GetTestRslt(t) == null) ? 0 : Formulas.DistilledWaterDensityFromTemp((w.GetTestRslt(t).TempUpMean + w.GetTestRslt(t).TempDownMean) / 2))));
|
||||
|
||||
///
|
||||
/// Date and time
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_start_time, Strings.T_start + "()", Quantity.DateTime, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : (string.IsNullOrEmpty(f) ? w.GetTestRslt(t).StartTime.ToString() : string.Format(f, w.GetTestRslt(t).StartTime))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_end_time, Strings.T_end + "()", Quantity.DateTime, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : (string.IsNullOrEmpty(f) ? w.GetTestRslt(t).EndTime.ToString() : string.Format(f, w.GetTestRslt(t).EndTime))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_start_time, Strings.T_start + "()", Quantity.DateTime, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : (string.IsNullOrEmpty(f) ? w.GetTestRslt(t).StartTime.ToString() : string.Format(f, w.GetTestRslt(t).StartTime))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_end_time, Strings.T_end + "()", Quantity.DateTime, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : (string.IsNullOrEmpty(f) ? w.GetTestRslt(t).EndTime.ToString() : string.Format(f, w.GetTestRslt(t).EndTime))));
|
||||
|
||||
///
|
||||
/// Time (duration)
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Timestamp_start, "Timestamp start ()", Quantity.Time, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).TimestampStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Timestamp_end, "Timestamp end ()", Quantity.Time, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).TimestampEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_time_ni, Strings.T_s + "_ni()", Quantity.Time, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u, f, p, "V3", w.GetMeterTestRslt(t).TestTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_time, Strings.T_s + "()", Quantity.Time, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u, f, p, "F1", w.GetTestRslt(t).TestTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TestTimeCorrection, "Test time correction ()", Quantity.Time, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).TestTimeCorrection)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TimeBtwnMassMsrmnts, "Time between mass measurements ()", Quantity.Time, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u, f, p, "F0", w.GetTestRslt(t).TimeBtwnMassMsrmnts)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.PMax_test_time, "Pressure test time ()", "Pressure test time", Quantity.Time, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsPMaxTest()) ? "" : FormatDbl(u, f, p, "F0", w.GetTestRslt(t).TestTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Diverter_start_time, "Diverter start time ()", "Diverter start time", Quantity.Time, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsDiverter()) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).DiverterStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Diverter_end_time, "Diverter end time ()", "Diverter end time", Quantity.Time, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsDiverter()) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).DiverterEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_valve_open_time, "Start valve open time ()", "Start valve open time", Quantity.Time, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsStartStop()) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).DiverterStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_valve_close_time, "Start valve close time ()", "Start valve close time", Quantity.Time, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsStartStop()) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).DiverterEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Timestamp_start, "Timestamp start ()", Quantity.Time, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u,f,p, "V4", w.GetMeterTestRslt(t).TimestampStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Timestamp_end, "Timestamp end ()", Quantity.Time, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u,f,p, "V4", w.GetMeterTestRslt(t).TimestampEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_time_ni, Strings.T_s + "_ni()", Quantity.Time, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u,f,p, "V3", w.GetMeterTestRslt(t).TestTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Test_time, Strings.T_s + "()", Quantity.Time, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u,f,p, "F1", w.GetTestRslt(t).TestTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TestTimeCorrection, "Test time correction ()", Quantity.Time, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u,f,p, "F3", w.GetTestRslt(t).TestTimeCorrection)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TimeBtwnMassMsrmnts, "Time between mass measurements ()", Quantity.Time, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsRelErrTest()) ? "" : FormatDbl(u,f,p, "F0", w.GetTestRslt(t).TimeBtwnMassMsrmnts)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.PMax_test_time, "Pressure test time ()", "Pressure test time", Quantity.Time, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsPMaxTest()) ? "" : FormatDbl(u,f,p, "F0", w.GetTestRslt(t).TestTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Diverter_start_time, "Diverter start time ()", "Diverter start time", Quantity.Time, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsDiverter()) ? "" : FormatDbl(u,f,p, "F3", w.GetTestRslt(t).DiverterStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Diverter_end_time, "Diverter end time ()", "Diverter end time", Quantity.Time, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsDiverter()) ? "" : FormatDbl(u,f,p, "F3", w.GetTestRslt(t).DiverterEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_valve_open_time, "Start valve open time ()", "Start valve open time", Quantity.Time, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsStartStop()) ? "" : FormatDbl(u,f,p, "F3", w.GetTestRslt(t).DiverterStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Start_valve_close_time, "Start valve close time ()", "Start valve close time", Quantity.Time, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsStartStop()) ? "" : FormatDbl(u,f,p, "F3", w.GetTestRslt(t).DiverterEnd)));
|
||||
|
||||
///
|
||||
/// Flow
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_from, string.Format("{0} {1}", Strings.VName_Flow, Strings.from), Quantity.Flow, ItemCategory.TestData, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).Qfrom())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_to, string.Format("{0} {1}", Strings.VName_Flow, Strings.to), Quantity.Flow, ItemCategory.TestData, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).Qto())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow, string.Format("{0} v r", Strings.VName_Flow), Strings.Tooltip_Q_v_r, Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).FlowVolume)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_mean, string.Format("{0} rim ()", Strings.VName_Flow), Strings.Tooltip_Q_rim, Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).FlowMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_min, string.Format("{0} ref min ()", Strings.VName_Flow), Strings.Tooltip_Q_min, Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).FlowMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_max, string.Format("{0} ref max ()", Strings.VName_Flow), Strings.Tooltip_Q_max, Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).FlowMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_start, string.Format("{0} ref start ()",Strings.VName_Flow),Strings.Tooltip_Q_start, Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).FlowStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_end, string.Format("{0} ref end ()", Strings.VName_Flow), Strings.Tooltip_Q_end, Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).FlowEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Qc, string.Format("Qc"), "Calculated water meter flow", Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V5", (w.GetMeterTestRslt(t).TestTime == 0 || w.GetTestRslt(t).PulsesMaster == 0) ? 0 : w.GetTestRslt(t).VolumeCTV / w.GetMeterTestRslt(t).TestTime * 3.6 * w.GetMeterTestRslt(t).PulsesMaster / w.GetTestRslt(t).PulsesMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow_ctv, string.Format("{0} ctv ()", Strings.VName_Flow), "CTV of the flow (mean val.)", Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V5", (w.GetMeterTestRslt(t).TestTime == 0 || w.GetTestRslt(t).PulsesMaster == 0) ? 0 : w.GetTestRslt(t).VolumeCTV / w.GetMeterTestRslt(t).TestTime * 3.6 * w.GetMeterTestRslt(t).PulsesMaster / w.GetTestRslt(t).PulsesMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow_ctv_min, string.Format("{0} ctv min ()", Strings.VName_Flow), "Min. CTV of the flow", Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).VolumeMaster == 0) ? 0 : w.GetTestRslt(t).VolumeCTV * w.GetTestRslt(t).FlowMin / w.GetTestRslt(t).VolumeMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow_ctv_max, string.Format("{0} ctv max ()", Strings.VName_Flow), "Max. CTV of the flow", Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).VolumeMaster == 0) ? 0 : w.GetTestRslt(t).VolumeCTV * w.GetTestRslt(t).FlowMax / w.GetTestRslt(t).VolumeMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow_ctv_start, string.Format("{0} ctv start ()", Strings.VName_Flow), "Start flow CTV", Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).VolumeMaster == 0) ? 0 : w.GetTestRslt(t).VolumeCTV * w.GetTestRslt(t).FlowStart / w.GetTestRslt(t).VolumeMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow_ctv_end, string.Format("{0} ctv end ()", Strings.VName_Flow), "End flow CTV", Quantity.Flow, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).VolumeMaster == 0) ? 0 : w.GetTestRslt(t).VolumeCTV * w.GetTestRslt(t).FlowEnd / w.GetTestRslt(t).VolumeMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_rise, string.Format("{0} {1}", Strings.VName_Flow, Strings.rise), Quantity.Flow, ItemCategory.MeterResult, (w, t, u, f, p) => (string.IsNullOrEmpty(t) || (w.GetTestRslt(t) != null)) ? ((w.QRise == 0) ? "-" : FormatDbl(u, f, p, "V3", w.QRise)) : ""));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_fall, string.Format("{0} {1}", Strings.VName_Flow, Strings.fall), Quantity.Flow, ItemCategory.MeterResult, (w, t, u, f, p) => (string.IsNullOrEmpty(t) || (w.GetTestRslt(t) != null)) ? ((w.QFall == 0) ? "-" : FormatDbl(u, f, p, "V3", w.QFall)) : ""));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_sensitivity, string.Format("{0} {1}", Strings.VName_Flow, Strings.sensitivity), Quantity.Flow, ItemCategory.MeterResult, (w, t, u, f, p) => (string.IsNullOrEmpty(t) || (w.GetTestRslt(t) != null)) ? ((w.QRise == 0) ? "-" : FormatDbl(u, f, p, "V3", w.QRise)) : ""));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_from, string.Format("{0} {1}", Strings.VName_Flow, Strings.from), Quantity.Flow, ItemCategory.TestData, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).Qfrom())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_to, string.Format("{0} {1}", Strings.VName_Flow, Strings.to), Quantity.Flow, ItemCategory.TestData, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).Qto())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow, string.Format("{0} v r", Strings.VName_Flow), Strings.Tooltip_Q_v_r, Quantity.Flow, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).Flow)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_mean, string.Format("{0} mean ()", Strings.VName_Flow), Strings.Tooltip_Q_rim, Quantity.Flow, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).FlowMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_min, string.Format("{0} min ()", Strings.VName_Flow), Strings.Tooltip_Q_min, Quantity.Flow, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).FlowMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_max, string.Format("{0} max ()", Strings.VName_Flow), Strings.Tooltip_Q_max, Quantity.Flow, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).FlowMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_start, string.Format("{0} start ()",Strings.VName_Flow), Strings.Tooltip_Q_start, Quantity.Flow, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).FlowStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_ref_end, string.Format("{0} end ()", Strings.VName_Flow), Strings.Tooltip_Q_end, Quantity.Flow, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).FlowEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_rise, string.Format("{0} {1}", Strings.VName_Flow, Strings.rise), Quantity.Flow, ItemCategory.MeterResult, (w,t,u,f,p) => (string.IsNullOrEmpty(t) || (w.GetTestRslt(t) != null)) ? ((w.QRise == 0) ? "-" : FormatDbl(u,f,p, "V3", w.QRise)) : ""));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_fall, string.Format("{0} {1}", Strings.VName_Flow, Strings.fall), Quantity.Flow, ItemCategory.MeterResult, (w,t,u,f,p) => (string.IsNullOrEmpty(t) || (w.GetTestRslt(t) != null)) ? ((w.QFall == 0) ? "-" : FormatDbl(u,f,p, "V3", w.QFall)) : ""));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q_sensitivity, string.Format("{0} {1}", Strings.VName_Flow, Strings.sensitivity), Quantity.Flow, ItemCategory.MeterResult, (w,t,u,f,p) => (string.IsNullOrEmpty(t) || (w.GetTestRslt(t) != null)) ? ((w.QRise == 0) ? "-" : FormatDbl(u,f,p, "V3", w.QRise)) : ""));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ConstMaster, string.Format("k MID ()"), "Const. of the reference flow meter", Quantity.PulsePerLtr, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", ((w.GetTestRslt(t).ConstMaster < float.Epsilon) ? 0 : (1 / w.GetTestRslt(t).ConstMaster)))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ConstMasterRaw, string.Format("k MID raw ()"),"Const. of the ref. flow meter uncorrected", Quantity.PulsePerLtr, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", ((w.GetTestRslt(t).ConstMasterRaw < float.Epsilon) ? 0 : (1 / w.GetTestRslt(t).ConstMasterRaw)))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ConstMasterCorr,string.Format("k MID corr ()"), "Const. of the ref. flow meter corrected", Quantity.PulsePerLtr, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", ((w.GetTestRslt(t).ConstMasterCorr < float.Epsilon) ? 0 : (1 / w.GetTestRslt(t).ConstMasterCorr)))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ConstMaster, string.Format("k MID ()"), "Const.of the reference flow meter", Quantity.PulsePerLtr, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", ((w.GetTestRslt(t).ConstMaster < float.Epsilon) ? 0 : (1 / w.GetTestRslt(t).ConstMaster)))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ConstMasterRaw, string.Format("k MID raw ()"),"Const.of the ref.flow meter uncorrected", Quantity.PulsePerLtr, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", ((w.GetTestRslt(t).ConstMasterRaw < float.Epsilon) ? 0 : (1 / w.GetTestRslt(t).ConstMasterRaw)))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ConstMasterCorr,string.Format("k MID corr ()"), "Const.of the ref.flow meter corrected", Quantity.PulsePerLtr, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V4", ((w.GetTestRslt(t).ConstMasterCorr < float.Epsilon) ? 0 : (1 / w.GetTestRslt(t).ConstMasterCorr)))));
|
||||
|
||||
///
|
||||
/// Temperature
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_mean, string.Format("{0} UP ME ()", Strings.VName_Temp), Strings.Tooltip_T_up_me, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempUpMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_start, string.Format("{0} UP ST ()", Strings.VName_Temp), Strings.Tooltip_T_up_st, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempUpStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_end, string.Format("{0} UP EN ()", Strings.VName_Temp), Strings.Tooltip_T_up_en, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempUpEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_avg, string.Format("{0} UP avg ()", Strings.VName_Temp), Strings.Tooltip_T_up_avg, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempUpStart + w.GetTestRslt(t).TempUpEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_min, string.Format("{0} UP min ()", Strings.VName_Temp), Strings.Tooltip_T_up_min, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempUpMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_max, string.Format("{0} UP max ()", Strings.VName_Temp), Strings.Tooltip_T_up_max, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempUpMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_mean, string.Format("{0} LN ME ()", Strings.VName_Temp), Strings.Tooltip_T_ln_me, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempUpMean + w.GetTestRslt(t).TempDownMean) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_start, string.Format("{0} LN ST ()", Strings.VName_Temp), Strings.Tooltip_T_ln_st, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempUpStart + w.GetTestRslt(t).TempDownStart) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_end, string.Format("{0} LN EN ()", Strings.VName_Temp), Strings.Tooltip_T_ln_en, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempUpEnd + w.GetTestRslt(t).TempDownEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_avg, string.Format("{0} LN avg ()", Strings.VName_Temp), Strings.Tooltip_T_ln_avg, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempUpStart + w.GetTestRslt(t).TempDownStart + w.GetTestRslt(t).TempUpEnd + w.GetTestRslt(t).TempDownEnd) / 4)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_min, string.Format("{0} LN min ()", Strings.VName_Temp), Strings.Tooltip_T_ln_min, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempUpMin + w.GetTestRslt(t).TempDownMin) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_max, string.Format("{0} LN max ()", Strings.VName_Temp), Strings.Tooltip_T_ln_max, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempUpMax + w.GetTestRslt(t).TempDownMax) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_mean, string.Format("{0} DW ME ()", Strings.VName_Temp), Strings.Tooltip_T_dw_me, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDownMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_start, string.Format("{0} DW ST ()", Strings.VName_Temp), Strings.Tooltip_T_dw_st, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDownStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_end, string.Format("{0} DW EN ()", Strings.VName_Temp), Strings.Tooltip_T_dw_en, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDownEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_avg, string.Format("{0} DW avg ()", Strings.VName_Temp), Strings.Tooltip_T_dw_avg, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempDownStart + w.GetTestRslt(t).TempDownEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_min, string.Format("{0} DW min ()", Strings.VName_Temp), Strings.Tooltip_T_dw_min, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDownMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_max, string.Format("{0} DW max ()", Strings.VName_Temp), Strings.Tooltip_T_dw_max, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDownMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div, string.Format("{0} DI ME ()", Strings.VName_Temp), Strings.Tooltip_T_di_me, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_start, string.Format("{0} DI ST ()", Strings.VName_Temp), Strings.Tooltip_T_di_st, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_end, string.Format("{0} DI EN ()", Strings.VName_Temp), Strings.Tooltip_T_di_en, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_avg, string.Format("{0} DI avg ()", Strings.VName_Temp), Strings.Tooltip_T_di_avg, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempDivStart + w.GetTestRslt(t).TempDivEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_min, string.Format("{0} DI min ()", Strings.VName_Temp), Strings.Tooltip_T_di_min, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_max, string.Format("{0} DI max ()", Strings.VName_Temp), Strings.Tooltip_T_di_max, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_rho_0, string.Format("{0} RO0", Strings.VName_Temp), Strings.Tooltip_T_rho_0, Quantity.Temperature, ItemCategory.BenchData, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.Batch.SampleTemp)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_mean, string.Format("{0} UP ME ()", Strings.VName_Temp), Strings.Tooltip_T_up_me, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempUpMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_start, string.Format("{0} UP ST ()", Strings.VName_Temp), Strings.Tooltip_T_up_st, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempUpStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_end, string.Format("{0} UP EN ()", Strings.VName_Temp), Strings.Tooltip_T_up_en, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempUpEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_avg, string.Format("{0} UP avg ()", Strings.VName_Temp), Strings.Tooltip_T_up_avg, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempUpStart + w.GetTestRslt(t).TempUpEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_min, string.Format("{0} UP min ()", Strings.VName_Temp), Strings.Tooltip_T_up_min, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempUpMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_up_max, string.Format("{0} UP max ()", Strings.VName_Temp), Strings.Tooltip_T_up_max, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempUpMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_mean, string.Format("{0} LN ME ()", Strings.VName_Temp), Strings.Tooltip_T_ln_me, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempUpMean + w.GetTestRslt(t).TempDownMean) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_start, string.Format("{0} LN ST ()", Strings.VName_Temp), Strings.Tooltip_T_ln_st, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempUpStart + w.GetTestRslt(t).TempDownStart) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_end, string.Format("{0} LN EN ()", Strings.VName_Temp), Strings.Tooltip_T_ln_en, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempUpEnd + w.GetTestRslt(t).TempDownEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_avg, string.Format("{0} LN avg ()", Strings.VName_Temp), Strings.Tooltip_T_ln_avg, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempUpStart + w.GetTestRslt(t).TempDownStart + w.GetTestRslt(t).TempUpEnd + w.GetTestRslt(t).TempDownEnd) / 4)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_min, string.Format("{0} LN min ()", Strings.VName_Temp), Strings.Tooltip_T_ln_min, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempUpMin + w.GetTestRslt(t).TempDownMin) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_line_max, string.Format("{0} LN max ()", Strings.VName_Temp), Strings.Tooltip_T_ln_max, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempUpMax + w.GetTestRslt(t).TempDownMax) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_mean, string.Format("{0} DW ME ()", Strings.VName_Temp), Strings.Tooltip_T_dw_me, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDownMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_start, string.Format("{0} DW ST ()", Strings.VName_Temp), Strings.Tooltip_T_dw_st, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDownStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_end, string.Format("{0} DW EN ()", Strings.VName_Temp), Strings.Tooltip_T_dw_en, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDownEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_avg, string.Format("{0} DW avg ()", Strings.VName_Temp), Strings.Tooltip_T_dw_avg, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempDownStart + w.GetTestRslt(t).TempDownEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_min, string.Format("{0} DW min ()", Strings.VName_Temp), Strings.Tooltip_T_dw_min, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDownMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_down_max, string.Format("{0} DW max ()", Strings.VName_Temp), Strings.Tooltip_T_dw_max, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDownMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div, string.Format("{0} DI ME ()", Strings.VName_Temp), Strings.Tooltip_T_di_me, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDivMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_start, string.Format("{0} DI ST ()", Strings.VName_Temp), Strings.Tooltip_T_di_st, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDivStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_end, string.Format("{0} DI EN ()", Strings.VName_Temp), Strings.Tooltip_T_di_en, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDivEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_avg, string.Format("{0} DI avg ()", Strings.VName_Temp), Strings.Tooltip_T_di_avg, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).TempDivStart + w.GetTestRslt(t).TempDivEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_min, string.Format("{0} DI min ()", Strings.VName_Temp), Strings.Tooltip_T_di_min, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDivMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_max, string.Format("{0} DI max ()", Strings.VName_Temp), Strings.Tooltip_T_di_max, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).TempDivMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_rho_0, string.Format("{0} RO0", Strings.VName_Temp), Strings.Tooltip_T_rho_0, Quantity.Temperature, ItemCategory.BenchData, (w,t,u,f,p) => FormatDbl(u,f,p, "V3", w.Batch.SampleTemp)));
|
||||
#if HEAT_METERS
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_mean, string.Format("{0} hi me", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom1)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_start, string.Format("{0} hi st", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_end, string.Format("{0} hi en", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom3)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_avg, string.Format("{0} hi av", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", (w.GetTestRslt(t).Custom2 + w.GetTestRslt(t).Custom3) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Lo_mean, string.Format("{0} lo me", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom6)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Lo_start, string.Format("{0} lo st", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom7)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Lo_end, string.Format("{0} lo en", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom8)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Lo_avg, string.Format("{0} lo av", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", (w.GetTestRslt(t).Custom7 + w.GetTestRslt(t).Custom8) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_mean, string.Format("{0} hi me", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom1)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_start, string.Format("{0} hi st", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_end, string.Format("{0} hi en", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom3)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_avg, string.Format("{0} hi av", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", (w.GetTestRslt(t).Custom2 + w.GetTestRslt(t).Custom3) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Lo_mean, string.Format("{0} lo me", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom6)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Lo_start, string.Format("{0} lo st", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom7)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Lo_end, string.Format("{0} lo en", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom8)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Lo_avg, string.Format("{0} lo av", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", (w.GetTestRslt(t).Custom7 + w.GetTestRslt(t).Custom8) / 2)));
|
||||
#endif
|
||||
|
||||
///
|
||||
/// Pressure
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up, string.Format("{0} UP ME ()", Strings.VName_Press), Strings.Tooltip_P_up_me, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressUpMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_start, string.Format("{0} UP ST ()", Strings.VName_Press), Strings.Tooltip_P_up_st, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressUpStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_end, string.Format("{0} UP EN ()", Strings.VName_Press), Strings.Tooltip_P_up_en, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressUpEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_avg, string.Format("{0} UP avg ()", Strings.VName_Press), Strings.Tooltip_P_up_avg, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).PressUpStart + w.GetTestRslt(t).PressUpEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_min, string.Format("{0} UP min ()", Strings.VName_Press), Strings.Tooltip_P_up_min, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressUpMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_max, string.Format("{0} UP max ()", Strings.VName_Press), Strings.Tooltip_P_up_max, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressUpMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down, string.Format("{0} DW ME ()", Strings.VName_Press), Strings.Tooltip_P_dw_me, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDownMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_start, string.Format("{0} DW ST ()", Strings.VName_Press), Strings.Tooltip_P_dw_st, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDownStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_end, string.Format("{0} DW EN ()", Strings.VName_Press), Strings.Tooltip_P_dw_en, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDownEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_avg, string.Format("{0} DW avg ()", Strings.VName_Press), Strings.Tooltip_P_dw_avg, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).PressDownStart + w.GetTestRslt(t).PressDownEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_min, string.Format("{0} DW min ()", Strings.VName_Press), Strings.Tooltip_P_dw_min, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDownMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_max, string.Format("{0} DW max ()", Strings.VName_Press), Strings.Tooltip_P_dw_max, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDownMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_mean, string.Format("{0} DE ME ()", Strings.VName_Press), Strings.Tooltip_P_de_me, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDeltaMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_start, string.Format("{0} DE ST ()", Strings.VName_Press), Strings.Tooltip_P_de_st, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDeltaStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_end, string.Format("{0} DE EN ()", Strings.VName_Press), Strings.Tooltip_P_de_en, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDeltaEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_avg, string.Format("{0} DE avg ()", Strings.VName_Press), Strings.Tooltip_P_de_avg, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).PressDeltaStart + w.GetTestRslt(t).PressDeltaEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_min, string.Format("{0} DE min ()", Strings.VName_Press), Strings.Tooltip_P_de_min, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDeltaMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_max, string.Format("{0} DE max ()", Strings.VName_Press), Strings.Tooltip_P_de_max, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDeltaMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_mean_per_mtr, string.Format("{0} DE ME per mtr.()", Strings.VName_Press), "P delta mean per one meter", Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressDeltaMean / Math.Max(1, w.GetTestRslt(t).Batch.WaterMeters.Count))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_mean_from_up_down, string.Format("{0} UP-DW ME ()", Strings.VName_Press), "P delta mean from UP/DW", Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).PressUpMean - w.GetTestRslt(t).PressDownMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_mean_from_up_down_per_mtr, string.Format("{0} UP-DW ME per mtr ()", Strings.VName_Press), "P delta mean from UP/DW per one meter", Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).PressUpMean - w.GetTestRslt(t).PressDownMean) / Math.Max(1, w.GetTestRslt(t).Batch.WaterMeters.Count))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_PMax_test_mean, string.Format("{0} PMax mean ()", Strings.VName_Press), "Mean PMax test pressure", Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsPMaxTest()) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).PressUpMean + w.GetTestRslt(t).PressDownMean) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up, string.Format("{0} UP ME ()", Strings.VName_Press), Strings.Tooltip_P_up_me, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressUpMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_start, string.Format("{0} UP ST ()", Strings.VName_Press), Strings.Tooltip_P_up_st, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressUpStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_end, string.Format("{0} UP EN ()", Strings.VName_Press), Strings.Tooltip_P_up_en, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressUpEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_avg, string.Format("{0} UP avg ()", Strings.VName_Press), Strings.Tooltip_P_up_avg, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).PressUpStart + w.GetTestRslt(t).PressUpEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_min, string.Format("{0} UP min ()", Strings.VName_Press), Strings.Tooltip_P_up_min, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressUpMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_up_max, string.Format("{0} UP max ()", Strings.VName_Press), Strings.Tooltip_P_up_max, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressUpMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down, string.Format("{0} DW ME ()", Strings.VName_Press), Strings.Tooltip_P_dw_me, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDownMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_start, string.Format("{0} DW ST ()", Strings.VName_Press), Strings.Tooltip_P_dw_st, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDownStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_end, string.Format("{0} DW EN ()", Strings.VName_Press), Strings.Tooltip_P_dw_en, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDownEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_avg, string.Format("{0} DW avg ()", Strings.VName_Press), Strings.Tooltip_P_dw_avg, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).PressDownStart + w.GetTestRslt(t).PressDownEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_min, string.Format("{0} DW min ()", Strings.VName_Press), Strings.Tooltip_P_dw_min, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDownMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_down_max, string.Format("{0} DW max ()", Strings.VName_Press), Strings.Tooltip_P_dw_max, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDownMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_mean, string.Format("{0} DE ME ()", Strings.VName_Press), Strings.Tooltip_P_de_me, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDeltaMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_start, string.Format("{0} DE ST ()", Strings.VName_Press), Strings.Tooltip_P_de_st, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDeltaStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_end, string.Format("{0} DE EN ()", Strings.VName_Press), Strings.Tooltip_P_de_en, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDeltaEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_avg, string.Format("{0} DE avg ()", Strings.VName_Press), Strings.Tooltip_P_de_avg, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).PressDeltaStart + w.GetTestRslt(t).PressDeltaEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_min, string.Format("{0} DE min ()", Strings.VName_Press), Strings.Tooltip_P_de_min, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDeltaMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_max, string.Format("{0} DE max ()", Strings.VName_Press), Strings.Tooltip_P_de_max, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDeltaMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_mean_per_mtr, string.Format("{0} DE ME per mtr.()", Strings.VName_Press), "P delta mean per one meter", Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressDeltaMean / Math.Max(1, w.GetTestRslt(t).Batch.WaterMeters.Count))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_mean_from_up_down, string.Format("{0} UP-DW ME ()", Strings.VName_Press), "P delta mean from UP/DW", Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).PressUpMean - w.GetTestRslt(t).PressDownMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_delta_mean_from_up_down_per_mtr, string.Format("{0} UP-DW ME per mtr ()", Strings.VName_Press), "P delta mean from UP/DW per one meter", Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).PressUpMean - w.GetTestRslt(t).PressDownMean) / Math.Max(1, w.GetTestRslt(t).Batch.WaterMeters.Count))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.P_PMax_test_mean, string.Format("{0} PMax mean ()", Strings.VName_Press), "Mean PMax test pressure", Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null || !w.GetTestRslt(t).IsPMaxTest()) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).PressUpMean + w.GetTestRslt(t).PressDownMean) / 2)));
|
||||
|
||||
///
|
||||
/// Electrical conductivity of water
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct, string.Format("{0} ME ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).ConductMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_start, string.Format("{0} ST ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).ConductStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_end, string.Format("{0} EN ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).ConductEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_avg, string.Format("{0} avg ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).ConductStart + w.GetTestRslt(t).ConductEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_min, string.Format("{0} min ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).ConductMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_max, string.Format("{0} max ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).ConductMax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct, string.Format("{0} ME ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).ConductMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_start, string.Format("{0} ST ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).ConductStart)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_end, string.Format("{0} EN ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).ConductEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_avg, string.Format("{0} avg ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", (w.GetTestRslt(t).ConductStart + w.GetTestRslt(t).ConductEnd) / 2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_min, string.Format("{0} min ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).ConductMin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Conduct_max, string.Format("{0} max ()", Strings.VName_Conduct), Quantity.Conductivity, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V3", w.GetTestRslt(t).ConductMax)));
|
||||
|
||||
///
|
||||
/// Ambient temperature/pressure/humidity/Buoyancy
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Ambient_temperature, string.Format("{0} Amb M", Strings.VName_Temp), Strings.Tooltip_T_Amb_M, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", (w.GetTestRslt(t) == null) ? w.Batch.AmbTempMean() : w.GetTestRslt(t).AmbTempMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Ambient_pressure, string.Format("{0} Amb M", Strings.VName_Press), Strings.Tooltip_P_Amb_M, Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", (w.GetTestRslt(t) == null) ? w.Batch.AmbPressMean() : w.GetTestRslt(t).AmbPressMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Ambient_humidity, string.Format("{0} Amb M", Strings.VName_Humi), Strings.Tooltip_Hu_Amb_M, Quantity.Humidity, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V2", (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiMean() : w.GetTestRslt(t).AmbHumiMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_temp_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Temp), Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", (w.GetTestRslt(t) == null) ? w.Batch.AmbTempStart() : w.GetTestRslt(t).AmbTempStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbTempEnd() : w.GetTestRslt(t).AmbTempEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_press_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Press), Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", (w.GetTestRslt(t) == null) ? w.Batch.AmbPressStart(): w.GetTestRslt(t).AmbPressStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbPressEnd() : w.GetTestRslt(t).AmbPressEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_humi_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Humi), Quantity.Humidity, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V2", (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiStart() : w.GetTestRslt(t).AmbHumiStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiEnd() : w.GetTestRslt(t).AmbHumiEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Buoyancy, "Buoyancy", Quantity.Number, ItemCategory.BenchData, (w, t, u, f, p) => FormatDbl(u, f, p, "V6", w.Batch.Buoyancy)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Ambient_temperature, string.Format("{0} Amb M", Strings.VName_Temp), Strings.Tooltip_T_Amb_M, Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => FormatDbl(u,f,p, "V3", (w.GetTestRslt(t) == null) ? w.Batch.AmbTempMean() : w.GetTestRslt(t).AmbTempMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Ambient_pressure, string.Format("{0} Amb M", Strings.VName_Press), Strings.Tooltip_P_Amb_M, Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => FormatDbl(u,f,p, "V4", (w.GetTestRslt(t) == null) ? w.Batch.AmbPressMean() : w.GetTestRslt(t).AmbPressMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Ambient_humidity, string.Format("{0} Amb M", Strings.VName_Humi), Strings.Tooltip_Hu_Amb_M, Quantity.Humidity, ItemCategory.TestResult, (w,t,u,f,p) => FormatDbl(u,f,p, "V2", (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiMean() : w.GetTestRslt(t).AmbHumiMean)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_temp_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Temp), Quantity.Temperature, ItemCategory.TestResult, (w,t,u,f,p) => FormatDbl(u,f,p, "V3", (w.GetTestRslt(t) == null) ? w.Batch.AmbTempStart() : w.GetTestRslt(t).AmbTempStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbTempEnd() : w.GetTestRslt(t).AmbTempEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_press_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Press), Quantity.Pressure, ItemCategory.TestResult, (w,t,u,f,p) => FormatDbl(u,f,p, "V4", (w.GetTestRslt(t) == null) ? w.Batch.AmbPressStart(): w.GetTestRslt(t).AmbPressStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbPressEnd() : w.GetTestRslt(t).AmbPressEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_humi_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Humi), Quantity.Humidity, ItemCategory.TestResult, (w,t,u,f,p) => FormatDbl(u,f,p, "V2", (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiStart() : w.GetTestRslt(t).AmbHumiStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiEnd() : w.GetTestRslt(t).AmbHumiEnd)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Buoyancy, "Buoyancy", Quantity.Number, ItemCategory.BenchData, (w,t,u,f,p) => FormatDbl(u,f,p, "V6", w.Batch.Buoyancy)));
|
||||
|
||||
///
|
||||
/// Error
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_limit_Lo, Strings.ErrLimLo + "()", Quantity.Error, ItemCategory.TestData, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V2", w.GetTestRslt(t).ErrLimLo())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_limit_Hi, Strings.ErrLimHi + "()", Quantity.Error, ItemCategory.TestData, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V2", w.GetTestRslt(t).ErrLimHi())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Uncertainty, Strings.Uncertainty + "()", Quantity.Error, ItemCategory.TestData, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V2", w.GetTestRslt(t).ErrLimMargin())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_error, string.Format("{0} rel.ref. ()", Strings.VName_Error), Strings.Tooltip_E_rel_ref, Quantity.Error, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V2", w.GetTestRslt(t).ErrorMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_error_corr, string.Format("{0} ref.corr. ()", Strings.VName_Error), "Relative error of the reference flow meter after correction using correction curve", Quantity.Error, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V2", Formulas.ErrorFromVolumes(w.GetTestRslt(t).ConstMasterCorr, w.GetTestRslt(t).ConstMaster))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_limit_Lo, Strings.ErrLimLo + "()", Quantity.Error, ItemCategory.TestData, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V2", w.GetTestRslt(t).ErrLimLo())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_limit_Hi, Strings.ErrLimHi + "()", Quantity.Error, ItemCategory.TestData, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V2", w.GetTestRslt(t).ErrLimHi())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Uncertainty, Strings.Uncertainty + "()", Quantity.Error, ItemCategory.TestData, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V2", w.GetTestRslt(t).ErrLimMargin())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_error, string.Format("{0} rel.ref. ()", Strings.VName_Error), Strings.Tooltip_E_rel_ref, Quantity.Error, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V2", w.GetTestRslt(t).ErrorMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_error_corr, string.Format("{0} ref.corr. ()", Strings.VName_Error), "Relative error of the reference flow meter after correction using correction curve", Quantity.Error, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u,f,p, "V2", Formulas.ErrorFromVolumes(w.GetTestRslt(t).ConstMasterCorr, w.GetTestRslt(t).ConstMaster))));
|
||||
#if ORACLE_DB
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error, string.Format("{0} rel. ()", Strings.VName_Error), Strings.Tooltip_E_rel, Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "0" : FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t).Error)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.LastError, string.Format("{0} rel. last ()", Strings.VName_Error), Strings.Tooltip_E_rel_last, Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "0" : FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t).LastError)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error, string.Format("{0} rel. ()", Strings.VName_Error), Strings.Tooltip_E_rel, Quantity.Error, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? "0" : FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t).Error)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.LastError, string.Format("{0} rel. last ()", Strings.VName_Error), Strings.Tooltip_E_rel_last, Quantity.Error, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? "0" : FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t).LastError)));
|
||||
#else
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error, string.Format("{0} rel. ()", Strings.VName_Error), Strings.Tooltip_E_rel, Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) != null) ? FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t).Error) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_heat_mtr_vol, string.Format("{0} rel.hm.vol. ()", Strings.VName_Error), Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).Error) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error, string.Format("{0} rel. ()", Strings.VName_Error), Strings.Tooltip_E_rel, Quantity.Error, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) != null) ? FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t).Error) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_heat_mtr_vol, string.Format("{0} rel.hm.vol. ()", Strings.VName_Error), Quantity.Error, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume) != null) ? FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t, CompoundMeterId.HeatMeterVolume).Error) : string.Empty));
|
||||
#endif
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Passed, Strings.Result, Quantity.Boolean, ItemCategory.MeterResult, (w, t, u, f, p) => string.IsNullOrEmpty(t) ? w.PassedColorStr(f)
|
||||
: ((w.GetMeterTestRslt(t) == null) ? "" : w.GetMeterTestRslt(t).PassedColorStr(f))));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ThreeState, "Three state result", Quantity.Enumerated, ItemCategory.MeterResult, (w, t, u, f, p) => FormatThreeState(f, w.ThreeStateFromTests())));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.RefFlowmeter, "Ref. flowmeter", Quantity.String, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null) ? FormatStr(f, w.GetTestRslt(t).RefFlowmeter()) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Scale, "Scale", Quantity.String, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null) ? FormatStr(f, w.GetTestRslt(t).Scale()) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Diverter, "Diverter", Quantity.String, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null) ? FormatStr(f, w.GetTestRslt(t).Diverter()) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.RegValve, "Reg. valve", Quantity.String, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null) ? FormatStr(f, w.GetTestRslt(t).RegValve()) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ResultOrErrorFlags, "Winiki lub E", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.PassedOrErrorFlagsStr()))); /// PL specific result
|
||||
|
||||
///
|
||||
/// Water meter info
|
||||
///
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Watermeter_type, Strings.WM_Type, Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.ProductName)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Producer, Strings.Producer, Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Producer)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Watermeter_type, Strings.WM_Type, Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.ProductName)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Producer, Strings.Producer, Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Producer)));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.DN, "DN", Quantity.Length, ItemCategory.MeterData, (w, t, u, f, p) => FormatDbl(u, f, p, "V2", w.WaterMeterData.DN)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.L, "L", Quantity.Length, ItemCategory.MeterData, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.WaterMeterData.L)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mounting, Strings.Mounting, Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Mounting.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q4, "Q4_Qmax", Quantity.Flow, ItemCategory.MeterData, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.WaterMeterData.Q4_Qmax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q3, "Q3_Qn", Quantity.Flow, ItemCategory.MeterData, (w, t, u, f, p) => FormatDbl(u, f, p, "V2", w.WaterMeterData.Q3_Qn)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2, "Q2_Qt", Quantity.Flow, ItemCategory.MeterData, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.WaterMeterData.Q2_Qt)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q1, "Q1_Qmin", Quantity.Flow, ItemCategory.MeterData, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.WaterMeterData.Q1_Qmin)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.DN, "DN", Quantity.Length, ItemCategory.MeterData, (w,t,u,f,p) => FormatDbl(u, f, p, "V2", w.WaterMeterData.DN)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.L, "L", Quantity.Length, ItemCategory.MeterData, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.WaterMeterData.L)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Mounting, Strings.Mounting, Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Mounting.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q4, "Q4_Qmax", Quantity.Flow, ItemCategory.MeterData, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.WaterMeterData.Q4_Qmax)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q3, "Q3_Qn", Quantity.Flow, ItemCategory.MeterData, (w,t,u,f,p) => FormatDbl(u, f, p, "V2", w.WaterMeterData.Q3_Qn)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2, "Q2_Qt", Quantity.Flow, ItemCategory.MeterData, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.WaterMeterData.Q2_Qt)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q1, "Q1_Qmin", Quantity.Flow, ItemCategory.MeterData, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.WaterMeterData.Q1_Qmin)));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Metrological_class, Strings.MClass, Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.MetrologicalClass)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Temperature_class, "Temperature class", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.TemperatureClass.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pressure_loss_class, "Pressure loss class", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.PressureLossClass.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Max_admissible_pressure, "Max. admissible pressure", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.MaxAdmissiblePressure.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow_profile_sensitivity_class, "Flow profile sensitivity class", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.FlowProfileSensitivityClass.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Approval_info, Strings.Approval, Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.ApprovalInfo)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Certificate, "Certificate", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Certificate)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Medium, "Water cold/hot", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Medium.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Metrological_class, Strings.MClass, Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.MetrologicalClass)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Temperature_class, "Temperature class", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.TemperatureClass.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pressure_loss_class, "Pressure loss class", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.PressureLossClass.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Max_admissible_pressure, "Max. admissible pressure", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.MaxAdmissiblePressure.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Flow_profile_sensitivity_class, "Flow profile sensitivity class", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.FlowProfileSensitivityClass.ToDescription())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Approval_info, Strings.Approval, Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.ApprovalInfo)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Certificate, "Certificate", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Certificate)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Medium, "Water cold/hot", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Medium.ToDescription())));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text1, "Text1", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Text1)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text2, "Text2", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Text2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text3, "Text3", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Text3)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text4, "Text4", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Text4)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text5, "Text5", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Text5)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text1, "Text1", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Text1)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text2, "Text2", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Text2)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text3, "Text3", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Text3)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text4, "Text4", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Text4)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text5, "Text5", Quantity.String, ItemCategory.MeterData, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Text5)));
|
||||
|
||||
/// Water meters results
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr, Strings.sn, Strings.Tooltip_sn, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.SerialNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.RadioAddress, Strings.Radio_address, Strings.Tooltip_RA, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.RadioAddress)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr, Strings.sn, Strings.Tooltip_sn, Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.SerialNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.RadioAddress, Strings.Radio_address, Strings.Tooltip_RA, Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.RadioAddress)));
|
||||
#if ORACLE_DB
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OriRadioAddress, "Original " + Strings.Radio_address, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.OriRadioAddress)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OriRadioAddress, "Original " + Strings.Radio_address, Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.OriRadioAddress)));
|
||||
#endif
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Purchase_order, Strings.PO, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.PurchaseOrder)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Year_of_production, Strings.Year, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.YearOfProduction)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.WM_Position, Strings.Pos, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.WMPosition)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Formatted_WM_ID, "Formatted WM ID", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => string.IsNullOrEmpty(f) ? string.Format("{0}-{1}", w.BatchNr(), w.WMPosition) : string.Format(f, w.StartTime(), w.EndTime(), w.BatchNr(), w.WMPosition, w.SerialNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Purchase_order, Strings.PO, Quantity.String, ItemCategory.Other, (w,t,u,f,p) => FormatStr(f, w.PurchaseOrder)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Year_of_production, Strings.Year, Quantity.Number, ItemCategory.Other, (w,t,u,f,p) => FormatInt(f, w.YearOfProduction)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.WM_Position, Strings.Pos, Quantity.Number, ItemCategory.Other, (w,t,u,f,p) => FormatInt(f, w.WMPosition)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Formatted_WM_ID, "Formatted WM ID", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => string.IsNullOrEmpty(f) ? string.Format("{0}-{1}", w.BatchNr(), w.WMPosition) : string.Format(f, w.StartTime(), w.EndTime(), w.BatchNr(), w.WMPosition, w.SerialNr)));
|
||||
|
||||
/// Water meters results (single)
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state, Strings.End_state, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.EndState)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulses, Strings.Pulses + "()", Quantity.Pulses, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t).IsPulses() ? w.GetMeterTestRslt(t).PulsesMeter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_pulses_ni, Strings.RefPulses + "_ni()", Quantity.Pulses, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t).PulsesMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_pulses, Strings.RefPulses + "()", Quantity.Pulses, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F0", w.GetTestRslt(t).PulsesMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Camera_angle, "Angle ()", "Angle measured by a camera", Quantity.Pulses, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t).IsCamera() ? w.GetMeterTestRslt(t).PulsesMeter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Camera_angle_start, "Start angle ()", "Start angle measured by a camera", Quantity.Pulses, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t).IsCamera() ? w.GetMeterTestRslt(t).VolumeStart * w.GetMeterTestRslt(t).PulsesPerLiter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Camera_angle_end, "End angle ()", "End angle measured by a camera", Quantity.Pulses, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t).IsCamera() ? w.GetMeterTestRslt(t).VolumeEnd * w.GetMeterTestRslt(t).PulsesPerLiter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state, Strings.End_state, Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.EndState)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulses, Strings.Pulses + "()", Quantity.Pulses, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? string.Empty : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t).IsPulses() ? w.GetMeterTestRslt(t).PulsesMeter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_pulses_ni, Strings.RefPulses + "_ni()", Quantity.Pulses, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? string.Empty : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t).PulsesMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_pulses, Strings.RefPulses + "()", Quantity.Pulses, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) == null) ? string.Empty : FormatDbl(u, f, p, "F0", w.GetTestRslt(t).PulsesMaster)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Camera_angle, "Angle ()", "Angle measured by a camera", Quantity.Pulses, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? string.Empty : FormatDbl(u,f,p, "F0", w.GetMeterTestRslt(t).IsCamera() ? w.GetMeterTestRslt(t).PulsesMeter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Camera_angle_start, "Start angle ()", "Start angle measured by a camera",Quantity.Pulses, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? string.Empty : FormatDbl(u,f,p, "F0", w.GetMeterTestRslt(t).IsCamera() ? w.GetMeterTestRslt(t).VolumeStart * w.GetMeterTestRslt(t).PulsesPerLiter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Camera_angle_end, "End angle ()", "End angle measured by a camera", Quantity.Pulses, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? string.Empty : FormatDbl(u,f,p, "F0", w.GetMeterTestRslt(t).IsCamera() ? w.GetMeterTestRslt(t).VolumeEnd * w.GetMeterTestRslt(t).PulsesPerLiter : 0)));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulses_per_liter, Strings.PulsesLiter, Quantity.PulsePerLtr, ItemCategory.MeterData, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", w.WaterMeterData.PulsesPerLtr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulse__liter, Strings.PulsesLiter + "()", Quantity.PulsePerLtr, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).IsCamera() ? 0 : w.GetMeterTestRslt(t).PulsesPerLiter)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Degree__liter, "Degree per liter ()", Quantity.PulsePerLtr, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).IsCamera() ? w.GetMeterTestRslt(t).PulsesPerLiter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulses_per_liter, Strings.PulsesLiter, Quantity.PulsePerLtr, ItemCategory.MeterData, (w,t,u,f,p) => FormatDbl(u, f, p, "V4", w.WaterMeterData.PulsesPerLtr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pls_per_ltr_aux, Strings.PulsesLiter + " aux", Quantity.PulsePerLtr, ItemCategory.MeterData, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", w.WaterMeterData.PulsesPerLtrAux)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulse__liter, Strings.PulsesLiter + "()", Quantity.PulsePerLtr, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? string.Empty : FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).IsCamera() ? 0 : w.GetMeterTestRslt(t).PulsesPerLiter)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Degree__liter, "Degree per liter ()", Quantity.PulsePerLtr, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t) == null) ? string.Empty : FormatDbl(u, f, p, "V4", w.GetMeterTestRslt(t).IsCamera() ? w.GetMeterTestRslt(t).PulsesPerLiter : 0)));
|
||||
|
||||
/// Water meters results (combined)
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_main, Strings.Err_main + "()", Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) != null) ? FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).Error) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_aux, Strings.Err_aux + "()", Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) != null) ? FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).Error) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr_main, string.Format("{0} {1}", Strings.sn, Strings.main), Strings.Tooltip_sn_main, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.SerialNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr_aux, string.Format("{0} {1}", Strings.sn, Strings.aux), Strings.Tooltip_sn_aux, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.SerialNrAux)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state_main, Strings.EndState_main, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.EndState)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state_aux, Strings.EndState_aux, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.EndStateAux)));
|
||||
/// Water meters results (combined)
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulses_main, Strings.Pulses + " " + Strings.main + "()", Quantity.Pulses, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) == null) ? string.Empty : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).IsPulses() ? w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).PulsesMeter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Pulses_aux, Strings.Pulses + " " + Strings.aux + "()", Quantity.Pulses, ItemCategory.MeterResult, (w, t, u, f, p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) == null) ? string.Empty : FormatDbl(u, f, p, "F0", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).IsPulses() ? w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).PulsesMeter : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_main, Strings.Err_main + "()", Quantity.Error, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain) != null) ? FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t, CompoundMeterId.CompoundMain).Error) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error_aux, Strings.Err_aux + "()", Quantity.Error, ItemCategory.MeterResult, (w,t,u,f,p) => (w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux) != null) ? FormatDbl(u, f, p, "V2", w.GetMeterTestRslt(t, CompoundMeterId.CompoundAux).Error) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr_main, string.Format("{0} {1}", Strings.sn, Strings.main), Strings.Tooltip_sn_main, Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.SerialNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr_aux, string.Format("{0} {1}", Strings.sn, Strings.aux), Strings.Tooltip_sn_aux, Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.SerialNrAux)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state_main, Strings.EndState_main, Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.EndState)));
|
||||
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.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, Common.Utils.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, Common.Utils.EncodedStrToFullName(w.Batch.UserName))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Legalizator, Strings.Legalizator, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, Common.Utils.EncodedStrToLegalizator(w.Batch.UserName))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Watermeters, Strings.WMs, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.Batch.WatermetersStr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Batch_start_time, Strings.Start, Quantity.DateTime, ItemCategory.Other, (w, t, u, f, p) => string.IsNullOrEmpty(f) ? w.Batch.StartTime.ToString() : string.Format(f, w.Batch.StartTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Batch_end_time, Strings.End, Quantity.DateTime, ItemCategory.Other, (w, t, u, f, p) => string.IsNullOrEmpty(f) ? w.Batch.EndTime.ToString() : string.Format(f, w.Batch.EndTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Lite_per_pulse_Read, "1 / PlsPerLtr_Read", Quantity.PulsePerLtr, ItemCategory.Other, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", (w.WaterMeterData.PulsesPerLtr != 0) ? 1/w.WaterMeterData.PulsesPerLtr : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Passed_meters_count, Strings.Passed_meters_count, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.Batch.PassedMetersCount())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Failed_meters_count, Strings.Failed_meters_count, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.Batch.FailedMetersCount())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Passed_seals_count, "Seals count of passed meters", Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.Batch.PassedMetersCount() * int.Parse(w.WaterMeterData.Text5))));
|
||||
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, Common.Utils.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, Common.Utils.EncodedStrToFullName(w.Batch.UserName))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Legalizator, Strings.Legalizator, Quantity.String, ItemCategory.Other, (w,t,u,f,p) => FormatStr(f, Common.Utils.EncodedStrToLegalizator(w.Batch.UserName))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Watermeters, Strings.WMs, Quantity.String, ItemCategory.Other, (w,t,u,f,p) => FormatStr(f, w.Batch.WatermetersStr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Batch_start_time, Strings.Start, Quantity.DateTime, ItemCategory.Other, (w,t,u,f,p) => string.IsNullOrEmpty(f) ? w.Batch.StartTime.ToString() : string.Format(f, w.Batch.StartTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Batch_end_time, Strings.End, Quantity.DateTime, ItemCategory.Other, (w,t,u,f,p) => string.IsNullOrEmpty(f) ? w.Batch.EndTime.ToString() : string.Format(f, w.Batch.EndTime)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Lite_per_pulse_Read, "1 / PlsPerLtr_Read", Quantity.PulsePerLtr, ItemCategory.Other, (w,t,u,f,p) => FormatDbl(u, f, p, "V4", (w.WaterMeterData.PulsesPerLtr != 0) ? 1/w.WaterMeterData.PulsesPerLtr : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Passed_meters_count, Strings.Passed_meters_count, Quantity.Number, ItemCategory.Other, (w,t,u,f,p) => FormatInt(f, w.Batch.PassedMetersCount())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Failed_meters_count, Strings.Failed_meters_count, Quantity.Number, ItemCategory.Other, (w,t,u,f,p) => FormatInt(f, w.Batch.FailedMetersCount())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Passed_seals_count, "Seals count of passed meters", Quantity.Number, ItemCategory.Other, (w,t,u,f,p) => FormatInt(f, w.Batch.PassedMetersCount() * int.Parse(w.WaterMeterData.Text5))));
|
||||
|
||||
/// Extra water meter data
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Result_code, Strings.Result_code, Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.ResultCode)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.WM_remark, string.Format("{0} {1}", Strings.Water_Meter, Strings.Remark), Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.Remark)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Remark, string.Format("{0} {1}", Strings.Batch, Strings.Remark), Quantity.String, ItemCategory.TestResult, (w, t, u, f, p) => FormatStr(f, w.Batch.Remark)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Meter_type, Strings.Meter_type, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Compound ? Strings.Compound : (w.WaterMeterData.HeatMeter ? Strings.Heat_meter : Strings.Single))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_AssignedSerialNr, "Assigned s/n", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.AssignedSerialNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_CompleteSerialNr, "Complete s/n", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.CompleteSerialNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Result_code, Strings.Result_code, Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.ResultCode)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.WM_remark, string.Format("{0} {1}", Strings.Water_Meter, Strings.Remark), Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.Remark)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Remark, string.Format("{0} {1}", Strings.Batch, Strings.Remark), Quantity.String, ItemCategory.TestResult, (w,t,u,f,p) => FormatStr(f, w.Batch.Remark)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Meter_type, Strings.Meter_type, Quantity.String, ItemCategory.Other, (w,t,u,f,p) => FormatStr(f, w.WaterMeterData.Compound ? Strings.Compound : (w.WaterMeterData.HeatMeter ? Strings.Heat_meter : Strings.Single))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_AssignedSerialNr, "Assigned s/n", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.AssignedSerialNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_CompleteSerialNr, "Complete s/n", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.CompleteSerialNr)));
|
||||
|
||||
#if HEAT_METERS
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Energy, Strings.Energy + " ()", Quantity.Energy, ItemCategory.Other, (w, t, u, f, p) => (w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy) != null) ? FormatDbl(u, f, p, "F1", w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy).VolumeMeter) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Energy_start, Strings.Energy + " start ()", Quantity.Energy, ItemCategory.Other, (w, t, u, f, p) => (w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy) != null) ? FormatDbl(u, f, p, "F1", w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy).VolumeStart) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Energy_end, Strings.Energy + " end ()", Quantity.Energy, ItemCategory.Other, (w, t, u, f, p) => (w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy) != null) ? FormatDbl(u, f, p, "F1", w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy).VolumeEnd) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_energy, Strings.Energy_ref + " ()", Quantity.Energy, ItemCategory.Other, (w, t, u, f, p) => (w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy) != null) ? FormatDbl(u, f, p, "F1", w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy).VolumeRef) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Energy, Strings.Energy + " ()", Quantity.Energy, ItemCategory.Other, (w,t,u,f,p) => (w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy) != null) ? FormatDbl(u, f, p, "F1", w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy).VolumeMeter) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Energy_start, Strings.Energy + " start ()", Quantity.Energy, ItemCategory.Other, (w,t,u,f,p) => (w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy) != null) ? FormatDbl(u, f, p, "F1", w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy).VolumeStart) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Energy_end, Strings.Energy + " end ()", Quantity.Energy, ItemCategory.Other, (w,t,u,f,p) => (w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy) != null) ? FormatDbl(u, f, p, "F1", w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy).VolumeEnd) : string.Empty));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_energy, Strings.Energy_ref + " ()", Quantity.Energy, ItemCategory.Other, (w,t,u,f,p) => (w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy) != null) ? FormatDbl(u, f, p, "F1", w.GetMeterTestRslt(t, Common.CompoundMeterId.HeatMeterEnergy).VolumeRef) : string.Empty));
|
||||
#endif
|
||||
|
||||
#if IPERL
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OrigCalibFactor, "iPerl OrigCalibFactor", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.OrigCalibFactor)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.CalibFactor, "iPerl CalibFactor", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.CalibFactor)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OrigCalibFactorLNA,"iPerl OrigCalibFactorLNA",Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.OrigCalibFactorLNA)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.CalibFactorLNA, "iPerl CalibFactorLNA", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.CalibFactorLNA)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2ErrWOCorrection, "iPerl Q2ErrWOCorrection", Quantity.Error, ItemCategory.MeterResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.Q2ErrWOCorrection)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2CorrectionDone, "iPerl Q2CorrectionDone", Quantity.Boolean,ItemCategory.MeterResult, (w, t, u, f, p) => (((w.Q2CorrRL != 0) || (w.Q2CorrLR != 0)) ? Strings.Yes : Strings.No)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2CorrRFlow, "iPerl Q2Corr RL", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.Q2CorrRL)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2CorrLFlow, "iPerl Q2Corr LR", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.Q2CorrLR)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2CorrFlowRight, "iPerl Q2CorrFlowRight", Quantity.Volume, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.Q2CorrFlowRight)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.FW_Version, "iPerl FW version", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.FWVersion)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OrigCalibFactor, "iPerl OrigCalibFactor", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.OrigCalibFactor)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.CalibFactor, "iPerl CalibFactor", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.CalibFactor)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OrigCalibFactorLNA,"iPerl OrigCalibFactorLNA",Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.OrigCalibFactorLNA)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.CalibFactorLNA, "iPerl CalibFactorLNA", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.CalibFactorLNA)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2ErrWOCorrection, "iPerl Q2ErrWOCorrection", Quantity.Error, ItemCategory.MeterResult, (w,t,u,f,p) => FormatDbl(u, f, p, "V3", w.Q2ErrWOCorrection)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2CorrectionDone, "iPerl Q2CorrectionDone", Quantity.Boolean,ItemCategory.MeterResult, (w,t,u,f,p) => (((w.Q2CorrRL != 0) || (w.Q2CorrLR != 0)) ? Strings.Yes : Strings.No)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2CorrRFlow, "iPerl Q2Corr RL", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.Q2CorrRL)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2CorrLFlow, "iPerl Q2Corr LR", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.Q2CorrLR)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Q2CorrFlowRight, "iPerl Q2CorrFlowRight", Quantity.Volume, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.Q2CorrFlowRight)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.FW_Version, "iPerl FW version", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.FWVersion)));
|
||||
#if ORACLE_DB
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Max_test_index, "iPerl test index", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, (w.Pruefindex % 100))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OraWMTypeID, "OraDB WM Type ID", Quantity.Number, ItemCategory.MeterData, (w, t, u, f, p) => FormatInt(f, w.WaterMeterData.WMTypeId)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OraWMTypeRev, "OraDB WM Type Rev.", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.WMTypeRevision)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Max_test_index, "iPerl test index", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, (w.Pruefindex % 100))));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OraWMTypeID, "OraDB WM Type ID", Quantity.Number, ItemCategory.MeterData, (w,t,u,f,p) => FormatInt(f, w.WaterMeterData.WMTypeId)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.OraWMTypeRev, "OraDB WM Type Rev.", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.WMTypeRevision)));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TURA_SPECIAL
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_RadioAddress, "iPerl radio address", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.RadioAddress)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_PaletteNr, "iPerl palette nr.", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.PaletteNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_UmkartonNr, "iPerl umkarton nr.", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.UmkartonNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_TestBench, "Prod iPerl test bench", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.ProdTestBench)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_WMPosition, "Prod iPerl WM position", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.ProdWMPosition)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_UserName, "Prod iPerl user name", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.ProdUserName)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_PurchaseOrder, "Prod iPerl purchase order", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.ProdPurchaseOrder)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_Passed, "Prod iPerl passed", Quantity.Boolean,ItemCategory.MeterResult, (w, t, u, f, p) => FormatBool(f,w.ProdPassed)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_ResultCode, "Prod iPerl result code", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.ProdResultCode)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_Q2CorrRL, "Prod iPerl Q2Corr RL", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.ProdQ2CorrRL)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_Q2CorrLR, "Prod iPerl Q2Corr LR", Quantity.Number, ItemCategory.MeterResult, (w, t, u, f, p) => FormatInt(f, w.ProdQ2CorrLR)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_RadioAddress, "iPerl radio address", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.RadioAddress)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_PaletteNr, "iPerl palette nr.", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.PaletteNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_UmkartonNr, "iPerl umkarton nr.", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.UmkartonNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_TestBench, "Prod iPerl test bench", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.ProdTestBench)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_WMPosition, "Prod iPerl WM position", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.ProdWMPosition)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_UserName, "Prod iPerl user name", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.ProdUserName)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_PurchaseOrder, "Prod iPerl purchase order", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.ProdPurchaseOrder)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_Passed, "Prod iPerl passed", Quantity.Boolean,ItemCategory.MeterResult, (w,t,u,f,p) => FormatBool(f,w.ProdPassed)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_ResultCode, "Prod iPerl result code", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.ProdResultCode)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_Q2CorrRL, "Prod iPerl Q2Corr RL", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.ProdQ2CorrRL)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Prod_Q2CorrLR, "Prod iPerl Q2Corr LR", Quantity.Number, ItemCategory.MeterResult, (w,t,u,f,p) => FormatInt(f, w.ProdQ2CorrLR)));
|
||||
#endif
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TestDone, Strings.Test_done + "()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => FormatBool(f, (w.GetMeterTestRslt(t) != null) && w.GetMeterTestRslt(t).TestDone)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TestPassed, Strings.Test_passed + "()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => FormatBool(f, (w.GetMeterTestRslt(t) != null) && w.GetMeterTestRslt(t).Passed)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ErrorFlags, Strings.Error_flags + "()", Quantity.String, ItemCategory.TestResult, (w, t, u, f, p) => FormatStr(f, (w.GetTestRslt(t) != null) ? w.GetTestRslt(t).ErrorFlagsStr() : w.ErrorFlagsStr())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ErrorFlagsEx, Strings.Error_flags + "Ex", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.ErrorFlagsStrEx())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.InfoFlags, Strings.Info_flags + "()", Quantity.String, ItemCategory.TestResult, (w, t, u, f, p) => FormatStr(f, (w.GetTestRslt(t) != null) ? w.GetTestRslt(t).InfoFlagsStr() : w.InfoFlagsStr())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E1, "E1 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E1) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E2, "E2 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E2) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E3, "E3 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E3) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E4, "E4 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E4) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E5, "E5 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E5) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E6, "E6 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E6) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E7, "E7 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E7) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E8, "E8 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E8) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E9, "E9 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E9) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E10, "E10 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E10) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E11, "E11 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E11) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E12, "E12 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E12) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E13, "E13 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E13) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E14, "E14 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E14) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E15, "E15 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E15) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E16, "E16 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E16) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E21, "E21 ()", Quantity.Boolean, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E21) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E25, "E25 ()", Quantity.Boolean, ItemCategory.MeterResult, (w, t, u, f, p) => ((w.ErrorFlags & (int)ErrorFlagMask.E25) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E26, "E26 ()", Quantity.Boolean, ItemCategory.MeterResult, (w, t, u, f, p) => ((w.ErrorFlags & (int)ErrorFlagMask.E26) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E27, "E27 ()", Quantity.Boolean, ItemCategory.MeterResult, (w, t, u, f, p) => ((w.ErrorFlags & (int)ErrorFlagMask.E27) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E28, "E28 ()", Quantity.Boolean, ItemCategory.MeterResult, (w, t, u, f, p) => ((w.ErrorFlags & (int)ErrorFlagMask.E28) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TestPartStr, "Test part str.", Quantity.String, ItemCategory.TestResult, (w, t, u, f, p) => FormatEnum(f, (w.GetMeterTestRslt(t) != null) ? w.GetMeterTestRslt(t).TestRslt.Part : 0)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ErrorFlags, Strings.Error_flags + "()", Quantity.String, ItemCategory.TestResult, (w,t,u,f,p) => FormatStr(f, (w.GetTestRslt(t) != null) ? w.GetTestRslt(t).ErrorFlagsStr() : w.ErrorFlagsStr())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.ErrorFlagsEx, Strings.Error_flags + "Ex", Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.ErrorFlagsStrEx())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.InfoFlags, Strings.Info_flags + "()", Quantity.String, ItemCategory.TestResult, (w,t,u,f,p) => FormatStr(f, (w.GetTestRslt(t) != null) ? w.GetTestRslt(t).InfoFlagsStr() : w.InfoFlagsStr())));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E1, "E1 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E1) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E2, "E2 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E2) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E3, "E3 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E3) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E4, "E4 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E4) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E5, "E5 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E5) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E6, "E6 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E6) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E7, "E7 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E7) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E8, "E8 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E8) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E9, "E9 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E9) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E10, "E10 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E10) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E11, "E11 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E11) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E12, "E12 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E12) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E13, "E13 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E13) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E14, "E14 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E14) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E15, "E15 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E15) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E16, "E16 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E16) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E21, "E21 ()", Quantity.Boolean, ItemCategory.TestResult, (w,t,u,f,p) => (w.GetTestRslt(t) != null && (w.GetTestRslt(t).ErrorFlags & (int)ErrorFlagMask.E21) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E25, "E25 ()", Quantity.Boolean, ItemCategory.MeterResult, (w,t,u,f,p) => ((w.ErrorFlags & (int)ErrorFlagMask.E25) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E26, "E26 ()", Quantity.Boolean, ItemCategory.MeterResult, (w,t,u,f,p) => ((w.ErrorFlags & (int)ErrorFlagMask.E26) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E27, "E27 ()", Quantity.Boolean, ItemCategory.MeterResult, (w,t,u,f,p) => ((w.ErrorFlags & (int)ErrorFlagMask.E27) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.E28, "E28 ()", Quantity.Boolean, ItemCategory.MeterResult, (w,t,u,f,p) => ((w.ErrorFlags & (int)ErrorFlagMask.E28) != 0) ? Strings.Yes : Strings.No));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.TestPartStr, "Test part str.", Quantity.String, ItemCategory.TestResult, (w,t,u,f,p) => FormatEnum(f, (w.GetMeterTestRslt(t) != null) ? w.GetMeterTestRslt(t).TestRslt.Part : 0)));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Table_row_nr, "Table row #", Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => string.IsNullOrEmpty(f) ? TableRowNr.ToString() : string.Format(f, TableRowNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Table_column_nr, "Table column #", Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => string.IsNullOrEmpty(f) ? TableColumnNr.ToString() : string.Format(f, TableColumnNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.WMRemark, string.Format("{0} {1}", Strings.Water_Meter, Strings.Remark), Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.Remark)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Table_row_nr, "Table row #", Quantity.Number, ItemCategory.Other, (w,t,u,f,p) => string.IsNullOrEmpty(f) ? TableRowNr.ToString() : string.Format(f, TableRowNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Table_column_nr, "Table column #", Quantity.Number, ItemCategory.Other, (w,t,u,f,p) => string.IsNullOrEmpty(f) ? TableColumnNr.ToString() : string.Format(f, TableColumnNr)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.WMRemark, string.Format("{0} {1}", Strings.Water_Meter, Strings.Remark), Quantity.String, ItemCategory.MeterResult, (w,t,u,f,p) => FormatStr(f, w.Remark)));
|
||||
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Counter1,
|
||||
string.Format(Strings.Counter_0, 1),
|
||||
Quantity.Number,
|
||||
ItemCategory.Other,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return (w.GetTestRslt(t) != null) ? FormatInt(f, w.GetTestRslt(t).Counter1) : string.Empty;
|
||||
}));
|
||||
@@ -510,7 +500,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 2),
|
||||
Quantity.Number,
|
||||
ItemCategory.Other,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return (w.GetTestRslt(t) != null) ? FormatInt(f, w.GetTestRslt(t).Counter2) : string.Empty;
|
||||
}));
|
||||
@@ -519,7 +509,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 3),
|
||||
Quantity.Number,
|
||||
ItemCategory.Other,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return (w.GetTestRslt(t) != null) ? FormatInt(f, w.GetTestRslt(t).Counter3) : string.Empty;
|
||||
}));
|
||||
@@ -528,7 +518,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 4),
|
||||
Quantity.Number,
|
||||
ItemCategory.Other,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return (w.GetTestRslt(t) != null) ? FormatInt(f, w.GetTestRslt(t).Counter4) : string.Empty;
|
||||
}));
|
||||
@@ -537,7 +527,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 5),
|
||||
Quantity.Number,
|
||||
ItemCategory.Other,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return (w.GetTestRslt(t) != null) ? FormatInt(f, w.GetTestRslt(t).Counter5) : string.Empty;
|
||||
}));
|
||||
@@ -546,7 +536,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 6),
|
||||
Quantity.Number,
|
||||
ItemCategory.TestResult,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return FormatInt(f, w.Batch.Counter6);
|
||||
}));
|
||||
@@ -555,7 +545,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 7),
|
||||
Quantity.Number,
|
||||
ItemCategory.TestResult,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return FormatInt(f, w.Batch.Counter7);
|
||||
}));
|
||||
@@ -564,7 +554,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 8),
|
||||
Quantity.Number,
|
||||
ItemCategory.TestResult,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return FormatInt(f, w.Batch.Counter8);
|
||||
}));
|
||||
@@ -573,7 +563,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 9),
|
||||
Quantity.Number,
|
||||
ItemCategory.TestResult,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return FormatInt(f, w.Batch.Counter9);
|
||||
}));
|
||||
@@ -582,7 +572,7 @@ namespace Results
|
||||
string.Format(Strings.Counter_0, 10),
|
||||
Quantity.Number,
|
||||
ItemCategory.TestResult,
|
||||
(w, t, u, f, p) =>
|
||||
(w,t,u,f,p) =>
|
||||
{
|
||||
return FormatInt(f, w.Batch.Counter10);
|
||||
}));
|
||||
@@ -739,7 +729,7 @@ namespace Results
|
||||
if (items[i].Format == null) items[i].Format = string.Empty;
|
||||
if (items[i].Precision == null) items[i].Precision = string.Empty;
|
||||
|
||||
result[i] = string.Format("{0}~{1}~{2}~{3}~{4}~{5}~{6}~{7}",
|
||||
result[i] = string.Format("{0}~{1}~{2}~{3}~{4}~{5}~{6}~{7}~{8}",
|
||||
items[i].Uid,
|
||||
items[i].Caption.Replace("~", "\n"),
|
||||
items[i].TestID,
|
||||
@@ -747,7 +737,8 @@ namespace Results
|
||||
items[i].Format.Replace("~", "\n"),
|
||||
items[i].Precision,
|
||||
items[i].Width,
|
||||
items[i].Alignment);
|
||||
items[i].Alignment,
|
||||
items[i].Merge);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -759,101 +750,102 @@ namespace Results
|
||||
/// <returns></returns>
|
||||
public static IList<WMeterRsltItemSpec> FromStrArray(string[] strArray)
|
||||
{
|
||||
IList<WMeterRsltItemSpec> result = new List<WMeterRsltItemSpec>();
|
||||
var result = new List<WMeterRsltItemSpec>();
|
||||
|
||||
if (strArray == null) return result;
|
||||
|
||||
if (strArray != null)
|
||||
for (int i = 0; i < strArray.Length; i++)
|
||||
{
|
||||
for (int i = 0; i < strArray.Length; i++)
|
||||
{
|
||||
try
|
||||
WMeterRsltItemSpec item = null;
|
||||
|
||||
try
|
||||
{
|
||||
if (!strArray[i].Contains("~"))
|
||||
{
|
||||
WMeterRsltItemSpec item;
|
||||
///
|
||||
/// Old style results item specification -> convert it
|
||||
///
|
||||
bool isItemCreated = false;
|
||||
foreach (var it in AllItems)
|
||||
{
|
||||
if (strArray[i].Equals(it.OldUid))
|
||||
{
|
||||
item = it.Clone();
|
||||
item.Caption = item.Name.Replace("()", "").Replace(" *", "");
|
||||
item.Units = 0; /// use default units
|
||||
item.Format = null; /// the same like format string "{0}"
|
||||
item.Precision = null;
|
||||
item.Width = 0; /// do not ad any extra spaces
|
||||
item.Alignment = Alignment.Left;
|
||||
isItemCreated = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isItemCreated)
|
||||
{
|
||||
item = GetItem(0);
|
||||
item.Caption = "Prs.Err.";
|
||||
item.Format = string.Format("Parse error: {0}", strArray[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string[] field = strArray[i].Split(new char[] { '~' });
|
||||
|
||||
if (!strArray[i].Contains("~"))
|
||||
{
|
||||
///
|
||||
/// Old style results item specification -> convert it
|
||||
///
|
||||
bool added = false;
|
||||
foreach (var it in AllItems)
|
||||
{
|
||||
if (strArray[i].Equals(it.OldUid))
|
||||
{
|
||||
item = it.Clone();
|
||||
item.Caption = item.Name.Replace("()", "").Replace(" *", "");
|
||||
item.Units = 0; /// use default units
|
||||
item.Format = null; /// the same like format string "{0}"
|
||||
item.Precision = null;
|
||||
item.Width = 0; /// do not ad any extra spaces
|
||||
item.Alignment = Alignment.Left;
|
||||
result.Add(item);
|
||||
added = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!added)
|
||||
{
|
||||
item = GetItem(0);
|
||||
item.Caption = "Prs.Err.";
|
||||
item.Format = string.Format("Parse error: {0}", strArray[i]);
|
||||
result.Add(item);
|
||||
}
|
||||
}
|
||||
else if ((item = GetItem(int.Parse(field[0]))) != null)
|
||||
if (field.Length >= 8 && (item = GetItem(int.Parse(field[0]))) != null)
|
||||
{
|
||||
///
|
||||
/// Load the new style results item specification
|
||||
///
|
||||
///
|
||||
/// Load the new style results item specification
|
||||
///
|
||||
item.Caption = field[1].Replace("\n", "~");
|
||||
item.TestID = field[2];
|
||||
item.Units = 0;
|
||||
for (Unit u = 0; u < Unit.Count; u++)
|
||||
{
|
||||
if (u.ToString().Equals(field[3])) { item.Units = u; break; }
|
||||
}
|
||||
item.Format = field[4].Replace("\n", "~");
|
||||
item.Precision = field[5];
|
||||
item.Width = int.Parse(field[6]);
|
||||
item.Alignment = 0;
|
||||
for (Alignment a = 0; a < Alignment.Count; a++)
|
||||
{
|
||||
if (a.ToString().Equals(field[7])) { item.Alignment = a; break; }
|
||||
}
|
||||
item.TestID = field[2];
|
||||
item.Units = 0;
|
||||
for (Unit u = 0; u < Unit.Count; u++)
|
||||
{
|
||||
if (u.ToString().Equals(field[3])) { item.Units = u; break; }
|
||||
}
|
||||
item.Format = field[4].Replace("\n", "~");
|
||||
item.Precision = field[5];
|
||||
item.Width = int.Parse(field[6]);
|
||||
item.Alignment = 0;
|
||||
for (Alignment a = 0; a < Alignment.Count; a++)
|
||||
{
|
||||
if (a.ToString().Equals(field[7])) { item.Alignment = a; break; }
|
||||
}
|
||||
|
||||
result.Add(item);
|
||||
}
|
||||
bool merge;
|
||||
if (field.Length >= 9 && bool.TryParse(field[8], out merge)) item.Merge = merge;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
///
|
||||
/// Create an item with parse error information
|
||||
///
|
||||
WMeterRsltItemSpec item2 = GetItem(0);
|
||||
item2.Caption = "Prs.Err.";
|
||||
item2.Format = string.Format("Parse error: {0}", strArray[i]);
|
||||
result.Add(item2);
|
||||
item = GetItem(0);
|
||||
item.Caption = "Prs.Err.";
|
||||
item.Format = string.Format("Parse error: {0}", strArray[i]);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
WMeterRsltItemSpec item = GetItem(0);
|
||||
item.Caption = "Prs.Err.";
|
||||
item.Format = string.Format("Parse error: {0}", strArray[i]);
|
||||
result.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
item = GetItem(0);
|
||||
item.Caption = "Prs.Err.";
|
||||
item.Format = string.Format("Parse error: {0}", strArray[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
result.Add(item);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public static WMeterRsltItemSpec GetItem(int uid)
|
||||
{
|
||||
foreach (var item in AllItems)
|
||||
{
|
||||
if (item.Uid == uid) return item.Clone();
|
||||
}
|
||||
return null;
|
||||
var foundItem = AllItems.FirstOrDefault(x => x.Uid == uid);
|
||||
return (foundItem != null) ? foundItem.Clone() : null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
this.Controls.Add(this.printerClassComboBox);
|
||||
this.Name = "PrinterConfigDlg";
|
||||
this.Text = "Printer configuration";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.PrinterConfigDlg_FormClosing);
|
||||
this.Load += new System.EventHandler(this.PrinterClassDlg_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -88,7 +88,7 @@ namespace ResultsBrowser.Forms
|
||||
printerCfg = printerFactory.CmpntCfgFromCmpntEntity(cmpnt);
|
||||
}
|
||||
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg();
|
||||
ComponentParametersDlg cfgForm = new ComponentParametersDlg(this);
|
||||
cfgForm.CmpntEntities = new List<Component>();
|
||||
|
||||
IComponentCfgCtrl cfgControl = printerCfg.GetControl(cfgForm.CmpntEntities);
|
||||
@@ -167,5 +167,10 @@ namespace ResultsBrowser.Forms
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void PrinterConfigDlg_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
Common.CurrentUser.Restore(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
</configuration>
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace S640TestApp
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new S640TestWnd());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("S640TestApp")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("S640TestApp")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("2b84f803-89f3-43cd-9e2d-6ed03de6c3b8")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// 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("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace S640TestApp.Properties
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("S640TestApp.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
-8
@@ -46,7 +46,7 @@
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
@@ -60,7 +60,6 @@
|
||||
: 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">
|
||||
@@ -69,10 +68,9 @@
|
||||
<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="name" 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">
|
||||
@@ -87,10 +85,9 @@
|
||||
<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="name" type="xsd:string" 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">
|
||||
@@ -112,9 +109,9 @@
|
||||
<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>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.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>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace S640TestApp.Properties
|
||||
{
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{EE097B5A-8162-45B1-9643-4969FC3A8921}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>S640TestApp</RootNamespace>
|
||||
<AssemblyName>S640TestApp</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="S640TestWnd.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="S640TestWnd.Designer.cs">
|
||||
<DependentUpon>S640TestWnd.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="S640TestWnd.resx">
|
||||
<DependentUpon>S640TestWnd.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Common\Common.csproj">
|
||||
<Project>{c8939821-ba5c-4988-a3d0-bf53b74865c7}</Project>
|
||||
<Name>Common</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Config\Config.csproj">
|
||||
<Project>{743df7db-c7b6-42eb-986d-0f485e5588e4}</Project>
|
||||
<Name>Config</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\RestClient\RestClient.csproj">
|
||||
<Project>{46e3b0e1-209f-4550-b0dd-d7e2c039b3ce}</Project>
|
||||
<Name>RestClient</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Results\Results.csproj">
|
||||
<Project>{9d0dcc88-dc81-47eb-9fdd-4c3907871bfb}</Project>
|
||||
<Name>Results</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\TBF\TBF.csproj">
|
||||
<Project>{8648fd92-cda1-4c3a-b5f9-fe547ce1fa48}</Project>
|
||||
<Name>TBF</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
Generated
+207
@@ -0,0 +1,207 @@
|
||||
namespace S640TestApp
|
||||
{
|
||||
partial class S640TestWnd
|
||||
{
|
||||
/// <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 Windows Form 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.startButton = new System.Windows.Forms.Button();
|
||||
this.endButton = new System.Windows.Forms.Button();
|
||||
this.startCfgButton = new System.Windows.Forms.Button();
|
||||
this.endCfgButton = new System.Windows.Forms.Button();
|
||||
this.procParamsCfgButton = new System.Windows.Forms.Button();
|
||||
this.idWzTypTextBox = new System.Windows.Forms.TextBox();
|
||||
this.idWzTypLabel = new System.Windows.Forms.Label();
|
||||
this.getButton = new System.Windows.Forms.Button();
|
||||
this.baseUrlTextBox = new System.Windows.Forms.TextBox();
|
||||
this.relativeUrlTextBox = new System.Windows.Forms.TextBox();
|
||||
this.relativeUrlLabel = new System.Windows.Forms.Label();
|
||||
this.baseUrlLabel = new System.Windows.Forms.Label();
|
||||
this.getDefaultsGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.getDefaultsGroupBox.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// startButton
|
||||
//
|
||||
this.startButton.Location = new System.Drawing.Point(12, 110);
|
||||
this.startButton.Name = "startButton";
|
||||
this.startButton.Size = new System.Drawing.Size(109, 43);
|
||||
this.startButton.TabIndex = 2;
|
||||
this.startButton.Text = "Start";
|
||||
this.startButton.UseVisualStyleBackColor = true;
|
||||
this.startButton.Click += new System.EventHandler(this.startButton_Click);
|
||||
//
|
||||
// endButton
|
||||
//
|
||||
this.endButton.Location = new System.Drawing.Point(12, 208);
|
||||
this.endButton.Name = "endButton";
|
||||
this.endButton.Size = new System.Drawing.Size(109, 43);
|
||||
this.endButton.TabIndex = 4;
|
||||
this.endButton.Text = "End";
|
||||
this.endButton.UseVisualStyleBackColor = true;
|
||||
this.endButton.Click += new System.EventHandler(this.endButton_Click);
|
||||
//
|
||||
// startCfgButton
|
||||
//
|
||||
this.startCfgButton.Location = new System.Drawing.Point(12, 61);
|
||||
this.startCfgButton.Name = "startCfgButton";
|
||||
this.startCfgButton.Size = new System.Drawing.Size(109, 43);
|
||||
this.startCfgButton.TabIndex = 1;
|
||||
this.startCfgButton.Text = "Configure Start";
|
||||
this.startCfgButton.UseVisualStyleBackColor = true;
|
||||
this.startCfgButton.Click += new System.EventHandler(this.startCfgButton_Click);
|
||||
//
|
||||
// endCfgButton
|
||||
//
|
||||
this.endCfgButton.Location = new System.Drawing.Point(12, 159);
|
||||
this.endCfgButton.Name = "endCfgButton";
|
||||
this.endCfgButton.Size = new System.Drawing.Size(109, 43);
|
||||
this.endCfgButton.TabIndex = 3;
|
||||
this.endCfgButton.Text = "Configure End";
|
||||
this.endCfgButton.UseVisualStyleBackColor = true;
|
||||
this.endCfgButton.Click += new System.EventHandler(this.endCfgButton_Click);
|
||||
//
|
||||
// procParamsCfgButton
|
||||
//
|
||||
this.procParamsCfgButton.Location = new System.Drawing.Point(12, 12);
|
||||
this.procParamsCfgButton.Name = "procParamsCfgButton";
|
||||
this.procParamsCfgButton.Size = new System.Drawing.Size(109, 43);
|
||||
this.procParamsCfgButton.TabIndex = 0;
|
||||
this.procParamsCfgButton.Text = "Comm. parameters";
|
||||
this.procParamsCfgButton.UseVisualStyleBackColor = true;
|
||||
this.procParamsCfgButton.Click += new System.EventHandler(this.procParamsCfgButton_Click);
|
||||
//
|
||||
// idWzTypTextBox
|
||||
//
|
||||
this.idWzTypTextBox.Location = new System.Drawing.Point(87, 75);
|
||||
this.idWzTypTextBox.Name = "idWzTypTextBox";
|
||||
this.idWzTypTextBox.Size = new System.Drawing.Size(53, 20);
|
||||
this.idWzTypTextBox.TabIndex = 5;
|
||||
//
|
||||
// idWzTypLabel
|
||||
//
|
||||
this.idWzTypLabel.AutoSize = true;
|
||||
this.idWzTypLabel.Location = new System.Drawing.Point(12, 78);
|
||||
this.idWzTypLabel.Name = "idWzTypLabel";
|
||||
this.idWzTypLabel.Size = new System.Drawing.Size(60, 13);
|
||||
this.idWzTypLabel.TabIndex = 4;
|
||||
this.idWzTypLabel.Text = "ID WZ Typ";
|
||||
//
|
||||
// getButton
|
||||
//
|
||||
this.getButton.Location = new System.Drawing.Point(14, 109);
|
||||
this.getButton.Name = "getButton";
|
||||
this.getButton.Size = new System.Drawing.Size(126, 33);
|
||||
this.getButton.TabIndex = 6;
|
||||
this.getButton.Text = "Get";
|
||||
this.getButton.UseVisualStyleBackColor = true;
|
||||
this.getButton.Click += new System.EventHandler(this.getButton_Click);
|
||||
//
|
||||
// baseUrlTextBox
|
||||
//
|
||||
this.baseUrlTextBox.Location = new System.Drawing.Point(87, 25);
|
||||
this.baseUrlTextBox.Name = "baseUrlTextBox";
|
||||
this.baseUrlTextBox.Size = new System.Drawing.Size(298, 20);
|
||||
this.baseUrlTextBox.TabIndex = 1;
|
||||
//
|
||||
// relativeUrlTextBox
|
||||
//
|
||||
this.relativeUrlTextBox.Location = new System.Drawing.Point(87, 50);
|
||||
this.relativeUrlTextBox.Name = "relativeUrlTextBox";
|
||||
this.relativeUrlTextBox.Size = new System.Drawing.Size(298, 20);
|
||||
this.relativeUrlTextBox.TabIndex = 3;
|
||||
//
|
||||
// relativeUrlLabel
|
||||
//
|
||||
this.relativeUrlLabel.AutoSize = true;
|
||||
this.relativeUrlLabel.Location = new System.Drawing.Point(11, 53);
|
||||
this.relativeUrlLabel.Name = "relativeUrlLabel";
|
||||
this.relativeUrlLabel.Size = new System.Drawing.Size(71, 13);
|
||||
this.relativeUrlLabel.TabIndex = 2;
|
||||
this.relativeUrlLabel.Text = "Relative URL";
|
||||
//
|
||||
// baseUrlLabel
|
||||
//
|
||||
this.baseUrlLabel.AutoSize = true;
|
||||
this.baseUrlLabel.Location = new System.Drawing.Point(11, 28);
|
||||
this.baseUrlLabel.Name = "baseUrlLabel";
|
||||
this.baseUrlLabel.Size = new System.Drawing.Size(56, 13);
|
||||
this.baseUrlLabel.TabIndex = 0;
|
||||
this.baseUrlLabel.Text = "Base URL";
|
||||
//
|
||||
// getDefaultsGroupBox
|
||||
//
|
||||
this.getDefaultsGroupBox.Controls.Add(this.relativeUrlTextBox);
|
||||
this.getDefaultsGroupBox.Controls.Add(this.baseUrlTextBox);
|
||||
this.getDefaultsGroupBox.Controls.Add(this.idWzTypTextBox);
|
||||
this.getDefaultsGroupBox.Controls.Add(this.idWzTypLabel);
|
||||
this.getDefaultsGroupBox.Controls.Add(this.relativeUrlLabel);
|
||||
this.getDefaultsGroupBox.Controls.Add(this.getButton);
|
||||
this.getDefaultsGroupBox.Controls.Add(this.baseUrlLabel);
|
||||
this.getDefaultsGroupBox.Location = new System.Drawing.Point(127, 12);
|
||||
this.getDefaultsGroupBox.Name = "getDefaultsGroupBox";
|
||||
this.getDefaultsGroupBox.Size = new System.Drawing.Size(394, 157);
|
||||
this.getDefaultsGroupBox.TabIndex = 5;
|
||||
this.getDefaultsGroupBox.TabStop = false;
|
||||
this.getDefaultsGroupBox.Text = "Get default Q2 correction factors";
|
||||
//
|
||||
// S640TestWnd
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(533, 312);
|
||||
this.Controls.Add(this.getDefaultsGroupBox);
|
||||
this.Controls.Add(this.procParamsCfgButton);
|
||||
this.Controls.Add(this.endCfgButton);
|
||||
this.Controls.Add(this.startCfgButton);
|
||||
this.Controls.Add(this.endButton);
|
||||
this.Controls.Add(this.startButton);
|
||||
this.Name = "S640TestWnd";
|
||||
this.Text = "Form1";
|
||||
this.getDefaultsGroupBox.ResumeLayout(false);
|
||||
this.getDefaultsGroupBox.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button startButton;
|
||||
private System.Windows.Forms.Button endButton;
|
||||
private System.Windows.Forms.Button startCfgButton;
|
||||
private System.Windows.Forms.Button endCfgButton;
|
||||
private System.Windows.Forms.Button procParamsCfgButton;
|
||||
private System.Windows.Forms.TextBox idWzTypTextBox;
|
||||
private System.Windows.Forms.Label idWzTypLabel;
|
||||
private System.Windows.Forms.Button getButton;
|
||||
private System.Windows.Forms.TextBox baseUrlTextBox;
|
||||
private System.Windows.Forms.TextBox relativeUrlTextBox;
|
||||
private System.Windows.Forms.Label relativeUrlLabel;
|
||||
private System.Windows.Forms.Label baseUrlLabel;
|
||||
private System.Windows.Forms.GroupBox getDefaultsGroupBox;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Common;
|
||||
using Config;
|
||||
using Config.Entities;
|
||||
using RestClient;
|
||||
using Results.Entities;
|
||||
using TBF.Rig.TestMethods.S640Communication;
|
||||
|
||||
namespace S640TestApp
|
||||
{
|
||||
public partial class S640TestWnd : Form
|
||||
{
|
||||
ProcParams procParams;
|
||||
S640StartCfg startCfg;
|
||||
S640EndCfg endCfg;
|
||||
|
||||
Test test;
|
||||
IList<WaterMeter> waterMeters;
|
||||
|
||||
|
||||
public S640TestWnd()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
baseUrlTextBox.Text = "https://api-operations.sensus-emea.com/core/";
|
||||
relativeUrlTextBox.Text = "metrology/q2correction/Locations/Wztyp/{0}";
|
||||
|
||||
test = new Test()
|
||||
{
|
||||
};
|
||||
|
||||
waterMeters = new List<WaterMeter>();
|
||||
waterMeters.Add(new WaterMeter() { });
|
||||
waterMeters.Add(new WaterMeter() { });
|
||||
waterMeters.Add(new WaterMeter() { });
|
||||
}
|
||||
|
||||
private void procParamsCfgButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (procParams == null)
|
||||
{
|
||||
procParams = new ProcParams(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void startCfgButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (startCfg == null)
|
||||
{
|
||||
startCfg = new S640StartFactory().DefaultConfig() as S640StartCfg;
|
||||
}
|
||||
|
||||
var cfgForm = new TBF.UI.Bench.Components.ComponentParametersDlg(this);
|
||||
var cfgControl = startCfg.GetControl(null);
|
||||
cfgControl.Config = startCfg;
|
||||
cfgControl.Config.ItemNr = 1;
|
||||
cfgForm.ComponentCfgCtrl = cfgControl;
|
||||
cfgForm.UnlockAfterStart = true;
|
||||
|
||||
DialogResult dr = cfgForm.ShowDialog();
|
||||
if (dr == DialogResult.OK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void startButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (startCfg == null || procParams == null)
|
||||
{
|
||||
MessageBox.Show("Not configured");
|
||||
}
|
||||
|
||||
(new S640CommForm(S640Activity.Start, startCfg, procParams, test, waterMeters)).ShowDialog();
|
||||
}
|
||||
|
||||
private void endCfgButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (endCfg == null)
|
||||
{
|
||||
endCfg = new S640EndFactory().DefaultConfig() as S640EndCfg;
|
||||
}
|
||||
|
||||
var cfgForm = new TBF.UI.Bench.Components.ComponentParametersDlg(this);
|
||||
var cfgControl = endCfg.GetControl(null);
|
||||
cfgControl.Config = endCfg;
|
||||
cfgControl.Config.ItemNr = 1;
|
||||
cfgForm.ComponentCfgCtrl = cfgControl;
|
||||
cfgForm.UnlockAfterStart = true;
|
||||
|
||||
DialogResult dr = cfgForm.ShowDialog();
|
||||
if (dr == DialogResult.OK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void endButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (endCfg == null || procParams == null)
|
||||
{
|
||||
MessageBox.Show("Not configured");
|
||||
}
|
||||
|
||||
(new S640CommForm(S640Activity.End, endCfg, procParams, test, waterMeters)).ShowDialog();
|
||||
}
|
||||
|
||||
private void getButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
string baseUrl = baseUrlTextBox.Text;
|
||||
string relativeUrl = relativeUrlTextBox.Text;
|
||||
int wmType = 0;
|
||||
int q2PreCorrectionLR;
|
||||
int q2PreCorrectionRL;
|
||||
|
||||
if (string.IsNullOrEmpty(baseUrl) || string.IsNullOrEmpty(relativeUrl) ||
|
||||
!int.TryParse(idWzTypTextBox.Text, out wmType) || wmType <= 0)
|
||||
{
|
||||
MessageBox.Show("Invalid parameter(s)");
|
||||
return;
|
||||
}
|
||||
|
||||
/// Get Q2 pre-correction values from REST service
|
||||
try
|
||||
{
|
||||
GetQ2PreCorrectionClient client = new GetQ2PreCorrectionClient(baseUrl);
|
||||
client.GetToken("ReadUser", "sensus",
|
||||
"https://deluh1web03.world.fluidtechnology.net/SensusCore/api/v1/Locations/1/Login2").Wait();
|
||||
string finalRelativeUrl = string.Format(relativeUrl, wmType);
|
||||
Q2PreCorrection response = client.GetQ2Correction(finalRelativeUrl).Result;
|
||||
if (response != null && response.AreDataCalculated)
|
||||
{
|
||||
q2PreCorrectionLR = response.CorrLR;
|
||||
q2PreCorrectionRL = response.CorrRL;
|
||||
MessageBox.Show(string.Format(
|
||||
"Q2 corrections from a REST client for WM Type = {0} are: LR = {1}, RL = {2}",
|
||||
wmType, q2PreCorrectionLR, q2PreCorrectionRL));
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(string.Format(
|
||||
"Failed to obtain Q2 corrections from a REST client for WM Type = {0}", wmType));
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
MessageBox.Show(string.Format(
|
||||
"Failed to obtain Q2 corrections from a REST client for WM Type = {0}: {1}",
|
||||
wmType, exc.Message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,8 @@
|
||||
///
|
||||
/// Copyright (c) 2020 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2020-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SchematicDrawing
|
||||
{
|
||||
@@ -26,8 +22,8 @@ namespace SchematicDrawing
|
||||
public readonly Edge[] Edges; /// Edges (in the open state in case there are two states: open/closed)
|
||||
|
||||
/// open (route bit = 1), wet
|
||||
public readonly bool HasImg; /// True when there is an image of this item to be displayed
|
||||
public readonly Image ImgRight; /// Bitmap to be drawn (in the open state in case there are two states: open/closed)
|
||||
public readonly bool HasImg; /// True when there is an image of this item to be displayed
|
||||
public readonly Image ImgRight; /// Bitmap to be drawn (in the open state in case there are two states: open/closed)
|
||||
public readonly Image ImgUp;
|
||||
public readonly Image ImgLeft;
|
||||
public readonly Image ImgDown;
|
||||
@@ -80,13 +76,13 @@ namespace SchematicDrawing
|
||||
public readonly Image ImgDownFlippedVacuum;
|
||||
|
||||
|
||||
DrawingShape(Shape shape, Sz sz, int szX, int szY, Node[] nodes = null, Edge[] edges = null,
|
||||
int offsX = -10, int offsY = -10, int wid = 20, int hgh = 20,
|
||||
Bitmap bmp = null, /// wet, open (route bit = 1)
|
||||
Bitmap bmpClosedDry = null, /// dry (Dist == int.MaxValue), closed (route bit = 0)
|
||||
Bitmap bmpVacuum = null, /// vacuum (int.MaxValue > Dist && Dist > Const.Vacuum)
|
||||
Bitmap bmpOpenDry = null, /// dry (Dist == int.MaxValue), open (route bit = 1)
|
||||
Bitmap bmpClosedWet = null) /// wet, closed (route bit = 0) ... diverter only
|
||||
public DrawingShape(Shape shape, Sz sz, int szX, int szY, Node[] nodes = null, Edge[] edges = null,
|
||||
int offsX = -10, int offsY = -10, int wid = 20, int hgh = 20,
|
||||
Bitmap bmp = null, /// wet, open (route bit = 1)
|
||||
Bitmap bmpClosedDry = null, /// dry (Dist == int.MaxValue), closed (route bit = 0)
|
||||
Bitmap bmpVacuum = null, /// vacuum (int.MaxValue > Dist && Dist > Const.Vacuum)
|
||||
Bitmap bmpOpenDry = null, /// dry (Dist == int.MaxValue), open (route bit = 1)
|
||||
Bitmap bmpClosedWet = null) /// wet, closed (route bit = 0) ... diverter only
|
||||
{
|
||||
Shape = shape;
|
||||
Sz = sz;
|
||||
@@ -286,11 +282,31 @@ namespace SchematicDrawing
|
||||
|
||||
public static DrawingShape[] Shapes;
|
||||
///
|
||||
public static int DrShIx(Shape shape, Sz sz) { return (int)shape * (int)Sz.Count + (int)sz; }
|
||||
public static int DrShIx(Shape shape, Sz sz)
|
||||
{
|
||||
return (int)shape * (int)Sz.Count + (int)sz;
|
||||
}
|
||||
///
|
||||
public static DrawingShape GetDrawingShape(Shape shape, Sz sz) { return Shapes[DrShIx(shape, sz)]; }
|
||||
public static DrawingShape GetDrawingShape(Shape shape, Sz sz)
|
||||
{
|
||||
return Shapes[DrShIx(shape, sz)];
|
||||
}
|
||||
///
|
||||
public static DrawingShape GetDrawingShape(IDrawingItem item) { return (item != null) ? Shapes[DrShIx(item.Shape, item.Sz)] : null; }
|
||||
public static DrawingShape GetDrawingShape(IDrawingItem item)
|
||||
{
|
||||
if (item == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else if (item is IDrawingItemWithCustomBmp)
|
||||
{
|
||||
return (item as IDrawingItemWithCustomBmp).GetSampleBitmap();
|
||||
}
|
||||
else
|
||||
{
|
||||
return Shapes[DrShIx(item.Shape, item.Sz)];
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Static constructor that initializes Shapes[] array
|
||||
@@ -359,7 +375,7 @@ namespace SchematicDrawing
|
||||
/// Diverter
|
||||
Shapes[DrShIx(Shape.Div, Sz.S)] = new DrawingShape(Shape.Div, Sz.S, 2, 2,
|
||||
new Node[] { new Node(2, 0, Orient.Up), new Node(1, 2, Orient.Dn), new Node(3, 2, Orient.Dn) },
|
||||
new Edge[] { new Edge(0, 1, 20), new Edge(0, 2, 20, RouteCouple.OpenWhen1) },
|
||||
new Edge[] { new Edge(0, 1, 20, RouteCouple.ClosedWhen1), new Edge(0, 2, 20, RouteCouple.OpenWhen1) },
|
||||
0, 0, 40, 20,
|
||||
Properties.Resources.Div_S_tank_wet,
|
||||
Properties.Resources.Div_S_sink_dry,
|
||||
@@ -368,7 +384,7 @@ namespace SchematicDrawing
|
||||
Properties.Resources.Div_S_sink_wet);
|
||||
Shapes[DrShIx(Shape.Div, Sz.M)] = new DrawingShape(Shape.Div, Sz.M, 3, 4,
|
||||
new Node[] { new Node(2, 0, Orient.Up), new Node(1, 3, Orient.Dn), new Node(3, 3, Orient.Dn) },
|
||||
new Edge[] { new Edge(0, 1, 30), new Edge(0, 2, 30, RouteCouple.OpenWhen1) },
|
||||
new Edge[] { new Edge(0, 1, 30, RouteCouple.ClosedWhen1), new Edge(0, 2, 30, RouteCouple.OpenWhen1) },
|
||||
0, 0, 40, 30,
|
||||
Properties.Resources.Div_M_tank_wet,
|
||||
Properties.Resources.Div_M_sink_dry,
|
||||
@@ -377,7 +393,7 @@ namespace SchematicDrawing
|
||||
Properties.Resources.Div_M_sink_wet);
|
||||
Shapes[DrShIx(Shape.Div, Sz.L)] = new DrawingShape(Shape.Div, Sz.L, 4, 4,
|
||||
new Node[] { new Node(3, 0, Orient.Up), new Node(1, 4, Orient.Dn), new Node(5, 4, Orient.Dn) },
|
||||
new Edge[] { new Edge(0, 1, 40), new Edge(0, 2, 40, RouteCouple.OpenWhen1) },
|
||||
new Edge[] { new Edge(0, 1, 40, RouteCouple.ClosedWhen1), new Edge(0, 2, 40, RouteCouple.OpenWhen1) },
|
||||
0, 0, 60, 40,
|
||||
Properties.Resources.Div_L_tank_wet,
|
||||
Properties.Resources.Div_L_sink_dry,
|
||||
@@ -386,7 +402,7 @@ namespace SchematicDrawing
|
||||
Properties.Resources.Div_L_sink_wet);
|
||||
Shapes[DrShIx(Shape.Div, Sz.XL)] = new DrawingShape(Shape.Div, Sz.XL, 5, 6,
|
||||
new Node[] { new Node(3, 0, Orient.Up), new Node(1, 5, Orient.Dn), new Node(5, 5, Orient.Dn) },
|
||||
new Edge[] { new Edge(0, 1, 50), new Edge(0, 2, 50, RouteCouple.OpenWhen1) },
|
||||
new Edge[] { new Edge(0, 1, 50, RouteCouple.ClosedWhen1), new Edge(0, 2, 50, RouteCouple.OpenWhen1) },
|
||||
0, 0, 60, 50,
|
||||
Properties.Resources.Div_XL_tank_wet,
|
||||
Properties.Resources.Div_XL_sink_dry,
|
||||
|
||||
@@ -51,7 +51,9 @@ namespace SchematicDrawing
|
||||
Vacuum,
|
||||
Valve,
|
||||
WaterM,
|
||||
Count
|
||||
|
||||
Count,
|
||||
Custom,
|
||||
}
|
||||
|
||||
public enum Sz
|
||||
|
||||
@@ -75,8 +75,6 @@ namespace SchematicDrawing
|
||||
/// <summary>
|
||||
/// Run Dijkstra shortest path algorithm to determine schematic drawing coloring
|
||||
/// </summary>
|
||||
/// <param name="startNode">Start node</param>
|
||||
/// <param name="secondaryStartNodes">List of secondary start nodes</param>
|
||||
public void RunDijkstraAlgo()
|
||||
{
|
||||
if (nodes == null || startNode == null) return;
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
///
|
||||
/// Copyright (c) 2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System.Drawing;
|
||||
|
||||
namespace SchematicDrawing
|
||||
{
|
||||
public interface IDrawingItCmpntWithCustomBmp
|
||||
{
|
||||
DrawingShape GetCustomBitmap();
|
||||
}
|
||||
}
|
||||
@@ -5,8 +5,8 @@ namespace SchematicDrawing
|
||||
{
|
||||
public interface IDrawingItCmpntWithMeasuredVal : IDrawingItCmpnt
|
||||
{
|
||||
bool MsrmntAvailable { get; }
|
||||
double MeasuredVal { get; }
|
||||
string AltString { get; }
|
||||
bool MsrmntAvailable { get; } /// true when there is a valid measurement
|
||||
double MeasuredVal { get; } /// Measured value in default unit (not converted)
|
||||
string AltString { get; } /// String to be displayed when MsrdFormat is an empty string or null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
///
|
||||
/// Copyright (c) 2022 Sensus Slovensko a.s.
|
||||
///
|
||||
namespace SchematicDrawing
|
||||
{
|
||||
public interface IDrawingItemWithCustomBmp : IDrawingItem
|
||||
{
|
||||
DrawingShape GetSampleBitmap();
|
||||
}
|
||||
}
|
||||
@@ -46,6 +46,8 @@
|
||||
<Compile Include="GEdge.cs" />
|
||||
<Compile Include="GNode.cs" />
|
||||
<Compile Include="Graph.cs" />
|
||||
<Compile Include="IDrawingItCmpntWithCustomBmp.cs" />
|
||||
<Compile Include="IDrawingItemWithCustomBmp.cs" />
|
||||
<Compile Include="ItemElementRect.cs" />
|
||||
<Compile Include="DrawingShape.cs" />
|
||||
<Compile Include="Edge.cs" />
|
||||
|
||||
@@ -114,6 +114,16 @@ namespace SchematicDrawing
|
||||
get { return setpoints; }
|
||||
}
|
||||
|
||||
///
|
||||
/// Custom bitmaps
|
||||
///
|
||||
private DrawingShape[] customBitmaps;
|
||||
public DrawingShape[] CustomBitmaps
|
||||
{
|
||||
set { if (customBitmaps != value) { customBitmaps = value; Redraw(); } }
|
||||
get { return customBitmaps; }
|
||||
}
|
||||
|
||||
///
|
||||
/// Pipes
|
||||
///
|
||||
@@ -347,6 +357,7 @@ namespace SchematicDrawing
|
||||
if (!EditMode)
|
||||
{
|
||||
DrawingShape dshape = DrawingShape.GetDrawingShape(item);
|
||||
|
||||
if (dshape != null && dshape.Nodes != null && dshape.Nodes.Length > 0)
|
||||
{
|
||||
item.GNodes.Clear();
|
||||
@@ -565,13 +576,22 @@ namespace SchematicDrawing
|
||||
///
|
||||
/// Draw pictures of all items except of junctions
|
||||
///
|
||||
int customBmpIx = 0;
|
||||
foreach (var item in items)
|
||||
{
|
||||
DrawingShape dshape = DrawingShape.GetDrawingShape(item);
|
||||
if (dshape != null && dshape.Shape != Shape.Junction && dshape.HasImg && (!Utils.IsHidden(item) || (EditMode && item == selectedItem)))
|
||||
if (dshape != null && dshape.Shape != Shape.Junction && (!Utils.IsHidden(item) || (EditMode && item == selectedItem)))
|
||||
{
|
||||
Rectangle rect = DrawItem(e, item, dshape);
|
||||
ItemElementRectangles.Add(new ItemElementRect(item, Element.Body, rect));
|
||||
if (item is IDrawingItemWithCustomBmp && customBitmaps != null && customBitmaps.Length > customBmpIx)
|
||||
{
|
||||
Rectangle rect = DrawItem(e, item, customBitmaps[customBmpIx++]);
|
||||
ItemElementRectangles.Add(new ItemElementRect(item, Element.Body, rect));
|
||||
}
|
||||
else if (dshape.HasImg)
|
||||
{
|
||||
Rectangle rect = DrawItem(e, item, dshape);
|
||||
ItemElementRectangles.Add(new ItemElementRect(item, Element.Body, rect));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -639,11 +659,12 @@ namespace SchematicDrawing
|
||||
if (!string.IsNullOrEmpty(strVal))
|
||||
{
|
||||
/// Paint water in the tank on a scale
|
||||
DrawingShape dshape = DrawingShape.GetDrawingShape(item.Shape, item.Sz);
|
||||
DrawingShape dshape = DrawingShape.GetDrawingShape(item);
|
||||
if (dshape.Shape == Shape.Scale)
|
||||
{
|
||||
Rectangle r = dshape.GetRotatedFlippedImageRectangle(item);
|
||||
int level = (int)Math.Round((r.Height - 2) * Math.Max(0, Math.Min(msrdVal, itm.MsrdValLimHi)) / itm.MsrdValLimHi);
|
||||
int level = (int)Math.Round((r.Height - 2)
|
||||
* Math.Max(0, Math.Min(measuredValues[msrdValIx], itm.MsrdValLimHi)) / itm.MsrdValLimHi);
|
||||
e.Graphics.FillRectangle(brushWater, r.X + 2, r.Y + r.Height - 2 - level, r.Width - 4, level);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -23,7 +23,9 @@ namespace SharedDatabase.Entities
|
||||
public virtual int UserNumber { get; set; }
|
||||
public virtual string ProcedureName { get; set; }
|
||||
public virtual bool IsRemoteProcedure { get; set; } /// Stara Tura, not mapped to DB
|
||||
public virtual string ProcedureDescription { get; set; } /// CEVAK, not mapped to DB
|
||||
public virtual string PurchaseOrder { get; set; } /// Stara Tura, Nanjing, not mapped to DB
|
||||
public virtual string Workflow { get; set; } /// Stara Tura, Nanjing, not mapped to DB
|
||||
public virtual string ProcedureDescription { get; set; } /// CEVAK, not mapped to DB
|
||||
public virtual int ProcedureRevision { get; set; }
|
||||
public virtual string WatermetersStr { get; set; } /// CEVAK, not mapped to DB
|
||||
public virtual string Remark { get; set; }
|
||||
@@ -36,7 +38,8 @@ namespace SharedDatabase.Entities
|
||||
public virtual int Counter9 { get; set; }
|
||||
public virtual int Counter10 { get; set; }
|
||||
public virtual DateTime StartTime { get; set; }
|
||||
public virtual DateTime EndTime { get; set; }
|
||||
public virtual DateTime EndTime { get; set; }
|
||||
public virtual DateTime SaveTime { get; set; }
|
||||
public virtual bool Dirty { get; set; }
|
||||
public virtual bool RsltsSent { get; set; }
|
||||
public virtual bool RsltsPrinted { get; set; }
|
||||
@@ -111,6 +114,7 @@ namespace SharedDatabase.Entities
|
||||
UserName = string.Empty;
|
||||
ProcedureName = string.Empty;
|
||||
IsRemoteProcedure = false;
|
||||
PurchaseOrder = null;
|
||||
ProcedureDescription = string.Empty;
|
||||
WatermetersStr = string.Empty;
|
||||
Remark = string.Empty;
|
||||
@@ -138,6 +142,7 @@ namespace SharedDatabase.Entities
|
||||
UserNumber = oriBatch.UserNumber;
|
||||
ProcedureName = oriBatch.ProcedureName;
|
||||
IsRemoteProcedure = oriBatch.IsRemoteProcedure;
|
||||
PurchaseOrder = oriBatch.PurchaseOrder;
|
||||
ProcedureDescription = oriBatch.ProcedureDescription;
|
||||
ProcedureRevision = oriBatch.ProcedureRevision;
|
||||
WatermetersStr = oriBatch.WatermetersStr;
|
||||
@@ -152,6 +157,7 @@ namespace SharedDatabase.Entities
|
||||
Counter10 = oriBatch.Counter10;
|
||||
StartTime = oriBatch.StartTime;
|
||||
EndTime = oriBatch.EndTime;
|
||||
SaveTime = oriBatch.SaveTime;
|
||||
Dirty = oriBatch.Dirty;
|
||||
RsltsSent = oriBatch.RsltsSent;
|
||||
RsltsPrinted = oriBatch.RsltsPrinted;
|
||||
@@ -204,7 +210,7 @@ namespace SharedDatabase.Entities
|
||||
|
||||
foreach (var tr in TestRslts)
|
||||
{
|
||||
if (tr.TestDone)
|
||||
if (tr.TestDone && tr.AmbTempMean != 0)
|
||||
{
|
||||
double duration = (tr.EndTime - tr.StartTime).TotalSeconds;
|
||||
timeSum += duration;
|
||||
@@ -222,7 +228,7 @@ namespace SharedDatabase.Entities
|
||||
|
||||
foreach (var tr in TestRslts)
|
||||
{
|
||||
if (tr.TestDone)
|
||||
if (tr.TestDone && tr.AmbPressMean != 0)
|
||||
{
|
||||
double duration = (tr.EndTime - tr.StartTime).TotalSeconds;
|
||||
timeSum += duration;
|
||||
@@ -240,7 +246,7 @@ namespace SharedDatabase.Entities
|
||||
|
||||
foreach (var tr in TestRslts)
|
||||
{
|
||||
if (tr.TestDone)
|
||||
if (tr.TestDone && tr.AmbHumiMean != 0)
|
||||
{
|
||||
double duration = (tr.EndTime - tr.StartTime).TotalSeconds;
|
||||
timeSum += duration;
|
||||
@@ -255,7 +261,7 @@ namespace SharedDatabase.Entities
|
||||
{
|
||||
for (int i = 0; i < TestRslts.Count; i++)
|
||||
{
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always)
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always && TestRslts[i].AmbTempStart != 0)
|
||||
return TestRslts[i].AmbTempStart;
|
||||
}
|
||||
return 0;
|
||||
@@ -264,7 +270,7 @@ namespace SharedDatabase.Entities
|
||||
{
|
||||
for (int i = 0; i < TestRslts.Count; i++)
|
||||
{
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always)
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always && TestRslts[i].AmbPressStart != 0)
|
||||
return TestRslts[i].AmbPressStart;
|
||||
}
|
||||
return 0;
|
||||
@@ -273,7 +279,7 @@ namespace SharedDatabase.Entities
|
||||
{
|
||||
for (int i = 0; i < TestRslts.Count; i++)
|
||||
{
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always)
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always && TestRslts[i].AmbHumiStart != 0)
|
||||
return TestRslts[i].AmbHumiStart;
|
||||
}
|
||||
return 0;
|
||||
@@ -281,27 +287,27 @@ namespace SharedDatabase.Entities
|
||||
|
||||
public virtual double AmbTempEnd()
|
||||
{
|
||||
for (int i = TestRslts.Count - 1; i >= 0; i++)
|
||||
for (int i = TestRslts.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always)
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always && TestRslts[i].AmbTempEnd != 0)
|
||||
return TestRslts[i].AmbTempEnd;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
public virtual double AmbPressEnd()
|
||||
{
|
||||
for (int i = TestRslts.Count - 1; i >= 0; i++)
|
||||
for (int i = TestRslts.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always)
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always && TestRslts[i].AmbPressEnd != 0)
|
||||
return TestRslts[i].AmbPressEnd;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
public virtual double AmbHumiEnd()
|
||||
{
|
||||
for (int i = TestRslts.Count - 1; i >= 0; i++)
|
||||
for (int i = TestRslts.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always)
|
||||
if (TestRslts[i].Publish() == Common.Publish.Always && TestRslts[i].AmbHumiEnd != 0)
|
||||
return TestRslts[i].AmbHumiEnd;
|
||||
}
|
||||
return 0;
|
||||
@@ -318,7 +324,8 @@ namespace SharedDatabase.Entities
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("Batch #{0}, Start:{1}, End:{2}, Procedure:{3}", BatchNr, StartTime, EndTime, ProcedureName);
|
||||
return string.Format("Batch {0} ({1}s) Start {2}, End {3}, Proc={4}",
|
||||
BatchNr, (EndTime - StartTime).TotalSeconds, StartTime, EndTime, ProcedureName);
|
||||
}
|
||||
|
||||
public virtual string ToString(int i)
|
||||
@@ -359,6 +366,7 @@ namespace SharedDatabase.Entities
|
||||
writer.Write(Counter10);
|
||||
writer.Write(StartTime.ToString());
|
||||
writer.Write(EndTime.ToString());
|
||||
writer.Write(SaveTime.ToString());
|
||||
writer.Write(Dirty);
|
||||
writer.Write(RsltsSent);
|
||||
writer.Write(RsltsPrinted);
|
||||
@@ -425,6 +433,7 @@ namespace SharedDatabase.Entities
|
||||
Counter10 = reader.ReadInt32();
|
||||
StartTime = DateTime.Parse(reader.ReadString());
|
||||
EndTime = DateTime.Parse(reader.ReadString());
|
||||
SaveTime = DateTime.Parse(reader.ReadString());
|
||||
Dirty = reader.ReadBoolean();
|
||||
RsltsSent = reader.ReadBoolean();
|
||||
RsltsPrinted = reader.ReadBoolean();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -43,8 +43,7 @@ namespace SharedDatabase.Entities
|
||||
public virtual DateTime StartTime() { return TestRslt.StartTime; }
|
||||
public virtual DateTime EndTime() { return TestRslt.EndTime; }
|
||||
public virtual double FlowSetTime() { return TestRslt.FlowSetTime; } /// [s]
|
||||
public virtual double FlowMass() { return TestRslt.FlowMass; } /// [kg/h]
|
||||
public virtual double FlowVolume() { return TestRslt.FlowVolume; } /// [m3/h]
|
||||
public virtual double Flow() { return TestRslt.Flow; } /// [m3/h]
|
||||
public virtual double ErrorMaster() { return TestRslt.ErrorMaster; } /// [%]
|
||||
public virtual double DensityLine() { return TestRslt.DensityLine; }
|
||||
public virtual Components Components(){ return TestRslt.Components; }
|
||||
@@ -64,7 +63,9 @@ namespace SharedDatabase.Entities
|
||||
|
||||
public virtual string ProcedureName() { return WaterMeter.Batch.ProcedureName; }
|
||||
public virtual int BatchNr() { return WaterMeter.Batch.BatchNr; }
|
||||
public virtual string SerialNr() { return WaterMeter.SerialNr; }
|
||||
public virtual string SerialNr() { return (CompoundMeterId == (byte)Common.CompoundMeterId.CompoundAux)
|
||||
? WaterMeter.SerialNrAux
|
||||
: WaterMeter.SerialNr; }
|
||||
public virtual string EndState() { return WaterMeter.EndState; }
|
||||
public virtual double QRise() { return WaterMeter.QRise; } /// [m3/h]
|
||||
public virtual double QFall() { return WaterMeter.QFall; } /// [m3/h]
|
||||
|
||||
@@ -7,7 +7,6 @@ namespace SharedDatabase.Entities
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual string Name { get; set; }
|
||||
public virtual string OraDBType { get; set; }
|
||||
public virtual string Description { get; set; }
|
||||
public virtual sbyte CodeType { get; set; }
|
||||
public virtual sbyte CodeForm { get; set; }
|
||||
@@ -29,7 +28,6 @@ namespace SharedDatabase.Entities
|
||||
Part rslt = new Part();
|
||||
|
||||
rslt.Name = Name;
|
||||
rslt.OraDBType = OraDBType;
|
||||
rslt.Description = Description;
|
||||
rslt.CodeType = CodeType;
|
||||
rslt.CodeForm = CodeForm;
|
||||
@@ -69,7 +67,6 @@ namespace SharedDatabase.Entities
|
||||
public Part(string name, Process workflow, CodeType codeType, CodeForm codeForm, CodeLocation codeLocation)
|
||||
{
|
||||
Name = name;
|
||||
OraDBType = string.Empty;
|
||||
Description = string.Empty;
|
||||
CodeType = (sbyte)codeType;
|
||||
CodeForm = (sbyte)codeForm;
|
||||
|
||||
@@ -26,10 +26,10 @@ namespace SharedDatabase.Entities
|
||||
public virtual double ErrLimLo { get; set; } /// [%] usually < 0, in case of heat meters: 1=class1, 2=class2, 3=class3
|
||||
public virtual double ErrLimHi { get; set; } /// [%] usually > 0, in case of heat meters: -Qn in m3/h
|
||||
public virtual double ErrLimMargin { get; set; } /// [%] makes error limits tighter: 0 <= ErrLimMargin <= abs(ErrLimXx)
|
||||
public virtual bool DoControlWaterTemp { get; set; }
|
||||
public virtual float TempLimLo { get; set; }
|
||||
public virtual float TempLimLo { get; set; }
|
||||
public virtual float TempLimHi { get; set; }
|
||||
public virtual sbyte Publish { get; set; } /// 0=no, 1=in all protocols, 2=on screen, 3=internal
|
||||
public virtual string TempControl { get; set; }
|
||||
public virtual sbyte Publish { get; set; } /// 0=no, 1=in all protocols, 2=on screen, 3=internal
|
||||
public virtual bool Evaluate { get; set; }
|
||||
|
||||
|
||||
@@ -45,22 +45,22 @@ namespace SharedDatabase.Entities
|
||||
public TestData(Config.Entities.Test test)
|
||||
: this()
|
||||
{
|
||||
Name = test.Name;
|
||||
Repeats = test.Repeats;
|
||||
Qtg = (double)test.Qtg;
|
||||
Qfrom = (double)test.Qfrom;
|
||||
Qto = (double)test.Qto;
|
||||
TargetVolume = (double)test.Volume;
|
||||
TargetTime = (double)test.TestTime;
|
||||
Method = test.Method;
|
||||
ErrLimLo = (double)test.ErrLimLo;
|
||||
ErrLimHi = (double)test.ErrLimHi;
|
||||
ErrLimMargin = (double)test.Uncertainty;
|
||||
DoControlWaterTemp = test.DoControlWaterTemp;
|
||||
TempLimLo = test.TempLimLo;
|
||||
TempLimHi = test.TempLimHi;
|
||||
Publish = test.Publish;
|
||||
Evaluate = test.DoEvaluate;
|
||||
Name = test.Name;
|
||||
Repeats = test.Repeats;
|
||||
Qtg = test.Qtg;
|
||||
Qfrom = test.QfromM3ph();
|
||||
Qto = test.QtoM3ph();
|
||||
TargetVolume = test.Volume;
|
||||
TargetTime = test.TestTime;
|
||||
Method = test.Method;
|
||||
ErrLimLo = test.ErrLimLo;
|
||||
ErrLimHi = test.ErrLimHi;
|
||||
ErrLimMargin = test.Uncertainty;
|
||||
TempLimLo = test.TempLimLo;
|
||||
TempLimHi = test.TempLimHi;
|
||||
TempControl = test.TempControl;
|
||||
Publish = test.Publish;
|
||||
Evaluate = test.DoEvaluate;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -68,22 +68,22 @@ namespace SharedDatabase.Entities
|
||||
/// </summary>
|
||||
public TestData(TestData oriTestData)
|
||||
{
|
||||
Name = oriTestData.Name;
|
||||
Repeats = oriTestData.Repeats;
|
||||
Qtg = oriTestData.Qtg;
|
||||
Qfrom = oriTestData.Qfrom;
|
||||
Qto = oriTestData.Qto;
|
||||
TargetVolume = oriTestData.TargetVolume;
|
||||
TargetTime = oriTestData.TargetTime;
|
||||
Method = oriTestData.Method;
|
||||
ErrLimLo = oriTestData.ErrLimLo;
|
||||
ErrLimHi = oriTestData.ErrLimHi;
|
||||
ErrLimMargin = oriTestData.ErrLimMargin;
|
||||
DoControlWaterTemp = oriTestData.DoControlWaterTemp;
|
||||
TempLimLo = oriTestData.TempLimLo;
|
||||
TempLimHi = oriTestData.TempLimHi;
|
||||
Publish = oriTestData.Publish;
|
||||
Evaluate = oriTestData.Evaluate;
|
||||
Name = oriTestData.Name;
|
||||
Repeats = oriTestData.Repeats;
|
||||
Qtg = oriTestData.Qtg;
|
||||
Qfrom = oriTestData.Qfrom;
|
||||
Qto = oriTestData.Qto;
|
||||
TargetVolume = oriTestData.TargetVolume;
|
||||
TargetTime = oriTestData.TargetTime;
|
||||
Method = oriTestData.Method;
|
||||
ErrLimLo = oriTestData.ErrLimLo;
|
||||
ErrLimHi = oriTestData.ErrLimHi;
|
||||
ErrLimMargin = oriTestData.ErrLimMargin;
|
||||
TempLimLo = oriTestData.TempLimLo;
|
||||
TempLimHi = oriTestData.TempLimHi;
|
||||
TempControl = oriTestData.TempControl;
|
||||
Publish = oriTestData.Publish;
|
||||
Evaluate = oriTestData.Evaluate;
|
||||
}
|
||||
|
||||
|
||||
@@ -105,13 +105,10 @@ namespace SharedDatabase.Entities
|
||||
if (ErrLimLo != td.ErrLimLo) return false;
|
||||
if (ErrLimHi != td.ErrLimHi) return false;
|
||||
if (ErrLimMargin != td.ErrLimMargin) return false;
|
||||
if (DoControlWaterTemp != td.DoControlWaterTemp) return false;
|
||||
if (DoControlWaterTemp)
|
||||
{
|
||||
if (TempLimLo != td.TempLimLo) return false;
|
||||
if (TempLimHi != td.TempLimHi) return false;
|
||||
}
|
||||
if (Publish != td.Publish) return false;
|
||||
if (TempLimLo != td.TempLimLo) return false;
|
||||
if (TempLimHi != td.TempLimHi) return false;
|
||||
if (TempControl != td.TempControl) return false;
|
||||
if (Publish != td.Publish) return false;
|
||||
if (Evaluate != td.Evaluate) return false;
|
||||
|
||||
return true;
|
||||
@@ -150,9 +147,9 @@ namespace SharedDatabase.Entities
|
||||
writer.Write(ErrLimLo);
|
||||
writer.Write(ErrLimHi);
|
||||
writer.Write(ErrLimMargin);
|
||||
writer.Write(DoControlWaterTemp);
|
||||
writer.Write(TempLimLo);
|
||||
writer.Write(TempLimHi);
|
||||
writer.Write((TempControl != null) ? TempControl : string.Empty);
|
||||
writer.Write(Publish);
|
||||
writer.Write(Evaluate);
|
||||
}
|
||||
@@ -171,9 +168,9 @@ namespace SharedDatabase.Entities
|
||||
ErrLimLo = reader.ReadDouble();
|
||||
ErrLimHi = reader.ReadDouble();
|
||||
ErrLimMargin = reader.ReadDouble();
|
||||
DoControlWaterTemp = reader.ReadBoolean();
|
||||
TempLimLo = reader.ReadSingle();
|
||||
TempLimHi = reader.ReadSingle();
|
||||
TempControl = reader.ReadString();
|
||||
Publish = reader.ReadSByte();
|
||||
Evaluate = reader.ReadBoolean();
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using Common;
|
||||
|
||||
namespace SharedDatabase.Entities
|
||||
{
|
||||
@@ -43,8 +44,8 @@ namespace SharedDatabase.Entities
|
||||
public virtual double DensityLine { get; set; } /// [kg/m3]
|
||||
public virtual double DensityDiv { get; set; } /// [kg/m3]
|
||||
public virtual double MassOfEvapWater { get; set; } /// [kg]
|
||||
public virtual double FlowMass { get; set; } /// [kg/h] calculated from conventional true value
|
||||
public virtual double FlowVolume { get; set; } /// [m3/h]
|
||||
public virtual double SpareDbl { get; set; }
|
||||
public virtual double Flow { get; set; } /// [m3/h] calculated from conventional true value
|
||||
public virtual double VolumeCTV { get; set; } /// [l] Volume conventional true value
|
||||
public virtual double VolumeMaster { get; set; } /// [l] Volume from the master flow meter
|
||||
public virtual double ErrorMaster { get; set; } /// [%] Error of the master flow meter
|
||||
@@ -146,8 +147,9 @@ namespace SharedDatabase.Entities
|
||||
public virtual int Counter5 { get; set; }
|
||||
|
||||
/// Wrappers
|
||||
public virtual string Name() { return Utils.GetTestName(TestData.Name, TestData.Repeats, RepetitionNr); }
|
||||
public virtual int Repeats() { return TestData.Repeats; }
|
||||
public virtual string Name() { return Common.Utils.GetTestName(TestData.Name, TestData.Repeats, RepetitionNr); }
|
||||
public virtual string Key() { return string.Format("{0}~{1}~{2}~{3}", TestData.Name, Part, TestData.Repeats, RepetitionNr); } /// Unique key
|
||||
public virtual int Repeats() { return TestData.Repeats; }
|
||||
public virtual double Qfrom() { return TestData.Qfrom; }
|
||||
public virtual double Qto() { return TestData.Qto; }
|
||||
public virtual double TargetVolume() { return TestData.TargetVolume; }
|
||||
@@ -157,11 +159,11 @@ namespace SharedDatabase.Entities
|
||||
public virtual string Scale() { return (Components != null && Components.Scale != null) ? Components.Scale : string.Empty; }
|
||||
public virtual string Diverter() { return (Components != null && Components.Diverter != null) ? Components.Diverter : string.Empty; }
|
||||
public virtual string RegValve() { return (Components != null && Components.RegValve != null) ? Components.RegValve : string.Empty; }
|
||||
public virtual bool IsRelErrTest() { return (MethodClass != null) ? (MethodClass.Contains("FixedStart") || MethodClass.Contains("FlyingStart") || MethodClass.Contains("CombinedWithDetection") || MethodClass.Contains("DiverterTest") || MethodClass.Contains("ManualEntry")) : true; }
|
||||
public virtual bool IsRelErrTest() { return (MethodClass != null) ? (MethodClass.Contains("StandingStart") || MethodClass.Contains("FlyingStart") || MethodClass.Contains("CombinedWithDetection") || MethodClass.Contains("DiverterTest") || MethodClass.Contains("ManualEntry")) : true; }
|
||||
public virtual bool IsPMaxTest() { return (MethodClass != null) ? (MethodClass.Contains("PMaxTest") || MethodClass.Contains("LeakTest") || TestData.Method.ToLower().Contains("pmax")) : true; }
|
||||
public virtual bool IsStartStop() { return (MethodClass != null) ? MethodClass.Contains("FixedStart") : true; }
|
||||
public virtual bool IsStartStop() { return (MethodClass != null) ? MethodClass.Contains("StandingStart") : true; }
|
||||
public virtual bool IsDiverter() { return (MethodClass != null) ? ((MethodClass.Contains("FlyingStart") && MethodClass.Contains("MassColl")) || MethodClass.Contains("DiverterTest")) : true; }
|
||||
public virtual bool IsVolumeMethod() { return (MethodClass != null) ? (MethodClass.Contains("TestMethods.FixedStart.") || MethodClass.Contains("TestMethods.FlyingStart.")) : false; }
|
||||
public virtual bool IsVolumeMethod() { return (MethodClass != null) ? (MethodClass.Contains("TestMethods.StandingStart.") || MethodClass.Contains("TestMethods.FlyingStart.")) : false; }
|
||||
|
||||
public virtual string MethodElde()
|
||||
{
|
||||
@@ -170,9 +172,9 @@ namespace SharedDatabase.Entities
|
||||
else if (MethodClass.Contains("TestMethods.FlyingStartMassCollectionProlonged.")) return "MS";
|
||||
else if (MethodClass.Contains("TestMethods.FlyingStartMassCollectionComparative.")) return "MS";
|
||||
else if (MethodClass.Contains("TestMethods.FlyingStart.")) return "VS";
|
||||
else if (MethodClass.Contains("TestMethods.FixedStartMassCollection.")) return "MP";
|
||||
else if (MethodClass.Contains("TestMethods.FixedStartTankCollection.")) return "VP";
|
||||
else if (MethodClass.Contains("TestMethods.FixedStart.")) return "VP";
|
||||
else if (MethodClass.Contains("TestMethods.StandingStartMassCollection.")) return "MP";
|
||||
else if (MethodClass.Contains("TestMethods.StandingStartTankCollection.")) return "VP";
|
||||
else if (MethodClass.Contains("TestMethods.StandingStart.")) return "VP";
|
||||
else return string.Empty;
|
||||
}
|
||||
|
||||
@@ -224,11 +226,11 @@ namespace SharedDatabase.Entities
|
||||
}
|
||||
}
|
||||
|
||||
public virtual double ErrLimMargin() { return TestData.ErrLimMargin; }
|
||||
public virtual float TempLimLo() { return TestData.TempLimLo; }
|
||||
public virtual float TempLimHi() { return TestData.TempLimHi; }
|
||||
public virtual bool Evaluate() { return TestData.Evaluate; }
|
||||
public virtual Common.Publish Publish() { return (Common.Publish)TestData.Publish; }
|
||||
public virtual double ErrLimMargin() { return TestData.ErrLimMargin; }
|
||||
public virtual float TempLimLo() { return TestData.TempLimLo; }
|
||||
public virtual float TempLimHi() { return TestData.TempLimHi; }
|
||||
public virtual bool Evaluate() { return TestData.Evaluate; }
|
||||
public virtual Publish Publish() { return (Publish)TestData.Publish; }
|
||||
|
||||
|
||||
public TestRslt()
|
||||
@@ -276,8 +278,8 @@ namespace SharedDatabase.Entities
|
||||
DensityLine = src.DensityLine;
|
||||
DensityDiv = src.DensityDiv;
|
||||
MassOfEvapWater = src.MassOfEvapWater;
|
||||
FlowMass = src.FlowMass;
|
||||
FlowVolume = src.FlowVolume;
|
||||
SpareDbl = src.SpareDbl;
|
||||
Flow = src.Flow;
|
||||
VolumeCTV = src.VolumeCTV;
|
||||
VolumeMaster = src.VolumeMaster;
|
||||
ErrorMaster = src.ErrorMaster;
|
||||
@@ -414,7 +416,7 @@ namespace SharedDatabase.Entities
|
||||
return string.Format("TestRslt: Part={0} RepetitionNr={1} TestDone={2} Remark={3} StartTime={4} EndTime={5} FlowSetTime={6} TestTime={7} PulsesMaster={8} ConstMaster={9} MassStartRaw={10} MassStart={11} MassEndRaw={12} MassEnd={13} DensityIn={14} DensityOut={15} DensityDiv={16} MassOfEvapWaater={17} FlowMass={18} FlowVolume={19} VolumeCTV={20} VolumeMaster={21} ErrorMaster={22} DiverterStart={85} DiverterEnd={86} ErrorFlags={23} InfoFlags={24} AmbTempMean={25} AmbTempStart={26} AmbTempEnd={27} AmbTempMin={28} AmbTempMax={29} AmbPressMean={30} AmbPressStart={31} AmbPressEnd={32} AmbPressMin={33} AmbPressMax={34} AmbHumiMean={35} AmbHumiStart={36} AmbHumiEnd={37} AmbHumiMin={38} AmbHumiMax={39} PressUpMean={40} PressUpStart={41} PressUpEnd={42} PressUpMin={43} PressUpMax={44} PressDownMean={45} PressDownStart={46} PressDownEnd={47} PressDownMin={48} PressDownMax={49} PressDeltaMean={50} PressDeltaStart={51} PressDeltaEnd={52} PressDeltaMin={53} PressDeltaMax={54} TempUpMean={55} TempUpStart={56} TempUpEnd={57} TempUpMin={58} TempUpMax={59} TempDownMean={60} TempDownStart={61} TempDownEnd={62} TempDownMin={63} TempDownMax={64} TempDivMean={65} TempDivStart={66} TempDivEnd={67} TempDivMin={68} TempDivMax={69} FlowMean={70} FlowStart={71} FlowEnd={72} FlowMin={73} FlowMax={74} Custom1={75} Custom2={76} Custom3={77} Custom4={78} Custom5={79} Custom6={80} Custom7={81} Custom8={82} Custom9={83} Custom10={84}",
|
||||
Part, RepetitionNr, TestDone, Remark, StartTime, EndTime, FlowSetTime, TestTime,
|
||||
PulsesMaster, ConstMaster, MassStartRaw, MassStart, MassEndRaw, MassEnd,
|
||||
DensityIn, DensityLine, DensityDiv, MassOfEvapWater, FlowMass, FlowVolume,
|
||||
DensityIn, DensityLine, DensityDiv, MassOfEvapWater, SpareDbl, Flow,
|
||||
VolumeCTV, VolumeMaster, ErrorMaster, ErrorFlags, InfoFlags,
|
||||
AmbTempMean, AmbTempStart, AmbTempEnd, AmbTempMin, AmbTempMax,
|
||||
AmbPressMean, AmbPressStart, AmbPressEnd, AmbPressMin, AmbPressMax,
|
||||
@@ -483,8 +485,8 @@ namespace SharedDatabase.Entities
|
||||
writer.Write(DensityLine);
|
||||
writer.Write(DensityDiv);
|
||||
writer.Write(MassOfEvapWater);
|
||||
writer.Write(FlowMass);
|
||||
writer.Write(FlowVolume);
|
||||
writer.Write(SpareDbl);
|
||||
writer.Write(Flow);
|
||||
writer.Write(VolumeCTV);
|
||||
writer.Write(VolumeMaster);
|
||||
writer.Write(ErrorMaster);
|
||||
@@ -624,8 +626,8 @@ namespace SharedDatabase.Entities
|
||||
DensityLine = reader.ReadDouble();
|
||||
DensityDiv = reader.ReadDouble();
|
||||
MassOfEvapWater = reader.ReadDouble();
|
||||
FlowMass = reader.ReadDouble();
|
||||
FlowVolume = reader.ReadDouble();
|
||||
SpareDbl = reader.ReadDouble();
|
||||
Flow = reader.ReadDouble();
|
||||
VolumeCTV = reader.ReadDouble();
|
||||
VolumeMaster = reader.ReadDouble();
|
||||
ErrorMaster = reader.ReadDouble();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2016-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2016-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -30,7 +30,7 @@ namespace SharedDatabase.Entities
|
||||
|
||||
private bool powerUser; /// true for built-in users, power users have full access even with empty Groups list
|
||||
public virtual bool IsPowerUser() { return powerUser; }
|
||||
|
||||
|
||||
private string legalizator; /// Not mapped to a database !!!, 2nd user entered in a logging dialog
|
||||
public virtual void SetLegalizator(string value) { legalizator = value; }
|
||||
public virtual string GetLegalizator() { return legalizator; }
|
||||
@@ -160,14 +160,14 @@ namespace SharedDatabase.Entities
|
||||
/// <returns></ returns>
|
||||
public virtual bool IsPasswordExpired()
|
||||
{
|
||||
if (IsPowerUser() || IsMemberOf(GID.Administrators) || GlobalData.PasswdExpirationPeriodDays == 0)
|
||||
if (IsPowerUser() || IsMemberOf(GID.Administrators) || CurrentUser.PasswdExpirationPeriodDays == 0)
|
||||
{
|
||||
/// Password cannot expirate for this user or this feature is disabled in Backup and Security options
|
||||
return false;
|
||||
}
|
||||
|
||||
/// Password expiration time is 3 months
|
||||
return (DateTime.Now - LastPwChange > new TimeSpan(GlobalData.PasswdExpirationPeriodDays, 0, 0, 0));
|
||||
return (DateTime.Now - LastPwChange > new TimeSpan(CurrentUser.PasswdExpirationPeriodDays, 0, 0, 0));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -216,13 +216,13 @@ namespace SharedDatabase.Entities
|
||||
/// <param name="password">Password</param>
|
||||
/// <param name="requiredGrupMembership"></param>
|
||||
/// <returns>true = authorized</returns>
|
||||
public virtual bool Authorize(string userName, string password, GID[] requiredGroupMembership)
|
||||
public virtual bool Authorize(string userName, string password, GID[] requiredGroupMembership, System.Windows.Forms.Form currentForm )
|
||||
{
|
||||
if (Common.Utils.IsPowerUser(userName, password))
|
||||
{
|
||||
/// User is a power user => authorize
|
||||
GlobalData.CurrentUser = this;
|
||||
GlobalData.LastAuthorization = DateTime.Now;
|
||||
CurrentUser.Change(this, currentForm);
|
||||
CurrentUser.LastAuthorization = DateTime.Now;
|
||||
log.FatalFormat("Power user '{0}' authorized @level '{1}'", userName, requiredGroupMembership);
|
||||
return true;
|
||||
}
|
||||
@@ -233,7 +233,7 @@ namespace SharedDatabase.Entities
|
||||
return false;
|
||||
}
|
||||
|
||||
return CompleteAuthorization(password, requiredGroupMembership);
|
||||
return CompleteAuthorization(password, requiredGroupMembership, currentForm);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -247,7 +247,7 @@ namespace SharedDatabase.Entities
|
||||
/// <param name="password">Password</param>
|
||||
/// <param name="requiredGrupMembership"></param>
|
||||
/// <returns>true = authorized</returns>
|
||||
public virtual bool AuthorizeNumber(int number, string password, GID[] requiredGroupMembership)
|
||||
public virtual bool AuthorizeNumber(int number, string password, GID[] requiredGroupMembership, System.Windows.Forms.Form currentForm)
|
||||
{
|
||||
if (Number != number)
|
||||
{
|
||||
@@ -255,7 +255,7 @@ namespace SharedDatabase.Entities
|
||||
return false;
|
||||
}
|
||||
|
||||
return CompleteAuthorization(password, requiredGroupMembership);
|
||||
return CompleteAuthorization(password, requiredGroupMembership, currentForm);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -269,7 +269,7 @@ namespace SharedDatabase.Entities
|
||||
/// <param name="password"></param>
|
||||
/// <param name="requiredGrupMembership"></param>
|
||||
/// <returns>true = authorized</returns>
|
||||
public virtual bool AuthorizeFullName(string fullName, string password, GID[] requiredGroupMembership)
|
||||
public virtual bool AuthorizeFullName(string fullName, string password, GID[] requiredGroupMembership, System.Windows.Forms.Form currentForm)
|
||||
{
|
||||
if (FullName.ToLower() != fullName.ToLower())
|
||||
{
|
||||
@@ -277,7 +277,7 @@ namespace SharedDatabase.Entities
|
||||
return false;
|
||||
}
|
||||
|
||||
return CompleteAuthorization(password, requiredGroupMembership);
|
||||
return CompleteAuthorization(password, requiredGroupMembership, currentForm);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -286,7 +286,7 @@ namespace SharedDatabase.Entities
|
||||
/// <param name="password">Password</param>
|
||||
/// <param name="requiredGroupMembership">Required group membership</param>
|
||||
/// <returns>true = authorized</returns>
|
||||
bool CompleteAuthorization(string password, GID[] requiredGroupMembership)
|
||||
bool CompleteAuthorization(string password, GID[] requiredGroupMembership, System.Windows.Forms.Form currentForm)
|
||||
{
|
||||
if (!IsMemberOf(requiredGroupMembership) || !IsCorrectPassword(password))
|
||||
{
|
||||
@@ -305,8 +305,8 @@ namespace SharedDatabase.Entities
|
||||
}
|
||||
|
||||
/// All OK => complete authorization
|
||||
GlobalData.CurrentUser = this;
|
||||
GlobalData.LastAuthorization = DateTime.Now;
|
||||
CurrentUser.Change(this, currentForm);
|
||||
CurrentUser.LastAuthorization = DateTime.Now;
|
||||
log.FatalFormat("User '{0}' authorized @level '{1}'", UserName, requiredGroupMembership);
|
||||
return true;
|
||||
}
|
||||
@@ -321,7 +321,7 @@ namespace SharedDatabase.Entities
|
||||
/// <param name="tag">Tag (RFID, NFC, ... s/n)</param>
|
||||
/// <param name="requiredGrupMembership"></param>
|
||||
/// <returns>true = authorized</returns>
|
||||
public virtual bool AuthorizeTag(string tag, GID[] requiredGroupMembership)
|
||||
public virtual bool AuthorizeTag(string tag, GID[] requiredGroupMembership, System.Windows.Forms.Form currentForm)
|
||||
{
|
||||
if (Tag != tag)
|
||||
{
|
||||
@@ -332,8 +332,8 @@ namespace SharedDatabase.Entities
|
||||
if (IsMemberOf(requiredGroupMembership))
|
||||
{
|
||||
/// Group membersip is OK _and_ password is OK => authorize
|
||||
GlobalData.CurrentUser = this;
|
||||
GlobalData.LastAuthorization = DateTime.Now;
|
||||
CurrentUser.Change(this, currentForm);
|
||||
CurrentUser.LastAuthorization = DateTime.Now;
|
||||
log.FatalFormat("User with Tag={0} authorized @level '{1}'", tag, requiredGroupMembership);
|
||||
return true;
|
||||
}
|
||||
@@ -349,12 +349,13 @@ namespace SharedDatabase.Entities
|
||||
/// </summary>
|
||||
/// <param name="username">User name for the query</param>
|
||||
/// <returns>reference to a 'User' (if it exists) or null</returns>
|
||||
public static User AuthorizeDummyUser(string username)
|
||||
public static User AuthorizeDummyUser(string username, System.Windows.Forms.Form currentForm)
|
||||
{
|
||||
User user = new User();
|
||||
user.UserName = username;
|
||||
GlobalData.CurrentUser = user;
|
||||
return user;
|
||||
CurrentUser.Change(user, currentForm);
|
||||
CurrentUser.LastAuthorization = DateTime.Now;
|
||||
return user;
|
||||
}
|
||||
|
||||
|
||||
@@ -490,15 +491,20 @@ namespace SharedDatabase.Entities
|
||||
/// <summary>
|
||||
/// Unauthorize, abandon current users authorization.
|
||||
/// </summary>
|
||||
public static void Unauthorize()
|
||||
public static void Unauthorize(System.Windows.Forms.Form currentForm)
|
||||
{
|
||||
GlobalData.CurrentUser = null;
|
||||
GlobalData.LastAuthorization = DateTime.Now;
|
||||
CurrentUser.Restore(currentForm);
|
||||
CurrentUser.LastAuthorization = DateTime.Now;
|
||||
}
|
||||
|
||||
public virtual string ToEncodedStr()
|
||||
{
|
||||
return string.Format("{0}~{1}~{2}", UserName, FullName, legalizator);
|
||||
}
|
||||
|
||||
public virtual string ToEncodedStr(string _legalizator)
|
||||
{
|
||||
return string.Format("{0}~{1}~{2}", UserName, FullName, _legalizator);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -43,8 +43,9 @@ namespace SharedDatabase.Entities
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual string SerialNr { get; set; } /// S/N _or_ S/N of the main meter of a compound meter _or_ PCB Number of an iPerl water meter
|
||||
public virtual string SerialNrAux { get; set; } /// S/N of the aux. meter of a compound meter _or_ a complete assigned S/N of an iPerl water meter
|
||||
public virtual string PurchaseOrder { get; set; }
|
||||
public virtual string SerialNrAux { get; set; } /// S/N of the aux. meter of a compound meter _or_ eRegister PCB Number of a 640 water meter
|
||||
public virtual string RadioAddress { get; set; }
|
||||
public virtual string PurchaseOrder { get; set; }
|
||||
public virtual int YearOfProduction { get; set; }
|
||||
public virtual int WMPosition { get; set; } /// 1-based water meter position
|
||||
public virtual string EndState { get; set; } /// End state (of the main water meter)
|
||||
@@ -76,7 +77,6 @@ namespace SharedDatabase.Entities
|
||||
/// <summary>
|
||||
/// Data from a production test bench (in case of tests on iPerl special)
|
||||
/// </summary>
|
||||
public virtual string RadioAddress { get; set; }
|
||||
public virtual int PaletteNr { get; set; }
|
||||
public virtual int UmkartonNr { get; set; }
|
||||
public virtual string ProdTestBench { get; set; }
|
||||
@@ -96,8 +96,9 @@ namespace SharedDatabase.Entities
|
||||
public virtual string Prefix { get; set; }
|
||||
public virtual string Suffix { get; set; }
|
||||
public virtual string CompleteSerialNr { get; set; }
|
||||
public virtual string OriRadioAddress { get; set; } /// Not mapped to DB !!! Original radio address of a 640 water meter (albatrosID)
|
||||
public virtual int WMTypeRevision { get; set; }
|
||||
public virtual int Pruefindex { get; set; } /// >= 1 ... pruefindex
|
||||
public virtual int Pruefindex { get; set; } /// >=1 ... pruefindex, 0 ... unknown (no reading from DB yet)
|
||||
public virtual int HydrPruefung { get; set; }
|
||||
public virtual object RawTestInfos { get; set; } /// IList<SensusTestInfo> fetched from Oracle at the beginning of the cycle, not mapped to DB !!!
|
||||
public virtual object CompleteTestInfos { get; set; } /// SensusTestInfo[] obtained as a best match at the beginning of the cycle, not mapped to DB !!!
|
||||
@@ -108,7 +109,6 @@ namespace SharedDatabase.Entities
|
||||
public virtual string Workflow { get; set; } /// Not mapped to DB !!! Production tracing workflow name
|
||||
public virtual bool LastRecordIsNok { get; set; } /// Not mapped to DB !!! Previous record verification result
|
||||
|
||||
|
||||
public virtual WaterMeterData WaterMeterData { get; set; }
|
||||
public virtual Batch Batch { get; set; }
|
||||
public virtual IList<MeterTestRslt> MeterTestRslts { get; set; }
|
||||
@@ -116,15 +116,23 @@ namespace SharedDatabase.Entities
|
||||
///
|
||||
/// Wrappers
|
||||
///
|
||||
public virtual string ProductName() { return WaterMeterData.ProductName; }
|
||||
public virtual string GetEndStateAux() { return Compound() ? EndStateAux : string.Empty; }
|
||||
public virtual void SetEndStateAux(string s) { if (Compound()) EndStateAux = s; }
|
||||
|
||||
public virtual string GetStartState() { return Compound() ? string.Empty : EndStateAux; }
|
||||
public virtual void SetStartState(string s) { if (!Compound()) EndStateAux = s; }
|
||||
|
||||
public virtual string ProductName() { return WaterMeterData.ProductName; }
|
||||
public virtual string Producer() { return WaterMeterData.Producer; }
|
||||
public virtual string MetrologicalClass() { return WaterMeterData.MetrologicalClass; }
|
||||
public virtual string ApprovalInfo() { return WaterMeterData.ApprovalInfo; }
|
||||
public virtual bool NewQnames() { return WaterMeterData.NewQnames; }
|
||||
public virtual FlowNames Qnames() { return (FlowNames)WaterMeterData.Qnames; }
|
||||
public virtual double Q4_Qmax() { return WaterMeterData.Q4_Qmax; }
|
||||
public virtual double Q3_Qn() { return WaterMeterData.Q3_Qn; }
|
||||
public virtual double Q2_Qt() { return WaterMeterData.Q2_Qt; }
|
||||
public virtual double Q1_Qmin() { return WaterMeterData.Q1_Qmin; }
|
||||
public virtual double ErrLimHiQ() { return WaterMeterData.ErrLimHiQ; }
|
||||
public virtual double ErrLimLoQ() { return WaterMeterData.ErrLimLoQ; }
|
||||
|
||||
public virtual bool Compound() { return WaterMeterData.Compound; }
|
||||
public virtual bool HeatMeter() { return WaterMeterData.HeatMeter; }
|
||||
@@ -432,25 +440,29 @@ namespace SharedDatabase.Entities
|
||||
Suffix = string.Empty;
|
||||
CompleteSerialNr = string.Empty;
|
||||
WMTypeRevision = 0;
|
||||
Pruefindex = 1;
|
||||
Pruefindex = 0;
|
||||
HydrPruefung = 0;
|
||||
RawTestInfos = null;
|
||||
CompleteTestInfos = null;
|
||||
|
||||
Workflow = string.Empty;
|
||||
ErrorFlags = 0;
|
||||
InfoFlags = 0;
|
||||
LastRecordIsNok = false;
|
||||
|
||||
/// Initialize strings
|
||||
SerialNr = string.Empty;
|
||||
SerialNrAux = string.Empty;
|
||||
RadioAddress = string.Empty;
|
||||
PurchaseOrder = string.Empty;
|
||||
EndState = string.Empty;
|
||||
EndStateAux = string.Empty;
|
||||
ArchivePath = string.Empty;
|
||||
Remark = string.Empty;
|
||||
#if IPERL
|
||||
FWVersion = string.Empty;
|
||||
#endif
|
||||
#if TURA_SPECIAL
|
||||
RadioAddress = string.Empty;
|
||||
ProdUserName = string.Empty;
|
||||
ProdPurchaseOrder = string.Empty;
|
||||
#endif
|
||||
@@ -466,6 +478,7 @@ namespace SharedDatabase.Entities
|
||||
|
||||
SerialNr = src.SerialNr;
|
||||
SerialNrAux = src.SerialNrAux;
|
||||
RadioAddress = src.RadioAddress;
|
||||
PurchaseOrder = src.PurchaseOrder;
|
||||
YearOfProduction = src.YearOfProduction;
|
||||
WMPosition = src.WMPosition;
|
||||
@@ -494,22 +507,22 @@ namespace SharedDatabase.Entities
|
||||
FWVersion = src.FWVersion;
|
||||
#endif
|
||||
#if TURA_SPECIAL
|
||||
RadioAddress = src.RadioAddress;
|
||||
PaletteNr = src.PaletteNr;
|
||||
UmkartonNr = src.UmkartonNr;
|
||||
ProdTestBench = src.ProdTestBench;
|
||||
ProdWMPosition = src.ProdWMPosition;
|
||||
ProdUserName = src.ProdUserName;
|
||||
ProdPurchaseOrder = src.ProdPurchaseOrder;
|
||||
ProdPassed = src.ProdPassed;
|
||||
ProdResultCode = src.ProdResultCode;
|
||||
ProdQ2CorrRL = src.ProdQ2CorrRL;
|
||||
ProdQ2CorrLR = src.ProdQ2CorrLR;
|
||||
PaletteNr = src.PaletteNr;
|
||||
UmkartonNr = src.UmkartonNr;
|
||||
ProdTestBench = src.ProdTestBench;
|
||||
ProdWMPosition = src.ProdWMPosition;
|
||||
ProdUserName = src.ProdUserName;
|
||||
ProdPurchaseOrder = src.ProdPurchaseOrder;
|
||||
ProdPassed = src.ProdPassed;
|
||||
ProdResultCode = src.ProdResultCode;
|
||||
ProdQ2CorrRL = src.ProdQ2CorrRL;
|
||||
ProdQ2CorrLR = src.ProdQ2CorrLR;
|
||||
#endif
|
||||
AssignedSerialNr = src.AssignedSerialNr;
|
||||
Prefix = src.Prefix;
|
||||
Suffix = src.Suffix;
|
||||
CompleteSerialNr = src.CompleteSerialNr;
|
||||
OriRadioAddress = src.OriRadioAddress;
|
||||
WMTypeRevision = src.WMTypeRevision;
|
||||
Pruefindex = src.Pruefindex;
|
||||
HydrPruefung = src.HydrPruefung;
|
||||
@@ -645,6 +658,7 @@ namespace SharedDatabase.Entities
|
||||
writer.Write(Id);
|
||||
writer.Write((SerialNr != null) ? SerialNr : string.Empty);
|
||||
writer.Write((SerialNrAux != null) ? SerialNrAux : string.Empty);
|
||||
writer.Write((RadioAddress != null) ? RadioAddress : string.Empty);
|
||||
writer.Write((PurchaseOrder != null) ? PurchaseOrder : string.Empty);
|
||||
writer.Write(YearOfProduction);
|
||||
writer.Write(WMPosition);
|
||||
@@ -673,7 +687,6 @@ namespace SharedDatabase.Entities
|
||||
writer.Write((FWVersion != null) ? FWVersion : string.Empty);
|
||||
#endif
|
||||
#if TURA_SPECIAL
|
||||
writer.Write((RadioAddress != null) ? RadioAddress : string.Empty);
|
||||
writer.Write(PaletteNr);
|
||||
writer.Write(UmkartonNr);
|
||||
writer.Write((ProdTestBench != null) ? ProdTestBench : string.Empty);
|
||||
@@ -689,6 +702,7 @@ namespace SharedDatabase.Entities
|
||||
writer.Write((Prefix != null) ? Prefix : string.Empty);
|
||||
writer.Write((Suffix != null) ? Suffix : string.Empty);
|
||||
writer.Write((CompleteSerialNr != null) ? CompleteSerialNr : string.Empty);
|
||||
writer.Write((OriRadioAddress != null) ? OriRadioAddress : string.Empty);
|
||||
writer.Write(WMTypeRevision);
|
||||
writer.Write(Pruefindex);
|
||||
writer.Write(HydrPruefung);
|
||||
@@ -738,6 +752,7 @@ namespace SharedDatabase.Entities
|
||||
Id = reader.ReadInt32();
|
||||
SerialNr = reader.ReadString();
|
||||
SerialNrAux = reader.ReadString();
|
||||
RadioAddress = reader.ReadString();
|
||||
PurchaseOrder = reader.ReadString();
|
||||
YearOfProduction = reader.ReadInt32();
|
||||
WMPosition = reader.ReadInt32();
|
||||
@@ -766,7 +781,6 @@ namespace SharedDatabase.Entities
|
||||
FWVersion = reader.ReadString();
|
||||
#endif
|
||||
#if TURA_SPECIAL
|
||||
RadioAddress = reader.ReadString();
|
||||
PaletteNr = reader.ReadInt32();
|
||||
UmkartonNr = reader.ReadInt32();
|
||||
ProdTestBench = reader.ReadString();
|
||||
@@ -782,6 +796,7 @@ namespace SharedDatabase.Entities
|
||||
Prefix = reader.ReadString();
|
||||
Suffix = reader.ReadString();
|
||||
CompleteSerialNr = reader.ReadString();
|
||||
OriRadioAddress = reader.ReadString();
|
||||
WMTypeRevision = reader.ReadInt32();
|
||||
Pruefindex = reader.ReadInt32();
|
||||
HydrPruefung = reader.ReadInt32();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user