/// <summary> /// Pinta el contenido de una tarjeta. /// </summary> /// <param name="docBuilder">Constructor del documento.</param> /// <param name="estructuraReporte">Datos generales del reporte.</param> /// <param name="exportadorOrigen">Exportador original.</param> /// <param name="instancia">Documento de instnacia.</param> /// <param name="tarjeta">Diccionario de hechos a presentar.</param> /// <param name="configuracionPresentacion">Configuración de la tarjeta a presentar.</param> private void PintaTarjeta( DocumentBuilder docBuilder, ReporteXBRLDTO estructuraReporte, ExportadorRolDocumentoBase exportadorOrigen, DocumentoInstanciaXbrlDto instancia, IDictionary <String, HechoDto> tarjeta, ConfiguracionPresentacionRegistroHipercuboDto configuracionPresentacion) { var tabla = docBuilder.StartTable(); docBuilder.ParagraphFormat.SpaceAfter = 0; docBuilder.ParagraphFormat.SpaceBefore = 2; foreach (var fila in configuracionPresentacion.Filas) { if (TarjetaContieneConceptosFila(fila, tarjeta)) { if (fila.Tipo.Equals("DosFilas")) { PintaDosFilas(docBuilder, tarjeta, fila, instancia, exportadorOrigen, estructuraReporte); } if (fila.Tipo.Equals("UnaFila")) { PintaUnaFila(docBuilder, tarjeta, fila, instancia, exportadorOrigen, estructuraReporte); } } } exportadorOrigen.establecerBordesGrisesTabla(tabla); docBuilder.EndTable(); EstablecerFuenteCeldaValor(docBuilder, exportadorOrigen); docBuilder.Writeln(); docBuilder.Writeln(); }
/// <summary> /// Constructor de la sección. /// </summary> /// <param name="conceptoOrigen">Concepto que encapsula el hipercubo.</param> /// <param name="docBuilder">Constructor del reporte.</param> /// <param name="instancia">Documento de instancia con la información.</param> /// <param name="rolAExportar">Rol que se pretende exprotar.</param> /// <param name="estructuraReporte">DTO con información general del reporte.</param> /// <param name="exportadorOrigen">Exportador actual que maneja la exportación del rol.</param> /// <param name="hipercuboReporteDto">Definición del hipercubo con la información a presentar.</param> /// <param name="configuracionPresentacion">Definición de la configuración que se pretende presentar.</param> public void PintaTarjetasHipercubo( ConceptoReporteDTO conceptoOrigen, DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte, ExportadorRolDocumentoBase exportadorOrigen, HipercuboReporteDTO hipercuboReporteDto, ConfiguracionPresentacionRegistroHipercuboDto configuracionPresentacion) { var diccionarioTarjetas = hipercuboReporteDto.Utileria.ReordenaConjutosPorExplicitaImplicitaConcepto(hipercuboReporteDto.Hechos); String idDimensionExplicita = null; foreach (var idPlantillaDimension in hipercuboReporteDto.Utileria.configuracion.PlantillaDimensiones.Keys) { var plantillaDimension = hipercuboReporteDto.Utileria.configuracion.PlantillaDimensiones[idPlantillaDimension]; if (plantillaDimension.Explicita) { idDimensionExplicita = plantillaDimension.IdDimension; break; } } var idsPlantillasContextos = configuracionPresentacion.IdsPlantillasContextos; foreach (var clavePlantilla in diccionarioTarjetas.Keys) { if (idsPlantillasContextos != null && !idsPlantillasContextos.Contains(clavePlantilla)) { continue; } var listaTajetas = diccionarioTarjetas[clavePlantilla]; var primerHecho = listaTajetas.First().First().Value; var miembroExplicita = hipercuboReporteDto.Utileria.ObtenMiembroDimension(primerHecho, idDimensionExplicita, instancia); var textoTituloMiembro = exportadorOrigen. ObtenEtiquetaConcepto(miembroExplicita.IdItemMiembro, instancia, estructuraReporte.Lenguaje); exportadorOrigen.ImprimeSubTitulo(docBuilder, textoTituloMiembro); foreach (var tarjeta in listaTajetas) { PintaTarjeta( docBuilder, estructuraReporte, exportadorOrigen, instancia, tarjeta, configuracionPresentacion); } } }
/// <summary> /// Constructor de la sección. /// </summary> /// <param name="conceptoOrigen">Concepto que encapsula el hipercubo.</param> /// <param name="docBuilder">Constructor del reporte.</param> /// <param name="instancia">Documento de instancia con la información.</param> /// <param name="rolAExportar">Rol que se pretende exprotar.</param> /// <param name="estructuraReporte">DTO con información general del reporte.</param> /// <param name="exportadorOrigen">Exportador actual que maneja la exportación del rol.</param> public void CreaSeccion( ConceptoReporteDTO conceptoOrigen, DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte, IExportadorRolDocumentoInstancia exportadorOrigen) { try { docBuilder.Writeln(); var exportadorBase = (ExportadorRolDocumentoBase)exportadorOrigen; var idConceptoHipercubo = ObtenIdConceptoHipercubo(conceptoOrigen, instancia, rolAExportar.Uri); HipercuboReporteDTO hipercuboReporteDto; if (estructuraReporte.Hipercubos.TryGetValue(idConceptoHipercubo, out hipercuboReporteDto) && hipercuboReporteDto.Titulos.Count > 0) { var configuracionGeneral = hipercuboReporteDto.Utileria.configuracion; if (configuracionGeneral.ConfiguracionPresentacion != null && configuracionGeneral.ConfiguracionPresentacion.Count > 0) { ConfiguracionPresentacionRegistroHipercuboDto configuracionPresentacion = null; if (String.IsNullOrEmpty(IdConfiguracion) || !configuracionGeneral.ConfiguracionPresentacion.TryGetValue(IdConfiguracion, out configuracionPresentacion)) { configuracionPresentacion = configuracionGeneral.ConfiguracionPresentacion.Values.FirstOrDefault(); } if (configuracionPresentacion.Tipo.Equals("Tarjeta")) { PintaTarjetasHipercubo( conceptoOrigen, docBuilder, instancia, rolAExportar, estructuraReporte, exportadorBase, hipercuboReporteDto, configuracionPresentacion); } } } } catch (Exception ex) { LogUtil.Error(ex); } }