diff --git a/XPST/WebUserControls/mod_barcode.ascx b/XPST/WebUserControls/mod_barcode.ascx index 843dffa..59c5459 100644 --- a/XPST/WebUserControls/mod_barcode.ascx +++ b/XPST/WebUserControls/mod_barcode.ascx @@ -1,15 +1,26 @@ <%@ Control Language="C#" AutoEventWireup="true" Inherits="XPST.WebUserControls.mod_barcode" CodeBehind="mod_barcode.ascx.cs" %> +
- +
- cerca + cerca
-
diff --git a/XPST/barcode.aspx b/XPST/barcode.aspx index 0bf98ae..9c96265 100644 --- a/XPST/barcode.aspx +++ b/XPST/barcode.aspx @@ -19,5 +19,8 @@
+
+ <%: string.Format("Caricati {0} Comandi | {1} Record BCode | DB ReLoadTime {2:N3}sec ", nComandi, nBCodeRec, lastUpdDuration.TotalSeconds) %> +
diff --git a/XPST/barcode.aspx.cs b/XPST/barcode.aspx.cs index 3f6b745..1ecfd0a 100644 --- a/XPST/barcode.aspx.cs +++ b/XPST/barcode.aspx.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; @@ -8,337 +9,385 @@ using XPS_data; public partial class barcode : System.Web.UI.Page { - protected void Page_Load(object sender, EventArgs e) + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) { - if (!Page.IsPostBack) - { - traduciObj(); - // registro che i valori in cache sono scaduti... - lastDataRefresh = DateTime.Now.AddDays(-1); - numDD = memLayer.ML.CRI("numDD"); - cacheValSec = memLayer.ML.CRI("cacheValSec"); - } - // effettuo load valori... - setupComandiBarcode(); - setupValoriBarcode(); - // registro eventi - mod_barcode1.eh_comandoRegistrato += new EventHandler(mod_barcode1_eh_comandoRegistrato); - mod_btnComandi1.eh_clickComando += new EventHandler(mod_btnComandi1_eh_clickComando); + // Crea stopwatch. + Stopwatch stopwatch = new Stopwatch(); + // Avvio... + stopwatch.Start(); + traduciObj(); + // registro che i valori in cache sono scaduti... + lastDataRefresh = DateTime.Now.AddDays(-1); + numDD = memLayer.ML.CRI("numDD"); + cacheValSec = memLayer.ML.CRI("cacheValSec"); + // registro + stopwatch.Stop(); + lastUpdDuration = stopwatch.Elapsed; } - /// - /// inviato un comando dai link buttons - /// - /// - /// - void mod_btnComandi1_eh_clickComando(object sender, EventArgs e) + // effettuo load valori... + setupComandiBarcode(); + setupValoriBarcode(); + // registro eventi + mod_barcode1.eh_comandoRegistrato += new EventHandler(mod_barcode1_eh_comandoRegistrato); + mod_btnComandi1.eh_clickComando += new EventHandler(mod_btnComandi1_eh_clickComando); + } + /// + /// Numero comandi ammessi caricati + /// + public int nComandi + { + get { - // chiamo metodo caricamento comandi in modulo barcode... - mod_barcode1.loadBtnClickComando(); + return comandiAmmessiBCode.Count; } + } + /// + /// Numero record BCode caricati + /// + public int nBCodeRec + { + get + { + return valoriAmmessiBCode.Count; + } + } + /// + /// Memorizzo durata ultimo update (lettura record...) come timespan + /// + public TimeSpan lastUpdDuration + { + get + { + return (TimeSpan)memLayer.ML.objSessionObj("lastUpdDuration"); + } + set + { + memLayer.ML.setSessionVal("lastUpdDuration", value); + } + } + /// + /// inviato un comando dai link buttons + /// + /// + /// + void mod_btnComandi1_eh_clickComando(object sender, EventArgs e) + { + // chiamo metodo caricamento comandi in modulo barcode... + mod_barcode1.loadBtnClickComando(); + } - private void traduciObj() + private void traduciObj() + { + } + /// + /// imposta/recupera valore num gg da rileggere... + /// + public int numDD + { + get { + int answ = 85; + try + { + answ = Convert.ToInt32(txtNumDD.Text.Trim()); + } + catch + { } + return answ; } - /// - /// imposta/recupera valore num gg da rileggere... - /// - public int numDD + set { - get - { - int answ = 85; - try - { - answ = Convert.ToInt32(txtNumDD.Text.Trim()); - } - catch - { } - return answ; - } - set - { - txtNumDD.Text = value.ToString(); - } + txtNumDD.Text = value.ToString(); } - /// - /// logLevel impostato... - /// - public int logLevel + } + /// + /// logLevel impostato... + /// + public int logLevel + { + get { - get - { - int answ = 1; - try - { - answ = memLayer.ML.CRI("_logLevel"); - } - catch - { } - return answ; - } + int answ = 1; + try + { + answ = memLayer.ML.CRI("_logLevel"); + } + catch + { } + return answ; } - /// - /// imposta/recupera valore num sec validità cache... - /// - public int cacheValSec + } + /// + /// imposta/recupera valore num sec validità cache... + /// + public int cacheValSec + { + get { - get - { - int answ = 55; - try - { - answ = Convert.ToInt32(txtCacheSec.Text.Trim()); - } - catch - { } + int answ = 55; + try + { + answ = Convert.ToInt32(txtCacheSec.Text.Trim()); + } + catch + { } - return answ; - } - set - { - txtCacheSec.Text = value.ToString(); - } + return answ; } - /// - /// Variabile x controllo scadenza valori in cache - /// - protected DateTime lastDataRefresh + set { - get - { - DateTime answ = DateTime.Now.AddDays(-1); - try - { - answ = Convert.ToDateTime(memLayer.ML.objCacheObj("lastBCodeDataRead")); - } - catch - { } - return answ; - } - set - { - // registro che i valori in cache sono scaduti... - memLayer.ML.setCacheVal("lastBCodeDataRead", value); - if (logLevel > 5) logger.lg.scriviLog("impostata validità cache"); - } + txtCacheSec.Text = value.ToString(); } - protected bool cacheValida + } + /// + /// Variabile x controllo scadenza valori in cache + /// + protected DateTime lastDataRefresh + { + get { - get - { - bool answ = false; - try - { - if (DateTime.Now.Subtract(lastDataRefresh).TotalSeconds < cacheValSec) answ = true; - } - catch - { } - return answ; - } + DateTime answ = DateTime.Now.AddDays(-1); + try + { + answ = Convert.ToDateTime(memLayer.ML.objCacheObj("lastBCodeDataRead")); + } + catch + { } + return answ; } - /// - /// Elenco (da cache) dei valori ammessi x BCode - /// - protected Dictionary valoriAmmessiBCode + set { - get - { - Dictionary answ = new Dictionary(); - if (memLayer.ML.isInCacheObject("valoriAmmessiBCode") && cacheValida) - { - answ = (Dictionary)memLayer.ML.objCacheObj("valoriAmmessiBCode"); - } - return answ; - } - set - { - memLayer.ML.setCacheVal("valoriAmmessiBCode", value); - } + // registro che i valori in cache sono scaduti... + memLayer.ML.setCacheVal("lastBCodeDataRead", value); + if (logLevel > 5) logger.lg.scriviLog("impostata validità cache"); } - /// - /// Elenco (da cache) dei comandi ammessi x BCode - /// - protected Dictionary comandiAmmessiBCode + } + protected bool cacheValida + { + get { - get - { - Dictionary answ = new Dictionary(); - if (memLayer.ML.isInCacheObject("comandiAmmessiBCode")) - { - answ = (Dictionary)memLayer.ML.objCacheObj("comandiAmmessiBCode"); - } - return answ; - } - set - { - memLayer.ML.setCacheVal("comandiAmmessiBCode", value); - } + bool answ = false; + try + { + if (DateTime.Now.Subtract(lastDataRefresh).TotalSeconds < cacheValSec) answ = true; + } + catch + { } + return answ; } - /// - /// effettuo il setup dei valori ammessi x il barcode... - /// - private void setupValoriBarcode() + } + /// + /// Elenco (da cache) dei valori ammessi x BCode + /// + protected Dictionary valoriAmmessiBCode + { + get { - if (valoriAmmessiBCode.Count > 0) - { - // assegno valori al barcode... - mod_barcode1.tabValori = valoriAmmessiBCode; - if (logLevel > 5) logger.lg.scriviLog("Letti da cache VALORI Barcode", tipoLog.INFO); - } - else - { - if (logLevel > 5) logger.lg.scriviLog("Inizio setup valori Barcode", tipoLog.INFO); - Dictionary valori = new Dictionary(); - XPS_data.DS_applicazioneTableAdapters.v_commesseTableAdapter taCommesse = new XPS_data.DS_applicazioneTableAdapters.v_commesseTableAdapter(); - DS_applicazione.v_commesseDataTable _tabComm = taCommesse.getLastDD(numDD); - // aggiungo i DDT... - foreach (DS_applicazione.v_commesseRow riga in _tabComm) - { - // QUI formattazione campi mostrati a barcode - // 2017.05.23 tolto stato... - valori.Add(riga.Cod.ToString(), string.Format("{0} - {6}
{1} DDT {2} del {3:dd MMM yyyy}
{4} colli ({5} kg)", riga.Cod, riga.Cliente, riga.DDT, riga.DataDDT, riga.Colli, riga.Peso, riga.Ciclo)); - //valori.Add(riga.Cod.ToString(), string.Format("{0} - {7}
{1} DDT {2} del {3:dd MMM yyyy}
{4} colli ({5} kg)
{6}", riga.Cod, riga.Cliente, riga.DDT, riga.DataDDT, riga.Colli, riga.Peso, riga.Stato, riga.Ciclo)); - } - if (logLevel > 5) logger.lg.scriviLog("Caricato commesse per Barcode", tipoLog.INFO); - // ora aggiungo i singoli ULP... - XPS_data.DS_applicazioneTableAdapters.v_ULPTableAdapter taULP = new XPS_data.DS_applicazioneTableAdapters.v_ULPTableAdapter(); - DS_applicazione.v_ULPDataTable _tabUlp = taULP.getLastDD(numDD); - // aggiungo colli (ULP)... - foreach (DS_applicazione.v_ULPRow riga in _tabUlp) - { - // QUI formattazione campi mostrati a barcode - // 2017.05.23 tolto stato... - valori.Add(riga.Cod.ToString(), string.Format("{0} - {6}
{1} DDT {2} del {3:dd MMM yyyy}
nr {4} items ({5} kg)", riga.Cod, riga.Cliente, riga.DDT, riga.DataDDT, riga.Qta, riga.Peso, riga.CodCli)); - //valori.Add(riga.Cod.ToString(), string.Format("{0} - {7}
{1} DDT {2} del {3:dd MMM yyyy}
nr {4} items ({5} kg)
{6}", riga.Cod, riga.Cliente, riga.DDT, riga.DataDDT, riga.Qta, riga.Peso, riga.Stato, riga.CodCli)); - } - if (logLevel > 5) logger.lg.scriviLog("Caricato RIGHE per Barcode", tipoLog.INFO); - // assegno valori al barcode... - mod_barcode1.tabValori = valori; - valoriAmmessiBCode = valori; - lastDataRefresh = DateTime.Now; - logger.lg.scriviLog("Letti da DB VALORI Barcode", tipoLog.INFO); - } + Dictionary answ = new Dictionary(); + if (memLayer.ML.isInCacheObject("valoriAmmessiBCode") && cacheValida) + { + answ = (Dictionary)memLayer.ML.objCacheObj("valoriAmmessiBCode"); + } + return answ; } - /// - /// carico da tab i comandi ammessi per il barcode... - /// - private void setupComandiBarcode() + set { - if (comandiAmmessiBCode.Count > 0) - { - // assegno valori al barcode... - mod_barcode1.comandiAmmessi = comandiAmmessiBCode; - if (logLevel > 5) logger.lg.scriviLog("Letti da cache COMANDI Barcode", tipoLog.INFO); - } - else - { - XPS_data.DS_applicazioneTableAdapters.TraEv2StatiTableAdapter taTrEv2St = new XPS_data.DS_applicazioneTableAdapters.TraEv2StatiTableAdapter(); - DS_applicazione.TraEv2StatiDataTable _tabTran = taTrEv2St.getByCodMappa("E_BC"); - Dictionary comandi = new Dictionary(); - foreach (DS_applicazione.TraEv2StatiRow riga in _tabTran) - { - comandi.Add(riga.CodEvento, user_std.UtSn.Traduci(riga.text2show)); - } - // impongo i comandi al barcode... - mod_barcode1.comandiAmmessi = comandi; - comandiAmmessiBCode = comandi; - logger.lg.scriviLog("Letti da DB COMANDI Barcode", tipoLog.INFO); - } + memLayer.ML.setCacheVal("valoriAmmessiBCode", value); } - /// - /// il barcode ha registrato un evento... - /// - /// - /// - void mod_barcode1_eh_comandoRegistrato(object sender, EventArgs e) + } + /// + /// Elenco (da cache) dei comandi ammessi x BCode + /// + protected Dictionary comandiAmmessiBCode + { + get { - switch (stateMachine.st.azioneComando(mod_barcode1.comandoRegistrato)) - { - case tipoAzione.annulla: - mod_barcode1.resetMe(); - break; - case tipoAzione.conferma: - // se input completo eseguo... - if (mod_barcode1.comandoRegistrato.currCmdIn != "" && mod_barcode1.comandoRegistrato.valore != "") - { - eseguiComando(); - } - else // altrimenti warning... e rimetto valori precedenti - { - mod_barcode1.txtRich2show = user_std.UtSn.Traduci("codObjUnknown"); - mod_barcode1.comandoRegistrato.currCmdIn = mod_barcode1.comandoRegistrato.prevCmdIn; - mod_barcode1.comandoRegistrato.descrComando = mod_barcode1.comandoRegistrato.descrComandoPrev; - mod_barcode1.txtInput2show = mod_barcode1.comandoRegistrato.descrComandoPrev; - } - break; - case tipoAzione.esegui: - // se ho auto conferma eseguo! - if (memLayer.ML.confReadBool("autoConfCmd")) - { - mod_barcode1.comandoRegistrato.prevCmdIn = mod_barcode1.comandoRegistrato.currCmdIn; - mod_barcode1.comandoRegistrato.currCmdIn = "ok"; - eseguiComando(); - } - else - { - if (mod_barcode1.comandoRegistrato.valore != "") - { - mod_barcode1.txtRich2show = user_std.UtSn.Traduci("pleaseConfirm"); - } - else - { - mod_barcode1.txtRich2show = user_std.UtSn.Traduci("codObjUnknown"); - } - } - break; - case tipoAzione.noAct: - break; - default: - break; - } - mod_btnComandi1.updateBtn(); + Dictionary answ = new Dictionary(); + if (memLayer.ML.isInCacheObject("comandiAmmessiBCode")) + { + answ = (Dictionary)memLayer.ML.objCacheObj("comandiAmmessiBCode"); + } + return answ; } - /// - /// eseguo il comando - /// - private void eseguiComando() + set { - // in primis: sono in esecuzione, x cui il comando è valido... - string msg2show = ""; - string currState = ""; - DS_applicazione.IstObjRow rigaIstObj; - // calcolo lo stato dell'oggetto... - try - { - rigaIstObj = XPS_data.XPS.obj.taObj.getByIdxObj(mod_barcode1.comandoRegistrato.valore)[0]; - currState = rigaIstObj.CodStato; - } - catch - { } - tipoEsito esito = stateMachine.st.doAction("E_Stati", mod_barcode1.comandoRegistrato.valore, currState, mod_barcode1.comandoRegistrato.prevCmdIn); - if (esito == tipoEsito.ok) - { - msg2show = string.Format("{0}: {1}", mod_barcode1.comandoRegistrato.valore, user_std.UtSn.Traduci("chgStateDone")); - } - else if (esito == tipoEsito.error) - { - msg2show = user_std.UtSn.Traduci("cannotStateChange"); - } - else - { - msg2show = user_std.UtSn.Traduci("unknownCmd"); - } - // reset e mostro output... + memLayer.ML.setCacheVal("comandiAmmessiBCode", value); + } + } + /// + /// effettuo il setup dei valori ammessi x il barcode... + /// + private void setupValoriBarcode() + { + if (valoriAmmessiBCode.Count > 0) + { + // assegno valori al barcode... + mod_barcode1.tabValori = valoriAmmessiBCode; + if (logLevel > 5) logger.lg.scriviLog("Letti da cache VALORI Barcode", tipoLog.INFO); + } + else + { + // Crea stopwatch. + Stopwatch stopwatch = new Stopwatch(); + // Avvio... + stopwatch.Start(); + //processo + if (logLevel > 5) logger.lg.scriviLog("Inizio setup valori Barcode", tipoLog.INFO); + Dictionary valori = new Dictionary(); + XPS_data.DS_applicazioneTableAdapters.v_commesseTableAdapter taCommesse = new XPS_data.DS_applicazioneTableAdapters.v_commesseTableAdapter(); + DS_applicazione.v_commesseDataTable _tabComm = taCommesse.getLastDD(numDD); + // aggiungo i DDT... + foreach (DS_applicazione.v_commesseRow riga in _tabComm) + { + // QUI formattazione campi mostrati a barcode + // 2017.05.23 tolto stato... + valori.Add(riga.Cod.ToString(), string.Format("{0} - {6}
{1} DDT {2} del {3:dd MMM yyyy}
{4} colli ({5} kg)", riga.Cod, riga.Cliente, riga.DDT, riga.DataDDT, riga.Colli, riga.Peso, riga.Ciclo)); + //valori.Add(riga.Cod.ToString(), string.Format("{0} - {7}
{1} DDT {2} del {3:dd MMM yyyy}
{4} colli ({5} kg)
{6}", riga.Cod, riga.Cliente, riga.DDT, riga.DataDDT, riga.Colli, riga.Peso, riga.Stato, riga.Ciclo)); + } + if (logLevel > 5) logger.lg.scriviLog("Caricato commesse per Barcode", tipoLog.INFO); + // ora aggiungo i singoli ULP... + XPS_data.DS_applicazioneTableAdapters.v_ULPTableAdapter taULP = new XPS_data.DS_applicazioneTableAdapters.v_ULPTableAdapter(); + DS_applicazione.v_ULPDataTable _tabUlp = taULP.getLastDD(numDD); + // aggiungo colli (ULP)... + foreach (DS_applicazione.v_ULPRow riga in _tabUlp) + { + // QUI formattazione campi mostrati a barcode + // 2017.05.23 tolto stato... + valori.Add(riga.Cod.ToString(), string.Format("{0} - {6}
{1} DDT {2} del {3:dd MMM yyyy}
nr {4} items ({5} kg)", riga.Cod, riga.Cliente, riga.DDT, riga.DataDDT, riga.Qta, riga.Peso, riga.CodCli)); + //valori.Add(riga.Cod.ToString(), string.Format("{0} - {7}
{1} DDT {2} del {3:dd MMM yyyy}
nr {4} items ({5} kg)
{6}", riga.Cod, riga.Cliente, riga.DDT, riga.DataDDT, riga.Qta, riga.Peso, riga.Stato, riga.CodCli)); + } + if (logLevel > 5) logger.lg.scriviLog("Caricato RIGHE per Barcode", tipoLog.INFO); + // assegno valori al barcode... + mod_barcode1.tabValori = valori; + valoriAmmessiBCode = valori; + lastDataRefresh = DateTime.Now; + logger.lg.scriviLog("Letti da DB VALORI Barcode", tipoLog.INFO); + stopwatch.Start(); + lastUpdDuration = stopwatch.Elapsed; + } + } + /// + /// carico da tab i comandi ammessi per il barcode... + /// + private void setupComandiBarcode() + { + if (comandiAmmessiBCode.Count > 0) + { + // assegno valori al barcode... + mod_barcode1.comandiAmmessi = comandiAmmessiBCode; + if (logLevel > 5) logger.lg.scriviLog("Letti da cache COMANDI Barcode", tipoLog.INFO); + } + else + { + XPS_data.DS_applicazioneTableAdapters.TraEv2StatiTableAdapter taTrEv2St = new XPS_data.DS_applicazioneTableAdapters.TraEv2StatiTableAdapter(); + DS_applicazione.TraEv2StatiDataTable _tabTran = taTrEv2St.getByCodMappa("E_BC"); + Dictionary comandi = new Dictionary(); + foreach (DS_applicazione.TraEv2StatiRow riga in _tabTran) + { + comandi.Add(riga.CodEvento, user_std.UtSn.Traduci(riga.text2show)); + } + // impongo i comandi al barcode... + mod_barcode1.comandiAmmessi = comandi; + comandiAmmessiBCode = comandi; + logger.lg.scriviLog("Letti da DB COMANDI Barcode", tipoLog.INFO); + } + } + /// + /// il barcode ha registrato un evento... + /// + /// + /// + void mod_barcode1_eh_comandoRegistrato(object sender, EventArgs e) + { + switch (stateMachine.st.azioneComando(mod_barcode1.comandoRegistrato)) + { + case tipoAzione.annulla: mod_barcode1.resetMe(); - if (msg2show != "") mod_barcode1.txtInput2show = msg2show; + break; + case tipoAzione.conferma: + // se input completo eseguo... + if (mod_barcode1.comandoRegistrato.currCmdIn != "" && mod_barcode1.comandoRegistrato.valore != "") + { + eseguiComando(); + } + else // altrimenti warning... e rimetto valori precedenti + { + mod_barcode1.txtRich2show = user_std.UtSn.Traduci("codObjUnknown"); + mod_barcode1.comandoRegistrato.currCmdIn = mod_barcode1.comandoRegistrato.prevCmdIn; + mod_barcode1.comandoRegistrato.descrComando = mod_barcode1.comandoRegistrato.descrComandoPrev; + mod_barcode1.txtInput2show = mod_barcode1.comandoRegistrato.descrComandoPrev; + } + break; + case tipoAzione.esegui: + // se ho auto conferma eseguo! + if (memLayer.ML.confReadBool("autoConfCmd")) + { + mod_barcode1.comandoRegistrato.prevCmdIn = mod_barcode1.comandoRegistrato.currCmdIn; + mod_barcode1.comandoRegistrato.currCmdIn = "ok"; + eseguiComando(); + } + else + { + if (mod_barcode1.comandoRegistrato.valore != "") + { + mod_barcode1.txtRich2show = user_std.UtSn.Traduci("pleaseConfirm"); + } + else + { + mod_barcode1.txtRich2show = user_std.UtSn.Traduci("codObjUnknown"); + } + } + break; + case tipoAzione.noAct: + break; + default: + break; } - - protected void btnReload_Click(object sender, EventArgs e) + mod_btnComandi1.updateBtn(); + } + /// + /// eseguo il comando + /// + private void eseguiComando() + { + // in primis: sono in esecuzione, x cui il comando è valido... + string msg2show = ""; + string currState = ""; + DS_applicazione.IstObjRow rigaIstObj; + // calcolo lo stato dell'oggetto... + try { - // resetto tutto! - comandiAmmessiBCode = new Dictionary(); - valoriAmmessiBCode = new Dictionary(); - lastDataRefresh = DateTime.Now.AddDays(-1); + rigaIstObj = XPS_data.XPS.obj.taObj.getByIdxObj(mod_barcode1.comandoRegistrato.valore)[0]; + currState = rigaIstObj.CodStato; } + catch + { } + tipoEsito esito = stateMachine.st.doAction("E_Stati", mod_barcode1.comandoRegistrato.valore, currState, mod_barcode1.comandoRegistrato.prevCmdIn); + if (esito == tipoEsito.ok) + { + msg2show = string.Format("{0}: {1}", mod_barcode1.comandoRegistrato.valore, user_std.UtSn.Traduci("chgStateDone")); + } + else if (esito == tipoEsito.error) + { + msg2show = user_std.UtSn.Traduci("cannotStateChange"); + } + else + { + msg2show = user_std.UtSn.Traduci("unknownCmd"); + } + // reset e mostro output... + mod_barcode1.resetMe(); + if (msg2show != "") mod_barcode1.txtInput2show = msg2show; + } + + protected void btnReload_Click(object sender, EventArgs e) + { + // resetto tutto! + comandiAmmessiBCode = new Dictionary(); + valoriAmmessiBCode = new Dictionary(); + lastDataRefresh = DateTime.Now.AddDays(-1); + } }