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[");
}
}
}
}