Option Explicit On Option Strict On Imports System.Data Imports System.Globalization Imports Extensiones Imports GemBox.Spreadsheet Imports Microsoft.Reporting.WebForms Partial Class Ventas_RepPS Inherits ClsPaginas #Region "P R O P I E D A D E S" Private Property DtReporte As DataTable Get Return DirectCast(ViewState("DtReporte"), DataTable) End Get Set(value As DataTable) ViewState("DtReporte") = value End Set 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 If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then pnlOrden.Visible = True DdlOrden.SelectedValue = "2" 'Using ObjPS As New ClsProductosServicios ' If ObjPS.GetMarcas(UsuarioActual.CveEmpresa) Then ' DdlMarca.DataSource = ObjPS.DtResultados.Copy() ' End If 'End Using 'DdlMarca.DataBind() 'DdlMarca.Items.Insert(0, New ListItem("Todos", "-1")) End If If UsuarioActual.TienePermisoProceso(320) Then HLReporteDiario.Visible = True End If CargaDatosIniciales() CargaCombos() CargaDatos() End If End Sub Private Sub CargaDatosIniciales() txtFechaI.Text = $"01/{Now.Month}/{Now.Year}" txtFechaF.Text = Now.ToString("dd/MM/yyyy") TxtFechaConsulta.Text = Now.ToString("dd/MM/yyyy") End Sub Private Sub CargaCombos() CargaTipoCentroCosto() DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) DdlClasificacion.DataBind() DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) DdlPS.SelectedText = "" DdlPS.SelectedValue = "-1" Else DdlPS.ddl.Items.Clear() DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero) DdlPS.ddl.DataBind() DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) End If If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then DivMarca.Visible = True LblMarca.Visible = True LblLinea.Visible = True DivLinea.Visible = True Using ObjMarcas As New ClsProductosServicios If ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa) Then DdlMarcaPSDes.DataSource = ObjMarcas.DtResultados DdlMarcaPSDes.DataBind() End If End Using End If DdlLinea.DataSource = GlobalDTClasificacionesDetalle(UsuarioActual.CveEmpresa) DdlLinea.DataBind() 'DdlMarcaPSDes.Items.Insert(0, New ListItem(" Todos ", "-1")) End Sub Private Sub CargaTipoCentroCosto() Dim index As Integer = 17 If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then DdlSubProyecto.Items.Clear() LblSubProyecto.InnerText = "Sucursal:" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then DdlSubProyecto.Items.Clear() LblSubProyecto.InnerText = "Proyecto:" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then DdlGrupo.Items.Insert(0, New ListItem("Proyecto", "1")) DdlGrupo.Items.Insert(1, New ListItem("SubProyecto", "2")) If DdlGrupo.Items.Count < 17 Then index = DdlGrupo.Items.Count End If DdlGrupo.Items.Insert(index, New ListItem("SubProyecto Ejec.", "19")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then LblSubProyecto.InnerText = "Proyecto:" DdlGrupo.Items.Insert(0, New ListItem("Proyecto", "1")) DdlGrupo.Items.Insert(1, New ListItem("SubProyecto", "2")) If DdlGrupo.Items.Count < 17 Then index = DdlGrupo.Items.Count End If DdlGrupo.Items.Insert(index, New ListItem("SubProyecto Ejec.", "19")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then LblSubProyecto.InnerText = "Sucursal:" End If End Sub Private Sub CargaDatos() Dim Clasificacion As String = If(DdlClasificacion.GetSelectedValuesM = "", "-1", DdlClasificacion.GetSelectedValuesM) Dim Linea As String = If(DdlLinea.GetSelectedValuesM = "", "-1", DdlLinea.GetSelectedValuesM) Dim Marca As String = If(DdlMarcaPSDes.GetSelectedValuesM = "", "-1", DdlMarcaPSDes.GetSelectedValuesM) Dim CveSubProyecto As Integer = DdlSubProyecto.SelectedValue.ToEntero() Dim Grupo As Integer = DdlGrupo.SelectedValue.ToEntero() Dim CvePS As Integer = DdlPS.SelectedValue.ToEntero() Dim CveMoneda As Integer = -1 Dim TC As Integer = 1 Dim TCEspecifico As Decimal = -1 Dim FechaI, FechaF As DateTime FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.ToDate, MinFecha) FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.ToDate, MaxFecha) Dim ObjVentas As New ClsVentas() If ObjVentas.GetRepPSEcono(CveSubProyecto, CvePS, FechaI, FechaF, UsuarioActual.CveEmpresa, CveUsuarioConsulta:=UsuarioActual.CveUsuario, GPO:=Grupo, CveMoneda:=CveMoneda, TipoCambio:=TC, TCEspecifico:=TCEspecifico, Clasificacion:=Clasificacion, Linea:=Linea, Marca:=Marca, orden:=DdlOrden.SelectedValue.ToEntero()) Then DtReporte = ObjVentas.DtResultados.Copy() GvDatos.DataSource = DtReporte Else GvDatos.DataSource = Nothing End If ObjVentas.Dispose() GvDatos.DataBind() UPDatos.Update() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Select Case e.Row.DBCampo("Orden").ToString.ToEntero() Case 4 e.Row.Cells(0).ColumnSpan = 2 e.Row.Cells(1).Visible = False e.Row.CssClass = "Totales" Case 3 e.Row.Cells(0).ColumnSpan = 2 e.Row.Cells(1).Visible = False e.Row.CssClass = "SubTotales2" Case 2 e.Row.Cells(0).ColumnSpan = 2 e.Row.Cells(1).Visible = False e.Row.CssClass = "SubTotales" Case 1 e.Row.Cells(0).ColumnSpan = 2 e.Row.Cells(1).Visible = False e.Row.CssClass = "SubTotalesB" Case 0 e.Row.Cells(0).ColumnSpan = 1 e.Row.Cells(1).Visible = True e.Row.CssClass = "Texto" End Select End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) CargaDatos() End Sub #Region " IMPRIMIR " Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click If GvDatos.Rows.Count > 0 Then GenerarPDF() Else Alert("No hay datos para imprimir") End If End Sub Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click GvDatos.ExportToExcel("ReporteProductosServicios" & Now.ToShortDateString) End Sub Private Sub GenerarPDF() Dim FechaI, FechaF As Date FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.ToDate, MinFecha) FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.ToDate, MaxFecha) If DtReporte IsNot Nothing AndAlso DtReporte.Rows.Count > 0 Then Dim SbParametros As New StringBuilder SbParametros.AppendFormat("Sucursal:{0}", DdlSubProyecto.SelectedItem.Text) SbParametros.AppendFormat(", Orden:{0}", DdlGrupo.SelectedItem.Text) Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", If(txtFechaI.Text <> "", FechaI.ToShortDateString, ""))) params.Add(New ReportParameter("FechaFin", If(txtFechaF.Text <> "", FechaF.ToShortDateString, ""))) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) params.Add(New ReportParameter("Parametros", SbParametros.ToString())) If System.IO.File.Exists($"{UsuarioActual.Empresa.Ruta}Formatos/RepPS.rdlc") Then ImprimirPDF($"{UsuarioActual.Empresa.Ruta}Formatos/RepPS.rdlc", DtReporte, params, "ReportePS") Else ImprimirPDF($"Empresas/Grales/Formatos/RepPS.rdlc", DtReporte, params, "ReportePS") End If Else Alert("No hay información para mostrar.", TipoMensaje.MsgAdvertencia) End If End Sub #End Region Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click Dim CveMoneda As Integer = -1 Dim TC As Integer = 1 Dim TCEspecifico As Decimal = -1 Dim FechaConsulta As DateTime = TxtFechaConsulta.Text.ToDateTime() Dim DataSet As DataSet = New DataSet Dim ObjVentas As New ClsVentas() If ObjVentas.GetRepPSDiario(-1, -1, FechaConsulta, 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 Try SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) Dim FileExcel As New ExcelFile() Dim worksheetName As String = $"{ToShortMonthName(FechaConsulta).ToUpper()}{FechaConsulta.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 {FechaConsulta.Day} DE {ToMonthName(FechaConsulta).ToUpper()} DEL {FechaConsulta.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" Dim CeldaTotalVentaAcumulada As ExcelCell = Nothing 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 Dim idxTabla As Integer = 0 For Each Row As DataRow In DtSucursalesLLantasAlin.Rows idxTabla += 1 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})" If idxTabla = DtSucursalesLLantasAlin.Rows.Count Then CeldaTotalVentaAcumulada = worksheet.Cells(IdxSucursalesLlantasAlin, 12) End If Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesLlantasAlin, 0, IdxSucursalesLlantasAlin, 9).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_-;-* 0-;_-* ""-""??_-;_-@_-" Dim StyleDataVenta = worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesLlantasAlin, 10, IdxSucursalesLlantasAlin, 12).Style StyleDataVenta.Font.Weight = ExcelFont.BoldWeight StyleDataVenta.Font.Name = "Calibri" StyleDataVenta.Font.Size = 8 * 20 StyleDataVenta.VerticalAlignment = VerticalAlignmentStyle.Center StyleDataVenta.HorizontalAlignment = HorizontalAlignmentStyle.Center StyleDataVenta.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleDataVenta.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 #End Region #Region "L L A N T A S M E S A Ñ O A N T E R I O R R E S U M E N" Dim IdxRefMesAnioAnteriorLlantasResumen As Integer = IdxSucursalesLlantasAlin + 1 worksheet.Cells(IdxRefMesAnioAnteriorLlantasResumen, 0).Value = "Mes" worksheet.Cells(IdxRefMesAnioAnteriorLlantasResumen, 1).Value = String.Format("{0}", (FechaConsulta.Year - 1)) worksheet.Cells(IdxRefMesAnioAnteriorLlantasResumen, 2).Value = String.Format("{0}", (FechaConsulta.Year)) worksheet.Cells(IdxRefMesAnioAnteriorLlantasResumen, 3).Value = "DIF UDS" worksheet.Cells(IdxRefMesAnioAnteriorLlantasResumen, 4).Value = "DIF %" Dim StyleTitleTable6 = worksheet.Cells.GetSubrangeAbsolute(IdxRefMesAnioAnteriorLlantasResumen, 0, IdxRefMesAnioAnteriorLlantasResumen, 4).Style StyleTitleTable6.Font.Weight = ExcelFont.BoldWeight StyleTitleTable6.Font.Name = "Calibri" StyleTitleTable6.Font.Size = 8 * 20 StyleTitleTable6.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleTitleTable6.VerticalAlignment = VerticalAlignmentStyle.Center StyleTitleTable6.HorizontalAlignment = HorizontalAlignmentStyle.Center Dim DtMesAnioAnteriorLLantasResumen As DataTable = DataSet.Tables(5) 'INICIA DESDE LA CUARTA FILA Dim IdxMesAnioAnteriorLlantasResumen As Integer = IdxRefMesAnioAnteriorLlantasResumen + 1 For Each Row As DataRow In DtMesAnioAnteriorLLantasResumen.Rows worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 0).Value = ToMonthName(FechaConsulta).ToUpper() + " - LLANTAS" worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 1).Value = Row("LLantasAnioAnterior") worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 2).Value = Row("LLantas") worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 3).Formula = $"=({worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 1).Name} - {worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 2).Name})" worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 4).Formula = $"=+({worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 2).Name} / {worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 1).Name})" Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxMesAnioAnteriorLlantasResumen, 0, IdxMesAnioAnteriorLlantasResumen, 4).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_-;-* 0-;_-* ""-""??_-;_-@_-" IdxMesAnioAnteriorLlantasResumen += 1 Next IdxMesAnioAnteriorLlantasResumen += 1 'RESUMEN DE METAS worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 0).Value = "Mes" worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 1).Value = "Meta" worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 2).Value = String.Format("{0}", (FechaConsulta.Year - 1)) worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 3).Value = "DIF UDS" worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 4).Value = "DIF %" Dim StyleTitleTableMeta = worksheet.Cells.GetSubrangeAbsolute(IdxMesAnioAnteriorLlantasResumen, 0, IdxMesAnioAnteriorLlantasResumen, 4).Style StyleTitleTableMeta.Font.Weight = ExcelFont.BoldWeight StyleTitleTableMeta.Font.Name = "Calibri" StyleTitleTableMeta.Font.Size = 8 * 20 StyleTitleTableMeta.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleTitleTableMeta.VerticalAlignment = VerticalAlignmentStyle.Center StyleTitleTableMeta.HorizontalAlignment = HorizontalAlignmentStyle.Center IdxMesAnioAnteriorLlantasResumen += 1 For Each Row As DataRow In DtMesAnioAnteriorLLantasResumen.Rows worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 0).Value = ToMonthName(FechaConsulta).ToUpper() + " - LLANTAS" worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 1).Value = 0 worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 2).Value = Row("LLantasAnioAnterior") worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 3).Formula = $"=({worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 1).Name} - {worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 2).Name})" worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 4).Formula = $"=+({worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 2).Name} / {worksheet.Cells(IdxMesAnioAnteriorLlantasResumen, 1).Name})" Dim StyleDataMeta = worksheet.Cells.GetSubrangeAbsolute(IdxMesAnioAnteriorLlantasResumen, 0, IdxMesAnioAnteriorLlantasResumen, 4).Style StyleDataMeta.Font.Weight = ExcelFont.NormalWeight StyleDataMeta.Font.Name = "Calibri" StyleDataMeta.Font.Size = 8 * 20 StyleDataMeta.VerticalAlignment = VerticalAlignmentStyle.Center StyleDataMeta.HorizontalAlignment = HorizontalAlignmentStyle.Center StyleDataMeta.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleDataMeta.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-" IdxMesAnioAnteriorLlantasResumen += 1 Next DtMesAnioAnteriorLLantasResumen.Dispose() #End Region #Region "F R A N Q U I C I A S R E S U M E N" Dim TotalFranquicias As Decimal = DtSucursalesLLantasAlin.FiltroPrimeroValor("LlantasCantidadAcumulada", "CveSubProyecto=11842").ToDecimal() DtSucursalesLLantasAlin.Dispose() Dim IdxRefFranquiciasResumen As Integer = IdxRefMesAnioAnteriorLlantasResumen Dim columnRefFranquiciasResumen As Integer = 6 'PRM 19 worksheet.Cells(IdxRefFranquiciasResumen, columnRefFranquiciasResumen).Value = $"PRM {Now.Year - 1}" worksheet.Cells(IdxRefFranquiciasResumen, columnRefFranquiciasResumen + 1).Value = "ALM PS" worksheet.Cells(IdxRefFranquiciasResumen, columnRefFranquiciasResumen + 2).Value = "" worksheet.Cells(IdxRefFranquiciasResumen, columnRefFranquiciasResumen + 3).Value = TotalFranquicias 'TOMA EL VALOR DE DIF LLANTAS worksheet.Cells(IdxRefFranquiciasResumen + 1, columnRefFranquiciasResumen).Formula = $"=({worksheet.Cells(IdxMesAnioAnteriorLlantasResumen - 4, 3).Name})" worksheet.Cells(IdxRefFranquiciasResumen + 2, columnRefFranquiciasResumen + 1).Value = $"FRANQ {Now.Year}" worksheet.Cells(IdxRefFranquiciasResumen + 2, columnRefFranquiciasResumen + 2).Value = 4988 worksheet.Cells(IdxRefFranquiciasResumen + 3, columnRefFranquiciasResumen).Value = $"PRM {Now.Year}" worksheet.Cells(IdxRefFranquiciasResumen + 3, columnRefFranquiciasResumen + 1).Value = "" worksheet.Cells(IdxRefFranquiciasResumen + 3, columnRefFranquiciasResumen + 2).Formula = $"=({worksheet.Cells(IdxRefFranquiciasResumen, columnRefFranquiciasResumen + 3).Name} - {worksheet.Cells(IdxRefFranquiciasResumen + 2, columnRefFranquiciasResumen + 2).Name})" worksheet.Cells(IdxRefFranquiciasResumen + 3, columnRefFranquiciasResumen + 3).Formula = $"+({worksheet.Cells(IdxRefFranquiciasResumen + 3, columnRefFranquiciasResumen + 2)})" 'TOMA EL VALOR DE DIF LLANTAS METAS worksheet.Cells(IdxRefFranquiciasResumen + 4, columnRefFranquiciasResumen).Formula = $"=({worksheet.Cells(IdxMesAnioAnteriorLlantasResumen - 1, 3).Name})" Dim StyleTitleTableFR = worksheet.Cells.GetSubrangeAbsolute(IdxRefFranquiciasResumen, columnRefFranquiciasResumen, IdxRefFranquiciasResumen + 4, columnRefFranquiciasResumen + 3).Style StyleTitleTableFR.Font.Weight = ExcelFont.BoldWeight StyleTitleTableFR.Font.Name = "Calibri" StyleTitleTableFR.Font.Size = 8 * 20 StyleTitleTableFR.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleTitleTableFR.VerticalAlignment = VerticalAlignmentStyle.Center StyleTitleTableFR.HorizontalAlignment = HorizontalAlignmentStyle.Center 'Dim StyleDataFranquicias = worksheet.Cells.GetSubrangeAbsolute(IdxMesAnioAnteriorLlantasResumen, 0, IdxMesAnioAnteriorLlantasResumen, 4).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_-;_-* ""-""??_-;_-@_-" IdxRefFranquiciasResumen += 1 #End Region #Region "A Ñ O R E S U M E N" Dim IdxRefAnioResumen As Integer = IdxRefFranquiciasResumen - 1 Dim columnRefAnioResumen As Integer = columnRefFranquiciasResumen + 5 'AÑO ANTERIOR worksheet.Cells(IdxRefAnioResumen, columnRefAnioResumen).Value = Now.Year - 1 Dim CellAnioAnterior = worksheet.Cells(IdxRefAnioResumen, columnRefAnioResumen + 1) CellAnioAnterior.Value = 0 'AÑO ACTUAL worksheet.Cells(IdxRefAnioResumen + 1, columnRefAnioResumen).Value = Now.Year Dim CellAnioActual = worksheet.Cells(IdxRefAnioResumen + 1, columnRefAnioResumen + 1) CellAnioActual.Value = 0 worksheet.Cells(IdxRefAnioResumen + 2, columnRefAnioResumen + 1).Formula = $"=({CeldaTotalVentaAcumulada.Name} - {worksheet.Cells(IdxRefAnioResumen, columnRefAnioResumen + 1).Name})" worksheet.Cells(IdxRefAnioResumen + 3, columnRefAnioResumen).Value = $"X DIA {Now.Year - 1}" worksheet.Cells(IdxRefAnioResumen + 4, columnRefAnioResumen).Value = $"X DIA {Now.Year}" Dim DiasFinMes As Integer = 0 Dim Day As Integer = Now.Day Dim DaysMonth As Integer = DateTime.DaysInMonth(Now.Year, Now.Month) Dim Month As Integer = Now.Month Dim Year As Integer = Now.Year For i = Day To DaysMonth Dim DayRef As DateTime = New DateTime(Year, Month, i) If DayRef.DayOfWeek <> DayOfWeek.Sunday Then DiasFinMes += 1 End If Next worksheet.Cells(IdxRefAnioResumen + 3, columnRefAnioResumen + 1).Formula = $"=({CellAnioAnterior.Name} - {CeldaTotalVentaAcumulada.Name})/{If(DiasFinMes > 0, DiasFinMes, 1)}" worksheet.Cells(IdxRefAnioResumen + 3, columnRefAnioResumen + 2).Formula = $"=({CeldaTotalVentaAcumulada.Name}/{CellAnioAnterior.Name})" worksheet.Cells(IdxRefAnioResumen + 4, columnRefAnioResumen + 1).Formula = $"=({CellAnioActual.Name} - {CeldaTotalVentaAcumulada.Name})/{If(DiasFinMes > 0, DiasFinMes, 1)}" worksheet.Cells(IdxRefAnioResumen + 4, columnRefAnioResumen + 2).Formula = $"=({CeldaTotalVentaAcumulada.Name}/{CellAnioActual.Name})" Dim StyleTitleTableAR = worksheet.Cells.GetSubrangeAbsolute(IdxRefAnioResumen, columnRefAnioResumen, IdxRefAnioResumen + 4, columnRefAnioResumen + 2).Style StyleTitleTableAR.Font.Weight = ExcelFont.BoldWeight StyleTitleTableAR.Font.Name = "Calibri" StyleTitleTableAR.Font.Size = 8 * 20 StyleTitleTableAR.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleTitleTableAR.VerticalAlignment = VerticalAlignmentStyle.Center StyleTitleTableAR.HorizontalAlignment = HorizontalAlignmentStyle.Center Dim StyleDataAR = worksheet.Cells.GetSubrangeAbsolute(IdxRefAnioResumen, columnRefAnioResumen + 1, IdxRefAnioResumen + 4, columnRefAnioResumen + 2).Style StyleDataAR.Font.Weight = ExcelFont.NormalWeight StyleDataAR.Font.Name = "Calibri" StyleDataAR.Font.Size = 8 * 20 StyleDataAR.VerticalAlignment = VerticalAlignmentStyle.Center StyleDataAR.HorizontalAlignment = HorizontalAlignmentStyle.Center StyleDataAR.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleDataAR.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-" IdxRefAnioResumen += 1 #End Region #Region "L L A N T A S M E S A Ñ O A N T E R I O R" Dim IdxRefMesAnioAnteriorLlantas As Integer = IdxSucursalesLlantasAlin + 8 worksheet.Cells.GetSubrangeAbsolute(IdxRefMesAnioAnteriorLlantas - 1, 1, IdxRefMesAnioAnteriorLlantas - 1, 3).Merged = True worksheet.Cells.GetSubrangeAbsolute(IdxRefMesAnioAnteriorLlantas - 1, 4, IdxRefMesAnioAnteriorLlantas - 1, 6).Merged = True worksheet.Cells(IdxRefMesAnioAnteriorLlantas - 1, 1).Value = "LLANTAS" worksheet.Cells(IdxRefMesAnioAnteriorLlantas - 1, 4).Value = "%" worksheet.Cells(IdxRefMesAnioAnteriorLlantas, 0).Value = "Sucursal" worksheet.Cells(IdxRefMesAnioAnteriorLlantas, 1).Value = String.Format("{0} {1}", ToShortMonthName(FechaConsulta).ToUpper(), (FechaConsulta.Year - 1)) worksheet.Cells(IdxRefMesAnioAnteriorLlantas, 2).Value = String.Format("{0} {1}", ToShortMonthName(FechaConsulta).ToUpper(), (FechaConsulta.Year)) worksheet.Cells(IdxRefMesAnioAnteriorLlantas, 3).Value = "DIF %" worksheet.Cells(IdxRefMesAnioAnteriorLlantas, 4).Value = String.Format("{0} - %", (FechaConsulta.Year - 1)) worksheet.Cells(IdxRefMesAnioAnteriorLlantas, 5).Value = String.Format("{0} - %", (FechaConsulta.Year)) worksheet.Cells(IdxRefMesAnioAnteriorLlantas, 6).Value = "DIF %" Dim StyleTitleTable5 = worksheet.Cells.GetSubrangeAbsolute(IdxRefMesAnioAnteriorLlantas - 1, 0, IdxRefMesAnioAnteriorLlantas - 1, 6).Style StyleTitleTable5.Font.Weight = ExcelFont.BoldWeight StyleTitleTable5.Font.Name = "Calibri" StyleTitleTable5.Font.Size = 8 * 20 StyleTitleTable5.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleTitleTable5.VerticalAlignment = VerticalAlignmentStyle.Center StyleTitleTable5.HorizontalAlignment = HorizontalAlignmentStyle.Center Dim StyleSubTitleTable5 = worksheet.Cells.GetSubrangeAbsolute(IdxRefMesAnioAnteriorLlantas, 0, IdxRefMesAnioAnteriorLlantas, 6).Style StyleSubTitleTable5.Font.Weight = ExcelFont.BoldWeight StyleSubTitleTable5.Font.Name = "Calibri" StyleSubTitleTable5.Font.Size = 8 * 20 StyleSubTitleTable5.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleSubTitleTable5.VerticalAlignment = VerticalAlignmentStyle.Center StyleSubTitleTable5.HorizontalAlignment = HorizontalAlignmentStyle.Center Dim DtMesAnioAnteriorLLantas As DataTable = DataSet.Tables(4) 'INICIA DESDE LA CUARTA FILA Dim IdxMesAnioAnteriorLlantas As Integer = IdxRefMesAnioAnteriorLlantas + 1 For Each Row As DataRow In DtMesAnioAnteriorLLantas.Rows worksheet.Cells(IdxMesAnioAnteriorLlantas, 0).Value = Row("Sucursal") worksheet.Cells(IdxMesAnioAnteriorLlantas, 1).Value = Row("LLantasAnioAnterior") worksheet.Cells(IdxMesAnioAnteriorLlantas, 2).Value = Row("LLantas") worksheet.Cells(IdxMesAnioAnteriorLlantas, 3).Formula = $"=({worksheet.Cells(IdxMesAnioAnteriorLlantas, 2).Name} - {worksheet.Cells(IdxMesAnioAnteriorLlantas, 1).Name})" worksheet.Cells(IdxMesAnioAnteriorLlantas, 4).Formula = $"=+(({worksheet.Cells(IdxMesAnioAnteriorLlantas, 1).Name} * 1.07) - {worksheet.Cells(IdxMesAnioAnteriorLlantas, 2).Name}) /12" worksheet.Cells(IdxMesAnioAnteriorLlantas, 5).Formula = $"=+(({worksheet.Cells(IdxMesAnioAnteriorLlantas, 1).Name} * 1) - {worksheet.Cells(IdxMesAnioAnteriorLlantas, 2).Name}) /12" worksheet.Cells(IdxMesAnioAnteriorLlantas, 6).Formula = $"=+({worksheet.Cells(IdxMesAnioAnteriorLlantas, 2).Name} / {worksheet.Cells(IdxMesAnioAnteriorLlantas, 1).Name}) - 1" Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxMesAnioAnteriorLlantas, 0, IdxMesAnioAnteriorLlantas, 6).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_-;_-* ""-""??_-;_-@_-" IdxMesAnioAnteriorLlantas += 1 Next DtMesAnioAnteriorLLantas.Dispose() #End Region #Region "A Ñ O A N T E R I O R" Dim IdxRefAnioAnteriorLlantas As Integer = IdxRefMesAnioAnteriorLlantas Dim columnRefAnioAnterior As Integer = 9 worksheet.Cells(IdxRefAnioAnteriorLlantas, columnRefAnioAnterior).Value = "Sucursal" worksheet.Cells(IdxRefAnioAnteriorLlantas, columnRefAnioAnterior + 1).Value = (FechaConsulta.Year - 1).ToString() worksheet.Cells(IdxRefAnioAnteriorLlantas, columnRefAnioAnterior + 2).Value = FechaConsulta.Year.ToString() worksheet.Cells(IdxRefAnioAnteriorLlantas, columnRefAnioAnterior + 3).Value = "Dif" Dim StyleTitleTable4 = worksheet.Cells.GetSubrangeAbsolute(IdxRefAnioAnteriorLlantas, columnRefAnioAnterior, IdxRefAnioAnteriorLlantas, columnRefAnioAnterior + 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, columnRefAnioAnterior).Value = Row("Grupo") worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 1).Value = Row("LLantasAnioAnterior") worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 2).Value = Row("LLantas") worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 3).Formula = $"=({worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 1).Name} - {worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 2).Name})" Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxAnioAnteriorLlantas, columnRefAnioAnterior, IdxAnioAnteriorLlantas, columnRefAnioAnterior + 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_-;-* 0-;_-* ""-""??_-;_-@_-" 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, columnRefAnioAnterior).Value = Row("Grupo") worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 1).Value = Row("LLantasAnioAnterior") worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 2).Value = Row("LLantas") worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 3).Formula = $"=(+{worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 1).Name} - {worksheet.Cells(IdxAnioAnteriorLlantas, columnRefAnioAnterior + 2).Name})" Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxAnioAnteriorLlantas, columnRefAnioAnterior, IdxAnioAnteriorLlantas, columnRefAnioAnterior + 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 #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 = IdxMesAnioAnteriorLlantas + 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("ManoObraCantidadAnterior") worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 11).Value = Row("ManoObraCantidadDia") 'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 12).Value = Row("ManoObraCantidadAcumulada") worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 12).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 10).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 11).Name})" Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesServiciosAmortPolizas, 0, IdxSucursalesServiciosAmortPolizas, 9).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_-;-* 0-;_-* ""-""??_-;_-@_-" Dim StyleDataVenta = worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesServiciosAmortPolizas, 10, IdxSucursalesServiciosAmortPolizas, 12).Style StyleDataVenta.Font.Weight = ExcelFont.BoldWeight StyleDataVenta.Font.Name = "Calibri" StyleDataVenta.Font.Size = 8 * 20 StyleDataVenta.VerticalAlignment = VerticalAlignmentStyle.Center StyleDataVenta.HorizontalAlignment = HorizontalAlignmentStyle.Center StyleDataVenta.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin) StyleDataVenta.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) Dim StyleDatInst = worksheet.Cells.GetSubrangeAbsolute(IdxPorcentajes, 1, IdxPorcentajes, 1).Style StyleDatInst.NumberFormat = "_-* 0_-;-* 0-;_-* ""-""??_-;_-@_-" Dim StyleDatPol = worksheet.Cells.GetSubrangeAbsolute(IdxPorcentajes, 3, IdxPorcentajes, 3).Style StyleDatPol.NumberFormat = "_-* 0_-;-* 0-;_-* ""-""??_-;_-@_-" Dim StyleDatAli = worksheet.Cells.GetSubrangeAbsolute(IdxPorcentajes, 5, IdxPorcentajes, 5).Style StyleDatAli.NumberFormat = "_-* 0_-;-* 0-;_-* ""-""??_-;_-@_-" '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 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_{FechaConsulta.ToString("dd_MM_yyyy")}.xlsx", SaveOptions.XlsxDefault) Catch ex As Exception OnError("Ocurrió un error al generar el reporte", ex) End Try 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