Пример #1
0
        public static string ReportType(ReporteTipoEnum tipo)
        {
            string tipoCadena = string.Empty;

            switch (tipo)
            {
            case ReporteTipoEnum.Pdf:
                tipoCadena = "PDF";
                break;

            case ReporteTipoEnum.Excel:
                tipoCadena = "Excel";
                break;

            case ReporteTipoEnum.Word:
                tipoCadena = "Word";
                break;

            case ReporteTipoEnum.Imagen:
                tipoCadena = "Image";
                break;

            case ReporteTipoEnum.PNG:
                tipoCadena = "Image";
                break;
            }

            return(tipoCadena);
        }
Пример #2
0
        public static byte[] ReporteRenderizar(ReporteTipoEnum tipo, string dataSourceName, object dataSource, string reportePathCompleto,
                                               string[] columnasMostrar, IDictionary <string, string> parametros, out string mimeType)
        {
            var dataSources = new Dictionary <string, object>();

            dataSources.Add(dataSourceName, dataSource);

            return(ReporteRenderizar(tipo, dataSources, reportePathCompleto, columnasMostrar, parametros, null, out mimeType));
        }
Пример #3
0
        public byte[] Renderizar(ReporteTipoEnum tipo)
        {
            string mimeTypeOut = string.Empty;

            byte[] archivo = ReporteHelper.ReporteRenderizar(
                tipo,
                this.DataSources,
                this.PathCompleto.ToString(),
                this.ColumnasMostrar.ToArray(),
                this.Parametros,
                this.Imagenes, this.PageWidth, this.PageHeight, this.MarginTop, this.MarginLeft, this.MarginRight,
                this.MarginBottom,
                out mimeTypeOut);

            this.MimeType = mimeTypeOut;
            return(archivo);
        }
Пример #4
0
 /// <summary>
 /// Renderizar un reporte a un tipo especifico
 /// </summary>
 /// <param name="dataSourceName"></param>
 /// <param name="dataSource"></param>
 /// <param name="reportePathCompleto">Path completo para cargar el reporte desde el servidor</param>
 /// <param name="mimeType"></param>
 /// <returns></returns>
 public static byte[] ReporteRenderizar(ReporteTipoEnum tipo, string dataSourceName, object dataSource, string reportePathCompleto, out string mimeType)
 {
     return(ReporteRenderizar(tipo, dataSourceName, dataSource, reportePathCompleto, new string[0], new Dictionary <string, string>(), out mimeType));
 }
Пример #5
0
        public static byte[] ReporteRenderizar(ReporteTipoEnum tipo, Dictionary <string, object> dataSources, string reportePathCompleto, string[] columnasMostrar,
                                               IDictionary <string, string> parametros, IDictionary <string, string> imagenes,
                                               decimal?pageWidth, decimal?pageHeight, decimal?marginTop, decimal?marginLeft, decimal?marginRight, decimal?marginBottom, out string mimeType)
        {
            var localReport = new LocalReport();

            ReporteLoadReportDefinition(localReport, reportePathCompleto, imagenes);

            localReport.DataSources.Clear();

            foreach (var dataSourcesName in dataSources.Keys)
            {
                var reporteDataSource = new ReportDataSource(dataSourcesName, dataSources[dataSourcesName]);
                localReport.DataSources.Add(reporteDataSource);
            }

            //Imagenes externas
            localReport.EnableExternalImages = true;

            if (columnasMostrar.Any())
            {
                var sb = new StringBuilder();
                foreach (string columna in columnasMostrar)
                {
                    sb.AppendFormat("#{0}#", columna.Trim());
                }
                parametros.Add("Columnas", sb.ToString());
            }

            foreach (var clave in parametros.Keys)
            {
                var param = new ReportParameter();
                param.Name = clave;
                param.Values.Add(parametros[clave]);
                localReport.SetParameters(param);
            }

            string outputFormat = OutputFormat(tipo);
            string reporteType  = ReportType(tipo);
            string encoding;
            string fileNameExtension;

            StringBuilder deviceInfo = new StringBuilder();

            deviceInfo.AppendFormat("<DeviceInfo>");
            deviceInfo.AppendFormat("<OutputFormat>{0}</OutputFormat>", outputFormat);


            if (pageWidth.HasValue)
            {
                deviceInfo.AppendFormat("  <PageWidth>{0}cm</PageWidth>", pageWidth);
            }

            if (pageHeight.HasValue)
            {
                deviceInfo.AppendFormat("  <PageHeight>{0}cm</PageHeight>", pageHeight);
            }

            if (marginTop.HasValue)
            {
                deviceInfo.AppendFormat("  <MarginTop>{0}cm</MarginTop>", marginTop);
            }

            if (marginLeft.HasValue)
            {
                deviceInfo.AppendFormat("  <MarginLeft>{0}cm</MarginLeft>", marginLeft);
            }

            if (marginRight.HasValue)
            {
                deviceInfo.AppendFormat("  <MarginRight>{0}cm</MarginRight>", marginRight);
            }

            if (marginBottom.HasValue)
            {
                deviceInfo.AppendFormat("  <MarginBottom>{0}cm</MarginBottom>", marginBottom);
            }

            deviceInfo.AppendLine("<Encoding>UTF-8</Encoding>");
            deviceInfo.AppendFormat("</DeviceInfo>");

            Warning[] warnings;
            string[]  streams;

            localReport.Refresh();

            //Render the report
            return(localReport.Render(
                       reporteType,
                       deviceInfo.ToString(),
                       out mimeType,
                       out encoding,
                       out fileNameExtension,
                       out streams,
                       out warnings));
        }
Пример #6
0
 /// <summary>
 /// Renderizar un reporte a un tipo especifico
 /// </summary>
 /// <param name="dataSourceName"></param>
 /// <param name="dataSource"></param>
 /// <param name="reportePathCompleto">Path completo para cargar el reporte desde el servidor</param>
 /// <param name="mimeType"></param>
 /// <returns></returns>
 public static byte[] ReporteRenderizar(ReporteTipoEnum tipo, Dictionary <string, object> dataSources, string reportePathCompleto, string[] columnasMostrar,
                                        IDictionary <string, string> parametros, IDictionary <string, string> imagenes, out string mimeType)
 {
     return(ReporteRenderizar(tipo, dataSources, reportePathCompleto, columnasMostrar, parametros, imagenes, null, null, null, null, null, null, out mimeType));
 }
Пример #7
0
        public byte[] Renderizar(ReporteTipoEnum tipo)
        {
            string mimeTypeOut = string.Empty;
            byte[] archivo = ReporteHelper.ReporteRenderizar(
                tipo,
                this.DataSources,
                this.PathCompleto.ToString(),
                this.ColumnasMostrar.ToArray(),
                this.Parametros,
                this.Imagenes, this.PageWidth, this.PageHeight, this.MarginTop, this.MarginLeft, this.MarginRight,
                this.MarginBottom,
                out mimeTypeOut);

            this.MimeType = mimeTypeOut;
            return archivo;
        }