using System; using System.Collections.Generic; using System.Linq; using Consulenza.ExternalServices; using Consulenza.ReportWriter.Business; using Consulenza.ReportWriter.Business.Entity; using Consulenza.ReportWriter.Business.OBJ_PDF; using System.Data; using Consulenza.ReportCommon; namespace Consulenza.ReportWriter.Manager.Section.Immobiliare.MonitoraggioNucleo { /// /// Patrimonio Immobiliare Stima delle imposte (id 43) Terreni /// //public class S11 : Monitoraggio.S11 //{ // public S11(EnvironmentFacade environmentFacade, int idSection) // : base(environmentFacade, idSection) // { // } //} public class S11 : Entity.Section { public S11(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("S11", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } /// /// Scheda2. Patrimonio immobiliare –Sintesi (distribuzione del patrimonio complessivo del cliente diviso per tipologia e cointestatari) /// protected override sealed void Draw() { var width = 340; string paragrafoSx, paragrafoDx, titolo; int textCont = 0; FormattedTextAreaPDF testoSx = null; FormattedTextAreaPDF testoDx = null; int x1Linea = 35; int x2Linea; var dataset = GetDataSet(); var _text = dataset.Tables[0]; var data = dataset.Tables[1]; for (int j = 0; j < _text.Rows.Count + 1; j++) { int switchVar = (j % 2 == 0 ? 0 : 1); switch (switchVar) { case 0: //TEXT paragrafoSx = paragrafoDx = ""; titolo = _text.Rows[textCont].Field("titolo") + "
"; for (int i = 1; i <= 15; i++) paragrafoSx += _text.Rows[textCont].Field("testo" + i) != null ? "

" + _text.Rows[textCont].Field("testo" + i) + "


" : ""; // SPLIT PARAGRAFO if (paragrafoSx.Contains("SPLITPARAGRAPH")) { var listaSplit = StringExtensions.SplitAtOccurence(paragrafoSx, "SPLITPARAGRAPH", 1); paragrafoSx = listaSplit[0] + "

"; paragrafoDx += "

"; listaSplit.RemoveRange(0, 1); foreach (var stringa in listaSplit) paragrafoDx += stringa; x1Linea = 35; x2Linea = 750; var lineaVerticaleSeparazione = new LinePDF(x1Linea, x2Linea, 0.5F, ColorPDF.Immobiliare_Grigio_TitoloPiccolo) { AutoIncrementYWritable = true }; var _titolo = new FormattedTextAreaPDF(titolo, 35, width) { FontSize = 13, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left }; testoSx = new FormattedTextAreaPDF(paragrafoSx, 35, width) { AutoIncrementYWritable = false, FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TestoStandard, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }; testoDx = new FormattedTextAreaPDF(paragrafoDx, 410, width) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TestoStandard, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify }; AddElement(new SpacePDF(45)); AddElement(_titolo); AddElement(new SpacePDF(5)); AddElement(lineaVerticaleSeparazione); AddElement(new SpacePDF(10)); AddElement(testoSx); AddElement(new SpacePDF(-7)); AddElement(testoDx); AddElement(new SpacePDF(10)); } switchVar++; textCont++; break; case 1: if (data.AsEnumerable().Where(x => x.Field("row1") != "").Count() > 0) { DataTable tabella = new DataTable(); for (int index = 1; index <= 5; index++) tabella.Columns.Add("column" + index); List columnName = new List(); for (int index = 1; index <= 5; index++) columnName.Add(data.Rows[0].Field("column" + index)); columnName.RemoveAll(item => item == null); foreach (var _row in data.AsEnumerable()) { if (_row["row1"] != null && _row["row1"].ToString() != "") tabella.Rows.Add(_row["row1"], _row["row2"], _row["row3"], _row["row4"], _row["row5"]); } foreach (var column in tabella.Columns.Cast().ToArray()) if (tabella.AsEnumerable().All(dr => dr.IsNull(column))) tabella.Columns.Remove(column); TablePDF table = new TablePDF(x1Linea, tabella) { Style = Style.Immobiliare, AlternateRow = false, Footer = false, ShowBorderLastLine = true, AdditionalSpaceBetweenHeadersAndTable = 5.0F }; for (int idColumn = 1; idColumn <= tabella.Columns.Count; idColumn++) table.Columns.Add(new ColumnPDF(tabella.Rows[0].Field("column" + idColumn), idColumn == 2 ? 400 : 160, idColumn == 1 ? HorizontalAlignmentType.Sinistra : HorizontalAlignmentType.Centrato, false, false, 9, ColumnType.Testo, "column" + idColumn, columnName[idColumn - 1]) { HeaderFontColor = new ColorPDF(92, 89, 81), HeaderFontSize = 9, FontColor = ColorPDF.Immobiliare_Grigio_TestoStandard, HeaderGroupTextDeltaY = 10 }); for (int i = 0; i < tabella.Rows.Count; i++) for (int k = 0; k < table.Columns.Count; k++) { table.Cells[k, i].YContentOffset = 2; } AddElement(new SpacePDF(22)); AddElement(table); } switchVar++; break; } } } ///

/// Recupera i dati necessari alla Section restituendo un DataTable. /// /// protected override DataTable GetDataTable() { return null; } /// /// Recupera i dati necessari alla Section restituendo un DataSet. /// /// protected override DataSet GetDataSet() { var parametri = new List { new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int32, ParameterName = "IdReport", //Value = EnvironmentFacade.ReportEnvironment.ReportId // Impostato a -1 per prendere quello dei Report Monitoraggio Immobiliare Value = EnvironmentFacade.ReportEnvironment.ReportId - 1 }, new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int32, ParameterName = "IdSezione", Value = IdSection } }; return DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerReportModeler, "REP_Monitoraggio_Immobiliare_S11_Scadenzario", parametri); } } }