From 75456308d14d74e645b990daebfecb3b2d523543 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sat, 13 Oct 2018 16:43:40 +0200 Subject: [PATCH] Fix Gest MinSec e min.cent x TAB --- MP-TAB/WebUserControls/mod_ODL.ascx | 2 +- MP-TAB/WebUserControls/mod_ODL.ascx.cs | 9 + MP-TAB/WebUserControls/mod_tempoMSMC.ascx | 3 +- MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs | 668 ++++++++++--------- 4 files changed, 364 insertions(+), 318 deletions(-) diff --git a/MP-TAB/WebUserControls/mod_ODL.ascx b/MP-TAB/WebUserControls/mod_ODL.ascx index 0086153a..0e80e67c 100644 --- a/MP-TAB/WebUserControls/mod_ODL.ascx +++ b/MP-TAB/WebUserControls/mod_ODL.ascx @@ -41,7 +41,7 @@
INIZIO Attrezzaggio
- +
diff --git a/MP-TAB/WebUserControls/mod_ODL.ascx.cs b/MP-TAB/WebUserControls/mod_ODL.ascx.cs index eaae191d..e07f5328 100644 --- a/MP-TAB/WebUserControls/mod_ODL.ascx.cs +++ b/MP-TAB/WebUserControls/mod_ODL.ascx.cs @@ -110,6 +110,15 @@ namespace MoonProTablet.WebUserControls if (!Page.IsPostBack) { checkAll(); + // fix modo tempo... + if (memLayer.ML.cdvb("TAB_TC_MinSec")) + { + mod_tempoMSMC.modoTempo = timeMode.MS; + } + else + { + mod_tempoMSMC.modoTempo = timeMode.MC; + } } cmp_newODL.eh_newVal += Cmp_newODL_eh_newVal; } diff --git a/MP-TAB/WebUserControls/mod_tempoMSMC.ascx b/MP-TAB/WebUserControls/mod_tempoMSMC.ascx index e1e99d08..e6df1bb4 100644 --- a/MP-TAB/WebUserControls/mod_tempoMSMC.ascx +++ b/MP-TAB/WebUserControls/mod_tempoMSMC.ascx @@ -1,4 +1,5 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_tempoMSMC.ascx.cs" Inherits="MoonProTablet.WebUserControls.mod_tempoMSMC" %> +
@@ -7,7 +8,7 @@
- Min:Sec + <%: labelTempoIN %>
diff --git a/MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs b/MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs index c4abfabd..36d8bddf 100644 --- a/MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs +++ b/MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs @@ -4,308 +4,344 @@ using System.Web.UI; namespace MoonProTablet.WebUserControls { - public partial class mod_tempoMSMC : System.Web.UI.UserControl + public partial class mod_tempoMSMC : System.Web.UI.UserControl + { + /// + /// stringa UID univoca + /// + public string uid { - /// - /// stringa UID univoca - /// - public string uid - { - get - { - return this.UniqueID.Replace("$", "_").Replace("-", "_"); - } - } - /// - /// modalità rendering controllo - /// - public timeControlMode modoControllo { get; set; } - /// - /// modalità controllo tempo - /// - public timeMode modoTempo { get; set; } - /// - /// tempo min.cent - /// - protected decimal _tempoMC - { - get - { - decimal answ = 0; - try - { - answ = Convert.ToDecimal(memLayer.ML.objSessionObj(string.Format("tempoMC-{0}", uid))); - } - catch - { } - return answ; - } - set - { - memLayer.ML.setSessionVal(string.Format("tempoMC-{0}", uid), value); - } - } - /// - /// tempo min:sec - /// - protected TimeSpan _tempoMS - { - get - { - TimeSpan answ = new TimeSpan(0, 0, 0); - try - { - answ = (TimeSpan)memLayer.ML.objSessionObj(string.Format("tempoMS-{0}", uid)); - } - catch - { } - return answ; - } - set - { - memLayer.ML.setSessionVal(string.Format("tempoMS-{0}", uid), value); - } - } - /// - /// caricamento pagina - /// - /// - /// - protected void Page_Load(object sender, EventArgs e) - { - // a secondo del modo di controllo mostro textbox o selettori... - bool showTesto = true; - if (modoControllo == timeControlMode.testo) - { - showTesto = true; - } - else - { - showTesto = false; - } - // sistemo visualizzazione dei 2 div - divTesto.Visible = showTesto; - divSelettori.Visible = !showTesto; - if (!Page.IsPostBack) - { - // fix numero item secondi - odsSecondi.SelectParameters.Clear(); - odsSecondi.SelectParameters.Add("minVal", "0"); - odsSecondi.SelectParameters.Add("maxVal", numItemSec.ToString()); - // fix visualizzazione - showControls(); - } - } - /// - /// mostra i controlli secondo richiesta - /// - private void showControls() - { - if (modoControllo == timeControlMode.testo) - { - if (modoTempo == timeMode.MC) - { - txtTempo.Text = string.Format("{0:0.000}", tempoMC); - } - else - { - txtTempo.Text = string.Format("{0:#0}:{1:00}", tempoMS.Minutes, tempoMS.Seconds); - } - } - else - { - ddlMinuti.SelectedValue = tempoMS.Minutes.ToString(); - if (modoTempo == timeMode.MC) - { - ddlSecondi.SelectedValue = Convert.ToInt32((tempoMC - Math.Floor(tempoMC)) * 100).ToString(); - } - else - { - ddlSecondi.SelectedValue = tempoMS.Seconds.ToString(); - } - } - // fix label... - if (modoTempo == timeMode.MC) - { - lblTempo.Text = string.Format("--> {0:#0}' {1:00}s (min,sec)", tempoMS.Minutes, tempoMS.Seconds); - } - else - { - lblTempo.Text = string.Format("--> {0:0.000} (min,cent)", tempoMC); - } - } - /// - /// num item x controllo secondi/centesimi - /// - public int numItemSec - { - get - { - int answ = 60; - if (modoTempo == timeMode.MS) - { - answ = 59; - } - else - { - answ = 99; - } - return answ; - } - } - /// - /// tempo selezionato in formato Minuti Secondi - /// - public TimeSpan tempoMS - { - get - { - return _tempoMS; - } - set - { - _tempoMS = value; - _tempoMC = minSec2Cent(value); - showControls(); - } - } - /// - /// verifica se TC sia stato caricato dai controlli, se zero va caricato (almento tentato caricamento...) - /// - public void checkTC() - { - if (tempoMC == 0) - { - if (modoControllo == timeControlMode.testo) - { - updFromTextBox(); - } - else - { - updFromDropDown(); - } - } - } - /// - /// tempo selezionato in formato Minuti Centesimi - /// - public decimal tempoMC - { - get - { - return _tempoMC; - } - set - { - _tempoMC = value; - _tempoMS = minCent2Sec(value); - showControls(); - } - } - /// - /// conversione da tempo minuti/secondi a minuti centesimali - /// - /// - /// - protected decimal minSec2Cent(TimeSpan valore) - { - Decimal answ = 0; - try - { - answ = Math.Round((valore.Minutes + (decimal)valore.Seconds / 60), 3); - } - catch - { } - return answ; - } - /// - /// conversione da tempo minuti centesimali a minuti/secondi - /// - /// - /// - protected TimeSpan minCent2Sec(decimal valore) - { - TimeSpan answ = new TimeSpan(0, 0, 1); - try - { - answ = new TimeSpan(0, Convert.ToInt32(valore), Convert.ToInt32((valore - Convert.ToInt32(valore)) * 60)); - } - catch - { } - return answ; - } - /// - /// cambiato valore tempo... - /// - /// - /// - protected void txtTempo_TextChanged(object sender, EventArgs e) - { - updFromTextBox(); - } - /// - /// update da casella testo - /// - private void updFromTextBox() - { - if (modoControllo == timeControlMode.testo) - { - if (modoTempo == timeMode.MC) - { - tempoMC = Convert.ToDecimal(txtTempo.Text.Replace(".", ",")); - } - else - { - string tempoDP = txtTempo.Text.Replace(".", ":").Replace(",", ":"); - int min = 0; - int sec = 0; - try - { - min = Convert.ToInt32(tempoDP.Substring(0, tempoDP.IndexOf(":"))); - sec = Convert.ToInt32(tempoDP.Substring(tempoDP.IndexOf(":") + 1, tempoDP.Length - tempoDP.IndexOf(":") - 1)); - } - catch - { } - tempoMS = new TimeSpan(0, min, sec); - } - } - } - /// - /// update da controlli dropdown - /// - private void updFromDropDown() - { - if (modoControllo == timeControlMode.selettori) - { - if (modoTempo == timeMode.MS) - { - tempoMS = new TimeSpan(0, Convert.ToInt32(ddlMinuti.SelectedValue), Convert.ToInt32(ddlSecondi.SelectedValue)); - } - else - { - tempoMC = Convert.ToDecimal(Convert.ToDecimal(ddlMinuti.SelectedValue) + Convert.ToDecimal(ddlSecondi.SelectedValue) / 100); - } - } - } - /// - /// selezione minuti - /// - /// - /// - protected void ddlMinuti_SelectedIndexChanged(object sender, EventArgs e) - { - updFromDropDown(); - } - /// - /// selezione secondi/centesimi - /// - /// - /// - protected void ddlSecondi_SelectedIndexChanged(object sender, EventArgs e) - { - updFromDropDown(); - } + get + { + return this.UniqueID.Replace("$", "_").Replace("-", "_"); + } } + /// + /// modalità rendering controllo + /// + public timeControlMode modoControllo { get; set; } + /// + /// modalità controllo tempo + /// + public timeMode modoTempo + { + get + { + timeMode answ = timeMode.MC; + try + { + answ = (timeMode)memLayer.ML.objSessionObj("modoTempo"); + } + catch + { } + return answ; + } + set + { + memLayer.ML.setSessionVal("modoTempo", value); + } + } + /// + /// tempo min.cent + /// + protected decimal _tempoMC + { + get + { + decimal answ = 0; + try + { + answ = Convert.ToDecimal(memLayer.ML.objSessionObj(string.Format("tempoMC-{0}", uid))); + } + catch + { } + return answ; + } + set + { + memLayer.ML.setSessionVal(string.Format("tempoMC-{0}", uid), value); + } + } + /// + /// tempo min:sec + /// + protected TimeSpan _tempoMS + { + get + { + TimeSpan answ = new TimeSpan(0, 0, 0); + try + { + answ = (TimeSpan)memLayer.ML.objSessionObj(string.Format("tempoMS-{0}", uid)); + } + catch + { } + return answ; + } + set + { + memLayer.ML.setSessionVal(string.Format("tempoMS-{0}", uid), value); + } + } + /// + /// INdica il formato del tempo IN INGRESSO (selezionato) + /// + public string labelTempoIN + { + get + { + string answ = ""; + if (modoTempo == timeMode.MC) + { + answ = "min.cent"; + } + else + { + answ = "min:sec"; + } + return answ; + } + } + /// + /// caricamento pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + // a secondo del modo di controllo mostro textbox o selettori... + bool showTesto = true; + if (modoControllo == timeControlMode.testo) + { + showTesto = true; + } + else + { + showTesto = false; + } + // sistemo visualizzazione dei 2 div + divTesto.Visible = showTesto; + divSelettori.Visible = !showTesto; + if (!Page.IsPostBack) + { + // fix numero item secondi + odsSecondi.SelectParameters.Clear(); + odsSecondi.SelectParameters.Add("minVal", "0"); + odsSecondi.SelectParameters.Add("maxVal", numItemSec.ToString()); + // fix visualizzazione + showControls(); + } + } + /// + /// mostra i controlli secondo richiesta + /// + private void showControls() + { + if (modoControllo == timeControlMode.testo) + { + if (modoTempo == timeMode.MC) + { + txtTempo.Text = string.Format("{0:0.000}", tempoMC); + } + else + { + txtTempo.Text = string.Format("{0:#0}:{1:00}", tempoMS.Minutes, tempoMS.Seconds); + } + } + else + { + ddlMinuti.SelectedValue = tempoMS.Minutes.ToString(); + if (modoTempo == timeMode.MC) + { + ddlSecondi.SelectedValue = Convert.ToInt32((tempoMC - Math.Floor(tempoMC)) * 100).ToString(); + } + else + { + ddlSecondi.SelectedValue = tempoMS.Seconds.ToString(); + } + } + // fix label... + if (modoTempo == timeMode.MC) + { + lblTempo.Text = string.Format("--> {0:#0}:{1:00} (min:sec)", tempoMS.Minutes, tempoMS.Seconds); + } + else + { + lblTempo.Text = string.Format("--> {0:0.000} (min.cent)", tempoMC); + } + } + /// + /// num item x controllo secondi/centesimi + /// + public int numItemSec + { + get + { + int answ = 60; + if (modoTempo == timeMode.MS) + { + answ = 59; + } + else + { + answ = 99; + } + return answ; + } + } + /// + /// tempo selezionato in formato Minuti Secondi + /// + public TimeSpan tempoMS + { + get + { + return _tempoMS; + } + set + { + _tempoMS = value; + _tempoMC = minSec2Cent(value); + showControls(); + } + } + /// + /// verifica se TC sia stato caricato dai controlli, se zero va caricato (almento tentato caricamento...) + /// + public void checkTC() + { + if (tempoMC == 0) + { + if (modoControllo == timeControlMode.testo) + { + updFromTextBox(); + } + else + { + updFromDropDown(); + } + } + } + /// + /// tempo selezionato in formato Minuti Centesimi + /// + public decimal tempoMC + { + get + { + return _tempoMC; + } + set + { + _tempoMC = value; + _tempoMS = minCent2Sec(value); + showControls(); + } + } + /// + /// conversione da tempo minuti/secondi a minuti centesimali + /// + /// + /// + protected decimal minSec2Cent(TimeSpan valore) + { + Decimal answ = 0; + try + { + answ = Math.Round((valore.Minutes + (decimal)valore.Seconds / 60), 3); + } + catch + { } + return answ; + } + /// + /// conversione da tempo minuti centesimali a minuti/secondi + /// + /// + /// + protected TimeSpan minCent2Sec(decimal valore) + { + TimeSpan answ = new TimeSpan(0, 0, 1); + try + { + answ = new TimeSpan(0, Convert.ToInt32(valore), Convert.ToInt32((valore - Convert.ToInt32(valore)) * 60)); + } + catch + { } + return answ; + } + /// + /// cambiato valore tempo... + /// + /// + /// + protected void txtTempo_TextChanged(object sender, EventArgs e) + { + updFromTextBox(); + } + /// + /// update da casella testo + /// + private void updFromTextBox() + { + if (modoControllo == timeControlMode.testo) + { + if (modoTempo == timeMode.MC) + { + tempoMC = Convert.ToDecimal(txtTempo.Text.Replace(".", ",")); + } + else + { + string tempoDP = txtTempo.Text.Replace(".", ":").Replace(",", ":"); + int min = 0; + int sec = 0; + try + { + min = Convert.ToInt32(tempoDP.Substring(0, tempoDP.IndexOf(":"))); + sec = Convert.ToInt32(tempoDP.Substring(tempoDP.IndexOf(":") + 1, tempoDP.Length - tempoDP.IndexOf(":") - 1)); + } + catch + { } + tempoMS = new TimeSpan(0, min, sec); + } + } + } + /// + /// update da controlli dropdown + /// + private void updFromDropDown() + { + if (modoControllo == timeControlMode.selettori) + { + if (modoTempo == timeMode.MS) + { + tempoMS = new TimeSpan(0, Convert.ToInt32(ddlMinuti.SelectedValue), Convert.ToInt32(ddlSecondi.SelectedValue)); + } + else + { + tempoMC = Convert.ToDecimal(Convert.ToDecimal(ddlMinuti.SelectedValue) + Convert.ToDecimal(ddlSecondi.SelectedValue) / 100); + } + } + } + /// + /// selezione minuti + /// + /// + /// + protected void ddlMinuti_SelectedIndexChanged(object sender, EventArgs e) + { + updFromDropDown(); + } + /// + /// selezione secondi/centesimi + /// + /// + /// + protected void ddlSecondi_SelectedIndexChanged(object sender, EventArgs e) + { + updFromDropDown(); + } + } } /// @@ -313,14 +349,14 @@ namespace MoonProTablet.WebUserControls /// public enum timeMode { - /// - /// Minuti Secondi - /// - MS = 0, - /// - /// Minuti Centesimali - /// - MC = 1 + /// + /// Minuti Secondi + /// + MS = 0, + /// + /// Minuti Centesimali + /// + MC = 1 } /// @@ -328,12 +364,12 @@ public enum timeMode /// public enum timeControlMode { - /// - /// controllo textbox - /// - testo = 0, - /// - /// selettori dropdown list - /// - selettori = 1 + /// + /// controllo textbox + /// + testo = 0, + /// + /// selettori dropdown list + /// + selettori = 1 } \ No newline at end of file