public override void exportarRolAWord(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte) { // docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait; docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait; docBuilder.CurrentSection.PageSetup.PaperSize = PaperSize.Letter; docBuilder.CurrentSection.PageSetup.LeftMargin = 40; docBuilder.CurrentSection.PageSetup.RightMargin = 40; // escribirEncabezado(docBuilder, instancia, estructuraReporte, true); imprimirTituloRol(docBuilder, rolAExportar); var lista = new List <ConceptoReporteDTO>(); var lista2 = new List <ConceptoReporteDTO>(); var lista3 = new List <ConceptoReporteDTO>(); HechoReporteDTO hecho = null; foreach (ConceptoReporteDTO concepto in estructuraReporte.Roles[rolAExportar.Rol]) { if (concepto.Hechos != null) { foreach (String llave in concepto.Hechos.Keys) { hecho = concepto.Hechos[llave]; if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor))) { if (!ConceptoHiper.Contains(concepto.IdConcepto)) { escribirConceptoEnTablaNota(docBuilder, estructuraReporte, hecho, concepto); } string tipoNumerico = ObtenertipoDato(concepto, TIPO_DATO_MONETARY); if (concepto.TipoDato == tipoNumerico && concepto.IdConcepto != ID_Importe && concepto.IdConcepto != ID_IVA && concepto.IdConcepto != ID_Total) { lista.Add(concepto); banderahecho = 1; } else if (banderahecho == 1) { PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista); banderahecho = 0; lista.Clear(); } string tipoNoNegativo = ObtenertipoDato(concepto, TIPO_DATO_NoNEGATIVO); if (concepto.TipoDato == tipoNoNegativo) { lista2.Add(concepto); banderahecho = 2; } else if (banderahecho == 2) { PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista2); banderahecho = 0; lista2.Clear(); } string tipoDecimal = ObtenertipoDato(concepto, TIPO_DATO_DECIMAL); if (concepto.TipoDato == tipoNoNegativo) { lista3.Add(concepto); banderahecho = 3; } else if (banderahecho == 3) { PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista3); banderahecho = 0; lista3.Clear(); } string conceptoAdosColumnas = ObtenertipoDato(concepto, TIPO_DATO_SI_NO); if (concepto.TipoDato == conceptoAdosColumnas || concepto.IdConcepto == ID_Tipo_Oferta || concepto.IdConcepto == ID_Denominacion_moneda || concepto.IdConcepto == ID_Pesos || concepto.IdConcepto == ID_Pesos1) { escribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte); } } } if (hipercubosSerie.Contains(concepto.IdConcepto)) { docBuilder.Writeln(); var conceptoActual = concepto; string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None); string ConceptoHipercubo = (d[0]); PintaTablaDimensionSerie(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte, conceptoActual); } else if (hipercubosExist.Contains(concepto.IdConcepto)) { docBuilder.Writeln(); string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None); string ConceptoHipercubo = (d[0]); PintaTablaDimensionExplicita(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte); } } } banderahecho = 0; Evaluador.Clear(); ConceptoHiper.Clear(); }
public override void exportarRolAWord(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte) { docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait; docBuilder.CurrentSection.PageSetup.PaperSize = PaperSize.Letter; docBuilder.CurrentSection.PageSetup.LeftMargin = 40; docBuilder.CurrentSection.PageSetup.RightMargin = 40; Idioma = estructuraReporte.Lenguaje; escribirEncabezado(docBuilder, instancia, estructuraReporte, true); //Titulo rol imprimirTituloRol(docBuilder, rolAExportar); HechoReporteDTO hecho = null; ConceptoHiper.Add(""); foreach (ConceptoReporteDTO concepto in estructuraReporte.Roles[rolAExportar.Rol]) { if (ConceptosHipercubos.ContainsKey(concepto.IdConcepto)) { continue; } if (concepto.Hechos != null) { foreach (String llave in concepto.Hechos.Keys) { hecho = concepto.Hechos[llave]; if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor))) { if (!ConceptoHiper.Contains(concepto.IdConcepto)) { //Escribe titulo campo escribirConceptoEnTablaNota(docBuilder, estructuraReporte, hecho, concepto); } } } } string conceptoAdosColumnas = ObtenertipoDato(concepto, TIPO_DATO_SI_NO); if (concepto.TipoDato != null && (concepto.TipoDato == conceptoAdosColumnas || concepto.Numerico)) { EscribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte); } string conceptoPDF = ObtenertipoDato(concepto, TIPO_DATOS_BASE64_FILE); if (concepto.TipoDato == conceptoPDF) { if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor))) { EscribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte); } } if (hipercubosSerie.Contains(concepto.IdConcepto)) { docBuilder.Writeln(); var conceptoActual = concepto; string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None); string ConceptoHipercubo = (d[0]); PintaTablaDimensionSerie(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte, conceptoActual); } if (hipercubosExist.Contains(concepto.IdConcepto)) { docBuilder.Writeln(); string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None); string ConceptoHipercubo = (d[0]); PintaTablaDimensionExplicita(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte); } else if (concepto.IdConcepto.Equals("ar_pros_CompanyAdministratorsAbstract")) { ImprimeTitulo(docBuilder, concepto); PintaAdministradores(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_CompanyAdministratorsTable"]); } else if (concepto.IdConcepto.Equals("ar_pros_CompanyShareholdersAbstract")) { ImprimeTitulo(docBuilder, concepto); PintaAccionistas(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_CompanyShareholdersTable"]); } else if (concepto.IdConcepto.Equals("ar_pros_SubcommitteesSynopsis")) { ImprimeTitulo(docBuilder, concepto); PintaListaSubcomites(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_SubcommitteesTable"]); } } Evaluador.Clear(); ConceptoHiper.Clear(); }