コード例 #1
0
ファイル: RipartoHelper.cs プロジェクト: gipasoft/Sfera
        public override IList<TableColumn> GetColumnList(XtraReport report, string reportKey, IReportParameters reportParameters, int? page, bool stampaMillesimi = false)
        {
            var columns = new List<TableColumn>();

            // ------------------
            // Ordine Unità
            // ------------------
            var width = 60f;
            float? widthMillesimi = null;
            var hidden = false;
            var nome = "Unità";

            var fontName = string.Empty;
            var fontStyle = string.Empty;
            float fontSize = 0;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            var impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.OrdineUnita);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }

            if (Math.Abs(fontSize) < GetTolerance() && _impostazioniReport.FontSize > 0)
                fontSize = _impostazioniReport.FontSize;
            if (Math.Abs(fontSize) < GetTolerance())
                fontSize = 8;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.OrdineUnita, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Nominativo
            // ------------------
            hidden = false;
            width = 250f;
            widthMillesimi = null;
            nome = "Nominativo";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }
            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Nominativo);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.Nominativo, fontName, fontStyle, fontSize, hidden, true));
            
            // ------------------
            // Tipo Unità
            // ------------------
            hidden = false;
            width = 150f;
            widthMillesimi = null;
            nome = "Tipo Un.";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }
            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.TipoUnita);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.TipoUnita, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Subalterno
            // ------------------
            hidden = false;
            width = 50f;
            widthMillesimi = null;
            nome = "Sub.";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Subalterno);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.Subalterno, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Interno
            // ------------------
            hidden = false;
            width = 50f;
            widthMillesimi = null;
            nome = "Int.";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Interno);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.Interno, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Piano
            // ------------------
            nome = "Piano";
            hidden = false;
            width = 50f;
            widthMillesimi = null;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Piano);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.Piano, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Proprietà/Conduzione
            // ------------------
            nome = "P/C";
            hidden = false;
            width = 30f;
            widthMillesimi = null;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ProprietaConduzione);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.ProprietaConduzione, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Millesimi Proprietà
            // ------------------
            hidden = false;
            width = 80f;
            widthMillesimi = null;
            nome = "Mill.Prop.";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }
            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.MillesimiProprieta);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.MillesimiProprieta, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Conti
            // ------------------
            var groupConto = _dataSource.OrderBy(item => item.OrdineConto).GroupBy(item => item.OrdineConto);
            foreach (var kvp in groupConto)
            {
                try
                {
                    var item = kvp.FirstOrDefault();
                    if (item != null)
                    {
                        hidden = item.OrdineConto == 9997;
                        width = 80f;
                        if (stampaMillesimi)
                        {
                            width = 130f;
                            widthMillesimi = 50f;
                        }
                        if (report != null)
                        {
                            fontName = report.Font.FontFamily.Name;
                            fontStyle = GetFontStyleEnum(report.Font.Style);
                            fontSize = report.Font.Size;
                        }

                        var printPage = 1;
                        var millesimiFontName = string.Empty;
                        var millesimiFontSize = 0f;
                        var millesimiFontStyle = string.Empty;
                        var hideMillesimi = false;

                        var firstRow = kvp.FirstOrDefault();
                        if (firstRow != null)
                        {
                            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Conto, firstRow.IdConto, firstRow.OrdineConto);
                            if (impostazioneDettaglio != null)
                            {
                                hidden = impostazioneDettaglio.Hidden;
                                fontName = impostazioneDettaglio.FontName;
                                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                                    fontStyle = impostazioneDettaglio.FontStyle;
                                if (impostazioneDettaglio.FontSize != null)
                                    fontSize = impostazioneDettaglio.FontSize.Value;

                                millesimiFontName = fontName;
                                millesimiFontSize = fontSize;
                                millesimiFontStyle = fontStyle;

                                if (!string.IsNullOrEmpty(impostazioneDettaglio.MillesimiFontName))
                                    millesimiFontName = impostazioneDettaglio.MillesimiFontName;
                                else if (!string.IsNullOrEmpty(_impostazioniReport.MillesimiFontName))
                                    millesimiFontName = _impostazioniReport.MillesimiFontName;

                                if (impostazioneDettaglio.MillesimiFontSize != null)
                                    millesimiFontSize = impostazioneDettaglio.MillesimiFontSize.Value;
                                else if (_impostazioniReport.MillesimiFontSize != null)
                                    millesimiFontSize = _impostazioniReport.MillesimiFontSize.Value;

                                if (!string.IsNullOrEmpty(impostazioneDettaglio.MillesimiFontStyle))
                                    millesimiFontStyle = impostazioneDettaglio.MillesimiFontStyle;
                                else if (!string.IsNullOrEmpty(_impostazioniReport.MillesimiFontStyle))
                                    millesimiFontStyle = _impostazioniReport.MillesimiFontStyle;

                                if (impostazioneDettaglio.Width != null)
                                {
                                    width = impostazioneDettaglio.Width.Value;
                                    if (impostazioneDettaglio.WidthMillesimi != null)
                                        widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                                }

                                if (_impostazioniReport.MultiPage && impostazioneDettaglio.PrintPage.GetValueOrDefault() > 1)
                                    printPage = impostazioneDettaglio.PrintPage.GetValueOrDefault();

                                hideMillesimi = impostazioneDettaglio.HideMillesimi;
                            }
                        }

                        string descrizioneConto;
                        if (item.IdConto > 0)
                        {
                            descrizioneConto = item.DescrizioneConto;
                            if (_impostazioniReport.DescrizioneContoCompleta && !string.IsNullOrEmpty(item.CodiceConto))
                                descrizioneConto = string.Format("{0} - {1}", item.CodiceConto, item.DescrizioneConto);
                        }
                        else
                            descrizioneConto = impostazioneDettaglio.Conto;

                        string descrizioneImporto = "Importo";
                        if (impostazioneDettaglio != null && !string.IsNullOrEmpty(impostazioneDettaglio.DescrizioneImporto))
                            descrizioneImporto = impostazioneDettaglio.DescrizioneImporto;

                        string descrizioneMillesimi = "Mill.";
                        if (impostazioneDettaglio != null && !string.IsNullOrEmpty(impostazioneDettaglio.DescrizioneMillesimi))
                            descrizioneMillesimi = impostazioneDettaglio.DescrizioneMillesimi;

                        if (millesimiFontSize == 0f)
                            millesimiFontSize = 8f;

                        var tableColumn = new TableColumn(item.IdConto, kvp.Key, descrizioneConto, descrizioneImporto, descrizioneMillesimi, width, widthMillesimi, printPage, ColumnTypeEnum.Conto, fontName, fontStyle, fontSize, millesimiFontName, millesimiFontStyle, millesimiFontSize, hidden, hideMillesimi);
                        columns.Add(tableColumn);
                    }
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nell'impostazione della column - {0} - key:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), kvp.Key);
                    throw;
                }

            }

            // ------------------
            // Totale
            // ------------------
            nome = "Totale";
            hidden = true;
            width = 30f;
            widthMillesimi = null;
            var numeroPagina = 1;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Conto, 0, 9997);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if(impostazioneDettaglio.PrintPage != null)
                    numeroPagina = impostazioneDettaglio.PrintPage.Value;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            if(impostazioneDettaglio == null || impostazioneDettaglio.PrintPage == page)
                columns.Add(new TableColumn(null, 9997, nome, null, null, width, widthMillesimi, numeroPagina, ColumnTypeEnum.Conto, fontName, fontStyle, fontSize, hidden, true));

            return columns;
        }
