Files
SIG/GPS/RepEventos.aspx.vb
JORGE LUIS CAUDILLO ESPARZA c35cf91883 Commit inicial Ventas Productivo
2019-08-14 16:40:54 -07:00

164 lines
6.5 KiB
VB.net

Option Explicit On
Option Strict On
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports System.Data
Imports Newtonsoft.Json.Linq
Partial Class GPS_RepEventos
Inherits ClsPaginas
Property DTDatos As DataTable
Get
If ViewState("DTDatos") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTDatos"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTDatos") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
txtFechaI.Text = $"01/{DateTime.Now.ToString("MM")}/{DateTime.Now.Year} 00:00"
txtFechaF.Text = $"{DateTime.Now.ToString("dd/MM/yyyy")} 23:59"
CargaGrupos()
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub CargaGrupos()
Dim ObjGPS As ClsGPS = New ClsGPS()
If ObjGPS.GruposGet(-1, UsuarioActual.CveCliente) Then
DdlGrupo.DataSource = ObjGPS.DtResultados
End If
ObjGPS.Dispose()
DdlGrupo.DataBind()
End Sub
Private Sub CargaDatos()
Using ObjGPS As New ClsGPS
If ObjGPS.GetRepEventosDispositivosCliente(DdlGrupo.SelectedValue.ToEntero(), txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, UsuarioActual.CveCliente) Then
GvEventos.DataSource = ObjGPS.DtResultados
DTDatos = ObjGPS.DtResultados
Else
GvEventos.DataSource = Nothing
End If
End Using
GvEventos.DataBind()
CargaGraficaEventos(DTDatos.FiltraParametros("CveDispositivo > 0"))
UpDatos.Update()
End Sub
Private Sub CargaGraficaEventos(DtEventos As DataTable)
'Dim DtEventos = ObjGPS.DtResultados.FiltraParametros("CveEvento IS NOT NULL")
Dim datosVelocidad = New JArray()
Dim datosAceleraciones = New JArray()
Dim datosFrenados = New JArray()
Dim datosColisiones = New JArray()
Dim datosRalenti = New JArray()
Dim categories = New JArray()
For Each Row As DataRow In DtEventos.Rows
categories.Add(Row("Vehiculo").ToString())
datosVelocidad.Add(Row("NoExcesosVelocidad").ToString().ToEntero())
datosAceleraciones.Add(Row("NoAceleraciones").ToString().ToEntero())
datosFrenados.Add(Row("NoFrenados").ToString().ToEntero())
datosColisiones.Add(Row("NoColisiones").ToString().ToEntero())
datosRalenti.Add(Row("NoRalentis").ToString().ToEntero())
Next
Dim series = New JArray() From {
New JObject() From {
New JProperty("name", "Excesos de Velocidad"),
New JProperty("data", datosVelocidad),
New JProperty("color", "#4B77BE")
},
New JObject() From {
New JProperty("name", "Aceleraciones"),
New JProperty("data", datosAceleraciones),
New JProperty("color", "#26C281")
},
New JObject() From {
New JProperty("name", "Frenados"),
New JProperty("data", datosFrenados),
New JProperty("color", "#ACB5C3")
},
New JObject() From {
New JProperty("name", "Colisiones"),
New JProperty("data", datosColisiones),
New JProperty("color", "#D91E18")
},
New JObject() From {
New JProperty("name", "Ralenti"),
New JProperty("data", datosRalenti),
New JProperty("color", "#8E44AD")
}
}
Dim jsonGrafica = New JObject() From {
New JProperty("categories", categories),
New JProperty("series", series)
}
HdnGraficaEventos.Value = jsonGrafica.ToString()
UpGraficaEventos.Update()
End Sub
Public Sub EnviarReporteProgramado(DtDatos As DataTable)
If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then
Dim retorno As Byte()
Dim RutaReporte = "Empresas/Grales/ReportesProgramados/RPEventos.rdlc"
Dim Excesos = DtDatos.SUM("NoExcesosVelocidad")
Dim Aceleraciones = DtDatos.SUM("NoAceleraciones")
Dim NoColisiones = DtDatos.SUM("NoColisiones")
Dim TotalEventos = DtDatos.SUM("TotalEventos")
Dim Ralenti = DtDatos.SUM("NoRalentis")
Try
Dim RptParametro As New List(Of ReportParameter)
RptParametro.Add(New ReportParameter("FechaInicio", txtFechaI.Text.ToDateTime().ToString("dd/MM/yyyy HH:mm")))
RptParametro.Add(New ReportParameter("FechaFin", txtFechaF.Text.ToDateTime().ToString("dd/MM/yyyy HH:mm")))
RptParametro.Add(New ReportParameter("ChartBase64", HdnImagen.Value, True))
RptParametro.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
RptParametro.Add(New ReportParameter("FechaImpresion", Now.ToString("dd/MM/yyyy")))
RptParametro.Add(New ReportParameter("NoExcesosVelocidad", Excesos.ToString))
RptParametro.Add(New ReportParameter("NoAceleraciones", Aceleraciones.ToString))
RptParametro.Add(New ReportParameter("NoColisiones", NoColisiones.ToString))
RptParametro.Add(New ReportParameter("Ralenti", Ralenti.ToString))
RptParametro.Add(New ReportParameter("TotalEventos", TotalEventos.ToString))
retorno = StreamPDF(RutaReporte, DtDatos, RptParametro, "ReporteEventos", "PDF", MR:=Nothing, RDSName:="DsOC")
ImprimirbytesPDF(retorno, "ReporteEventos")
Catch ex As Exception
GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
End Try
Else
Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
End If
End Sub
Protected Sub LnkPDF_Click(sender As Object, e As EventArgs)
EnviarReporteProgramado(DTDatos)
End Sub
Protected Sub GvEventos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CveDispositivo").ToEntero <= 0 Then
e.Row.CssClass = "Totales"
End If
End If
End Sub
End Class