diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 03880cf97..57b5d06c1 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -5490,7 +5490,7 @@ Public Class ClsInventarios End Try Return Retorno End Function - Public Function AddCamiones(Placa As String, Especificacion As String, CveEmpresa As Integer, Optional ConfigCartaPorte As String = "", Optional Anio As Integer = 0, Optional TipoPermisoSCT As String = "", Optional NumPermisoSCT As String = "", Optional NombreAseguradora As String = "", Optional NumPolizaSeguro As String = "") As Boolean + Public Function AddCamiones(Placa As String, Especificacion As String, CveEmpresa As Integer, ConfigCartaPorte As String, Anio As Integer, TipoPermisoSCT As String, NumPermisoSCT As String, NombreAseguradora As String, NumPolizaSeguro As String, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_CamionesAdd") With SqlAdapter.SelectCommand.Parameters @@ -5503,6 +5503,7 @@ Public Class ClsInventarios .Add("@NombreAseguradora", SqlDbType.VarChar).Value = NombreAseguradora .Add("@NumPolizaSeguro", SqlDbType.VarChar).Value = NumPolizaSeguro .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario End With Try SqlAdapter.Fill(Data) @@ -5512,11 +5513,12 @@ Public Class ClsInventarios End Try Return Retorno End Function - Public Function RemoveCamiones(CveCamion As Integer) As Boolean + Public Function RemoveCamiones(CveCamion As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_CamionesRemove") With SqlAdapter.SelectCommand.Parameters .Add("@CveCamion", SqlDbType.Int).Value = CveCamion + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa End With Try SqlAdapter.Fill(Data) @@ -5526,7 +5528,7 @@ Public Class ClsInventarios End Try Return Retorno End Function - Public Function UpdateCamiones(CveCamion As Integer, Placa As String, Especificacion As String, Optional ConfigCartaPorte As String = "", Optional Anio As Integer = 0, Optional TipoPermisoSCT As String = "", Optional NumPermisoSCT As String = "", Optional NombreAseguradora As String = "", Optional NumPolizaSeguro As String = "") As Boolean + Public Function UpdateCamiones(CveCamion As Integer, Placa As String, Especificacion As String, ConfigCartaPorte As String, Anio As Integer, TipoPermisoSCT As String, NumPermisoSCT As String, NombreAseguradora As String, NumPolizaSeguro As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_CamionesUpdate") With SqlAdapter.SelectCommand.Parameters @@ -5539,6 +5541,8 @@ Public Class ClsInventarios .Add("@NumPermisoSCT", SqlDbType.VarChar).Value = NumPermisoSCT .Add("@NombreAseguradora", SqlDbType.VarChar).Value = NombreAseguradora .Add("@NumPolizaSeguro", SqlDbType.VarChar).Value = NumPolizaSeguro + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa End With Try SqlAdapter.Fill(Data) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 555f3d41d..463bc6529 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -4812,6 +4812,9 @@ Public Class ClsPaginas PaginaDict.Add("/Inventarios/RecepcionDevolucion.aspx".ToUpper(), 696) PaginaDict.Add("/Inventarios/RepExistenciaLote.aspx".ToUpper(), 109) + PaginaDict.Add("/Inventarios/CatUnidades.aspx".ToUpper(), 2056) + + #End Region #Region "MF" diff --git a/Inventarios/CatUnidades.aspx b/Inventarios/CatUnidades.aspx new file mode 100644 index 000000000..ee2be878c --- /dev/null +++ b/Inventarios/CatUnidades.aspx @@ -0,0 +1,163 @@ +<%@ Page Title="Catálogo de Unidades" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CatUnidades.aspx.vb" Inherits="Inventarios_CatUnidades" %> + +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> + + + + + + + + + Catálogo de Unidades + + + + + + + +
  • + +
  • +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Inventarios/CatUnidades.aspx.vb b/Inventarios/CatUnidades.aspx.vb new file mode 100644 index 000000000..50c0f88ac --- /dev/null +++ b/Inventarios/CatUnidades.aspx.vb @@ -0,0 +1,167 @@ +Imports Extensiones +Partial Class Inventarios_CatUnidades + Inherits ClsPaginas + + Private Property CveCamion As Integer + Get + + If ViewState("CveCamion") Is Nothing Then + Return -1 + Else + Return ViewState("CveCamion").ToString().ToEntero() + End If + End Get + Set(ByVal value As Integer) + ViewState("CveCamion") = value + End Set + End Property + + Private Sub Catalogos_CatPtoSubFunsion_Load(sender As Object, e As EventArgs) Handles Me.Load + If Not Page.IsPostBack Then + CargaCombos() + CargaDatos() + End If + End Sub + + Public Sub CargaDatos() + + + Dim ObjInventarios As New ClsInventarios + + If ObjInventarios.GetCamiones(-1, UsuarioActual.CveEmpresa) Then + GvDatos.DataSource = ObjInventarios.DtResultados + Else + GvDatos.DataSource = Nothing + End If + + ObjInventarios.Dispose() + GvDatos.DataBind() + UpDatos.Update() + + + End Sub + + Private Sub CargaCombos() + + Using ObjGral As New ClsGenerales + If ObjGral.GetCartaPorteConfigAutoTransportes() Then + DdlConfigAuto.DataSource = ObjGral.DtResultados + End If + End Using + + DdlConfigAuto.DataBind() + + UpModalUnidades.Update() + + End Sub + + + Protected Sub LnkAgregarUnidad_Click(sender As Object, e As EventArgs) + + CveCamion = -1 + + BtnAgregarCamion.Text = "Agregar" + + TxtPlacaNuevo.Text = "" + TxtEspecificacionNuevo.Text = "" + TxtEspecificacionNuevo.Text = "" + DdlConfigAuto.SelectedValueExist(-1) + + TxtAnio.Text = "" + TxtTipoPermisoSCT.Text = "" + TxtNumermisoSCT.Text = "" + TxtNombreAseguradora.Text = "" + TxtNumPolizaSeguro.Text = "" + + LtlTituloModal.Text = "Agregar Unidad" + + UpModalUnidades.Update() + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarUnidad")) + End Sub + + Protected Sub LnkEditar_Click(sender As Object, e As EventArgs) + + BtnAgregarCamion.Text = "Actualizar" + Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) + + CveCamion = GvRow.DataKey("CveCamion").ToEntero() + + + TxtPlacaNuevo.Text = GvRow.DataKey("Placa") + TxtEspecificacionNuevo.Text = GvRow.DataKey("Especificacion") + + DdlConfigAuto.SelectedValueExist(GvRow.DataKey("ConfigCartaPorte")) + + TxtAnio.Text = GvRow.DataKey("Anio") + TxtTipoPermisoSCT.Text = GvRow.DataKey("TipoPermisoSCT") + TxtNumermisoSCT.Text = GvRow.DataKey("NumPermisoSCT") + TxtNombreAseguradora.Text = GvRow.DataKey("NombreAseguradora") + TxtNumPolizaSeguro.Text = GvRow.DataKey("NumPolizaSeguro") + + LtlTituloModal.Text = "Actualizar Unidad" + + UpModalUnidades.Update() + + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarUnidad")) + End Sub + + Protected Sub LnkEliminar_Click(sender As Object, e As EventArgs) + + Dim ErrorAlElimiar As Boolean = False + + Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow) + + Dim CveCamionEliminar = GvRow.DataKey("CveCamion").ToEntero() + + Dim ObjInventarios As New ClsInventarios + + If (ObjInventarios.RemoveCamiones(CveCamionEliminar, UsuarioActual.CveEmpresa)) Then + + UpDatos.Update() + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarUnidad")) + Alert("Unidad Eliminada Correctamente") + Else + ErrorAlElimiar = True + End If + + ObjInventarios.Dispose() + + If Not ErrorAlElimiar Then + CargaDatos() + End If + + End Sub + + Protected Sub BtnAgregarCamion_Click(sender As Object, e As EventArgs) + + Dim ErrorPrceso As Boolean = False + + Dim ObjInventarios As New ClsInventarios + + If CveCamion <= 0 Then + If ObjInventarios.AddCamiones(TxtPlacaNuevo.Text, TxtEspecificacionNuevo.Text, UsuarioActual.CveEmpresa, DdlConfigAuto.SelectedValue, TxtAnio.Text.ToEntero(), TxtTipoPermisoSCT.Text, TxtNumermisoSCT.Text, TxtNombreAseguradora.Text, TxtNumPolizaSeguro.Text, UsuarioActual.CveUsuario) Then + Alert("Unidad agregada correctamente") + Else + ErrorPrceso = True + End If + Else + If ObjInventarios.UpdateCamiones(CveCamion, TxtPlacaNuevo.Text, TxtEspecificacionNuevo.Text, DdlConfigAuto.SelectedValue, TxtAnio.Text.ToEntero(), TxtTipoPermisoSCT.Text, TxtNumermisoSCT.Text, TxtNombreAseguradora.Text, TxtNumPolizaSeguro.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + Alert("Unidad actualizada correctamente") + Else + ErrorPrceso = True + End If + End If + + + If Not ErrorPrceso Then + CargaDatos() + End If + + UpDatos.Update() + + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarUnidad")) + + End Sub + + +End Class diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 2fb2b064c..f30f86748 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -3278,7 +3278,7 @@ Partial Class Inventarios_TraspasoAlmacen End Sub Public Sub BtnAgregarCamion_Click(sender As Object, e As EventArgs) Handles BtnAgregarCamion.Click Dim ObjInventarios As New ClsInventarios - If ObjInventarios.AddCamiones(TxtPlacaNuevo.Text, TxtEspecificacionNuevo.Text, ConfigCartaPorte:=DdlConfigAuto.SelectedValue, Anio:=TxtAnio.Text.ToEntero(), TipoPermisoSCT:=TxtTipoPermisoSCT.Text, NumPermisoSCT:=TxtNumermisoSCT.Text, NombreAseguradora:=TxtNombreAseguradora.Text, NumPolizaSeguro:=TxtNumPolizaSeguro.Text, CveEmpresa:=UsuarioActual.CveEmpresa) Then + If ObjInventarios.AddCamiones(TxtPlacaNuevo.Text, TxtEspecificacionNuevo.Text, ConfigCartaPorte:=DdlConfigAuto.SelectedValue, Anio:=TxtAnio.Text.ToEntero(), TipoPermisoSCT:=TxtTipoPermisoSCT.Text, NumPermisoSCT:=TxtNumermisoSCT.Text, NombreAseguradora:=TxtNombreAseguradora.Text, NumPolizaSeguro:=TxtNumPolizaSeguro.Text, CveEmpresa:=UsuarioActual.CveEmpresa, CveUsuario:=UsuarioActual.CveUsuario) Then RegistraScript("$('#DivAgregarNuevoCamion').modal('hide');") CargarCamiones() LimpiarAgregarCamion() diff --git a/Ventas/RepComisionesServec.aspx b/Ventas/RepComisionesServec.aspx index 86fcd5566..7a78e2c55 100644 --- a/Ventas/RepComisionesServec.aspx +++ b/Ventas/RepComisionesServec.aspx @@ -10,6 +10,18 @@ + + + +
  • + Generar Excel +
  • +
    + + + +
    +
    @@ -23,20 +35,23 @@
    - -
    + + +
    - -
    - + + +
    +
    - -
    + + +
    @@ -50,7 +65,8 @@
    - + +
    @@ -65,6 +81,7 @@
    +
    diff --git a/Ventas/RepComisionesServec.aspx.vb b/Ventas/RepComisionesServec.aspx.vb index 594a94faa..92a427978 100644 --- a/Ventas/RepComisionesServec.aspx.vb +++ b/Ventas/RepComisionesServec.aspx.vb @@ -3,6 +3,8 @@ Option Strict On Imports Extensiones Imports System.Data +Imports System.IO +Imports GemBox.Spreadsheet Partial Class Ventas_RepComisionesServec Inherits ClsPaginas @@ -35,17 +37,31 @@ Partial Class Ventas_RepComisionesServec End Sub Private Sub CargaDatos() + + LnkExportar.Visible = False + Dim FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha) Dim FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha) Dim ObjVentas As New ClsVentas() If ObjVentas.GetRepComisionesServec(DdlVendedor.SelectedValue.ToEntero, FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjVentas.DtResultados + + If ObjVentas.DtResultados.Rows.Count > 0 Then + LnkExportar.Visible = True + End If + Else GvDatos.DataSource = Nothing - End If + End If + ObjVentas.Dispose() GvDatos.DataBind() + + + UpAcciones.Update() + UPDatos.Update() + End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound @@ -60,4 +76,118 @@ Partial Class Ventas_RepComisionesServec e.Row.FCHyperLink("HLVendedor").NavigateUrl = String.Format("/Ventas/RepComisionesServecDetalle.aspx?CveVendedor={0}&CveSubProyecto={1}&FechaI={2:dd/MM/yyy}&FechaF={3:dd/MM/yyy}", e.Row.DBCampo("CveVendedor"), DdlSubProyecto.SelectedValue, If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha), If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha)) End If End Sub + + Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) + End Sub + + + Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) + + Dim StrFiltro As New StringBuilder + + StrFiltro.AppendFormat(" Vendedor: {0}, ", DdlVendedor.SelectedItem.Text) + StrFiltro.AppendFormat(" Sucursal: {0}, ", DdlSubProyecto.SelectedItem.Text) + StrFiltro.AppendFormat(" Fecha Inicio: {0}, ", txtFechaI.Text) + StrFiltro.AppendFormat(" Fecha Fin: {0}", txtFechaF.Text) + + ExportToExcelG(GvDatos, $"ReporteComisiones{Now.ToString("yyyyMMddhhmmss")}.xlsx", "", UsuarioActual, StrFiltro.ToString, 100, 200) + End Sub + + + Public Sub ExportToExcelG(Gv As GridView, NombreArchivoXLSx As String, Optional Titulo As String = "Reporte", Optional Usuario As Usuario = Nothing, Optional Filtros As String = "", Optional AlturaImagen As Double = 100, Optional AnchoImagen As Double = 100) + Dim sw As New StringWriter() + Dim htw As New HtmlTextWriter(sw) + + Gv.RenderControl(htw) + GemBox.Spreadsheet.SpreadsheetInfo.SetLicense("ESWN-4QFD-26JF-1SZ8") + + Dim excel As GemBox.Spreadsheet.ExcelFile + Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault + + Using htmlStream = New MemoryStream(options.Encoding.GetBytes(sw.ToString())) + excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream, options) + If Usuario IsNot Nothing Then + Dim TotalRowHeader As Integer = 8 + Dim TotalRowFooter As Integer = 2 + + Dim worksheet = excel.Worksheets(0) + + worksheet.Columns("A").Width = 15000 + + worksheet.Columns("B").Width = 7500 + worksheet.Columns("C").Width = 5000 + worksheet.Columns("D").Width = 5000 + worksheet.Columns("E").Width = 5000 + + worksheet.Rows.InsertEmpty(0, TotalRowHeader) + Dim celdasConTexto = worksheet.GetUsedCellRange(True) + celdasConTexto.Style.Font.Name = "Calibri Light" + + Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex) + RangoNombreEmpresa.Merged = True + RangoNombreEmpresa.Value = Usuario.Empresa.Empresa + RangoNombreEmpresa.Style.Font.Size = 18 * 20 + RangoNombreEmpresa.Style.Font.Name = "Calibri Light" + RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + + Dim RangoFiltros = worksheet.Cells.GetSubrangeAbsolute(6, celdasConTexto.FirstColumnIndex, 6, celdasConTexto.LastColumnIndex) + RangoFiltros.Merged = True + RangoFiltros.Value = Filtros + RangoFiltros.Style.Font.Size = 15 * 20 + RangoFiltros.Style.Font.Name = "Calibri Light" + RangoFiltros.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left + RangoFiltros.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + + Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex) + RangoTitulo.Merged = True + RangoTitulo.Value = Titulo + RangoTitulo.Style.Font.Size = 20 * 20 + RangoTitulo.Style.Font.Name = "Calibri Light" + RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex + worksheet.Rows(8).Cells(i).Style.Font.Size = 12 * 20 + worksheet.Rows(8).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + worksheet.Rows(8).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + worksheet.Rows(8).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)) + worksheet.Rows(8).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255) + If i > 0 Then + Try + ' worksheet.Columns(i).AutoFit(1) + Catch ex As Exception + End Try + End If + Next + + Dim IndexEndTable As Integer = Gv.Rows.Count + TotalRowHeader + TotalRowFooter + + worksheet.Rows(IndexEndTable).Cells(0).Value = "Usuario Imprimió" + worksheet.Rows(IndexEndTable + 1).Cells(0).Value = Usuario.Nombre + + worksheet.Rows(IndexEndTable).Cells(3).Value = "Fecha Impresión" + worksheet.Rows(IndexEndTable + 1).Cells(3).Value = DateTime.Now.ToString("dd/MM/yyyy") + + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)) + + If Imagen.Exists Then + Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta) + Using sr As New StreamReader(Ruta) + Dim ms As New MemoryStream() + sr.BaseStream.CopyTo(ms) + worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel) + End Using + End If + End If + + End Using + htw.Dispose() + + excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx") + + End Sub + End Class diff --git a/Ventas/RepComisionesServecDetalle.aspx b/Ventas/RepComisionesServecDetalle.aspx index a46f8fd72..7cb92daef 100644 --- a/Ventas/RepComisionesServecDetalle.aspx +++ b/Ventas/RepComisionesServecDetalle.aspx @@ -10,6 +10,18 @@ + + + +
  • + Generar Excel +
  • +
    + + + +
    +
    @@ -23,20 +35,21 @@
    - -
    + + +
    - -
    - + +
    +
    - -
    + +
    @@ -50,7 +63,7 @@
    - +
    diff --git a/Ventas/RepComisionesServecDetalle.aspx.vb b/Ventas/RepComisionesServecDetalle.aspx.vb index 9ba00bafd..c4b69ae2e 100644 --- a/Ventas/RepComisionesServecDetalle.aspx.vb +++ b/Ventas/RepComisionesServecDetalle.aspx.vb @@ -3,6 +3,8 @@ Option Strict On Imports Extensiones Imports System.Data +Imports System.IO +Imports GemBox.Spreadsheet Partial Class Ventas_RepComisionesServecDetalle Inherits ClsPaginas @@ -53,12 +55,22 @@ Partial Class Ventas_RepComisionesServecDetalle End Sub Private Sub CargaDatos() + + LnkExportar.Visible = False + + Dim FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha) Dim FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha) Dim ObjVentas As New ClsVentas() If ObjVentas.GetRepComisionesServecDetalle(DdlVendedor.SelectedValue.ToEntero, FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjVentas.DtResultados + + + If ObjVentas.DtResultados.Rows.Count > 0 Then + LnkExportar.Visible = True + End If + Else GvDatos.DataSource = Nothing End If @@ -82,4 +94,126 @@ Partial Class Ventas_RepComisionesServecDetalle End If End Sub + + + + + Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) + + Dim StrFiltro As New StringBuilder + + StrFiltro.AppendFormat(" Vendedor: {0}, ", DdlVendedor.SelectedItem.Text) + StrFiltro.AppendFormat(" Sucursal: {0}, ", DdlSubProyecto.SelectedItem.Text) + StrFiltro.AppendFormat(" Fecha Inicio: {0}, ", txtFechaI.Text) + StrFiltro.AppendFormat(" Fecha Fin: {0}", txtFechaF.Text) + + ExportToExcelG(GvDatos, $"ReporteComisiones{Now.ToString("yyyyMMddhhmmss")}.xlsx", "", UsuarioActual, StrFiltro.ToString, 100, 200) + End Sub + + + Public Sub ExportToExcelG(Gv As GridView, NombreArchivoXLSx As String, Optional Titulo As String = "Reporte", Optional Usuario As Usuario = Nothing, Optional Filtros As String = "", Optional AlturaImagen As Double = 100, Optional AnchoImagen As Double = 100) + Dim sw As New StringWriter() + Dim htw As New HtmlTextWriter(sw) + + Gv.RenderControl(htw) + GemBox.Spreadsheet.SpreadsheetInfo.SetLicense("ESWN-4QFD-26JF-1SZ8") + + Dim excel As GemBox.Spreadsheet.ExcelFile + Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault + + Using htmlStream = New MemoryStream(options.Encoding.GetBytes(sw.ToString())) + excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream, options) + If Usuario IsNot Nothing Then + Dim TotalRowHeader As Integer = 8 + Dim TotalRowFooter As Integer = 2 + + Dim worksheet = excel.Worksheets(0) + + worksheet.Columns("A").Width = 7000 + worksheet.Columns("B").Width = 3500 + worksheet.Columns("C").Width = 3500 + worksheet.Columns("D").Width = 3500 + worksheet.Columns("E").Width = 3500 + worksheet.Columns("F").Width = 3500 + worksheet.Columns("G").Width = 3500 + worksheet.Columns("H").Width = 3500 + worksheet.Columns("I").Width = 3500 + worksheet.Columns("J").Width = 3500 + worksheet.Columns("K").Width = 3500 + + worksheet.Rows.InsertEmpty(0, TotalRowHeader) + Dim celdasConTexto = worksheet.GetUsedCellRange(True) + celdasConTexto.Style.Font.Name = "Calibri Light" + + Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex) + RangoNombreEmpresa.Merged = True + RangoNombreEmpresa.Value = Usuario.Empresa.Empresa + RangoNombreEmpresa.Style.Font.Size = 18 * 20 + RangoNombreEmpresa.Style.Font.Name = "Calibri Light" + RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + + Dim RangoFiltros = worksheet.Cells.GetSubrangeAbsolute(6, celdasConTexto.FirstColumnIndex, 6, celdasConTexto.LastColumnIndex) + RangoFiltros.Merged = True + RangoFiltros.Value = Filtros + RangoFiltros.Style.Font.Size = 15 * 20 + RangoFiltros.Style.Font.Name = "Calibri Light" + RangoFiltros.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left + RangoFiltros.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + + Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex) + RangoTitulo.Merged = True + RangoTitulo.Value = Titulo + RangoTitulo.Style.Font.Size = 20 * 20 + RangoTitulo.Style.Font.Name = "Calibri Light" + RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex + worksheet.Rows(8).Cells(i).Style.Font.Size = 12 * 20 + worksheet.Rows(8).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + worksheet.Rows(8).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + worksheet.Rows(8).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)) + worksheet.Rows(8).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255) + If i > 0 Then + Try + ' worksheet.Columns(i).AutoFit(1) + Catch ex As Exception + End Try + End If + Next + + Dim IndexEndTable As Integer = Gv.Rows.Count + TotalRowHeader + TotalRowFooter + + worksheet.Rows(IndexEndTable).Cells(0).Value = "Usuario Imprimió" + worksheet.Rows(IndexEndTable + 1).Cells(0).Value = Usuario.Nombre + + worksheet.Rows(IndexEndTable).Cells(8).Value = "Fecha Impresión" + worksheet.Rows(IndexEndTable + 1).Cells(8).Value = DateTime.Now.ToString("dd/MM/yyyy") + + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)) + + If Imagen.Exists Then + Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta) + Using sr As New StreamReader(Ruta) + Dim ms As New MemoryStream() + sr.BaseStream.CopyTo(ms) + worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel) + End Using + End If + End If + + End Using + htw.Dispose() + + excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx") + + End Sub + + + Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) + End Sub + End Class