Imports System.Data Imports System.Drawing Imports Extensiones Partial Class Sistemas_Usuarios Inherits ClsPaginas Public ReadOnly Property CurrentUsuario() As Integer Get Return HdnCveUsuario.Value.ToEntero End Get End Property Public Property DtUsuarios As DataTable Get Return CType(ViewState("DtUsuarios"), DataTable) End Get Set(value As DataTable) ViewState("DtUsuarios") = value End Set End Property #Region "Permisos" Private Property PermisoEditar As Boolean Get Return CType(ViewState("PermisoEditar"), Boolean) End Get Set(value As Boolean) ViewState("PermisoEditar") = value End Set End Property Private Property PermisoModulos As Boolean Get Return CType(ViewState("PermisoModulos"), Boolean) End Get Set(value As Boolean) ViewState("PermisoModulos") = value End Set End Property Private Property PermisoProcesos As Boolean Get Return CType(ViewState("PermisoProcesos"), Boolean) End Get Set(value As Boolean) ViewState("PermisoProcesos") = value End Set End Property Private Property PermisoRestablecerContraseña As Boolean Get Return CType(ViewState("PermisoProcesos"), Boolean) End Get Set(value As Boolean) ViewState("PermisoProcesos") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then ViewState("Orden") = "" ViewState("CveRol") = -1 CargarEmpresa() CargaDatos() End If End Sub Public Sub CargaDatos() Dim Usuario As New ClsSisUsuarios If Usuario.GetUsuarios(-1, -1, Estatus:=DdlEsatus.SelectedValue.ToEntero) Then If UsuarioActual.CveRol <> 1 Then DtUsuarios = Usuario.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0} AND CveRol <> 1", DdlEmpresa.SelectedValue)) 'DtUsuarios = Usuario.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) Else DtUsuarios = Usuario.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", DdlEmpresa.SelectedValue)) End If Else GvDatos.DataSource = Nothing End If Usuario.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub consultar_Click(sender As Object, e As EventArgs) CargaDatos() End Sub Protected Sub GvDatos_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvDatos.RowCommand HdnCveUsuario.Value = e.CommandArgument.ToString End Sub Private Sub CargarEmpresa() Dim ClsUsuarios As New ClsSisUsuarios Dim DtEmpresas As DataTable 'Se cargan las empresas que tenga acceso el Usuario Actual, que son las que el puede dar acceso o no. ' Si el usuario es rol = 1 se cargan todas las empresas Dim Tipo = If(UsuarioActual.CveRol = 1, -1, UsuarioActual.CveUsuario) If ClsUsuarios.GetEmpresasAcceso(Tipo, -1) Then DtEmpresas = ClsUsuarios.DtResultados Else DtEmpresas = Nothing End If ClsUsuarios.Dispose() DdlEmpresa.DataSource = DtEmpresas DdlEmpresa.SelectedValue = UsuarioActual.CveEmpresa.ToString DdlEmpresa.DataBind() End Sub 'Public Sub CargarEmpresa() ' If UsuarioActual.CveRol <> 1 Then ' DdlEmpresa.DataSource = GlobalDTEmpresas ' DdlEmpresa.Enabled = False ' Else ' DdlEmpresa.DataSource = GlobalDTEmpresas ' End If ' DdlEmpresa.SelectedValue = UsuarioActual.CveEmpresa.ToString ' DdlEmpresa.DataBind() 'End Sub Protected Sub LBAdd_Click(sender As Object, e As EventArgs) HdnCveUsuario.Value = "-1" End Sub #Region "O R D E N A M I E N T O" Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) Dim Orden As String = "" Dim Campo As String = "" Dim Literal As Literal = Nothing Const OrdenInicial As String = "" Dim Arg(2) As String Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) Campo = Arg(0) Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) Literal.Text = String.Format("") Else ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) Literal.Text = String.Format("") End If Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString ViewState("Orden") = Orden CargaGrid(Orden) End Sub Private Sub CargaGrid(ByVal Orden As String) If Orden <> String.Empty Then Dim DV As New DataView(DtUsuarios, "", Orden, DataViewRowState.CurrentRows) GvDatos.DataSource = DV.ToTable() DV.Dispose() Else GvDatos.DataSource = DtUsuarios End If GvDatos.DataBind() UpDatos.Update() End Sub #End Region End Class