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(); } } } }