/// <summary> /// Obtiene el valor a presentar como título del concepto. /// </summary> /// <param name="celda">Celda que se pretende presentar.</param> /// <param name="instancia">Documento de instancia.</param> /// <param name="exportadorOrigen">Exportador original.</param> /// <param name="estructuraReporte">Datos generales del reporte.</param> /// <returns>Texto a presentar como título.</returns> private String ObtenTextoTituloConcepto( CeldasPresentacionHipercuboDto celda, DocumentoInstanciaXbrlDto instancia, ExportadorRolDocumentoBase exportadorOrigen, ReporteXBRLDTO estructuraReporte) { var idConceptoTitulo = !String.IsNullOrEmpty(celda.IdConceptoTitulo) ? celda.IdConceptoTitulo : celda.IdConcepto; var tituloConcepto = exportadorOrigen.ObtenEtiquetaConcepto(idConceptoTitulo, instancia, estructuraReporte.Lenguaje); if (String.IsNullOrEmpty(tituloConcepto)) { tituloConcepto = idConceptoTitulo; } return(tituloConcepto); }
/// <summary> /// Determina si debe agregar un enalce a un documento adjunto. /// </summary> /// <param name="tituloReporte">Título con el que se presenta el reporte.</param> /// <param name="docBuilder">Constructor del documento.</param> /// <param name="celda">Celda que se presenta.</param> /// <param name="tarjeta">Diccionario con la información a presentar.</param> /// <param name="estructuraReporte">DTO con la estructura del reporte.</param> private void EvaluaPresentarEnlaceArchivo( String tituloReporte, DocumentBuilder docBuilder, CeldasPresentacionHipercuboDto celda, IDictionary <string, HechoDto> tarjeta, ReporteXBRLDTO estructuraReporte) { HechoDto hechoReporte; if (!String.IsNullOrEmpty(celda.ArchivoAdjunto) && tarjeta.TryGetValue(celda.ArchivoAdjunto, out hechoReporte) && !String.IsNullOrEmpty(hechoReporte.Valor)) { if (estructuraReporte.ArchivosAdjuntos == null) { estructuraReporte.ArchivosAdjuntos = new Dictionary <String, ArchivoReporteDTO>(); } var archivoReporte = new ArchivoReporteDTO() { TituloArchivo = tituloReporte, HechoArchivo = hechoReporte }; estructuraReporte.ArchivosAdjuntos[hechoReporte.Id] = archivoReporte; EscribeVinculoArchivo(docBuilder, archivoReporte); } }
/// <summary> /// Pinta el contenido de una celda compuesta por varios conceptos. /// </summary> /// <param name="docBuilder">Constructor del documenot.</param> /// <param name="celda">Celda que se pretende presentar.</param> /// <param name="tarjeta">Tarjeta con el valor de la celda.</param> /// <param name="exportadorOrigen">Exportador original.</param> private void PintaCeldaCompuesta( DocumentBuilder docBuilder, CeldasPresentacionHipercuboDto celda, IDictionary <string, HechoDto> tarjeta, ExportadorRolDocumentoBase exportadorOrigen) { HechoDto hecho; var valor = new StringBuilder(); var esHtml = false; var colspan = 1; foreach (var idConcepto in celda.IdsConceptos) { if (tarjeta.TryGetValue(idConcepto, out hecho)) { if (!esHtml) { esHtml = hecho.TipoDato.Contains(ExportadorRolDocumentoBase.TIPO_DATO_TEXT_BLOCK); } if (colspan < celda.Colspan) { colspan = celda.Colspan; } valor.Append(" "); valor.Append(hecho.Valor ?? String.Empty); if (!celda.ConcatenarValores) { break; } } } var texto = valor.ToString().Substring(1); exportadorOrigen.SetCellColspan(docBuilder, texto, colspan, esHtml); }
/// <summary> /// Pinta el contenido de una celda para un concepto simple. /// </summary> /// <param name="docBuilder">Constructor del documenot.</param> /// <param name="celda">Celda que se pretende presentar.</param> /// <param name="tarjeta">Tarjeta con el valor de la celda.</param> /// <param name="exportadorOrigen">Exportador original.</param> /// <param name="estructuraReporte">Dto con información general del reporte.</param> private void PintaCeldaConceptoSimple( DocumentBuilder docBuilder, CeldasPresentacionHipercuboDto celda, IDictionary <string, HechoDto> tarjeta, ExportadorRolDocumentoBase exportadorOrigen, ReporteXBRLDTO estructuraReporte) { HechoDto hecho; var texto = String.Empty; var esHtml = false; if (tarjeta.TryGetValue(celda.IdConcepto, out hecho)) { esHtml = hecho.TipoDato.Contains(ExportadorRolDocumentoBase.TIPO_DATO_TEXT_BLOCK); texto = hecho.Valor ?? String.Empty; } if (celda.AgregarEnIndice) { AsignaEstilosParaIndice(docBuilder, exportadorOrigen); } if (celda.Colspan > 1) { var newCells = celda.Colspan - 1; docBuilder.InsertCell(); docBuilder.CellFormat.HorizontalMerge = CellMerge.First; if (!esHtml) { if (!WordUtil.EsRTF(texto)) { docBuilder.Write(texto); } else { var lastIndex = texto.Length < 1000 ? texto.Length - 1 : 1000; docBuilder.Write(texto.Substring(0, lastIndex)); } EvaluaPresentarEnlaceArchivo(texto, docBuilder, celda, tarjeta, estructuraReporte); } else { WordUtil.InsertHtml(docBuilder, ":celda", "<div style=\"font-family:Arial;font-size: 6pt;\">" + texto + "</div>", false); } for (var index = 0; index < newCells; index++) { docBuilder.InsertCell(); docBuilder.CellFormat.HorizontalMerge = CellMerge.Previous; } } else { docBuilder.InsertCell(); docBuilder.CellFormat.HorizontalMerge = CellMerge.None; if (!esHtml) { docBuilder.Write(texto); EvaluaPresentarEnlaceArchivo(texto, docBuilder, celda, tarjeta, estructuraReporte); } else { WordUtil.InsertHtml(docBuilder, ":celda", "<div style=\"font-family:Arial;font-size: 6pt;\">" + texto + "</div>", false); } } if (celda.AgregarEnIndice) { EliminaEstilosParaIndice(docBuilder, exportadorOrigen); } }