From 5edf6c69bc7c55fdf050abc6d97a62c00b183499 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 1 Jun 2021 11:03:00 -0700 Subject: [PATCH] Descarga de Reporte Diario en Excel E141 --- Ventas/RepPS.aspx | 61 ++++--- Ventas/RepPS.aspx.vb | 424 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 444 insertions(+), 41 deletions(-) diff --git a/Ventas/RepPS.aspx b/Ventas/RepPS.aspx index 1d4e762d4..7c3aeed05 100644 --- a/Ventas/RepPS.aspx +++ b/Ventas/RepPS.aspx @@ -67,6 +67,9 @@
  • Excel
  • +
  • + Reporte Diario +
  • @@ -134,33 +137,32 @@ - + + +
    @@ -180,7 +182,7 @@
    --%> -
    + @@ -190,14 +192,13 @@ - + - - - + + diff --git a/Ventas/RepPS.aspx.vb b/Ventas/RepPS.aspx.vb index 66fb8aea5..5ae077225 100644 --- a/Ventas/RepPS.aspx.vb +++ b/Ventas/RepPS.aspx.vb @@ -4,10 +4,12 @@ Option Strict On Imports Extensiones Imports System.Data Imports Microsoft.Reporting.WebForms - +Imports GemBox.Spreadsheet +Imports System.Globalization + Partial Class Ventas_RepPS - Inherits ClsPaginas - + Inherits ClsPaginas + #Region "P R O P I E D A D E S" Private Property DtReporte As DataTable Get @@ -16,9 +18,9 @@ Partial Class Ventas_RepPS Set(value As DataTable) ViewState("DtReporte") = value End Set - End Property + End Property #End Region - + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then pnlOrden.Visible = False @@ -34,6 +36,10 @@ Partial Class Ventas_RepPS 'DdlMarca.Items.Insert(0, New ListItem("Todos", "-1")) End If + If UsuarioActual.TienePermisoProceso(320) Then + LnkRepDiario.Visible = True + End If + CargaDatosIniciales() CargaCombos() @@ -179,9 +185,9 @@ Partial Class Ventas_RepPS End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) CargaDatos() - End Sub - - + End Sub + + #Region " IMPRIMIR " Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click If GvDatos.Rows.Count > 0 Then @@ -227,8 +233,404 @@ Partial Class Ventas_RepPS Alert("No hay información para mostrar.", TipoMensaje.MsgAdvertencia) End If - End Sub - + End Sub + #End Region - + + Protected Sub LnkRepDiario_Click(sender As Object, e As EventArgs) + Dim CveMoneda As Integer = -1 + Dim TC As Integer = 1 + Dim TCEspecifico As Decimal = -1 + + Dim DataSet As DataSet = New DataSet + Dim ObjVentas As New ClsVentas() + If ObjVentas.GetRepPSDiario(-1, -1, Now, UsuarioActual.CveEmpresa, CveUsuarioConsulta:=UsuarioActual.CveUsuario, GPO:=-1, CveMoneda:=CveMoneda, TipoCambio:=TC, TCEspecifico:=TCEspecifico) Then + DataSet = ObjVentas.DataSetResultados.Copy() + End If + ObjVentas.Dispose() + + If DataSet IsNot Nothing Then + SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) + + Dim FileExcel As New ExcelFile() + + Dim worksheetName As String = $"{ToShortMonthName(Now).ToUpper()}{Now.Day}" + Const invalidCharsRegex As String = "[/\\*'?[\]:]+" + Const maxLength As Integer = 31 + Dim safeName As String = Regex.Replace(worksheetName, invalidCharsRegex, " ").Replace(" ", " ").Trim() + + If String.IsNullOrEmpty(safeName) Then + safeName = "RepPSDiario" ' cannot be empty + ElseIf safeName.Length > maxLength Then + safeName = safeName.Substring(0, maxLength) + End If + + Dim worksheet = FileExcel.Worksheets.Add(safeName) + + Dim CellRangeTitulo = worksheet.Cells.GetSubrangeAbsolute(0, 0, 0, 12) + CellRangeTitulo.Merged = True + CellRangeTitulo.Value = $"{UsuarioActual.Empresa.Empresa}. VENTA DEL DIA {Now.Day} DE {ToMonthName(Now).ToUpper()} DEL {Now.Year}." + CellRangeTitulo.Style.VerticalAlignment = VerticalAlignmentStyle.Center + CellRangeTitulo.Style.HorizontalAlignment = HorizontalAlignmentStyle.Center + +#Region "V E N T A S - L L A N T A S, R I N E S, A L I N E A C I O N E S" + worksheet.Cells(2, 0).Value = "Sucursal" + 'TITULO DE LLANTAS + worksheet.Cells.GetSubrangeAbsolute(1, 1, 1, 3).Merged = True + worksheet.Cells(1, 3).Value = "LLANTAS" + worksheet.Cells(2, 1).Value = "Ant" + worksheet.Cells(2, 2).Value = "Dia" + worksheet.Cells(2, 3).Value = "Acum" + 'TITULO DE RINES + worksheet.Cells.GetSubrangeAbsolute(1, 4, 1, 6).Merged = True + worksheet.Cells(1, 6).Value = "RINES" + worksheet.Cells(2, 4).Value = "Ant" + worksheet.Cells(2, 5).Value = "Dia" + worksheet.Cells(2, 6).Value = "Acum" + 'TITULO DE ALINEACIONES + worksheet.Cells.GetSubrangeAbsolute(1, 7, 1, 9).Merged = True + worksheet.Cells(1, 9).Value = "ALINEACIONES" + worksheet.Cells(2, 7).Value = "Ant" + worksheet.Cells(2, 8).Value = "Dia" + worksheet.Cells(2, 9).Value = "Acum" + 'TITULO DE VENTAS DEL DIA + worksheet.Cells.GetSubrangeAbsolute(1, 10, 1, 12).Merged = True + worksheet.Cells(1, 12).Value = "VENTA EN PESOS" + worksheet.Cells(2, 10).Value = "Ant" + worksheet.Cells(2, 11).Value = "Dia" + worksheet.Cells(2, 12).Value = "Acum" + + Dim StyleTitleTable1 = worksheet.Cells.GetSubrangeAbsolute(1, 1, 1, 12).Style + StyleTitleTable1.Font.Weight = ExcelFont.BoldWeight + StyleTitleTable1.Font.Name = "Calibri" + StyleTitleTable1.Font.Size = 8 * 20 + StyleTitleTable1.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleTitleTable1.VerticalAlignment = VerticalAlignmentStyle.Center + StyleTitleTable1.HorizontalAlignment = HorizontalAlignmentStyle.Center + + Dim StyleSubTitleTable1 = worksheet.Cells.GetSubrangeAbsolute(2, 0, 2, 12).Style + StyleSubTitleTable1.Font.Weight = ExcelFont.BoldWeight + StyleSubTitleTable1.Font.Name = "Calibri" + StyleSubTitleTable1.Font.Size = 8 * 20 + StyleSubTitleTable1.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleSubTitleTable1.VerticalAlignment = VerticalAlignmentStyle.Center + StyleSubTitleTable1.HorizontalAlignment = HorizontalAlignmentStyle.Center + + Dim DtSucursalesLLantasAlin As DataTable = DataSet.Tables(0) + + 'INICIA DESDE LA CUARTA FILA + Dim IdxSucursalesLlantasAlin As Integer = 3 + For Each Row As DataRow In DtSucursalesLLantasAlin.Rows + worksheet.Cells(IdxSucursalesLlantasAlin, 0).Value = Row("SubProyecto") + + worksheet.Cells(IdxSucursalesLlantasAlin, 1).Value = Row("LlantasCantidadAnterior") + worksheet.Cells(IdxSucursalesLlantasAlin, 2).Value = Row("LlantasCantidadDia") + 'worksheet.Cells(IdxSucursalesLlantasAlin, 3).Value = Row("LlantasCantidadAcumulada") + worksheet.Cells(IdxSucursalesLlantasAlin, 3).Formula = $"=SUM({worksheet.Cells(IdxSucursalesLlantasAlin, 1).Name}:{worksheet.Cells(IdxSucursalesLlantasAlin, 2).Name})" + + worksheet.Cells(IdxSucursalesLlantasAlin, 4).Value = Row("RinCantidadAnterior") + worksheet.Cells(IdxSucursalesLlantasAlin, 5).Value = Row("RinCantidadDia") + 'worksheet.Cells(IdxSucursalesLlantasAlin, 6).Value = Row("RinCantidadAcumulada") + worksheet.Cells(IdxSucursalesLlantasAlin, 6).Formula = $"=SUM({worksheet.Cells(IdxSucursalesLlantasAlin, 4).Name}:{worksheet.Cells(IdxSucursalesLlantasAlin, 5).Name})" + + worksheet.Cells(IdxSucursalesLlantasAlin, 7).Value = Row("AlinCantidadAnterior") + worksheet.Cells(IdxSucursalesLlantasAlin, 8).Value = Row("AlinCantidadDia") + 'worksheet.Cells(IdxSucursalesLlantasAlin, 9).Value = Row("AlinCantidadAcumulada") + worksheet.Cells(IdxSucursalesLlantasAlin, 9).Formula = $"=SUM({worksheet.Cells(IdxSucursalesLlantasAlin, 7).Name}:{worksheet.Cells(IdxSucursalesLlantasAlin, 8).Name})" + + worksheet.Cells(IdxSucursalesLlantasAlin, 10).Value = Row("VentaAnterior") + worksheet.Cells(IdxSucursalesLlantasAlin, 11).Value = Row("VentaDia") + 'worksheet.Cells(IdxSucursalesLlantasAlin, 12).Value = Row("VentaAcumulada") + worksheet.Cells(IdxSucursalesLlantasAlin, 12).Formula = $"=SUM({worksheet.Cells(IdxSucursalesLlantasAlin, 10).Name}:{worksheet.Cells(IdxSucursalesLlantasAlin, 11).Name})" + + Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesLlantasAlin, 0, IdxSucursalesLlantasAlin, 12).Style + StyleData.Font.Weight = ExcelFont.BoldWeight + StyleData.Font.Name = "Calibri" + StyleData.Font.Size = 8 * 20 + StyleData.VerticalAlignment = VerticalAlignmentStyle.Center + StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center + StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-" + + 'LAS VENTAS DEL DIA NO DEBEN ESTAR EN NEGRITAS + worksheet.Cells(IdxSucursalesLlantasAlin, 0).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxSucursalesLlantasAlin, 0).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left + + worksheet.Cells(IdxSucursalesLlantasAlin, 2).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxSucursalesLlantasAlin, 5).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxSucursalesLlantasAlin, 8).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxSucursalesLlantasAlin, 11).Style.Font.Weight = ExcelFont.NormalWeight + + IdxSucursalesLlantasAlin += 1 + Next + 'LA FILA DE LOS TOTALES DEBE ESTAR EN NEGITAS + worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesLlantasAlin - 1, 0, IdxSucursalesLlantasAlin - 1, 12).Style.Font.Weight = ExcelFont.BoldWeight + + DtSucursalesLLantasAlin.Dispose() +#End Region + +#Region "V E N T A S - S E R V I C I O S D E I N S T A L A C I O N, A M O R T I G U A D O R E S, P O L I Z A S" + Dim IdxRefSucursalesServiciosAmortPolizas As Integer = IdxSucursalesLlantasAlin + 3 + + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 0).Value = "Sucursal" + 'TITULO SERVICIOS DE INSTALACION + worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 1, IdxRefSucursalesServiciosAmortPolizas - 1, 3).Merged = True + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas - 1, 3).Value = "SERVICIOS DE INSTALACION" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 1).Value = "Ant" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 2).Value = "Dia" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 3).Value = "Acum" + 'TITULO AMORTIGUADORES + worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 4, IdxRefSucursalesServiciosAmortPolizas - 1, 6).Merged = True + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas - 1, 6).Value = "AMORTIGUADORES" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 4).Value = "Ant" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 5).Value = "Dia" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 6).Value = "Acum" + 'TITULO DE POLIZAS + worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 7, IdxRefSucursalesServiciosAmortPolizas - 1, 9).Merged = True + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas - 1, 9).Value = "POLIZAS" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 7).Value = "Ant" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 8).Value = "Dia" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 9).Value = "Acum" + 'TITULO DE VENTAS DEL DIA + worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 10, IdxRefSucursalesServiciosAmortPolizas - 1, 12).Merged = True + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas - 1, 12).Value = "MANO DE OBRA PESOS" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 10).Value = "Ant" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 11).Value = "Dia" + worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 12).Value = "Acum" + + Dim StyleTitleTable2 = worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 1, IdxRefSucursalesServiciosAmortPolizas - 1, 12).Style + StyleTitleTable2.Font.Weight = ExcelFont.BoldWeight + StyleTitleTable2.Font.Name = "Calibri" + StyleTitleTable2.Font.Size = 8 * 20 + StyleTitleTable2.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleTitleTable2.VerticalAlignment = VerticalAlignmentStyle.Center + StyleTitleTable2.HorizontalAlignment = HorizontalAlignmentStyle.Center + + Dim StyleSubTitleTable2 = worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas, 0, IdxRefSucursalesServiciosAmortPolizas, 12).Style + StyleSubTitleTable2.Font.Weight = ExcelFont.BoldWeight + StyleSubTitleTable2.Font.Name = "Calibri" + StyleSubTitleTable2.Font.Size = 8 * 20 + StyleSubTitleTable2.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleSubTitleTable2.VerticalAlignment = VerticalAlignmentStyle.Center + StyleSubTitleTable2.HorizontalAlignment = HorizontalAlignmentStyle.Center + + Dim DtSucursalesServiciosAmortPolizas As DataTable = DataSet.Tables(1) + + 'INICIA DESDE LA CUARTA FILA + Dim IdxSucursalesServiciosAmortPolizas As Integer = IdxRefSucursalesServiciosAmortPolizas + 1 + + For Each Row As DataRow In DtSucursalesServiciosAmortPolizas.Rows + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 0).Value = Row("SubProyecto") + + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 1).Value = Row("ServiciosCantidadAnterior") + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 2).Value = Row("ServiciosCantidadDia") + 'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 3).Value = Row("ServiciosCantidadAcumulada") + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 3).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 1).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 2).Name})" + + + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 4).Value = Row("AmortCantidadAnterior") + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 5).Value = Row("AmortCantidadDia") + 'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 6).Value = Row("AmortCantidadAcumulada") + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 6).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 4).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 5).Name})" + + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 7).Value = Row("PolizasCantidadAnterior") + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 8).Value = Row("PolizasCantidadDia") + 'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 9).Value = Row("PolizasCantidadAcumulada") + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 9).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 7).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 8).Name})" + + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 10).Value = Row("VentaAnterior") + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 11).Value = Row("VentaDia") + 'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 12).Value = Row("VentaAcumulada") + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 12).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 10).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 11).Name})" + + Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesServiciosAmortPolizas, 0, IdxSucursalesServiciosAmortPolizas, 12).Style + StyleData.Font.Weight = ExcelFont.BoldWeight + StyleData.Font.Name = "Calibri" + StyleData.Font.Size = 8 * 20 + StyleData.VerticalAlignment = VerticalAlignmentStyle.Center + StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center + StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-" + + 'LAS VENTAS DEL DIA NO DEBEN ESTAR EN NEGRITAS + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 0).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 0).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left + + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 2).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 5).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 8).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 11).Style.Font.Weight = ExcelFont.NormalWeight + + IdxSucursalesServiciosAmortPolizas += 1 + Next + 'LA FILA DE LOS TOTALES DEBE ESTAR EN NEGITAS + worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesServiciosAmortPolizas - 1, 0, IdxSucursalesServiciosAmortPolizas - 1, 12).Style.Font.Weight = ExcelFont.BoldWeight + + DtSucursalesServiciosAmortPolizas.Dispose() +#End Region + +#Region "P O R C E N T A J E S" + Dim IdxRefPorcentajes As Integer = IdxSucursalesServiciosAmortPolizas + 3 + + worksheet.Cells(IdxRefPorcentajes, 0).Value = "Sucursal" + 'TITULO SERVICIOS + worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes - 1, 1, IdxRefPorcentajes - 1, 2).Merged = True + worksheet.Cells(IdxRefPorcentajes - 1, 2).Value = "INSTALACION" + worksheet.Cells(IdxRefPorcentajes, 1).Value = "Cant" + worksheet.Cells(IdxRefPorcentajes, 2).Value = "%" + 'TITULO POLIZAS + worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes - 1, 3, IdxRefPorcentajes - 1, 4).Merged = True + worksheet.Cells(IdxRefPorcentajes - 1, 4).Value = "POLIZAS" + worksheet.Cells(IdxRefPorcentajes, 3).Value = "Cant" + worksheet.Cells(IdxRefPorcentajes, 4).Value = "%" + 'TITULO DE ALINEACIONES + worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes - 1, 5, IdxRefPorcentajes - 1, 6).Merged = True + worksheet.Cells(IdxRefPorcentajes - 1, 6).Value = "ALINEACIONES" + worksheet.Cells(IdxRefPorcentajes, 5).Value = "Cant" + worksheet.Cells(IdxRefPorcentajes, 6).Value = "%" + + + Dim StyleTitleTable3 = worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes - 1, 1, IdxRefPorcentajes - 1, 6).Style + StyleTitleTable3.Font.Weight = ExcelFont.BoldWeight + StyleTitleTable3.Font.Name = "Calibri" + StyleTitleTable3.Font.Size = 8 * 20 + StyleTitleTable3.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleTitleTable3.VerticalAlignment = VerticalAlignmentStyle.Center + StyleTitleTable3.HorizontalAlignment = HorizontalAlignmentStyle.Center + + Dim StyleSubTitleTable3 = worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes, 0, IdxRefPorcentajes, 6).Style + StyleSubTitleTable3.Font.Weight = ExcelFont.BoldWeight + StyleSubTitleTable3.Font.Name = "Calibri" + StyleSubTitleTable3.Font.Size = 8 * 20 + StyleSubTitleTable3.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleSubTitleTable3.VerticalAlignment = VerticalAlignmentStyle.Center + StyleSubTitleTable3.HorizontalAlignment = HorizontalAlignmentStyle.Center + + Dim DtPorcentajes As DataTable = DataSet.Tables(2) + + 'INICIA DESDE LA CUARTA FILA + Dim IdxPorcentajes As Integer = IdxRefPorcentajes + 1 + + For Each Row As DataRow In DtPorcentajes.Rows + worksheet.Cells(IdxPorcentajes, 0).Value = Row("SubProyecto") + + worksheet.Cells(IdxPorcentajes, 1).Value = Row("Servicios") + worksheet.Cells(IdxPorcentajes, 2).Value = Row("ServiciosPorcentaje") + + worksheet.Cells(IdxPorcentajes, 3).Value = Row("Polizas") + worksheet.Cells(IdxPorcentajes, 4).Value = Row("PolizasPorcentaje") + + worksheet.Cells(IdxPorcentajes, 5).Value = Row("Alineaciones") + worksheet.Cells(IdxPorcentajes, 6).Value = Row("AlinPorcentaje") + + Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxPorcentajes, 0, IdxPorcentajes, 6).Style + StyleData.Font.Weight = ExcelFont.BoldWeight + StyleData.Font.Name = "Calibri" + StyleData.Font.Size = 8 * 20 + StyleData.VerticalAlignment = VerticalAlignmentStyle.Center + StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center + StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-" + + 'LAS VENTAS DEL DIA NO DEBEN ESTAR EN NEGRITAS + worksheet.Cells(IdxPorcentajes, 0).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxPorcentajes, 0).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left + + worksheet.Cells(IdxPorcentajes, 1).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxPorcentajes, 3).Style.Font.Weight = ExcelFont.NormalWeight + worksheet.Cells(IdxPorcentajes, 5).Style.Font.Weight = ExcelFont.NormalWeight + + IdxPorcentajes += 1 + Next + 'LA FILA DE LOS TOTALES DEBE ESTAR EN NEGITAS + worksheet.Cells.GetSubrangeAbsolute(IdxPorcentajes - 1, 0, IdxPorcentajes - 1, 6).Style.Font.Weight = ExcelFont.BoldWeight + + DtPorcentajes.Dispose() +#End Region + +#Region "A Ñ O A N T E R I O R" + Dim IdxRefAnioAnteriorLlantas As Integer = IdxPorcentajes + 3 + + worksheet.Cells(IdxRefAnioAnteriorLlantas, 0).Value = "Sucursal" + worksheet.Cells(IdxRefAnioAnteriorLlantas, 1).Value = (Now.Year - 1).ToString() + worksheet.Cells(IdxRefAnioAnteriorLlantas, 2).Value = Now.Year.ToString() + worksheet.Cells(IdxRefAnioAnteriorLlantas, 3).Value = "Dif" + + Dim StyleTitleTable4 = worksheet.Cells.GetSubrangeAbsolute(IdxRefAnioAnteriorLlantas, 0, IdxRefAnioAnteriorLlantas, 3).Style + StyleTitleTable4.Font.Weight = ExcelFont.BoldWeight + StyleTitleTable4.Font.Name = "Calibri" + StyleTitleTable4.Font.Size = 8 * 20 + StyleTitleTable4.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleTitleTable4.VerticalAlignment = VerticalAlignmentStyle.Center + StyleTitleTable4.HorizontalAlignment = HorizontalAlignmentStyle.Center + + Dim DtAnioAnteriorLLantas As DataTable = DataSet.Tables(3) + 'INICIA DESDE LA CUARTA FILA + Dim IdxAnioAnteriorLlantas As Integer = IdxRefAnioAnteriorLlantas + 1 + + For Each Row As DataRow In DtAnioAnteriorLLantas.FiltraParametros("TipoFila > 1").Rows + worksheet.Cells(IdxAnioAnteriorLlantas, 0).Value = Row("Grupo") + worksheet.Cells(IdxAnioAnteriorLlantas, 1).Value = Row("LLantasAnioAnterior") + worksheet.Cells(IdxAnioAnteriorLlantas, 2).Value = Row("LLantas") + worksheet.Cells(IdxAnioAnteriorLlantas, 3).Formula = $"=({worksheet.Cells(IdxAnioAnteriorLlantas, 1).Name} - {worksheet.Cells(IdxAnioAnteriorLlantas, 2).Name})" + + + Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxAnioAnteriorLlantas, 0, IdxAnioAnteriorLlantas, 3).Style + StyleData.Font.Weight = ExcelFont.NormalWeight + StyleData.Font.Name = "Calibri" + StyleData.Font.Size = 8 * 20 + StyleData.VerticalAlignment = VerticalAlignmentStyle.Center + StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center + StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-" + + If Row("TipoFila").ToString() = "2" Then + StyleData.Font.Weight = ExcelFont.BoldWeight + StyleData.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(255, 215, 0), SpreadsheetColor.FromArgb(255, 255, 255)) + End If + + IdxAnioAnteriorLlantas += 1 + Next + + For Each Row As DataRow In DtAnioAnteriorLLantas.FiltraParametros("TipoFila = 1").Rows + worksheet.Cells(IdxAnioAnteriorLlantas, 0).Value = Row("Grupo") + worksheet.Cells(IdxAnioAnteriorLlantas, 1).Value = Row("LLantasAnioAnterior") + worksheet.Cells(IdxAnioAnteriorLlantas, 2).Value = Row("LLantas") + worksheet.Cells(IdxAnioAnteriorLlantas, 3).Formula = $"=(+{worksheet.Cells(IdxAnioAnteriorLlantas, 1).Name} - {worksheet.Cells(IdxAnioAnteriorLlantas, 2).Name})" + + + Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxAnioAnteriorLlantas, 0, IdxAnioAnteriorLlantas, 3).Style + StyleData.Font.Weight = ExcelFont.BoldWeight + StyleData.Font.Name = "Calibri" + StyleData.Font.Size = 8 * 20 + StyleData.VerticalAlignment = VerticalAlignmentStyle.Center + StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center + StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) + StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-" + StyleData.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(255, 215, 0), SpreadsheetColor.FromArgb(255, 255, 255)) + + IdxAnioAnteriorLlantas += 1 + Next + DtAnioAnteriorLLantas.Dispose() +#End Region + + Dim columnCount = worksheet.CalculateMaxUsedColumns() + + For i = 0 To columnCount + worksheet.Columns(i).AutoFit(1, worksheet.Rows(0), worksheet.Rows(worksheet.Rows.Count - 1)) + Next + + FileExcel.Save(Response, $"DIARIO_{Now.ToString("dd_MM_yyyy")}.xlsx", SaveOptions.XlsxDefault) + + End If + + End Sub + + Public Function ToMonthName(ByVal dateTime As DateTime) As String + Return New CultureInfo("es-MX").DateTimeFormat.GetMonthName(dateTime.Month) + End Function + + Public Function ToShortMonthName(ByVal dateTime As DateTime) As String + Return New CultureInfo("es-MX").DateTimeFormat.GetAbbreviatedMonthName(dateTime.Month) + End Function End Class