using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using ceTe.DynamicPDF.Text; using System.Collections; using System.Collections.Generic; using ceTe.DynamicPDF; using PDFGenerator.Presentation.Section; using PDFGenerator; using PDFGenerator.Presentation.Section.Tables; using PDFGenerator.Presentation.Section.Charts; using PDFGenerator.BusinessLayer; using PDFGenerator.BusinessLayer.DataSection; /// /// Summary description for S157 /// /// public class S157 : ISezione { string Titolo = string.Empty; string _testotitolo; string _testointroduttivo; /// /// Testo introduttivo della sezione. /// public string TestoIntroduttivo { get { return _testointroduttivo; } set { _testointroduttivo = value; } } /// /// Testo del titolo della sezione. /// public string TestoTitolo { get { return _testotitolo; } set { _testotitolo = value; } } public void setTitolo(string label) { Titolo = label; } public S157() { // // TODO: Add constructor logic here // } public void writeSezione(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; DatiTabella datitab = new DatiTabella(); DataSetS157 set = (DataSetS157)dataThread.Data.DatiSezione; bool _mostracolonnacopertura = false; #region Resulset- Verifica disegno colonna "copertura" datitab.table = set.Tables["ResultSet"]; #endregion if (document.checkMargin(300)) document.addPage(); ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); document.setSezTitolo(_testotitolo); document.setChapterHeader(dataThread.SezioneReport.TestoIntroduttivo, 0, 520, 8); // Modifica per Testo Verticale // Fine Modifica #region Piramide //disegno la parte della piramide Piramide modello = new Piramide(); modello.writeSezione(document); datitab.table = set.Tables["GraficoPiramide"]; DataView view = new DataView(datitab.table); view.RowFilter = ""; datitab.table = view.ToTable(false, "Controvalore", "Rischio", "Copertura"); Tabella tabella = new Tabella(); tabella.HeaderFont = 8; tabella.LineeTabella = false; tabella.Y = document.getLastPos(); tabella.X = 210; tabella.Header = true; tabella.SaltoPagina = false; tabella.Datasource = datitab.table; tabella.AltezzaCella = 30; if (_mostracolonnacopertura) { tabella.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 70, TipoAllineamento.DESTRA, false, 9, false)); tabella.Colonne.Add(new Colonna("Rischio", "Rischio
(VaR %)", 50, TipoAllineamento.DESTRA, false, 9, false)); tabella.Colonne.Add(new Colonna("Copertura", "Copertura
(%)", 60, TipoAllineamento.DESTRA, false, 9, false)); } else { tabella.Colonne.Add(new Colonna("Controvalore", "Controvalore (€)", 100, TipoAllineamento.DESTRA, false, 9, false)); tabella.Colonne.Add(new Colonna("Rischio", "Rischio
(VaR %)", 80, TipoAllineamento.DESTRA, false, 9, false)); } tabella.Draw(datitab, document); #endregion #region Grafico a Farfalla DatiGrafico dati = new DatiGrafico(); dati.dataTab = set.Tables["GraficoFarfalla"]; dati.setHeight(188); dati.setWidth(163); dati.ActLabelSeries(); IstoFarfalla farfalla = new IstoFarfalla(); document.InsertGrafico(farfalla.getGrafico(dati), 400, document.getLastPos() + 14); // header del grafico page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Piramide Modello", tabella.X + 190, tabella.Y - 5, 120, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Piramide Attuale", tabella.X + 275, tabella.Y - 5, 120, 10, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.TextAlign.Left)); //footer del grafico page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(tabella.X + 190, tabella.Y + 173, 163, 23, 0, new RgbColor(232, 236, 237))); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(" 100% 50% 0% 50% 100%", tabella.X + 190, tabella.Y + 179, 320, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.TextAlign.Left)); #endregion #region Tabella per il Totale delle Risorse Allocate //setta la datatable datitab = new DatiTabella(); datitab.table = set.Tables["RisorseAllocate"]; Tabella tabellaRisorseAllocate = new Tabella(); tabellaRisorseAllocate.HeaderFont = 9; tabellaRisorseAllocate.X = document.getMargineLeft(); tabellaRisorseAllocate.Y = document.getLastPos() + tabella.AltezzaTabella + 40; tabellaRisorseAllocate.SaltoPagina = false; tabellaRisorseAllocate.Datasource = datitab.table; tabellaRisorseAllocate.Colonne.Add(new Colonna("Descrizione", "", 170, TipoAllineamento.SINISTRA, false, 9, true)); if (_mostracolonnacopertura) { tabellaRisorseAllocate.Colonne.Add(new Colonna("Controvalore", "", 74, TipoAllineamento.DESTRA, false, 9, true)); tabellaRisorseAllocate.Colonne.Add(new Colonna("Rischio", "", 48, TipoAllineamento.DESTRA, false, 9, true)); tabellaRisorseAllocate.Colonne.Add(new Colonna("Copertura", "", 58, TipoAllineamento.DESTRA, false, 9, true)); } else { tabellaRisorseAllocate.Colonne.Add(new Colonna("Controvalore", "", 100, TipoAllineamento.DESTRA, false, 9, true)); tabellaRisorseAllocate.Colonne.Add(new Colonna("Rischio", "", 80, TipoAllineamento.DESTRA, false, 9, true)); } if (set.Tables["RisorseNonAllocate"].Rows.Count > 0) tabellaRisorseAllocate.Draw(datitab, document); #endregion #region Tabella per il Totale delle Risorse non Allocate datitab = new DatiTabella(); datitab.table = set.Tables["RisorseNonAllocate"]; Tabella tabellaRisorseNonAllocate = new Tabella(); tabellaRisorseNonAllocate.HeaderFont = 9; tabellaRisorseNonAllocate.X = document.getMargineLeft(); tabellaRisorseNonAllocate.Y = document.getLastPos() + tabella.AltezzaTabella + tabellaRisorseAllocate.AltezzaTabella + 40; tabellaRisorseNonAllocate.SaltoPagina = false; tabellaRisorseNonAllocate.Datasource = datitab.table; tabellaRisorseNonAllocate.Colonne.Add(new Colonna("Descrizione", "", 170, TipoAllineamento.SINISTRA, false, 9, false)); if (_mostracolonnacopertura) { tabellaRisorseNonAllocate.Colonne.Add(new Colonna("Controvalore", "", 74, TipoAllineamento.DESTRA, false, 9, false)); tabellaRisorseNonAllocate.Colonne.Add(new Colonna("Rischio", "", 48, TipoAllineamento.DESTRA, false, 9, false)); tabellaRisorseNonAllocate.Colonne.Add(new Colonna("Copertura", "", 58, TipoAllineamento.DESTRA, false, 9, false)); } else { tabellaRisorseNonAllocate.Colonne.Add(new Colonna("Controvalore", "", 100, TipoAllineamento.DESTRA, false, 9, false)); tabellaRisorseNonAllocate.Colonne.Add(new Colonna("Rischio", "", 80, TipoAllineamento.DESTRA, false, 9, false)); } if (set.Tables["RisorseNonAllocate"].Rows.Count > 0) tabellaRisorseNonAllocate.Draw(datitab, document); #endregion #region Tabella per il Totale delle Risorse Finanaziarie datitab = new DatiTabella(); datitab.table = set.Tables["RisorseFinanziarie"]; Tabella tabellaRisorseFinanaziarie = new Tabella(); tabellaRisorseFinanaziarie.HeaderFont = 9; tabellaRisorseFinanaziarie.X = document.getMargineLeft(); tabellaRisorseFinanaziarie.Y = document.getLastPos() + tabella.AltezzaTabella + tabellaRisorseAllocate.AltezzaTabella + tabellaRisorseNonAllocate.AltezzaTabella + 40; tabellaRisorseFinanaziarie.SaltoPagina = false; tabellaRisorseFinanaziarie.Datasource = datitab.table; tabellaRisorseFinanaziarie.Colonne.Add(new Colonna("Descrizione", "", 170, TipoAllineamento.SINISTRA, false, 9, true)); if (_mostracolonnacopertura) { tabellaRisorseFinanaziarie.Colonne.Add(new Colonna("Controvalore", "", 74, TipoAllineamento.DESTRA, false, 9, true)); tabellaRisorseFinanaziarie.Colonne.Add(new Colonna("Rischio", "", 48, TipoAllineamento.DESTRA, false, 9, true)); tabellaRisorseFinanaziarie.Colonne.Add(new Colonna("Copertura", "", 58, TipoAllineamento.DESTRA, false, 9, true)); } else { tabellaRisorseFinanaziarie.Colonne.Add(new Colonna("Controvalore", "", 100, TipoAllineamento.DESTRA, false, 9, true)); tabellaRisorseFinanaziarie.Colonne.Add(new Colonna("Rischio", "", 80, TipoAllineamento.DESTRA, false, 9, true)); } //if ( // ((set.Tables["RisorseAllocate"].Rows.Count == 0 || set.Tables["RisorseNonAllocate"].Rows.Count == 0) && set.Tables["PartiteViaggianti"].Rows.Count > 0) || ((set.Tables["RisorseAllocate"].Rows.Count == 0 || set.Tables["RisorseNonAllocate"].Rows.Count == 0) && dataThread.TotalNegativeCurrentAccountValue < 0) // || // ((set.Tables["RisorseAllocate"].Rows.Count > 0 && set.Tables["RisorseNonAllocate"].Rows.Count > 0 && set.Tables["PartiteViaggianti"].Rows.Count > 0) || (set.Tables["RisorseAllocate"].Rows.Count > 0 && set.Tables["RisorseNonAllocate"].Rows.Count > 0 && dataThread.TotalNegativeCurrentAccountValue < 0)) // ) if (set.Tables["RisorseNonAllocate"].Rows.Count > 0 || set.Tables["RisorseNonAllocate"].Rows.Count > 0 || dataThread.TotalNegativeCurrentAccountValue < 0 || set.Tables["PartiteViaggianti"].Rows.Count > 0 || dataThread.TotalSelfNegCurrentAccountValue < 0) tabellaRisorseFinanaziarie.Draw(datitab, document); #endregion #region Tabella per il Conto Corrente datitab = new DatiTabella(); datitab.table = set.Tables["ContoCorrente"]; Tabella tabellaContoCorrente = new Tabella(); tabellaContoCorrente.HeaderFont = 9; tabellaContoCorrente.X = document.getMargineLeft(); tabellaContoCorrente.Y = document.getLastPos() + tabella.AltezzaTabella + tabellaRisorseAllocate.AltezzaTabella + tabellaRisorseNonAllocate.AltezzaTabella + tabellaRisorseFinanaziarie.AltezzaTabella + 40; tabellaContoCorrente.SaltoPagina = false; tabellaContoCorrente.Datasource = datitab.table; tabellaContoCorrente.Colonne.Add(new Colonna("Descrizione", "", 170, TipoAllineamento.SINISTRA, false, 9, false)); if (_mostracolonnacopertura) { tabellaContoCorrente.Colonne.Add(new Colonna("Controvalore", "", 74, TipoAllineamento.DESTRA, false, 9, false)); tabellaContoCorrente.Colonne.Add(new Colonna("Rischio", "", 48, TipoAllineamento.DESTRA, false, 9, false)); tabellaContoCorrente.Colonne.Add(new Colonna("Copertura", "", 58, TipoAllineamento.DESTRA, false, 9, false)); } else { tabellaContoCorrente.Colonne.Add(new Colonna("Controvalore", "", 100, TipoAllineamento.DESTRA, false, 9, false)); tabellaContoCorrente.Colonne.Add(new Colonna("Rischio", "", 80, TipoAllineamento.DESTRA, false, 9, false)); } if (dataThread.TotalNegativeCurrentAccountValue < 0) tabellaContoCorrente.Draw(datitab, document); #endregion #region Tabella per il Linea Self Negativa datitab = new DatiTabella(); datitab.table = set.Tables["LineaSelf"]; Tabella tabellaLineaSelfNegativa = new Tabella(); tabellaLineaSelfNegativa.HeaderFont = 9; tabellaLineaSelfNegativa.X = document.getMargineLeft(); tabellaLineaSelfNegativa.Y = document.getLastPos() + tabella.AltezzaTabella + tabellaRisorseAllocate.AltezzaTabella + tabellaRisorseNonAllocate.AltezzaTabella + tabellaRisorseFinanaziarie.AltezzaTabella + tabellaContoCorrente.AltezzaTabella + 40; tabellaLineaSelfNegativa.SaltoPagina = false; tabellaLineaSelfNegativa.Datasource = datitab.table; tabellaLineaSelfNegativa.LineeTabella = false; tabellaLineaSelfNegativa.Colonne.Add(new Colonna("Descrizione", "", 170, TipoAllineamento.SINISTRA, false, 9, false)); if (_mostracolonnacopertura) { tabellaLineaSelfNegativa.Colonne.Add(new Colonna("Controvalore", "", 74, TipoAllineamento.DESTRA, false, 9, false)); tabellaLineaSelfNegativa.Colonne.Add(new Colonna("Rischio", "", 48, TipoAllineamento.DESTRA, false, 9, false)); tabellaLineaSelfNegativa.Colonne.Add(new Colonna("Copertura", "", 58, TipoAllineamento.DESTRA, false, 9, false)); } else { tabellaLineaSelfNegativa.Colonne.Add(new Colonna("Controvalore", "", 100, TipoAllineamento.DESTRA, false, 9, false)); tabellaLineaSelfNegativa.Colonne.Add(new Colonna("Rischio", "", 80, TipoAllineamento.DESTRA, false, 9, false)); } if (dataThread.TotalSelfNegCurrentAccountValue < 0) tabellaLineaSelfNegativa.Draw(datitab, document); #endregion #region Tabella per gli Investimenti in corso o Partite Viaggianti datitab = new DatiTabella(); datitab.table = set.Tables["PartiteViaggianti"]; Tabella tabellaPartiteViaggianti = new Tabella(); tabellaPartiteViaggianti.HeaderFont = 9; tabellaPartiteViaggianti.X = document.getMargineLeft(); tabellaPartiteViaggianti.Y = document.getLastPos() + tabella.AltezzaTabella + tabellaRisorseAllocate.AltezzaTabella + tabellaRisorseNonAllocate.AltezzaTabella + tabellaRisorseFinanaziarie.AltezzaTabella + tabellaContoCorrente.AltezzaTabella + tabellaLineaSelfNegativa.AltezzaTabella + 40; tabellaPartiteViaggianti.SaltoPagina = false; tabellaPartiteViaggianti.Datasource = datitab.table; tabellaPartiteViaggianti.Colonne.Add(new Colonna("Descrizione", "", 170, TipoAllineamento.SINISTRA, false, 9, false)); if (_mostracolonnacopertura) tabellaPartiteViaggianti.Colonne.Add(new Colonna("Controvalore", "", 74, TipoAllineamento.DESTRA, false, 9, false)); else tabellaPartiteViaggianti.Colonne.Add(new Colonna("Controvalore", "", 100, TipoAllineamento.DESTRA, false, 9, false)); if (set.Tables["PartiteViaggianti"].Rows.Count > 0) tabellaPartiteViaggianti.Draw(datitab, document); #endregion #region Tabella per il Totale Patrimonio datitab = new DatiTabella(); datitab.table = set.Tables["TotalePatrimonio"]; float YtabellaTotalePatrimonio = tabella.AltezzaTabella + tabellaRisorseAllocate.AltezzaTabella + tabellaRisorseNonAllocate.AltezzaTabella + tabellaRisorseFinanaziarie.AltezzaTabella + tabellaContoCorrente.AltezzaTabella + tabellaPartiteViaggianti.AltezzaTabella + tabellaLineaSelfNegativa.AltezzaTabella + 40; float XtabellaTotalePatrimonio = document.getMargineLeft(); Tabella tabellaTotalePatrimonio = new Tabella(); tabellaTotalePatrimonio.HeaderFont = 9; tabellaTotalePatrimonio.X = XtabellaTotalePatrimonio; tabellaTotalePatrimonio.Y = document.getLastPos() + YtabellaTotalePatrimonio; tabellaTotalePatrimonio.SaltoPagina = false; tabellaTotalePatrimonio.Datasource = datitab.table; tabellaTotalePatrimonio.Colonne.Add(new Colonna("Descrizione", "", 170, TipoAllineamento.SINISTRA, true, 9, true)); if (_mostracolonnacopertura) { tabellaTotalePatrimonio.Colonne.Add(new Colonna("Controvalore", "", 74, TipoAllineamento.DESTRA, true, 9, true)); tabellaTotalePatrimonio.Colonne.Add(new Colonna("Rischio", "", 48, TipoAllineamento.DESTRA, true, 9, true)); tabellaTotalePatrimonio.Colonne.Add(new Colonna("Copertura", "", 58, TipoAllineamento.DESTRA, true, 9, true)); } else { tabellaTotalePatrimonio.Colonne.Add(new Colonna("Controvalore", "", 100, TipoAllineamento.DESTRA, true, 9, true)); tabellaTotalePatrimonio.Colonne.Add(new Colonna("Rischio", "", 80, TipoAllineamento.DESTRA, true, 9, true)); } tabellaTotalePatrimonio.Draw(datitab, document); #endregion document.setLastPos(YtabellaTotalePatrimonio - 30); FormatNum conv = new FormatNum(); if (decimal.Parse(set.TotalePatrimonio[0]["copertura"].ToString()) < 100) { page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("(*) Grado di copertura: " + conv.ConvertNum(decimal.Parse(set.TotalePatrimonio[0]["copertura"].ToString())) + "%", document.getMargineLeft(), document.getLastPos(), 180, 10, Globals.OpenTypeFontVerdana, 7)); document.setLastPos(40); } else { document.setLastPos(30); } } }