/// <summary> /// Crea la struttura dei nomi del riepilogo definendo 3 righe di titolo (DATA, AZIONE PARDE, AZIONE), una riga per ogni entità, e una colonna per ogni AZIONE con la DATA di riferimento. /// </summary> protected virtual void CreaNomiCelle() { //inserisco tutte le righe _definedNames.AddName(_rigaAttiva++, "DATA"); _definedNames.AddName(_rigaAttiva++, "AZIONI_PADRE"); _definedNames.AddName(_rigaAttiva++, "AZIONI"); foreach (DataRowView categoria in _categorie) { if (Workbook.Repository.Applicazione["VisCategoriaRiepilogo"].Equals("1")) { _definedNames.AddName(_rigaAttiva++, categoria["SiglaCategoria"]); } _entita.RowFilter = "SiglaCategoria = '" + categoria["SiglaCategoria"] + "' AND IdApplicazione = " + Workbook.IdApplicazione; foreach (DataRowView e in _entita) { _definedNames.AddName(_rigaAttiva, e["SiglaEntita"]); _definedNames.AddGOTO(e["SiglaEntita"], Range.R1C1toA1(_rigaAttiva++, _colonnaInizio)); } } //inserisco tutte le colonne _definedNames.AddCol(_colonnaInizio++, "COLONNA_ENTITA"); CicloGiorni((oreGiorno, suffissoData, giorno) => { foreach (DataRowView azione in _azioni) { if (azione["Gerarchia"] != DBNull.Value) { _definedNames.AddCol(_colonnaInizio++, azione["SiglaAzione"], suffissoData); } } }); _definedNames.DumpToDataSet(); }
/// <summary> /// Crea tutte le colonne. /// </summary> private void InitColumns() { //definisco tutte le colonne DataTable categoriaEntita = Workbook.Repository[DataBase.TAB.CATEGORIA_ENTITA]; //Calcolo il massimo numero di entità da mettere affiancate int maxElementCount = (from r in categoriaEntita.AsEnumerable() where r["IdApplicazione"].Equals(_appID) && r["Gerarchia"] != DBNull.Value group r by r["Gerarchia"] into g select g.Count()).Max(); int colonnaAttiva = _struttura.colBlock; for (int i = 0; i < maxElementCount; i++) { colonnaAttiva++; for (int j = 0; j < 4; j++) { _definedNames.AddCol(colonnaAttiva++, "RIF" + (i + 1), "PROGRAMMAQ" + (j + 1)); } } }