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_dettComm : ApplicationUserControl { #region area da NON modificare #region area protected protected string _idxGridView; protected bool _showNewBtn = true; /// /// 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 = ""; } } /// /// reset della selezione /// /// /// protected void btnReset_Click(object sender, EventArgs e) { resetSelezione(); } #endregion #region gestione eventi public event EventHandler eh_resetSelezione; 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 /// /// elenco colonne del datagrid /// /// protected DataColumnCollection colonneObj() { DS_applicazione.v_commesseDataTable tabella = new DS_applicazione.v_commesseDataTable(); DataColumnCollection colonne = tabella.Columns; return colonne; } /// /// modo d'uso PRIVATE del controllo tra i vari magazzino/segreteria/produzione/direzione /// protected modoXPS_Equa _currMode = modoXPS_Equa.segreteria; /// /// inizializzazione valori di default /// /// protected override void OnInit(EventArgs e) { base.OnInit(e); _idxGridView = "CodRow"; updateNavBar(); } /// /// aggiorno navbar /// protected void updateNavBar() { // verifico se c'è selezione, attivo filtraggio ed aggiorno... if (memLayer.ML.isInSessionObject("CodDDT_sel")) { mod_navPath1.valore = memLayer.ML.StringSessionObj("CodDDT_sel"); mod_navPath1.tooltip = traduci("go2commesse"); // traduco... mod_navPath1.linkText = traduci("ElencoComm"); mod_navPath1.linkURL = memLayer.ML.StringSessionObj("returnPage"); } } protected override void traduciObj() { base.traduciObj(); lblRowsDDT.Text = traduci("lblRowsDDT"); } /// /// mostra/nasconde pannello nuovo /// /// /// protected void btnShowNew_Click(object sender, EventArgs e) { scambiaVisibPnlNew(); } private void scambiaVisibPnlNew() { // in base alla visibilità indico il testo corretto e seleziono o meno il filtro... #if false if (!pnlNew.Visible) { btnShowNew.Text = traduci("btnHideNew"); mf_cliNew.ods = odsFiltroClienti; } else { btnShowNew.Text = traduci("btnShowNew"); } pnlNew.Visible = !pnlNew.Visible; #endif } /// /// creazione di un nuovo set... /// /// /// protected void btnNewComm_Click(object sender, EventArgs e) { #if false // creazione di un nuovo set... DS_applicazioneTableAdapters.v_commesseTableAdapter taComm = new DS_applicazioneTableAdapters.v_commesseTableAdapter(); taComm.sp_creaSetObj(DateTime.Now.ToString("yyyyMMdd_hhmmss"), "EQUA", mf_cliNew.valore, txtDDT.Text, txtNome.Text, user_std.UtSn.utente, txtDescr.Text); // nascondo tutto... txtNome.Text = ""; scambiaVisibPnlNew(); // aggiorno pannello... grView.DataBind(); #endif } /// /// inserisce nuovo valore da footer /// /// /// protected void lblIns_click(object sender, EventArgs e) { // click su inserimento, chiamo il metodo insert dell'ObjectDataSource ods.Insert(); } /// /// gestione evento richiesta 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; } #if false // sollevo evento nuovo valore... if (eh_nuovoValore != null) { eh_nuovoValore(this, new EventArgs()); } #endif } /// /// salvo in session che il prox comando è clonare... /// /// /// protected void imgMostraLogStati_Click(object sender, ImageClickEventArgs e) { SteamWare.memLayer.ML.setSessionVal("nextObjCommand", "mostraLog"); } /// /// gestione cambio selezione valore /// /// /// protected void grView_SelectedIndexChanged(object sender, EventArgs e) { string _comando = ""; if (SteamWare.memLayer.ML.isInSessionObject("nextObjCommand")) { _comando = SteamWare.memLayer.ML.StringSessionObj("nextObjCommand"); SteamWare.memLayer.ML.emptySessionVal("nextObjCommand"); } switch (_comando) { case "mostraLog": // non è vero select ma un show del log di cambio stato pnlLogStati.Visible = true; mod_logStati1.idxObj = grView.SelectedValue.ToString(); break; default: // è select... // salvo in session il valore selezionato... SteamWare.memLayer.ML.setSessionVal(string.Format("{0}_sel", _idxGridView), grView.SelectedValue.ToString(), true); // sollevo evento nuovo valore... if (eh_selValore != null) { eh_selValore(this, new EventArgs()); } break; } } /// /// salvo in session che il prox comando è clonare... /// /// /// protected void imgClonaRow_Click(object sender, ImageClickEventArgs e) { SteamWare.memLayer.ML.setSessionVal("nextObjCommand", "clonaRow"); } /// /// in caso di aggiornamento verifico se sia salvato un comando clona... /// /// /// protected void grView_RowUpdating(object sender, GridViewUpdateEventArgs e) { // quale comando? // carico l'idx dell'oggetto string _idxCiclo = e.Keys["Cod"].ToString(); string _comando = ""; if (SteamWare.memLayer.ML.isInSessionObject("nextObjCommand")) { _comando = SteamWare.memLayer.ML.StringSessionObj("nextObjCommand"); SteamWare.memLayer.ML.emptySessionVal("nextObjCommand"); } // verifico il tipo di richiesta (clona o update normale) switch (_comando) { case "clonaRow": DS_applicazioneTableAdapters.v_righeTableAdapter taRiga = new DS_applicazioneTableAdapters.v_righeTableAdapter(); taRiga.sp_clonaRowObj(_idxCiclo); grView.EditIndex = -1; grView.DataBind(); // blocco update! e.Cancel = true; break; default: // faccio update! break; } } /// /// effettua update del modulo /// public void doUpdateNoReset() { grView.DataBind(); } /// /// restituisce se sia visibile il controllo di accettazione... /// /// /// public bool isAccettVisible(object codStato) { bool answ = true; if (codStato.ToString().IndexOf("01") < 0) answ = false; return answ; } /// /// restituisce se rimangano altri valori a pari idxObjMamma - ovvero non sto cancellando l'ultima riga... che è vietato... /// /// /// public bool otherRemains(object IdxObjMamma) { bool answ = false; int? sisters = XPS.obj.taObj.countSisters(IdxObjMamma.ToString()); if (sisters > 1) answ = true; return answ; }/// /// restituisce true se sia l'ultimo oggetto del suo tipo (max posizione x codice mamma...) /// /// /// public bool lastSister(object IdxObjMamma, object posizione) { bool answ = false; string maxPos = XPS.obj.taObj.lastSister(IdxObjMamma.ToString()).ToString(); if (Convert.ToInt32(maxPos) == Convert.ToInt32(posizione)) answ = true; return answ; } /// /// determina se l'utente possa cancellare /// /// public bool userCanDel(object codStato, object IdxObjMamma, object posizione) { return (isAccettVisible(codStato) && otherRemains(IdxObjMamma) && lastSister(IdxObjMamma, posizione)); } /// /// imposta il modo d'uso del controllo tra i vari magazzino/segreteria/produzione/direzione /// public modoXPS_Equa currMode { get { return _currMode; } set { _currMode = value; } } protected void ods_Deleted(object sender, ObjectDataSourceStatusEventArgs e) { resetSelezione(); } /// /// resetta la selezione dei valori in caso di modifiche su altri controlli /// public void resetSelezione() { grView.SelectedIndex = -1; grView.DataBind(); pnlLogStati.Visible = false; if (eh_resetSelezione != null) { eh_resetSelezione(this, new EventArgs()); } } #endregion }