diff --git a/XPS/Web.config b/XPS/Web.config
index a1d33b8..02c9cb4 100644
--- a/XPS/Web.config
+++ b/XPS/Web.config
@@ -167,8 +167,12 @@
-
+
+
+
+
+
diff --git a/XPS/WebUserControls/mod_periodoAnalisi.ascx b/XPS/WebUserControls/mod_periodoAnalisi.ascx
index 5691bf7..ab7180c 100644
--- a/XPS/WebUserControls/mod_periodoAnalisi.ascx
+++ b/XPS/WebUserControls/mod_periodoAnalisi.ascx
@@ -13,12 +13,13 @@
Ultimi 6 mesi
Ultimi 12 mesi
+
diff --git a/XPS/WebUserControls/mod_periodoAnalisi.ascx.cs b/XPS/WebUserControls/mod_periodoAnalisi.ascx.cs
index 64e2de3..c59ed8b 100644
--- a/XPS/WebUserControls/mod_periodoAnalisi.ascx.cs
+++ b/XPS/WebUserControls/mod_periodoAnalisi.ascx.cs
@@ -31,6 +31,7 @@ namespace XPS.WebUserControls
///
protected void ddlPeriodo_SelectedIndexChanged(object sender, EventArgs e)
{
+ intervalloDate _intervallo = new intervalloDate();
// verifico cosa sia cambiato ed imposto date...
datario _datario = new datario();
switch (ddlPeriodo.SelectedValue)
@@ -56,37 +57,15 @@ namespace XPS.WebUserControls
default:
break;
}
- if ((intervalloAnalisi.inizio != _intervallo.inizio) || (intervalloAnalisi.fine != _intervallo.fine))
- {
- verificaCoerenzaDate();
- aggiornaDateMostrate(false);
- aggiornaPeriodo();
- }
+ intervalloAnalisi = _intervallo;
+ aggiornaDateMostrate();
}
- ///
- /// effettua update delle date mostrate da intervallo analisi (ed eventualmente riporta update...)
- ///
- ///
- private void aggiornaDateMostrate(bool doReportUpdate)
+
+ private void aggiornaDateMostrate()
{
- scriviDate();
- if (doReportUpdate)
- {
- reportUpdate();
- }
- }
- ///
- /// scrive nuove date in controllo
- ///
- private void scriviDate()
- {
- // se intervallo non è valorizzato leggo da sessione...
- if (!_intervallo.isValid)
- {
- _intervallo = intervalloAnalisi;
- }
- txtInizio.Text = _intervallo.inizio.ToString("dd/MM/yyyy");
- txtFine.Text = _intervallo.fine.ToShortDateString();
+ txtInizio.Text = intervalloAnalisi.inizio.ToString(memLayer.ML.CRS("ddMMyyyy")); // .ToShortDateString();
+ txtFine.Text = intervalloAnalisi.fine.AddDays(-1).ToString(memLayer.ML.CRS("ddMMyyyy")); // .ToShortDateString(); // mostro 1 gg in meno xché termina alle 00:00...
+ reportUpdate();
}
private void setIntervallo()
@@ -99,76 +78,89 @@ namespace XPS.WebUserControls
catch
{
_intervallo = new intervalloDate();
- _intervallo.fine = DateTime.Now;
- _intervallo.inizio = DateTime.Now.AddMonths(-2);
+ // in base al tipo intervallo (futuro/all) decido cosa mostrare...
+ if (periodo == datario.periodo.future)
+ {
+ _intervallo.inizio = DateTime.Now.Subtract(DateTime.Now.TimeOfDay);
+ _intervallo.fine = _intervallo.inizio.AddDays(7);
+ }
+ else
+ {
+ _intervallo.fine = DateTime.Now.Subtract(DateTime.Now.TimeOfDay).AddDays(1);
+ _intervallo.inizio = _intervallo.fine.AddMonths(-1);
+ }
Session["_intervallo"] = _intervallo;
Session["_inizio"] = _intervallo.inizio;
Session["_fine"] = _intervallo.fine;
}
- scriviDate();
+ txtInizio.Text = _intervallo.inizio.ToString(memLayer.ML.CRS("ddMMyyyy")); //.ToShortDateString();
+ txtFine.Text = _intervallo.fine.ToString(memLayer.ML.CRS("ddMMyyyy")); //.ToShortDateString();
+ }
+ ///
+ /// wrapper traduzione
+ ///
+ ///
+ ///
+ public string traduci(object lemma)
+ {
+ return user_std.UtSn.Traduci(lemma.ToString());
}
-
protected void Page_Load(object sender, EventArgs e)
{
+ if (!Page.IsPostBack)
+ {
+ txtInizio.ToolTip = traduci("inizioPeriodo");
+ txtFine.ToolTip = traduci("finePeriodo");
+ CalendarExtender1.Format = memLayer.ML.CRS("ddMMyyyy");
+ CalendarExtender2.Format = memLayer.ML.CRS("ddMMyyyy");
+ }
+ }
+ protected void txtInizio_TextChanged(object sender, EventArgs e)
+ {
+ // imposto il selettore a discesa...
+ ddlPeriodo.SelectedIndex = 0;
+ // se campo vuoto imposto oggi...
+ if (txtInizio.Text == "")
+ {
+ txtInizio.Text = DateTime.Now.ToString(memLayer.ML.CRS("ddMMyyyy")); //.ToShortDateString();
+ }
+ else
+ {
+ txtInizio.Text = datario.convDate(txtInizio.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")).ToString(memLayer.ML.CRS("ddMMyyyy")); //Convert.ToDateTime(txtInizio.Text).ToShortDateString();
+ }
+ // aggiorno dati in session...
+ aggiornaPeriodo();
}
-
private void aggiornaPeriodo()
{
_intervallo = new intervalloDate();
- _intervallo.inizio = Convert.ToDateTime(txtInizio.Text);
- _intervallo.fine = Convert.ToDateTime(txtFine.Text);
- verificaCoerenzaDate();
+ _intervallo.inizio = datario.convDate(txtInizio.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")); // Convert.ToDateTime(txtInizio.Text);
+ _intervallo.fine = datario.convDate(txtFine.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")).Date.AddDays(1); //((DateTime)Convert.ToDateTime(txtFine.Text)).Date.AddDays(1);
+ //_intervallo.fine = ((DateTime)Convert.ToDateTime(txtFine.Text)).Date.AddDays(1).AddMinutes(-1);
+ intervalloAnalisi = _intervallo;
reportUpdate();
}
- ///
- /// verifica che le date dell'intervallo siano coerenti (inizio < fine)
- ///
- private void verificaCoerenzaDate()
- {
- // controllo date siano coerenti (fine > inizio)...
- if (_intervallo.inizio >= _intervallo.fine)
- {
- // controllo non siano date successive ad oggi...
- if (_intervallo.fine > DateTime.Now)
- {
- _intervallo.fine = DateTime.Now;
- }
- _intervallo.inizio = _intervallo.fine.AddDays(-1);
- }
- //intervalloAnalisi = _intervallo;
- aggiornaDateMostrate(false);
- }
- ///
- /// evento cambio testo data inizio
- ///
- ///
- ///
- protected void txtInizio_TextChanged(object sender, EventArgs e)
- {
- // imposto il selettore a discesa...
- setPeriodoFree();
- aggiornaPeriodo();
- }
- ///
- /// evento cambio testo data fine
- ///
- ///
- ///
protected void txtFine_TextChanged(object sender, EventArgs e)
{
// imposto il selettore a discesa...
- setPeriodoFree();
+ ddlPeriodo.SelectedIndex = 0;
+ // se campo vuoto imposto oggi...
+ if (txtFine.Text == "")
+ {
+ txtFine.Text = DateTime.Now.AddDays(1).ToString(memLayer.ML.CRS("ddMMyyyy")); //.ToShortDateString();
+ }
+ else
+ {
+ txtFine.Text = datario.convDate(txtFine.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")).ToString(memLayer.ML.CRS("ddMMyyyy")); //Convert.ToDateTime(txtFine.Text).ToShortDateString();
+ }
+ // aggiorno dati in session...
aggiornaPeriodo();
}
-
- ///
- /// riporta aggiornamento a controller
- ///
+
protected void reportUpdate()
{
- intervalloAnalisi = _intervallo;
// alzo l'evento d update/inserimento e ricarico cache...
if (eh_doUpdate != null)
{
@@ -194,94 +186,317 @@ namespace XPS.WebUserControls
Session["_fine"] = interv.fine;
}
}
- ///
- /// effettua update
- ///
- ///
- public void doUpdate(bool doReportUpdate)
+
+ public void doUpdate()
{
- aggiornaDateMostrate(doReportUpdate);
+ aggiornaDateMostrate();
}
- ///
- /// imposta periodo libero di selezione
- ///
+
public void setPeriodoFree()
{
ddlPeriodo.SelectedIndex = 0;
}
+
+ protected datario.periodo _periodo { get; set; }
+
+ ///
+ /// Tipologia periodo mostrato...
+ ///
+ public datario.periodo periodo
+ {
+ get
+ {
+ return _periodo;
+ }
+ set
+ {
+ _periodo = value;
+ switch (_periodo)
+ {
+ case datario.periodo.past:
+ hfTPer.Value = "-1";
+ break;
+ case datario.periodo.future:
+ hfTPer.Value = "1";
+ break;
+ case datario.periodo.all:
+ case datario.periodo.nd:
+ default:
+ hfTPer.Value = "0";
+ break;
+ }
+ ddlPeriodo.DataBind();
+ }
+ }
+
+
#region gestione eventi
public event EventHandler eh_doUpdate;
#endregion
- ///
- /// effettua uno zoom 2 X sulle date attuali
- ///
- public void dateZoom()
- {
- // calcolo zoom 2X
- double intervMinutiOrig = intervalloAnalisi.fine.Subtract(intervalloAnalisi.inizio).TotalMinutes;
- // leggo data in cui lo zoom era centrato...
- DateTime centroZoom = Convert.ToDateTime(memLayer.ML.objSessionObj("zoomCenter"));
- // calcolo posizione relativa zoom...
- double posizioneZoom = centroZoom.Subtract(intervalloAnalisi.inizio).TotalMinutes / intervMinutiOrig;
- // init!
- _intervallo = intervalloAnalisi;
- // verifico che azione fare
- if (posizioneZoom < 0.25) // se è nel 1/4 lascio zoom inalterato e "vado a sx" di 1/2 intervallo
- {
- if (intervMinutiOrig > 120)
- {
- _intervallo.inizio = _intervallo.inizio.AddMinutes(-intervMinutiOrig / 2.0);
- _intervallo.fine = _intervallo.fine.AddMinutes(-intervMinutiOrig / 2.0);
- }
- else
- {
- _intervallo.inizio = _intervallo.inizio.AddMinutes(-60);
- _intervallo.fine = _intervallo.fine.AddMinutes(-60);
- }
- }
- else if (posizioneZoom > 0.75) // se è nel 3/4 lascio zoom inalterato e "vado a dx"
- {
- // mi imposto al max tra spostamento di 1/2 e l'ultimo dato disponibile...
- if (intervMinutiOrig > 120)
- {
- _intervallo.fine = _intervallo.fine.AddMinutes(intervMinutiOrig / 2.0);
- if (_intervallo.fine > DateTime.Now)
- {
- _intervallo.fine = DateTime.Now;
- }
- _intervallo.inizio = _intervallo.fine.AddMinutes(-intervMinutiOrig);
- }
- else
- {
- _intervallo.inizio = _intervallo.inizio.AddMinutes(60);
- _intervallo.fine = _intervallo.fine.AddMinutes(60);
- }
- }
- else // zoom!!!
- {
- if (intervMinutiOrig > 120)
- {
- _intervallo.inizio = _intervallo.inizio.AddMinutes(intervMinutiOrig / 4.0);
- _intervallo.fine = _intervallo.fine.AddMinutes(-intervMinutiOrig / 4.0);
- }
- else // 1 ora di zoom!
- {
- _intervallo.inizio = _intervallo.inizio.Date.AddHours(_intervallo.inizio.TimeOfDay.Hours);
- _intervallo.fine = _intervallo.inizio.AddHours(1);
- }
- }
- // arrotondo all'ora...
- _intervallo.inizio = _intervallo.inizio.Date.AddHours(_intervallo.inizio.TimeOfDay.Hours);
- _intervallo.fine = _intervallo.fine.Date.AddHours(_intervallo.fine.TimeOfDay.Hours);
- // aggiorno in sessione
- intervalloAnalisi = _intervallo;
- Response.Redirect("~/DettaglioMacchina.aspx");
- }
-
#endregion
+
+ /////
+ ///// gestione del selettore rapido dell'intervallo temporale...
+ /////
+ /////
+ /////
+ //protected void ddlPeriodo_SelectedIndexChanged(object sender, EventArgs e)
+ //{
+ // // verifico cosa sia cambiato ed imposto date...
+ // datario _datario = new datario();
+ // switch (ddlPeriodo.SelectedValue)
+ // {
+ // case "15gg":
+ // _intervallo = _datario.ultimiGiorni(DateTime.Now, 15);
+ // break;
+ // case "30gg":
+ // _intervallo = _datario.ultimiGiorni(DateTime.Now, 30);
+ // break;
+ // case "2M":
+ // _intervallo = _datario.ultimiMesi(DateTime.Now, 2);
+ // break;
+ // case "3M":
+ // _intervallo = _datario.ultimiMesi(DateTime.Now, 3);
+ // break;
+ // case "6M":
+ // _intervallo = _datario.ultimiMesi(DateTime.Now, 6);
+ // break;
+ // case "12M":
+ // _intervallo = _datario.ultimiMesi(DateTime.Now, 12);
+ // break;
+ // default:
+ // break;
+ // }
+ // if ((intervalloAnalisi.inizio != _intervallo.inizio) || (intervalloAnalisi.fine != _intervallo.fine))
+ // {
+ // verificaCoerenzaDate();
+ // aggiornaDateMostrate(false);
+ // aggiornaPeriodo();
+ // }
+ //}
+ /////
+ ///// effettua update delle date mostrate da intervallo analisi (ed eventualmente riporta update...)
+ /////
+ /////
+ //private void aggiornaDateMostrate(bool doReportUpdate)
+ //{
+ // scriviDate();
+ // if (doReportUpdate)
+ // {
+ // reportUpdate();
+ // }
+ //}
+ /////
+ ///// scrive nuove date in controllo
+ /////
+ //private void scriviDate()
+ //{
+ // // se intervallo non è valorizzato leggo da sessione...
+ // if (!_intervallo.isValid)
+ // {
+ // _intervallo = intervalloAnalisi;
+ // }
+ // txtInizio.Text = datario.convDate(txtInizio.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")).ToString(memLayer.ML.CRS("ddMMyyyy")); //_intervallo.inizio.ToShortDateString();// ToString("dd/MM/yyyy");
+ // txtFine.Text = _intervallo.fine.ToShortDateString();
+ //}
+
+ //private void setIntervallo()
+ //{
+ // intervalloDate _intervallo;
+ // try
+ // {
+ // _intervallo = (intervalloDate)Session["_intervallo"];
+ // }
+ // catch
+ // {
+ // _intervallo = new intervalloDate();
+ // _intervallo.fine = DateTime.Now;
+ // _intervallo.inizio = DateTime.Now.AddMonths(-2);
+ // Session["_intervallo"] = _intervallo;
+ // Session["_inizio"] = _intervallo.inizio;
+ // Session["_fine"] = _intervallo.fine;
+ // }
+ // scriviDate();
+ //}
+
+ //protected void Page_Load(object sender, EventArgs e)
+ //{
+ //}
+
+
+ //private void aggiornaPeriodo()
+ //{
+ // _intervallo = new intervalloDate();
+ // _intervallo.inizio = datario.convDate(txtInizio.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")); //Convert.ToDateTime(txtInizio.Text);
+ // _intervallo.fine = Convert.ToDateTime(txtFine.Text);
+ // verificaCoerenzaDate();
+ // reportUpdate();
+
+ //}
+ /////
+ ///// verifica che le date dell'intervallo siano coerenti (inizio < fine)
+ /////
+ //private void verificaCoerenzaDate()
+ //{
+ // // controllo date siano coerenti (fine > inizio)...
+ // if (_intervallo.inizio >= _intervallo.fine)
+ // {
+ // // controllo non siano date successive ad oggi...
+ // if (_intervallo.fine > DateTime.Now)
+ // {
+ // _intervallo.fine = DateTime.Now;
+ // }
+ // _intervallo.inizio = _intervallo.fine.AddDays(-1);
+ // }
+ // //intervalloAnalisi = _intervallo;
+ // aggiornaDateMostrate(false);
+ //}
+ /////
+ ///// evento cambio testo data inizio
+ /////
+ /////
+ /////
+ //protected void txtInizio_TextChanged(object sender, EventArgs e)
+ //{
+ // // imposto il selettore a discesa...
+ // setPeriodoFree();
+ // aggiornaPeriodo();
+ //}
+ /////
+ ///// evento cambio testo data fine
+ /////
+ /////
+ /////
+ //protected void txtFine_TextChanged(object sender, EventArgs e)
+ //{
+ // // imposto il selettore a discesa...
+ // setPeriodoFree();
+ // aggiornaPeriodo();
+ //}
+
+ /////
+ ///// riporta aggiornamento a controller
+ /////
+ //protected void reportUpdate()
+ //{
+ // intervalloAnalisi = _intervallo;
+ // // alzo l'evento d update/inserimento e ricarico cache...
+ // if (eh_doUpdate != null)
+ // {
+ // eh_doUpdate(this, new EventArgs());
+ // }
+ //}
+
+ //#endregion
+
+ //#region area public
+
+ //public intervalloDate intervalloAnalisi
+ //{
+ // get
+ // {
+ // return (intervalloDate)Session["_intervallo"];
+ // }
+ // set
+ // {
+ // intervalloDate interv = value;
+ // Session["_intervallo"] = interv;
+ // Session["_inizio"] = interv.inizio;
+ // Session["_fine"] = interv.fine;
+ // }
+ //}
+ /////
+ ///// effettua update
+ /////
+ /////
+ //public void doUpdate(bool doReportUpdate)
+ //{
+ // aggiornaDateMostrate(doReportUpdate);
+ //}
+ /////
+ ///// imposta periodo libero di selezione
+ /////
+ //public void setPeriodoFree()
+ //{
+ // ddlPeriodo.SelectedIndex = 0;
+ //}
+
+ //#region gestione eventi
+
+ //public event EventHandler eh_doUpdate;
+
+ //#endregion
+
+ /////
+ ///// effettua uno zoom 2 X sulle date attuali
+ /////
+ //public void dateZoom()
+ //{
+ // // calcolo zoom 2X
+ // double intervMinutiOrig = intervalloAnalisi.fine.Subtract(intervalloAnalisi.inizio).TotalMinutes;
+ // // leggo data in cui lo zoom era centrato...
+ // DateTime centroZoom = Convert.ToDateTime(memLayer.ML.objSessionObj("zoomCenter"));
+ // // calcolo posizione relativa zoom...
+ // double posizioneZoom = centroZoom.Subtract(intervalloAnalisi.inizio).TotalMinutes / intervMinutiOrig;
+ // // init!
+ // _intervallo = intervalloAnalisi;
+ // // verifico che azione fare
+ // if (posizioneZoom < 0.25) // se è nel 1/4 lascio zoom inalterato e "vado a sx" di 1/2 intervallo
+ // {
+ // if (intervMinutiOrig > 120)
+ // {
+ // _intervallo.inizio = _intervallo.inizio.AddMinutes(-intervMinutiOrig / 2.0);
+ // _intervallo.fine = _intervallo.fine.AddMinutes(-intervMinutiOrig / 2.0);
+ // }
+ // else
+ // {
+ // _intervallo.inizio = _intervallo.inizio.AddMinutes(-60);
+ // _intervallo.fine = _intervallo.fine.AddMinutes(-60);
+ // }
+ // }
+ // else if (posizioneZoom > 0.75) // se è nel 3/4 lascio zoom inalterato e "vado a dx"
+ // {
+ // // mi imposto al max tra spostamento di 1/2 e l'ultimo dato disponibile...
+ // if (intervMinutiOrig > 120)
+ // {
+ // _intervallo.fine = _intervallo.fine.AddMinutes(intervMinutiOrig / 2.0);
+ // if (_intervallo.fine > DateTime.Now)
+ // {
+ // _intervallo.fine = DateTime.Now;
+ // }
+ // _intervallo.inizio = _intervallo.fine.AddMinutes(-intervMinutiOrig);
+ // }
+ // else
+ // {
+ // _intervallo.inizio = _intervallo.inizio.AddMinutes(60);
+ // _intervallo.fine = _intervallo.fine.AddMinutes(60);
+ // }
+ // }
+ // else // zoom!!!
+ // {
+ // if (intervMinutiOrig > 120)
+ // {
+ // _intervallo.inizio = _intervallo.inizio.AddMinutes(intervMinutiOrig / 4.0);
+ // _intervallo.fine = _intervallo.fine.AddMinutes(-intervMinutiOrig / 4.0);
+ // }
+ // else // 1 ora di zoom!
+ // {
+ // _intervallo.inizio = _intervallo.inizio.Date.AddHours(_intervallo.inizio.TimeOfDay.Hours);
+ // _intervallo.fine = _intervallo.inizio.AddHours(1);
+ // }
+ // }
+ // // arrotondo all'ora...
+ // _intervallo.inizio = _intervallo.inizio.Date.AddHours(_intervallo.inizio.TimeOfDay.Hours);
+ // _intervallo.fine = _intervallo.fine.Date.AddHours(_intervallo.fine.TimeOfDay.Hours);
+ // // aggiorno in sessione
+ // intervalloAnalisi = _intervallo;
+ // Response.Redirect("~/DettaglioMacchina.aspx");
+ //}
+
+ //#endregion
}
}
\ No newline at end of file
diff --git a/XPS/WebUserControls/mod_periodoAnalisi.ascx.designer.cs b/XPS/WebUserControls/mod_periodoAnalisi.ascx.designer.cs
index 3745f94..ecccc86 100644
--- a/XPS/WebUserControls/mod_periodoAnalisi.ascx.designer.cs
+++ b/XPS/WebUserControls/mod_periodoAnalisi.ascx.designer.cs
@@ -21,6 +21,15 @@ namespace XPS.WebUserControls {
///
protected global::System.Web.UI.WebControls.DropDownList ddlPeriodo;
+ ///
+ /// hfTPer control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.HiddenField hfTPer;
+
///
/// txtInizio control.
///
@@ -30,6 +39,15 @@ namespace XPS.WebUserControls {
///
protected global::System.Web.UI.WebControls.TextBox txtInizio;
+ ///
+ /// CalendarExtender1 control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::AjaxControlToolkit.CalendarExtender CalendarExtender1;
+
///
/// txtFine control.
///