fix MP TAB x gestione update parametri...

This commit is contained in:
Samuele E. Locatelli
2019-11-10 19:09:43 +01:00
parent da4f55ddd6
commit 4b5e04bdd3
3 changed files with 114 additions and 83 deletions
Vendored
+1 -1
View File
@@ -18,7 +18,7 @@ pipeline {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=1254']) {
withEnv(['NEXT_BUILD_NUMBER=1255']) {
// env.versionNumber = VersionNumber(versionNumberString : '6.8.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '6.8.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'MAPO'
+60 -52
View File
@@ -3,81 +3,89 @@
<div class="row my-2 small">
<div class="col-12 text-center">
<div class="card">
<div class="card-header bg-secondary text-warning">
<div class="row">
<div class="col-8 col-md-10">
<h4>GESTIONE PARAMETRI MACCHINA</h4>
<div class="card-header bg-secondary text-warning px-2 py-1">
<div class="d-flex">
<div class="mr-auto p-2">
<h4>GESTIONE PARAMETRI MACCHINA</h4>
</div>
<div class="col-4 col-md-2">
<div class="p-2">
<asp:LinkButton runat="server" ID="lbtReload" CssClass="btn btn-sm btn-primary" OnClick="lbtReload_Click"><i class="fa fa-refresh" aria-hidden="true"></i></asp:LinkButton>
</div>
</div>
</div>
<div class="card-body text-dark">
<i>Elenco parametri di configurazione ammessi per l'impianto</i>
<asp:GridView ID="grView" runat="server" DataSourceID="ods" AutoGenerateColumns="False" CssClass="table table-sm table-striped" DataKeyNames="name">
<EmptyDataTemplate>Nessun parametro configurabile</EmptyDataTemplate>
<asp:GridView ID="grView" runat="server" DataSourceID="ods" AutoGenerateColumns="False" CssClass="table table-sm table-striped" DataKeyNames="uid" OnRowUpdating="grView_RowUpdating" OnRowEditing="grView_RowEditing">
<EmptyDataTemplate>Nessun parametro disponibile</EmptyDataTemplate>
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="lbtEdit" runat="server" CausesValidation="False" CommandName="Edit" CssClass="btn btn-sm btn-info"><i class="fa fa-pencil" aria-hidden="true"></i></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="lbtSave" runat="server" CausesValidation="False" CommandName="Update" CssClass="btn btn-sm btn-success"><i class="fa fa-check" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton ID="lbtCancel" runat="server" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-sm btn-danger"><i class="fa fa-ban" aria-hidden="true"></i></asp:LinkButton>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="name" SortExpression="name">
<asp:TemplateField HeaderText="Parametro" SortExpression="name">
<ItemTemplate>
<div class="row">
<div class="col text-left">
<div class="font-weight-bold">
<asp:Label ID="lblName" runat="server" Text='<%# Eval("uid") %>' /></div>
<asp:Label ID="lblDescr" runat="server" Text='<%# Eval("name") %>' />
<div class="font-weight-bold text-uppercase">
<asp:Label ID="lblDescr" runat="server" Text='<%# Eval("name") %>' />
</div>
</div>
</div>
</ItemTemplate>
</asp:TemplateField>
<%--<asp:BoundField DataField="description" HeaderText="description" SortExpression="description" />--%>
<%--<asp:BoundField DataField="tipoMem" HeaderText="tipoMem" SortExpression="tipoMem" />
<asp:BoundField DataField="index" HeaderText="index" SortExpression="index" />
<asp:BoundField DataField="memAddr" HeaderText="memAddr" SortExpression="memAddr" />
<asp:BoundField DataField="size" HeaderText="size" SortExpression="size" />
<asp:BoundField DataField="factor" HeaderText="factor" SortExpression="factor" />--%>
<%--<asp:BoundField DataField="minVal" HeaderText="minVal" SortExpression="minVal" />
<asp:BoundField DataField="maxVal" HeaderText="maxVal" SortExpression="maxVal" />--%>
<asp:TemplateField HeaderText="Richiesta" SortExpression="newValue">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("reqValue") %>' />
</EditItemTemplate>
<asp:TemplateField HeaderText="Valore" SortExpression="value">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("reqValue") %>' />
<div class="row" runat="server" id="divRequest" visible='<%# !string.IsNullOrEmpty(Eval("reqValue").ToString()) %>'>
<div class="col-12">
<div class="font-weight-bold text-primary">
<i class="fa fa-hand-o-right" aria-hidden="true"></i>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("reqValue") %>' />&nbsp;
</div>
<div class="font-weight-light font-italic small my-0">
<asp:Label ID="Label3" runat="server" Text='<%# Eval("lastRequest","{0:yyyy-MM-dd HH:mm:ss}") %>' />
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="font-weight-bold">
<asp:Label ID="lblValue" runat="server" Text='<%# Eval("value") %>' />&nbsp;
</div>
<div class="font-weight-light font-italic small my-0">
<asp:Label ID="lblLastRead" runat="server" Text='<%# Eval("lastRead","{0:yyyy-MM-dd HH:mm:ss}") %>' />
</div>
</div>
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Attuale" SortExpression="value">
<EditItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("value") %>' />
<asp:TextBox ID="txtReqValue" runat="server" Text='<%# Bind("reqValue") %>' CssClass="form form-control form-control-sm" />
<div class="row">
<div class="col-12">
<div class="font-weight-bold">
<asp:Label ID="lblValue" runat="server" Text='<%# Eval("value") %>' />&nbsp;
</div>
<div class="font-weight-light font-italic small my-0">
<asp:Label ID="lblLastRead" runat="server" Text='<%# Eval("lastRead","{0:yyyy-MM-dd HH:mm:ss}") %>' />
</div>
</div>
</div>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("value") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="lbtEdit" runat="server" CausesValidation="False" CommandName="Edit" CssClass="btn btn-sm btn-info" Visible='<%# Eval("writable") %>'><i class="fa fa-pencil" aria-hidden="true"></i></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="lbtSave" runat="server" CausesValidation="False" CommandName="Update" CssClass="btn btn-sm btn-success"><i class="fa fa-check" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton ID="lbtCancel" runat="server" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-sm btn-danger"><i class="fa fa-ban" aria-hidden="true"></i></asp:LinkButton>
</EditItemTemplate>
</asp:TemplateField>
<%--<asp:CommandField ShowEditButton="true" />--%>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ods" runat="server" TypeName="MoonProTablet.WebUserControls.mod_sendParameters" SelectMethod="GetParameters" OldValuesParameterFormatString="original_{0}"></asp:ObjectDataSource>
<asp:ObjectDataSource ID="ods" runat="server" TypeName="MoonProTablet.WebUserControls.mod_sendParameters" SelectMethod="GetParameters" OldValuesParameterFormatString="Original_{0}" UpdateMethod="updateParameter">
<UpdateParameters>
<asp:Parameter Name="Original_uid" Type="String" />
<asp:Parameter Name="reqValue" Type="String" />
</UpdateParameters>
</asp:ObjectDataSource>
</div>
<%--<div class="col">
<label for="ddlParameters">Parametro</label>
<asp:DropDownList runat="server" ID="ddlParameters" CssClass="form form-control form-comtrol-sm"></asp:DropDownList>
</div>
<div class="col">
<label for="txtValore">Valore</label>
<asp:TextBox runat="server" ID="txtValore" CssClass="form form-control form-control-sm" />
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbtSendParam" CssClass="btn btn-block btn-sm btn-success">SEND PARAMETER</asp:LinkButton>
</div>--%>
<%--<div class="card-footer"></div>--%>
</div>
</div>
@@ -31,44 +31,67 @@ namespace MoonProTablet.WebUserControls
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// wrapper recupero parametri macchina
/// </summary>
/// <returns></returns>
public List<objItem> GetParameters()
{
bool fatto = false;
//!!!FIXME !!!FARE recuperare VERI DATI da memoria REDIS dell'IOB...
List<objItem> dcList = new List<objItem>();
try
{
dcList = DataLayer.getCurrObjItems(idxMacchina);
fatto = true;
}
catch
{
}
if (!fatto || dcList.Count == 0)
{
plcMemMap memoria = new plcMemMap();
DateTime adesso;
for (int i = 0; i < 10; i++)
{
adesso = DateTime.Now;
objItem currItem = new objItem()
{
uid=$"{adesso.Second}.{adesso.Millisecond + i:000}",
name = $"Par_{i}",
value = $"{i * 100}",
lastRead=adesso.AddSeconds(-3),
lastMessage="",
writable= adesso.Millisecond % 2 ==0
};
dcList.Add(currItem);
}
}
List<objItem> dcList = DataLayer.getCurrObjItems(idxMacchina);
return dcList;
}
public void updateParameter(string Original_uid, string reqValue)
{
// recupero items...
List<objItem> dcList = DataLayer.getCurrObjItems(idxMacchina);
// cerco quello da aggiornare
objItem trovato = dcList.Find(obj => obj.uid == Original_uid);
List<objItem> list2Update = new List<objItem>();
// se trovato procedo
if (trovato != null)
{
// aggiorno valore richiesto + dt richiesta
trovato.reqValue = reqValue;
trovato.lastRequest = DateTime.Now;
list2Update.Add(trovato);
DataLayer.upsertCurrObjItems(idxMacchina, list2Update);
// accodo in task 2 exe la richiesta di processing
DataLayer.addTask4Machine(idxMacchina, taskType.setParameter, trovato.uid);
}
}
protected void lbtReload_Click(object sender, EventArgs e)
{
grView.DataBind();
}
protected void grView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
#if false
var txtReqVal = grView.Rows[e.RowIndex].FindControl("txtReqValue") as TextBox;
string Original_uid = e.Keys[0].ToString();
// recupero items...
List<objItem> dcList = DataLayer.getCurrObjItems(idxMacchina);
// cerco quello da aggiornare
objItem trovato = dcList.Find(obj => obj.uid == Original_uid);
List<objItem> list2Update = new List<objItem>();
// se trovato procedo
if (trovato != null)
{
// aggiorno valore richiesto + dt richiesta
trovato.reqValue = txtReqVal.Text.Trim();
trovato.lastRequest = DateTime.Now;
list2Update.Add(trovato);
DataLayer.upsertCurrObjItems(idxMacchina, list2Update);
// accodo in task 2 exe la richiesta di processing
DataLayer.addTask4Machine(idxMacchina, taskType.setParameter, trovato.uid);
}
#endif
}
protected void grView_RowEditing(object sender, GridViewEditEventArgs e)
{
}
}
}