270 lines
14 KiB
C#
270 lines
14 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 PDFGenerator.Presentation.Section.Tables;
|
|
using PDFGenerator.BusinessLayer.DataSection;
|
|
using PDFGenerator.BusinessLayer;
|
|
using System.Threading;
|
|
using System.Globalization;
|
|
using ContrattoSei.Utilities;
|
|
|
|
namespace PDFGenerator.Presentation.Section {
|
|
public class S18 : SProfiloDiRischio, ISezione {
|
|
|
|
bool indice = false;
|
|
bool legend = false;
|
|
DatiTabella datitab;
|
|
|
|
public S18() {
|
|
//
|
|
// TODO: Add constructor logic here
|
|
//
|
|
}
|
|
|
|
#region ISezione Members
|
|
|
|
public void writeSezione(DataThread dataThread) {
|
|
DocumentPDF document = dataThread.DocumentPDF;
|
|
datitab = new DatiTabella();
|
|
DataSetS18 set = (DataSetS18)dataThread.Data.DatiSezione;
|
|
|
|
datitab.table = set.Tables["RischioFinanziarioVarTotali"];
|
|
string sCulture = UtilityManager.getAppSetting("CultureToUse");
|
|
|
|
Thread.CurrentThread.CurrentCulture = new CultureInfo(sCulture);
|
|
|
|
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sCulture);
|
|
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ",";
|
|
|
|
|
|
//eventuali operazioni sul dataset
|
|
//calcola se entra nella pagina altrimenti aggiunge una nuova pagina. In questa sezione il # di righe è fissato
|
|
if (document.checkMargin(140)) document.addPage();
|
|
|
|
//aggiorna l'indice
|
|
if (indice) document.setSezTitolo(dataThread.SezioneReport.Titolo);
|
|
|
|
dsParam = dataThread;
|
|
//i due parametri devono essere presi da la datatable corrispondente
|
|
|
|
|
|
if (dsParam.profiloIsAct)
|
|
this.creaTabellaS18(document, (float)(int)set.RischioPatrimonioFinanziario.Rows[0]["Profilo"], datitab.table);
|
|
else
|
|
this.creaTabellaS18(document, 0.00F, datitab.table);
|
|
FormatNum conv = new FormatNum();
|
|
if (set.Tables["GradoCopertura"] != null)
|
|
if (set.Tables["GradoCopertura"].Rows.Count > 0)
|
|
if (!legend && Convert.ToDecimal(set.Tables["GradoCopertura"].Rows[0]["totale"]) < 100)
|
|
document.setSezFooter("Grado di copertura: " + conv.ConvertNum(set.Tables["GradoCopertura"].Rows[0]["totale"]) + "%", 150);
|
|
|
|
document.setLastPos(160);
|
|
|
|
}
|
|
|
|
public void setIndice() {
|
|
indice = true;
|
|
}
|
|
|
|
private void creaTabellaS18(DocumentPDF document, float var1, DataTable tab) {
|
|
float yLabel = document.getLastPos() - 1;
|
|
float yDistanceHeaderLabel = 27;
|
|
float xMacroAsset = document.getMargineLeft() + 110;
|
|
float xControvalore = xMacroAsset + 110;
|
|
float xImg = document.getMargineLeft() + 143;
|
|
float xRect = xMacroAsset + 98;
|
|
float yRect = yLabel - 4;
|
|
float yImg = document.getLastPos() + 27;
|
|
//float widthRect = 26;
|
|
//float heigthRect = 16;
|
|
float widthMacroAsset = 120;
|
|
//float widthControvalore = 80;
|
|
float fontSize = 9;
|
|
float heightLabel = 11;
|
|
//OpenTypeFont font;
|
|
OpenTypeFont font2 = Globals.OpenTypeFontVerdana;
|
|
FormatNum conv = new FormatNum();
|
|
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
|
|
ceTe.DynamicPDF.PageElements.Rectangle rect;
|
|
int numStep = 5 - 1;
|
|
|
|
bool _hasPortafoglioBancaFideuram = false;
|
|
bool _hasPortafoglioAltriIstituti = false;
|
|
|
|
this.creaTabella(document, var1);
|
|
|
|
|
|
if (legend) {
|
|
float varComplessivo = -1;
|
|
float varTerzi = -1;
|
|
float varBancaFideuram = -1;
|
|
string varTerziString = "VaR ";
|
|
string varBancaFideuramString = "VaR ";
|
|
string varComplessivoString = "VaR ";
|
|
|
|
foreach (DataRow myRow in tab.Rows)
|
|
{
|
|
switch (myRow["Descrizione"].ToString())
|
|
{
|
|
//FC 26062015 Aggionamento nuova Ragione Sociale
|
|
case "Portafoglio Fideuram":
|
|
//Marker DX1
|
|
if ((myRow["Var"] == System.DBNull.Value) || (Convert.ToSingle(myRow["Var"]) == 0.0))
|
|
{
|
|
varBancaFideuramString += myRow["VarString"].ToString();
|
|
}
|
|
else
|
|
{
|
|
varBancaFideuram = (Convert.ToSingle(myRow["Var"]));
|
|
varBancaFideuramString += conv.ConvertNum(varBancaFideuram) + "%";
|
|
}
|
|
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 155, yImg + ((numStep - MarkPosition(varBancaFideuram)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(255, 0, 0));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 160, yImg + ((numStep - MarkPosition(varBancaFideuram)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(255, 255, 255));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 165, yImg + ((numStep - MarkPosition(varBancaFideuram)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(0, 0, 0));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(varBancaFideuramString, xImg + 173, yImg - 5 + ((numStep - MarkPosition(varBancaFideuram)) * yDistanceHeaderLabel) + 4, widthMacroAsset + 70, heightLabel, Globals.OpenTypeFontVerdana, fontSize));
|
|
_hasPortafoglioBancaFideuram = true;
|
|
break;
|
|
|
|
|
|
case "Portafoglio Altri Istituti":
|
|
//Marker 2
|
|
if ((myRow["Var"] == System.DBNull.Value) || (Convert.ToSingle(myRow["Var"]) == 0.0))
|
|
{
|
|
varTerziString += myRow["VarString"].ToString();
|
|
//V
|
|
if (Convert.ToSingle(myRow["Var"]) == 0.0)
|
|
{
|
|
varTerzi = Convert.ToSingle(myRow["Var"]);
|
|
varTerziString += "0,00%";
|
|
}
|
|
//
|
|
|
|
}
|
|
else
|
|
{
|
|
varTerzi = Convert.ToSingle(myRow["Var"]);
|
|
varTerziString += conv.ConvertNum(varTerzi) + "%";
|
|
}
|
|
if (varBancaFideuram != -1 && MarkPosition(varBancaFideuram) == MarkPosition(varTerzi))
|
|
xImg += 70;
|
|
else {
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 155, yImg + ((numStep - MarkPosition(varTerzi)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(255, 0, 0));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 160, yImg + ((numStep - MarkPosition(varTerzi)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(255, 255, 255));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
}
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 160, yImg + ((numStep - MarkPosition(varTerzi)) * yDistanceHeaderLabel), 10, 10, 0, new RgbColor(0, 0, 0));
|
|
rect.CornerRadius = 5;
|
|
page.Elements.Add(rect);
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(varTerziString, xImg + 173, yImg - 5 + ((numStep - MarkPosition(varTerzi)) * yDistanceHeaderLabel) + 4, widthMacroAsset + 70, heightLabel, Globals.OpenTypeFontVerdana, fontSize));
|
|
_hasPortafoglioAltriIstituti = true;
|
|
break;
|
|
|
|
case "Portafoglio Complessivo":
|
|
if (_hasPortafoglioBancaFideuram && _hasPortafoglioAltriIstituti) // stampo il var complessivo solo in presenza sia di Patrimonio Banca Fideuram che di Patrimonio Terzi
|
|
{
|
|
//Marker 3
|
|
if ((myRow["Var"] == System.DBNull.Value) || (Convert.ToSingle(myRow["Var"]) == 0.0))
|
|
{
|
|
varComplessivoString += myRow["VarString"].ToString();
|
|
}
|
|
else
|
|
{
|
|
varComplessivo = Convert.ToSingle(myRow["Var"]);
|
|
varComplessivoString += conv.ConvertNum(varComplessivo) + "%";
|
|
}
|
|
if (varTerzi != -1 && MarkPosition(varTerzi) == MarkPosition(varComplessivo))
|
|
xImg += 70;
|
|
else
|
|
if (varBancaFideuram != -1 && MarkPosition(varBancaFideuram) == MarkPosition(varComplessivo))
|
|
xImg += 70;
|
|
else
|
|
{
|
|
// xImg = document.getMargineLeft() + 163; DDD
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 155, yImg + ((numStep - MarkPosition(varComplessivo)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(255, 0, 0));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 160, yImg + ((numStep - MarkPosition(varComplessivo)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(255, 255, 255));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
}
|
|
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 161, yImg + 1 + ((numStep - MarkPosition(varComplessivo)) * yDistanceHeaderLabel), 8, 8, 0, new RgbColor(0, 0, 0));
|
|
//rect.CornerRadius = 5;
|
|
page.Elements.Add(rect);
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(varComplessivoString, xImg + 173, yImg - 5 + ((numStep - MarkPosition(varComplessivo)) * yDistanceHeaderLabel) + 4, widthMacroAsset + 70, heightLabel, Globals.OpenTypeFontVerdana, fontSize));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
////Marker DX1
|
|
if (tab.Rows.Count != 0)
|
|
{
|
|
float var2 = -1;
|
|
//FC 26062015 Aggionamento nuova Ragione Sociale
|
|
String var2String = "Portafoglio Fideuram VaR ";
|
|
|
|
if ((tab.Rows[0]["Var"] == System.DBNull.Value) || ((float)tab.Rows[0]["Var"] == 0.0))
|
|
{
|
|
var2String += tab.Rows[0]["VarString"].ToString();
|
|
}
|
|
else
|
|
{
|
|
var2 = (float)tab.Rows[0]["Var"];
|
|
var2String += conv.ConvertNum(var2) + "%";
|
|
}
|
|
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 155, yImg + ((numStep - MarkPosition(var2)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(255, 0, 0));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 160, yImg + ((numStep - MarkPosition(var2)) * yDistanceHeaderLabel), 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(255, 255, 255));
|
|
rect.Angle = 45;
|
|
page.Elements.Add(rect);
|
|
|
|
//page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 165, yImg - 5 + ((6 - MarkPosition(var2)) * yDistanceHeaderLabel), widthMacroAsset + 65, yDistanceHeaderLabel, 0, new RgbColor(232, 236, 237)));
|
|
//rect = new ceTe.DynamicPDF.PageElements.Rectangle(xImg + 165, yImg - 5 + ((6 - MarkPosition(var2)) * yDistanceHeaderLabel), yDistanceHeaderLabel / 1.414F, yDistanceHeaderLabel / 1.414F, 0, new RgbColor(232, 236, 237));
|
|
//rect.Angle = 45;
|
|
//page.Elements.Add(rect);
|
|
if (dsParam.Rete == "F")
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(var2String, xImg + 170, yImg - 5 + ((numStep - MarkPosition(var2)) * yDistanceHeaderLabel) + 4, widthMacroAsset + 70, heightLabel, Globals.OpenTypeFontVerdana, fontSize));
|
|
else
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(var2String, xImg + 170, yImg - 5 + ((numStep - MarkPosition(var2)) * yDistanceHeaderLabel) + 4, widthMacroAsset + 70, heightLabel, Globals.OpenTypeFontVerdana, fontSize));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
public void setLegend() {
|
|
legend = true;
|
|
}
|
|
|
|
}
|
|
}
|