using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections; using ceTe.DynamicPDF; using ceTe.DynamicPDF.Text; using ceTe.DynamicPDF.PageElements.Charting; using PDFGenerator.BusinessLayer; using PDFGenerator.BusinessLayer.DataSection; using PDFGenerator.Presentation.Section.Tables; using PDFGenerator.Presentation.Section.Charts; namespace PDFGenerator.Presentation.Section { /// /// Summary description for S96 /// //public abstract class S96 : ISezione public class S96 : ISezione { private string _titolo = string.Empty; private string _testointroduttivo = string.Empty; private TipoReport _tipologiareport; /// /// Titolo della sezione /// public string Titolo { get { return _titolo; } set { _titolo = value; } } /// /// Testo introduttivo della Sezione. /// public string TestoIntroduttivo { get { return _testointroduttivo; } set { _testointroduttivo = value; } } /// /// Imposta o recupera il tipo di report. /// public TipoReport TipologiaReport { get { return _tipologiareport; } set { _tipologiareport = value; } } /// /// Costruttore /// public S96 () { } /// /// Disegna la S96 /// /// public void writeSezione (DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; DataSetS96 set = (DataSetS96)dataThread.Data.DatiSezione; DataTable _datasource = set.Tables["DatiGrafico"]; #region recupero dati frecce int classeRischio = 0; if (_datasource.Rows[0]["ClasseRischioCreditoStr"] != DBNull.Value) { if (_datasource.Rows[0]["ClasseRischioCreditoStr"].ToString().ToUpper() == "N.A.") classeRischio = -1; } else classeRischio = Convert.ToInt32(_datasource.Rows[0]["ClasseRischioCredito"]); // Rischio Mercato/VarP double varP = 0; if (_datasource.Rows[0]["RischioMercatoStr"] != DBNull.Value) { if (_datasource.Rows[0]["RischioMercatoStr"].ToString().ToUpper() == "N.A.") varP = -1; } else varP = Convert.ToInt32(_datasource.Rows[0]["RischioMercato"]); // Rischio Mercato Massimo decimal varMassimo = 0; if (_datasource.Rows[0]["RischioMercatoMaxStr"] != DBNull.Value) { if (_datasource.Rows[0]["RischioMercatoMaxStr"].ToString().ToUpper() == "N.A.") varMassimo = -1; } else varMassimo = Convert.ToDecimal(_datasource.Rows[0]["RischioMercatoMax"]); // Rischio Credito Massimo int classeRiskCredMax = 0; if (_datasource.Rows[0]["RischioCreditoMaxStr"] != DBNull.Value) { if (_datasource.Rows[0]["RischioCreditoMaxStr"].ToString().ToUpper() == "N.A.") classeRiskCredMax = -1; } else classeRiskCredMax = Convert.ToInt32(_datasource.Rows[0]["RischioCreditoMax"]); #endregion // La sezione andrà stampata sempre in una nuova pagina. //Per diagnosi non serve in quanto la sezione è la prima del capitolo if(dataThread.TipoReport.ToUpper() == "MONITORAGGIO") document.addPage(); ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") document.setSezTitoloDiagnosi(_titolo); else document.setSezTitolo(_titolo); // Titolo della sezione document.setSezHeader(_testointroduttivo); // testo introduttivo document.setHeaderSpace(10); #region Grafico GraficoS96 grafico = new GraficoS96(); grafico.Datasource = _datasource; document.InsertGraficoS96(grafico.ToPage(), document.getMargineLeft() + 50, document.getLastPos()); #endregion // // I marcatori sull'asse X e sull'asse Y non vengono visualizzati se il cliente // non e' mai stato profilato o se il profilo e' scaduto // Non vengono visualizzati se il rischio credito max o il rischio mercato max sono uguali ad "N.C." // se rischio credito max = n.a. ugualmente non facciamo vedere le frecce. // #region FRECCE if ((_datasource.Rows[0]["Profilo"].ToString() == "A") && (varMassimo > 0) && (classeRiskCredMax > 0)) { #region Marcatore AsseY //Freccia float posZero = 259;//259 float fattIncr = 7; float offsetFreccia = 6; //float posVar1 = posZero - (fattIncr * (float.Parse(BusinessLayer.SoglieVar.sVar1))); //float posVar2 = posZero - (fattIncr * (float.Parse(BusinessLayer.SoglieVar.sVar2))); //float posVar3 = posZero - (fattIncr * (float.Parse(BusinessLayer.SoglieVar.sVar3))); //float posVar4 = posZero - (fattIncr * (float.Parse(BusinessLayer.SoglieVar.sVar4))); //float posVar5 = posZero - (fattIncr * (float.Parse(BusinessLayer.SoglieVar.sVar5))); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("--" + posVar1, document.getMargineLeft() + 101, document.getLastPos() + posVar1, 50F, 50F)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("--" + posVar2, document.getMargineLeft() + 101, document.getLastPos() + posVar2, 50F, 50F)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("--" + posVar3, document.getMargineLeft() + 101, document.getLastPos() + posVar3, 50F, 50F)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("--" + posVar4, document.getMargineLeft() + 101, document.getLastPos() + posVar4, 50F, 50F)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("--" + posVar5, document.getMargineLeft() + 101, document.getLastPos() + posVar5, 50F, 50F)); float yMarcatoreAsseYRettangolo = document.getLastPos() + posZero - (fattIncr * (float)varMassimo) - offsetFreccia; ceTe.DynamicPDF.PageElements.Rectangle FrecciaMarcatoreAsseY = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 55, yMarcatoreAsseYRettangolo, 20, 20, new RgbColor(234, 234, 234), new RgbColor(234, 234, 234)); FrecciaMarcatoreAsseY.Angle = 45; page.Elements.Add(FrecciaMarcatoreAsseY); // Rettangolo ceTe.DynamicPDF.PageElements.Rectangle RettangolomarcatoreAsseY = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), yMarcatoreAsseYRettangolo, 55, FrecciaMarcatoreAsseY.Width * 1.414F, new RgbColor(234, 234, 234), new RgbColor(234, 234, 234)); page.Elements.Add(RettangolomarcatoreAsseY); //Label page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Rischio Mercato", document.getMargineLeft() + 2, yMarcatoreAsseYRettangolo + 4, 80, FrecciaMarcatoreAsseY.Width * 1.414F, Globals.OpenTypeFontVerdana, 7)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("(VaR) massimo", document.getMargineLeft() + 2, yMarcatoreAsseYRettangolo + 14, 80, FrecciaMarcatoreAsseY.Width * 1.414F, Globals.OpenTypeFontVerdana, 7)); #endregion #region Marcatore AsseX // Recupero la X float xMarcatoreAsseXRettangolo = 0; //classeRiskCredMax #region pecetta grafico if (dataThread.TipoReport.ToUpper() == "MONITORAGGIO") { //Legent //Title int LastPosition = 200; //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(383, LastPosition + 95, 160, 30, 0, new RgbColor(255, 255, 255))); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Area di non adeguatezza", 383, LastPosition + 95, 160, 10, Globals.OpenTypeFontVerdana, 10, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Area di adeguatezza", 383, LastPosition + 108, 160, 10, Globals.OpenTypeFontVerdana, 10, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////Title //LastPosition = 200; page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(138, LastPosition + 119, 160, 13, 0, new RgbColor(255, 255, 255))); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Rischio Mercato (VaR%)", 128, LastPosition + 120, 160, 12, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //Added by mebaid // Y - Axis LastPosition = 200; //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(112, LastPosition + 135, 24, 400, 0, new RgbColor(255, 255, 255))); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("23%", 112, LastPosition + 188, 24, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("12%", 112, LastPosition + 260, 24, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("7,5%", 112, LastPosition + 293, 24, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("3,5%", 112, LastPosition + 318, 27, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("1,5%", 112, LastPosition + 328, 27, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //Added by mebaid // X - Axis LastPosition = 427; page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(480, LastPosition + 131, 400, 23, 0, new RgbColor(255, 255, 255))); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Classe 1", 181, LastPosition + 130, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("|", 250, LastPosition + 124, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Classe 2", 271, LastPosition + 130, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("|", 324, LastPosition + 124, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Classe 3", 363, LastPosition + 130, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("|", 434, LastPosition + 124, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Rischio Credito", 470, LastPosition + 130, 100, 10, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); } else //DIAGNOSI { //Legent //Title int LastPosition = 185; //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(383, LastPosition + 95, 160, 30, 0, new RgbColor(255, 255, 255))); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Area di non adeguatezza", 383, LastPosition + 95, 160, 10, Globals.OpenTypeFontVerdana, 10, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Area di adeguatazza", 383, LastPosition + 108, 160, 10, Globals.OpenTypeFontVerdana, 10, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //Title //LastPosition = 200; //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(138, LastPosition + 120, 160, 13, 0, new RgbColor(255, 255, 255))); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Rischio Mercato (VaR%)", 128, LastPosition + 120, 160, 13, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //Added by mebaid // Y - Axis //LastPosition = 200; //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(112, LastPosition + 135, 24, 400, 0, new RgbColor(255, 255, 255))); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("23%", 112, LastPosition + 188, 24, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("12%", 112, LastPosition + 260, 24, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("7,5%", 112, LastPosition + 293, 24, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("3,5%", 112, LastPosition + 318, 27, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("1,5%", 112, LastPosition + 328, 27, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //Added by mebaid // X - Axis LastPosition = 412; //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(150, LastPosition + 131, 400, 23, 0, new RgbColor(255, 255, 255))); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Classe 1", 181, LastPosition + 130, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("|", 250, LastPosition + 124, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Classe 2", 271, LastPosition + 130, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("|", 324, LastPosition + 124, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Classe 3", 363, LastPosition + 130, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("|", 434, LastPosition + 124, 50, 10, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Rischio Credito", 470, LastPosition + 130, 100, 10, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); } #endregion //classeRiskCredMax = 3; per fare test if (classeRiskCredMax == 1) xMarcatoreAsseXRettangolo = document.getMargineLeft() + 178; //210; //188; // selezione su Classe 1 else if (classeRiskCredMax == 2) xMarcatoreAsseXRettangolo = document.getMargineLeft() + 277; //262; // selezione su Classe 2 else if (classeRiskCredMax == 3) xMarcatoreAsseXRettangolo = document.getMargineLeft() + 375; //315; // 368; // selezione su Classe 3 // Recupero la Y float yMarcatoreAsseXRettangolo = document.getLastPos() + grafico.Height; // Rettangolo Base (principale) ceTe.DynamicPDF.PageElements.Rectangle FrecciaMarcatoreAsseX_Base = new ceTe.DynamicPDF.PageElements.Rectangle(xMarcatoreAsseXRettangolo, yMarcatoreAsseXRettangolo, 55, 25, new RgbColor(234, 234, 234), new RgbColor(234, 234, 234)); page.Elements.Add(FrecciaMarcatoreAsseX_Base); // Rettangolo a destra (punta destra) ceTe.DynamicPDF.PageElements.Rectangle FrecciaMarcatoreAsseX_dx = new ceTe.DynamicPDF.PageElements.Rectangle(xMarcatoreAsseXRettangolo + (FrecciaMarcatoreAsseX_Base.Width / 2), yMarcatoreAsseXRettangolo - 10, 29, 10, new RgbColor(234, 234, 234), new RgbColor(234, 234, 234)); FrecciaMarcatoreAsseX_dx.Angle = 19.3F; page.Elements.Add(FrecciaMarcatoreAsseX_dx); //Rettangolo a sinistra (punta sinistra) ceTe.DynamicPDF.PageElements.Rectangle FrecciaMarcatoreAsseX_sx = new ceTe.DynamicPDF.PageElements.Rectangle(xMarcatoreAsseXRettangolo, yMarcatoreAsseXRettangolo, 28.6F, 10, new RgbColor(234, 234, 234), new RgbColor(234, 234, 234)); FrecciaMarcatoreAsseX_sx.Angle = 339.4F; page.Elements.Add(FrecciaMarcatoreAsseX_sx); //Label page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Rischio Credito", xMarcatoreAsseXRettangolo + 1, yMarcatoreAsseXRettangolo + 4, 80, 12, Globals.OpenTypeFontVerdana, 7)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("massimo", xMarcatoreAsseXRettangolo + 12, yMarcatoreAsseXRettangolo + 14, 80, 12, Globals.OpenTypeFontVerdana, 7)); #endregion } #endregion #region Tabella DatiTabella datitab = new DatiTabella(); float dimTabella = 0; #region Tabella Monitoraggio if (dataThread.TipoReport == "MONITORAGGIO") { datitab.table = set.Tables["DatiTabellaMonitoraggio"]; Tabella tabellaPatrimonio = new Tabella(document.getMargineLeft(), document.getLastPos() + grafico.Height + 40); if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabellaPatrimonio.HeaderFont = 8; tabellaPatrimonio.Header = true; tabellaPatrimonio.Id = "TabellaPatrimonio"; //tabellaPatrimonio.Datasource = _datasource; //V vedere come gestiore la leggenda nella tabella tabellaPatrimonio.Colonne.Add(new Colonna("DescrizionePatrimonio", "Patrimonio", 212, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.IMMAGINE_E_TESTO)); //tabellaPatrimonio.Colonne.Add(new Colonna("DescrizionePatrimonio", "Patrimonio", 212, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.TESTO)); tabellaPatrimonio.Colonne.Add(new Colonna("RischioCredito", "Rischio
Credito", 100, TipoAllineamento.SINISTRA, false, 8, false)); tabellaPatrimonio.Colonne.Add(new Colonna("RischioMercato", "Rischio Mercato
(VaR%)", 100, TipoAllineamento.DESTRA, false, 8, false)); tabellaPatrimonio.Colonne.Add(new Colonna("Copertura", "Copertura
(%)", 100, TipoAllineamento.DESTRA, false, 8, false)); tabellaPatrimonio.Draw(datitab, document); #region Simboli del patrimonio //Monitoraggio avrà solo il dettaglio per patrimonio bf o spi (un rombo come simbolo) ceTe.DynamicPDF.PageElements.Rectangle rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), tabellaPatrimonio.Y + 18, 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(0, 0, 0)); rect.Angle = 45; page.Elements.Add(rect); #endregion if (dataThread.profiloIsAct == false) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Resource.Nota_S96_Scaduto, datitab.getX(), datitab.getY() + datitab.GetRowDim() * (datitab.table.Rows.Count + 1), 500F, 30F, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.CmykColor.Red)); dimTabella = tabellaPatrimonio.AltezzaTabella; } #endregion else if (dataThread.TipoReport == "DIAGNOSI") { datitab.table = set.Tables["DatiTabellaDiagnosi"]; Tabella tabellaPatrimonio = new Tabella(document.getMargineLeft(), document.getLastPos() + grafico.Height + 40); if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabellaPatrimonio.HeaderFont = 8; tabellaPatrimonio.Header = true; float xLabelControvalore = document.getMargineLeft() + 183 + 25; float yLabelControvalore = document.getLastPos() + grafico.Height + 40 - 10; tabellaPatrimonio.Id = "TabellaPatrimonio"; //tabellaPatrimonio.Datasource = _datasource; tabellaPatrimonio.Colonne.Add(new Colonna("DescrizionePatrimonio", "Patrimonio", 120, TipoAllineamento.SINISTRA, false, 8, false, TipoColonna.IMMAGINE_E_TESTO)); tabellaPatrimonio.Colonne.Add(new Colonna("Controvalore", "Controvalore*
(€)", 76, TipoAllineamento.DESTRA, false, 8, false, TipoColonna.TESTO)); tabellaPatrimonio.Colonne.Add(new Colonna("Percentuale", "Controvalore*
(%)", 76, TipoAllineamento.DESTRA, false, 8, false, TipoColonna.TESTO)); tabellaPatrimonio.Colonne.Add(new Colonna("RischioCredito", "Rischio
Credito", 70, TipoAllineamento.DESTRA, false, 8, false)); tabellaPatrimonio.Colonne.Add(new Colonna("RischioMercato", "Rischio Mercato
(VaR%)", 100, TipoAllineamento.DESTRA, false, 8, false)); tabellaPatrimonio.Colonne.Add(new Colonna("Copertura", "Copertura
(%)", 70, TipoAllineamento.DESTRA, false, 8, false)); tabellaPatrimonio.Draw(datitab, document); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Controvalore *", xLabelControvalore, yLabelControvalore, 80, 9, Globals.OpenTypeFontVerdanaB, 8, ceTe.DynamicPDF.CmykColor.Red)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Resource.Nota_S96, datitab.getX(), datitab.getY() + datitab.GetRowDim() * (datitab.table.Rows.Count +1), 500F, 30F, Globals.OpenTypeFontVerdana, 8)); if (dataThread.profiloIsAct == false) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Resource.Nota_S96_Scaduto, datitab.getX(), datitab.getY() + datitab.GetRowDim() * (datitab.table.Rows.Count + 1) + 20, 500F, 30F, Globals.OpenTypeFontVerdana, 8, ceTe.DynamicPDF.CmykColor.Red)); #region Simboli del patrimonio int numSimboli = 18; float y = datitab.GetRowDim(); float yTabella = tabellaPatrimonio.Y; ceTe.DynamicPDF.PageElements.Rectangle rect; foreach (DataRow drSimbolo in datitab.table.Rows) { string tempDescrizPatrim = drSimbolo["DescrizionePatrimonio"].ToString().ToLower().Trim(); if (tempDescrizPatrim == "PATRIMONIO SANPAOLO INVEST") //FC 26062015 Aggionamento nuova Ragione Sociale tempDescrizPatrim = "PATRIMONIO FIDEURAM"; switch (tempDescrizPatrim) { //EN 27-01-2016: case "patrimonio banca fideuram": case "patrimonio fideuram": case "patrimonio sanpaolo invest": case "patrimonio san paolo invest": case "patrimonio attuale": //Marker 1 rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), yTabella - 5 + y, 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(0, 0, 0)); rect.Angle = 45; page.Elements.Add(rect); y += datitab.GetRowDim(); break; case "patrimonio complessivo": //Marker 2 rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() - 4, yTabella - 4 + y, 8, 8, 0, new RgbColor(0, 0, 0)); //rect.CornerRadius = 5; page.Elements.Add(rect); y += datitab.GetRowDim(); break; case "patrimonio altri istituti": case "patrimonio prospettico": //Marker 3 rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() - 5, yTabella - 5 + y, 10, 10, 0, new RgbColor(0, 0, 0)); rect.CornerRadius = 5; page.Elements.Add(rect); y += datitab.GetRowDim(); break; default: break; } numSimboli += 27; } //Monitoraggio avrà solo il dettaglio per patrimonio bf o spi (un rombo come simbolo) //ceTe.DynamicPDF.PageElements.Rectangle rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), tabellaPatrimonio.Y + 18, 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(0, 0, 0)); //rect.Angle = 45; //page.Elements.Add(rect); #endregion dimTabella = tabellaPatrimonio.AltezzaTabella; } #endregion #region indicatori Monitoraggio //// //// Inseriamo gli Indicatori: non vengono visualizzati se il cliente //// non e' mai stato profilato o se il profilo e' scaduto //// Non vengono visualizzati se il rischio credito max o il rischio mercato max sono uguali ad "N.C." //// se rischio credito max = n.a. ugualmente non facciamo vedere le frecce. //// float xIndicatore = document.getMargineLeft(); float yIndicatore = document.getLastPos() + grafico.Height + dimTabella + 35; if (dataThread.TipoReport.ToUpper() == "MONITORAGGIO" && dataThread.profiloIsAct && (varMassimo > 0) && (classeRiskCredMax > 0)) { string flagOK = WebConfigParameter.getParameter("FlagOK_RIDOTTA"); string flagNO = WebConfigParameter.getParameter("FlagNO_RIDOTTA"); System.Reflection.Assembly thisExe; thisExe = System.Reflection.Assembly.GetExecutingAssembly(); System.IO.Stream fileOk = thisExe.GetManifestResourceStream(flagOK); System.IO.Stream fileNo = thisExe.GetManifestResourceStream(flagNO); // Indicatore Rischio Mercato if (!set.Indicatori[0].RischioMercato) { // INDICATORE "RischioMercato" NO page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(fileNo, document.getMargineLeft(), yIndicatore, 0.15F)); //0.2F page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Il livello di Rischio Mercato dei Suoi Investimenti è, oggi, NON coerente con il Suo profilo finanziario.", xIndicatore + 25, yIndicatore, 512, 12, Globals.OpenTypeFontVerdana, 7)); } else { // INDICATORE "RischioMercato" OK page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(fileOk, document.getMargineLeft(), yIndicatore, 0.15F)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Il livello di Rischio Mercato dei Suoi Investimenti è, oggi, coerente con il Suo profilo finanziario.", xIndicatore + 25, yIndicatore, 512, 12, Globals.OpenTypeFontVerdana, 7)); } yIndicatore += 20; // Indicatore Rischio Credito if (!set.Indicatori[0].RischioCredito) { // INDICATORE "RischioCredito" NO page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(fileNo, xIndicatore, yIndicatore, 0.15F)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Il livello di Rischio Credito dei Suoi Investimenti è, oggi, NON coerente con il Suo profilo finanziario.", xIndicatore + 25, yIndicatore, 512, 12, Globals.OpenTypeFontVerdana, 7)); } else { // INDICATORE "RischioCredito" OK page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(fileOk, xIndicatore, yIndicatore, 0.15F)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Il livello di Rischio Credito dei Suoi Investimenti è, oggi, coerente con il Suo profilo finanziario.", xIndicatore + 25, yIndicatore, 512, 12, Globals.OpenTypeFontVerdana, 7)); // page.Elements.Add(new ceTe.DynamicPDF.PageElements. } //document.setLastPos(600); //V Spostare nel resource file // // Indicatore Complessita' // yIndicatore += 20; if (set.Indicatori[0].Complessita) page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Tutti gli strumenti finanziari nel Suo portafoglio risultano avere una complessità coerente con il Suo livello di esperienza e conoscenza risultante dal questionario di profilatura.", xIndicatore, yIndicatore, 512, 24, Globals.OpenTypeFontVerdana, 7)); else page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Alcuni strumenti finanziari nel suo portafoglio risultano avere una complessità elevata rispetto al Suo livello di esperienza e conoscenza risultante dal questionario di profilatura.", xIndicatore, yIndicatore, 512, 24, Globals.OpenTypeFontVerdana, 7)); } #endregion //aggiorno il puntatore alla posizione da cui si può scrivere document.setLastPos(600); } } }