Review display pezzi/ora

This commit is contained in:
Samuele Locatelli
2021-10-06 13:29:47 +02:00
parent 32c5e0fd6c
commit 9aa4f0c60c
4 changed files with 117 additions and 34 deletions
+7 -1
View File
@@ -72,6 +72,7 @@ namespace NKC_WF.Controllers
foreach (var item in tabDati.OrderBy(x => x.DataOraRif))
{
decimal value = 0;
decimal denom = 1;
switch (PlotType)
{
case "AvailTime":
@@ -90,9 +91,14 @@ namespace NKC_WF.Controllers
value = item.MinRun;
break;
case "AvgPartsHour":
denom = item.MinRun != 0 ? item.MinRun : 1;
value = item.ItmProd / denom * 100;
break;
default:
case "OEE":
decimal denom = item.MinDisp != 0 ? item.MinDisp : 1;
denom = item.MinDisp != 0 ? item.MinDisp : 1;
value = item.MinRun / denom * 100;
break;
}
+80 -29
View File
@@ -9,33 +9,71 @@
</div>
</div>
<div class="row">
<div class="col-4">
<div class="col-3">
<b class="text-uppercase"><%: traduci("DayProdStats") %></b>
</div>
<div class="col-8 text-right small">
<%: traduci("PlotGraph") %>
<asp:CheckBox runat="server" ID="chkPlotGraph" AutoPostBack="true" OnCheckedChanged="chkPlotGraph_CheckedChanged" />
<asp:DropDownList runat="server" ID="ddlType" AutoPostBack="true" OnSelectedIndexChanged="ddlType_SelectedIndexChanged">
<asp:ListItem Text="OEE" Value="OEE"></asp:ListItem>
<asp:ListItem Text="Run Time" Value="RunTime"></asp:ListItem>
<asp:ListItem Text="Available Time" Value="AvailTime"></asp:ListItem>
<asp:ListItem Text="# Parts Produced" Value="NumPartsProd"></asp:ListItem>
<asp:ListItem Text="# Part Scrapped" Value="NumPartsScrap"></asp:ListItem>
</asp:DropDownList>
&nbsp;|&nbsp;
<%: traduci("Machine") %>
<asp:DropDownList runat="server" ID="ddlMachine" AutoPostBack="true" OnSelectedIndexChanged="ddlMachine_SelectedIndexChanged">
<asp:ListItem Text="--- ALL ---" Value="*" />
<asp:ListItem Text="NE01" Value="NE01" />
<asp:ListItem Text="NE02" Value="NE02" />
</asp:DropDownList>
&nbsp;|&nbsp;
<%: traduci("DateStart") %>:
<asp:TextBox runat="server" ID="txtDateStart" AutoPostBack="true" TextMode="Date" OnTextChanged="txtDateStart_TextChanged" />&nbsp;
<%: traduci("DateEnd") %>:
<asp:TextBox runat="server" ID="txtDateEnd" AutoPostBack="true" TextMode="Date" OnTextChanged="txtDateEnd_TextChanged" />
&nbsp;|&nbsp;
<div class="col-9 text-right small">
<div class="form-row">
<div class="col">
<div class="input-group input-group-sm" runat="server" id="divType">
<div class="input-group-prepend">
<span class="input-group-text small"><%: traduci("PlotType") %></span>
</div>
<asp:DropDownList runat="server" ID="ddlType" AutoPostBack="true" OnSelectedIndexChanged="ddlType_SelectedIndexChanged" CssClass="form-control form-control-sm">
<asp:ListItem Text="OEE" Value="OEE"></asp:ListItem>
<asp:ListItem Text="Avg Parts/Hour" Value="AvgPartsHour"></asp:ListItem>
<asp:ListItem Text="Run Time (h)" Value="RunTime"></asp:ListItem>
<asp:ListItem Text="Available Time (h)" Value="AvailTime"></asp:ListItem>
<asp:ListItem Text="# Parts Produced" Value="NumPartsProd"></asp:ListItem>
<asp:ListItem Text="# Part Scrapped" Value="NumPartsScrap"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="col">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text small"><%: traduci("PlotGraph") %></span>
</div>
<asp:CheckBox runat="server" ID="chkPlotGraph" AutoPostBack="true" OnCheckedChanged="chkPlotGraph_CheckedChanged" CssClass="form-control form-control-sm" />
</div>
</div>
<div class="col">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text small"><%: traduci("Machine") %></span>
</div>
<asp:DropDownList runat="server" ID="ddlMachine" AutoPostBack="true" OnSelectedIndexChanged="ddlMachine_SelectedIndexChanged" CssClass="form-control form-control-sm">
<asp:ListItem Text="--- ALL ---" Value="*" />
<asp:ListItem Text="NE01" Value="NE01" />
<asp:ListItem Text="NE02" Value="NE02" />
</asp:DropDownList>
</div>
</div>
<div class="col">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text small"><%: traduci("DtStart") %></span>
</div>
<asp:TextBox runat="server" ID="txtDateStart" AutoPostBack="true" TextMode="Date" OnTextChanged="txtDateStart_TextChanged" CssClass="form-control form-control-sm" />
</div>
</div>
<div class="col">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text small"><%: traduci("DtEnd") %></span>
</div>
<asp:TextBox runat="server" ID="txtDateEnd" AutoPostBack="true" TextMode="Date" OnTextChanged="txtDateEnd_TextChanged" CssClass="form-control form-control-sm" />
</div>
</div>
<div class="col-1">
<%--<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text small">#</span>
</div>
</div>--%>
<uc1:cmp_numRow runat="server" ID="cmp_numRow" numRow="10" />
</div>
</div>
</div>
</div>
<div class="row">
@@ -51,15 +89,28 @@
<Columns>
<asp:BoundField DataField="DataRif" HeaderText="Date-Time" SortExpression="DataRif" />
<asp:BoundField DataField="PlaceCod" HeaderText="Machine" SortExpression="PlaceCod" />
<asp:BoundField DataField="ItmProd" HeaderText="# Parts Produced" SortExpression="ItmProd" />
<asp:BoundField DataField="ItmScrap" HeaderText="# Parts Scrapped" SortExpression="ItmScrap" />
<asp:BoundField DataField="MinDisp" HeaderText="Available Time" SortExpression="MinDisp" />
<asp:BoundField DataField="MinRun" HeaderText="Run Time" SortExpression="MinRun" />
<asp:TemplateField HeaderText="OEE %" SortExpression="MinRun">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# ratioFix(Eval("MinRun"), Eval("MinDisp")) %>'></asp:Label>
<asp:Label ID="lblOee" runat="server" Text='<%# ratioFix(Eval("MinRun"), Eval("MinDisp")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Avg Part/Hour" SortExpression="ItmProd">
<ItemTemplate>
<asp:Label ID="lblAvgPartHour" runat="server" Text='<%# $"{ratioCalc(Eval("ItmProd"), Eval("MinRun"))*60:N2}" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Run Time (h)" SortExpression="MinRun">
<ItemTemplate>
<asp:Label ID="lblHourRun" runat="server" Text='<%# $"{ratioCalc(Eval("MinRun"), 60):N2}" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Available Time (h)" SortExpression="MinDisp">
<ItemTemplate>
<asp:Label ID="lblHourDisp" runat="server" Text='<%# $"{ratioCalc(Eval("MinDisp"), 60):N2}" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ItmProd" HeaderText="# Parts Produced" SortExpression="ItmProd" />
<asp:BoundField DataField="ItmScrap" HeaderText="# Parts Scrapped" SortExpression="ItmScrap" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ods" runat="server" SelectMethod="getFilt" TypeName="AppData.DS_AppTableAdapters.ProductionStatsDayTableAdapter">
@@ -102,7 +102,7 @@ namespace NKC_WF.WebUserControls
cmp_numRow.numRow = 10;
grView.PageSize = cmp_numRow.numRow;
divGraph.Visible = false;
ddlType.Visible = false;
divType.Visible = false;
DateEnd = DateTime.Today.AddDays(1);
DateStart = DateEnd.AddDays(-10);
}
@@ -131,7 +131,7 @@ namespace NKC_WF.WebUserControls
public void doUpdate()
{
divGraph.Visible = chkPlotGraph.Checked;
ddlType.Visible = chkPlotGraph.Checked;
divType.Visible = chkPlotGraph.Checked;
if (chkPlotGraph.Checked)
{
updateGraph();
@@ -139,6 +139,23 @@ namespace NKC_WF.WebUserControls
grView.DataBind();
}
public double ratioCalc(object _num, object _den)
{
double answ = 0;
double num = 0;
double den = 1;
double.TryParse($"{_num}", out num);
double.TryParse($"{_den}", out den);
den = den != 0 ? den : 1;
try
{
answ = (num / den);
}
catch
{ }
return answ;
}
public string ratioFix(object _num, object _den)
{
string answ = "";
+11 -2
View File
@@ -33,13 +33,13 @@ namespace NKC_WF.WebUserControls
protected global::NKC_WF.WebUserControls.cmp_DailyStatsPlot cmp_DailyStatsPlot;
/// <summary>
/// chkPlotGraph control.
/// divType control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkPlotGraph;
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divType;
/// <summary>
/// ddlType control.
@@ -50,6 +50,15 @@ namespace NKC_WF.WebUserControls
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlType;
/// <summary>
/// chkPlotGraph control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkPlotGraph;
/// <summary>
/// ddlMachine control.
/// </summary>