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