override public void exportarRolAWord(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte)
        {
            IList <ConceptoReporteDTO> listaConceptos = estructuraReporte.Roles[rolAExportar.Rol];

            String prefijoIdTaxo     = ReporteXBRLUtil.obtenerIdPrefijoDeTaxonomia(instancia);
            String numTrimestre      = obtenerValorNoNumerico(instancia, prefijoIdTaxo + ID_NUM_TRIMESTRE);
            String espacioNombresCCD = "http://www.cnbv.gob.mx/2015-06-30/ccd/full_ifrs_ccd_entry_point_2016-08-22";



            docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait;
            docBuilder.CurrentSection.PageSetup.PaperSize   = PaperSize.Letter;
            escribirEncabezado(docBuilder, instancia, estructuraReporte, true);
            imprimirTituloRol(docBuilder, rolAExportar);



            Table tablaActual = docBuilder.StartTable();

            docBuilder.ParagraphFormat.SpaceAfter  = 5;
            docBuilder.ParagraphFormat.SpaceBefore = 5;

            escribirADosColumnasConceptoValor(docBuilder, ID_NAME_OF_ENTITY, rolAExportar, estructuraReporte);

            escribirADosColumnasConceptoValor(docBuilder, prefijoIdTaxo + ID_CLAVE_COTIZACION, rolAExportar, estructuraReporte);

            escribirADosColumnasConceptoValor(docBuilder, ID_EXPLICACION_EN_EL_CAMBIO, rolAExportar, estructuraReporte);

            escribirADosColumnasConceptoValor(docBuilder, ID_DESCRIPCION_NATURALEZA, rolAExportar, estructuraReporte);

            escribirADosColumnasConceptoValor(docBuilder, ID_DATE_OF_END, rolAExportar, estructuraReporte);

            escribirADosColumnasConceptoValor(docBuilder, ID_PERIODO_CUBIERTO, rolAExportar, estructuraReporte);

            escribirADosColumnasConceptoValor(docBuilder, ID_MONEDA_PRESENTACION, rolAExportar, estructuraReporte);

            escribirADosColumnasConceptoValor(docBuilder, ID_GRADO_REDONDEO, rolAExportar, estructuraReporte);
            if (instancia.Taxonomia.ConceptosPorId.ContainsKey(prefijoIdTaxo + ID_ESTADOS_CONSOLIDADOS))
            {
                escribirADosColumnasConceptoValor(docBuilder, prefijoIdTaxo + ID_ESTADOS_CONSOLIDADOS, rolAExportar, estructuraReporte);
            }

            escribirADosColumnasConceptoValor(docBuilder, prefijoIdTaxo + ID_FIDEICOMISO_AVAL_GARANTE, rolAExportar, estructuraReporte);

            escribirADosColumnasConceptoValor(docBuilder, prefijoIdTaxo + ID_NUM_FIDEICOMISO, rolAExportar, estructuraReporte);
            if (instancia.Taxonomia.ConceptosPorId.ContainsKey(prefijoIdTaxo + ID_FLUJO_EFECTIVO_METODO_INDIRECTO))
            {
                escribirADosColumnasConceptoValor(docBuilder, prefijoIdTaxo + ID_FLUJO_EFECTIVO_METODO_INDIRECTO, rolAExportar, estructuraReporte);
            }

            escribirADosColumnasConceptoValor(docBuilder, prefijoIdTaxo + ID_NUM_TRIMESTRE, rolAExportar, estructuraReporte);

            if (instancia.EspacioNombresPrincipal.Contains(espacioNombresCCD))
            {
                escribirADosColumnasConceptoValor(docBuilder, ID_REQUIERE_ANEXO_AA, rolAExportar, estructuraReporte);
            }

            if (TRIM_4D.Equals(numTrimestre))
            {
                escribirADosColumnasConceptoValor(docBuilder, prefijoIdTaxo + ID_FECHA_DE_OPINION, rolAExportar, estructuraReporte);
            }



            tablaActual.SetBorders(LineStyle.None, 0, Color.Black);
            tablaActual.SetBorder(BorderType.Horizontal, LineStyle.Single, .75, Color.DarkGray, true);
            tablaActual.SetBorder(BorderType.Bottom, LineStyle.Single, .75, Color.DarkGray, true);
            docBuilder.EndTable();
            docBuilder.InsertParagraph();

            escribirConceptoEnTablaNota(docBuilder, estructuraReporte, ID_INFO_A_REVELAR_SOBRE_INFO_GENERAL, listaConceptos);

            if (TRIM_4D.Equals(numTrimestre))
            {
                foreach (String idConcepto in ID_CONCEPTOS_4D)
                {
                    escribirConceptoEnTablaNota(docBuilder, estructuraReporte, prefijoIdTaxo + idConcepto, listaConceptos);
                }
            }
            //Reemplazar variables

            String consolidado = obtenerValorNoNumerico(instancia, prefijoIdTaxo + ID_ESTADOS_CONSOLIDADOS);

            String razonSocial = obtenerValorNoNumerico(instancia, ID_NAME_OF_ENTITY);

            if (consolidado != null)
            {
                if (CommonConstants.CADENAS_VERDADERAS.Contains(consolidado.ToLower().Trim()))
                {
                    consolidado = "Consolidado";
                }
                else
                {
                    consolidado = "No consolidado";
                }
            }
            else
            {
                consolidado = String.Empty;
            }

            docBuilder.Document.Range.Replace("#" + VARIABLE_CVE_COTIZACION, estructuraReporte.ClaveCotizacion, false, false);
            docBuilder.Document.Range.Replace("#" + VARIABLE_TRIMESTRE, numTrimestre, false, false);
            docBuilder.Document.Range.Replace("#" + VARIABLE_ANIO, estructuraReporte.Anio, false, false);
            docBuilder.Document.Range.Replace("#" + VARIABLE_RAZON_SOCIAL, razonSocial, false, false);
            docBuilder.Document.Range.Replace("#" + VARIABLE_CONSOLIDADO, consolidado, false, false);
            estructuraReporte.RazonSocial          = razonSocial;
            estructuraReporte.IndicadorConsolidado = consolidado;
        }