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

794 lines
39 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.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using ceTe.DynamicPDF.Text;
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;
using ceTe.DynamicPDF.PageElements;
using ContrattoSei.Utilities;
/// <summary>
/// Summary description for S80ALT
/// </summary>
///
public class S80ALT : ISezione
{
string Titolo = string.Empty;
string _testotitolo;
string _testointroduttivo;
/// <summary>
/// Testo introduttivo della sezione.
/// </summary>
public string TestoIntroduttivo
{
get
{
return _testointroduttivo;
}
set
{
_testointroduttivo = value;
}
}
/// <summary>
/// Testo del titolo della sezione.
/// </summary>
public string TestoTitolo
{
get
{
return _testotitolo;
}
set
{
_testotitolo = value;
}
}
public void setTitolo(string label)
{
Titolo = label;
}
public S80ALT()
{
//
// TODO: Add constructor logic here
//
}
public void writeSezione(DataThread dataThread)
{
DocumentPDF document = dataThread.DocumentPDF;
DatiTabella datitab;
DataSetS80ALT set = (DataSetS80ALT)dataThread.Data.DatiSezione;
//setta la datatable che contiene i dati per disegnare la tabella Dati
datitab = new DatiTabella();
datitab.table = set.Tables["GraficoPiramide"];
string captionFase1 = datitab.table.Columns["Fase1"].Caption;
string captionFase2 = datitab.table.Columns["Fase2"].Caption;
string captionFase3 = datitab.table.Columns["Fase3"].Caption;
// Aggiungo una pagina se la tabella non entra nella corrente.
if (document.checkMargin(130))
document.addPage();
//document.setSezTitolo(Titolo);
document.setLastPos(-40);
document.setChapterHeader(_testointroduttivo, 0, 520, 8);
#region Definizione delle Vars
DataRow rowTemplate;
//float TotalePatrimonio;
float Ypos = 0;
float totaleTabellaAlttez = 0;
int larghezzaColonnaDescrizione = 0; //è variabile e da calcolare in base allo spazio disponibile
int larghezzaColonnaFase1 = 130;
int larghezzaColonnaFase2 = 150;
int larghezzaColonnaFase3 = 130;
int larghezzaUltimaColonna = 0;
#endregion
#region Piramide
//disegno la parte della piramide
Piramide modello = new Piramide();
modello.writeSezione(document);
Ypos = document.getLastPos();
#endregion
#region Disegno Tabella Fase 1,2,3
int nFasi = 0;
datitab = new DatiTabella();
datitab.table = set.Tables["GraficoPiramide"];
rowTemplate = datitab.table.Rows[0];
Tabella TabellaAreaBisogno = new Tabella();
TabellaAreaBisogno.LineeTabella = false;
TabellaAreaBisogno.Y = Ypos;
TabellaAreaBisogno.X = document.getMargineLeft();
TabellaAreaBisogno.Header = true;
TabellaAreaBisogno.HeaderFont = 8;
TabellaAreaBisogno.SaltoPagina = false;
TabellaAreaBisogno.Datasource = datitab.table;
TabellaAreaBisogno.AltezzaCella = 30;
larghezzaColonnaDescrizione = 512;
// Definizione delle colonne
foreach (DataColumn column in TabellaAreaBisogno.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase1;
larghezzaUltimaColonna = larghezzaColonnaFase1;
TabellaAreaBisogno.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase1, TipoAllineamento.DESTRA, false, 8, false)); // -25 è la larghezza della colonna che conterrà l'immagine
nFasi++;
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase2;
larghezzaUltimaColonna = larghezzaColonnaFase2;
TabellaAreaBisogno.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase2, TipoAllineamento.DESTRA, false, 8, false));// -25 è la larghezza della colonna che conterrà l'immagine
nFasi++;
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase3;
larghezzaUltimaColonna = larghezzaColonnaFase3;
TabellaAreaBisogno.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase3, TipoAllineamento.DESTRA, false, 8, false));// -25 è la larghezza della colonna che conterrà l'immagine
nFasi++;
}
}
TabellaAreaBisogno.Colonne.Insert(0, new Colonna("Descrizione", "", larghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, false, 8, false));
TabellaAreaBisogno.Draw(datitab, document);
Ypos += TabellaAreaBisogno.AltezzaTabella;
totaleTabellaAlttez += TabellaAreaBisogno.AltezzaTabella;
#endregion
#region Disegno Tabella Totale Risorse Allocate
Ypos += 40;
rowTemplate = set.Tables["RisorseNonAllocate"].Rows[0];
if ((rowTemplate["fase1"].ToString() != "0,00" && rowTemplate["fase1"].ToString() != string.Empty) || (rowTemplate["fase2"].ToString() != "0,00" && rowTemplate["fase2"].ToString() != string.Empty) || (rowTemplate["fase3"].ToString() != "0,00" && rowTemplate["fase3"].ToString() != string.Empty))
{
datitab = new DatiTabella();
datitab.table = set.Tables["RisorseAllocate"];
rowTemplate = datitab.table.Rows[0];
Tabella tabellaTotale = new Tabella();
tabellaTotale.X = document.getMargineLeft();
tabellaTotale.Y = Ypos;
tabellaTotale.Header = false;
tabellaTotale.SaltoPagina = false;
tabellaTotale.Datasource = datitab.table;
larghezzaColonnaDescrizione = 512;
// Definizione delle colonne
foreach (DataColumn column in tabellaTotale.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase1;
tabellaTotale.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase1, TipoAllineamento.DESTRA, false, 8, true));
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase2;
tabellaTotale.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase2, TipoAllineamento.DESTRA, false, 8, true));
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase3;
tabellaTotale.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase3, TipoAllineamento.DESTRA, false, 8, true));
}
}
tabellaTotale.Colonne.Insert(0, new Colonna("Descrizione", "", larghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, false, 8, true));
tabellaTotale.Draw(datitab, document);
Ypos += tabellaTotale.AltezzaTabella;
totaleTabellaAlttez += tabellaTotale.AltezzaTabella;
}
#endregion
#region Disegno Tabella Risorse non allocate
rowTemplate = set.Tables["RisorseNonAllocate"].Rows[0];
if ((rowTemplate["fase1"].ToString() != "0,00" && rowTemplate["fase1"].ToString() != string.Empty) || (rowTemplate["fase2"].ToString() != "0,00" && rowTemplate["fase2"].ToString() != string.Empty) || (rowTemplate["fase3"].ToString() != "0,00" && rowTemplate["fase3"].ToString() != string.Empty))
{
//setta la datatable che contiene i Dati per disegnare la tabella del Risorse non allocate
datitab = new DatiTabella();
datitab.table = set.Tables["RisorseNonAllocate"];
rowTemplate = datitab.table.Rows[0];
Tabella tabellaRisorseNonAllocate = new Tabella();
tabellaRisorseNonAllocate.X = document.getMargineLeft();
tabellaRisorseNonAllocate.Y = Ypos;
tabellaRisorseNonAllocate.Header = false;
tabellaRisorseNonAllocate.SaltoPagina = false;
tabellaRisorseNonAllocate.Datasource = datitab.table;
larghezzaColonnaDescrizione = 512;
// Definizione delle colonne
foreach (DataColumn column in tabellaRisorseNonAllocate.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase1;
tabellaRisorseNonAllocate.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase1, TipoAllineamento.DESTRA, false, 8, false));
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase2;
tabellaRisorseNonAllocate.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase2, TipoAllineamento.DESTRA, false, 8, false));
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase3;
tabellaRisorseNonAllocate.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase3, TipoAllineamento.DESTRA, false, 8, false));
}
}
tabellaRisorseNonAllocate.Colonne.Insert(0, new Colonna("Descrizione", "", larghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, false, 8, false));
tabellaRisorseNonAllocate.Draw(datitab, document);
Ypos += tabellaRisorseNonAllocate.AltezzaTabella;
totaleTabellaAlttez += tabellaRisorseNonAllocate.AltezzaTabella;
}
#endregion
#region Disegno TOTALE RISORSE FINANZIARIE
DataRow rowTemplateCC = set.Tables["ContoCorrente"].Rows[0];
DataRow rowTemplateSelf = set.Tables["LineaSelfNeg"].Rows[0];
DataRow rowTemplateOC = set.Tables["OperazioniInCorso"].Rows[0];
if (
((rowTemplateCC["fase1"].ToString() != "-" && rowTemplateCC["fase1"].ToString() != string.Empty) || (rowTemplateCC["fase2"].ToString() != "-" && rowTemplateCC["fase2"].ToString() != string.Empty) || (rowTemplateCC["fase3"].ToString() != "-" && rowTemplateCC["fase3"].ToString() != string.Empty))
||
((rowTemplateOC["fase1"].ToString() != "0,00" && rowTemplateOC["fase1"].ToString() != string.Empty) || (rowTemplateOC["fase2"].ToString() != "0,00" && rowTemplateOC["fase2"].ToString() != string.Empty) || (rowTemplateOC["fase3"].ToString() != "0,00" && rowTemplateOC["fase3"].ToString() != string.Empty))
||
((rowTemplateSelf["fase1"].ToString() != "-" && rowTemplateSelf["fase1"].ToString() != string.Empty) || (rowTemplateSelf["fase2"].ToString() != "-" && rowTemplateSelf["fase2"].ToString() != string.Empty) || (rowTemplateSelf["fase3"].ToString() != "-" && rowTemplateSelf["fase3"].ToString() != string.Empty))
)
{
//setta la datatable che contiene i Dati per disegnare la tabella del Risorse non allocate
datitab = new DatiTabella();
datitab.table = set.Tables["RisorseFinanziarie"];
rowTemplate = datitab.table.Rows[0];
Tabella tabellaRisorseFinanziarie = new Tabella();
tabellaRisorseFinanziarie.X = document.getMargineLeft();
tabellaRisorseFinanziarie.Y = Ypos;
tabellaRisorseFinanziarie.Header = false;
tabellaRisorseFinanziarie.SaltoPagina = false;
tabellaRisorseFinanziarie.Datasource = datitab.table;
larghezzaColonnaDescrizione = 512;
// Definizione delle colonne
foreach (DataColumn column in tabellaRisorseFinanziarie.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase1;
tabellaRisorseFinanziarie.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase1, TipoAllineamento.DESTRA, false, 8, true));
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase2;
tabellaRisorseFinanziarie.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase2, TipoAllineamento.DESTRA, false, 8, true));
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase3;
tabellaRisorseFinanziarie.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase3, TipoAllineamento.DESTRA, false, 8, true));
}
}
tabellaRisorseFinanziarie.Colonne.Insert(0, new Colonna("Descrizione", "", larghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, false, 8, true));
tabellaRisorseFinanziarie.Draw(datitab, document);
Ypos += tabellaRisorseFinanziarie.AltezzaTabella;
totaleTabellaAlttez += tabellaRisorseFinanziarie.AltezzaTabella;
}
#endregion
#region Disegno CONTO CORRENTE A SALDO NEGATIVO
rowTemplate = set.Tables["ContoCorrente"].Rows[0];
if ((rowTemplate["fase1"].ToString() != "-" && rowTemplate["fase1"].ToString() != string.Empty) || (rowTemplate["fase2"].ToString() != "-" && rowTemplate["fase2"].ToString() != string.Empty) || (rowTemplate["fase3"].ToString() != "-" && rowTemplate["fase3"].ToString() != string.Empty))
{
//setta la datatable che contiene i Dati per disegnare la tabella del Risorse non allocate
datitab = new DatiTabella();
datitab.table = set.Tables["ContoCorrente"];
rowTemplate = datitab.table.Rows[0];
Tabella tabellaContoCorrente = new Tabella();
tabellaContoCorrente.X = document.getMargineLeft();
tabellaContoCorrente.Y = Ypos;
tabellaContoCorrente.Header = false;
tabellaContoCorrente.SaltoPagina = false;
tabellaContoCorrente.Datasource = datitab.table;
larghezzaColonnaDescrizione = 512;
// Definizione delle colonne
foreach (DataColumn column in tabellaContoCorrente.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase1;
tabellaContoCorrente.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase1, TipoAllineamento.DESTRA, false, 8, false));
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase2;
tabellaContoCorrente.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase2, TipoAllineamento.DESTRA, false, 8, false));
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase3;
tabellaContoCorrente.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase3, TipoAllineamento.DESTRA, false, 8, false));
}
}
tabellaContoCorrente.Colonne.Insert(0, new Colonna("Descrizione", "", larghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, false, 8, false));
tabellaContoCorrente.Draw(datitab, document);
Ypos += tabellaContoCorrente.AltezzaTabella;
totaleTabellaAlttez += tabellaContoCorrente.AltezzaTabella;
}
#endregion
#region Disegno Linea Self Negativa
rowTemplate = set.Tables["LineaSelfNeg"].Rows[0];
if ((rowTemplate["fase1"].ToString() != "-" && rowTemplate["fase1"].ToString() != string.Empty) || (rowTemplate["fase2"].ToString() != "-" && rowTemplate["fase2"].ToString() != string.Empty) || (rowTemplate["fase3"].ToString() != "-" && rowTemplate["fase3"].ToString() != string.Empty))
{
//setta la datatable che contiene i Dati per disegnare la tabella del Risorse non allocate
datitab = new DatiTabella();
datitab.table = set.Tables["LineaSelfNeg"];
rowTemplate = datitab.table.Rows[0];
Tabella tabellaLineaSelfNeg = new Tabella();
tabellaLineaSelfNeg.X = document.getMargineLeft();
tabellaLineaSelfNeg.Y = Ypos;
tabellaLineaSelfNeg.Header = false;
tabellaLineaSelfNeg.SaltoPagina = false;
tabellaLineaSelfNeg.Datasource = datitab.table;
//tabellaOperazioniInCorso.AltezzaCella = 30;
larghezzaColonnaDescrizione = 512;
// Definizione delle colonne
foreach (DataColumn column in tabellaLineaSelfNeg.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase1;
tabellaLineaSelfNeg.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase1, TipoAllineamento.DESTRA, false, 8, false));
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase2;
tabellaLineaSelfNeg.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase2, TipoAllineamento.DESTRA, false, 8, false));
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase3;
tabellaLineaSelfNeg.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase3, TipoAllineamento.DESTRA, false, 8, false));
}
}
tabellaLineaSelfNeg.Colonne.Insert(0, new Colonna("Descrizione", "", larghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, false, 8, false));
tabellaLineaSelfNeg.Draw(datitab, document);
Ypos += tabellaLineaSelfNeg.AltezzaTabella;
totaleTabellaAlttez += tabellaLineaSelfNeg.AltezzaTabella;
}
#endregion
#region Disegno Operazioni in corso
rowTemplate = set.Tables["OperazioniInCorso"].Rows[0];
if ((rowTemplate["fase1"].ToString() != "0,00" && rowTemplate["fase1"].ToString() != string.Empty) || (rowTemplate["fase2"].ToString() != "0,00" && rowTemplate["fase2"].ToString() != string.Empty) || (rowTemplate["fase3"].ToString() != "0,00" && rowTemplate["fase3"].ToString() != string.Empty))
{
//setta la datatable che contiene i Dati per disegnare la tabella del Risorse non allocate
datitab = new DatiTabella();
datitab.table = set.Tables["OperazioniInCorso"];
rowTemplate = datitab.table.Rows[0];
Tabella tabellaOperazioniInCorso = new Tabella();
tabellaOperazioniInCorso.X = document.getMargineLeft();
tabellaOperazioniInCorso.Y = Ypos;
tabellaOperazioniInCorso.Header = false;
tabellaOperazioniInCorso.SaltoPagina = false;
tabellaOperazioniInCorso.Datasource = datitab.table;
//tabellaOperazioniInCorso.AltezzaCella = 30;
larghezzaColonnaDescrizione = 512;
// Definizione delle colonne
foreach (DataColumn column in tabellaOperazioniInCorso.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase1;
tabellaOperazioniInCorso.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase1, TipoAllineamento.DESTRA, false, 8, false));
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase2;
tabellaOperazioniInCorso.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase2, TipoAllineamento.DESTRA, false, 8, false));
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase3;
tabellaOperazioniInCorso.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase3, TipoAllineamento.DESTRA, false, 8, false));
}
}
tabellaOperazioniInCorso.Colonne.Insert(0, new Colonna("Descrizione", "", larghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, false, 8, false));
tabellaOperazioniInCorso.Draw(datitab, document);
Ypos += tabellaOperazioniInCorso.AltezzaTabella;
totaleTabellaAlttez += tabellaOperazioniInCorso.AltezzaTabella;
}
#endregion
#region Disegno Totale Patrimonto
//setta la datatable che contiene i Dati per disegnare la tabella del Risorse non allocate
datitab = new DatiTabella();
datitab.table = set.Tables["DatiTotale"];
rowTemplate = set.Tables["DatiTotale"].Rows[0];
Tabella tabellaDatiTotale = new Tabella();
tabellaDatiTotale.X = document.getMargineLeft();
tabellaDatiTotale.Y = Ypos;
tabellaDatiTotale.Header = false;
tabellaDatiTotale.SaltoPagina = false;
tabellaDatiTotale.Datasource = datitab.table;
larghezzaColonnaDescrizione = 512;
// Definizione delle colonne
foreach (DataColumn column in tabellaDatiTotale.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase1;
tabellaDatiTotale.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase1, TipoAllineamento.DESTRA, true, 8, true));
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase2;
tabellaDatiTotale.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase2, TipoAllineamento.DESTRA, true, 8, true));
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
larghezzaColonnaDescrizione -= larghezzaColonnaFase3;
tabellaDatiTotale.Colonne.Add(new Colonna(column.ColumnName, column.Caption, larghezzaColonnaFase3, TipoAllineamento.DESTRA, true, 8, true));
}
}
tabellaDatiTotale.Colonne.Insert(0, new Colonna("Descrizione", "", larghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, true, 8, true));
tabellaDatiTotale.Draw(datitab, document);
Ypos += tabellaDatiTotale.AltezzaTabella;
totaleTabellaAlttez += tabellaDatiTotale.AltezzaTabella;
#endregion
#region Disegno Dettaglio Movimenti Dopo Dati Totale
//La minima larghezza necessaria per la descrizione di questa nuova tabella è 159, quindi:
//512 - 73 - 150 - 130 = 159.
int dettaglioMovimentiLarghezzaColonnaDescrizione = 512;
int dettaglioMovimentiLarghezzaColonnaFase1 = 73;
int dettaglioMovimentiLarghezzaColonnaFase2 = 150;
int dettaglioMovimentiLarghezzaColonnaFase3 = 130;
int numeroFasiVisibili = 0;
bool presenzaFase3 = false;
int incrementoPixelRettangoloFase3 = 0;
//Ypos -= 5;
//setta la datatable che contiene i Dati per stampare righe ulteriori sotto al totale.
datitab = new DatiTabella();
datitab.table = set.Tables["RigheDopoDatiTotale"];
rowTemplate = set.Tables["RigheDopoDatiTotale"].Rows[0];
Tabella tabellaRigheDopoDatiTotale = new Tabella();
tabellaRigheDopoDatiTotale.X = document.getMargineLeft();
tabellaRigheDopoDatiTotale.Y = Ypos;
tabellaRigheDopoDatiTotale.Header = false;
tabellaRigheDopoDatiTotale.SaltoPagina = false;
tabellaRigheDopoDatiTotale.Datasource = datitab.table;
foreach (DataColumn column in tabellaRigheDopoDatiTotale.Datasource.Columns)
{
if (column.ColumnName.ToLower() == "fase1" && rowTemplate["fase1"].ToString() != string.Empty)
{
dettaglioMovimentiLarghezzaColonnaDescrizione -= dettaglioMovimentiLarghezzaColonnaFase1;
if (rowTemplate["fase1"].ToString().Equals("notvisible"))
{
tabellaRigheDopoDatiTotale.Colonne.Add(new Colonna("Fase1BlankValue",
string.Empty,
dettaglioMovimentiLarghezzaColonnaFase1,
TipoAllineamento.DESTRA, false, 8, false));
}
else
{
++numeroFasiVisibili;
tabellaRigheDopoDatiTotale.Colonne.Add(new Colonna(column.ColumnName,
column.Caption,
dettaglioMovimentiLarghezzaColonnaFase1,
TipoAllineamento.DESTRA, false, 8, false));
}
}
if (column.ColumnName.ToLower() == "fase2" && rowTemplate["fase2"].ToString() != string.Empty)
{
dettaglioMovimentiLarghezzaColonnaDescrizione -= dettaglioMovimentiLarghezzaColonnaFase2;
if (rowTemplate["fase2"].ToString().Equals("notvisible"))
{
tabellaRigheDopoDatiTotale.Colonne.Add(new Colonna("Fase2BlankValue",
string.Empty,
dettaglioMovimentiLarghezzaColonnaFase2,
TipoAllineamento.DESTRA, false, 8, false));
}
else
{
++numeroFasiVisibili;
//if (rowTemplate["fase2"].ToString() != "n.d.")
//{
tabellaRigheDopoDatiTotale.Colonne.Add(new Colonna(column.ColumnName,
column.Caption,
dettaglioMovimentiLarghezzaColonnaFase2,
TipoAllineamento.DESTRA, false, 8, false));
//}
//else
//{
// tabellaRigheDopoDatiTotale.Colonne.Add(new Colonna(column.ColumnName,
// column.Caption,
// dettaglioMovimentiLarghezzaColonnaFase2 - 50,
// TipoAllineamento.SINISTRA, true, 8, false));
//}
}
}
if (column.ColumnName.ToLower() == "fase3" && rowTemplate["fase3"].ToString() != string.Empty)
{
dettaglioMovimentiLarghezzaColonnaDescrizione -= dettaglioMovimentiLarghezzaColonnaFase3;
if (rowTemplate["fase3"].ToString().Equals("notvisible"))
{
tabellaRigheDopoDatiTotale.Colonne.Add(new Colonna("Fase3BlankValue",
string.Empty,
dettaglioMovimentiLarghezzaColonnaFase3,
TipoAllineamento.DESTRA, false, 8, false));
}
else
{
++numeroFasiVisibili;
tabellaRigheDopoDatiTotale.Colonne.Add(new Colonna(column.ColumnName,
column.Caption,
dettaglioMovimentiLarghezzaColonnaFase3,
TipoAllineamento.DESTRA, false, 8, false));
presenzaFase3 = true;
}
}
}
if (numeroFasiVisibili > 0)
{
tabellaRigheDopoDatiTotale.Colonne.Insert(0, new Colonna("Descrizione", "", dettaglioMovimentiLarghezzaColonnaDescrizione, TipoAllineamento.SINISTRA, false, 8, false));
if (presenzaFase3) incrementoPixelRettangoloFase3 += 14;
}
tabellaRigheDopoDatiTotale.Draw(datitab, document);
Ypos += tabellaRigheDopoDatiTotale.AltezzaTabella;
totaleTabellaAlttez += tabellaRigheDopoDatiTotale.AltezzaTabella;
#endregion
#region Disegno riquadro su Situazione Corrente e freccia
//float totaleTabellaAltteza = TabellaAreaBisogno.AltezzaTabella + tabellaTotale.AltezzaCella + tabellaContoCorrente.AltezzaCella + tabellaOperazioniInCorso.AltezzaCella + tabellaRisorseNonAllocate.AltezzaCella + tabellaRisorseFinanziarie.AltezzaCella + tabellaDatiTotale.AltezzaTabella + 10;
// riquadro intorno la colonna Situazione Corrente
float xRiquadro = 528 - larghezzaUltimaColonna + (larghezzaUltimaColonna / 2);
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
Rectangle rettangoloSuSituazioneCorrente;
//rettangoloSuSituazioneCorrente = new Rectangle(xRiquadro, TabellaAreaBisogno.Y - 10, larghezzaUltimaColonna - 35, totaleTabellaAlttez - 13 + incrementoPixelRettangoloFase3);
rettangoloSuSituazioneCorrente = new Rectangle(xRiquadro, TabellaAreaBisogno.Y - 10, larghezzaUltimaColonna - 35, totaleTabellaAlttez - 7 + incrementoPixelRettangoloFase3);
rettangoloSuSituazioneCorrente.CornerRadius = 5;
page.Elements.Add(rettangoloSuSituazioneCorrente);
System.Reflection.Assembly thisExe;
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream file = thisExe.GetManifestResourceStream(UtilityManager.getAppSetting("FrecciaS80"));
switch (nFasi)
{
case 2: // Una freccia tra "attivazione monitoraggio" e "situazione corrente" o tra "Precedente invio report" e "situazione corrente"
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(file, document.getMargineLeft() + 395, TabellaAreaBisogno.Y - 10, 0.57F));
break;
case 3: // Una freccia tra "attivazione monitoraggio" e "precedente invio report" e tra "precedente invio report" e "situazione corrente"
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(file, document.getMargineLeft() + 245, TabellaAreaBisogno.Y - 10, 0.57F));
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(file, document.getMargineLeft() + 395, TabellaAreaBisogno.Y - 10, 0.57F));
break;
default:
break;
}
#endregion
#region Disegno Didascalie Note Dettaglio Movimenti
Ypos -= 13;
DataTable dtRighe = set.Tables["RigheDopoDatiTotale"];
DataTable dtDidascalieDB = set.Tables["DettaglioMovimentiDidascalieNote"];
int fase1NumeroAsterischi = 0;
int fase2NumeroAsterischi = 0;
int fase3NumeroAsterischi = 0;
if (!string.IsNullOrEmpty(dtRighe.Rows[0]["Fase1NumeroAsterischiNota"].ToString())) fase1NumeroAsterischi = Convert.ToInt16(dtRighe.Rows[0]["Fase1NumeroAsterischiNota"]);
if (!string.IsNullOrEmpty(dtRighe.Rows[0]["Fase2NumeroAsterischiNota"].ToString())) fase2NumeroAsterischi = Convert.ToInt16(dtRighe.Rows[0]["Fase2NumeroAsterischiNota"]);
if (!string.IsNullOrEmpty(dtRighe.Rows[0]["Fase3NumeroAsterischiNota"].ToString())) fase3NumeroAsterischi = Convert.ToInt16(dtRighe.Rows[0]["Fase3NumeroAsterischiNota"]);
DataTable dtDidascalieInUso = new DataTable();
dtDidascalieInUso.Columns.Add(new DataColumn("SequenzaAsterischi", typeof(string)));
dtDidascalieInUso.Columns.Add(new DataColumn("Descrizione", typeof(string)));
DataRow dr;
DataRow[] righeDidascalia;
string accodamento = string.Empty;
// lele
if (fase1NumeroAsterischi > 0)
{
righeDidascalia = dtDidascalieDB.Select(string.Format(" NumeroAsterischi = {0}", fase1NumeroAsterischi));
if (righeDidascalia.Length > 0)
{
dr = dtDidascalieInUso.NewRow();
accodamento = "(";
for (int i = 0; i < fase1NumeroAsterischi; i++)
{
accodamento = string.Format("{0}{1}", accodamento, "*");
}
accodamento = string.Format("{0})", accodamento);
dr["SequenzaAsterischi"] = accodamento;
dr["Descrizione"] = righeDidascalia[0]["Descrizione"].ToString();
dtDidascalieInUso.Rows.Add(dr);
}
}
if (fase2NumeroAsterischi > 0)
{
righeDidascalia = dtDidascalieDB.Select(string.Format(" NumeroAsterischi = {0}", fase2NumeroAsterischi));
if (righeDidascalia.Length > 0)
{
dr = dtDidascalieInUso.NewRow();
accodamento = "(";
for (int i = 0; i < fase2NumeroAsterischi; i++)
{
accodamento = string.Format("{0}{1}", accodamento, "*");
}
accodamento = string.Format("{0})", accodamento);
if (fase3NumeroAsterischi == 0)
{
dr["SequenzaAsterischi"] = accodamento;
dr["Descrizione"] = righeDidascalia[0]["Descrizione"].ToString();
}
dtDidascalieInUso.Rows.Add(dr);
}
}
if (fase3NumeroAsterischi > 0)
{
righeDidascalia = dtDidascalieDB.Select(string.Format(" NumeroAsterischi = {0}", fase3NumeroAsterischi));
if (righeDidascalia.Length > 0)
{
dr = dtDidascalieInUso.NewRow();
accodamento = "(";
for (int i = 0; i < fase3NumeroAsterischi; i++)
{
accodamento = string.Format("{0}{1}", accodamento, "*");
}
accodamento = string.Format("{0})", accodamento);
dr["SequenzaAsterischi"] = accodamento + " " + righeDidascalia[0]["Descrizione"].ToString();
//remmare questa se non si vuole far uscire didascalia note?
dr["Descrizione"] = righeDidascalia[0]["Descrizione"].ToString();
dtDidascalieInUso.Rows.Add(dr);
}
}
datitab = new DatiTabella();
datitab.table = dtDidascalieInUso;
Tabella tabellaDidascalieNote = new Tabella();
tabellaDidascalieNote.X = document.getMargineLeft();
tabellaDidascalieNote.Y = Ypos;
tabellaDidascalieNote.Header = false;
tabellaDidascalieNote.SaltoPagina = false;
tabellaDidascalieNote.DimensioneLinea = 0;
tabellaDidascalieNote.AltezzaCella = 10;
tabellaDidascalieNote.DisegnaHeaderAlCambioPagina = false;
tabellaDidascalieNote.Datasource = datitab.table;
//ATTENZIONE:
//A causa del tipo Tabella, per la colonna "SequenzaAsterischi" (con dimensione del testo pari ad 8)
//un valore di larghezza inferiore a 25 renderà imposibile visualizzare correttamente le sequenze di asterischi
//che verranno visualizzate correttamente solo nel caso siano (*), (**), (***).
//512 è il valore della larghezza standard delle tabelle usate in questo documento pdf.
tabellaDidascalieNote.Colonne.Add(new Colonna("SequenzaAsterischi",
string.Empty,
512,
TipoAllineamento.SINISTRA, false, 6, false));
/* tabellaDidascalieNote.Colonne.Add(new Colonna("Descrizione",
string.Empty,
512 - 12,
TipoAllineamento.SINISTRA, false, 6, false));*/
tabellaDidascalieNote.Draw(datitab, document);
Ypos += tabellaDidascalieNote.AltezzaTabella;
totaleTabellaAlttez += tabellaDidascalieNote.AltezzaTabella;
#endregion
document.setLastPos(totaleTabellaAlttez);
}
}