/// <summary> /// Funizione ereditata dall'interfaccia che viene richiamata nella parte base dell'algoritmo per eseguire l'ottimizzazione. /// </summary> /// <param name="siglaEntita">Entità da ottimizzare.</param> public virtual void EseguiOttimizzazione(object siglaEntita) { try { Workbook.Application.Run("wbSetGeneralOptions", Arg3: "120", Arg13: "1"); _sheet = DefinedNames.GetSheetName(siglaEntita); _definedNames = new DefinedNames(_sheet, DefinedNames.InitType.CheckNaming); string desEntita = (from r in Workbook.Repository[DataBase.TAB.CATEGORIA_ENTITA].AsEnumerable() where r["IdApplicazione"].Equals(Workbook.IdApplicazione) && r["SiglaEntita"].Equals(siglaEntita) select r["DesEntita"].ToString()).First(); _entitaProprieta.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaProprieta LIKE '%GIORNI_STRUTTURA' AND IdApplicazione = " + Workbook.IdApplicazione; if (_entitaProprieta.Count > 0) { _dataFine = Workbook.DataAttiva.AddDays(int.Parse(_entitaProprieta[0]["Valore"].ToString())); } else { _dataFine = Workbook.DataAttiva.AddDays(Struct.intervalloGiorni); } CheckObj chkObj = _definedNames.Checks.Where(chk => chk.SiglaEntita.Equals(siglaEntita)).FirstOrDefault(); if (chkObj != null) { Excel.Range rng = Workbook.Sheets[_sheet].Range[chkObj.Range.ToString()]; foreach (Excel.Range cell in rng.Cells) { if (cell.Value.Equals("ERRORE")) { SplashScreen.Close(); System.Windows.Forms.MessageBox.Show("Non è possibile ottimizzare l'UP selezionata perché sono presenti degli errori. Controllare i check!", Simboli.NomeApplicazione + " - ATTENZIONE!!!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); return; } } } OmitConstraints(); AddAdjust(siglaEntita); AddConstraints(siglaEntita); AddOpt(siglaEntita); SplashScreen.Close(); Execute(siglaEntita); DeleteExistingAdjust(); Workbook.InsertLog(PSO.Core.DataBase.TipologiaLOG.LogGenera, "Eseguita ottimizzazione " + desEntita); } catch (Exception e) { SplashScreen.Close(); Workbook.Application.ScreenUpdating = true; System.Windows.Forms.MessageBox.Show("Si è verificato un errore nel processo di ottimizzazione. Il messaggio dice '" + e.Message + "'", Simboli.NomeApplicazione + " - ERRORE!!!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } }
/// <summary> /// Implementazione di base del launcher. Restituisce un oggetto CheckOutput vuoto. Il CheckOutput contiene il nodo della TreeView che ha le informazioni del check e lo stato in cui si trova. La classe va sovrascritta in ogni applicativo che contenga funzioni di check. /// </summary> /// <param name="ws">Foglio di lavoro su cui calcolare i check.</param> /// <param name="definedNames">Struttura di indicizzazione dei nomi per il foglio.</param> /// <param name="check">Oggetto di check del quale eseguire il controllo.</param> /// <returns>Oggetto CheckOutput vuoto.</returns> public virtual CheckOutput ExecuteCheck(Excel.Worksheet ws, DefinedNames definedNames, CheckObj check) { return(new CheckOutput()); }