using System; using System.Collections.Generic; using System.Linq; using Consulenza.ExternalServices; using Consulenza.ReportWriter.Business; using Consulenza.ReportWriter.Business.OBJ_PDF; using System.Data; using Consulenza.ReportWriter.Business.CHART_PDF; using Consulenza.ReportCommon; using Consulenza.ReportWriter.Business.Entity; using System.Text; using System.Drawing; namespace Consulenza.ReportWriter.Manager.Section.Immobiliare.MonitoraggioNucleo { /// /// Scheda 17 /// public class S17 : Entity.Section { public S17(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("S17", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } private Color GetColor(double value) { value = value * 100; if (value >= 80) return Color.FromArgb(0, 109, 45);//(117, 255, 0); if (value >= 60) return Color.FromArgb(162, 216, 154);//(202, 255, 0); if (value >= 40) return Color.FromArgb(242, 221, 68);//(255, 234, 0); if (value >= 20) return Color.FromArgb(233, 148, 33);//(255, 121, 0); else return Color.FromArgb(213, 38, 7);//(255, 5, 0); } private CustomChartPDF DrawPieChart(double value, float currentDeltaY, Color colorRest, Color backgroundColor, double posX, double deltaY, double size, int widthPercentage) { CustomChartPDF pieChart = new CustomChartPDF() { X = (float)posX, DeltaY = currentDeltaY }; var baseChart = pieChart.ChartBase; baseChart.ChartAreas.Add("Default"); baseChart.Legends[0].Enabled = false; baseChart.ChartAreas[0].BackColor = backgroundColor; baseChart.BackColor = backgroundColor; baseChart.Width = new System.Web.UI.WebControls.Unit(size); baseChart.Height = new System.Web.UI.WebControls.Unit(size); baseChart.ChartAreas["Default"].Area3DStyle.Enable3D = false; var colorValue = GetColor(value); baseChart.PaletteCustomColors = new Color[] { colorValue, backgroundColor, colorRest, backgroundColor }; var serie = baseChart.Series.Add("SerieName"); //serie.Type = Dundas.Charting.WebControl.SeriesChartType.Pie; serie.Type = Dundas.Charting.WebControl.SeriesChartType.Doughnut; serie["DoughnutRadius"] = "40"; serie["PieStartAngle"] = "270"; serie.Points.AddXY(1, value - 0.01d); serie.Points.AddXY(1, 0.005d); serie.Points.AddXY(1, 1 - value); serie.Points.AddXY(1, 0.005d); var image = pieChart.GetImage(); Graphics g = Graphics.FromImage(image); SolidBrush brush = new SolidBrush(backgroundColor); int width = image.Width * (100 - widthPercentage) / 100; int height = image.Height * (100 - widthPercentage) / 100; int x = (image.Width - width) / 2; int y = (image.Height - height) / 2; g.DrawEllipse(new Pen(Color.White), new Rectangle(x, y, width, height)); g.FillEllipse(brush, new Rectangle(x, y, width, height)); g.Save(); g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height)); pieChart.SetCustomImage(image); //image.RotateFlip(RotateFlipType.Rotate270FlipNone); return pieChart; } private string UppercaseFirst(string s) { if (string.IsNullOrEmpty(s)) { return string.Empty; } char[] a = s.ToCharArray(); a[0] = char.ToUpper(a[0]); return new string(a); } /// /// Scheda2. Patrimonio immobiliare –Sintesi (distribuzione del patrimonio complessivo del cliente diviso per tipologia e cointestatari) /// protected override sealed void Draw() { //var oLine = new LinePDF(35,100,55,100); //AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); //AddElement(oLine); //oLine = new LinePDF(35, 130, 355, 130); //AddElement(oLine); //oLine = new LinePDF(35, 160, 355, 160); //AddElement(oLine); //oLine = new LinePDF(35, 190, 355, 190); //AddElement(oLine); //oLine = new LinePDF(35, 220, 355, 220); //AddElement(oLine); //oLine = new LinePDF(35, 250, 355, 250); //AddElement(oLine); //oLine = new LinePDF(35, 280, 355, 280); //AddElement(oLine); //oLine = new LinePDF(35, 310, 355, 310); //AddElement(oLine); //oLine = new LinePDF(35, 340, 355, 340); //AddElement(oLine); //oLine = new LinePDF(35, 370, 355, 370); //AddElement(oLine); //oLine = new LinePDF(35, 400, 355, 400); //AddElement(oLine); //oLine = new LinePDF(35, 410, 355, 410); //AddElement(oLine); //oLine = new LinePDF(35, 420, 355, 420); //AddElement(oLine); //oLine = new LinePDF(35, 430, 355, 430); //AddElement(oLine); //oLine = new LinePDF(35, 440, 355, 440); //AddElement(oLine); //return; var dataset = GetDataSet(); FormattedTextAreaPDF testoPagina = new FormattedTextAreaPDF(getTesto1(), 35) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, AutoIncrementYWritable = false, Width = 740, FixedHeight = 25 }; FormattedTextAreaPDF notaTabella = new FormattedTextAreaPDF("Nota(*): variazione percentuale del prezzo €/mq nel semestre di riferimento rispetto al semestre precedente.
", 60, 680) { AutoIncrementYWritable = false, Y = EnvironmentFacade.RendererFacade.YLowerLimit - 23, FontSize = 6, FontColor = ColorPDF.Nero, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaX = 5, DeltaY = 5 }; var listaOggettiDaRipetere = new List { new SpacePDF(30), testoPagina, new SpacePDF(10), notaTabella }; addLegend(listaOggettiDaRipetere); int cont = 0; bool usoAbitativoStrumentale = dataset.Tables["1"].Rows.Count > 0 && dataset.Tables["2"].Rows.Count > 0; int contatore = 0; int contatoreDiversificazione = 0; #region OLD VERSION 20180221 //foreach (DataTable table in dataset.Tables) //{ //if (table != null && table.Rows.Count > 0 && contatore > 0 && contatore <= 4) //{ // // patryk ---------- // // making sure that NEW PAGE is being added when its needed // float rowHeight = 15; // float headerHeight = 25; // float footerHeight = 15; // float tableTitleHeight = 25; // if (cont == 0 || !usoAbitativoStrumentale) // { // AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); // } // if (cont == 0) // { // AddElement(new RepeaterPDF(listaOggettiDaRipetere)); // } // double pieChartValue = Convert.ToDouble(dataset.Tables[0].Rows[contatoreDiversificazione]["valoreDiversificazione"]); // string text = UppercaseFirst(dataset.Tables[0].Rows[contatoreDiversificazione]["classeDiversificazione"].ToString().ToLower()); // contatoreDiversificazione++; // var tablePDF = new TablePDF(35, table, dataset.Tables[contatore + "footer"]) // { // Style = Style.Immobiliare, // AlternateRow = false, // HeaderHeight = headerHeight, // RowHeight = rowHeight, // FooterHeight = footerHeight, // Footer = true, // PageBreak = true, // ShowBorderLastLine = false, // ShowBorderLastLineInPageBreak = false, // TableTitleDeltaX = 5, // TableTitleFontSize = 12, // TableTitleFontBold = true, // TableTitleHeight = tableTitleHeight, // DrawLineHeaderUP = true, // TableTitle = getTitle(contatore.ToString()), // HeaderTextDrawJustOnce = false, // TableTitleFontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, // TableCantReachThisYPosition = 420, // ShowBorderHeader = false, // HeadersObjectsHeight = 25, // AddSpaceBeforeTableAfterEntireTableIsMovedToNextPage = false, // RowsIndexesThatCantEndPageYLimit = 260 // }; // //tablePDF.HeaderNoteObjects.Add(new SpacePDF(-25)); // // Original // //float topChartDeltaY = 3; // //tablePDF.HeaderNoteObjects.Add(new RectanglePDF(16, 160, new ColorPDF(Color.FromArgb(239, 240, 237))) // //{ // // X = 575, // // AutoIncrementYWritable = false, // // DeltaY = topChartDeltaY // //}); // //tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF("Diversificazione:", 575) // //{ // // DeltaY = 3 + topChartDeltaY, // // DeltaX = 3, // // FontColor = new ColorPDF(Color.FromArgb(92, 89, 81)), // // AutoIncrementYWritable = false // //}); // //tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF(text, 685) // //{ // // DeltaY = 3 + topChartDeltaY, // // DeltaX = 3, // // FontColor = new ColorPDF(Color.FromArgb(92, 89, 81)), // // AutoIncrementYWritable = false, // // FontBold = true // //}); // //var pieChart = DrawPieChart(pieChartValue, topChartDeltaY, Color.FromArgb(196, 196, 186), Color.FromArgb(239, 240, 237), 651, 252, 16, 45); // //tablePDF.HeaderNoteObjects.Add(pieChart); // // Sfondo Bianco // float topChartDeltaY = 3; // tablePDF.HeaderNoteObjects.Add(new RectanglePDF(19, 188, new ColorPDF(Color.FromArgb(255, 255, 255))) // { // X = 545, // AutoIncrementYWritable = false, // DeltaY = topChartDeltaY, // BorderColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, // BorderWidth = 0.2f // }); // tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF("Diversificazione fabbricati:", 545) // { // DeltaY = 4 + topChartDeltaY, // DeltaX = 3, // FontColor = new ColorPDF(Color.FromArgb(92, 89, 81)), // AutoIncrementYWritable = false // }); // tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF(text, 684) // { // DeltaY = 4 + topChartDeltaY, // DeltaX = 3, // FontColor = new ColorPDF(Color.FromArgb(92, 89, 81)), // AutoIncrementYWritable = false, // FontBold = true // }); // var pieChart = DrawPieChart(pieChartValue, topChartDeltaY + 1, Color.FromArgb(196, 196, 186), Color.FromArgb(255, 255, 255), 666, 252, 16, 45); // tablePDF.HeaderNoteObjects.Add(pieChart); // //tablePDF.Columns.Add(new ColumnPDF("comune", 140, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "comune", "Comune/Tipologia") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); // //tablePDF.Columns.Add(new ColumnPDF("posizione", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "posizione", "Posizione urbana/Micro-zona") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); // //tablePDF.Columns.Add(new ColumnPDF("numeroImmobili", 50, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "numeroImmobili", "Numero
immobili") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); // //tablePDF.Columns.Add(new ColumnPDF("rischioV", 60, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Objectpdf, "rischioValore", "Rischio
valore") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); // //tablePDF.Columns.Add(new ColumnPDF("rischioL", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "rischioLiquidita", "Rischio
liquidabilità") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); // //tablePDF.Columns.Add(new ColumnPDF("trendV", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "trendValore", "Trend
valore*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); // //tablePDF.Columns.Add(new ColumnPDF("ProQuota", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "ProQuota", "Valore stimato
nucleo (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); // //tablePDF.Columns.Add(new ColumnPDF("stimatoTotale", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "stimatoTotale", "Valore stimato
totale (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); // tablePDF.Columns.Add(new ColumnPDF("comune", 140, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "comune", "Comune/Tipologia") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); // tablePDF.Columns.Add(new ColumnPDF("posizione", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "posizione", "Posizione urbana/Micro-zona") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); // tablePDF.Columns.Add(new ColumnPDF("numeroImmobili", 50, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "numeroImmobili", "Numero
immobili") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); // tablePDF.Columns.Add(new ColumnPDF("rischioV", 60, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Objectpdf, "rischioValore", "Rischio
valore") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); // tablePDF.Columns.Add(new ColumnPDF("rischioL", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "rischioLiquidita", "Rischio
liquidabilità") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); // tablePDF.Columns.Add(new ColumnPDF("trendV", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "trendValore", "Trend
valore*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); // tablePDF.Columns.Add(new ColumnPDF("ProQuota", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "ProQuota", "Valore stimato
nucleo (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); // tablePDF.Columns.Add(new ColumnPDF("stimatoTotale", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "stimatoTotale", "Valore stimato
totale (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); // tablePDF.FooterColumns.Add(new ColumnPDF("comuneFooter", 310, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); // tablePDF.FooterColumns.Add(new ColumnPDF("numeroImmobiliFooter", 50, HorizontalAlignmentType.Centrato, false, true, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); // tablePDF.FooterColumns.Add(new ColumnPDF("rischioValoreFooter", 60, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Immagine, "rischioValoreFooter", "") { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, ScaleColumnTypeImage = 0.30f, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); // tablePDF.FooterColumns.Add(new ColumnPDF("rischioLiquiditaFooter", 49, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Immagine, "rischioLiquiditaFooter", "") { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, ScaleColumnTypeImage = 0.30f, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); // tablePDF.FooterColumns.Add(new ColumnPDF("trend", 71, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); // tablePDF.FooterColumns.Add(new ColumnPDF("ProQuotaFooter", 80, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); // tablePDF.FooterColumns.Add(new ColumnPDF("stimatoTotaleFooter", 80, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); // tablePDF.FooterCells[2, 0].Value = dataset.Tables[contatore + "footer"].Rows[0]["rischioValore"].ToString(); // tablePDF.FooterCells[3, 0].Value = dataset.Tables[contatore + "footer"].Rows[0]["rischioLiquidita"].ToString(); // int i = 0; // foreach (DataRow r in table.Rows) // { // if (table.Rows[i]["comune"].ToString().Contains("")) // { // tablePDF.Cells[0, i].FontColor = ColorPDF.Nero; // tablePDF.RowsIndexesThatCantEndPage.Add(i); // } // if (table.Rows[i]["comune"].ToString().Contains("")) // tablePDF.Cells[0, i].FontColor = ColorPDF.Nero; // float additionalSpace = table.Rows[i]["posizione"].ToString().Length >= 35 ? 2 : 0; // if (!table.Rows[i]["trendValore"].ToString().Contains("n.d.") && !table.Rows[i]["trendValore"].ToString().Equals("") && !table.Rows[i]["trendValore"].ToString().Contains("n.c.")) // { // ImagePDF imageSymbol = new ImagePDF(0, 1, table.Rows[i]["trendValore"].ToString()) // { // DeltaX = table.Rows[i]["trendValore"].ToString().Contains("horizontal") ? -10 : -9, // Scale = table.Rows[i]["trendValore"].ToString().Contains("horizontal") ? 0.35f : 0.50f // }; // var tempPositioneText = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; // var positioneHeight = tempPositioneText.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); // var tempImage = new ceTe.DynamicPDF.PageElements.Image(imageSymbol.Path, 0, 0, imageSymbol.Scale); // var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; // //var deltaYOffset = ((currentRowHeight - tempImage.Height) / 2) - (positioneHeight / 3); // imageSymbol.DeltaY = 1; // tablePDF.Cells[5, i].ValueObjectList.Add(imageSymbol); // } // else if (!table.Rows[i]["comune"].ToString().Contains("")) // { // var tempPositioneText = new FormattedTextAreaPDF // { // Text = "n.d.", // FontBold = false, // FontColor = new ColorPDF(92, 89, 81), // DeltaX = sumColumns(tablePDF, 5) + 20, // FontSize = 7, // }; // var calcolapos = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; // var positioneHeight = calcolapos.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); // var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; // //var deltaYOffset = (currentRowHeight / 2) - (positioneHeight / 6) - 4; // //tempPositioneText.DeltaY = deltaYOffset; // var deltaYOffset = (currentRowHeight / 2) - (positioneHeight / 6); // tempPositioneText.DeltaY = deltaYOffset - Convert.ToSingle(6.3); // tablePDF.Cells[5, i].ValueObjectList.Add(tempPositioneText); // } // additionalSpace = table.Rows[i]["posizione"].ToString().Length >= 35 ? 4 : 0; // if (!table.Rows[i]["rischioValore"].ToString().Contains("n.d.") && !table.Rows[i]["rischioValore"].ToString().Equals("") && !table.Rows[i]["rischioValore"].ToString().Contains("n.c.")) // { // ImagePDF imageSymbolRischioValore = new ImagePDF(0, 1, table.Rows[i]["rischioValore"].ToString()) // { // // DeltaY = additionalSpace, // DeltaX = -2, // Scale = 0.30f // }; // var tempPositioneText = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; // var positioneHeight = tempPositioneText.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); // var tempImage = new ceTe.DynamicPDF.PageElements.Image(imageSymbolRischioValore.Path, 0, 0, imageSymbolRischioValore.Scale); // var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; // // var deltaYOffset = ((currentRowHeight - tempImage.Height) / 2) - (positioneHeight / 6); // imageSymbolRischioValore.DeltaY = 1; // tablePDF.Cells[3, i].ValueObjectList.Add(imageSymbolRischioValore); // } // else // { // } // if (!table.Rows[i]["rischioLiquidita"].ToString().Contains("n.d.") && !table.Rows[i]["rischioLiquidita"].ToString().Equals("") && !table.Rows[i]["rischioLiquidita"].ToString().Contains("n.c.")) // { // ImagePDF imageSymbolRischioLiquidita = new ImagePDF(0, 1, table.Rows[i]["rischioLiquidita"].ToString()) // { // //DeltaY = additionalSpace, // DeltaX = -9.5F, //10 // Scale = 0.30f // }; // var tempPositioneText = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; // var positioneHeight = tempPositioneText.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); // var tempImage = new ceTe.DynamicPDF.PageElements.Image(imageSymbolRischioLiquidita.Path, 0, 0, imageSymbolRischioLiquidita.Scale); // var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; // //var deltaYOffset = ((currentRowHeight - tempImage.Height) / 2) - (positioneHeight / 6); // imageSymbolRischioLiquidita.DeltaY = 1; // tablePDF.Cells[4, i].ValueObjectList.Add(imageSymbolRischioLiquidita); // } // i++; // } // string title = getTitle(contatore.ToString()); // AddElement(tablePDF); // AddElement(new SpacePDF(20)); // // patryk ------------------------- // var tables = dataset.Tables.Cast().Where(x => x.Rows.Count > 0).ToList(); // var lastTable = tables.Last(); // if (tables.Count > 4) // { // lastTable = tables[4]; // } // if (table != lastTable) // { // ActionPDF action = new ActionPDF(); // action.YPositionAction = (yPos) => // { // List objectsList = new List(); // if (yPos > 300) // { // objectsList.Add(new PagePDF(PagePDF.PagePDFType.Generic)); // } // return objectsList; // }; // //AddElement(action); // } // // ------------------------------- // cont++; //} //contatore++; //} #endregion foreach (DataTable table in dataset.Tables) { if (table != null && table.Rows.Count > 0 && contatore > 0 && contatore <= 4) { //// patryk ---------- //// making sure that NEW PAGE is being added when its needed //float rowHeight = 20; //float headerHeight = 25; //float footerHeight = 15; //float tableTitleHeight = 25; float rowHeight = 18; float headerHeight = 20; float footerHeight = 13; float tableTitleHeight = 20; //float newTableHeight = 0; //for (int j = 0; j < table.Rows.Count; j++) //{ // var tempPositioneText = new FormattedTextAreaPDF(table.Rows[j]["posizione"].ToString(), 0, 170) { FontSize = 7 }; // var positioneHeight = tempPositioneText.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); // var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; // newTableHeight += currentRowHeight; //} //// here we have height of entire table calculated //newTableHeight = newTableHeight + headerHeight + footerHeight + tableTitleHeight; //// we dont care if it goes for multiple pages and its big //newTableHeight = newTableHeight % spaceAvailableForOneTable; // Commentare questa if per Salto pagina personalizzato //if (cont == 0 || !usoAbitativoStrumentale) AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); if (cont == 0) { //AddElement(listaOggettiDaRipetere); AddElement(new RepeaterPDF(listaOggettiDaRipetere)); } double pieChartValue = Convert.ToDouble(dataset.Tables[0].Rows[contatoreDiversificazione]["valoreDiversificazione"]); string text = UppercaseFirst(dataset.Tables[0].Rows[contatoreDiversificazione]["classeDiversificazione"].ToString().ToLower()); if (text == "") text = "n.c."; contatoreDiversificazione++; var tablePDF = new TablePDF(35, table, dataset.Tables[contatore + "footer"]) { Style = Style.Immobiliare, AlternateRow = false, HeaderHeight = headerHeight, RowHeight = rowHeight, FooterHeight = footerHeight, Footer = true, PageBreak = true, ShowBorderLastLine = false, ShowBorderLastLineInPageBreak = false, TableTitleDeltaX = 5, TableTitleFontSize = 12, TableTitleFontBold = true, TableTitleHeight = tableTitleHeight, DrawLineHeaderUP = true, TableTitle = getTitle(contatore.ToString()), HeaderTextDrawJustOnce = false, TableTitleFontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, TableCantReachThisYPosition = 420, ShowBorderHeader = false, HeadersObjectsHeight = 25, AddSpaceBeforeTableAfterEntireTableIsMovedToNextPage = false, //RowsIndexesThatCantEndPageYLimit = 260 RowsIndexesThatCantEndPageYLimit = 300 }; //tablePDF.HeaderNoteObjects.Add(new SpacePDF(-25)); // Original //float topChartDeltaY = 3; //tablePDF.HeaderNoteObjects.Add(new RectanglePDF(16, 160, new ColorPDF(Color.FromArgb(239, 240, 237))) //{ // X = 575, // AutoIncrementYWritable = false, // DeltaY = topChartDeltaY //}); //tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF("Diversificazione:", 575) //{ // DeltaY = 3 + topChartDeltaY, // DeltaX = 3, // FontColor = new ColorPDF(Color.FromArgb(92, 89, 81)), // AutoIncrementYWritable = false //}); //tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF(text, 685) //{ // DeltaY = 3 + topChartDeltaY, // DeltaX = 3, // FontColor = new ColorPDF(Color.FromArgb(92, 89, 81)), // AutoIncrementYWritable = false, // FontBold = true //}); //var pieChart = DrawPieChart(pieChartValue, topChartDeltaY, Color.FromArgb(196, 196, 186), Color.FromArgb(239, 240, 237), 651, 252, 16, 45); //tablePDF.HeaderNoteObjects.Add(pieChart); // Sfondo Bianco float topChartDeltaY = 3; tablePDF.HeaderNoteObjects.Add(new RectanglePDF(19, 188, new ColorPDF(Color.FromArgb(255, 255, 255))) { X = 545, AutoIncrementYWritable = false, DeltaY = topChartDeltaY, BorderColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, BorderWidth = 0.2f }); tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF("Diversificazione fabbricati:", 545) { DeltaY = 4 + topChartDeltaY, DeltaX = 3, FontColor = new ColorPDF(Color.FromArgb(92, 89, 81)), AutoIncrementYWritable = false }); tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF(text, 684) { DeltaY = 4 + topChartDeltaY, DeltaX = 3, FontColor = new ColorPDF(Color.FromArgb(92, 89, 81)), AutoIncrementYWritable = false, FontBold = true }); var pieChart = DrawPieChart(pieChartValue, topChartDeltaY + 1, Color.FromArgb(196, 196, 186), Color.FromArgb(255, 255, 255), 666, 252, 16, 45); tablePDF.HeaderNoteObjects.Add(pieChart); //tablePDF.Columns.Add(new ColumnPDF("comune", 140, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "comune", "Comune/Tipologia") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); //tablePDF.Columns.Add(new ColumnPDF("posizione", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "posizione", "Posizione urbana/Micro-zona") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); //tablePDF.Columns.Add(new ColumnPDF("numeroImmobili", 50, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "numeroImmobili", "Numero
immobili") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); //tablePDF.Columns.Add(new ColumnPDF("rischioV", 60, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Objectpdf, "rischioValore", "Rischio
valore") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); //tablePDF.Columns.Add(new ColumnPDF("rischioL", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "rischioLiquidita", "Rischio
liquidabilità") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); //tablePDF.Columns.Add(new ColumnPDF("trendV", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "trendValore", "Trend
valore*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); //tablePDF.Columns.Add(new ColumnPDF("ProQuota", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "ProQuota", "Valore stimato
pro quota (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); //tablePDF.Columns.Add(new ColumnPDF("stimatoTotale", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "stimatoTotale", "Valore stimato
totale (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Centrato }); tablePDF.Columns.Add(new ColumnPDF("comune", 140, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "comune", "Comune/Tipologia") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); tablePDF.Columns.Add(new ColumnPDF("posizione", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "posizione", "Posizione urbana/Micro-zona") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); tablePDF.Columns.Add(new ColumnPDF("numeroImmobili", 50, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "numeroImmobili", "Numero
immobili") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); tablePDF.Columns.Add(new ColumnPDF("rischioV", 60, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Objectpdf, "rischioValore", "Rischio
valore") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); tablePDF.Columns.Add(new ColumnPDF("rischioL", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "rischioLiquidita", "Rischio
liquidabilità") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); tablePDF.Columns.Add(new ColumnPDF("trendV", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Objectpdf, "trendValore", "Trend
valore*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); tablePDF.Columns.Add(new ColumnPDF("ProQuota", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "ProQuota", "Valore stimato
nucleo (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); tablePDF.Columns.Add(new ColumnPDF("stimatoTotale", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "stimatoTotale", "Valore stimato
totale (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderFontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto }); tablePDF.FooterColumns.Add(new ColumnPDF("comuneFooter", 310, HorizontalAlignmentType.Sinistra, false, true, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); tablePDF.FooterColumns.Add(new ColumnPDF("numeroImmobiliFooter", 50, HorizontalAlignmentType.Centrato, false, true, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); tablePDF.FooterColumns.Add(new ColumnPDF("rischioValoreFooter", 60, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Immagine, "rischioValoreFooter", "") { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, ScaleColumnTypeImage = 0.30f, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); tablePDF.FooterColumns.Add(new ColumnPDF("rischioLiquiditaFooter", 49, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Immagine, "rischioLiquiditaFooter", "") { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, ScaleColumnTypeImage = 0.30f, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); tablePDF.FooterColumns.Add(new ColumnPDF("trend", 71, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); tablePDF.FooterColumns.Add(new ColumnPDF("ProQuotaFooter", 80, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); tablePDF.FooterColumns.Add(new ColumnPDF("stimatoTotaleFooter", 80, HorizontalAlignmentType.Destra, false, true, 7, ColumnType.Testo) { HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 0, FontColor = new ColorPDF(92, 89, 81), VerticalAlignment = VerticalAlignmentType.Centrato }); tablePDF.FooterCells[2, 0].Value = dataset.Tables[contatore + "footer"].Rows[0]["rischioValore"].ToString(); tablePDF.FooterCells[3, 0].Value = dataset.Tables[contatore + "footer"].Rows[0]["rischioLiquidita"].ToString(); int i = 0; //EnvironmentFacade.RendererFacade.YWritable = 100; foreach (DataRow r in table.Rows) { //EnvironmentFacade.RendererFacade.YWritable += 30; if (table.Rows[i]["comune"].ToString().Contains("")) { tablePDF.Cells[0, i].FontColor = ColorPDF.Nero; tablePDF.RowsIndexesThatCantEndPage.Add(i); } //if (EnvironmentFacade.RendererFacade.YWritable > 400) //{ // AddElement(new PagePDF(PagePDF.PagePDFType.Generic)); // EnvironmentFacade.RendererFacade.YWritable = 100; //} // Modifica ES in data 20170904 // if (!table.Rows[i]["trendValore"].ToString().Contains("n.d.") && !table.Rows[i]["trendValore"].ToString().Equals("")) if (!table.Rows[i]["trendValore"].ToString().Contains("n.d.") && !table.Rows[i]["trendValore"].ToString().Equals("") && !table.Rows[i]["trendValore"].ToString().Contains("n.c.")) { ImagePDF imageSymbol = new ImagePDF(0, 1, table.Rows[i]["trendValore"].ToString()) { DeltaX = table.Rows[i]["trendValore"].ToString().Contains("horizontal") ? -10 : -9, Scale = table.Rows[i]["trendValore"].ToString().Contains("horizontal") ? 0.35f : 0.50f }; var tempPositioneText = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; var positioneHeight = tempPositioneText.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); var tempImage = new ceTe.DynamicPDF.PageElements.Image(imageSymbol.Path, 0, 0, imageSymbol.Scale); var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; //var deltaYOffset = ((currentRowHeight - tempImage.Height) / 2) - (positioneHeight / 3); imageSymbol.DeltaY = 1; tablePDF.Cells[5, i].ValueObjectList.Add(imageSymbol); } else if (!table.Rows[i]["comune"].ToString().Contains("")) { var tempPositioneText = new FormattedTextAreaPDF { // Modifica ES in data 20170904 // Text = "n.d.", Text = table.Rows[i]["posizione"].ToString().Trim() == "-" ? "n.c." : "n.d.", FontBold = false, FontColor = new ColorPDF(92, 89, 81), DeltaX = sumColumns(tablePDF, 5) + 20, FontSize = 7, }; var calcolapos = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; var positioneHeight = calcolapos.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; //var deltaYOffset = (currentRowHeight / 2) - (positioneHeight / 6) - 4; var deltaYOffset = (currentRowHeight / 2) - (positioneHeight / 6); //if (tempPositioneText.Text == "n.c." || tempPositioneText.Text == "n.d.") //tempPositioneText.DeltaY = deltaYOffset - Convert.ToSingle(5.7); //else tempPositioneText.DeltaY = deltaYOffset - Convert.ToSingle(8); tablePDF.Cells[5, i].ValueObjectList.Add(tempPositioneText); } //additionalSpace = table.Rows[i]["posizione"].ToString().Length >= 35 ? 4 : 0; // Modifica ES in data 20170904 //if (!table.Rows[i]["rischioValore"].ToString().Contains("n.d.") && !table.Rows[i]["rischioValore"].ToString().Equals("")) if (!table.Rows[i]["rischioValore"].ToString().Contains("n.d.") && !table.Rows[i]["rischioValore"].ToString().Equals("") && !table.Rows[i]["trendValore"].ToString().Contains("n.c.")) { ImagePDF imageSymbolRischioValore = new ImagePDF(0, 1, table.Rows[i]["rischioValore"].ToString()) { // DeltaY = additionalSpace, DeltaX = -2, Scale = 0.30f }; var tempPositioneText = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; var positioneHeight = tempPositioneText.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); var tempImage = new ceTe.DynamicPDF.PageElements.Image(imageSymbolRischioValore.Path, 0, 0, imageSymbolRischioValore.Scale); var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; //var deltaYOffset = ((currentRowHeight - tempImage.Height) / 2) - (positioneHeight / 3); imageSymbolRischioValore.DeltaY = 1; tablePDF.Cells[3, i].ValueObjectList.Add(imageSymbolRischioValore); } else if (!table.Rows[i]["comune"].ToString().Contains("")) { var tempPositioneText = new FormattedTextAreaPDF { // Modifica ES in data 20170904 // Text = "n.d.", Text = table.Rows[i]["posizione"].ToString().Trim() == "-" ? "n.c." : "n.d.", FontBold = false, FontColor = new ColorPDF(92, 89, 81), DeltaX = sumColumns(tablePDF, 3) + 60, FontSize = 7, }; var calcolapos = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; var positioneHeight = calcolapos.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; //var deltaYOffset = (currentRowHeight / 2) - (positioneHeight / 6) - 4; var deltaYOffset = (currentRowHeight / 2) - (positioneHeight / 6); //if (tempPositioneText.Text == "n.c." || tempPositioneText.Text == "n.d.") // tempPositioneText.DeltaY = deltaYOffset - Convert.ToSingle(5.7); //else tempPositioneText.DeltaY = deltaYOffset - Convert.ToSingle(8); tablePDF.Cells[3, i].ValueObjectList.Add(tempPositioneText); } // Modifica ES in data 20170904 //if (!table.Rows[i]["rischioLiquidita"].ToString().Contains("n.d.") && !table.Rows[i]["rischioLiquidita"].ToString().Equals("")) if (!table.Rows[i]["rischioLiquidita"].ToString().Contains("n.d.") && !table.Rows[i]["rischioLiquidita"].ToString().Equals("") && !table.Rows[i]["trendValore"].ToString().Contains("n.c.")) { ImagePDF imageSymbolRischioLiquidita = new ImagePDF(0, 1, table.Rows[i]["rischioLiquidita"].ToString()) { //DeltaY = additionalSpace, DeltaX = -9.5F, //10 Scale = 0.30f }; var tempPositioneText = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; var positioneHeight = tempPositioneText.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); var tempImage = new ceTe.DynamicPDF.PageElements.Image(imageSymbolRischioLiquidita.Path, 0, 0, imageSymbolRischioLiquidita.Scale); var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; //var deltaYOffset = ((currentRowHeight - tempImage.Height) / 2) - (positioneHeight / 3); imageSymbolRischioLiquidita.DeltaY = 1; tablePDF.Cells[4, i].ValueObjectList.Add(imageSymbolRischioLiquidita); } else if (!table.Rows[i]["comune"].ToString().Contains("")) { var tempPositioneText = new FormattedTextAreaPDF { // Modifica ES in data 20170904 // Text = "n.d.", Text = table.Rows[i]["posizione"].ToString().Trim() == "-" ? "n.c." : "n.d.", FontBold = false, FontColor = new ColorPDF(92, 89, 81), DeltaX = sumColumns(tablePDF, 4) + 80, FontSize = 7, }; var calcolapos = new FormattedTextAreaPDF(table.Rows[i]["posizione"].ToString(), 0, 170) { FontSize = 7 }; var positioneHeight = calcolapos.GetHeight(EnvironmentFacade.ReportEnvironment.FontFamily, false); var currentRowHeight = rowHeight > positioneHeight ? rowHeight : positioneHeight; //var deltaYOffset = (currentRowHeight / 2) - (positioneHeight / 6) - 4; var deltaYOffset = (currentRowHeight / 2) - (positioneHeight / 6); //if (tempPositioneText.Text == "n.c." || tempPositioneText.Text == "n.d.") //tempPositioneText.DeltaY = deltaYOffset - Convert.ToSingle(5.7); //else tempPositioneText.DeltaY = deltaYOffset - Convert.ToSingle(8); tablePDF.Cells[4, i].ValueObjectList.Add(tempPositioneText); } i++; } AddElement(tablePDF); AddElement(new SpacePDF(20)); #region Modifiche Patryk per Salto Pagina // patryk ------------------------- var tables = dataset.Tables.Cast().Where(x => x.Rows.Count > 0).ToList(); var lastTable = tables.Last(); if (tables.Count > 4) { lastTable = tables[4]; } if (table != lastTable) { ActionPDF action = new ActionPDF(); action.YPositionAction = (yPos) => { List objectsList = new List(); if (yPos > 300) { objectsList.Add(new PagePDF(PagePDF.PagePDFType.Generic)); } return objectsList; }; //AddElement(action); } // ------------------------------- #endregion cont++; } contatore++; } } protected float sumColumns(TablePDF table, int columns) { float _var = 0; for (int i = 0; i < Math.Min(columns, table.Columns.Count); i++) _var += table.Columns[i].Width; return _var; } protected void addLegend(List repeatedList) { int xLegenda = 35; int legendWidth = 260; int legendHeight = 15; float yLegenda = EnvironmentFacade.RendererFacade.YLowerLimit - 40; AddElement(new SpacePDF(5)); var ftaNomeLabel = new FormattedTextAreaPDF { Text = "Livello di rischio", FontColor = ColorPDF.Nero, X = xLegenda + 10, FontSize = 7, Y = yLegenda - 10, FontBold = true }; // Original //repeatedList.Add(new RectanglePDF(legendHeight, legendWidth, new ColorPDF(217, 217, 217)) { X = xLegenda, AutoIncrementYWritable = false, Y = yLegenda }); // Sfondo Bianco repeatedList.Add(new RectanglePDF(legendHeight, legendWidth, new ColorPDF(255, 255, 255)) { X = xLegenda, AutoIncrementYWritable = false, Y = yLegenda, BorderColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, BorderWidth = 0.2f }); repeatedList.Add(new ImagePDF(xLegenda, 0.30F, "basso.png") { DeltaY = 4F, AutoIncrementYWritable = false, DeltaX = 4F, Y = yLegenda }); repeatedList.Add(ftaNomeLabel); xLegenda += 15; ftaNomeLabel = new FormattedTextAreaPDF { Text = "Basso", FontColor = ColorPDF.Nero, DeltaX = 1F, DeltaY = 4F, AutoIncrementYWritable = false, X = xLegenda, FontSize = 7, Y = yLegenda }; xLegenda += (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length); repeatedList.Add(ftaNomeLabel); repeatedList.Add(new ImagePDF(xLegenda, 0.30F, "medio_basso.png") { DeltaY = 4F, AutoIncrementYWritable = false, DeltaX = 4F, Y = yLegenda }); xLegenda += 15; ftaNomeLabel = new FormattedTextAreaPDF { Text = "Medio basso", FontColor = ColorPDF.Nero, DeltaX = 1F, DeltaY = 4F, AutoIncrementYWritable = false, X = xLegenda, FontSize = 7, Y = yLegenda }; xLegenda += (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length); repeatedList.Add(ftaNomeLabel); repeatedList.Add(new ImagePDF(xLegenda, 0.30F, "medio.png") { DeltaY = 4F, AutoIncrementYWritable = false, DeltaX = 4F, Y = yLegenda }); xLegenda += 15; ftaNomeLabel = new FormattedTextAreaPDF { Text = "Medio", FontColor = ColorPDF.Nero, DeltaX = 1F, DeltaY = 4F, AutoIncrementYWritable = false, X = xLegenda, FontSize = 7, Y = yLegenda }; xLegenda += (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length); repeatedList.Add(ftaNomeLabel); repeatedList.Add(new ImagePDF(xLegenda, 0.30F, "medio_alto.png") { DeltaY = 4F, AutoIncrementYWritable = false, DeltaX = 4F, Y = yLegenda }); xLegenda += 15; ftaNomeLabel = new FormattedTextAreaPDF { Text = "Medio alto", FontColor = ColorPDF.Nero, DeltaX = 1F, DeltaY = 4F, AutoIncrementYWritable = false, X = xLegenda, FontSize = 7, Y = yLegenda }; xLegenda += +(ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length); repeatedList.Add(ftaNomeLabel); repeatedList.Add(new ImagePDF(xLegenda, 0.30F, "alto.png") { DeltaY = 4F, AutoIncrementYWritable = false, DeltaX = 4F, Y = yLegenda }); xLegenda += 15; ftaNomeLabel = new FormattedTextAreaPDF { Text = "Alto", FontColor = ColorPDF.Nero, DeltaX = 1F, DeltaY = 4F, AutoIncrementYWritable = false, X = xLegenda, FontSize = 7, Y = yLegenda }; repeatedList.Add(ftaNomeLabel); #region legenda freccia xLegenda += 50; legendWidth = 160; legendHeight = 15; // Original //repeatedList.Add(new RectanglePDF(legendHeight, legendWidth, new ColorPDF(217, 217, 217)) { X = xLegenda, AutoIncrementYWritable = false, Y = yLegenda }); // Sfondo Bianco repeatedList.Add(new RectanglePDF(legendHeight, legendWidth, new ColorPDF(255, 255, 255)) { X = xLegenda, AutoIncrementYWritable = false, Y = yLegenda, BorderColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, BorderWidth = 0.2f }); repeatedList.Add(new ImagePDF(xLegenda, 0.50F, "upArrow.png") { DeltaY = 4F, AutoIncrementYWritable = false, DeltaX = 4F, Y = yLegenda }); ftaNomeLabel = new FormattedTextAreaPDF { Text = "Trend valore", FontColor = ColorPDF.Nero, X = xLegenda + 10, FontSize = 7, Y = yLegenda - 10, FontBold = true }; repeatedList.Add(ftaNomeLabel); xLegenda += 20; ftaNomeLabel = new FormattedTextAreaPDF { Text = "In crescita", FontColor = ColorPDF.Nero, DeltaX = 1F, DeltaY = 4F, AutoIncrementYWritable = false, X = xLegenda, FontSize = 7, Y = yLegenda }; xLegenda += 40;// + (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length); repeatedList.Add(ftaNomeLabel); repeatedList.Add(new ImagePDF(xLegenda, 0.35F, "horizontalArrow.png") { DeltaY = 5.2F, AutoIncrementYWritable = false, DeltaX = 4F, Y = yLegenda }); xLegenda += 20; ftaNomeLabel = new FormattedTextAreaPDF { Text = "Stabile", FontColor = ColorPDF.Nero, DeltaX = 1F, DeltaY = 4F, AutoIncrementYWritable = false, X = xLegenda, FontSize = 7, Y = yLegenda }; xLegenda += 25;// + (ftaNomeLabel.Text.Length * 5) + (10 - ftaNomeLabel.Text.Length); repeatedList.Add(ftaNomeLabel); repeatedList.Add(new ImagePDF(xLegenda, 0.50F, "downArrow.png") { DeltaY = 4F, AutoIncrementYWritable = false, DeltaX = 4F, Y = yLegenda }); xLegenda += 20; ftaNomeLabel = new FormattedTextAreaPDF { Text = "In calo", FontColor = ColorPDF.Nero, DeltaX = 1F, DeltaY = 4F, AutoIncrementYWritable = false, X = xLegenda, FontSize = 7, Y = yLegenda }; repeatedList.Add(ftaNomeLabel); #endregion } /// /// 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 = "chiaveNucleo", Value = EnvironmentFacade.ReportEnvironment.NucleoImmobiliare.ChiaveNucleo } }; var dsOriginal = DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_ImmobiliareMonitoraggio_S_AnalisiRischioDettaglio", parametri); if (dsOriginal.Tables[0].Rows.Count == 0) return null; DataSet data = new DataSet(); data.Tables.Add(dsOriginal.Tables[0].Copy()); (data.Tables[0]).TableName = "diversificazione"; // Classe Diversificazione dsOriginal.Tables.Remove(dsOriginal.Tables[0]); data.Tables.Add(new DataTable("1")); // U data.Tables["1"].Columns.Add("comune", typeof(string)); data.Tables["1"].Columns.Add("posizione", typeof(string)); data.Tables["1"].Columns.Add("numeroImmobili", typeof(string)); data.Tables["1"].Columns.Add("rischioValore", typeof(string)); data.Tables["1"].Columns.Add("rischioLiquidita", typeof(string)); data.Tables["1"].Columns.Add("trendValore", typeof(string)); data.Tables["1"].Columns.Add("proQuota", typeof(string)); data.Tables["1"].Columns.Add("stimatoTotale", typeof(string)); data.Tables.Add(new DataTable("2")); // S data.Tables["2"].Columns.Add("comune", typeof(string)); data.Tables["2"].Columns.Add("posizione", typeof(string)); data.Tables["2"].Columns.Add("numeroImmobili", typeof(string)); data.Tables["2"].Columns.Add("rischioValore", typeof(string)); data.Tables["2"].Columns.Add("rischioLiquidita", typeof(string)); data.Tables["2"].Columns.Add("trendValore", typeof(string)); data.Tables["2"].Columns.Add("proQuota", typeof(string)); data.Tables["2"].Columns.Add("stimatoTotale", typeof(string)); data.Tables.Add(new DataTable("3")); // I data.Tables["3"].Columns.Add("comune", typeof(string)); data.Tables["3"].Columns.Add("posizione", typeof(string)); data.Tables["3"].Columns.Add("numeroImmobili", typeof(string)); data.Tables["3"].Columns.Add("rischioValore", typeof(string)); data.Tables["3"].Columns.Add("rischioLiquidita", typeof(string)); data.Tables["3"].Columns.Add("trendValore", typeof(string)); data.Tables["3"].Columns.Add("proQuota", typeof(string)); data.Tables["3"].Columns.Add("stimatoTotale", typeof(string)); data.Tables.Add(new DataTable("4")); // NS data.Tables["4"].Columns.Add("comune", typeof(string)); data.Tables["4"].Columns.Add("posizione", typeof(string)); data.Tables["4"].Columns.Add("numeroImmobili", typeof(string)); data.Tables["4"].Columns.Add("rischioValore", typeof(string)); data.Tables["4"].Columns.Add("rischioLiquidita", typeof(string)); data.Tables["4"].Columns.Add("trendValore", typeof(string)); data.Tables["4"].Columns.Add("proQuota", typeof(string)); data.Tables["4"].Columns.Add("stimatoTotale", typeof(string)); data.Tables.Add(new DataTable("1footer")); // U data.Tables["1footer"].Columns.Add("comune", typeof(string)); data.Tables["1footer"].Columns.Add("numeroImmobili", typeof(string)); data.Tables["1footer"].Columns.Add("rischioValore", typeof(string)); data.Tables["1footer"].Columns.Add("rischioLiquidita", typeof(string)); data.Tables["1footer"].Columns.Add("trendValore", typeof(string)); data.Tables["1footer"].Columns.Add("proQuota", typeof(string)); data.Tables["1footer"].Columns.Add("stimatoTotale", typeof(string)); data.Tables.Add(new DataTable("2footer")); // S data.Tables["2footer"].Columns.Add("comune", typeof(string)); data.Tables["2footer"].Columns.Add("numeroImmobili", typeof(string)); data.Tables["2footer"].Columns.Add("rischioValore", typeof(string)); data.Tables["2footer"].Columns.Add("rischioLiquidita", typeof(string)); data.Tables["2footer"].Columns.Add("trendValore", typeof(string)); data.Tables["2footer"].Columns.Add("proQuota", typeof(string)); data.Tables["2footer"].Columns.Add("stimatoTotale", typeof(string)); data.Tables.Add(new DataTable("3footer")); // I data.Tables["3footer"].Columns.Add("comune", typeof(string)); data.Tables["3footer"].Columns.Add("numeroImmobili", typeof(string)); data.Tables["3footer"].Columns.Add("rischioValore", typeof(string)); data.Tables["3footer"].Columns.Add("rischioLiquidita", typeof(string)); data.Tables["3footer"].Columns.Add("trendValore", typeof(string)); data.Tables["3footer"].Columns.Add("proQuota", typeof(string)); data.Tables["3footer"].Columns.Add("stimatoTotale", typeof(string)); data.Tables.Add(new DataTable("4footer")); // NS data.Tables["4footer"].Columns.Add("comune", typeof(string)); data.Tables["4footer"].Columns.Add("numeroImmobili", typeof(string)); data.Tables["4footer"].Columns.Add("rischioValore", typeof(string)); data.Tables["4footer"].Columns.Add("rischioLiquidita", typeof(string)); data.Tables["4footer"].Columns.Add("trendValore", typeof(string)); data.Tables["4footer"].Columns.Add("proQuota", typeof(string)); data.Tables["4footer"].Columns.Add("stimatoTotale", typeof(string)); List ordinamento = new List(); ordinamento.Add(1); ordinamento.Add(2); ordinamento.Add(3); ordinamento.Add(4); foreach (int value in ordinamento) { if (dsOriginal.Tables[0].AsEnumerable().Where(x => x.Field("chiaveUsoTipologia") == value).Count() > 0 && dsOriginal.Tables[1].AsEnumerable().Where(x => x.Field("chiaveUsoTipologia") == value).Count() > 0) { DataTable copyDataTableBold = dsOriginal.Tables[0].AsEnumerable().Where(x => x.Field("chiaveUsoTipologia") == value).CopyToDataTable(); for (int i = 0; i < copyDataTableBold.Rows.Count; i++) { data.Tables[value].Rows.Add("" + copyDataTableBold.Rows[i]["comuneTipologia"] + "", "", "" + copyDataTableBold.Rows[i]["numImmobiliComune"] + "", "", "", "", "" + copyDataTableBold.Rows[i]["valProQuotaComune"] + "", "" + copyDataTableBold.Rows[i]["valTotaleComune"] + ""); DataTable copyDataTable = dsOriginal.Tables[1].AsEnumerable().Where(x => x.Field("chiaveUsoTipologia").Equals(value) && x.Field("comuneTipologia").Equals(copyDataTableBold.Rows[i]["comuneTipologia"])).CopyToDataTable(); for (int k = 0; k < copyDataTable.Rows.Count; k++) { string sEstero = "N"; if (copyDataTable.Rows[k]["posizioneMicroZona"].ToString() == "" || copyDataTable.Rows[k]["posizioneMicroZona"].ToString() == "-") sEstero = "n.d."; else sEstero = copyDataTable.Rows[k]["posizioneMicroZona"].ToString(); data.Tables[value].Rows.Add( copyDataTable.Rows[k]["finalitaTipologia"], sEstero, copyDataTable.Rows[k]["numImmobili"], copyDataTable.Rows[k]["classeRischioValore"].ToString().ToLower() + ".png", copyDataTable.Rows[k]["classeRischioLiquidabilita"].ToString().ToLower() + ".png", translateStringInSymbol(copyDataTable.Rows[k]["trend"].ToString()), Helper.FormatCurrency(Convert.ToDecimal(copyDataTable.Rows[k]["valProQuota"]).ToString()), Helper.FormatCurrency(Convert.ToDecimal(copyDataTable.Rows[k]["valTotale"]).ToString())); } } DataTable copyDataTableTotale = dsOriginal.Tables[2].AsEnumerable().Where(x => x.Field("chiaveUsoTipologia") == value).CopyToDataTable(); data.Tables[value + "footer"].Rows.Add( "Totale", copyDataTableTotale.Rows[0]["numImmobili"], copyDataTableTotale.Rows[0]["classeRischioValore"].ToString().ToLower() + ".png", copyDataTableTotale.Rows[0]["classeRischioLiquidabilita"].ToString().ToLower() + ".png", "", Helper.FormatCurrency(Convert.ToDecimal(copyDataTableTotale.Rows[0]["valProQuota"]).ToString()), Helper.FormatCurrency(Convert.ToDecimal(copyDataTableTotale.Rows[0]["valTotale"]).ToString())); } } return data; } protected string getTesto1() { //return "Di seguito si rappresentano i diversi livelli di rischio del patrimonio immobiliare."; return "Di seguito si rappresentano i diversi livelli di rischio del patrimonio immobiliare. I terreni sono esclusi dalle elaborazioni di rischio e
diversificazione."; } public static string translateStringInSymbol(string trend) { string result = ""; switch (trend) { case "=": result = "horizontalArrow.png"; break; case "-": result = "downArrow.png"; break; case "+": result = "upArrow.png"; break; default: result = trend; break; } return result; } public static string getTitle(string number) { string result = ""; switch (number) { case "1": result = "Immobili d'uso abitativo"; break; case "2": result = "Immobili strumentali"; break; case "3": result = "Immobili d'investimento"; break; case "4": result = "Immobili con finalità non specificata"; break; } return result; } } }