From bd7a78bc078caf31c793a4a9d6139e97594fa813 Mon Sep 17 00:00:00 2001 From: MLopez Date: Sat, 18 Feb 2023 15:09:55 -0700 Subject: [PATCH] Mejora filtrado GlobalDT --- App_Code/ClsPaginas.vb | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 22545a38d..392357b68 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -182,13 +182,12 @@ Public Class ClsPaginas If ObjUsuarios.GetUsuariosEmpresas(-1, CveEmpresa) Then Application(AppNombre) = ObjUsuarios.DtResultados End Using End If - Dim Str As New StringBuilder - If CveUsuario <> -1 Then Str.AppendFormat("CveUsuario = {0}", CveUsuario) - 'If CveEmpresa <> -1 Then Str.AppendFormat(" {0} CveEmpresa = {1}", If(Str.Length > 0, "AND", ""), CveEmpresa) - If CveCliente <> -1 Then Str.AppendFormat(" {0} CveCliente = {1}", If(Str.Length > 0, "AND", ""), CveCliente) - If CveProveedor <> -1 Then Str.AppendFormat(" {0} CveProveedor = {1}", If(Str.Length > 0, "AND", ""), CveProveedor) - If CveUsuario <> -1 OrElse CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) + Dim filtros As New List(Of String) + If CveUsuario <> -1 Then filtros.Add($"CveUsuario = {CveUsuario}") + If CveCliente <> -1 Then filtros.Add($"CveCliente = {CveCliente}") + If CveProveedor <> -1 Then filtros.Add($"CveProveedor = {CveProveedor}") + If filtros.Count > 0 Then + Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), String.Join(" AND ", filtros), "", DataViewRowState.CurrentRows) GlobalDTUsuarios = Dv.ToTable Dv.Dispose() Else @@ -561,10 +560,9 @@ Public Class ClsPaginas End Using End If 'Dim Str As New StringBuilder - ''If CveEmpresa <> -1 Then Str.AppendFormat(" {0} CveEmpresa = {1}", If(Str.Length > 0, "AND", ""), CveEmpresa) 'If CveCliente <> -1 Then Str.AppendFormat(" {0} CveCliente = {1}", If(Str.Length > 0, "AND", ""), CveCliente) 'If CveProveedor <> -1 Then Str.AppendFormat(" {0} CveProveedor = {1}", If(Str.Length > 0, "AND", ""), CveProveedor) - 'If CveUsuario <> -1 OrElse CveEmpresa <> -1 Then + 'If CveUsuario <> -1 OrElse CveCliente <> -1 OrElse CveProveedor <> -1 ' Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) ' GlobalDTUsuarios = Dv.ToTable ' Dv.Dispose() @@ -1330,13 +1328,13 @@ Public Class ClsPaginas If ObjSubProyectos.GetSubProyectosUsuarios(CveEmpresa:=CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjSubProyectos.DtResultados ObjSubProyectos.Dispose() End If - If CveUsuario <> -1 OrElse CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEstatus <> -1 Then - Dim StrSQL As New StringBuilder - If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto) - If CveSubProyecto <> -1 Then StrSQL.AppendFormat(" AND CveSubProyecto = {0}", CveSubProyecto) - If CveUsuario <> -1 Then StrSQL.AppendFormat(" AND CveUsuario = {0}", CveUsuario) - If CveEstatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatus = {0}", CveEstatus) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows) + Dim filtros As New List(Of String) + If CveProyecto <> -1 Then filtros.Add($"CveProyecto = {CveProyecto}") + If CveSubProyecto <> -1 Then filtros.Add($"CveSubProyecto = {CveSubProyecto}") + If CveUsuario <> -1 Then filtros.Add($"CveUsuario = {CveUsuario}") + If CveEstatus <> -1 Then filtros.Add($"CveUsuario = {CveEstatus}") + If filtros.Count > 0 Then + Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), String.Join(" AND ", filtros), "", DataViewRowState.CurrentRows) GlobalDTSubProyectosUsuarios = Dv.ToTable Dv.Dispose() Else @@ -1356,12 +1354,12 @@ Public Class ClsPaginas If ObjSubProyectos.GetSubProyectosUsuarios(CveEmpresa:=CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjSubProyectos.DtResultados.FiltraParametros("", "", {"Proyecto", "CveProyecto", "CveUsuario", "CveEmpresa", "CveEstatusProyecto"}) ObjSubProyectos.Dispose() End If - If CveUsuario <> -1 OrElse CveProyecto <> -1 OrElse CveEstatus <> -1 Then - Dim StrSQL As New StringBuilder - If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto) - If CveUsuario <> -1 Then StrSQL.AppendFormat(" AND CveUsuario = {0}", CveUsuario) - If CveEstatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatusProyecto = {0}", CveEstatus) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows) + Dim filtros As New List(Of String) + If CveProyecto <> -1 Then filtros.Add($"CveProyecto = {CveProyecto}") + If CveUsuario <> -1 Then filtros.Add($"CveUsuario = {CveUsuario}") + If CveEstatus <> -1 Then filtros.Add($"CveUsuario = {CveEstatus}") + If filtros.Count > 0 Then + Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), String.Join(" AND ", filtros), "", DataViewRowState.CurrentRows) GlobalDTProyectosUsuarios = Dv.ToTable Dv.Dispose() Else