From a51504bc757dc43ff45da30822f9131d519b102e Mon Sep 17 00:00:00 2001 From: samuele Date: Wed, 17 Sep 2008 16:13:15 +0000 Subject: [PATCH] Update con anche anagrafica tipo obj... git-svn-id: https://keyhammer.ath.cx/svn/XPS/trunk@6 43c8e981-f90d-406c-a89a-24a2c4268d51 --- XPS/AnagraficaStati.aspx | 4 + XPS/AnagraficaStati.aspx.cs | 18 ++ XPS/AnagraficaStep.aspx | 4 + XPS/AnagraficaStep.aspx.cs | 18 ++ XPS/AnagraficaTipoObj.aspx | 7 + XPS/AnagraficaTipoObj.aspx.cs | 18 ++ XPS/mod_anagTipoObj.ascx | 142 +++++++++ XPS/mod_anagTipoObj.ascx.cs | 366 ++++++++++++++++++++++ XPS/mod_anagraficaEventi.ascx | 69 ++++- XPS/mod_anagraficaEventi.ascx.cs | 93 ++---- XPS/mod_selettore_ajax.ascx | 77 +++++ XPS/mod_selettore_ajax.ascx.cs | 500 +++++++++++++++++++++++++++++++ 12 files changed, 1239 insertions(+), 77 deletions(-) create mode 100644 XPS/AnagraficaStati.aspx create mode 100644 XPS/AnagraficaStati.aspx.cs create mode 100644 XPS/AnagraficaStep.aspx create mode 100644 XPS/AnagraficaStep.aspx.cs create mode 100644 XPS/AnagraficaTipoObj.aspx create mode 100644 XPS/AnagraficaTipoObj.aspx.cs create mode 100644 XPS/mod_anagTipoObj.ascx create mode 100644 XPS/mod_anagTipoObj.ascx.cs create mode 100644 XPS/mod_selettore_ajax.ascx create mode 100644 XPS/mod_selettore_ajax.ascx.cs diff --git a/XPS/AnagraficaStati.aspx b/XPS/AnagraficaStati.aspx new file mode 100644 index 0000000..700956f --- /dev/null +++ b/XPS/AnagraficaStati.aspx @@ -0,0 +1,4 @@ +<%@ Page Language="C#" MasterPageFile="~/AjaxSearch.master" AutoEventWireup="true" CodeFile="AnagraficaStati.aspx.cs" Inherits="AnagraficaStati" Title="Untitled Page" %> + + + diff --git a/XPS/AnagraficaStati.aspx.cs b/XPS/AnagraficaStati.aspx.cs new file mode 100644 index 0000000..70c830c --- /dev/null +++ b/XPS/AnagraficaStati.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class AnagraficaStati : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/XPS/AnagraficaStep.aspx b/XPS/AnagraficaStep.aspx new file mode 100644 index 0000000..e9f4b52 --- /dev/null +++ b/XPS/AnagraficaStep.aspx @@ -0,0 +1,4 @@ +<%@ Page Language="C#" MasterPageFile="~/AjaxSearch.master" AutoEventWireup="true" CodeFile="AnagraficaStep.aspx.cs" Inherits="AnagraficaStep" Title="Untitled Page" %> + + + diff --git a/XPS/AnagraficaStep.aspx.cs b/XPS/AnagraficaStep.aspx.cs new file mode 100644 index 0000000..82bc539 --- /dev/null +++ b/XPS/AnagraficaStep.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class AnagraficaStep : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/XPS/AnagraficaTipoObj.aspx b/XPS/AnagraficaTipoObj.aspx new file mode 100644 index 0000000..1a5a3cd --- /dev/null +++ b/XPS/AnagraficaTipoObj.aspx @@ -0,0 +1,7 @@ +<%@ Page Language="C#" MasterPageFile="~/AjaxSearch.master" AutoEventWireup="true" CodeFile="AnagraficaTipoObj.aspx.cs" Inherits="AnagraficaTipoObj" Title="Untitled Page" %> + +<%@ Register Src="mod_anagTipoObj.ascx" TagName="mod_anagTipoObj" TagPrefix="uc1" %> + + + + diff --git a/XPS/AnagraficaTipoObj.aspx.cs b/XPS/AnagraficaTipoObj.aspx.cs new file mode 100644 index 0000000..42861f6 --- /dev/null +++ b/XPS/AnagraficaTipoObj.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class AnagraficaTipoObj : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/XPS/mod_anagTipoObj.ascx b/XPS/mod_anagTipoObj.ascx new file mode 100644 index 0000000..7ebb740 --- /dev/null +++ b/XPS/mod_anagTipoObj.ascx @@ -0,0 +1,142 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="mod_anagTipoObj.ascx.cs" Inherits="mod_anagTipoObj" %> +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ \ No newline at end of file diff --git a/XPS/mod_anagTipoObj.ascx.cs b/XPS/mod_anagTipoObj.ascx.cs new file mode 100644 index 0000000..60eb08a --- /dev/null +++ b/XPS/mod_anagTipoObj.ascx.cs @@ -0,0 +1,366 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using SteamWare; + +public partial class mod_anagTipoObj : SteamWare.ApplicationUserControl +{ + #region area da NON modificare + + #region area protected + + protected string _idxGridView; + protected string _tabCache; + protected bool _showNewBtn = true; + + /// + /// imposta errore non cancellabilità per record correlati + /// + protected void setNoDeletableErrorMessage() + { + // mostro avviso di non cancellabilità... + lblWarning.Text = traduci("notDeletable_hasChild"); + lblWarning.Visible = true; + grView.DataBind(); + } + /// + /// esegue cancellazione record + /// + protected void doDelete() + { + // posso cancellare... + lblWarning.Visible = false; + ods.Delete(); + } + /// + /// Valida la cancellazione per i dati mostrati dal gridView + /// richiede sia preventivamentedichiarato _idxGridView + /// + /// + /// + protected virtual void validaDelete(object sender, ObjectDataSourceMethodEventArgs e) + { + int idx = Convert.ToInt32(e.InputParameters[string.Format("Original_{0}", _idxGridView)]); + if (objIsNotRelated(idx)) + { + // annullo cancellazione... + e.Cancel = true; + // seleziono record... metto in session valore idx e poi ridisegno... + SteamWare.memLayer.ML.setSessionVal(_idxGridView, idx); + setNoDeletableErrorMessage(); + } + else + { + doDelete(); + } + } + /// + /// inserisce nuovo valore da footer + /// + /// + /// + protected void lblIns_click(object sender, EventArgs e) + { + // click su inserimento, chiamo il metodo insert dell'ObjectDataSource + ods.Insert(); + SteamWare.memLayer.ML.emptyCacheVal(_tabCache); + } + /// + /// annulla inserimento nuovo valore da footer + /// + /// + /// + protected void lblCanc_click(object sender, EventArgs e) + { + // annullo inserimento: nascondo footer, bind controlli... + grView.FooterRow.Visible = false; + } + /// + /// aggiorna controlli datagrid e numero righe in pagina + /// + protected override void aggiornaControlliDataGL() + { + base.aggiornaControlliDataGL(); + grView.PageSize = _righeDataGridMed; + } + /// + /// traduce gli header delle colonne + /// + /// + /// + protected void grView_DataBound(object sender, EventArgs e) + { + if (grView.Rows.Count > 0) + { + LinkButton lb; + // aggiorno gli headers + foreach (TableCell cella in grView.HeaderRow.Cells) + { + try + { + lb = (LinkButton)cella.Controls[0]; + lb.Text = traduci(lb.Text); + } + catch + { } + } + int totRecord = grView.Rows.Count + grView.PageSize * (grView.PageCount - 1); + lblNumRec.Text = string.Format("{0} records of ~ {1}", grView.Rows.Count, totRecord); + } + else + { + lblNumRec.Text = ""; + } + } + /// + /// resetta la selezione dei valori in caso di modifiche su altri controlli + /// + public void resetSelezione() + { + SteamWare.memLayer.ML.emptySessionVal(string.Format("{0}_sel", _idxGridView)); + grView.SelectedIndex = -1; + grView.DataBind(); + lblWarning.Visible = false; + if (eh_resetSelezione != null) + { + eh_resetSelezione(this, new EventArgs()); + } + } + /// + /// gestione evento richeista nuovo valore (mostra footer, ...) + /// + /// + /// + protected void btnNew_Click(object sender, EventArgs e) + { + // reset selezione... + resetSelezione(); + // mostro il footer oppure la riga dei dettagli x nuovo... + if (grView.FooterRow != null) + { + grView.FooterRow.Visible = true; + } + // sollevo evento nuovo valore... + if (eh_nuovoValore != null) + { + eh_nuovoValore(this, new EventArgs()); + } + } + /// + /// reset della selezione + /// + /// + /// + protected void btnReset_Click(object sender, EventArgs e) + { + resetSelezione(); + } + /// + /// collega i controlli + /// + protected override void bindControlli() + { + base.bindControlli(); + caricaTabelle(); + } + /// + /// gestione cambio selezione valore + /// + /// + /// + protected void grView_SelectedIndexChanged(object sender, EventArgs e) + { + // salvo in session il valore selezionato... + SteamWare.memLayer.ML.setSessionVal(string.Format("{0}_sel", _idxGridView), grView.SelectedValue); + // sollevo evento nuovo valore... + if (eh_selValore != null) + { + eh_selValore(this, new EventArgs()); + } + } + + #endregion + + #region gestione eventi + + public event EventHandler eh_resetSelezione; + public event EventHandler eh_nuovoValore; + public event EventHandler eh_selValore; + + #endregion + + #region public + + /// + /// definisce visibilità btnNew + /// + public bool showNewBtn + { + get + { + return _showNewBtn; + } + set + { + _showNewBtn = value; + } + } + /// + /// effettua update del modulo + /// + public void doUpdate() + { + resetSelezione(); + } + + #endregion + + #endregion + + #region area codice variabile + + /// + /// carico le tabelle + /// + private void caricaTabelle() + { + // non serve qui... + } + + /// + /// verifica complessiva non esistenza record child + /// + /// + /// + protected bool objIsNotRelated(object idxObj) + { + // !!! FARE vero controllo cancellazione? + return false;// (taRouteVersion.getByOggetti(idxObj.ToString(), vers.ToString()).Rows.Count == 0); + } + /// + /// elenco colonne del datagrid + /// + /// + protected DataColumnCollection colonneObj() + { + DS_XPS.AnagTipoObjDataTable tabella = new DS_XPS.AnagTipoObjDataTable(); + DataColumnCollection colonne = tabella.Columns; + return colonne; + } + + /// + /// inizializzazione valori di default + /// + /// + protected override void OnInit(EventArgs e) + { + base.OnInit(e); + _idxGridView = "idxTipoObj"; + _tabCache = "tabAnagTipoObj"; + } + void Mod_filtro1_eh_selValore(object sender, EventArgs e) + { + // ridisegno + } + /// + /// setta selected alla riga il cui valore key è in session + /// + /// + /// + protected void grView_RowDataBound(object sender, GridViewRowEventArgs e) + { + // se riga di dati... + if (e.Row.RowType == DataControlRowType.DataRow) + { + // ottengo la riga tipizzata... + System.Data.DataRowView _drv = (System.Data.DataRowView)e.Row.DataItem; + DS_XPS.AnagTipoObjRow riga = (DS_XPS.AnagTipoObjRow)_drv.Row; + if (SteamWare.memLayer.ML.StringSessionObj(_idxGridView) == riga.IdxTipoObj.ToString()) + { + grView.SelectedIndex = e.Row.RowIndex; + } + } + } + /// + /// gestione evento inserimento nuovo record standard (se ZERO presenti) + /// + /// + /// + protected void btnNewFromEmpty_Click(object sender, EventArgs e) + { + // reset selezione... + resetSelezione(); + DS_XPSTableAdapters.AnagTipoObjTableAdapter taTipoObj = new DS_XPSTableAdapters.AnagTipoObjTableAdapter(); + // creo 1 obj vuoto... + taTipoObj.Insert("Nuovo Oggetto", 1, false, false); + grView.DataBind(); + // sollevo evento nuovo valore... + if (eh_nuovoValore != null) + { + eh_nuovoValore(this, new EventArgs()); + } + } + + /// + /// recupera i dati di un nuovo record contenuti nel footer di un gridView; + /// questi devono esses opportunamente nominati (es: txt{0}, dl{0}, ...) + /// + /// + /// + protected void recuperaFooter(object sender, ObjectDataSourceMethodEventArgs e) + { + //recupero la riga footer... + DataColumnCollection colonne = colonneObj(); + string nomeCol; + string tipoColonna = ""; + foreach (DataColumn colonna in colonne) + { + nomeCol = colonna.ColumnName; + // cerco un textbox o quello che sia... + if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null) + { + tipoColonna = "textBox"; + } + else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null) + { + tipoColonna = "dropDownList"; + } + else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null) + { + tipoColonna = "checkBox"; + } + else if (grView.FooterRow.FindControl(string.Format("selAjax_{0}", nomeCol)) != null) + { + tipoColonna = "selAjax"; + } + // in base al tipo salvo negli inputparameters dell'ODS + switch (tipoColonna) + { + case "textBox": + e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text; + break; + case "dropDownList": + e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue; + break; + case "checkBox": + e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).Checked; + break; + case "selAjax": + e.InputParameters[nomeCol] = ((mod_selettore_ajax)grView.FooterRow.FindControl(string.Format("selAjax_{0}", nomeCol))).valore; + break; + default: + break; + } + tipoColonna = ""; + } + } + + #endregion +} \ No newline at end of file diff --git a/XPS/mod_anagraficaEventi.ascx b/XPS/mod_anagraficaEventi.ascx index fbe0baf..cc6a011 100644 --- a/XPS/mod_anagraficaEventi.ascx +++ b/XPS/mod_anagraficaEventi.ascx @@ -1,7 +1,8 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeFile="mod_anagraficaEventi.ascx.cs" Inherits="mod_anagraficaEventi" %> +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="mod_anagraficaEventi.ascx.cs" + Inherits="mod_anagraficaEventi" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> @@ -18,12 +19,12 @@ - + -   @@ -35,29 +36,75 @@ + ToolTip='<%# traduci("Insert") %>' ImageUrl='<%# imgPath(SteamWare.tipoImg.nuovo , SteamWare.dimImg.small) %>' + OnClick="lblIns_click" /> - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SelectMethod="GetData" TypeName="DS_XPSTableAdapters.EventiTableAdapter" OnInserting="recuperaFooter" + FilterExpression=" DescrEvento LIKE '%{0}%'" DeleteMethod="DeleteQuery" + InsertMethod="Insert" UpdateMethod="UpdateQuery" > - + - diff --git a/XPS/mod_anagraficaEventi.ascx.cs b/XPS/mod_anagraficaEventi.ascx.cs index dee947a..400945f 100644 --- a/XPS/mod_anagraficaEventi.ascx.cs +++ b/XPS/mod_anagraficaEventi.ascx.cs @@ -19,7 +19,6 @@ public partial class mod_anagraficaEventi : SteamWare.ApplicationUserControl #region area protected protected string _idxGridView; - //protected string _idxGridViewExt; protected string _tabCache; protected bool _showNewBtn = true; @@ -123,6 +122,20 @@ public partial class mod_anagraficaEventi : SteamWare.ApplicationUserControl } } /// + /// resetta la selezione dei valori in caso di modifiche su altri controlli + /// + public void resetSelezione() + { + SteamWare.memLayer.ML.emptySessionVal(string.Format("{0}_sel", _idxGridView)); + grView.SelectedIndex = -1; + grView.DataBind(); + lblWarning.Visible = false; + if (eh_resetSelezione != null) + { + eh_resetSelezione(this, new EventArgs()); + } + } + /// /// gestione evento richeista nuovo valore (mostra footer, ...) /// /// @@ -209,7 +222,6 @@ public partial class mod_anagraficaEventi : SteamWare.ApplicationUserControl resetSelezione(); } - #endregion #endregion @@ -234,38 +246,27 @@ public partial class mod_anagraficaEventi : SteamWare.ApplicationUserControl // !!! FARE vero controllo cancellazione? return false;// (taRouteVersion.getByOggetti(idxObj.ToString(), vers.ToString()).Rows.Count == 0); } -#if false - /// + /// /// elenco colonne del datagrid /// /// protected DataColumnCollection colonneObj() { - DS_applicazione.OggettiDataTable tabella = new DS_applicazione.OggettiDataTable(); + DS_XPS.EventiDataTable tabella = new DS_XPS.EventiDataTable(); DataColumnCollection colonne = tabella.Columns; - return colonne; + return colonne; } -#endif -#if false - /// + /// /// inizializzazione valori di default /// /// protected override void OnInit(EventArgs e) { base.OnInit(e); - _idxGridView = "idxObj"; - _tabCache = "tabOggetti"; - Mod_filtro1.eh_selValore += new EventHandler(Mod_filtro1_eh_selValore); - if (!Page.IsPostBack) - { - Mod_filtro1.ods = odsFiltro; - } - + _idxGridView = "idxEvento"; + _tabCache = "tabEventi"; } -#endif - void Mod_filtro1_eh_selValore(object sender, EventArgs e) { // ridisegno @@ -278,37 +279,20 @@ public partial class mod_anagraficaEventi : SteamWare.ApplicationUserControl /// protected void grView_RowDataBound(object sender, GridViewRowEventArgs e) { -#if false // se riga di dati... if (e.Row.RowType == DataControlRowType.DataRow) { // ottengo la riga tipizzata... System.Data.DataRowView _drv = (System.Data.DataRowView)e.Row.DataItem; - DS_applicazione.OggettiRow riga = (DS_applicazione.OggettiRow)_drv.Row; - if (SteamWare.memLayer.ML.StringSessionObj(_idxGridView) == riga.idxObj.ToString()) + DS_XPS.EventiRow riga = (DS_XPS.EventiRow)_drv.Row; + if (SteamWare.memLayer.ML.StringSessionObj(_idxGridView) == riga.idxEvento.ToString()) { grView.SelectedIndex = e.Row.RowIndex; } - } -#endif - } - /// - /// resetta la selezione dei valori in caso di modifiche su altri controlli - /// - public void resetSelezione() - { -#if false - SteamWare.memLayer.ML.emptySessionVal(string.Format("{0}_sel", _idxGridView)); - grView.SelectedIndex = -1; - grView.DataBind(); - lblWarning.Visible = false; - if (eh_resetSelezione != null) - { - eh_resetSelezione(this, new EventArgs()); - } -#endif + } } + /// /// gestione evento inserimento nuovo record standard (se ZERO presenti) /// @@ -316,19 +300,17 @@ public partial class mod_anagraficaEventi : SteamWare.ApplicationUserControl /// protected void btnNewFromEmpty_Click(object sender, EventArgs e) { -#if false // reset selezione... resetSelezione(); - DS_applicazioneTableAdapters.OggettiTableAdapter taOggetti = new DS_applicazioneTableAdapters.OggettiTableAdapter(); + DS_XPSTableAdapters.EventiTableAdapter taEventi = new DS_XPSTableAdapters.EventiTableAdapter(); // creo 1 obj vuoto... - taOggetti.Insert("Descrizione oggetto", Convert.ToInt32(Mod_filtro1.valore), "Cod brembo originale"); + taEventi.Insert(999, "Evento nullo"); grView.DataBind(); // sollevo evento nuovo valore... if (eh_nuovoValore != null) { eh_nuovoValore(this, new EventArgs()); - } -#endif + } } /// @@ -339,7 +321,6 @@ public partial class mod_anagraficaEventi : SteamWare.ApplicationUserControl /// protected void recuperaFooter(object sender, ObjectDataSourceMethodEventArgs e) { -#if false //recupero la riga footer... DataColumnCollection colonne = colonneObj(); string nomeCol; @@ -384,27 +365,7 @@ public partial class mod_anagraficaEventi : SteamWare.ApplicationUserControl } tipoColonna = ""; } - e.InputParameters["idxTipoObj"] = Convert.ToInt32(Mod_filtro1.valore); - e.InputParameters["codBrembo"] = e.InputParameters["codBrembo"].ToString().ToUpper(); - // svuoto cache... - SteamWare.memLayer.ML.emptyCacheVal("_tabSelOggetti"); -#endif - } - protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e) - { -#if false - e.InputParameters["idxTipoObj"] = Convert.ToInt32(Mod_filtro1.valore); - e.InputParameters["codBrembo"] = e.InputParameters["codBrembo"].ToString().ToUpper(); - // svuoto cache... - SteamWare.memLayer.ML.emptyCacheVal("_tabSelOggetti"); -#endif } #endregion - - protected void ods_Init(object sender, EventArgs e) - { - //SteamWare.XPS.DS_XPSTableAdapters.EventiTableAdapter ta = new SteamWare.XPS.DS_XPSTableAdapters.EventiTableAdapter(); - //ta.Connection.ConnectionString = "Data Source=localhost;Initial Catalog=LVF_JPS;Integrated Security=True"; - } } \ No newline at end of file diff --git a/XPS/mod_selettore_ajax.ascx b/XPS/mod_selettore_ajax.ascx new file mode 100644 index 0000000..f325598 --- /dev/null +++ b/XPS/mod_selettore_ajax.ascx @@ -0,0 +1,77 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="mod_selettore_ajax.ascx.cs" + Inherits="mod_selettore_ajax" %> +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> + + + + +
+ + +
+
+
+ + + + + + + + + + +
+ + + + +
+ +   + +   + +   + +
+
+ + + + + + + + + + + + + + + + + + + + + + +    + + + + + +
+
+
+
diff --git a/XPS/mod_selettore_ajax.ascx.cs b/XPS/mod_selettore_ajax.ascx.cs new file mode 100644 index 0000000..7c0f594 --- /dev/null +++ b/XPS/mod_selettore_ajax.ascx.cs @@ -0,0 +1,500 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using SteamWare; + +[ValidationProperty("valore")] +public partial class mod_selettore_ajax : ApplicationUserControl +{ + + protected bool _chkVisibile = false; + protected bool _isValueVisible = false; + protected bool _cambioTipo = false; + + protected string _val1; + protected string _val2; + #region gestione eventi + + public event EventHandler eh_selDone; + public event EventHandler eh_update; + + #endregion + + #region gestione pagina + + protected override void Page_Load(object sender, EventArgs e) + { + base.Page_Load(sender, e); + updateChkOpzione(); + if (!Page.IsPostBack) + { + SteamWare.memLayer.ML.emptySessionVal(searchSessionName); + } + } + + protected override void traduciObj() + { + base.traduciObj(); + lblCerca.Text = traduci("lblCerca"); + btnCerca.Text = traduci("search"); + if (_chkVisibile) + { + updateChkOpzione(); + } + } + + protected override void OnInit(EventArgs e) + { + base.OnInit(e); + if (!Page.IsPostBack) + { + _val1 = ""; + _val2 = ""; + if (vistaModulo == SteamWare.tipoVistaMod.editing) + { + setSearchValue(); + impostaCampoRicerca(); + pce.Enabled = true; + pce2.Enabled = true; + lblDescr.CssClass = "txtLink"; + } + else if (vistaModulo == SteamWare.tipoVistaMod.selezione) + { + pce.Enabled = false; + pce2.Enabled = false; + lblDescr.CssClass = "txtValue"; + } + traduciObj(); + } + } + /// + /// imposta il valore della ricerca da quello in session + /// + private void setSearchValue() + { + if (SteamWare.memLayer.ML.isInSessionObject(searchSessionName)) + { + testoRicerca = SteamWare.memLayer.ML.StringSessionObj(searchSessionName); + } + } + /// + /// imposta i campi del filtro ricerca in session + /// + private void impostaCampoRicerca() + { + // imposto il nome del valore session x ricerca a campo univoco... + SessionParameter parametroFiltro = new SessionParameter(); + parametroFiltro.SessionField = searchSessionName; + parametroFiltro.Name = searchSessionName; + parametroFiltro.DefaultValue = "*"; + ods.FilterParameters.Clear(); + ods.FilterParameters.Add(parametroFiltro); + } + /// + /// setta il nome del campo di ricerca + /// + protected string searchSessionName + { + get + { + return string.Format("ricerca_{0}", _tipoSelettore); + } + } + + #endregion + + #region area protected + + protected string _conditio = ""; + protected string testoRicerca + { + get + { + return txtCerca.Text.Trim(); + } + set + { + txtCerca.Text = value; + } + } + + protected selettori _selettori = new selettori(); + /// + /// a seconda del tipo di selettore cambierà l'origine ods + /// + /// + /// + protected void chkOpzione_CheckedChanged(object sender, EventArgs e) + { + fixChkOds(); + } + + protected void setCheck() + { + if (_tipoSelettore == tipoSelettore.utentiAll || _tipoSelettore == tipoSelettore.utentiCdc) + { + _chkVisibile = true; + } + else + { + _chkVisibile = false; + } + } + + /// + /// aggiorna visualizzazione del check opzionale con label e visibilità + /// + protected void updateChkOpzione() + { + // se definito il tipo decido SE mostrare il check e tradurre la label... + if (_tipoSelettore == tipoSelettore.utentiAll || _tipoSelettore == tipoSelettore.utentiCdc) + { + chkOpzione.Visible = true; + chkOpzione.Text = traduci("chkSoloGer"); + if (_tipoSelettore == tipoSelettore.utentiCdc) + { + chkOpzione.Checked = true; + } + } + else + { + chkOpzione.Visible = false; + } + } + + /// + /// aggiorna la label che traduce il valore a seconda del tipo di oggetto... + /// + protected void aggiornaLabelDaValore() + { + // x ora metto valore di default... + string _answ = "-"; + if (txtSelValue.Text != "") + { + System.Data.DataView tabella = (System.Data.DataView)ods.Select(); + tabella.RowFilter = string.Format("value = '{0}'", txtSelValue.Text); + try + { + _answ = tabella.ToTable().Rows[0]["label"].ToString(); + } + catch + { } + } + lblDescr.Text = _answ; + } + /// + /// aggiorna label e valore principale da una chiave multipart + /// + private void aggiornaDaValMulti() + { + // eseguo SE E SOLO SE entrambi i valori sono popolati + if (val1 != "" && val1 != null) + { + if (val2 != "" && val2 != null && val2 != "na") + { + txtSelValue.Text = string.Format("{0}#{1}", val1, val2); + aggiornaLabelDaValore(); + } + else + { + txtSelValue.Text = val1; + aggiornaLabelDaValore(); + } + } + } + + + /// + /// tipo di valori mostrati + /// + protected tipoSelettore _tipoSelettore = tipoSelettore.cdc; + /// + /// nome del controllo gestito dal nostro popup + /// + protected string _targetControl = ""; + /// + /// sistemo gli ods + /// + protected override void bindControlli() + { + base.bindControlli(); + fixChkOds(); + fixOds(); + } + /// + /// sistema l'ods dato lo stato del chk + /// + protected void fixChkOds() + { + if (_tipoSelettore == tipoSelettore.utentiAll || _tipoSelettore == tipoSelettore.utentiCdc) + { + // verifico se sia o meno checked "solo cdc utente"... + if (chkOpzione.Checked) + { + //imposto nuovo tipo selettore + _tipoSelettore = tipoSelettore.utentiCdc; + fixOds(); + } + else + { + //imposto nuovo tipo selettore + _tipoSelettore = tipoSelettore.utentiAll; + fixOds(); + } + // faccio databind... + grView.PageIndex = 0; + grView.DataBind(); + + } + } + /// + /// sistemazione fonte ods... + /// + protected void fixOds() + { + string _selectMethod = ""; + switch (_tipoSelettore) + { + case tipoSelettore.cdc: + _selectMethod = "getSelAllCdC"; + break; + case tipoSelettore.utentiAll: + _selectMethod = "getSelAllUsers"; + break; + case tipoSelettore.utentiCdc: + _selectMethod = "getSelUsersGer"; + break; + } + ods.SelectMethod = _selectMethod; + } + + /// + /// traduce gli header delle colonne + /// + /// + /// + protected void grView_DataBound(object sender, EventArgs e) + { + if (grView.Rows.Count > 0) + { + LinkButton lb; + // aggiorno gli headers + foreach (TableCell cella in grView.HeaderRow.Cells) + { + try + { + lb = (LinkButton)cella.Controls[0]; + lb.Text = traduci(lb.Text); + } + catch + { } + } + int totRecord = grView.Rows.Count + grView.PageSize * (grView.PageCount - 1); + lblNumRec.Text = string.Format("{0} records of ~ {1}", grView.Rows.Count, totRecord); + } + else + { + lblNumRec.Text = ""; + } + } + /// + /// selezione annullata su cambio pagina + /// + /// + /// + protected void grView_PageIndexChanged(object sender, EventArgs e) + { + grView.SelectedIndex = -1; + } + /// + /// aggiornamento filtro da stringa di ricerca del popup + /// + /// + /// + protected void txtCerca_TextChanged(object sender, EventArgs e) + { + // se cambio filtro tolgo il selected... + grView.SelectedIndex = -1; + // salvo la ricerca in session e filter dell'ods... + SteamWare.memLayer.ML.setSessionVal(searchSessionName, txtCerca.Text); + impostaCampoRicerca(); + fixChkOds(); + fixOds(); + } + /// + /// salvo il valore selezionato + /// + /// + /// + protected void grView_SelectedIndexChanged(object sender, EventArgs e) + { + string valore = grView.SelectedValue.ToString(); + lblDescr.Text = grView.SelectedRow.Cells[2].Text.ToString(); + UpdatePanel1.Update(); + pce.Commit(valore); + pce2.Commit(grView.SelectedRow.Cells[2].Text.ToString()); + // se ho una chiave multiparte salvo nei 2 valori... + if (valore.IndexOf('#') > -1) + { + string[] valori = valore.Split('#'); + val1 = valori[0]; + val2 = valori[1]; + } + if (eh_selDone != null) + { + eh_selDone(this, new EventArgs()); + } + } + + /// + /// resetta ricerca e selezione + /// + /// + /// + protected void btnReset_Click(object sender, EventArgs e) + { + grView.SelectedIndex = -1; + testoRicerca = ""; + SteamWare.memLayer.ML.emptySessionVal(searchSessionName); + } + + #endregion + + #region area public + + /// + /// tipo di selettore da istanziare + /// + public tipoSelettore tipo + { + get + { + return _tipoSelettore; + } + set + { + _tipoSelettore = value; + setCheck(); + } + } + + /// + /// effettua update del controllo + /// + public void doUpdate() + { + // svuoto ricerca... + SteamWare.memLayer.ML.emptySessionVal(searchSessionName); + testoRicerca = ""; + // imposto valori cercati... + setSearchValue(); + impostaCampoRicerca(); + // continuo con update + updateChkOpzione(); + fixOds(); + aggiornaDaValMulti(); + // faccio databind... + grView.PageIndex = 0; + grView.DataBind(); + } + + /// + /// valore mostrato nel campo testo del selettore + /// + public string valore + { + get + { + return txtSelValue.Text; + } + set + { + txtSelValue.Text = value; + aggiornaLabelDaValore(); + } + } + /// + /// valore di una chiave multiparte + /// + public string val1 + { + get + { + return _val1; + } + set + { + _val1 = value; + aggiornaDaValMulti(); + } + } + + /// + /// valore di una chiave multiparte + /// + public string val2 + { + get + { + return _val2; + } + set + { + _val2 = value; + aggiornaDaValMulti(); + } + } + /// + /// impone una condizione di filtro sui valori mostrati + /// + public string conditio + { + get + { + return _conditio; + } + set + { + _conditio = value; + if (_conditio != "") + { + ods.SelectParameters.Clear(); + ods.SelectParameters.Add("where", string.Format(" conditio = '{0}' ", _conditio)); + } + else + { + ods.SelectParameters.Clear(); + ods.SelectParameters.Add("where", " conditio = '*' "); + } + } + } + /// + /// determina se il valore da selezionare sia da visualizzare o meno + /// + public bool isValueVisible + { + get + { + return _isValueVisible; + } + set + { + _isValueVisible = value; + } + } + + #endregion +} +public enum tipoSelettore +{ + cdc, + utentiAll, + utentiCdc +} \ No newline at end of file