220 lines
9.6 KiB
VB.net
220 lines
9.6 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports Extensiones
|
|
Imports System.Data
|
|
Imports System.IO
|
|
Imports GemBox.Spreadsheet
|
|
|
|
Partial Class Ventas_RepComisionesServecDetalle
|
|
Inherits ClsPaginas
|
|
|
|
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
|
If Not IsPostBack Then
|
|
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
|
|
DdlSubProyecto.DataBind()
|
|
|
|
InicializaValores()
|
|
CargaParametrosDetalle()
|
|
End If
|
|
End Sub
|
|
|
|
#Region " INICIALIZA VALORES "
|
|
|
|
Private Sub InicializaValores()
|
|
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
|
|
DdlVendedor.DataBind()
|
|
End Sub
|
|
|
|
Private Sub CargaParametrosDetalle()
|
|
Dim CveVendedor, CveSubProyecto, FechaI, FechaF As String
|
|
|
|
CveVendedor = If(Request("CveVendedor") IsNot Nothing AndAlso Request("CveVendedor").ToEntero() > 0, Request("CveVendedor").ToEntero(), -1).ToString
|
|
CveSubProyecto = If(Request("CveSubProyecto") IsNot Nothing AndAlso Request("CveSubProyecto").ToEntero() > 0, Request("CveSubProyecto").ToEntero(), -1).ToString
|
|
|
|
FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString
|
|
FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString
|
|
|
|
DdlVendedor.SelectedValueExist(CveVendedor)
|
|
DdlSubProyecto.SelectedValueExist(CveSubProyecto)
|
|
|
|
If FechaI <> "-1" Then
|
|
txtFechaI.Text = FechaI
|
|
End If
|
|
If FechaF <> "-1" Then
|
|
txtFechaF.Text = FechaF
|
|
End If
|
|
CargaDatos()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click
|
|
CargaDatos()
|
|
UPDatos.Update()
|
|
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
|
|
ObjVentas.Dispose()
|
|
GvDatos.DataBind()
|
|
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("TipoFila").ToString.ToEntero()
|
|
Case 1
|
|
e.Row.CssClass = "Totales"
|
|
Case 2
|
|
e.Row.CssClass = "SubTotales"
|
|
Case 3
|
|
e.Row.CssClass = "SubTotales2"
|
|
Case 4
|
|
e.Row.FCHyperLink("HLGrupo").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DBCampo("CveVenta"))
|
|
End Select
|
|
|
|
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{NowADS().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 = NowADS().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
|