using System; using System.Collections.Generic; using System.Linq; using System.Text; using PDFGenerator.Presentation.Section; using PDFGenerator; using PDFGenerator.Presentation.Section.Tables; using PDFGenerator.Presentation.Section.Charts; using PDFGenerator.BusinessLayer; using PDFGenerator.BusinessLayer.DataSection; using System.Data; using ceTe.DynamicPDF; using PDFGenerator.Entity; using ceTe.DynamicPDF.PageElements; namespace PDFGenerator.Presentation.Section { public class FD190: SIstogramma, ISezione { string Titolo = string.Empty; string _testotitolo; string _testointroduttivo; string _testoAlternativo; NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); public FD190() { // // TODO: Add constructor logic here // } /// /// Testo introduttivo della sezione. /// public string TestoIntroduttivo { get { return _testointroduttivo; } set { _testointroduttivo = value; } } /// /// Testo del titolo della sezione. /// public string TestoTitolo { get { return _testotitolo; } set { _testotitolo = value; } } public string TestoAlternativo { get { return _testoAlternativo; } set { _testoAlternativo = value; } } public void setTitolo(string label) { Titolo = label; } public void writeSezione(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; DatiTabella datiHeaderCaratteristiche = new DatiTabella(); DatiTabella datiHeaderPercentualeAttuale = new DatiTabella(); DatiTabella datiMacroAsset = new DatiTabella(); Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos()); DataSet set = dataThread.Data.DatiSezione; // Titolo della sezione //logger.Info("Titolo della sezione " + Titolo); //document.setPageTitolo(Titolo); // Testo del paragrafo logger.Info("Titolo della sezione " + _testointroduttivo); document.setLastPos(-40); document.setSezTitolo(dataThread.SezioneReport.Titolo); document.setChapterHeader(string.Concat(_testointroduttivo.Replace("/$Banca$/", dataThread.NomeRete), "
"), 0, 520, 8); #region Sezione per stampare solo l'header della tabella logger.Info("Scrittura di solo header della tabella Titolo della seconda tabella " + _testointroduttivo); DataSet _ds = new DataSet(); DataTable _dt = new DataTable(); _dt.Columns.Add("Macro Asset Class", typeof(System.String)); _dt.Columns.Add("Portafoglio modello (%)", typeof(System.String)); _dt.Columns.Add("Portafoglio attuale (%)", typeof(System.String)); _ds.Tables.Add(_dt); DataRow dr = _dt.NewRow(); dr[0] = ""; dr[1] = ""; dr[2] = ""; _dt.Rows.Add(dr); datiHeaderCaratteristiche.table = _ds.Tables[0]; datiHeaderCaratteristiche.setY(document.getLastPos() + 10); datiHeaderCaratteristiche.setX(document.getMargineLeft()); datiHeaderCaratteristiche.setHeader(true); datiHeaderCaratteristiche.setCellSpace(10); datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); tab.ColoreDirectBankB = "green"; document.InsertTable(tab.getTabella(datiHeaderCaratteristiche)); ceTe.DynamicPDF.Merger.ImportedPage page1 = document.getCurrentPage(); #endregion #region Grafico Portafoglio modello logger.Info("FD190 - Inizio impostazione grafico Portafoglio modello"); List listaValoriPesoRelativo = new List(); foreach (var item in set.Tables["MacroAssetClass"].AsEnumerable()) { IValoriSerieS190 IvaloriSeriePesoRelativo = new IValoriSerieS190(); IvaloriSeriePesoRelativo.chiave = item[0].ToString(); IvaloriSeriePesoRelativo.valore = Convert.ToDecimal(item[4]); IvaloriSeriePesoRelativo.colore = System.Drawing.Color.FromArgb((int)item["Red"], (int)item["Green"], (int)item["Blue"]); listaValoriPesoRelativo.Add(IvaloriSeriePesoRelativo); } ////double altezzaGraficoPesoRischio_Prodotto = 15 * (tabellaDati.Datasource.Rows.Count + 0.5); IstoFarfallaS190 graficoCaratteristiche = new IstoFarfallaS190(320, 200); //92 //85 750 //158 graficoCaratteristiche.DocumentPDF = document; graficoCaratteristiche.PositionX = 200; //145 graficoCaratteristiche.PositionY = Convert.ToInt32(document.getLastPos() + 22); //32 //38 //42 //542; graficoCaratteristiche.AxisY_LineColor = true; graficoCaratteristiche.AxisY_Hide = true; //false; graficoCaratteristiche.AxysX_Increment = Convert.ToDecimal(1); graficoCaratteristiche.AxisY_DashStyle = Dundas.Charting.WebControl.ChartDashStyle.DashDot; graficoCaratteristiche.isShadowOffset = false; // Abilita l'ombreggiatura delle barre per ESG è fissato a 40 graficoCaratteristiche.isPixelPointWidth = "40"; // serve per dimensionare l'altezza delle barre graficoCaratteristiche.BorderLineColor = System.Drawing.Color.FromArgb(0, 0, 0); graficoCaratteristiche.BorderLineWidth = 10; SerieIstoFarfallaS190 seriePesoRelativo = new SerieIstoFarfallaS190(); seriePesoRelativo = new SerieIstoFarfallaS190(); seriePesoRelativo.Name = "Caratteristiche%"; seriePesoRelativo.Values = listaValoriPesoRelativo; seriePesoRelativo.ElementPosition = new Dundas.Charting.WebControl.ElementPosition(1F, -5F, 50.7F, 90F); //105f //seriePesoRelativo.ElementPosition = new Dundas.Charting.WebControl.ElementPosition(1F, -5F, 50.7F, 120F); // ultimo parametro per aumentare lo spazio tra le barre seriePesoRelativo.AxisY_CustumizedByValues = false; seriePesoRelativo.ReverseAxisY = false; seriePesoRelativo.Axisy_Interval = 10; graficoCaratteristiche.SerieList.Add(seriePesoRelativo); logger.Info("FD190 - Inizio scrittura Portafoglio Modello"); // Disegno il grafico //graficoCaratteristiche.Draw(); logger.Info("FD190 - Fine grafico Portafoglio Modello "); #endregion #region Grafico Portafoglio Attuale logger.Info("FD190 - Inizio impostazione grafico Portafoglio Attuale"); List listaValoriPortafoglioAttuale = new List(); foreach (var item in set.Tables["MacroAssetClass"].AsEnumerable()) { IValoriSerieS190 IvaloriSeriePesoAttuale = new IValoriSerieS190(); IvaloriSeriePesoAttuale.chiave = item[0].ToString(); IvaloriSeriePesoAttuale.valore = Convert.ToDecimal(item[3]); IvaloriSeriePesoAttuale.colore = System.Drawing.Color.FromArgb((int)item["Red"], (int)item["Green"], (int)item["Blue"]); listaValoriPortafoglioAttuale.Add(IvaloriSeriePesoAttuale); } IstoFarfallaS190 graficoPortafoglioAttuale = new IstoFarfallaS190(320, 200); //92 //85 //750 158 graficoPortafoglioAttuale.DocumentPDF = document; graficoPortafoglioAttuale.PositionX = 360; graficoPortafoglioAttuale.PositionY = Convert.ToInt32(document.getLastPos() + 22); //32 //38 //42 //542; graficoPortafoglioAttuale.AxisY_LineColor = true; graficoPortafoglioAttuale.AxisY_Hide = true; //false; graficoPortafoglioAttuale.AxysX_Increment = Convert.ToDecimal(1); graficoPortafoglioAttuale.AxisY_DashStyle = Dundas.Charting.WebControl.ChartDashStyle.DashDot; graficoPortafoglioAttuale.isShadowOffset = false; // Abilita l'ombreggiatura delle barre per ESG è fissato a 40 graficoPortafoglioAttuale.isPixelPointWidth = "40"; // serve per dimensionare l'altezza delle barre graficoPortafoglioAttuale.BorderLineColor = System.Drawing.Color.FromArgb(0, 0, 0); graficoPortafoglioAttuale.BorderLineWidth = 10; SerieIstoFarfallaS190 seriePortafoglioAttuale = new SerieIstoFarfallaS190(); seriePortafoglioAttuale = new SerieIstoFarfallaS190(); seriePortafoglioAttuale.Name = "PortafoglioAttuale%"; seriePortafoglioAttuale.Values = listaValoriPortafoglioAttuale; seriePortafoglioAttuale.ElementPosition = new Dundas.Charting.WebControl.ElementPosition(1F, -5F, 50.7F, 90F); //seriePortafoglioAttuale.ElementPosition = new Dundas.Charting.WebControl.ElementPosition(1F, -5F, 50.7F, 120F); // ultimo parametro per aumentare lo spazio tra le barre seriePortafoglioAttuale.AxisY_CustumizedByValues = false; seriePortafoglioAttuale.ReverseAxisY = false; seriePortafoglioAttuale.Axisy_Interval =10; seriePortafoglioAttuale.AxisY_MinimumValue = (double)set.Tables["MacroAssetClass"].AsEnumerable().Min(mm => mm.Field("Percentuale")); seriePortafoglioAttuale.AxisY_MaximumValue = (double)set.Tables["MacroAssetClass"].AsEnumerable().Max(mm => mm.Field("Percentuale")); graficoPortafoglioAttuale.SerieList.Add(seriePortafoglioAttuale); logger.Info("FD190 - Inizio scrittura Portafoglio Attuale"); // Disegno il grafico graficoPortafoglioAttuale.Draw(); //// Pino Test 15/09/2022 logger.Info("FD190 - Fine grafico Portafoglio Attuale "); #endregion // Inserisco riga bianca per effetto distanziatore logger.Info("Inizio inserimento riga bianca sotto caratteristiche"); //ceTe.DynamicPDF.Merger.ImportedPage page1 = document.getCurrentPage(); page1.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), document.getLastPos() + 22, 500, 6, 0, new RgbColor(255, 255, 255))); ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), document.getLastPos() + 168, 500, 6, 0, new RgbColor(255, 255, 255))); #region Elenco MacroAsset /****** Inserimento tabella con le due colonne e con la colonna delle Caratteristiche riempita ********/ logger.Info("Inizio inserimento tabella Macro Asset"); datiMacroAsset.table = set.Tables["MacroAssetClass"]; Tabella tabellaMacroAsset = new Tabella(document.getMargineLeft(), document.getLastPos() + 78, 0, -2, 0.009F); //90 68 tabellaMacroAsset.Datasource = datiMacroAsset.table; tabellaMacroAsset.Header = false; tabellaMacroAsset.DimensioneLinea = 0; tabellaMacroAsset.AltezzaCella = 30; //35; tabellaMacroAsset.Colonne.Add(new Colonna("AssetClassName", "Asset Class", 150, TipoAllineamento.SINISTRA, false, 9, false, TipoColonna.TESTO)); tabellaMacroAsset.Draw(datiMacroAsset, document); logger.Info("Fine inserimento tabella MacroAsset"); /***********************************************************************************************************/ #endregion #region per usare una writeSezione dedicata //datiMacroAsset.table = set.Tables["MacroAssetClass"]; //Tabella tabellaCaratteristiche = new Tabella(document.getMargineLeft() + 15, document.getLastPos() + 85, 0, -2, 0.009F); //tabellaCaratteristiche.Datasource = datiMacroAsset.table; //tabellaCaratteristiche.Header = false; //tabellaCaratteristiche.DimensioneLinea = 0; //tabellaCaratteristiche.AltezzaCella = 42; //25; //tabellaCaratteristiche.Colonne.Add(new Colonna("AssetClassName", "Asset Class", 170, TipoAllineamento.DESTRA, true, 9, false, TipoColonna.TESTO)); ////tabellaCaratteristiche.Colonne.Add(new Colonna("PercentualeESG", "Distribuzione (%)", 170, TipoAllineamento.DESTRA, false, 9, false, TipoColonna.TESTO)); ////document.InsertTable(tab.getTabella(datiMacroAsset)); ////tabellaCaratteristiche.Draw(datiMacroAsset, document); //base.DirectBanker = "S"; //base.tabMacroAssetClass = set.Tables["MacroAssetClass"]; //base.writeSezione190(dataThread); #endregion } public void writeSezioneFD190(DataThread dataThread) { DatiTabella datiHeaderCaratteristiche = new DatiTabella(); document = dataThread.DocumentPDF; DataSet set = dataThread.Data.DatiSezione; #region Titolo e Testo del paragrafo //logger.Info("Titolo della sezione " + _testointroduttivo); //document.setLastPos(-40); //document.setSezTitolo(dataThread.SezioneReport.Titolo); //document.setChapterHeader(string.Concat(_testointroduttivo.Replace("/$Banca$/", dataThread.NomeRete), "
"), 0, 520, 8); #endregion #region Sezione per stampare solo l'header della tabella //logger.Info("Scrittura di solo header della tabella Titolo della seconda tabella " + _testointroduttivo); //DataSet _ds = new DataSet(); //DataTable _dt = new DataTable(); //_dt.Columns.Add("Macro Asset Class", typeof(System.String)); //_dt.Columns.Add("Portafoglio modello (%)", typeof(System.String)); //_dt.Columns.Add("Portafoglio attuale (%)", typeof(System.String)); //_ds.Tables.Add(_dt); //DataRow dr = _dt.NewRow(); //dr[0] = ""; //dr[1] = ""; //dr[2] = ""; //_dt.Rows.Add(dr); //datiHeaderCaratteristiche.table = _ds.Tables[0]; //datiHeaderCaratteristiche.setY(document.getLastPos() + 10); //datiHeaderCaratteristiche.setX(document.getMargineLeft()); //datiHeaderCaratteristiche.setHeader(true); //datiHeaderCaratteristiche.setCellSpace(10); //datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); //datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); //datiHeaderCaratteristiche.setCell(150, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, false); //Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos()); //tab.ColoreDirectBankB = "green"; //document.InsertTable(tab.getTabella(datiHeaderCaratteristiche)); //ceTe.DynamicPDF.Merger.ImportedPage page1 = document.getCurrentPage(); #endregion tabMacroAssetClass = set.Tables[0]; base.DirectBanker = "S"; base.writeSezione190(dataThread); } public void writeSezione190New(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; DatiTabella datiHeaderCaratteristiche = new DatiTabella(); //DatiTabella datiHeaderPercentualeAttuale = new DatiTabella(); //DatiTabella datiMacroAsset = new DatiTabella(); //Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos()); DataSet set = dataThread.Data.DatiSezione; DataTable dati = set.Tables[0]; // Testo del paragrafo logger.Info("Titolo della sezione " + _testointroduttivo); document.setLastPos(-40); document.setSezTitolo(dataThread.SezioneReport.Titolo); document.setChapterHeader(string.Concat(_testointroduttivo.Replace("/$Banca$/", dataThread.NomeRete), "
"), 0, 520, 8); base.DirectBanker = "S"; #region Tabella con Grafici document.setLastPos(150); datiHeaderCaratteristiche.table = dati; datiHeaderCaratteristiche.setCellSpace(10); var tabellaAsset = new TablePDFEvolution(document.getMargineLeft(),230, dati) { Style = Style.ConsulenzaUnica, Header = true, Footer = false, AlternateRow = false, RowHeight = 28, ShowSeparationLines = false, PageBreak = true, HeaderTextHorizontalAlign = HorizontalAlignmentType.Destra, ShowBorderHeader = true, }; tabellaAsset.Columns.Add(new ColumnPDF("AssetClassName", 150, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "AssetClassName", "Macro Asset class") { HeaderFontSize = 7, FontSize = 7 }); tabellaAsset.Columns.Add(new ColumnPDF("percentuale_modello", 185, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "percentuale_modello", "Portafoglio modello (%)") { HeaderFontSize = 7, HeaderPaddingLeft = 0, PaddingLeft = 3, DeltaYContent = 2, FontSize = 7 }); //{ HeaderPaddingRight = 80, PaddingRight = 20, HeaderFontSize = 7, DeltaYContent = 2, FontSize = 7}); tabellaAsset.Columns.Add(new ColumnPDF("percentuale", 185, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "percentuale", "Portafoglio attuale (%)") { HeaderFontSize = 7, HeaderPaddingLeft = 0, PaddingLeft = 3, DeltaYContent = 2, FontSize = 7 }); //ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); //page.Elements.Add(tabellaAsset); var list = new List(); list.Add(Convert.ToDouble(dati.AsEnumerable().Max(x => x["percentuale_modello"]))); list.Add(Convert.ToDouble(dati.AsEnumerable().Max(x => x["percentuale"]))); list.Add(Convert.ToDouble(dati.AsEnumerable().Min(x => x["percentuale_modello"]))); list.Add(Convert.ToDouble(dati.AsEnumerable().Min(x => x["percentuale"]))); var max = (float)Math.Round(list.Max()); var min = (float)Math.Round(list.Min()); #region Old codice onDemand //int o = 0; //float larghezzaBarra = 0; //float deltaXBarra = 0; //var width = 0; //if ((float)Math.Round(list.Min()) < 0) //{ // foreach (DataRow row in dati.Rows) // { // float larghezzaBarraMinNeg = 0; // var colore = new ColorPDF(Convert.ToInt32(row["Red"]), Convert.ToInt32(row["Green"]), Convert.ToInt32(row["Blue"])); // #region barra colonna Percentuale Modello // width = tabellaAsset.Columns[1].Width; // larghezzaBarra = UtilityBusinessLayer.GetWidthProportional(Convert.ToDouble(row["percentuale_modello"]) == 0 ? (float)0.01 : (float)Convert.ToDouble(row["percentuale_modello"]), max, width - 50); // Modifica width Andrea prima non ci stava il -50 // larghezzaBarraMinNeg = UtilityBusinessLayer.GetWidthProportional(min, max - min, width - 50); // tabellaAsset.Columns[1].HorizontalAlignment = HorizontalAlignmentType.Sinistra; // deltaXBarra = larghezzaBarra - larghezzaBarraMinNeg + 15; // if (Convert.ToDouble(row["percentuale_modello"]) == 0) // { // deltaXBarra = larghezzaBarra + 1; // tabellaAsset.Cells[1, o].ValueObjectList = new List() // { // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreModello"].ToString()) : Helper.FormatDecimal(row["PercentualeControvaloreModello"].ToString(), 2), deltaXBarra-10, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale_modello"].ToString()), deltaXBarra-10, 50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // //DeltaX = isControvalore() ? deltaXBarra+20 : deltaXBarra+5, // DeltaX = - larghezzaBarraMinNeg, // FontSize = 7 // }, // new RectanglePDF(12, 1, ColorPDF.Bianco){DeltaY = 4} // }; // } // else // { // if (larghezzaBarra < 0) // { // deltaXBarra = larghezzaBarraMinNeg - 14; // tabellaAsset.Cells[1, o].ValueObjectList = new List() // { // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreModello"].ToString()) : Helper.FormatDecimal(row["PercentualeControvaloreModello"].ToString(), 2), deltaXBarra, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale_modello"].ToString()), deltaXBarra-10, 50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // DeltaX = deltaXBarra, // FontSize = 7 // }, // new RectanglePDF(12, larghezzaBarra , colore){DeltaY = 4, DeltaX = -larghezzaBarraMinNeg + 22} // }; // } // else // { // tabellaAsset.Cells[1, o].ValueObjectList = new List() // { // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreModello"].ToString()) : Helper.FormatDecimal(row["PercentualeControvaloreModello"].ToString(), 2), deltaXBarra, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale_modello"].ToString()), deltaXBarra-10, 50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // DeltaX = deltaXBarra, // FontSize = 7 // }, // new RectanglePDF(12, larghezzaBarra , colore){DeltaY = 4, DeltaX = -larghezzaBarraMinNeg + 22} // }; // } // } // #endregion // #region barra colonna Percentuale Attuale // width = tabellaAsset.Columns[2].Width; // larghezzaBarra = UtilityBusinessLayer.GetWidthProportional(Convert.ToDouble(row["percentuale"]) == 0 ? (float)0.01 : (float)Convert.ToDouble(row["percentuale"]), max, width - 50); // larghezzaBarraMinNeg = UtilityBusinessLayer.GetWidthProportional(min, max - min, width - 50); // deltaXBarra = larghezzaBarra - larghezzaBarraMinNeg + 15; // if (Convert.ToDouble(row["percentuale"]) == 0) // { // deltaXBarra = larghezzaBarra + 1; // tabellaAsset.Cells[2, o].ValueObjectList = new List() // { // new RectanglePDF(12, 1 , ColorPDF.Bianco){DeltaY = 4, DeltaX = -larghezzaBarraMinNeg}, // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreAttuale"].ToString()) :Helper.FormatDecimal(row["PercentualeControvaloreAttuale"].ToString(), 2), deltaXBarra-10, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale"].ToString()), deltaXBarra-10, 50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // //DeltaX = isControvalore() ? deltaXBarra-10 : deltaXBarra-8, // DeltaX = - larghezzaBarraMinNeg, // FontSize = 7 // } // }; // } // else // { // if (larghezzaBarra < 0) // { // deltaXBarra = larghezzaBarraMinNeg - 14; // tabellaAsset.Cells[2, o].ValueObjectList = new List() // { // new RectanglePDF(12, larghezzaBarra , colore){DeltaY = 4, DeltaX = -larghezzaBarraMinNeg + 22}, // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreAttuale"].ToString()) :Helper.FormatDecimal(row["PercentualeControvaloreAttuale"].ToString(), 2), deltaXBarra, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale"].ToString()), deltaXBarra-10, 50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // DeltaX = deltaXBarra, // FontSize = 7 // } // }; // } // else // { // tabellaAsset.Cells[2, o].ValueObjectList = new List() // { // new RectanglePDF(12, larghezzaBarra , colore){DeltaY = 4, DeltaX = -larghezzaBarraMinNeg + 22}, // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreAttuale"].ToString()) :Helper.FormatDecimal(row["PercentualeControvaloreAttuale"].ToString(), 2), deltaXBarra, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale"].ToString()), deltaXBarra, 50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // DeltaX = deltaXBarra, // FontSize = 7 // } // }; // } // } // #endregion // o++; // } //} //else // foreach (DataRow row in dati.Rows) // { // var colore = new ColorPDF(Convert.ToInt32(row["Red"]), Convert.ToInt32(row["Green"]), Convert.ToInt32(row["Blue"])); // #region barra colonna Portafogliomodello // width = tabellaAsset.Columns[1].Width; // larghezzaBarra = UtilityBusinessLayer.GetWidthProportional(Convert.ToDouble(row["percentuale_modello"]) == 0 ? (float)0.01 : (float)Convert.ToDouble(row["percentuale_modello"]), max, width - 30); // Modifica width Andrea // /**************************** Modifica aladdin Andrea *************************************************************************/ // tabellaAsset.Columns[1].HorizontalAlignment = HorizontalAlignmentType.Sinistra; // //deltaXBarra = -larghezzaBarra + (isControvalore() ? 0 : 7); // deltaXBarra = larghezzaBarra + 1; // /**************************************************************************************************************************************/ // if (Convert.ToDouble(row["percentuale_modello"]) == 0) // { // tabellaAsset.Cells[1, o].ValueObjectList = new List() // { // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale_modello"].ToString()), deltaXBarra-10, 50) // { // DeltaY = 4, // //*************************************** Modifiche Aladdin Andrea barre ************************************// // //TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // //********************************************************************************************************//, // DeltaX = deltaXBarra+30, // FontSize = 7 // }, // new RectanglePDF(12, 1 , ColorPDF.Bianco){DeltaY = 4} // }; // } // else // { // if (larghezzaBarra < 0) // { // deltaXBarra = -larghezzaBarra - 20; // tabellaAsset.Cells[1, o].ValueObjectList = new List() // { // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreModello"].ToString()) : Helper.FormatDecimal(row["PercentualeControvaloreModello"].ToString(), 2), deltaXBarra, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale_modello"].ToString()), deltaXBarra, 50) // { // DeltaY = 4, // //*************************************** Modifiche Aladdin Andrea barre ************************************// // //TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // //********************************************************************************************************// // DeltaX = deltaXBarra, // FontSize = 7 // }, // new RectanglePDF(12, larghezzaBarra , colore){DeltaY = 4, DeltaX = -larghezzaBarra -10} // }; // } // else // { // tabellaAsset.Cells[1, o].ValueObjectList = new List() // { // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreModello"].ToString()) : Helper.FormatDecimal(row["PercentualeControvaloreModello"].ToString(), 2), deltaXBarra, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale_modello"].ToString()), deltaXBarra, 50) // { // DeltaY = 4, // //*************************************** Modifiche Aladdin Andrea barre ************************************// // //TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // //********************************************************************************************************// // DeltaX = deltaXBarra, // FontSize = 7 // }, // new RectanglePDF(12, larghezzaBarra , colore){DeltaY = 4} // }; // } // } // #endregion // #region barra colonna Portafoglioattuale // width = tabellaAsset.Columns[2].Width; // larghezzaBarra = UtilityBusinessLayer.GetWidthProportional(Convert.ToDouble(row["percentuale"]) == 0 ? (float)0.01 : (float)Convert.ToDouble(row["percentuale"]), max, width - 30); //Modifica width Andrea // deltaXBarra = larghezzaBarra + 3; // if (Convert.ToDouble(row["percentuale"]) == 0) // { // tabellaAsset.Cells[2, o].ValueObjectList = new List() // { // new RectanglePDF(12, 1 , ColorPDF.Bianco){DeltaY = 4}, // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreAttuale"].ToString()) :Helper.FormatDecimal(row["PercentualeControvaloreAttuale"].ToString(), 2), deltaXBarra-10, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale"].ToString()), deltaXBarra-10, 50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // DeltaX = deltaXBarra-35, // FontSize = 7 // } // }; // } // else // { // if (larghezzaBarra < 0) // { // deltaXBarra = -larghezzaBarra - 20; // tabellaAsset.Cells[2, o].ValueObjectList = new List() // { // new RectanglePDF(12, larghezzaBarra , colore){DeltaY = 4, DeltaX = -larghezzaBarra - 10}, // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreAttuale"].ToString()) :Helper.FormatDecimal(row["PercentualeControvaloreAttuale"].ToString(), 2), deltaXBarra, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale"].ToString()), deltaXBarra,50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // DeltaX = deltaXBarra, // FontSize = 7 // } // }; // } // else // { // tabellaAsset.Cells[2, o].ValueObjectList = new List() // { // new RectanglePDF(12, larghezzaBarra , colore){DeltaY = 4}, // //new FormattedTextAreaPDF(isControvalore() ? Helper.FormatCurrency(row["PercentualeControvaloreAttuale"].ToString()) :Helper.FormatDecimal(row["PercentualeControvaloreAttuale"].ToString(), 2), deltaXBarra, isControvalore()? 50 : 35) // new FormattedTextAreaPDF(UtilityBusinessLayer.FormatCurrency(row["percentuale"].ToString()), deltaXBarra,50) // { // DeltaY = 4, // TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Right, // DeltaX = deltaXBarra, // FontSize = 7 // } // }; // } // } // #endregion // o++; // } #endregion tabellaAsset.min = min; tabellaAsset.max = max; tabellaAsset.minValorePercentuale = (float)Convert.ToDouble(dati.AsEnumerable().Min(x => x["percentuale"])); tabellaAsset.maxValorePercentuale = (float)Convert.ToDouble(dati.AsEnumerable().Max(x => x["percentuale"])); tabellaAsset.minValorePercentualeModello = (float)Convert.ToDouble(dati.AsEnumerable().Min(x => x["percentuale_modello"])); tabellaAsset.maxValorePercentualeModello = (float)Convert.ToDouble(dati.AsEnumerable().Max(x => x["percentuale_modello"])); tabellaAsset.Draw(datiHeaderCaratteristiche, document); #endregion } } }