public override void exportarRolAWord(Aspose.Words.DocumentBuilder docBuilder, Viewer.Application.Dto.DocumentoInstanciaXbrlDto instancia, Dto.IndiceReporteDTO rolAExportar, Dto.ReporteXBRLDTO estructuraReporte)
        {
            docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Landscape;
            docBuilder.CurrentSection.PageSetup.PaperSize   = PaperSize.Legal;
            docBuilder.CurrentSection.PageSetup.LeftMargin  = 10;
            docBuilder.CurrentSection.PageSetup.RightMargin = 10;


            escribirEncabezado(docBuilder, instancia, estructuraReporte, true);


            imprimirTituloRol(docBuilder, rolAExportar);


            Table tablaDesglose = docBuilder.StartTable();

            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
            establecerFuenteTituloCampo(docBuilder);
            docBuilder.Font.Size = TamanioLetraReporteDesglose;

            docBuilder.ParagraphFormat.SpaceAfter  = 0;
            docBuilder.ParagraphFormat.SpaceBefore = 2;

            var idioma = estructuraReporte.Lenguaje;

            ImprimirTitulosGrupoPasivo(ImportadorExportadorRol815100Bmv2014._elementosPrimariosBancarios, docBuilder, instancia, idioma);

            ImprimirGrupoTipoPasivo(ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivo[0],
                                    ImportadorExportadorRol815100Bmv2014._elementosPrimariosBancarios, docBuilder, instancia, idioma, estructuraReporte);

            ImprimirGrupoTipoPasivo(ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivo[1],
                                    ImportadorExportadorRol815100Bmv2014._elementosPrimariosBancarios, docBuilder, instancia, idioma, estructuraReporte);

            ImprimirTitulosGrupoPasivo(ImportadorExportadorRol815100Bmv2014._elementosPrimariosBursatiles, docBuilder, instancia, idioma);

            ImprimirGrupoTipoPasivo(ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivo[2],
                                    ImportadorExportadorRol815100Bmv2014._elementosPrimariosBursatiles, docBuilder, instancia, idioma, estructuraReporte);

            ImprimirGrupoTipoPasivo(ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivo[3],
                                    ImportadorExportadorRol815100Bmv2014._elementosPrimariosBursatiles, docBuilder, instancia, idioma, estructuraReporte);

            ImprimirGrupoTipoPasivo(ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivo[4],
                                    ImportadorExportadorRol815100Bmv2014._elementosPrimariosBursatiles, docBuilder, instancia, idioma, estructuraReporte);

            ImprimirTitulosGrupoPasivo(ImportadorExportadorRol815100Bmv2014._elementosPrimariosOtros, docBuilder, instancia, idioma);

            ImprimirGrupoTipoPasivo(ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivo[5],
                                    ImportadorExportadorRol815100Bmv2014._elementosPrimariosOtros, docBuilder, instancia, idioma, estructuraReporte);

            ImprimirGrupoTipoPasivo(ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivo[6],
                                    ImportadorExportadorRol815100Bmv2014._elementosPrimariosOtros, docBuilder, instancia, idioma, estructuraReporte);

            ImprimirGrupoTipoPasivo(ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivo[7],
                                    ImportadorExportadorRol815100Bmv2014._elementosPrimariosGranTotal, docBuilder, instancia, idioma, estructuraReporte);


            establecerBordesGrisesTabla(tablaDesglose);
            docBuilder.EndTable();
        }
        /// <summary>
        /// Imprime el contenido de un grupo de hechos de tipo pasivo, ya sea un crédito o un renglón total
        /// </summary>

        private void ImprimirGrupoTipoPasivo(string idTipoPasivo, string[] elementosPrimarios, DocumentBuilder docBuilder, Viewer.Application.Dto.DocumentoInstanciaXbrlDto instancia, String idioma, Dto.ReporteXBRLDTO estructuraReporte)
        {
            var hechosDeTipoPasivo = ObtenerHechosPorDimensionYMiembro(instancia, null, ImportadorExportadorRol815100Bmv2014._idDimensionTipoPasivo, idTipoPasivo);

            if (ImportadorExportadorRol815100Bmv2014._miembrosTipoPasivoTotales.Contains(idTipoPasivo))
            {
                docBuilder.InsertCell();
                docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;

                docBuilder.RowFormat.HeadingFormat    = false;
                docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                docBuilder.CellFormat.VerticalMerge   = CellMerge.None;


                docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                docBuilder.Font.Color = Color.Black;
                docBuilder.Write(ReporteXBRLUtil.obtenerEtiquetaConcepto(idioma, ReporteXBRLUtil.ETIQUETA_DEFAULT, idTipoPasivo, instancia));

                var iSubMiembro = 0;

                for (int iElemento = 1; iElemento < elementosPrimarios.Length; iElemento++)
                {
                    docBuilder.InsertCell();
                    docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;

                    docBuilder.RowFormat.HeadingFormat    = false;
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                    docBuilder.CellFormat.VerticalMerge   = CellMerge.None;


                    docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                    docBuilder.Font.Color = Color.Black;
                    if (ImportadorExportadorRol815100Bmv2014._elementosPrimariosTotal.Contains(elementosPrimarios[iElemento]))
                    {
                        var listaHechos = ObtenerHechosPorElementoPrimarioYSecuencia(instancia, hechosDeTipoPasivo, elementosPrimarios[iElemento], null);

                        if (elementosPrimarios[iElemento] == ImportadorExportadorRol815100Bmv2014._idConceptoSubtabla)
                        {
                            listaHechos = FiltrarHechosPorDimensionYMiembro(instancia, listaHechos, ImportadorExportadorRol815100Bmv2014._idDimensionIntervalo, ImportadorExportadorRol815100Bmv2014._miembrosIntervaloDeTiempo[iSubMiembro++]);
                        }


                        if (listaHechos != null && listaHechos.Count > 0)
                        {
                            if (!String.IsNullOrEmpty(listaHechos[0].Valor))
                            {
                                if (listaHechos[0].EsNumerico)
                                {
                                    var valorHecho = ReporteXBRLUtil.formatoDecimal(listaHechos[0].ValorNumerico, ReporteXBRLUtil.FORMATO_CANTIDADES_MONETARIAS);
                                    EscribirLinkNotaAlPie(docBuilder, listaHechos[0], estructuraReporte);
                                    docBuilder.Write(valorHecho);
                                }
                                else
                                {
                                    EscribirLinkNotaAlPie(docBuilder, listaHechos[0], estructuraReporte);
                                    docBuilder.Write(listaHechos[0].Valor);
                                }
                            }
                        }
                    }
                }
                docBuilder.EndRow();
            }
            else
            {
                var secuenciasEnHechos = OrganizarHechosPorSecuencia(instancia, hechosDeTipoPasivo);

                if (secuenciasEnHechos.Count > 0)
                {
                    foreach (var secuencia in secuenciasEnHechos.Keys)
                    {
                        int iMiembroSubtabla = 0;
                        foreach (var elementoPrimario in elementosPrimarios)
                        {
                            docBuilder.InsertCell();
                            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;

                            docBuilder.RowFormat.HeadingFormat    = false;
                            docBuilder.CellFormat.HorizontalMerge = CellMerge.None;
                            docBuilder.CellFormat.VerticalMerge   = CellMerge.None;


                            docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                            docBuilder.Font.Color = Color.Black;


                            IList <HechoDto> listaHechos = null;

                            if (elementoPrimario.Equals(ImportadorExportadorRol815100Bmv2014._idConceptoSubtabla))
                            {
                                listaHechos = ObtenerHechosPorElementoPrimarioYSecuencia(instancia, secuenciasEnHechos[secuencia], elementoPrimario, null);
                                listaHechos = FiltrarHechosPorDimensionYMiembro(instancia, listaHechos, ImportadorExportadorRol815100Bmv2014._idDimensionIntervalo, ImportadorExportadorRol815100Bmv2014._miembrosIntervaloDeTiempo[iMiembroSubtabla++]);
                            }
                            else
                            {
                                listaHechos = ObtenerHechosPorElementoPrimarioYSecuencia(instancia, secuenciasEnHechos[secuencia], elementoPrimario, null);
                            }

                            if (listaHechos != null && listaHechos.Count > 0)
                            {
                                if (!String.IsNullOrEmpty(listaHechos[0].Valor))
                                {
                                    if (listaHechos[0].EsNumerico)
                                    {
                                        var valorHecho = ReporteXBRLUtil.formatoDecimal(listaHechos[0].ValorNumerico, ReporteXBRLUtil.FORMATO_CANTIDADES_MONETARIAS);
                                        EscribirLinkNotaAlPie(docBuilder, listaHechos[0], estructuraReporte);
                                        docBuilder.Write(valorHecho);
                                    }
                                    else
                                    {
                                        EscribirLinkNotaAlPie(docBuilder, listaHechos[0], estructuraReporte);
                                        docBuilder.Write(listaHechos[0].Valor);
                                    }
                                }
                            }
                        }
                        docBuilder.EndRow();
                    }
                }
            }
        }