public void AggiornaPrevisione(object siglaEntita) { DateTime dataFine = Workbook.DataAttiva.AddDays(Struct.intervalloGiorni); int mainRow = _definedNames.GetRowByName(Date.SuffissoDATA1); int mainCol = 0; DataView entitaInformazione = new DataView(Workbook.Repository[DataBase.TAB.ENTITA_INFORMAZIONE]); entitaInformazione.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione; string nomeFoglio = DefinedNames.GetSheetName(siglaEntita); Excel.Worksheet ws = Workbook.WB.Sheets[nomeFoglio]; DefinedNames definedNames = new DefinedNames(nomeFoglio, DefinedNames.InitType.Naming); //copio nel main il valore dei totali foreach (DataRowView info in entitaInformazione) { int col = definedNames.GetFirstCol(); int row = definedNames.GetRowByNameSuffissoData(siglaEntita, info["SiglaInformazione"], Date.SuffissoDATA1); Array rngTotali = ws.Range[Range.GetRange(row, col + 25, Struct.intervalloGiorni)].Value as Array; int i = 1; for (DateTime giorno = Workbook.DataAttiva; giorno < dataFine; giorno = giorno.AddDays(1)) { Range[] rngGiornoGas = Sheet.GetRangeGiornoGas(giorno, info, definedNames); Array primoGiorno = ws.Range[rngGiornoGas[0].ToString()].Value as Array; Array secondoGiorno = ws.Range[rngGiornoGas[1].ToString()].Value as Array; if (!(primoGiorno.OfType <double>().Any() || secondoGiorno.OfType <double>().Any())) { rngTotali.SetValue(null, i, 1); } i++; } mainCol = _definedNames.GetColFromName(siglaEntita); Excel.Range rngMain = Workbook.Main.Range[Range.GetRange(mainRow, mainCol, Struct.intervalloGiorni)]; rngMain.Value = rngTotali; } }
protected override bool EsportaAzioneInformazione(object siglaEntita, object siglaAzione, object desEntita, object desAzione, DateTime dataRif, string[] mercati) { DataView entitaAzione = Workbook.Repository[DataBase.TAB.ENTITA_AZIONE].DefaultView; entitaAzione.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaAzione = '" + siglaAzione + "' AND IdApplicazione = " + Workbook.IdApplicazione; if (entitaAzione.Count == 0) { return(false); } switch (siglaAzione.ToString()) { case "E_VDT": string pathStr = PreparePath(Workbook.GetUsrConfigElement("pathExportSisComTerna")); if (Directory.Exists(pathStr)) { if (!CreaVariazioneDatiTecniciXML(siglaEntita, pathStr)) { return(false); } } else { System.Windows.Forms.MessageBox.Show("Il percorso '" + pathStr + "' non è raggiungibile.", Simboli.NomeApplicazione + " - ERRORE!!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return(false); } break; case "MAIL": Workbook.ScreenUpdating = false; string nomeFoglio = DefinedNames.GetSheetName(siglaEntita); DefinedNames definedNames = new DefinedNames(nomeFoglio, DefinedNames.InitType.Naming); var oldActiveWindow = Globals.ThisWorkbook.Application.ActiveWindow; Globals.ThisWorkbook.Worksheets[nomeFoglio].Activate(); List <Range> export = new List <Range>(); //titolo entità export.Add(new Range(definedNames.GetRowByNameSuffissoData(siglaEntita, "T", Date.SuffissoDATA1), definedNames.GetFirstCol() - 2).Extend(colOffset: 2 + Date.GetOreGiorno(Workbook.DataAttiva))); //data export.Add(new Range(Globals.ThisWorkbook.Application.ActiveWindow.SplitRow - 1, definedNames.GetFirstCol() - 2).Extend(colOffset: 2 + Date.GetOreGiorno(Workbook.DataAttiva))); //ora export.Add(new Range(Globals.ThisWorkbook.Application.ActiveWindow.SplitRow, definedNames.GetFirstCol() - 2).Extend(colOffset: 2 + Date.GetOreGiorno(Workbook.DataAttiva))); DataView entitaAzioneInformazione = Workbook.Repository[DataBase.TAB.ENTITA_AZIONE_INFORMAZIONE].DefaultView; entitaAzioneInformazione.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaAzione = '" + siglaAzione + "' AND IdApplicazione = " + Workbook.IdApplicazione; foreach (DataRowView info in entitaAzioneInformazione) { export.Add(new Range(definedNames.GetRowByNameSuffissoData(siglaEntita, info["SiglaInformazione"], Date.SuffissoDATA1), definedNames.GetFirstCol() - 2).Extend(colOffset: 2 + Date.GetOreGiorno(Workbook.DataAttiva))); } if (InviaMail(nomeFoglio, siglaEntita, export)) { } oldActiveWindow.Activate(); Workbook.ScreenUpdating = true; break; } return(true); }