GPS. Mejores reporte de punto de interes
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
Imports Extensiones
|
||||
Imports System.Data
|
||||
Imports Microsoft.Reporting.WebForms
|
||||
Imports GemBox.Spreadsheet
|
||||
|
||||
Partial Class GPS_RepPuntosDeInteres
|
||||
Inherits ClsPaginas
|
||||
@@ -24,6 +25,14 @@ Partial Class GPS_RepPuntosDeInteres
|
||||
ViewState("DtDatosReporte") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property DtVisitas As DataTable
|
||||
Get
|
||||
Return If(IsNothing(ViewState("DtVisitas")), Nothing, CType(ViewState("DtVisitas"), DataTable))
|
||||
End Get
|
||||
Set(value As DataTable)
|
||||
ViewState("DtVisitas") = value
|
||||
End Set
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
@@ -32,6 +41,7 @@ Partial Class GPS_RepPuntosDeInteres
|
||||
End If
|
||||
End Sub
|
||||
Private Sub CargaDatos()
|
||||
DtDatosReporte = Nothing
|
||||
txtFechaF.Text = Now.ToString("dd/MM/yyyy")
|
||||
txtFechaI.Text = Now.AddDays(-7).ToString("dd/MM/yyyy")
|
||||
|
||||
@@ -66,6 +76,11 @@ Partial Class GPS_RepPuntosDeInteres
|
||||
End Sub
|
||||
|
||||
Private Sub ReportePuntos(Dispositivos As String)
|
||||
'LIMPIAR REPORTE
|
||||
If DtDatosReporte IsNot Nothing Then
|
||||
DtDatosReporte.Dispose()
|
||||
DtDatosReporte = Nothing
|
||||
End If
|
||||
|
||||
Dim FechaI, FechaF As Date
|
||||
Dim SBBody As New StringBuilder
|
||||
@@ -83,11 +98,15 @@ Partial Class GPS_RepPuntosDeInteres
|
||||
Try
|
||||
For Each row As GridViewRow In GvPuntos.Rows
|
||||
SBBody.Clear()
|
||||
|
||||
If row.FCCheckBox("chkGR").Checked Then
|
||||
If ObjGPS.RepPuntosGet(row.DataKey("CvePuntoDeInteres").ToEntero, Dispositivos, txtFechaI.Text.ToDateTime, txtFechaF.Text.ToDateTime, UsuarioActual.CveCliente) Then
|
||||
|
||||
DtDatosReporte = ObjGPS.DtResultados.Copy()
|
||||
GvBarra.DataSource = DtDatosReporte
|
||||
If DtDatosReporte IsNot Nothing Then
|
||||
DtDatosReporte.Merge(ObjGPS.DtResultados)
|
||||
Else
|
||||
DtDatosReporte = ObjGPS.DtResultados.Copy()
|
||||
End If
|
||||
|
||||
Coords = SQLToGmaps(row.DataKey("Punto").ToString, "POINT")
|
||||
SBBody.Append($"<div>")
|
||||
@@ -98,7 +117,7 @@ Partial Class GPS_RepPuntosDeInteres
|
||||
SBBody.Append($"<div><table>")
|
||||
For Each Cve As String In DispositivosLista
|
||||
If ObjGPS.DtResultados.FiltraParametros($"CveDispositivo = {Cve} ").Rows.Count > 0 Then
|
||||
SBBody.Append($"<tr><td><b>{ObjGPS.DtResultados.FiltroPrimeroValor("Vehiculo", $"CveDispositivo = {Cve}")}:</b> <a onclick=""CargaGV({Cve}, {row.DataKey("CvePuntoDeInteres")} )"">{ObjGPS.DtResultados.FiltroPrimeroValor("Visitas", $"CveDispositivo = {Cve}")} visitas<a></td></tr>")
|
||||
SBBody.Append($"<tr><td><b>{ObjGPS.DtResultados.FiltroPrimeroValor("Vehiculo", $"CveDispositivo = {Cve}")}:</b> <a onclick=""CargaGV({Cve}, {row.DataKey("CvePuntoDeInteres")})"">{ObjGPS.DtResultados.FiltroPrimeroValor("Visitas", $"CveDispositivo = {Cve}")} visitas<a></td></tr>")
|
||||
SBBody.Append($"<tr><td>Última Visita: {ObjGPS.DtResultados.FiltroPrimeroValor("UltimaVisita", $"CveDispositivo = {Cve}")}</td></tr>")
|
||||
End If
|
||||
Next
|
||||
@@ -111,7 +130,11 @@ Partial Class GPS_RepPuntosDeInteres
|
||||
RegistraScript($"CreaCirculo({Coords},'{Color}');CreaMarcador({Coords},'{row.DataKey("PuntoDeInteres")}','{SBBody.ToString}');", row.DataKey("CvePuntoDeInteres"))
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
GvBarra.DataSource = DtDatosReporte
|
||||
GvBarra.DataBind()
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al consultar los puntos de interes", ex)
|
||||
End Try
|
||||
@@ -162,13 +185,32 @@ Partial Class GPS_RepPuntosDeInteres
|
||||
|
||||
|
||||
Protected Sub BtnCargarGV_Click(sender As Object, e As EventArgs) Handles BtnCargarGV.Click
|
||||
Dim GPS As New ClsGPS
|
||||
If GPS.RepPuntosDetalleGet(HdnPunto.Value.ToEntero, HdnDispositivo.Value.ToEntero, txtFechaI.Text.ToDateTime, txtFechaF.Text.ToDateTime, UsuarioActual.CveCliente) Then
|
||||
GVHistorico.DataSource = GPS.DtResultados.FiltraParametros("CveEvento = 106")
|
||||
Else
|
||||
GVHistorico.DataSource = Nothing
|
||||
End If
|
||||
GPS.Dispose()
|
||||
DtVisitas = Nothing
|
||||
|
||||
Dim ObjGPS As New ClsGPS
|
||||
Try
|
||||
Dim PuntoInteres As String = "", Vehiculo As String = ""
|
||||
|
||||
If ObjGPS.PuntoDeInteresGet(HdnPunto.Value.ToEntero, UsuarioActual.CveCliente, 1, -1) Then
|
||||
PuntoInteres = ObjGPS.DtResultados.FiltroPrimeroValor("PuntoDeInteres")
|
||||
End If
|
||||
|
||||
Vehiculo = GlobalDTDispositivos(UsuarioActual.CveCliente).FiltroPrimeroValor("NoEconomico", $"CveDispositivo={HdnDispositivo.Value.ToEntero}")
|
||||
|
||||
LblPU.Text = PuntoInteres
|
||||
LblUnidad.Text = Vehiculo
|
||||
|
||||
If ObjGPS.RepPuntosDetalleGet(HdnPunto.Value.ToEntero, HdnDispositivo.Value.ToEntero, txtFechaI.Text.ToDateTime, txtFechaF.Text.ToDateTime, UsuarioActual.CveCliente) Then
|
||||
DtVisitas = ObjGPS.DtResultados.FiltraParametros("CveEvento = 106")
|
||||
GVHistorico.DataSource = DtVisitas
|
||||
Else
|
||||
GVHistorico.DataSource = Nothing
|
||||
End If
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al cargar las visitas", ex)
|
||||
End Try
|
||||
ObjGPS.Dispose()
|
||||
|
||||
GVHistorico.DataBind()
|
||||
UpdatePanel3.Update()
|
||||
RegistraScript("$('#dvHistorico').modal()")
|
||||
@@ -192,21 +234,215 @@ Partial Class GPS_RepPuntosDeInteres
|
||||
|
||||
End Sub
|
||||
Public Sub EnviarReporteProgramado(Format As String)
|
||||
Dim RutaReporte = "Empresas/Grales/ReportesProgramados/RPTPuntosInteres.rdlc"
|
||||
Dim NombreReporte = "ReportePuntosInteres"
|
||||
|
||||
Try
|
||||
Dim RptParametro As New List(Of ReportParameter)
|
||||
RptParametro.Add(New ReportParameter("FechaInicio", txtFechaI.Text))
|
||||
RptParametro.Add(New ReportParameter("FechaFin", txtFechaF.Text))
|
||||
RptParametro.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
||||
RptParametro.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToShortDateString))
|
||||
If Format = "EXCEL" Then
|
||||
Dim filtros As String = $"Fecha Inicio: {txtFechaI.Text}, Fecha Fin: {txtFechaF.Text}"
|
||||
|
||||
Dim retorno = StreamPDF(RutaReporte, DtDatosReporte, RptParametro, $"{NombreReporte}{Date.Now.ToShortDateString}", Format, MR:=Nothing, RDSName:="DsOC")
|
||||
Dim DtImprimir As DataTable = DtDatosReporte.Copy()
|
||||
|
||||
ImprimirbytesPDF(retorno, $"{NombreReporte}{Date.Now.ToShortDateString}", Format)
|
||||
Catch ex As Exception
|
||||
GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
|
||||
End Try
|
||||
End Sub
|
||||
DtImprimir.Columns.Remove(DtImprimir.Columns("CveDispositivo"))
|
||||
|
||||
DtImprimir.Columns("PuntoDeInteres").SetOrdinal(0)
|
||||
DtImprimir.Columns("Vehiculo").SetOrdinal(1)
|
||||
DtImprimir.Columns("UltimaVisita").SetOrdinal(2)
|
||||
DtImprimir.Columns("Visitas").SetOrdinal(3)
|
||||
|
||||
DtImprimir.Columns("PuntoDeInteres").ColumnName = "Punto de Interés"
|
||||
DtImprimir.Columns("Vehiculo").ColumnName = "Vehículo"
|
||||
DtImprimir.Columns("UltimaVisita").ColumnName = "Última Visita"
|
||||
|
||||
ImprimirExcelG(DtImprimir, "ReportePuntosInteres.xlsx", "Reporte de Puntos de Interés", filtros, NombreHoja:="ReportePuntosInteres")
|
||||
Else
|
||||
Dim RutaReporte = "Empresas/Grales/ReportesProgramados/RPTPuntosInteres.rdlc"
|
||||
Dim NombreReporte = "ReportePuntosInteres"
|
||||
Try
|
||||
Dim Nombre As String = ""
|
||||
Dim ObjClientes As New ClsClientes
|
||||
If ObjClientes.GetClientes(UsuarioActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, -1, Estatus:=-1) Then Nombre = ObjClientes.DtResultados.FiltroPrimeroValor("Nombre")
|
||||
ObjClientes.Dispose()
|
||||
|
||||
Dim RptParametro As New List(Of ReportParameter)
|
||||
RptParametro.Add(New ReportParameter("FechaInicio", txtFechaI.Text))
|
||||
RptParametro.Add(New ReportParameter("FechaFin", txtFechaF.Text))
|
||||
RptParametro.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
||||
RptParametro.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToShortDateString))
|
||||
RptParametro.Add(New ReportParameter("Cliente", Nombre))
|
||||
|
||||
'Dim MR = New ReportViewer
|
||||
'MR.LocalReport.EnableHyperlinks = True
|
||||
'MR.HyperlinkTarget = "_blank"
|
||||
|
||||
Dim retorno = StreamPDF(RutaReporte, DtDatosReporte, RptParametro, $"{NombreReporte}{Date.Now.ToShortDateString}", Format, MR:=Nothing, RDSName:="DsOC")
|
||||
|
||||
ImprimirbytesPDF(retorno, $"{NombreReporte}{Date.Now.ToShortDateString}", Format)
|
||||
Catch ex As Exception
|
||||
GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
|
||||
End Try
|
||||
End If
|
||||
|
||||
End Sub
|
||||
Protected Sub LnkImprimirEXCELVisita_Click(sender As Object, e As EventArgs)
|
||||
Dim filtros As String = $"Punto de Interés: {LblPU.Text}, Vehículo: {LblUnidad.Text}"
|
||||
|
||||
Dim DtImprimir As DataTable = DtVisitas.Copy()
|
||||
|
||||
DtImprimir.Columns.Remove(DtImprimir.Columns("CveDispositivoEvento"))
|
||||
DtImprimir.Columns.Remove(DtImprimir.Columns("CveEvento"))
|
||||
DtImprimir.Columns.Remove(DtImprimir.Columns("FechaEvento"))
|
||||
|
||||
DtImprimir.Columns("FechaEntrada").ColumnName = "Fecha Visita"
|
||||
DtImprimir.Columns("Duracion").ColumnName = "Duración (min)"
|
||||
|
||||
ImprimirExcelG(DtImprimir, "HistorialVistas.xlsx", "Historial de vistas", filtros, NombreHoja:="Historial")
|
||||
End Sub
|
||||
|
||||
Private Sub ImprimirExcelG(DtDatos As DataTable, Archivo As String, Titulo As String, Filtros As String, Optional NombreHoja As String = "Hoja1")
|
||||
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
|
||||
Dim excel As ExcelFile = New ExcelFile
|
||||
|
||||
Dim TotalRowHeader As Integer = 8
|
||||
Dim TotalRowFooter As Integer = 2
|
||||
|
||||
Dim item = excel.Worksheets.Add(NombreHoja)
|
||||
item.InsertDataTable(DtDatos, New InsertDataTableOptions() With
|
||||
{
|
||||
.ColumnHeaders = True,
|
||||
.StartRow = 0,
|
||||
.StartColumn = 0
|
||||
})
|
||||
item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
|
||||
item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
|
||||
|
||||
Dim columnCount = item.CalculateMaxUsedColumns()
|
||||
For i = 0 To columnCount
|
||||
item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
|
||||
Next
|
||||
|
||||
|
||||
Dim worksheet = excel.Worksheets(0)
|
||||
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
|
||||
|
||||
Dim Nombre As String = ""
|
||||
|
||||
Dim ObjClientes As New ClsClientes
|
||||
If ObjClientes.GetClientes(UsuarioActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, -1, Estatus:=-1) Then Nombre = ObjClientes.DtResultados.FiltroPrimeroValor("Nombre")
|
||||
ObjClientes.Dispose()
|
||||
|
||||
RangoNombreEmpresa.Value = Nombre
|
||||
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 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
|
||||
|
||||
|
||||
'If FechaIMes.Trim.Length > 0 And FechaFMes.Trim.Length > 0 Then
|
||||
' Dim RangoFechas = worksheet.Cells.GetSubrangeAbsolute(4, celdasConTexto.FirstColumnIndex, 4, celdasConTexto.LastColumnIndex)
|
||||
' RangoFechas.Merged = True
|
||||
' RangoFechas.Value = $"Fechas: {FechaIMes} a {FechaFMes}"
|
||||
' RangoFechas.Style.Font.Size = 15 * 20
|
||||
' RangoFechas.Style.Font.Name = "Calibri Light"
|
||||
' RangoFechas.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
||||
' RangoFechas.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||
'End If
|
||||
|
||||
|
||||
'If SubProyecto.Length > 0 Then
|
||||
' Dim RangoSubProyecto = worksheet.Cells.GetSubrangeAbsolute(5, celdasConTexto.FirstColumnIndex, 5, celdasConTexto.LastColumnIndex)
|
||||
' RangoSubProyecto.Merged = True
|
||||
' RangoSubProyecto.Value = SubProyecto
|
||||
' RangoSubProyecto.Style.Font.Size = 20 * 20
|
||||
' RangoSubProyecto.Style.Font.Name = "Calibri Light"
|
||||
' RangoSubProyecto.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
||||
' RangoSubProyecto.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||
'End If
|
||||
|
||||
|
||||
If Not String.IsNullOrEmpty(Filtros) Then
|
||||
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(6, celdasConTexto.FirstColumnIndex, 6, celdasConTexto.LastColumnIndex)
|
||||
RangoDatoTituloExtra.Merged = True
|
||||
RangoDatoTituloExtra.Value = Filtros
|
||||
RangoDatoTituloExtra.Style.Font.Size = 15 * 20
|
||||
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
|
||||
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
||||
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||
End If
|
||||
|
||||
|
||||
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 = DtDatos.Rows.Count + TotalRowHeader + TotalRowFooter
|
||||
|
||||
worksheet.Rows(IndexEndTable).Cells(0).Value = "Usuario Imprimió"
|
||||
worksheet.Rows(IndexEndTable + 1).Cells(0).Value = UsuarioActual.Nombre
|
||||
|
||||
worksheet.Rows(IndexEndTable).Cells(2).Value = "Fecha Impresión"
|
||||
worksheet.Rows(IndexEndTable + 1).Cells(2).Value = DateTime.Now.ToString("dd/MM/yyyy")
|
||||
|
||||
'Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
|
||||
|
||||
'If Imagen.Exists Then
|
||||
' Dim Ruta As String = String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)
|
||||
' Using sr As New StreamReader(Ruta)
|
||||
' Dim ms As New MemoryStream()
|
||||
' sr.BaseStream.CopyTo(ms)
|
||||
' worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", 100, 100, LengthUnit.Pixel)
|
||||
' End Using
|
||||
'End If
|
||||
|
||||
|
||||
For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
|
||||
|
||||
If I > 0 Then
|
||||
|
||||
'If Divisor = 1 Then
|
||||
' worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00"
|
||||
'Else
|
||||
' worksheet.Columns(I + 1).Style.NumberFormat = "#,##"
|
||||
'End If
|
||||
|
||||
Try
|
||||
worksheet.Columns(I).AutoFit(1)
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
|
||||
End If
|
||||
Next
|
||||
|
||||
excel.Save(Me.Response, Archivo, SaveOptions.XlsxDefault)
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user