public static void ScriviStagione(int idStagione) { var sheetPrevisione = Workbook.Sheets.Cast <Excel.Worksheet>() .Where(s => s.Name == "Previsione") .FirstOrDefault(); bool wasProtected = sheetPrevisione.ProtectContents; if (wasProtected) { sheetPrevisione.Unprotect(Workbook.Password); } if (sheetPrevisione != null) { DefinedNames definedNames = new DefinedNames("Previsione"); DateTime dataFine = Workbook.DataAttiva.AddDays(Struct.intervalloGiorni); Range rng = definedNames.Get("CT_TORINO", "STAGIONE", Date.SuffissoDATA1, Date.GetSuffissoOra(1)).Extend(colOffset: Date.GetOreIntervallo(dataFine)); sheetPrevisione.Range[rng.ToString()].Value = idStagione; if (!Simboli.ModificaDati && DataBase.OpenConnection()) { Handler.StoreEdit(sheetPrevisione, sheetPrevisione.Range[rng.ToString()]); DataBase.SalvaModificheDB(); DataBase.CloseConnection(); } } if (wasProtected) { sheetPrevisione.Protect(Workbook.Password); } }
/// <summary> /// Launcher per l'azione di esportazione, contiene il metodo standard di handling per eventuali errori. /// </summary> /// <param name="siglaEntita">Sigla dell'entità dell'export.</param> /// <param name="siglaAzione">Sigla dell'azione dell'export</param> /// <param name="desEntita">Descrizione dell'entità.</param> /// <param name="desAzione">Descrizione dell'azione.</param> /// <param name="dataRif">La data di riferimento per cui esportare i dati.</param> /// <returns>True se l'azione di esportazione è andata a buon fine, false altrimenti.</returns> public virtual bool RunExport(object siglaEntita, object siglaAzione, object desEntita, object desAzione, DateTime dataRif, string[] mercati) { try { if (EsportaAzioneInformazione(siglaEntita, siglaAzione, desEntita, desAzione, dataRif, mercati)) { if (DataBase.OpenConnection()) { DataBase.InsertApplicazioneRiepilogo(siglaEntita, siglaAzione, dataRif); } DataBase.CloseConnection(); return(true); } return(false); } catch (Exception e) { if (DataBase.OpenConnection()) { Workbook.InsertLog(PSO.Core.DataBase.TipologiaLOG.LogErrore, "RunExport [" + siglaEntita + ", " + siglaAzione + "]: " + e.Message); } DataBase.CloseConnection(); System.Windows.Forms.MessageBox.Show(e.Message, Simboli.NomeApplicazione + " - ERRORE!!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return(false); } }
/// <summary> /// Prepara il path sostituendo le parti dinamiche con valori appropriati. /// </summary> /// <param name="path"></param> /// <returns></returns> public static string PreparePath(UserConfigElement path) { //Controllo stato connessione string p; if (Workbook.Ambiente == Simboli.PROD) { p = DataBase.OpenConnection() ? path.Value : path.Emergenza; } else { p = DataBase.OpenConnection() ? path.Test : path.Emergenza; } DataBase.CloseConnection(); return(p); }
/// <summary> /// Aggiorna i label indicanti lo stato dei Database in seguito ad un cambio di stato. /// </summary> public static void AggiornaLabelStatoDB() { //disabilito l'aggiornamento in caso di modifica dati... lo ripeto alla chiusura in caso if (!Simboli.ModificaDati) { bool isProtected = true; try { Workbook.WB.Application.ScreenUpdating = false; isProtected = Main.ProtectContents; if (isProtected) { Main.Unprotect(Workbook.Password); } //refresh nel caso stia passando da emergenza a normale e viceversa Riepilogo main = new Riepilogo(Workbook.Main); if (DataBase.OpenConnection()) { Dictionary <PSO.Core.DataBase.NomiDB, ConnectionState> stato = DataBase.StatoDB; Simboli.SQLServerOnline = stato[PSO.Core.DataBase.NomiDB.SQLSERVER] == ConnectionState.Open; Simboli.ImpiantiOnline = stato[PSO.Core.DataBase.NomiDB.IMP] == ConnectionState.Open; Simboli.ElsagOnline = stato[PSO.Core.DataBase.NomiDB.ELSAG] == ConnectionState.Open; if (_wasInEmergency) { main.UpdateData(); } _wasInEmergency = false; DataBase.CloseConnection(); } else { Simboli.SQLServerOnline = false; Simboli.ImpiantiOnline = false; Simboli.ElsagOnline = false; if (!_wasInEmergency) { main.RiepilogoInEmergenza(); } _wasInEmergency = true; } if (isProtected) { Main.Protect(Workbook.Password); } } catch { } //lo faccio a parte perché se andasse in errore prima deve almeno provare a riattivare lo screen updating!!! try { Workbook.WB.Application.ScreenUpdating = true; } catch { } } }