Descarga de Reporte Diario en Excel E141

This commit is contained in:
2021-06-01 11:03:00 -07:00
parent 8252d8365b
commit 5edf6c69bc
2 changed files with 444 additions and 41 deletions

View File

@@ -67,6 +67,9 @@
<li>
<asp:LinkButton ID="ImgExcel" runat="server"> <i class="fa fa-file-excel-o" style="font-weight:bold;"></i> Excel</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkRepDiario" runat="server" Visible="false" OnClick="LnkRepDiario_Click"> <i class="fa fa-file-o" style="font-weight:bold;"></i> Reporte Diario</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
@@ -134,33 +137,32 @@
</div>
</div>
</div>
<div class="portlet-body" style="display: none">
<div class="row">
<label class="col-md-1 truncate">Productos Servicios:</label>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width:55%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
<label class="col-md-1 truncate">Clasificación:</label>
<div class="col-md-2">
<asp:ListBox ID="DdlClasificacion" AutoPostBack="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me" runat="server" AppendDataBoundItems="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Style="width: 100%" data-text="Todos" SelectionMode="Multiple">
</asp:ListBox>
</div>
<label runat="server" id="LblLinea" data-placement="top" class="col-md-1" visible="false">Linea:</label>
<div runat="server" id="DivLinea" class="col-md-2" visible="false">
<asp:ListBox ID="DdlLinea" CssClass="select2me" runat="server" DataTextField="ClasificacionDetalle" DataValueField="CveClasificacionDetalle" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
</div>
<label runat="server" id="LblMarca" title="Proveedor" data-toggle="tooltip" data-placement="top" class="col-md-1" visible="false">Marca:</label>
<div runat="server" id="DivMarca" class="col-md-2" visible="false">
<asp:ListBox ID="DdlMarcaPSDes" CssClass="select2me" runat="server" DataTextField="Marca" DataValueField="CveMarca" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
</div>
</div>
<asp:Panel ID="pnlOrden" Visible="false" runat="server" CssClass="row">
<label class="col-md-1 truncate">Productos Servicios:</label>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width:55%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
<label class="col-md-1 truncate">Clasificación:</label>
<div class="col-md-2">
<asp:ListBox ID="DdlClasificacion" AutoPostBack="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me" runat="server" AppendDataBoundItems="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
</div>
<label runat="server" id="LblLinea" data-placement="top" class="col-md-1" visible="false">Linea:</label>
<div runat="server" id="DivLinea" class="col-md-2" visible="false">
<asp:ListBox ID="DdlLinea" CssClass="select2me" runat="server" DataTextField="ClasificacionDetalle" DataValueField="CveClasificacionDetalle" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
</div>
<label runat="server" id="LblMarca" title="Proveedor" data-toggle="tooltip" data-placement="top" class="col-md-1" visible="false">Marca:</label>
<div runat="server" id="DivMarca" class="col-md-2" visible="false">
<asp:ListBox ID="DdlMarcaPSDes" CssClass="select2me" runat="server" DataTextField="Marca" DataValueField="CveMarca" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
</div>
</div>
<asp:Panel ID="pnlOrden" Visible="false" runat="server" CssClass="row">
<label class="col-md-1 truncate">Orden:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlOrden" runat="server" CssClass="select2me" Width="100%">
@@ -180,7 +182,7 @@
</div>
</div>
</div>--%>
</asp:Panel>
</asp:Panel>
</div>
</div>
</ContentTemplate>
@@ -190,14 +192,13 @@
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron productos con los filtros especificados" ToolTip="Listado de Ventas"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-sort="true" Style="text-align: center;" GridLines="None" Width="99%">
<Columns>
<asp:TemplateField HeaderText="Grupo" ItemStyle-HorizontalAlign="Left">
<asp:TemplateField HeaderText="Grupo" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtlGrupo" runat="server" Text='<%# Eval("GPO") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left">
<HeaderTemplate >
<asp:TemplateField ItemStyle-HorizontalAlign="Left">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlGrupoPS" runat="server" Text='<%# Eval("PS") %>'></asp:Literal>

View File

@@ -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