using CMS_SC_Data; using SteamWare; using System; using System.Web.UI.WebControls; namespace CMS_SC.WebUserControls { public partial class mod_DettScheda : SteamWare.UserControl { /// /// selezione valore in DettScheda /// public event EventHandler eh_selezioneValore; /// /// richiesta SAVE (da enter) /// public event EventHandler eh_reqSave; /// /// sollevo evento selezione /// protected void raiseEvent() { // sollevo evento nuovo valore... if (eh_selezioneValore != null) { eh_selezioneValore(this, new EventArgs()); } } /// /// caricamento macchina /// /// /// protected void Page_Load(object sender, EventArgs e) { } /// /// dimensione pagina grid view /// public int pageSize { get { return grView.PageSize; } set { grView.PageSize = value; } } /// /// richiesta di aggiunta record, tutto a zero! /// /// /// protected void lbAddNew_Click(object sender, EventArgs e) { insertNewRec(); } /// /// inserisco un nuovo record da completare... /// private void insertNewRec() { // inserisco nuovo record SE HO una selezione da URL if (memLayer.ML.QSS("CodSchedaVers") != "") { DtProxy.man.taDS.insertNew(memLayer.ML.QSS("CodSchedaVers"), ""); // update! grView.DataBind(); } } /// /// crea un nuovo record ... /// /// /// protected void btnNewFromEmpty_Click(object sender, EventArgs e) { insertNewRec(); } /// /// wrapper traduzione /// /// /// public string traduci(string lemma) { return user_std.UtSn.Traduci(lemma); } /// /// Scheda selezionata /// public string CodSchedaSel { get { string answ = ""; try { answ = grView.SelectedDataKey["CodScheda"].ToString(); } catch { } return answ; } } /// /// Versione selezionata /// public int VersSel { get { int answ = -1; try { answ = Convert.ToInt32(grView.SelectedDataKey["Vers"].ToString()); } catch { } return answ; } } /// /// Misura selezionata /// public string CodMisuraSel { get { string answ = ""; try { answ = grView.SelectedDataKey["CodMisura"].ToString(); } catch { } return answ; } } /// /// salvo in session il prox comando /// /// /// protected void lb_Click(object sender, EventArgs e) { SteamWare.memLayer.ML.setSessionVal("nextObjCommand", ((LinkButton)sender).CommandArgument); } /// /// selezionato valore /// /// /// protected void grView_SelectedIndexChanged(object sender, EventArgs e) { // verifico se ho un argomento di tipo moveUp / moveDown... quale comando? string _comando = ""; if (SteamWare.memLayer.ML.isInSessionObject("nextObjCommand")) { _comando = SteamWare.memLayer.ML.StringSessionObj("nextObjCommand"); SteamWare.memLayer.ML.emptySessionVal("nextObjCommand"); } if (_comando != "") { // SE c'era comando eseguo move... switch (_comando) { case "moveUp": case "moveDown": DtProxy.man.taDS.moveUpDown(_comando, CodSchedaSel, VersSel, CodMisuraSel); break; case "clone": DtProxy.man.taDS.clone(memLayer.ML.QSS("CodSchedaVers"), grView.SelectedDataKey["CodMisura"].ToString()); break; default: break; } resetSelezione(); } else { raiseEvent(); } } protected void btnReset_Click(object sender, EventArgs e) { resetSelezione(); } /// /// resetto selezione /// private void resetSelezione() { grView.SelectedIndex = -1; grView.DataBind(); raiseEvent(); } /// /// determina visibilità frecce spostamento /// /// direzione: UP / DOWN /// CodMisura da verificare /// public bool arrowVisible(object _direction, object _CodMisura) { bool answ = false; string direction = _direction.ToString(); string CodMisura = _CodMisura.ToString(); if (memLayer.ML.QSS("CodSchedaVers") != "") { // recupero TUTTE le righe della scheda dett corrente DS_Applicazione.DettSchedaDataTable tab = DtProxy.man.taDS.getByScheda(memLayer.ML.QSS("CodSchedaVers")); // a seconda della direzione CERCO se ci siano misure prima/dopo... string where = ""; switch (direction) { case "UP": where = string.Format("CodMisura < '{0}'", CodMisura); break; case "DOWN": where = string.Format("CodMisura > '{0}'", CodMisura); break; default: break; } answ = tab.Select(where).Length > 0; } return answ; } /// /// determina visibilità delete (solo se è ultima misura) /// /// direzione: UP / DOWN /// CodMisura da verificare /// public bool delEnabled(object _CodMisura) { bool answ = false; string CodMisura = _CodMisura.ToString(); if (memLayer.ML.QSS("CodSchedaVers") != "") { // recupero TUTTE le righe della scheda dett corrente DS_Applicazione.DettSchedaDataTable tab = DtProxy.man.taDS.getByScheda(memLayer.ML.QSS("CodSchedaVers")); // a seconda della direzione CERCO se ci siano misure prima/dopo... string where = string.Format("CodMisura > '{0}'", CodMisura); answ = tab.Select(where).Length == 0; } return answ; } protected void ods_Updated(object sender, ObjectDataSourceStatusEventArgs e) { resetSelezione(); } protected void ods_Deleted(object sender, ObjectDataSourceStatusEventArgs e) { resetSelezione(); } /// /// save del record /// /// /// protected void btnSave_Click(object sender, EventArgs e) { // verifico SE sia in editing... if (grView.EditIndex >= 0) { // salvo grView.UpdateRow(grView.EditIndex, false); grView.EditIndex = -1; grView.DataBind(); } else { // sollevo evento nuovo valore... if (eh_reqSave != null) { eh_reqSave(this, new EventArgs()); } } } protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e) { // metto a capo tra i vari tag SE non ci fosse... if (e.InputParameters["NomeMisura"].ToString().IndexOf("][") >= 0) { e.InputParameters["NomeMisura"] = e.InputParameters["NomeMisura"].ToString().Replace("][", "]\n["); } } } }