310 lines
10 KiB
C#
310 lines
10 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
namespace PDFGenerator.BusinessLayer
|
||
{
|
||
/// <summary>
|
||
/// Summary description for Paragrafo
|
||
/// </summary>
|
||
public class ParagrafoReport : CapitoloReport
|
||
{
|
||
private Int32 _id;
|
||
private string _titolo;
|
||
private string _sottoTitolo;
|
||
private string _testoIntroduttivo;
|
||
private List<SezioneReport> _children = new List<SezioneReport>();
|
||
private string _querySql;
|
||
private Int32 _ordine;
|
||
private CapitoloReport _parent;
|
||
private bool _checkstampaelemento;
|
||
private bool _ripetistampaelemento = false;
|
||
private bool _indicizzato;
|
||
private float _spazionecessariosezionesuccessiva = 0;
|
||
|
||
private string _areaprogettocodice;
|
||
private string _areaprogettodescrizione;
|
||
private string _nomeprogetto;
|
||
private Int32? _ordinamentoProgettoPerAreeMonitorate;
|
||
private string _nomeprogettodaindicizzare = string.Empty;
|
||
private bool _areaprogettosottomonitoraggio = false;
|
||
private int _numeroprogettiinvestimento;
|
||
//usato per identificare l'intermediario nella S102 S103
|
||
private string _intermediario = string.Empty;
|
||
|
||
public new List<SezioneReport> Children
|
||
{
|
||
get
|
||
{
|
||
return _children;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Costruttore
|
||
/// </summary>
|
||
public ParagrafoReport()
|
||
{
|
||
_checkstampaelemento = true;
|
||
_indicizzato = true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Costruttore
|
||
/// </summary>
|
||
/// <param name="idParagrafo"></param>
|
||
public ParagrafoReport(int idParagrafo)
|
||
{
|
||
|
||
_id = idParagrafo;
|
||
_checkstampaelemento = true;
|
||
_indicizzato = true;
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// Costruttore.
|
||
/// </summary>
|
||
/// <param name="idParagrafo">id del Paragrafo</param>
|
||
/// <param name="SourceDatarow">Datarow che contiene i campi:
|
||
/// queryOracleParagrafo,
|
||
/// titoloParagrafo,
|
||
/// testoParagrafo,
|
||
/// ordineParagrafo,
|
||
/// indicizzatoParagrafo,
|
||
/// che valorizzano le rispettive propriet<65> dell'oggetto Paragrafo.
|
||
/// </param>
|
||
public ParagrafoReport(int idParagrafo, DataRow SourceDatarow)
|
||
: this(idParagrafo)
|
||
{
|
||
_ordine = SourceDatarow["ordineParagrafo"] == DBNull.Value ? 0 : Convert.ToInt32(SourceDatarow["ordineParagrafo"]);
|
||
_titolo = SourceDatarow["titoloParagrafo"].ToString();
|
||
_testoIntroduttivo = SourceDatarow["testoParagrafo"].ToString();
|
||
_querySql = SourceDatarow["querySqlParagrafo"].ToString();
|
||
_indicizzato = Convert.ToBoolean(SourceDatarow["indicizzatoParagrafo"]);
|
||
_spazionecessariosezionesuccessiva = SourceDatarow["spazionecessariosezionesuccessiva"] == DBNull.Value ? 0 : Convert.ToSingle(SourceDatarow["spazionecessariosezionesuccessiva"]);
|
||
|
||
_areaprogettocodice = string.Empty;
|
||
_areaprogettodescrizione = string.Empty;
|
||
_nomeprogetto = string.Empty;
|
||
_nomeprogettodaindicizzare = string.Empty;
|
||
|
||
_ordinamentoProgettoPerAreeMonitorate = null;
|
||
}
|
||
|
||
#region Proprieta
|
||
/// <summary>
|
||
/// Imposta o recupera l'Id del Paragrafo.
|
||
/// </summary>
|
||
public new int Id
|
||
{
|
||
get { return _id; }
|
||
set { _id = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Restituisce l'oggetto Capitolo padre dell'oggetto Paragrafo corrente.
|
||
/// </summary>
|
||
public CapitoloReport ParagrafoParent
|
||
{
|
||
get { return _parent; }
|
||
set { _parent = value; }
|
||
}
|
||
/// <summary>
|
||
/// Imposta o recupera il Titolo del Paragrafo.
|
||
/// </summary>
|
||
public new string Titolo
|
||
{
|
||
get { return _titolo; }
|
||
set { _titolo = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera il sotto titolo del Paragrafo.
|
||
/// </summary>
|
||
public string SottoTitolo
|
||
{
|
||
get { return _sottoTitolo; }
|
||
set { _sottoTitolo = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera il testo che introduce il Paragrafo.
|
||
/// </summary>
|
||
public new string TestoIntroduttivo
|
||
{
|
||
get { return _testoIntroduttivo; }
|
||
set { _testoIntroduttivo = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera il nome del file .sql contenente la select oracle
|
||
/// da lanciare nel caso in cui il paragrafo sia sottoposto a query.
|
||
/// </summary>
|
||
public new string QuerySql
|
||
{
|
||
get { return _querySql; }
|
||
set { _querySql = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera l'ordine di stampa del paragrafo.
|
||
/// </summary>
|
||
public new int Ordine
|
||
{
|
||
get { return _ordine; }
|
||
set { _ordine = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Indica se l'elemento viene stampato o no.
|
||
/// Di default true.
|
||
/// </summary>
|
||
public new bool CheckStampaElemento
|
||
{
|
||
get { return _checkstampaelemento; }
|
||
set { _checkstampaelemento = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Ripete la stampa dell'elemento (paragrafo corrente) e non imposta a false la propriet<65> CheckStampaElemento.
|
||
/// Utilizzato in monitoraggio per stampare i paragrafi per ogni area monitorata, in modo da non duplicare i paragrafi.
|
||
/// Di default = false.
|
||
/// </summary>
|
||
public bool RipetiStampaElemento
|
||
{
|
||
get { return _ripetistampaelemento; }
|
||
set { _ripetistampaelemento = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Indica se il paragrafo dovra essere indicizzato o no.
|
||
/// True se non specificato.
|
||
/// </summary>
|
||
public bool Indicizzato
|
||
{
|
||
get { return _indicizzato; }
|
||
set { _indicizzato = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Ottiene o imposta lo spazio necessario al paragrafo per scrivere la sezione successiva senza
|
||
/// posizionarsi su una nuova pagina del documento.
|
||
/// Il valore viene settato a livello di database: campo "SpazioNecessarioSezioneSuccessiva" della tabella "R6Paragrafo"
|
||
/// </summary>
|
||
public float SpazioNecessarioSezioneSuccessiva
|
||
{
|
||
get { return _spazionecessariosezionesuccessiva; }
|
||
set { _spazionecessariosezionesuccessiva = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera il codice dell'Area/Progetto. es "Inv","Ext".
|
||
/// </summary>
|
||
public string AreaProgettoCodice
|
||
{
|
||
get { return _areaprogettocodice; }
|
||
set { _areaprogettocodice = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera la descrizione dell'Area/Progetto. es "Investimento","Extra Rendimento".
|
||
/// </summary>
|
||
public string AreaProgettoDescrizione
|
||
{
|
||
get { return _areaprogettodescrizione; }
|
||
set { _areaprogettodescrizione = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera la descrizione del nome progetto per l'area di investimento.
|
||
/// </summary>
|
||
public string NomeProgetto
|
||
{
|
||
get { return _nomeprogetto; }
|
||
set { _nomeprogetto = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera il valore di Ordinamento assegnato al progetto nell'ambito delle Aree Monitorate:
|
||
/// questo valore <20> poi consumato dalle sezioni appartenenti al praragrafo per impostare i relativi filtri.
|
||
/// </summary>
|
||
public Int32? OrdinamentoProgettoPerAreeMonitorate
|
||
{
|
||
get { return _ordinamentoProgettoPerAreeMonitorate; }
|
||
set { _ordinamentoProgettoPerAreeMonitorate = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera la descrizione del nome progetto che va indicizzato.
|
||
/// Nel report di proposta l'indicizzazione per le areebisogno/progetto <20> fatta a livello di sezione e non di paragrafo.
|
||
/// Le sezione S70 e S71 sono legate ad un solo paragrafo e vengono duplicate per ogni area/progetto.
|
||
/// Se i progetti di investimento sono >1 l'indicizzazione e il settaggio del titolo e del testo introduttivo,
|
||
/// va fatto solo sulla prima S70 di tali progetti.
|
||
/// </summary>
|
||
public string NomeProgettoDaIndicizzare
|
||
{
|
||
get { return _nomeprogettodaindicizzare; }
|
||
set { _nomeprogettodaindicizzare = value; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Indica se l'area/progetto <20> sottoposta a monitoraggio.
|
||
/// Implica che per e aree/progetto non sottoposte a monitoraggio venga stampata la s43 al posto della s43bis
|
||
/// </summary>
|
||
public bool AreaProgettoSottoMonitoraggio
|
||
{
|
||
get { return _areaprogettosottomonitoraggio; }
|
||
set { _areaprogettosottomonitoraggio = value; }
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// Imposta o recupera il numero totale dei progetti d'investimento.
|
||
/// </summary>
|
||
public int NumeroProgettiInvestimento
|
||
{
|
||
get { return _numeroprogettiinvestimento; }
|
||
set { _numeroprogettiinvestimento = value; }
|
||
}
|
||
/// <summary>
|
||
/// Imposta o recupera L'intermediario per il paragrafo.
|
||
/// </summary>
|
||
public string IntermediarioPar
|
||
{
|
||
get
|
||
{
|
||
return _intermediario;
|
||
}
|
||
set
|
||
{
|
||
_intermediario = value;
|
||
}
|
||
}
|
||
|
||
|
||
#endregion
|
||
|
||
#region Metodi
|
||
public void Add(SezioneReport child)
|
||
{
|
||
_children.Add(child);
|
||
}
|
||
public void Remove(SezioneReport child)
|
||
{
|
||
_children.Remove(child);
|
||
}
|
||
public new void Disegna()
|
||
{
|
||
foreach (SezioneReport child in _children)
|
||
{
|
||
child.SezioneParent = this;
|
||
child.Disegna();
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
#endregion
|
||
}
|
||
} |