Files
SSC/CMS_SC/WebUserControls/mod_DettScheda.ascx.cs
T
2015-06-10 12:07:03 +02:00

254 lines
7.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS_SC_Data;
using SteamWare;
namespace CMS_SC.WebUserControls
{
public partial class mod_DettScheda : System.Web.UI.UserControl
{
/// <summary>
/// selezione valore in DettScheda
/// </summary>
public event EventHandler eh_selezioneValore;
/// <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"), "Nuova Misura");
// 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 lbUpDown_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");
}
// SE c'era comando eseguo move...
if (_comando != "")
{
DtProxy.man.taDS.moveUpDown(_comando, CodSchedaSel, VersSel, CodMisuraSel);
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();
}
}
}