550 lines
32 KiB
C#
550 lines
32 KiB
C#
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>
|
|
/// Summary description for S96
|
|
/// </summary>
|
|
//public abstract class S96 : ISezione
|
|
public class S96 : ISezione
|
|
{
|
|
|
|
private string _titolo = string.Empty;
|
|
private string _testointroduttivo = string.Empty;
|
|
private TipoReport _tipologiareport;
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Titolo della sezione
|
|
/// </summary>
|
|
public string Titolo
|
|
{
|
|
get
|
|
{
|
|
return _titolo;
|
|
}
|
|
set
|
|
{
|
|
_titolo = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Testo introduttivo della Sezione.
|
|
/// </summary>
|
|
public string TestoIntroduttivo
|
|
{
|
|
get
|
|
{
|
|
return _testointroduttivo;
|
|
}
|
|
set
|
|
{
|
|
_testointroduttivo = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera il tipo di report.
|
|
/// </summary>
|
|
public TipoReport TipologiaReport
|
|
{
|
|
get
|
|
{
|
|
return _tipologiareport;
|
|
}
|
|
set
|
|
{
|
|
_tipologiareport = value;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
public S96 ()
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Disegna la S96
|
|
/// </summary>
|
|
/// <param name="paramSez"></param>
|
|
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<BR>Credito", 100, TipoAllineamento.SINISTRA, false, 8, false));
|
|
tabellaPatrimonio.Colonne.Add(new Colonna("RischioMercato", "Rischio Mercato<BR>(VaR%)", 100, TipoAllineamento.DESTRA, false, 8, false));
|
|
tabellaPatrimonio.Colonne.Add(new Colonna("Copertura", "Copertura<BR>(%)", 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*<br>(€)", 76, TipoAllineamento.DESTRA, false, 8, false, TipoColonna.TESTO));
|
|
tabellaPatrimonio.Colonne.Add(new Colonna("Percentuale", "Controvalore*<br>(%)", 76, TipoAllineamento.DESTRA, false, 8, false, TipoColonna.TESTO));
|
|
tabellaPatrimonio.Colonne.Add(new Colonna("RischioCredito", "Rischio<BR>Credito", 70, TipoAllineamento.DESTRA, false, 8, false));
|
|
tabellaPatrimonio.Colonne.Add(new Colonna("RischioMercato", "Rischio Mercato<BR>(VaR%)", 100, TipoAllineamento.DESTRA, false, 8, false));
|
|
tabellaPatrimonio.Colonne.Add(new Colonna("Copertura", "Copertura<BR>(%)", 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);
|
|
}
|
|
|
|
}
|
|
} |