Files
SSC/CMS_SC/WebUserControls/mod_DettScheda.ascx.cs
2018-02-23 17:43:15 +01:00

298 lines
7.8 KiB
C#

using CMS_SC_Data;
using SteamWare;
using System;
using System.Web.UI.WebControls;
namespace CMS_SC.WebUserControls
{
public partial class mod_DettScheda : SteamWare.UserControl
{
/// <summary>
/// selezione valore in DettScheda
/// </summary>
public event EventHandler eh_selezioneValore;
/// <summary>
/// richiesta SAVE (da enter)
/// </summary>
public event EventHandler eh_reqSave;
/// <summary>
/// sollevo evento selezione
/// </summary>
protected void raiseEvent()
{
// sollevo evento nuovo valore...
if (eh_selezioneValore != null)
{
eh_selezioneValore(this, new EventArgs());
}
}
/// <summary>
/// caricamento macchina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// dimensione pagina grid view
/// </summary>
public int pageSize
{
get
{
return grView.PageSize;
}
set
{
grView.PageSize = value;
}
}
/// <summary>
/// richiesta di aggiunta record, tutto a zero!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbAddNew_Click(object sender, EventArgs e)
{
insertNewRec();
}
/// <summary>
/// inserisco un nuovo record da completare...
/// </summary>
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();
}
}
/// <summary>
/// crea un nuovo record ...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNewFromEmpty_Click(object sender, EventArgs e)
{
insertNewRec();
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// Scheda selezionata
/// </summary>
public string CodSchedaSel
{
get
{
string answ = "";
try
{
answ = grView.SelectedDataKey["CodScheda"].ToString();
}
catch
{ }
return answ;
}
}
/// <summary>
/// Versione selezionata
/// </summary>
public int VersSel
{
get
{
int answ = -1;
try
{
answ = Convert.ToInt32(grView.SelectedDataKey["Vers"].ToString());
}
catch
{ }
return answ;
}
}
/// <summary>
/// Misura selezionata
/// </summary>
public string CodMisuraSel
{
get
{
string answ = "";
try
{
answ = grView.SelectedDataKey["CodMisura"].ToString();
}
catch
{ }
return answ;
}
}
/// <summary>
/// salvo in session il prox comando
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lb_Click(object sender, EventArgs e)
{
SteamWare.memLayer.ML.setSessionVal("nextObjCommand", ((LinkButton)sender).CommandArgument);
}
/// <summary>
/// selezionato valore
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// resetto selezione
/// </summary>
private void resetSelezione()
{
grView.SelectedIndex = -1;
grView.DataBind();
raiseEvent();
}
/// <summary>
/// determina visibilità frecce spostamento
/// </summary>
/// <param name="direction">direzione: UP / DOWN</param>
/// <param name="CodMisura">CodMisura da verificare</param>
/// <returns></returns>
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;
}
/// <summary>
/// determina visibilità delete (solo se è ultima misura)
/// </summary>
/// <param name="direction">direzione: UP / DOWN</param>
/// <param name="CodMisura">CodMisura da verificare</param>
/// <returns></returns>
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();
}
/// <summary>
/// save del record
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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[");
}
}
}
}