using System; using System.Data; using ceTe.DynamicPDF.Text; using PDFGenerator.Presentation.Section.Tables; using PDFGenerator.Presentation.Section.Charts; using PDFGenerator.BusinessLayer; using ceTe.DynamicPDF; using System.Collections; namespace PDFGenerator.Presentation.Section { public class SIstogramma { protected string Titolo = " "; protected DataTable tabTortaTabella; protected DataTable tabTortaTotali; protected DataTable tabTortaContoCorrenteBancaFideuram; protected DataTable tabTortaLineaSelf; protected DataTable tabTortaPatrimonioNonRappresentabile; protected DataTable tabTotale; protected DataTable tabTortaPartiteViaggianti; /*** ESG DataTable delle caratteristiche ***/ protected DataTable tabCaratteristiche; /********************************************/ private bool _noIndicizzato; protected DataTable tabNota; protected DocumentPDF document; protected float dim = 0; protected DatiTabella datitab = new DatiTabella(); protected bool salto = false; protected int ChartHeigth = 145; protected string _header; protected bool _saltopaginaeffettuato = false; /**** Direct Banker 23/03/2023 - Pino *****/ protected string DirectBanker; protected DataTable tabMacroAssetClass; /******************************************/ private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); public SIstogramma() { _noIndicizzato = false; _header = ""; } #region ISezione Members protected void writeSezione(DataThread datathread) { int MaxRow; bool cut = true; DataTable vista; Tabella tab = new Tabella(); datitab.table = tabTortaTabella; vista = datitab.table; if (document == null) document = datathread.DocumentPDF; datitab.setY(document.getLastPos()); datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCellSpace(0); int rTotTortaPatrimonioNonRappresentabile = 0; int rTotTortaContoCorrenteBancaFideuram = 0; int rTotTortaLineaSelf = 0; int rTotTotale = 0; if (tabTortaPatrimonioNonRappresentabile != null) rTotTortaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile.Rows.Count; if (tabTortaContoCorrenteBancaFideuram != null) rTotTortaContoCorrenteBancaFideuram = tabTortaContoCorrenteBancaFideuram.Rows.Count; if (tabTortaLineaSelf != null) rTotTortaLineaSelf = tabTortaLineaSelf.Rows.Count; if (tabTotale != null) rTotTotale = tabTotale.Rows.Count; //eventuali operazioni sul dataset //calcola se entra nella pagina altrimenti aggiunge una nuova pagina. float altezzaNotaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile == null ? 0 : tabTortaPatrimonioNonRappresentabile.Rows.Count; altezzaNotaPatrimonioNonRappresentabile = altezzaNotaPatrimonioNonRappresentabile * 30; //V if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile)) //Aggiunto 30 per non far sforare la S10 if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile + 30)) document.addPage(); //if (_noIndicizzato) // document.setTitolo("SOSTITUIRE_TITOLO"); //else if (_noIndicizzato) document.setTitolo(datathread.SezioneReport.Titolo); else { // Inizio: aggiunto per via del font = 8 sul nuovo report di Diagnosi if ((datathread.TipoReport.ToUpper() == "DIAGNOSI") && ((datathread.SezioneReport.Codice == "S153") || (datathread.SezioneReport.Codice == "S154") || (datathread.SezioneReport.Codice == "S163"))) { document.setSezTitolo(datathread.SezioneReport.Titolo); document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8); } // Fine: aggiunto per via del font = 8 sul nuovo report di Diagnosi else if (datathread.TipoReport.ToUpper() == "DIAGNOSI") { document.setSezTitoloDiagnosi(datathread.SezioneReport.Titolo); document.setChapterHeader(Header); } else { document.setSezTitolo(datathread.SezioneReport.Titolo); document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8); } } //document.setHeaderSpace(10); // Grafico DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(datitab.table); view.RowFilter = ""; dati.dataTab = view.ToTable(false, this.setTableForIsto()); switch (dati.dataTab.Rows.Count) { case 2: dati.setHeight(ChartHeigth - 43); break; case 3: dati.setHeight(ChartHeigth - 25); break; case 4: dati.setHeight(ChartHeigth); //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); break; case 5: dati.setHeight(ChartHeigth + 24); break; default: //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()+2.5))); dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + (datitab.GetRowDim() * (datitab.getNumRow() + datitab.GetRowDim() + 10))); break; } dati.setWidth(200); Istogramma isto = new Istogramma(); //document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 12); /// Buona ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); var xrowDim = datitab.GetRowDim(); if (tabTortaTabella.Rows.Count == 18 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) { xrowDim--; } datitab.SetRowDim(xrowDim); while (cut) { if (vista.Rows.Count != 0 && document.checkMargin(datitab.GetRowDim() * (vista.Rows.Count + 2 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale) + dim)) { MaxRow = document.getWritableRow(23, false); //23 //if (tabTortaTabella.Rows.Count > 17 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) // MaxRow = document.getWritableRow(19, false); // ulteriore controllo per evitare che la nota sfori sul footer. Questa gestione è da rifare totalmente. if (document.checkMargin((MaxRow + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale + altezzaNotaPatrimonioNonRappresentabile) * 23)) MaxRow -= 1; vista.Columns.Add("ID"); int i = 0; cut = false; foreach (DataRow myRow in vista.Rows) { if (i < MaxRow - (1 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale)) myRow["ID"] = 1; else { myRow["ID"] = 2; cut = true; } i++; } view = new DataView(vista); view.RowFilter = ("ID = 1"); } else cut = false; datitab.table = view.ToTable(false, setTableForTable()); datitab.setY(document.getLastPos()); datitab.setX(document.getMargineLeft()); //setta posizione tabella document.InsertTable(tab.getTabella(datitab)); dim = datitab.GetRowDim() * (datitab.getNumRow() + 1); if (cut) { document.changePage(389, dim + 20); document.nextPage(document.getMargineLeft()); datitab.setHeader(); dim = 0; view = new DataView(vista); view.RowFilter = ("ID = 2"); vista = view.ToTable(); vista.Columns.Remove(vista.Columns["ID"]); _saltopaginaeffettuato = true; } } // Totale della griglia datitab = new DatiTabella(); datitab.table = tabTortaTotali; datitab.setY(document.getLastPos() + dim); datitab.setX(document.getMargineLeft()); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tab.getTabella(datitab)); float yRect = datitab.getY() + 13; float yLineHeader = datitab.getY() + 12; // Barra colorata del footer anche estesa al grafico switch (dati.dataTab.Rows.Count) { case 3: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 82, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); break; default: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRect, 199, 23, 0, new RgbColor(232, 236, 237))); break; } //if (dati.dataTab.Rows.Count == 4) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); //else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); dim += datitab.GetRowDim() * datitab.getNumRow(); if (tabTortaPatrimonioNonRappresentabile != null) { DatiTabella datitabPatrimonioNonRappresentabile = new DatiTabella(); datitabPatrimonioNonRappresentabile.table = tabTortaPatrimonioNonRappresentabile; datitabPatrimonioNonRappresentabile.SetRowDim(xrowDim); datitabPatrimonioNonRappresentabile.setY(document.getLastPos() + dim); datitabPatrimonioNonRappresentabile.setX(document.getMargineLeft()); datitabPatrimonioNonRappresentabile.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabPatrimonioNonRappresentabile.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabPatrimonioNonRappresentabile.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabPatrimonioNonRappresentabile)); dim += datitabPatrimonioNonRappresentabile.GetRowDim() * datitabPatrimonioNonRappresentabile.getNumRow(); } if (tabTortaContoCorrenteBancaFideuram != null) { DatiTabella datitabContoCorrenteBancaFideuram = new DatiTabella(); datitabContoCorrenteBancaFideuram.table = tabTortaContoCorrenteBancaFideuram; datitabContoCorrenteBancaFideuram.SetRowDim(xrowDim); datitabContoCorrenteBancaFideuram.setY(document.getLastPos() + dim); datitabContoCorrenteBancaFideuram.setX(document.getMargineLeft()); datitabContoCorrenteBancaFideuram.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabContoCorrenteBancaFideuram.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabContoCorrenteBancaFideuram.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabContoCorrenteBancaFideuram)); dim += datitabContoCorrenteBancaFideuram.GetRowDim() * datitabContoCorrenteBancaFideuram.getNumRow(); } if (tabTortaLineaSelf != null) { DatiTabella datitabLineaSelf = new DatiTabella(); datitabLineaSelf.table = tabTortaLineaSelf; datitabLineaSelf.SetRowDim(xrowDim); datitabLineaSelf.setY(document.getLastPos() + dim); datitabLineaSelf.setX(document.getMargineLeft()); datitabLineaSelf.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabLineaSelf.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabLineaSelf.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabLineaSelf)); dim += datitabLineaSelf.GetRowDim() * datitabLineaSelf.getNumRow(); } if (tabTortaPartiteViaggianti != null) { DatiTabella datitabPartiteViaggianti = new DatiTabella(); datitabPartiteViaggianti.table = tabTortaPartiteViaggianti; datitabPartiteViaggianti.setY(document.getLastPos() + dim); datitabPartiteViaggianti.setX(document.getMargineLeft()); datitabPartiteViaggianti.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabPartiteViaggianti.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabPartiteViaggianti.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabPartiteViaggianti)); dim += datitabPartiteViaggianti.GetRowDim() * datitabPartiteViaggianti.getNumRow(); } if (tabTotale != null) { DatiTabella datitabContoTotale = new DatiTabella(); tabTotale.Columns.Add(); datitabContoTotale.table = tabTotale; datitabContoTotale.setY(document.getLastPos() + dim); datitabContoTotale.setX(document.getMargineLeft()); datitabContoTotale.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitabContoTotale.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabContoTotale.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tab.getTabella(datitabContoTotale)); dim += datitabContoTotale.GetRowDim() * datitabContoTotale.getNumRow(); } // Scrittura del footer sul grafico FormatNum format = new FormatNum(); ArrayList Labels = format.CreateCustomPerc148(dati.getValMax(), dati.getValMin()); switch (dati.dataTab.Rows.Count) { case 3: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 91, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 115, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 135, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; default: float passo = 40.0F; for (int i = 0; i <= Labels.Count - 1; ++i) if (i == 0) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 265F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //float passo = 40.0F; //23.5F; //294.5F ////float x = datitab.getX(); ////float barWidth = dati.getWidth(); //for (int i = 0; i <= Labels.Count-1; ++i) // if (i == 0) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 270F + i, yRect, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 270F + (passo * i), yRect, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, yRect, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, yRect, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, yRect, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; } //if (dati.dataTab.Rows.Count == 4) //{ // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 115, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //} //else //{ // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 135, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //} dim += datitab.GetRowDim() * datitab.getNumRow(); } protected string[] setTableForTable() { string[] Columns = new String[6]; //eventuali operazioni sul dataset Columns[0] = "Descrizione"; Columns[1] = "Controvalore"; Columns[2] = "Percentuale"; Columns[3] = "Red"; Columns[4] = "Green"; Columns[5] = "Blue"; return Columns; } protected string[] setTableForIsto() { string[] Columns = new String[4]; Columns[0] = "Percentuale"; Columns[1] = "Red"; Columns[2] = "Green"; Columns[3] = "Blue"; return Columns; } /***** Fix per FD 30/05/2023 - Pino ****/ protected string[] setTableForIsto190() { string[] Columns = new String[4]; Columns[0] = "percentuale_modello"; Columns[1] = "Red"; Columns[2] = "Green"; Columns[3] = "Blue"; return Columns; } /***************************************/ protected string[] setTableForIstoESG() { string[] Columns = new String[4]; Columns[0] = "PercentualeESG"; Columns[1] = "Red"; Columns[2] = "Green"; Columns[3] = "Blue"; return Columns; } protected string[] setTableForTableNoControvalore() { string[] Columns = new String[5]; //eventuali operazioni sul dataset Columns[0] = "Descrizione"; Columns[1] = "Percentuale"; Columns[2] = "Red"; Columns[3] = "Green"; Columns[4] = "Blue"; return Columns; } /*** Fix FD 30/05/2023 - Pino ***/ protected string[] setTableForFD() { string[] Columns = new String[6]; //eventuali operazioni sul dataset Columns[0] = "AssetClassName"; Columns[1] = "PercentualeString"; Columns[2] = "percentuale_modello_string"; Columns[3] = "Red"; Columns[4] = "Green"; Columns[5] = "Blue"; return Columns; } protected string[] setTableForFDAssetClass() { string[] Columns = new String[6]; //eventuali operazioni sul dataset Columns[0] = "AssetClassName"; Columns[1] = "Percentuale"; Columns[2] = "percentuale_modello"; Columns[3] = "Red"; Columns[4] = "Green"; Columns[5] = "Blue"; return Columns; } /********************************/ protected void writeSezioneComboSX(DataThread datathread) { int MaxRow; bool cut = true; DataTable vista; Tabella tab = new Tabella(); datitab.table = tabTortaTabella; vista = datitab.table; datitab.setY(document.getLastPos()); datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(115, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCellSpace(0); int rTotTortaPatrimonioNonRappresentabile = 0; int rTotTortaContoCorrenteBancaFideuram = 0; int rTotTotale = 0; if (tabTortaPatrimonioNonRappresentabile != null) rTotTortaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile.Rows.Count; if (tabTortaContoCorrenteBancaFideuram != null) rTotTortaContoCorrenteBancaFideuram = tabTortaContoCorrenteBancaFideuram.Rows.Count; if (tabTotale != null) rTotTotale = tabTotale.Rows.Count; //eventuali operazioni sul dataset //calcola se entra nella pagina altrimenti aggiunge una nuova pagina. In questa sezione il # di righe è fissato if (document.checkMargin(ChartHeigth + 20 + datitab.GetRowDim() * 2)) document.addPage(); if (_noIndicizzato) document.setTitolo(datathread.SezioneReport.Titolo); else { if (datathread.TipoReport.ToUpper() == "DIAGNOSI") document.setSezTitoloDiagnosi(datathread.SezioneReport.Titolo); else document.setSezTitolo(datathread.SezioneReport.Titolo); } document.setChapterHeader(Header); DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(datitab.table); view.RowFilter = ""; dati.dataTab = view.ToTable(false, this.setTableForIsto()); dati.setHeight(ChartHeigth); dati.setWidth(140); Istogramma isto = new Istogramma(); document.InsertGrafico(isto.getGrafico(dati), 100, document.getLastPos()); dim += (ChartHeigth + 20); ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); while (cut) { if (vista.Rows.Count != 0 && document.checkMargin((datitab.GetRowDim() * (vista.Rows.Count + 2 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTotale)) + dim)) { MaxRow = document.getWritableRow(datitab.GetRowDim(), false) - (int)(dim / datitab.GetRowDim()) - 1; vista.Columns.Add("ID"); int i = 0; cut = false; foreach (DataRow myRow in vista.Rows) { if (i < MaxRow - (rTotTortaContoCorrenteBancaFideuram + rTotTotale + rTotTortaPatrimonioNonRappresentabile + 2)) myRow["ID"] = 1; else { myRow["ID"] = 2; cut = true; } i++; } view = new DataView(vista); view.RowFilter = ("ID = 1"); } else cut = false; datitab.table = view.ToTable(false, setTableForTable()); datitab.setY(document.getLastPos() + dim); datitab.setX(document.getMargineLeft()); //setta posizione tabella document.InsertTable(tab.getTabella(datitab)); dim += datitab.GetRowDim() * (datitab.getNumRow() + 1); if (cut) { document.changePage(237, dim); document.nextPage(document.getMargineLeft()); datitab.setHeader(); salto = true; dim = 0; view = new DataView(vista); view.RowFilter = ("ID = 2"); vista = view.ToTable(); vista.Columns.Remove(vista.Columns["ID"]); } } datitab = new DatiTabella(); if (tabTortaTotali != null) { datitab.table = tabTortaTotali; datitab.setY(document.getLastPos() + dim); datitab.setX(document.getMargineLeft()); datitab.setCell(115, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true, 7); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true, 7); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true, 7); document.InsertTable(tab.getTabella(datitab)); dim += datitab.GetRowDim() * datitab.getNumRow(); } if (tabTortaPatrimonioNonRappresentabile != null) { DatiTabella datitabPatrimonioNonRappresentabile = new DatiTabella(); datitabPatrimonioNonRappresentabile.table = tabTortaPatrimonioNonRappresentabile; datitabPatrimonioNonRappresentabile.setY(document.getLastPos() + dim); datitabPatrimonioNonRappresentabile.setX(document.getMargineLeft()); datitabPatrimonioNonRappresentabile.setCell(115, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabPatrimonioNonRappresentabile.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabPatrimonioNonRappresentabile.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabPatrimonioNonRappresentabile)); dim += datitabPatrimonioNonRappresentabile.GetRowDim() * datitabPatrimonioNonRappresentabile.getNumRow(); } if (tabTortaContoCorrenteBancaFideuram != null) { DatiTabella datitabContoCorrenteBancaFideuram = new DatiTabella(); datitabContoCorrenteBancaFideuram.table = tabTortaContoCorrenteBancaFideuram; datitabContoCorrenteBancaFideuram.setY(document.getLastPos() + dim); datitabContoCorrenteBancaFideuram.setX(document.getMargineLeft()); datitabContoCorrenteBancaFideuram.setCell(115, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabContoCorrenteBancaFideuram.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabContoCorrenteBancaFideuram.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabContoCorrenteBancaFideuram)); dim += datitabContoCorrenteBancaFideuram.GetRowDim() * datitabContoCorrenteBancaFideuram.getNumRow(); } if (tabTortaPartiteViaggianti != null) { DatiTabella datitabPartiteViaggianti = new DatiTabella(); datitabPartiteViaggianti.table = tabTortaPartiteViaggianti; datitabPartiteViaggianti.setY(document.getLastPos() + dim); datitabPartiteViaggianti.setX(document.getMargineLeft()); datitabPartiteViaggianti.setCell(115, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabPartiteViaggianti.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabPartiteViaggianti.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabPartiteViaggianti)); dim += datitabPartiteViaggianti.GetRowDim() * datitabPartiteViaggianti.getNumRow(); } if (tabTotale != null) { DatiTabella datitabContoTotale = new DatiTabella(); tabTotale.Columns.Add(); datitabContoTotale.table = tabTotale; datitabContoTotale.setY(document.getLastPos() + dim); datitabContoTotale.setX(document.getMargineLeft()); datitabContoTotale.setCell(115, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true, 7); datitabContoTotale.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true, 7); datitabContoTotale.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true, 7); document.InsertTable(tab.getTabella(datitabContoTotale)); dim += datitabContoTotale.GetRowDim() * datitabContoTotale.getNumRow(); } } protected void writeSezione167() { } protected void writeSezione148(DataThread datathread) { int MaxRow; bool cut = true; DataTable vista; Tabella tab = new Tabella(); datitab.table = tabTortaTabella; float MargineTop; vista = datitab.table; if (document == null) document = datathread.DocumentPDF; MargineTop = document.getLastPos(); datitab.table.Columns[1].Caption = string.Empty; datitab.setY(document.getLastPos()); datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // ********************Modifica Andrea ***********************************************// datitab.setCell(0, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false, 0); // 90 //************************************************************************************// datitab.setCell(125, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // 120 datitab.setCellSpace(0); int rTotTortaPatrimonioNonRappresentabile = 0; int rTotTortaContoCorrenteBancaFideuram = 0; int rTotTortaLineaSelf = 0; int rTotTotale = 0; int imposs = 1000; if (tabTortaPatrimonioNonRappresentabile != null) rTotTortaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile.Rows.Count; if (tabTortaContoCorrenteBancaFideuram != null) rTotTortaContoCorrenteBancaFideuram = tabTortaContoCorrenteBancaFideuram.Rows.Count; if (tabTortaLineaSelf != null) rTotTortaLineaSelf = tabTortaLineaSelf.Rows.Count; if (tabTotale != null && imposs == 3) rTotTotale = tabTotale.Rows.Count; //eventuali operazioni sul dataset //calcola se entra nella pagina altrimenti aggiunge una nuova pagina. float altezzaNotaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile == null ? 0 : tabTortaPatrimonioNonRappresentabile.Rows.Count; altezzaNotaPatrimonioNonRappresentabile = altezzaNotaPatrimonioNonRappresentabile * 30; //V if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile)) //Aggiunto 30 per non far sforare la S10 if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile + 30)) document.addPage(); //if (_noIndicizzato) // document.setTitolo("SOSTITUIRE_TITOLO"); //else if (_noIndicizzato) document.setTitolo(datathread.SezioneReport.Titolo); else { // Inizio: aggiunto per via del font = 8 sul nuovo report di Diagnosi if ((datathread.TipoReport.ToUpper() == "DIAGNOSI") && ((datathread.SezioneReport.Codice == "S153") || (datathread.SezioneReport.Codice == "S154") || (datathread.SezioneReport.Codice == "S163"))) { document.setSezTitolo(datathread.SezioneReport.Titolo); document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest,"), 0, 520, 8); } // Fine: aggiunto per via del font = 8 sul nuovo report di Diagnosi else if (datathread.TipoReport.ToUpper() == "DIAGNOSI") { document.setSezTitoloDiagnosi(datathread.SezioneReport.Titolo); if (datathread.SezioneReport.Codice == "FD148") { string testo = "In questa scheda è riportata la classificazione del suo patrimonio finanziario presso $/Banca/$ sulla base delle principali asset class finanziarie a cui è esposto, con evidenza del peso percentuale di ciascuna."; document.setChapterHeader(testo.Replace("$/Banca/$", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest,"), 0, 520, 8); } else document.setChapterHeader(Header); } else { document.setSezTitolo(datathread.SezioneReport.Titolo); // document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete), 0, 520, 8); document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest,"), 0, Convert.ToInt32(document.getLastPos()) - 10, 520, 8); } } //document.setHeaderSpace(); #region Nuova Tabella decimal totaleSelfNegFO = datathread.Periodico ? datathread.GetSelfNegativeValue("FO") : 0; decimal totalNegativeCurrentAccountValue = datathread.Periodico ? datathread.TotalNegativeCurrentAccountValue : 0; decimal GPEligoFondi = datathread.GPEligoFondi; decimal GPEligoTitoli = datathread.GPEligoTitoli; // decimal GradoCopertura = datathread.GradoCoperturaMacroAssetInterno; decimal PatrimonioTerzi = datathread.Patrimonioterzictv; decimal ProdottiNonRapp = datathread.PatrimonioNonRappresentabileFI; decimal PatrBancaSez = datathread.PatrimonioBancaFideuramCtvAlNettoContoCorrente - datathread.PartiteViaggiantiInvestimento - datathread.PartiteViaggiantiDisinvestimento - datathread.PatrimonioNonRappresentabileFI; decimal GradoCopertura = PatrBancaSez / datathread.PatrimonioBancaFideuramCtvAlNettoContoCorrente * 100; decimal PartiteViaggianti = datathread.PartiteViaggiantiInvestimento + datathread.PartiteViaggiantiDisinvestimento; DataTable _tmpTotPF = tabTortaTotali.Copy(); //set.Tables["MacroAssetTotale"]; _tmpTotPF.Columns.Remove("Percentuale"); if (totalNegativeCurrentAccountValue != 0 || totaleSelfNegFO != 0 || GPEligoFondi < 0 || GPEligoTitoli < 0 || ((GradoCopertura >= 0 && GradoCopertura < 100) && (ProdottiNonRapp != 0 || PartiteViaggianti != 0))) { _tmpTotPF.Rows[0][0] = "Patrimonio /$Banca$/ (€) *".Replace("/$Banca$/", datathread.NomeRete); } else { _tmpTotPF.Rows[0][0] = "Patrimonio /$Banca$/ (€)".Replace("/$Banca$/", datathread.NomeRete); } DatiTabella datitabPF = new DatiTabella(); datitabPF.table = _tmpTotPF; datitabPF.setY(document.getLastPos() + 10); datitabPF.setX(document.getMargineLeft()); datitabPF.setCell(220, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //Andrea Modifica 14062022 190 ---> 220 //datitabPF.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabPF.setCell(130, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, false); logger.Info(string.Concat("Periodico ", datathread.Periodico.ToString())); if (datathread.Periodico) { var idModello = datathread.ReportsType.Find(f => f.Descrizione == "Monitoraggio").IdModello; if (idModello == 6) tab.ColoreDirectBankB = "green"; } else { var idModello = datathread.ReportsType.Find(f => f.Descrizione == "Diagnosi").IdModello; logger.Info(string.Concat("Modello ", idModello.ToString())); if (idModello == 6) tab.ColoreDirectBankB = "green"; } document.InsertTable(tab.getTabella(datitabPF)); #endregion document.setHeaderSpace(40); #region Grafico //// Grafico DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(datitab.table); //view.RowFilter = ""; //dati.dataTab = view.ToTable(false, this.setTableForIsto()); //switch (dati.dataTab.Rows.Count) //{ // case 3: // dati.setHeight(ChartHeigth - 25); // break; // case 4: // dati.setHeight(ChartHeigth); // //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); // break; // case 5: // dati.setHeight(ChartHeigth + 15); // break; // default: // dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow() + 2.5))); // break; //} //dati.setWidth(200); //Istogramma isto = new Istogramma(); ////document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); //document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 12); /// Buona ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); #endregion var xrowDim = datitab.GetRowDim(); if (tabTortaTabella.Rows.Count == 18 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) { xrowDim--; } if (tabTortaTabella.Rows.Count == 19) // && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) { xrowDim--; } datitab.SetRowDim(xrowDim); while (cut) { if (vista.Rows.Count != 0 && document.checkMargin(datitab.GetRowDim() * (vista.Rows.Count + 2 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale) + dim)) { if (datathread.Periodico) { var idModello = datathread.ReportsType.Find(f => f.Descrizione == "Monitoraggio").IdModello; if (idModello == 6) // FD MaxRow = document.getWritableRow(24, false); //23 else MaxRow = document.getWritableRow(23, false); //23 } else MaxRow = document.getWritableRow(23, false); //23 //if (tabTortaTabella.Rows.Count > 17 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) // MaxRow = document.getWritableRow(19, false); // ulteriore controllo per evitare che la nota sfori sul footer. Questa gestione è da rifare totalmente. if (document.checkMargin((MaxRow + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale + altezzaNotaPatrimonioNonRappresentabile) * 23)) MaxRow -= 1; vista.Columns.Add("ID"); int i = 0; cut = false; foreach (DataRow myRow in vista.Rows) { if (i < MaxRow - (1 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale)) myRow["ID"] = 1; else { myRow["ID"] = 2; cut = true; } i++; } view = new DataView(vista); view.RowFilter = ("ID = 1"); } else cut = false; datitab.table = view.ToTable(false, setTableForTable()); if (datathread.Rete == "S" && datitab.table.Rows.Count > 18) //Andrea Rosaspina datitab.setY(document.getLastPos() - 4); else datitab.setY(document.getLastPos()); datitab.setX(document.getMargineLeft()); //setta posizione tabella document.InsertTable(tab.getTabella(datitab)); dim = datitab.GetRowDim() * (datitab.getNumRow() + 1); // Grafico dati.dataTab = view.ToTable(false, this.setTableForIsto()); // Posizionamento delle barre in base al numero di righe switch (datitab.table.Rows.Count) { case 1: dati.setHeight(ChartHeigth - 63); // modifica Andrea break; case 2: dati.setHeight(ChartHeigth - 42); // prova Andrea break; case 3: dati.setHeight(ChartHeigth - 18); // prova Andrea break; case 4: dati.setHeight(ChartHeigth); //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); break; case 5: dati.setHeight(ChartHeigth + 32); break; case 6: dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow() + 2.5) + 3)); break; default: /**************************** Fix Aladdin centratura barra Pino ***************************************************/ //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow() + 2.5))); dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + ((datitab.GetRowDim() * datitab.getNumRow()) + datitab.GetRowDim() + 25)); /*******************************************************************************************************************/ /**** Fix - FD PINO 06/06/2023 ****/ if (datathread.Rete == "S" && datitab.table.Rows.Count > 18) // Andrea Rosaspina dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow() + 3) - 4)); else dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow() + 3) + 5)); //if (datathread.Rete == "S" && datitab.table.Rows.Count > 18) // Andrea Rosaspina // dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow() + 3) - 4)); //else //{ // if (datitab.table.Rows.Count > 18) // dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow() + 3) -4)); // else // dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow() + 3) + 5)); //} /**************************************************************************************/ break; } dati.setWidth(200); Istogramma isto = new Istogramma(); //document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 15); /// Buona 12 //ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); if (!_saltopaginaeffettuato) { //float yRectBarra = Convert.ToSingle((datitab.GetRowDim() * datitab.getNumRow()) + MargineTop + 60); float yRectBarra = Convert.ToSingle((datitab.GetRowDim() * datitab.getNumRow()) + MargineTop + 110); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRectBarra, 199, 23, 0, new RgbColor(255, 255, 255))); //if(datathread.Rete == "S" && tabTortaTabella.Rows.Count == 19) //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRectBarra + 5, 199, 34, 0, new RgbColor(255, 255, 255))); //else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRectBarra, 199, 23, 0, new RgbColor(255, 255, 255))); } if (cut) { /*** Fix - FD riposizionamento dell'indicazione del cambio pagina 06/06/2023 - Pino ****/ //document.changePage(389, dim + 20); if (datathread.Periodico) { var idModello = datathread.ReportsType.Find(f => f.Descrizione == "Monitoraggio").IdModello; if (idModello == 6) // FD document.changePage(500, dim + 20); else document.changePage(389, dim + 20); } else document.changePage(389, dim + 20); /******************************************************************************************/ document.nextPage(document.getMargineLeft()); datitab.setHeader(); dim = 0; view = new DataView(vista); view.RowFilter = ("ID = 2"); vista = view.ToTable(); vista.Columns.Remove(vista.Columns["ID"]); _saltopaginaeffettuato = true; } } // Totale della griglia datitab = new DatiTabella(); datitab.table = tabTortaTotali; datitab.setY(document.getLastPos() + dim); datitab.setX(document.getMargineLeft()); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true, 0); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tab.getTabella(datitab)); float yRect = datitab.getY() + 13; float yLineHeader = datitab.getY() + 12; if (!_saltopaginaeffettuato) { // Barra colorata del footer anche estesa al grafico switch (dati.dataTab.Rows.Count) { case 3: //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 82, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); break; default: //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRect, 199, 23, 0, new RgbColor(232, 236, 237))); break; } } //if (dati.dataTab.Rows.Count == 4) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); //else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); dim += datitab.GetRowDim() * datitab.getNumRow(); if (tabTortaPatrimonioNonRappresentabile != null) { DatiTabella datitabPatrimonioNonRappresentabile = new DatiTabella(); datitabPatrimonioNonRappresentabile.table = tabTortaPatrimonioNonRappresentabile; datitabPatrimonioNonRappresentabile.SetRowDim(xrowDim); datitabPatrimonioNonRappresentabile.setY(document.getLastPos() + dim); datitabPatrimonioNonRappresentabile.setX(document.getMargineLeft()); datitabPatrimonioNonRappresentabile.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabPatrimonioNonRappresentabile.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabPatrimonioNonRappresentabile.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabPatrimonioNonRappresentabile)); dim += datitabPatrimonioNonRappresentabile.GetRowDim() * datitabPatrimonioNonRappresentabile.getNumRow(); } if (tabTortaContoCorrenteBancaFideuram != null) { DatiTabella datitabContoCorrenteBancaFideuram = new DatiTabella(); datitabContoCorrenteBancaFideuram.table = tabTortaContoCorrenteBancaFideuram; datitabContoCorrenteBancaFideuram.SetRowDim(xrowDim); datitabContoCorrenteBancaFideuram.setY(document.getLastPos() + dim); datitabContoCorrenteBancaFideuram.setX(document.getMargineLeft()); datitabContoCorrenteBancaFideuram.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabContoCorrenteBancaFideuram.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabContoCorrenteBancaFideuram.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabContoCorrenteBancaFideuram)); dim += datitabContoCorrenteBancaFideuram.GetRowDim() * datitabContoCorrenteBancaFideuram.getNumRow(); } if (tabTortaLineaSelf != null) { DatiTabella datitabLineaSelf = new DatiTabella(); datitabLineaSelf.table = tabTortaLineaSelf; datitabLineaSelf.SetRowDim(xrowDim); datitabLineaSelf.setY(document.getLastPos() + dim); datitabLineaSelf.setX(document.getMargineLeft()); datitabLineaSelf.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabLineaSelf.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabLineaSelf.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabLineaSelf)); dim += datitabLineaSelf.GetRowDim() * datitabLineaSelf.getNumRow(); } if (tabTortaPartiteViaggianti != null) { DatiTabella datitabPartiteViaggianti = new DatiTabella(); datitabPartiteViaggianti.table = tabTortaPartiteViaggianti; datitabPartiteViaggianti.setY(document.getLastPos() + dim); datitabPartiteViaggianti.setX(document.getMargineLeft()); datitabPartiteViaggianti.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitabPartiteViaggianti.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitabPartiteViaggianti.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitabPartiteViaggianti)); dim += datitabPartiteViaggianti.GetRowDim() * datitabPartiteViaggianti.getNumRow(); } if (tabTotale != null) { DatiTabella datitabContoTotale = new DatiTabella(); tabTotale.Columns.Add(); datitabContoTotale.table = tabTotale; datitabContoTotale.setY(document.getLastPos() + dim); datitabContoTotale.setX(document.getMargineLeft()); datitabContoTotale.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitabContoTotale.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabContoTotale.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tab.getTabella(datitabContoTotale)); dim += datitabContoTotale.GetRowDim() * datitabContoTotale.getNumRow(); } // Scrittura del footer sul grafico FormatNum format = new FormatNum(); ArrayList Labels = format.CreateCustomPerc148(dati.getValMax(), dati.getValMin()); #region Imposto la tabella per il footer del grafico DataTable _dt = new DataTable(); for (int x = 0; x <= Labels.Count - 1; x++) { _dt.Columns.Add(string.Concat("P", x.ToString()), typeof(String)); } DataRow newrow = _dt.NewRow(); int y = 0; foreach (var item in Labels) { newrow[string.Concat("P", y.ToString())] = item.ToString(); y++; } _dt.Rows.Add(newrow); DatiTabella datitabGrafico = new DatiTabella(); datitabGrafico.table = _dt; float _dim = datitab.GetRowDim() * (view.Count + 1); if (tabTortaTabella.Rows.Count == 19) _dim = datitab.GetRowDim() * (view.Count + 1) - 20; datitabGrafico.setY(document.getLastPos() + _dim); datitabGrafico.setX(358); datitabGrafico.setCell(10, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabGrafico.setCell(50, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabGrafico.setCell(50, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabGrafico.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabGrafico.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tab.getTabella(datitabGrafico)); #endregion if (!_saltopaginaeffettuato) { switch (dati.dataTab.Rows.Count) { case 3: if (!datathread.SezioneReport.Codice.Equals("FD148")) { page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 91, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); } break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 115, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 135, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; default: //float passo = 40.0F; //for (int i = 0; i <= Labels.Count - 1; ++i) // if (i == 0) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 265F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //float passo = 40.0F; //23.5F; //294.5F ////float x = datitab.getX(); ////float barWidth = dati.getWidth(); //for (int i = 0; i <= Labels.Count-1; ++i) // if (i == 0) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 270F + i, yRect, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 270F + (passo * i), yRect, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, yRect, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, yRect, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, yRect, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; } } //if (dati.dataTab.Rows.Count == 4) //{ // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 115, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //} //else //{ // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 135, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //} dim += datitab.GetRowDim() * datitab.getNumRow(); } protected void writeSezione10(DataThread datathread) { int MaxRow; bool cut = true; DataTable vista; Tabella tab = new Tabella(); datitab.table = tabTortaTabella; vista = datitab.table; if (document == null) document = datathread.DocumentPDF; datitab.setY(document.getLastPos()); datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCellSpace(0); int rTotTortaPatrimonioNonRappresentabile = 0; int rTotTortaContoCorrenteBancaFideuram = 0; int rTotTortaLineaSelf = 0; int rTotTotale = 0; if (tabTortaPatrimonioNonRappresentabile != null) rTotTortaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile.Rows.Count; if (tabTortaContoCorrenteBancaFideuram != null) rTotTortaContoCorrenteBancaFideuram = tabTortaContoCorrenteBancaFideuram.Rows.Count; if (tabTortaLineaSelf != null) rTotTortaLineaSelf = tabTortaLineaSelf.Rows.Count; if (tabTotale != null) rTotTotale = tabTotale.Rows.Count; //eventuali operazioni sul dataset //calcola se entra nella pagina altrimenti aggiunge una nuova pagina. float altezzaNotaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile == null ? 0 : tabTortaPatrimonioNonRappresentabile.Rows.Count; altezzaNotaPatrimonioNonRappresentabile = altezzaNotaPatrimonioNonRappresentabile * 30; //V if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile)) //Aggiunto 30 per non far sforare la S10 if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile + 30)) document.addPage(); //if (_noIndicizzato) // document.setTitolo("SOSTITUIRE_TITOLO"); //else if (_noIndicizzato) document.setTitolo(datathread.SezioneReport.Titolo); else { // Inizio: aggiunto per via del font = 8 sul nuovo report di Diagnosi if ((datathread.TipoReport.ToUpper() == "DIAGNOSI") && ((datathread.SezioneReport.Codice == "S153") || (datathread.SezioneReport.Codice == "S154") || (datathread.SezioneReport.Codice == "S163"))) { document.setSezTitolo(datathread.SezioneReport.Titolo); document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8); } // Fine: aggiunto per via del font = 8 sul nuovo report di Diagnosi else if (datathread.TipoReport.ToUpper() == "DIAGNOSI") { document.setSezTitoloDiagnosi(datathread.SezioneReport.Titolo); document.setChapterHeader(Header); } else { document.setSezTitolo(datathread.SezioneReport.Titolo); /*************** modifica Aladdin 14062021 - Pino ******************************************/ datathread.SezioneReport.TestoIntroduttivo = "In questa scheda è riportata la classificazione, sulla base delle principali macro asset class finanziarie, del patrimonio che lei detiene presso /$Banca$/, con evidenza dell'esposizione, in termini percentuali, a ciascuna macro asset class."; /*******************************************************************************************/ document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8); } } //document.setHeaderSpace(10); #region Nuova tabella //DatiTabella datitab1 = new DatiTabella(); //datitab1.table = tabTortaTotali; decimal totalSelfNegGP = datathread.Periodico ? datathread.GetSelfNegativeValue("XY") : 0; decimal totaleSelfNegFO = datathread.Periodico ? datathread.GetSelfNegativeValue("FO") : 0; decimal totalNegativeCurrentAccountValue = datathread.Periodico ? datathread.TotalNegativeCurrentAccountValue : 0; decimal totalePartiteViaggianti = datathread.PartiteViaggiantiDisinvestimento + datathread.PartiteViaggiantiInvestimento; decimal GPEligoFondi = datathread.GPEligoFondi; decimal GPEligoTitoli = datathread.GPEligoTitoli; decimal ProdottiNonRapp = datathread.PatrimonioNonRappresentabileFI; decimal PartiteViaggianti = datathread.PartiteViaggiantiInvestimento + datathread.PartiteViaggiantiDisinvestimento; // decimal GradoCopertura = datathread.GradoCoperturaMacroAssetInterno; decimal PatrBancaSez = datathread.PatrimonioBancaFideuramCtvAlNettoContoCorrente - datathread.PartiteViaggiantiInvestimento - datathread.PartiteViaggiantiDisinvestimento - datathread.PatrimonioNonRappresentabileFI; decimal GradoCopertura = PatrBancaSez / datathread.PatrimonioBancaFideuramCtvAlNettoContoCorrente * 100; decimal PatrimonioTerzi = datathread.Patrimonioterzictv; DataTable _tmpTotPF = tabTortaTotali.Copy(); //set.Tables["MacroAssetTotale"]; ((GradoCopertura >= 0 && GradoCopertura < 100) && (ProdottiNonRapp != 0 || PartiteViaggianti != 0)) _tmpTotPF.Columns.Remove("Percentuale"); if (totalNegativeCurrentAccountValue != 0 || totaleSelfNegFO != 0 || GPEligoFondi < 0 || GPEligoTitoli < 0 || ((GradoCopertura >= 0 && GradoCopertura < 100) && (ProdottiNonRapp != 0 || PartiteViaggianti != 0))) { _tmpTotPF.Rows[0][0] = "Patrimonio /$Banca$/ (€) *".Replace("/$Banca$/", datathread.NomeRete); } else { _tmpTotPF.Rows[0][0] = "Patrimonio /$Banca$/ (€)".Replace("/$Banca$/", datathread.NomeRete); } DatiTabella datitabPF = new DatiTabella(); datitabPF.table = _tmpTotPF; datitabPF.setY(document.getLastPos() + 10); datitabPF.setX(document.getMargineLeft()); if (datathread.Rete == "W") { datitabPF.setCell(220, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitabPF.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, false); } else { datitabPF.setCell(190, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitabPF.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabPF.setCell(130, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, false); } document.InsertTable(tab.getTabella(datitabPF)); #endregion document.setHeaderSpace(50); #region Grafico // Grafico DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(datitab.table); view.RowFilter = ""; dati.dataTab = view.ToTable(false, this.setTableForIsto()); switch (dati.dataTab.Rows.Count) { case 3: dati.setHeight(ChartHeigth - 25); break; case 4: dati.setHeight(ChartHeigth); //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); break; case 5: dati.setHeight(ChartHeigth + 24); break; case 6: dati.setHeight(ChartHeigth + 49); break; default: //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()+2.5))); /**************************** Fix Aladdin centratura barra Pino ***************************************************/ //dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + (datitab.GetRowDim() * (datitab.getNumRow() + 1))); dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + ((datitab.GetRowDim() * datitab.getNumRow()) + datitab.GetRowDim() + 10)); /*******************************************************************************************************************/ break; } dati.setWidth(200); Istogramma isto = new Istogramma(); //document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 12); /// Buona #endregion ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); var xrowDim = datitab.GetRowDim(); if (tabTortaTabella.Rows.Count == 18 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) { xrowDim--; } datitab.SetRowDim(xrowDim); while (cut) { if (vista.Rows.Count != 0 && document.checkMargin(datitab.GetRowDim() * (vista.Rows.Count + 2 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale) + dim)) { MaxRow = document.getWritableRow(23, false); //23 //if (tabTortaTabella.Rows.Count > 17 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) // MaxRow = document.getWritableRow(19, false); // ulteriore controllo per evitare che la nota sfori sul footer. Questa gestione è da rifare totalmente. if (document.checkMargin((MaxRow + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale + altezzaNotaPatrimonioNonRappresentabile) * 23)) MaxRow -= 1; vista.Columns.Add("ID"); int i = 0; cut = false; foreach (DataRow myRow in vista.Rows) { if (i < MaxRow - (1 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale)) myRow["ID"] = 1; else { myRow["ID"] = 2; cut = true; } i++; } view = new DataView(vista); view.RowFilter = ("ID = 1"); } else cut = false; /********************************* Originale ***********************************************/ //datitab.table = view.ToTable(false, setTableForTableNoControvalore()); //datitab.setY(document.getLastPos()); //datitab.setX(document.getMargineLeft()); ////setta posizione tabella //document.InsertTable(tab.getTabella(datitab)); /*********************************************************************************************/ /******************************** Modifica Aladdin 14062021 Pino *************************************************/ DatiTabella datitabRap = new DatiTabella(tabTortaTabella); datitab.table = view.ToTable(false, setTableForTableNoControvalore()); Tabella tabellaDatiRap = new Tabella(document.getMargineLeft(), document.getLastPos()); tabellaDatiRap.Header = true; tabellaDatiRap.Colonne.Add(new Colonna("Descrizione", "Macro asset class", 175, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE_E_TESTO)); tabellaDatiRap.Colonne.Add(new Colonna("Percentuale", "Peso %", 130, TipoAllineamento.DESTRA, false, 9, false)); if (DirectBanker == "S") tabellaDatiRap.ColoreDirectBankB = "green"; tabellaDatiRap.Draw(datitabRap, document); //SIMBOLI int nPallino = 1; float yPallino = document.getLastPos() + tabellaDatiRap.AltezzaCella; float xPallino = document.getMargineLeft(); //ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); foreach (DataRow drSimbolo in tabellaDatiRap.Datasource.Rows) { RgbColor color = new RgbColor(byte.Parse(drSimbolo["Red"].ToString()), byte.Parse(drSimbolo["Green"].ToString()), byte.Parse(drSimbolo["Blue"].ToString())); ceTe.DynamicPDF.PageElements.Circle simbolo = new ceTe.DynamicPDF.PageElements.Circle(xPallino, yPallino, 10 / 1.8F, color, color); //page.Elements.Add(simbolo); document.getCurrentPage().Elements.Add(simbolo); yPallino += tabellaDatiRap.AltezzaCella; nPallino++; } /*******************************************************************************************/ dim = datitab.GetRowDim() * (datitab.getNumRow() + 1); if (cut) { document.changePage(389, dim + 20); document.nextPage(document.getMargineLeft()); datitab.setHeader(); dim = 0; view = new DataView(vista); view.RowFilter = ("ID = 2"); vista = view.ToTable(); vista.Columns.Remove(vista.Columns["ID"]); _saltopaginaeffettuato = true; } } // Totale della griglia //datitab = new DatiTabella(); //datitab.table = tabTortaTotali; DataTable _tmpTot = tabTortaTotali; //set.Tables["MacroAssetTotale"]; _tmpTot.Columns.Remove("Controvalore"); _tmpTot.Rows[0][0] = "TOTALE"; datitab = new DatiTabella(); datitab.table = _tmpTot; datitab.setY(document.getLastPos() + dim); datitab.setX(document.getMargineLeft()); //datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(130, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tab.getTabella(datitab)); float yRect = datitab.getY() + 13; float yLineHeader = datitab.getY() + 12; // Barra colorata del footer anche estesa al grafico switch (dati.dataTab.Rows.Count) { case 3: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 82, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); break; default: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRect, 199, 23, 0, new RgbColor(232, 236, 237))); // 358 23 page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRect + 23, 199, 10, 0, new RgbColor(255, 255, 255))); break; } //if (dati.dataTab.Rows.Count == 4) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); //else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); dim += datitab.GetRowDim() * datitab.getNumRow(); //if (tabTortaPatrimonioNonRappresentabile != null) //{ // DatiTabella datitabPatrimonioNonRappresentabile = new DatiTabella(); // datitabPatrimonioNonRappresentabile.table = tabTortaPatrimonioNonRappresentabile; // datitabPatrimonioNonRappresentabile.SetRowDim(xrowDim); // datitabPatrimonioNonRappresentabile.setY(document.getLastPos() + dim); // datitabPatrimonioNonRappresentabile.setX(document.getMargineLeft()); // datitabPatrimonioNonRappresentabile.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabPatrimonioNonRappresentabile.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabPatrimonioNonRappresentabile.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabPatrimonioNonRappresentabile)); // dim += datitabPatrimonioNonRappresentabile.GetRowDim() * datitabPatrimonioNonRappresentabile.getNumRow(); //} //if (tabTortaContoCorrenteBancaFideuram != null) //{ // DatiTabella datitabContoCorrenteBancaFideuram = new DatiTabella(); // datitabContoCorrenteBancaFideuram.table = tabTortaContoCorrenteBancaFideuram; // datitabContoCorrenteBancaFideuram.SetRowDim(xrowDim); // datitabContoCorrenteBancaFideuram.setY(document.getLastPos() + dim); // datitabContoCorrenteBancaFideuram.setX(document.getMargineLeft()); // datitabContoCorrenteBancaFideuram.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabContoCorrenteBancaFideuram.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabContoCorrenteBancaFideuram.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabContoCorrenteBancaFideuram)); // dim += datitabContoCorrenteBancaFideuram.GetRowDim() * datitabContoCorrenteBancaFideuram.getNumRow(); //} //if (tabTortaLineaSelf != null) //{ // DatiTabella datitabLineaSelf = new DatiTabella(); // datitabLineaSelf.table = tabTortaLineaSelf; // datitabLineaSelf.SetRowDim(xrowDim); // datitabLineaSelf.setY(document.getLastPos() + dim); // datitabLineaSelf.setX(document.getMargineLeft()); // datitabLineaSelf.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabLineaSelf.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabLineaSelf.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabLineaSelf)); // dim += datitabLineaSelf.GetRowDim() * datitabLineaSelf.getNumRow(); //} //if (tabTortaPartiteViaggianti != null) //{ // DatiTabella datitabPartiteViaggianti = new DatiTabella(); // datitabPartiteViaggianti.table = tabTortaPartiteViaggianti; // datitabPartiteViaggianti.setY(document.getLastPos() + dim); // datitabPartiteViaggianti.setX(document.getMargineLeft()); // datitabPartiteViaggianti.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabPartiteViaggianti.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabPartiteViaggianti.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabPartiteViaggianti)); // dim += datitabPartiteViaggianti.GetRowDim() * datitabPartiteViaggianti.getNumRow(); //} //if (tabTotale != null) //{ // DatiTabella datitabContoTotale = new DatiTabella(); // tabTotale.Columns.Add(); // datitabContoTotale.table = tabTotale; // datitabContoTotale.setY(document.getLastPos() + dim); // datitabContoTotale.setX(document.getMargineLeft()); // datitabContoTotale.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); // datitabContoTotale.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); // datitabContoTotale.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); // document.InsertTable(tab.getTabella(datitabContoTotale)); // dim += datitabContoTotale.GetRowDim() * datitabContoTotale.getNumRow(); //} // Scrittura del footer sul grafico FormatNum format = new FormatNum(); ArrayList Labels = format.CreateCustomPerc148(dati.getValMax(), dati.getValMin()); switch (dati.dataTab.Rows.Count) { case 3: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 91, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 115, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 135, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; default: //float passo = 40.0F; float passo = 45.0F; //float passo = 50.0F; for (int i = 0; i <= Labels.Count - 1; ++i) if (i == 0) { if (dati.getValMin() < 0) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 280F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); } else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; } dim += datitab.GetRowDim() * datitab.getNumRow(); } protected void writeSezione163(DataThread datathread) { int MaxRow; bool cut = true; DataTable vista; Tabella tab = new Tabella(); datitab.table = tabTortaTabella; vista = datitab.table; if (document == null) document = datathread.DocumentPDF; datitab.setY(document.getLastPos()); datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCellSpace(0); int rTotTortaPatrimonioNonRappresentabile = 0; int rTotTortaContoCorrenteBancaFideuram = 0; int rTotTortaLineaSelf = 0; int rTotTotale = 0; if (tabTortaPatrimonioNonRappresentabile != null) rTotTortaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile.Rows.Count; if (tabTortaContoCorrenteBancaFideuram != null) rTotTortaContoCorrenteBancaFideuram = tabTortaContoCorrenteBancaFideuram.Rows.Count; if (tabTortaLineaSelf != null) rTotTortaLineaSelf = tabTortaLineaSelf.Rows.Count; if (tabTotale != null) rTotTotale = tabTotale.Rows.Count; //eventuali operazioni sul dataset //calcola se entra nella pagina altrimenti aggiunge una nuova pagina. float altezzaNotaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile == null ? 0 : tabTortaPatrimonioNonRappresentabile.Rows.Count; altezzaNotaPatrimonioNonRappresentabile = altezzaNotaPatrimonioNonRappresentabile * 30; //V if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile)) //Aggiunto 30 per non far sforare la S10 if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile + 30)) document.addPage(); //if (_noIndicizzato) // document.setTitolo("SOSTITUIRE_TITOLO"); //else if (_noIndicizzato) document.setTitolo(datathread.SezioneReport.Titolo); else { // Inizio: aggiunto per via del font = 8 sul nuovo report di Diagnosi if ((datathread.TipoReport.ToUpper() == "DIAGNOSI") && ((datathread.SezioneReport.Codice == "S153") || (datathread.SezioneReport.Codice == "S154") || (datathread.SezioneReport.Codice == "S163"))) { document.setSezTitolo(datathread.SezioneReport.Titolo); document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8); } // Fine: aggiunto per via del font = 8 sul nuovo report di Diagnosi else if (datathread.TipoReport.ToUpper() == "DIAGNOSI") { document.setSezTitoloDiagnosi(datathread.SezioneReport.Titolo); document.setChapterHeader(Header); } else { document.setSezTitolo(datathread.SezioneReport.Titolo); /*************** modifica Aladdin 14062021 - Pino ******************************************/ datathread.SezioneReport.TestoIntroduttivo = "In questa scheda è riportata la classificazione, sulla base delle principali macro asset class finanziarie, del patrimonio che lei detiene presso /$Banca$/, con evidenza dell'esposizione, in termini percentuali, a ciascuna macro asset class."; /*******************************************************************************************/ document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest,"), 0, 520, 8); } } //document.setHeaderSpace(10); #region Nuova tabella //DatiTabella datitab1 = new DatiTabella(); //datitab1.table = tabTortaTotali; decimal GradoCopertura = 100; if (datathread.Patrimonioterzictv != 0) GradoCopertura = (datathread.Patrimonioterzictv - datathread.PatrimonioNonRappresentabileAI) / (datathread.Patrimonioterzictv) * 100; decimal PatrimonioTerziNonRapp = datathread.PatrimonioNonRappresentabileAI; decimal PatrimonioTerzi = datathread.Patrimonioterzictv; DataTable _tmpTotPF = tabTortaTotali.Copy(); //set.Tables["MacroAssetTotale"]; _tmpTotPF.Columns.Remove("Percentuale"); if (PatrimonioTerzi < 0 || (GradoCopertura >= 0 && GradoCopertura < 100)) _tmpTotPF.Rows[0][0] = "Patrimonio altri Istituti (€)*"; else _tmpTotPF.Rows[0][0] = "Patrimonio altri Istituti (€)"; DatiTabella datitabPF = new DatiTabella(); datitabPF.table = _tmpTotPF; datitabPF.setY(document.getLastPos() + 10); datitabPF.setX(document.getMargineLeft()); datitabPF.setCell(155, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitabPF.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabPF.setCell(130, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, false); document.InsertTable(tab.getTabella(datitabPF)); #endregion document.setHeaderSpace(50); #region Grafico // Grafico DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(datitab.table); view.RowFilter = ""; dati.dataTab = view.ToTable(false, this.setTableForIsto()); switch (dati.dataTab.Rows.Count) { case 1: dati.setHeight(ChartHeigth - 69); break; case 2: dati.setHeight(ChartHeigth - 43); break; case 3: dati.setHeight(ChartHeigth - 25); break; case 4: dati.setHeight(ChartHeigth); //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); break; case 5: dati.setHeight(ChartHeigth + 24); break; case 6: dati.setHeight(ChartHeigth + 43); break; case 7: dati.setHeight(ChartHeigth + 72); //63 break; default: //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()+2.5))); dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + (datitab.GetRowDim() * (datitab.getNumRow() + 1)) + datitab.GetRowDim() + 10); break; } dati.setWidth(200); Istogramma isto = new Istogramma(); //document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 12); /// Buona #endregion ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); var xrowDim = datitab.GetRowDim(); if (tabTortaTabella.Rows.Count == 18 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) { xrowDim--; } datitab.SetRowDim(xrowDim); while (cut) { if (vista.Rows.Count != 0 && document.checkMargin(datitab.GetRowDim() * (vista.Rows.Count + 2 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale) + dim)) { MaxRow = document.getWritableRow(23, false); //23 //if (tabTortaTabella.Rows.Count > 17 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) // MaxRow = document.getWritableRow(19, false); // ulteriore controllo per evitare che la nota sfori sul footer. Questa gestione è da rifare totalmente. if (document.checkMargin((MaxRow + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale + altezzaNotaPatrimonioNonRappresentabile) * 23)) MaxRow -= 1; vista.Columns.Add("ID"); int i = 0; cut = false; foreach (DataRow myRow in vista.Rows) { if (i < MaxRow - (1 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale)) myRow["ID"] = 1; else { myRow["ID"] = 2; cut = true; } i++; } view = new DataView(vista); view.RowFilter = ("ID = 1"); } else cut = false; /********************************* Originale ***********************************************/ //datitab.table = view.ToTable(false, setTableForTableNoControvalore()); //datitab.setY(document.getLastPos()); //datitab.setX(document.getMargineLeft()); ////setta posizione tabella //document.InsertTable(tab.getTabella(datitab)); /*********************************************************************************************/ /******************************** Modifica Aladdin 14062021 Pino *************************************************/ DatiTabella datitabRap = new DatiTabella(tabTortaTabella); datitab.table = view.ToTable(false, setTableForTableNoControvalore()); Tabella tabellaDatiRap = new Tabella(document.getMargineLeft(), document.getLastPos()); tabellaDatiRap.Header = true; tabellaDatiRap.Colonne.Add(new Colonna("Descrizione", "Macro asset class", 175, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE_E_TESTO)); tabellaDatiRap.Colonne.Add(new Colonna("Percentuale", "Peso %", 130, TipoAllineamento.DESTRA, false, 9, false)); tabellaDatiRap.Draw(datitabRap, document); //SIMBOLI int nPallino = 1; float yPallino = document.getLastPos() + tabellaDatiRap.AltezzaCella; float xPallino = document.getMargineLeft(); //ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); foreach (DataRow drSimbolo in tabellaDatiRap.Datasource.Rows) { RgbColor color = new RgbColor(byte.Parse(drSimbolo["Red"].ToString()), byte.Parse(drSimbolo["Green"].ToString()), byte.Parse(drSimbolo["Blue"].ToString())); ceTe.DynamicPDF.PageElements.Circle simbolo = new ceTe.DynamicPDF.PageElements.Circle(xPallino, yPallino, 10 / 1.8F, color, color); //page.Elements.Add(simbolo); document.getCurrentPage().Elements.Add(simbolo); yPallino += tabellaDatiRap.AltezzaCella; nPallino++; } /*******************************************************************************************/ dim = datitab.GetRowDim() * (datitab.getNumRow() + 1); if (cut) { document.changePage(389, dim + 20); document.nextPage(document.getMargineLeft()); datitab.setHeader(); dim = 0; view = new DataView(vista); view.RowFilter = ("ID = 2"); vista = view.ToTable(); vista.Columns.Remove(vista.Columns["ID"]); _saltopaginaeffettuato = true; } } // Totale della griglia //datitab = new DatiTabella(); //datitab.table = tabTortaTotali; DataTable _tmpTot = tabTortaTotali; //set.Tables["MacroAssetTotale"]; _tmpTot.Columns.Remove("Controvalore"); _tmpTot.Rows[0][0] = "TOTALE"; datitab = new DatiTabella(); datitab.table = _tmpTot; datitab.setY(document.getLastPos() + dim); datitab.setX(document.getMargineLeft()); //datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(130, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tab.getTabella(datitab)); float yRect = datitab.getY() + 13; float yLineHeader = datitab.getY() + 12; // Barra colorata del footer anche estesa al grafico switch (dati.dataTab.Rows.Count) { case 3: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 82, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); break; default: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRect, 199, 23, 0, new RgbColor(232, 236, 237))); break; } //if (dati.dataTab.Rows.Count == 4) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); //else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); dim += datitab.GetRowDim() * datitab.getNumRow(); //if (tabTortaPatrimonioNonRappresentabile != null) //{ // DatiTabella datitabPatrimonioNonRappresentabile = new DatiTabella(); // datitabPatrimonioNonRappresentabile.table = tabTortaPatrimonioNonRappresentabile; // datitabPatrimonioNonRappresentabile.SetRowDim(xrowDim); // datitabPatrimonioNonRappresentabile.setY(document.getLastPos() + dim); // datitabPatrimonioNonRappresentabile.setX(document.getMargineLeft()); // datitabPatrimonioNonRappresentabile.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabPatrimonioNonRappresentabile.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabPatrimonioNonRappresentabile.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabPatrimonioNonRappresentabile)); // dim += datitabPatrimonioNonRappresentabile.GetRowDim() * datitabPatrimonioNonRappresentabile.getNumRow(); //} //if (tabTortaContoCorrenteBancaFideuram != null) //{ // DatiTabella datitabContoCorrenteBancaFideuram = new DatiTabella(); // datitabContoCorrenteBancaFideuram.table = tabTortaContoCorrenteBancaFideuram; // datitabContoCorrenteBancaFideuram.SetRowDim(xrowDim); // datitabContoCorrenteBancaFideuram.setY(document.getLastPos() + dim); // datitabContoCorrenteBancaFideuram.setX(document.getMargineLeft()); // datitabContoCorrenteBancaFideuram.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabContoCorrenteBancaFideuram.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabContoCorrenteBancaFideuram.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabContoCorrenteBancaFideuram)); // dim += datitabContoCorrenteBancaFideuram.GetRowDim() * datitabContoCorrenteBancaFideuram.getNumRow(); //} //if (tabTortaLineaSelf != null) //{ // DatiTabella datitabLineaSelf = new DatiTabella(); // datitabLineaSelf.table = tabTortaLineaSelf; // datitabLineaSelf.SetRowDim(xrowDim); // datitabLineaSelf.setY(document.getLastPos() + dim); // datitabLineaSelf.setX(document.getMargineLeft()); // datitabLineaSelf.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabLineaSelf.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabLineaSelf.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabLineaSelf)); // dim += datitabLineaSelf.GetRowDim() * datitabLineaSelf.getNumRow(); //} //if (tabTortaPartiteViaggianti != null) //{ // DatiTabella datitabPartiteViaggianti = new DatiTabella(); // datitabPartiteViaggianti.table = tabTortaPartiteViaggianti; // datitabPartiteViaggianti.setY(document.getLastPos() + dim); // datitabPartiteViaggianti.setX(document.getMargineLeft()); // datitabPartiteViaggianti.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabPartiteViaggianti.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabPartiteViaggianti.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabPartiteViaggianti)); // dim += datitabPartiteViaggianti.GetRowDim() * datitabPartiteViaggianti.getNumRow(); //} //if (tabTotale != null) //{ // DatiTabella datitabContoTotale = new DatiTabella(); // tabTotale.Columns.Add(); // datitabContoTotale.table = tabTotale; // datitabContoTotale.setY(document.getLastPos() + dim); // datitabContoTotale.setX(document.getMargineLeft()); // datitabContoTotale.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); // datitabContoTotale.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); // datitabContoTotale.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); // document.InsertTable(tab.getTabella(datitabContoTotale)); // dim += datitabContoTotale.GetRowDim() * datitabContoTotale.getNumRow(); //} // Scrittura del footer sul grafico FormatNum format = new FormatNum(); ArrayList Labels = format.CreateCustomPerc148(dati.getValMax(), dati.getValMin()); switch (dati.dataTab.Rows.Count) { case 3: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 91, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 115, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 135, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; default: //float passo = 40.0F; //for (int i = 0; i <= Labels.Count - 1; ++i) // if (i == 0) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 265F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); //float passo = 40.0F; float passo = 45.0F; //float passo = 50.0F; for (int i = 0; i <= Labels.Count - 1; ++i) if (i == 0) { if (dati.getValMin() < 0) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 280F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); } else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; } dim += datitab.GetRowDim() * datitab.getNumRow(); } protected void writeSezione154(DataThread datathread) { int MaxRow; bool cut = true; DataTable vista; Tabella tab = new Tabella(); datitab.table = tabTortaTabella; vista = datitab.table; if (document == null) document = datathread.DocumentPDF; datitab.setY(document.getLastPos()); datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCellSpace(0); int rTotTortaPatrimonioNonRappresentabile = 0; int rTotTortaContoCorrenteBancaFideuram = 0; int rTotTortaLineaSelf = 0; int rTotTotale = 0; if (tabTortaPatrimonioNonRappresentabile != null) rTotTortaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile.Rows.Count; if (tabTortaContoCorrenteBancaFideuram != null) rTotTortaContoCorrenteBancaFideuram = tabTortaContoCorrenteBancaFideuram.Rows.Count; if (tabTortaLineaSelf != null) rTotTortaLineaSelf = tabTortaLineaSelf.Rows.Count; if (tabTotale != null) rTotTotale = tabTotale.Rows.Count; //eventuali operazioni sul dataset //calcola se entra nella pagina altrimenti aggiunge una nuova pagina. float altezzaNotaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile == null ? 0 : tabTortaPatrimonioNonRappresentabile.Rows.Count; altezzaNotaPatrimonioNonRappresentabile = altezzaNotaPatrimonioNonRappresentabile * 30; //V if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile)) //Aggiunto 30 per non far sforare la S10 if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile + 30)) document.addPage(); //if (_noIndicizzato) // document.setTitolo("SOSTITUIRE_TITOLO"); //else if (_noIndicizzato) document.setTitolo(datathread.SezioneReport.Titolo); else { // Inizio: aggiunto per via del font = 8 sul nuovo report di Diagnosi if ((datathread.TipoReport.ToUpper() == "DIAGNOSI") && ((datathread.SezioneReport.Codice == "S153") || (datathread.SezioneReport.Codice == "S154") || (datathread.SezioneReport.Codice == "S163"))) { document.setSezTitolo(datathread.SezioneReport.Titolo); document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8); } // Fine: aggiunto per via del font = 8 sul nuovo report di Diagnosi else if (datathread.TipoReport.ToUpper() == "DIAGNOSI") { document.setSezTitoloDiagnosi(datathread.SezioneReport.Titolo); document.setChapterHeader(Header); } else { document.setSezTitolo(datathread.SezioneReport.Titolo); /*************** modifica Aladdin 14062021 - Pino ******************************************/ datathread.SezioneReport.TestoIntroduttivo = "In questa scheda è riportata la classificazione, sulla base delle principali macro asset class finanziarie, del patrimonio che lei detiene presso /$Banca$/, con evidenza dell'esposizione, in termini percentuali, a ciascuna macro asset class."; /*******************************************************************************************/ document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8); } } //document.setHeaderSpace(10); #region Nuova tabella //DatiTabella datitab1 = new DatiTabella(); //datitab1.table = tabTortaTotali; decimal totalSelfNegGP = datathread.Periodico ? datathread.GetSelfNegativeValue("XY") : 0; decimal totaleSelfNegFO = datathread.Periodico ? datathread.GetSelfNegativeValue("FO") : 0; decimal totalNegativeCurrentAccountValue = datathread.Periodico ? datathread.TotalNegativeCurrentAccountValue : 0; decimal GPEligoFondi = datathread.GPEligoFondi; decimal GPEligoTitoli = datathread.GPEligoTitoli; decimal ProdottiNonRapp = datathread.PatrimonioNonRappresentabileCompl; decimal PartiteViaggianti = datathread.PartiteViaggiantiInvestimento + datathread.PartiteViaggiantiDisinvestimento; // decimal GradoCopertura = datathread.CoperturaTotaleRisorseFinanziarie; decimal PatrBancaSez = datathread.PatrimonioBancaFideuramCtvAlNettoContoCorrente + datathread.Patrimonioterzictv - datathread.PartiteViaggiantiInvestimento - datathread.PartiteViaggiantiDisinvestimento - datathread.PatrimonioNonRappresentabileCompl; decimal GradoCopertura = PatrBancaSez / (datathread.PatrimonioBancaFideuramCtvAlNettoContoCorrente + datathread.Patrimonioterzictv) * 100; decimal PatrimonioTerzi = datathread.Patrimonioterzictv; DataTable _tmpTotPF = tabTortaTotali.Copy(); //set.Tables["MacroAssetTotale"]; _tmpTotPF.Columns.Remove("Percentuale"); if (totalNegativeCurrentAccountValue != 0 || totaleSelfNegFO != 0 || GPEligoFondi < 0 || GPEligoTitoli < 0 || (GradoCopertura >= 0 && GradoCopertura < 100)) _tmpTotPF.Rows[0][0] = "Patrimonio Finanziario Complessivo (€)*"; else _tmpTotPF.Rows[0][0] = "Patrimonio Finanziario Complessivo (€)"; DatiTabella datitabPF = new DatiTabella(); datitabPF.table = _tmpTotPF; datitabPF.setY(document.getLastPos() + 10); datitabPF.setX(document.getMargineLeft()); datitabPF.setCell(230, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitabPF.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitabPF.setCell(100, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); document.InsertTable(tab.getTabella(datitabPF)); #endregion // document.setHeaderSpace(50); document.setHeaderSpace(40); #region Grafico // Grafico DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(datitab.table); view.RowFilter = ""; dati.dataTab = view.ToTable(false, this.setTableForIsto()); switch (dati.dataTab.Rows.Count) { case 3: dati.setHeight(ChartHeigth - 25); break; case 4: dati.setHeight(ChartHeigth); //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); break; case 5: dati.setHeight(ChartHeigth + 24); break; case 6: dati.setHeight(ChartHeigth + 48); break; case 7: dati.setHeight(ChartHeigth + 72); //62 break; default: //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()+2.5))); dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + (datitab.GetRowDim() * datitab.getNumRow()) + datitab.GetRowDim() + 10); break; } dati.setWidth(200); Istogramma isto = new Istogramma(); //document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 12); /// Buona #endregion ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); var xrowDim = datitab.GetRowDim(); if (tabTortaTabella.Rows.Count == 18 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) { xrowDim--; } datitab.SetRowDim(xrowDim); while (cut) { if (vista.Rows.Count != 0 && document.checkMargin(datitab.GetRowDim() * (vista.Rows.Count + 2 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale) + dim)) { MaxRow = document.getWritableRow(23, false); //23 //if (tabTortaTabella.Rows.Count > 17 && tabTortaPatrimonioNonRappresentabile.Rows.Count + tabTortaContoCorrenteBancaFideuram.Rows.Count >= 1) // MaxRow = document.getWritableRow(19, false); // ulteriore controllo per evitare che la nota sfori sul footer. Questa gestione è da rifare totalmente. if (document.checkMargin((MaxRow + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale + altezzaNotaPatrimonioNonRappresentabile) * 23)) MaxRow -= 1; vista.Columns.Add("ID"); int i = 0; cut = false; foreach (DataRow myRow in vista.Rows) { if (i < MaxRow - (1 + rTotTortaPatrimonioNonRappresentabile + rTotTortaContoCorrenteBancaFideuram + rTotTortaLineaSelf + rTotTotale)) myRow["ID"] = 1; else { myRow["ID"] = 2; cut = true; } i++; } view = new DataView(vista); view.RowFilter = ("ID = 1"); } else cut = false; /********************************* Originale ***********************************************/ //datitab.table = view.ToTable(false, setTableForTableNoControvalore()); //datitab.setY(document.getLastPos()); //datitab.setX(document.getMargineLeft()); ////setta posizione tabella //document.InsertTable(tab.getTabella(datitab)); /*********************************************************************************************/ /******************************** Modifica Aladdin 14062021 Pino *************************************************/ DatiTabella datitabRap = new DatiTabella(tabTortaTabella); datitab.table = view.ToTable(false, setTableForTableNoControvalore()); Tabella tabellaDatiRap = new Tabella(document.getMargineLeft(), document.getLastPos()); tabellaDatiRap.Header = true; tabellaDatiRap.Colonne.Add(new Colonna("Descrizione", "Macro asset class", 175, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.IMMAGINE_E_TESTO)); tabellaDatiRap.Colonne.Add(new Colonna("Percentuale", "Peso %", 130, TipoAllineamento.DESTRA, false, 9, false)); tabellaDatiRap.Draw(datitabRap, document); //SIMBOLI int nPallino = 1; float yPallino = document.getLastPos() + tabellaDatiRap.AltezzaCella; float xPallino = document.getMargineLeft(); //ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); foreach (DataRow drSimbolo in tabellaDatiRap.Datasource.Rows) { RgbColor color = new RgbColor(byte.Parse(drSimbolo["Red"].ToString()), byte.Parse(drSimbolo["Green"].ToString()), byte.Parse(drSimbolo["Blue"].ToString())); ceTe.DynamicPDF.PageElements.Circle simbolo = new ceTe.DynamicPDF.PageElements.Circle(xPallino, yPallino, 10 / 1.8F, color, color); //page.Elements.Add(simbolo); document.getCurrentPage().Elements.Add(simbolo); yPallino += tabellaDatiRap.AltezzaCella; nPallino++; } /*******************************************************************************************/ dim = datitab.GetRowDim() * (datitab.getNumRow() + 1); if (cut) { document.changePage(389, dim + 20); document.nextPage(document.getMargineLeft()); datitab.setHeader(); dim = 0; view = new DataView(vista); view.RowFilter = ("ID = 2"); vista = view.ToTable(); vista.Columns.Remove(vista.Columns["ID"]); _saltopaginaeffettuato = true; } } // Totale della griglia //datitab = new DatiTabella(); //datitab.table = tabTortaTotali; DataTable _tmpTot = tabTortaTotali; //set.Tables["MacroAssetTotale"]; _tmpTot.Columns.Remove("Controvalore"); _tmpTot.Rows[0][0] = "TOTALE"; datitab = new DatiTabella(); datitab.table = _tmpTot; datitab.setY(document.getLastPos() + dim); datitab.setX(document.getMargineLeft()); //datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); //datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(130, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tab.getTabella(datitab)); float yRect = datitab.getY() + 13; float yLineHeader = datitab.getY() + 12; // Barra colorata del footer anche estesa al grafico switch (dati.dataTab.Rows.Count) { case 3: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 82, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); break; default: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRect, 199, 23, 0, new RgbColor(232, 236, 237))); break; } //if (dati.dataTab.Rows.Count == 4) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 105, 199, 23, 0, new RgbColor(232, 236, 237))); //else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, document.getLastPos() + 128, 199, 23, 0, new RgbColor(232, 236, 237))); dim += datitab.GetRowDim() * datitab.getNumRow(); //if (tabTortaPatrimonioNonRappresentabile != null) //{ // DatiTabella datitabPatrimonioNonRappresentabile = new DatiTabella(); // datitabPatrimonioNonRappresentabile.table = tabTortaPatrimonioNonRappresentabile; // datitabPatrimonioNonRappresentabile.SetRowDim(xrowDim); // datitabPatrimonioNonRappresentabile.setY(document.getLastPos() + dim); // datitabPatrimonioNonRappresentabile.setX(document.getMargineLeft()); // datitabPatrimonioNonRappresentabile.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabPatrimonioNonRappresentabile.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabPatrimonioNonRappresentabile.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabPatrimonioNonRappresentabile)); // dim += datitabPatrimonioNonRappresentabile.GetRowDim() * datitabPatrimonioNonRappresentabile.getNumRow(); //} //if (tabTortaContoCorrenteBancaFideuram != null) //{ // DatiTabella datitabContoCorrenteBancaFideuram = new DatiTabella(); // datitabContoCorrenteBancaFideuram.table = tabTortaContoCorrenteBancaFideuram; // datitabContoCorrenteBancaFideuram.SetRowDim(xrowDim); // datitabContoCorrenteBancaFideuram.setY(document.getLastPos() + dim); // datitabContoCorrenteBancaFideuram.setX(document.getMargineLeft()); // datitabContoCorrenteBancaFideuram.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabContoCorrenteBancaFideuram.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabContoCorrenteBancaFideuram.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabContoCorrenteBancaFideuram)); // dim += datitabContoCorrenteBancaFideuram.GetRowDim() * datitabContoCorrenteBancaFideuram.getNumRow(); //} //if (tabTortaLineaSelf != null) //{ // DatiTabella datitabLineaSelf = new DatiTabella(); // datitabLineaSelf.table = tabTortaLineaSelf; // datitabLineaSelf.SetRowDim(xrowDim); // datitabLineaSelf.setY(document.getLastPos() + dim); // datitabLineaSelf.setX(document.getMargineLeft()); // datitabLineaSelf.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabLineaSelf.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabLineaSelf.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabLineaSelf)); // dim += datitabLineaSelf.GetRowDim() * datitabLineaSelf.getNumRow(); //} //if (tabTortaPartiteViaggianti != null) //{ // DatiTabella datitabPartiteViaggianti = new DatiTabella(); // datitabPartiteViaggianti.table = tabTortaPartiteViaggianti; // datitabPartiteViaggianti.setY(document.getLastPos() + dim); // datitabPartiteViaggianti.setX(document.getMargineLeft()); // datitabPartiteViaggianti.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // datitabPartiteViaggianti.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // datitabPartiteViaggianti.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); // document.InsertTable(tab.getTabella(datitabPartiteViaggianti)); // dim += datitabPartiteViaggianti.GetRowDim() * datitabPartiteViaggianti.getNumRow(); //} //if (tabTotale != null) //{ // DatiTabella datitabContoTotale = new DatiTabella(); // tabTotale.Columns.Add(); // datitabContoTotale.table = tabTotale; // datitabContoTotale.setY(document.getLastPos() + dim); // datitabContoTotale.setX(document.getMargineLeft()); // datitabContoTotale.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); // datitabContoTotale.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); // datitabContoTotale.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); // document.InsertTable(tab.getTabella(datitabContoTotale)); // dim += datitabContoTotale.GetRowDim() * datitabContoTotale.getNumRow(); //} // Scrittura del footer sul grafico FormatNum format = new FormatNum(); ArrayList Labels = format.CreateCustomPerc148(dati.getValMax(), dati.getValMin()); switch (dati.dataTab.Rows.Count) { case 3: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 91, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 4: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 115, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 5: page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 135, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 6: float passo = 40.0F; for (int i = 0; i <= Labels.Count - 1; ++i) if (i == 0) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 280F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; case 7: passo = 40.0F; for (int i = 0; i <= Labels.Count - 1; ++i) if (i == 0) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 280F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; default: passo = 40.0F; for (int i = 0; i <= Labels.Count - 1; ++i) if (i == 0) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 265F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); break; } dim += datitab.GetRowDim() * datitab.getNumRow(); } /******* ESG - Per la sezione S181 seconda tabella Pino *********/ protected void writeSezione181(DataThread datathread) { int MaxRow; bool cut = true; DataTable vista; Tabella tab = new Tabella(); datitab.table = tabCaratteristiche; //vista = datitab.table; if (document == null) document = datathread.DocumentPDF; #region Grafico // Grafico DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(datitab.table); view.RowFilter = ""; dati.dataTab = view.ToTable(false, this.setTableForIstoESG()); // serve per dimensionare la posizione in altezza delle barre del grafico switch (dati.dataTab.Rows.Count) { case 3: dati.setHeight(ChartHeigth - 25); break; case 4: dati.setHeight(ChartHeigth); //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); break; case 5: dati.setHeight(ChartHeigth + 24); break; case 6: dati.setHeight(ChartHeigth + 49); break; default: dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + ((datitab.GetRowDim() * datitab.getNumRow()) + datitab.GetRowDim() + 10)); break; } // Serve per dimensionare l'ampiezza del grafico dati.setWidth(400); dati.ActLabelSeries(); Istogramma isto = new Istogramma(); //IstoFarfallaS133BIS isto = new IstoFarfallaS133BIS(750, 85); document.InsertGrafico(isto.getGraficoCaratteristicheESG(dati), 128, document.getLastPos() + 22); /// Buona #endregion } /****************************************************************/ /***** FD - Per la sezione FD200 29/05/2023 - Pino *****/ protected void writeSezione200(DataThread datathread) { int MaxRow; bool cut = true; DataTable vista; Tabella tab = new Tabella(); float MargineTop; datitab.table = tabMacroAssetClass; vista = datitab.table; if (document == null) document = datathread.DocumentPDF; MargineTop = document.getLastPos(); datitab.table.Columns[1].Caption = string.Empty; datitab.setY(document.getLastPos()); datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // ********************Modifica Andrea ***********************************************// datitab.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // 90 //************************************************************************************// datitab.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); // 120 datitab.setCellSpace(10); //eventuali operazioni sul dataset //calcola se entra nella pagina altrimenti aggiunge una nuova pagina. float altezzaNotaPatrimonioNonRappresentabile = tabTortaPatrimonioNonRappresentabile == null ? 0 : tabTortaPatrimonioNonRappresentabile.Rows.Count; altezzaNotaPatrimonioNonRappresentabile = altezzaNotaPatrimonioNonRappresentabile * 30; //V if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile)) //Aggiunto 30 per non far sforare la S10 if (document.checkMargin(ChartHeigth + altezzaNotaPatrimonioNonRappresentabile + 30)) document.addPage(); if (_noIndicizzato) document.setTitolo(datathread.SezioneReport.Titolo); else { document.setChapterHeader(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest,"), 0, Convert.ToInt32(document.getLastPos()) - 10, 520, 8); } #region Inizio sezione Grafico // Grafico DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(datitab.table); ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); // Paginazione while (cut) { if (vista.Rows.Count != 0) { if (datathread.Periodico) { var idModello = datathread.ReportsType.Find(f => f.Descrizione == "Monitoraggio").IdModello; if (idModello == 6) // FD MaxRow = document.getWritableRow(24, false); //23 else MaxRow = document.getWritableRow(23, false); //23 } else MaxRow = document.getWritableRow(23, false); //23 vista.Columns.Add("ID"); int i = 0; cut = false; foreach (DataRow myRow in vista.Rows) { if (i < MaxRow) myRow["ID"] = 1; else { myRow["ID"] = 2; cut = true; } i++; } view = new DataView(vista); view.RowFilter = ("ID = 1"); } else cut = false; datitab.table = view.ToTable(false, setTableForFDAssetClass()); dim = datitab.GetRowDim() * (datitab.getNumRow() + 1); #region Grafico Percentuale // Grafico IstoFarfallaS133BIS graficoCaratteristiche = null; if (cut) { graficoCaratteristiche = new IstoFarfallaS133BIS(180, 500); //220 //180 graficoCaratteristiche.DocumentPDF = document; graficoCaratteristiche.PositionX = 230; //145 graficoCaratteristiche.PositionY = Convert.ToInt32(document.getLastPos() + 9); //32 //38 //42 //542 //22 //25; graficoCaratteristiche.AxisY_LineColor = true; graficoCaratteristiche.AxisY_Hide = true; //false; graficoCaratteristiche.AxysX_Increment = Convert.ToDecimal(1); graficoCaratteristiche.AxisY_DashStyle = Dundas.Charting.WebControl.ChartDashStyle.DashDot; graficoCaratteristiche.isShadowOffset = false; // Abilita l'ombreggiatura delle barre per ESG è fissato a 40 graficoCaratteristiche.isPixelPointWidth = "40"; // serve per dimensionare l'altezza delle barre graficoCaratteristiche.BorderLineColor = System.Drawing.Color.FromArgb(0, 0, 0); graficoCaratteristiche.BorderLineWidth = 10; } else { graficoCaratteristiche = new IstoFarfallaS133BIS(220, datitab.GetRowDim() * (datitab.getNumRow())); //540 graficoCaratteristiche.DocumentPDF = document; graficoCaratteristiche.PositionX = 230; //145 graficoCaratteristiche.PositionY = Convert.ToInt32(document.getLastPos() + 9); //32 //38 //42 //542 //22 //25; graficoCaratteristiche.AxisY_LineColor = true; graficoCaratteristiche.AxisY_Hide = true; //false; graficoCaratteristiche.AxysX_Increment = Convert.ToDecimal(1); graficoCaratteristiche.AxisY_DashStyle = Dundas.Charting.WebControl.ChartDashStyle.DashDot; graficoCaratteristiche.isShadowOffset = false; // Abilita l'ombreggiatura delle barre per ESG è fissato a 40 graficoCaratteristiche.isPixelPointWidth = "40"; // serve per dimensionare l'altezza delle barre graficoCaratteristiche.BorderLineColor = System.Drawing.Color.FromArgb(0, 0, 0); graficoCaratteristiche.BorderLineWidth = 10; } System.Collections.Generic.List listaValoriPesoRelativo = new System.Collections.Generic.List(); foreach (var item in datitab.table.AsEnumerable()) { IValoriSerie IvaloriSeriePesoRelativo = new IValoriSerie(); IvaloriSeriePesoRelativo.chiave = item[0].ToString(); IvaloriSeriePesoRelativo.valore = Convert.ToDecimal(item[1]); IvaloriSeriePesoRelativo.colore = System.Drawing.Color.FromArgb((int)item["Red"], (int)item["Green"], (int)item["Blue"]); listaValoriPesoRelativo.Add(IvaloriSeriePesoRelativo); } SerieIstoFarfallaS133BIS seriePesoRelativo = new SerieIstoFarfallaS133BIS(); seriePesoRelativo = new SerieIstoFarfallaS133BIS(); seriePesoRelativo.Name = "Caratteristiche%"; seriePesoRelativo.Values = listaValoriPesoRelativo; //seriePesoRelativo.ElementPosition = new Dundas.Charting.WebControl.ElementPosition(1F, -5F, 50.7F, 105F); //seriePesoRelativo.ElementPosition = new Dundas.Charting.WebControl.ElementPosition(1F, -5F, 50.7F, 100F); //100 // ultimo parametro per aumentare lo spazio tra le barre seriePesoRelativo.ElementPosition = new Dundas.Charting.WebControl.ElementPosition(1F, -1F, 50.7F, 100F); //100 // ultimo parametro per aumentare lo spazio tra le barre seriePesoRelativo.AxisY_CustumizedByValues = false; seriePesoRelativo.ReverseAxisY = false; seriePesoRelativo.Axisy_Interval = 0; //10 graficoCaratteristiche.SerieList.Add(seriePesoRelativo); graficoCaratteristiche.Draw(); #endregion //ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); #region Header per la tabella DataTable table = view.ToTable(false, this.setTableForFD()); table.Columns["PercentualeString"].ColumnName = "Percentuale"; table.Columns["percentuale_modello_string"].ColumnName = "Percentuale Modello"; datitab.table = table; // Impostazione e stampa header tabella if (datathread.Rete == "S" && datitab.table.Rows.Count > 18) //Andrea Rosaspina datitab.setY(document.getLastPos() - 4); else datitab.setY(document.getLastPos()); datitab.setX(document.getMargineLeft()); if (DirectBanker == "S") tab.ColoreDirectBankB = "green"; //setta posizione tabella document.InsertTable(tab.getTabella(datitab)); #endregion if (!_saltopaginaeffettuato) { //float yRectBarra = Convert.ToSingle((datitab.GetRowDim() * datitab.getNumRow()) + MargineTop + 60); float yRectBarra = Convert.ToSingle((datitab.GetRowDim() * datitab.getNumRow()) + MargineTop + 110); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRectBarra, 199, 23, 0, new RgbColor(255, 255, 255))); //if(datathread.Rete == "S" && tabTortaTabella.Rows.Count == 19) //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRectBarra + 5, 199, 34, 0, new RgbColor(255, 255, 255))); //else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, yRectBarra, 199, 23, 0, new RgbColor(255, 255, 255))); } if (cut) { /*** Fix - FD riposizionamento dell'indicazione del cambio pagina 06/06/2023 - Pino ****/ //document.changePage(389, dim + 20); if (datathread.Periodico) { var idModello = datathread.ReportsType.Find(f => f.Descrizione == "Monitoraggio").IdModello; if (idModello == 6) // FD document.changePage(500, dim + 20); else document.changePage(389, dim + 20); } else document.changePage(389, dim + 20); /******************************************************************************************/ document.nextPage(document.getMargineLeft()); datitab.setHeader(); dim = 0; view = new DataView(vista); view.RowFilter = ("ID = 2"); vista = view.ToTable(); vista.Columns.Remove(vista.Columns["ID"]); _saltopaginaeffettuato = true; } } #endregion #region Header della tabella Non più utilizzato var xrowDim = datitab.GetRowDim(); datitab.SetRowDim(xrowDim); /*** Aggiungo 2 colonne per l'header della tabella 30/05/2023 - Pino ***/ tabMacroAssetClass.Columns.Add(new DataColumn("PortafoglioModello", typeof(System.String))); tabMacroAssetClass.Columns.Add(new DataColumn("PortafoglioAttuale", typeof(System.String))); /*******************************************************************/ DatiTabella datitabRap = new DatiTabella(tabMacroAssetClass); datitab.table = view.ToTable(false, setTableForFDAssetClass()); Tabella tabellaDatiRap = new Tabella(document.getMargineLeft(), document.getLastPos()); tabellaDatiRap.Header = true; tabellaDatiRap.Colonne.Add(new Colonna("AssetClassName", "Asset class", 160, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); tabellaDatiRap.Colonne.Add(new Colonna("PortafoglioModello", "Portafoglio Modello (%)", 160, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); tabellaDatiRap.Colonne.Add(new Colonna("PortafoglioAttuale", "Portafoglio Attuale (%)", 180, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); if (DirectBanker == "S") tabellaDatiRap.ColoreDirectBankB = "green"; //tabellaDatiRap.Draw(datitabRap, document); dim = datitab.GetRowDim() * (datitab.getNumRow() + 1); #endregion } /*******************************************************/ /***** FD - Per la sezione FD190 08/08/2023 - Pino *****/ protected void writeSezione190(DataThread datathread) { DatiTabella datiHeaderCaratteristiche = new DatiTabella(); DatiTabella datiHeaderPercentualeAttuale = new DatiTabella(); DatiTabella datiMacroAsset = new DatiTabella(); Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos()); document = datathread.DocumentPDF; DataSet set = datathread.Data.DatiSezione; #region Titolo e Testo del paragrafo logger.Info("Titolo della sezione " + datathread.SezioneReport.TestoIntroduttivo); document.setLastPos(-40); document.setSezTitolo(datathread.SezioneReport.Titolo); document.setChapterHeader(string.Concat(datathread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", datathread.NomeRete), "
"), 0, 520, 8); #endregion #region Stampo la colonna MacroAssetClass //datitab.table = tabMacroAssetClass; //Tabella tabellaDati = new Tabella(document.getMargineLeft(), document.getLastPos()); //tabellaDati.Header = true; //tabellaDati.HeaderFont = 8; //tabellaDati.Datasource = tabMacroAssetClass; //tabellaDati.AltezzaCella = 15; //tabellaDati.Colonne.Add(new Colonna("AssetClassName", "Macro Asset Class", 120, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); //if (DirectBanker == "S") // tabellaDati.ColoreDirectBankB = "green"; //tabellaDati.Draw(datitab, document); #endregion #region Sezione per stampare solo l'header della tabella //logger.Info("Scrittura di solo header della tabella Titolo della seconda tabella " + _testointroduttivo); DataSet _ds = new DataSet(); DataTable _dt = new DataTable(); _dt.Columns.Add("Macro Asset Class", typeof(System.String)); _dt.Columns.Add("Portafoglio modello (%)", typeof(System.String)); _dt.Columns.Add("Portafoglio attuale (%)", typeof(System.String)); _ds.Tables.Add(_dt); DataRow dr = _dt.NewRow(); dr[0] = ""; dr[1] = ""; dr[2] = ""; _dt.Rows.Add(dr); datiHeaderCaratteristiche.table = _ds.Tables[0]; datiHeaderCaratteristiche.setY(document.getLastPos() + 10); datiHeaderCaratteristiche.setX(document.getMargineLeft()); datiHeaderCaratteristiche.setHeader(true); datiHeaderCaratteristiche.setCellSpace(10); datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); tab.ColoreDirectBankB = "green"; document.InsertTable(tab.getTabella(datiHeaderCaratteristiche)); ceTe.DynamicPDF.Merger.ImportedPage page1 = document.getCurrentPage(); #endregion #region Grafico Percentuale modello // Grafico DatiGrafico dati = new DatiGrafico(); DataView view = new DataView(tabMacroAssetClass); view.RowFilter = ""; dati.dataTab = view.ToTable(false, this.setTableForIsto190()); //switch (dati.dataTab.Rows.Count) //{ // case 3: // dati.setHeight(ChartHeigth - 25); // break; // case 4: // dati.setHeight(ChartHeigth); // //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); // break; // case 5: // //dati.setHeight(ChartHeigth + 24); // dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + ((datitab.GetRowDim() * datitab.getNumRow()) + datitab.GetRowDim() + 15)); // break; // case 6: // dati.setHeight(ChartHeigth + 49); // break; // default: // //dati.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()+2.5))); // /**************************** Fix Aladdin centratura barra Pino ***************************************************/ // //dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + (datitab.GetRowDim() * (datitab.getNumRow() + 1))); // dati.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + ((datitab.GetRowDim() * datitab.getNumRow()) + datitab.GetRowDim() + 10)); // /*******************************************************************************************************************/ // break; //} dati.setWidth(200); Istogramma isto = new Istogramma(); //document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); // document.InsertGrafico(isto.getGrafico(dati), 180, document.getLastPos() - 8); /// Buona ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); // Scrittura del footer sul grafico //FormatNum format = new FormatNum(); //ArrayList Labels = format.CreateCustomPerc148(dati.getValMax(), dati.getValMin()); //switch (dati.dataTab.Rows.Count) //{ // case 3: // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 91, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // break; // case 4: // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 115, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 115, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // break; // case 5: // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 135, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 135, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // break; // default: // //float passo = 40.0F; // float passo = 45.0F; // //float passo = 50.0F; // for (int i = 0; i <= Labels.Count - 1; ++i) // if (i == 0) // { // if (dati.getValMin() < 0) // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 280F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + i, yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // } // else // page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[i].ToString(), 275F + (passo * i), yRect + 5, 100, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); // break; //} #endregion #region Grafico Percentuale // Grafico DatiGrafico datiPercentuale = new DatiGrafico(); DataView viewPercentuale = new DataView(tabMacroAssetClass); view.RowFilter = ""; datiPercentuale.dataTab = viewPercentuale.ToTable(false, this.setTableForIsto()); switch (dati.dataTab.Rows.Count) { case 3: datiPercentuale.setHeight(ChartHeigth - 25); break; case 4: datiPercentuale.setHeight(ChartHeigth); //datiPercentuale.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()))); break; case 5: //datiPercentuale.setHeight(ChartHeigth + 24); datiPercentuale.setHeight(Convert.ToSingle(datiHeaderCaratteristiche.getHeaderDim()) + ((datiHeaderCaratteristiche.GetRowDim() * datiHeaderCaratteristiche.getNumRow()) + datiHeaderCaratteristiche.GetRowDim() + 100)); break; case 6: datiPercentuale.setHeight(ChartHeigth + 49); break; default: //datiPercentuale.setHeight(Convert.ToSingle(datitab.GetRowDim() * (datitab.getNumRow()+2.5))); /**************************** Fix Aladdin centratura barra Pino ***************************************************/ //datiPercentuale.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + (datitab.GetRowDim() * (datitab.getNumRow() + 1))); datiPercentuale.setHeight(Convert.ToSingle(datitab.getHeaderDim()) + ((datitab.GetRowDim() * datitab.getNumRow()) + datitab.GetRowDim() + 10)); /*******************************************************************************************************************/ break; } datiPercentuale.setWidth(200); Istogramma istoPercentuale = new Istogramma(); istoPercentuale.isPixelPointWidth = "10"; istoPercentuale.isShadowOffset = false; // serve per impostare l'ombreggiatura delle barre //document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); document.InsertGrafico(istoPercentuale.getGraficoFD190(datiPercentuale), 340, document.getLastPos()+30); /// Buona #endregion #region Elenco MacroAsset /****** Inserimento tabella con le due colonne e con la colonna delle Caratteristiche riempita ********/ logger.Info("Inizio inserimento tabella Macro Asset"); datiMacroAsset.table = set.Tables["MacroAssetClass"]; Tabella tabellaMacroAsset = new Tabella(document.getMargineLeft(), document.getLastPos() + 78, 0, -2, 0.009F); //90 68 tabellaMacroAsset.Datasource = datiMacroAsset.table; tabellaMacroAsset.Header = false; tabellaMacroAsset.DimensioneLinea = 0; tabellaMacroAsset.AltezzaCella = 30; //35; tabellaMacroAsset.Colonne.Add(new Colonna("AssetClassName", "Asset Class", 150, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); tabellaMacroAsset.Draw(datiMacroAsset, document); logger.Info("Fine inserimento tabella MacroAsset"); /***********************************************************************************************************/ #endregion #region Sezione per stampare solo l'header della tabella Percentuale modello //logger.Info("Scrittura di solo header della tabella Titolo della seconda tabella " + datathread.SezioneReport.TestoIntroduttivo); //DataSet _ds = new DataSet(); //DataTable _dt = new DataTable(); //_dt.Columns.Add("Portafoglio modello (%)", typeof(System.String)); //_ds.Tables.Add(_dt); //DataRow dr = _dt.NewRow(); //dr[0] = ""; //_dt.Rows.Add(dr); //datiHeaderCaratteristiche.table = _ds.Tables[0]; ////datiHeaderCaratteristiche.setY(document.getLastPos()); ////datiHeaderCaratteristiche.setX(document.getMargineLeft()+150); ////datiHeaderCaratteristiche.setHeader(true); ////datiHeaderCaratteristiche.setCellSpace(10); ////datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); ////datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); //Tabella tab = new Tabella(document.getMargineLeft()+145, document.getLastPos()); //tab.Header = true; //tab.HeaderFont = 8; //tab.Datasource = _ds.Tables[0]; //tab.AltezzaCella = 15; //tab.Colonne.Add(new Colonna("Portafoglio modello (%)", "Portafoglio modello (%)", 100, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); //if (DirectBanker == "S") // tab.ColoreDirectBankB = "green"; //tab.Draw(datiHeaderCaratteristiche, document); #endregion #region Sezione per stampare solo l'header della tabella Percentuale attuale //DataSet _dsAttuale = new DataSet(); //DataTable _dtAttuale = new DataTable(); //_dtAttuale.Columns.Add("Portafoglio attuale (%)", typeof(System.String)); //_dsAttuale.Tables.Add(_dtAttuale); //DataRow drAttuale = _dtAttuale.NewRow(); //drAttuale[0] = ""; //_dtAttuale.Rows.Add(drAttuale); //datiHeaderPercentualeAttuale.table = _dsAttuale.Tables[0]; //Tabella tabAttuale = new Tabella(document.getMargineLeft() + 340, document.getLastPos()); //tabAttuale.Header = true; //tabAttuale.HeaderFont = 8; //tabAttuale.Datasource = _dsAttuale.Tables[0]; //tabAttuale.AltezzaCella = 15; //tabAttuale.Colonne.Add(new Colonna("Portafoglio attuale (%)", "Portafoglio attuale (%)", 160, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); //if (DirectBanker == "S") // tabAttuale.ColoreDirectBankB = "green"; //tabAttuale.Draw(datiHeaderPercentualeAttuale, document); #endregion } /*******************************************************/ protected void addNota(DocumentPDF doc, float cc, float max, string rete, int dim) { FormatNum con = new FormatNum(); if (rete == "F") { if (cc > 0) //FC 26062015 Aggionamento nuova Ragione Sociale //doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse Banca FIDEURAM (al lordo del conto corrente pari a € " + con.ConvertNum(cc) + ") e presso altri Istituti.", dim); doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse FIDEURAM (al lordo del conto corrente pari a € " + con.ConvertNum(cc) + ") e presso altri Istituti.", dim); else if (cc < 0) //FC 26062015 Aggionamento nuova Ragione Sociale //doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse Banca FIDEURAM (al netto del conto corrente pari a € " + con.ConvertNum(cc) + ") e presso altri Istituti.", dim); doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse FIDEURAM (al netto del conto corrente pari a € " + con.ConvertNum(cc) + ") e presso altri Istituti.", dim); else //FC 26062015 Aggionamento nuova Ragione Sociale //doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse Banca FIDEURAM e presso altri Istituti.", dim); doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse FIDEURAM e presso altri Istituti.", dim); } else { if (cc > 0) doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse Sanpaolo Invest (al lordo del conto corrente pari a € " + con.ConvertNum(cc) + ") e presso altri Istituti.", dim); else if (cc < 0) doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse Sanpaolo Invest (al netto del conto corrente pari a € " + con.ConvertNum(cc) + ") e presso altri Istituti.", dim); else doc.setSezFooter("La distribuzione riportata è rappresentativa del " + con.ConvertNum(tabNota.Rows[0]["ValorePercentuale"]) + "% delle risorse Sanpaolo Invest e presso altri Istituti.", dim); } } public void setTitolo(string label) { Titolo = label; } public bool NoIndicizzato { set { _noIndicizzato = value; } } public string Header { get { return _header; } set { _header = value; } } #endregion } }