コード例 #2
0
ファイル: PianoRatealeHelper.cs プロジェクト: gipasoft/Sfera
        public override IList<TableColumn> GetColumnList(XtraReport report, string reportKey, IReportParameters reportParameters, int? page, bool stampaMillesimi = false)
        {
            var columns = new List<TableColumn>();

            // ------------------
            // Ordine Unità
            // ------------------
            var width = 60f;
            var hidden = false;
            var nome = "Unità";

            var fontName = string.Empty;
            var fontStyle = string.Empty;
            float fontSize = 0;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            var impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.OrdineUnita);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                }
            }

            if (Math.Abs(fontSize) < GetTolerance() && _impostazioniReport.FontSize > 0)
                fontSize = _impostazioniReport.FontSize;
            if (Math.Abs(fontSize) < GetTolerance())
                fontSize = 8;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.OrdineUnita, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Nominativo
            // ------------------
            hidden = false;
            width = 250f;
            nome = "Nominativo";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }
            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Nominativo);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Nominativo, fontName, fontStyle, fontSize, hidden, true));
            
            // ------------------
            // Tipo Unità
            // ------------------
            hidden = false;
            width = 150f;
            nome = "Tipo Un.";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }
            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.TipoUnita);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.TipoUnita, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Subalterno
            // ------------------
            hidden = false;
            width = 50f;
            nome = "Sub.";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Subalterno);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Subalterno, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Interno
            // ------------------
            hidden = false;
            width = 50f;
            nome = "Int.";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Interno);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Interno, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Piano
            // ------------------
            nome = "Piano";
            hidden = false;
            width = 50f;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Piano);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Piano, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Proprietà/Conduzione
            // ------------------
            nome = "P/C";
            hidden = false;
            width = 30f;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ProprietaConduzione);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.ProprietaConduzione, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Rate
            // ------------------
            var groupRata = _dataSource.OrderBy(item => item.DataScadenza.GetValueOrDefault()).ThenBy(item => item.NumeroRata).GroupBy(item => item.NumeroRata);
            foreach (var kvp in groupRata)
            {
                try
                {
                    var item = kvp.FirstOrDefault();
                    if (item != null)
                    {
                        width = 80f;
                        if (report != null)
                        {
                            fontName = report.Font.FontFamily.Name;
                            fontStyle = GetFontStyleEnum(report.Font.Style);
                            fontSize = report.Font.Size;
                        }

                        if (item.NumeroRata > 0)
                            fontStyle = System.Drawing.FontStyle.Bold.ToString();

                        var printPage = 1;
                        var firstRow = kvp.FirstOrDefault();
                        if (firstRow != null)
                        {
                            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Conto, firstRow.IdDettaglioRata, firstRow.NumeroRata);
                            if (impostazioneDettaglio != null)
                            {
                                hidden = impostazioneDettaglio.Hidden;
                                fontName = impostazioneDettaglio.FontName;
                                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                                    fontStyle = impostazioneDettaglio.FontStyle;
                                if (impostazioneDettaglio.FontSize != null)
                                    fontSize = impostazioneDettaglio.FontSize.Value;

                                if (impostazioneDettaglio.Width != null)
                                {
                                    width = impostazioneDettaglio.Width.Value;
                                }

                                if (_impostazioniReport.MultiPage && impostazioneDettaglio.PrintPage.GetValueOrDefault() > 1)
                                    printPage = impostazioneDettaglio.PrintPage.GetValueOrDefault();
                            }
                        }

                        string descrizioneRata;
                        if (item.IdDettaglioRata > 0 || impostazioneDettaglio == null)
                        {
                            descrizioneRata = item.DescrizioneRata;
                        }
                        else
                            descrizioneRata = impostazioneDettaglio.Conto;

                        string descrizioneImporto = "Importo";
                        if (!string.IsNullOrEmpty(impostazioneDettaglio?.DescrizioneImporto))
                            descrizioneImporto = impostazioneDettaglio.DescrizioneImporto;

                        var tableColumn = new TableColumn(item.IdDettaglioRata, kvp.Key, descrizioneRata, descrizioneImporto, null, width, null, printPage, ColumnTypeEnum.Conto, fontName, fontStyle, fontSize, null, null, 0, hidden, true);
                        columns.Add(tableColumn);
                    }
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nell'impostazione della column - {0} - key:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), kvp.Key);
                    throw;
                }

            }
            
            return columns;
        }