using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SteamWare; using System.Text; using GMW_data; namespace GMW_Term.WebUserControls { public partial class mod_searchRes : System.Web.UI.UserControl { /// /// idxBlocco selezionato /// protected int idxBlocco { get { return memLayer.ML.IntSessionObj("IdxBlocco_sel"); } set { memLayer.ML.setSessionVal("IdxBlocco_sel", value); } } /// /// udc selezionato /// protected string udc { get { return memLayer.ML.StringSessionObj("UDC4det_sel"); } set { memLayer.ML.setSessionVal("UDC4det_sel", value); } } /// /// caricamento pagina /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { idxBlocco = -1; grViewMag.SelectedIndex = 0; } showData(); registraScripts(); } /// /// registro scripts gestione navigazione via arrow keys /// private void registraScripts() { // registro script x gestione keyUp/keyDown ClientScriptManager cs = Page.ClientScript; String csname = "keyScript"; Type cstype = this.GetType(); // Check to see if the startup script is already registered. if (!cs.IsStartupScriptRegistered(cstype, csname)) { string scriptKeyNav = @"function move(e) { var key = 0; if(window.event) key = event.keyCode; else key = e.keyCode; if(key == 38) document.getElementById('{ctlName}_btnUp').click(); if(key == 40) document.getElementById('{ctlName}_btnDown').click(); if(key == 37) document.getElementById('{ctlName}_btnLeft').click(); if(key == 39) document.getElementById('{ctlName}_btnRight').click(); if(key == 13) document.getElementById('{ctlName}_btnRight').click(); } document.onkeydown=move; "; // rif x codici: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes scriptKeyNav = scriptKeyNav.Replace("{ctlName}", this.UniqueID.Replace("$", "_")); // registro script! cs.RegisterClientScriptBlock(cstype, csname, scriptKeyNav, true); } } /// /// mostra i dati corretti /// private void showData() { bool showBlocchi = true; bool showUdc = false; bool showDetUdc = false; // controllo se ho un idxBlocco sel if (idxBlocco > 0) { showBlocchi = false; showUdc = true; } // controllo se ho un UDC selezionato if (udc !="") { showBlocchi = false; showUdc = false; showDetUdc = true; } pnlBlocchi.Visible = showBlocchi; pnlUdc.Visible = showUdc; pnlDetailUdc.Visible = showDetUdc; // fix frecce... if (!showDetUdc) { btnUp.Enabled = true; btnDown.Enabled = true; btnLeft.Enabled = true; btnRight.Enabled = true; btnUp.ImageUrl = "../Images/ArrowUp.png"; btnDown.ImageUrl = "../Images/ArrowDown.png"; btnLeft.ImageUrl = "../Images/ArrowLeft.png"; btnRight.ImageUrl = "../Images/ArrowRight.png"; showBottomBtn(false); } else // ...se showDetUdc --> mostro attivo solo ritorno! { btnUp.Enabled = false; btnDown.Enabled = false; btnLeft.Enabled = true; btnRight.Enabled = false; btnUp.ImageUrl = "../Images/ArrowUpDisab.png"; btnDown.ImageUrl = "../Images/ArrowDownDisab.png"; btnLeft.ImageUrl = "../Images/ArrowLeft.png"; btnRight.ImageUrl = "../Images/ArrowRightDisab.png"; // ...e mostro button x andare alle liste di prelievo showBottomBtn(true); btn1.Text = string.Format("{0} [Alt+{1}]", traduci("btnTermTakeListBarcode"), 1); btn1.AccessKey = "1"; btn2.Text = string.Format("{0} [Alt+{1}]", traduci("btnTermSmartList"), 9); btn2.AccessKey = "9"; btn3.Text = string.Format("{0} [Alt+{1}]", traduci("btnTermMenuMov"), 8); btn3.AccessKey = "8"; checkLavoriInCorso(); } } /// /// imposta visibilità buttons delle azioni di link /// /// private void showBottomBtn(bool doShow) { btn1.Visible = doShow; btn2.Visible = doShow; btn3.Visible = doShow; } /// /// wrapper traduzione termini /// /// /// public string traduci(string lemma) { return user_std.UtSn.Traduci(lemma); } /// /// va alla pagina dei buttons principale /// /// /// protected void btnButtonsHome_Click(object sender, EventArgs e) { Response.Redirect("~/Search.aspx"); } /// /// cambio index /// /// /// protected void grViewMag_SelectedIndexChanged(object sender, EventArgs e) { reqDetailMag(); } /// /// cambio index /// /// /// protected void grViewUdc_SelectedIndexChanged(object sender, EventArgs e) { reqDetailUdc(); } #region gestione frecce area MAG/Udc /// /// Mag: richiesto di salire di 1 riga /// /// /// protected void btnUp_Click(object sender, ImageClickEventArgs e) { // controllo se sono in modalità Mag if (idxBlocco < 0) { MoveUpMag(); } else // modalità UDC { MoveUpUdc(); } } /// /// Mag: richiesto di scendere di 1 riga /// /// /// protected void btnDown_Click(object sender, ImageClickEventArgs e) { if (idxBlocco < 0) { MoveDownMag(); } else { MoveDownUdc(); } } /// /// Mag: richiesto passare a dettaglio! /// /// /// protected void btnRight_Click(object sender, ImageClickEventArgs e) { // controllo se sono in modalità Mag if (idxBlocco < 0) { reqDetailMag(); } else // modalità UDC { reqDetailUdc(); } } /// /// Mag: richiesto passare a pag precedente /// /// /// protected void btnLeft_Click(object sender, ImageClickEventArgs e) { // controllo se sono in modalità Mag if (idxBlocco < 0) { resetSearch(); } else // modalità UDC { // controllo se c'è UDC e quindi richiesta dettaglio UDC if (udc != "") { resetDetailUdc(); } else { resetUdc(); } } } #endregion #region gestione operazioni spostamento/dettaglio su gridview /// /// sposta UP selezione blocco MAG /// private void MoveUpMag() { int i = grViewMag.SelectedIndex; // condizione 1: sono entro la pagina if (i > 0) { grViewMag.SelectedIndex = grViewMag.SelectedIndex - 1; } else { // condizione 2: ho altre pagine precedenti if (grViewMag.PageIndex > 0) { grViewMag.PageIndex = grViewMag.PageIndex - 1; // seleziono prima riga grViewMag.SelectedIndex = grViewMag.PageSize - 1; } } } /// /// sposta DOWN selezione blocco MAG /// private void MoveDownMag() { int i = grViewMag.SelectedIndex; // condizione 1: sono entro la pagina if (i < grViewMag.Rows.Count - 1) { grViewMag.SelectedIndex = grViewMag.SelectedIndex + 1; } else { // condizione 2: ho altre pagine successive if (grViewMag.PageIndex < grViewMag.PageCount) { grViewMag.PageIndex = grViewMag.PageIndex + 1; // seleziono prima riga grViewMag.SelectedIndex = 0; } } } /// /// richiesta dettaglio Mag /// private void reqDetailMag() { idxBlocco = Convert.ToInt32(grViewMag.SelectedDataKey["IdxBlocco"].ToString()); grViewUdc.SelectedIndex = 0; grViewUdc.PageIndex = 0; showData(); } /// /// reset a ricerca /// private void resetSearch() { Response.Redirect("~/Search.aspx"); } /// /// sposta UP selezione blocco UDC /// private void MoveUpUdc() { int i = grViewUdc.SelectedIndex; // condizione 1: sono entro la pagina if (i > 0) { grViewUdc.SelectedIndex = grViewUdc.SelectedIndex - 1; //grViewUdc.DataBind(); } else { // condizione 2: ho altre pagine precedenti if (grViewUdc.PageIndex > 0) { grViewUdc.PageIndex = grViewUdc.PageIndex - 1; // seleziono prima riga grViewUdc.SelectedIndex = grViewUdc.PageSize - 1; } } grViewUdc.DataBind(); } /// /// sposta DOWN selezione blocco UDC /// private void MoveDownUdc() { int i = grViewUdc.SelectedIndex; // condizione 1: sono entro la pagina if (i < grViewUdc.Rows.Count - 1) { grViewUdc.SelectedIndex = grViewUdc.SelectedIndex + 1; //grViewUdc.DataBind(); } else { // condizione 2: ho altre pagine successive if (grViewUdc.PageIndex < grViewUdc.PageCount) { grViewUdc.PageIndex = grViewUdc.PageIndex + 1; // seleziono prima riga grViewUdc.SelectedIndex = 0; } } grViewUdc.DataBind(); } /// /// UDC: richiesto passare a dettaglio! /// /// /// private void reqDetailUdc() { udc = grViewUdc.SelectedDataKey["UDC"].ToString(); showData(); } /// /// reset ricerca UDC /// private void resetUdc() { idxBlocco = -1; grViewMag.SelectedIndex = 0; grViewMag.PageIndex = 0; grViewMag.DataBind(); showData(); } /// /// reset ricerca dettaglio UDC /// private void resetDetailUdc() { udc = ""; grViewUdc.DataBind(); showData(); } /// /// Button 1: va a pagina UDC /// /// /// protected void btn1_Click(object sender, EventArgs e) { Response.Redirect("UDC.aspx"); } /// /// Button 2: va a smart list /// /// /// protected void btn2_Click(object sender, EventArgs e) { Response.Redirect("SmartList.aspx"); } /// /// Button 3: va a spostamenti /// /// /// protected void btn3_Click(object sender, EventArgs e) { Response.Redirect("MakeMov.aspx"); } /// /// verifica se ci siano in corso smartList o LDP normali e disabilita il contrario /// private void checkLavoriInCorso() { bool hasSmartList = false; try { hasSmartList = (MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart").Rows.Count > 0); } catch { } if (hasSmartList) { // smartList attiva btn1.Enabled = false; } else if (memLayer.ML.isInSessionObject("CodListaAttiva")) { // LDP tradizionale attiva btn2.Enabled = false; } else { // niente attivo! btn1.Enabled = true; btn2.Enabled = true; } } #endregion } }