2025-04-15 12:10:19 +02:00

143 lines
6.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using ceTe.DynamicPDF.Text;
using System.Collections;
using ceTe.DynamicPDF;
using PDFGenerator.Presentation.Section.Tables;
using PDFGenerator.Presentation.Section.Charts;
using PDFGenerator.BusinessLayer.DataSection;
using System.Data;
using PDFGenerator.BusinessLayer;
using ceTe.DynamicPDF.PageElements;
namespace PDFGenerator.Presentation.Section
{
class S145 : ISezione
{
public void writeSezione(DataThread dataThread)
{
DocumentPDF document = dataThread.DocumentPDF;
DataSetS145 set = (DataSetS145)dataThread.Data.DatiSezione;
float Xtable = document.getMargineLeft();
float Ytable = document.getLastPos();
int dFont = 9;
int wCol1 = 100;
int wCol2 = 95;
int wCol3 = 65;
int hGrafico = 150;
if (document.checkMargin(250))
document.addPage();
document.setSezTitolo(dataThread.SezioneReport.Titolo);
document.setChapterHeader(dataThread.SezioneReport.TestoIntroduttivo.Replace("/$Banca$/", dataThread.NomeRete), 0, 520, 8);
Ytable = document.getLastPos();
#region GRAFICO
DatiGrafico dati = new DatiGrafico();
dati.dataTab = set.Tasso;
dati.setHeight(hGrafico);
dati.setWidth(hGrafico);
Torta isto = new Torta();
document.InsertGrafico(isto.getGrafico(dati), Xtable + wCol1 + wCol2 + wCol3 + 50, Ytable - 11);
#endregion
#region Tabella Rating
if (set.TassoRap.Rows.Count > 0) {
DatiTabella datitabRap = new DatiTabella(set.TassoRap);
Tabella tabellaDatiRap = new Tabella(Xtable, Ytable);
tabellaDatiRap.Header = true;
tabellaDatiRap.Colonne.Add(new Colonna("tipoTasso", "Tasso", wCol1, TipoAllineamento.SINISTRA, false, dFont, false, TipoColonna.IMMAGINE_E_TESTO));
tabellaDatiRap.Colonne.Add(new Colonna("Controvalore", "Controvalore €", wCol2, TipoAllineamento.DESTRA, false, dFont, false));
tabellaDatiRap.Colonne.Add(new Colonna("Percentage", "Peso %", wCol3, TipoAllineamento.DESTRA, false, dFont, false));
tabellaDatiRap.Draw(datitabRap, document);
//SIMBOLI
int nPallino = 1;
float yPallino = Ytable + tabellaDatiRap.AltezzaCella;
float xPallino = Xtable;
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);
yPallino += tabellaDatiRap.AltezzaCella;
nPallino++;
}
Ytable += (datitabRap.GetRowDim() * (datitabRap.getNumRow() + 1)) + document.getSectionSpace();
}
if (set.TassoRap.Rows.Count > 0 && set.TassoNoRap.Rows.Count > 0) {
DatiTabella datitabRapT = new DatiTabella(set.TotaleRap);
Tabella tabellaDatiRapT = new Tabella(Xtable, Ytable);
tabellaDatiRapT.Header = false;
tabellaDatiRapT.Colonne.Add(new Colonna("Descrizione", "", wCol1, TipoAllineamento.SINISTRA, true, dFont, true));
tabellaDatiRapT.Colonne.Add(new Colonna("Controvalore", "", wCol2, TipoAllineamento.DESTRA, true, dFont, true));
tabellaDatiRapT.Colonne.Add(new Colonna("Percentage", "", wCol3, TipoAllineamento.DESTRA, true, dFont, true));
tabellaDatiRapT.Draw(datitabRapT, document);
Ytable += (datitabRapT.GetRowDim() * (datitabRapT.getNumRow() ));
set.Totale[0]["Percentage"] = DBNull.Value;
}
if (set.TassoNoRap.Rows.Count > 0)
{
DatiTabella datitabNoRap = new DatiTabella(set.TassoNoRap);
Tabella tabellaDatiNoRap = new Tabella(Xtable, Ytable);
tabellaDatiNoRap.Header = set.TassoRap.Rows.Count > 0 ? false : true;
tabellaDatiNoRap.Colonne.Add(new Colonna("tipoTasso", "Tasso", wCol1, TipoAllineamento.SINISTRA, false, dFont, false, TipoColonna.IMMAGINE_E_TESTO));
tabellaDatiNoRap.Colonne.Add(new Colonna("Controvalore", "Controvalore €", wCol2, TipoAllineamento.DESTRA, false, dFont, false));
tabellaDatiNoRap.Colonne.Add(new Colonna("Percentage", "Peso %", wCol3, TipoAllineamento.DESTRA, false, dFont, false));
tabellaDatiNoRap.Draw(datitabNoRap, document);
//SIMBOLI
int nPallino = 1;
float yPallino = Ytable + tabellaDatiNoRap.AltezzaCella - (set.TassoRap.Rows.Count > 0 ? datitabNoRap.GetRowDim() + document.getSectionSpace() : 0);
float xPallino = Xtable;
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
foreach (DataRow drSimbolo in tabellaDatiNoRap.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);
yPallino += tabellaDatiNoRap.AltezzaCella;
nPallino++;
}
Ytable += datitabNoRap.GetRowDim() * datitabNoRap.getNumRow();
Ytable += set.TassoRap.Rows.Count > 0 ? 0 : datitabNoRap.GetRowDim() + document.getSectionSpace();
}
// Fc 17/12/2013
// gestione visualizzazione della percentuale totale
Tabella tabellaDatiT = new Tabella(Xtable, Ytable);
DatiTabella datitabT = new DatiTabella(set.Totale);
tabellaDatiT.Header = false;
tabellaDatiT.Colonne.Add(new Colonna("Descrizione", "", wCol1, TipoAllineamento.SINISTRA, true, dFont, true));
tabellaDatiT.Colonne.Add(new Colonna("Controvalore", "", wCol2, TipoAllineamento.DESTRA, true, dFont, true));
tabellaDatiT.Colonne.Add(new Colonna("Percentage", "", wCol3, TipoAllineamento.DESTRA, true, dFont, true));
tabellaDatiT.Draw(datitabT, document);
#endregion
document.setLastPos(hGrafico);
}
}
}