lunes, 3 de agosto de 2020

ControlesPermisos MENU ITEM


Public Class ControlesPermisos
#Region "DECLARACION"

    Private Shared Menu As System.Windows.Forms.ToolStripMenuItem
    Private Shared SubMenu As System.Windows.Forms.ToolStripDropDownItem
    Private Shared submenu_ As System.Windows.Forms.ToolStripItem
    Public Shared mDtListadoControles = New DataTable
    Private Shared objPedidosRN = New VMPedidosRN.PedidosRN

#End Region

#Region "FUNCIONES"


    Public Shared Sub RegistrarControles(ByRef unform As Form) ' esta registra los controles de la aplicacion seguridad plues nada mas
        Dim nombreControl As String
        Dim descripcionControl As String = "testing-Seguridad"
        Dim descripcionControlRibbon As String = "testing-Ribbon"
        Try
            objPedidosRN = New VMPedidosRN.PedidosRN
            objPedidosRN.InicializarBase()

            'objAdmVentas_RN = New AdmVentas_RN.AdmVentas_RN
            'objAdmVentas_RN.InicializarBase()
            'Solapas = New DevExpress.XtraBars.Ribbon.RibbonPage
            'Grupo = New DevExpress.XtraBars.Ribbon.RibbonPageGroup
            'Category = New DevExpress.XtraBars.Ribbon.RibbonPageCategory
            'Dim sol As String = Category.Name

            Dim Ctrl As Control
            For i As Integer = 0 To unform.Controls.Count - 1
                Ctrl = unform.Controls.Item(i)
                If Ctrl.Name <> "" Then
                    If TypeOf (Ctrl) Is System.Windows.Forms.Control Then 'TypeOf (Ctrl) Is System.Windows.Forms.Form Or
                        nombreControl = Ctrl.Name
                        RegistroItems(Ctrl, unform)
                    Else
                        nombreControl = Ctrl.Name
                        objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, nombreControl, descripcionControl)
                    End If
                End If

            Next
        Catch ex As Exception
            MessageBox.Show("" + ex.ToString)
        End Try
    End Sub


    'registro automatico de los controles ingresados al menu
    Public Shared Sub RegistroItems(ByRef unControl As System.Windows.Forms.Control, ByRef unform As Form)
        Dim Menu As System.Windows.Forms.ToolStripMenuItem
        Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
        Dim submenu_ As System.Windows.Forms.ToolStripItem
        Dim I, H As Integer
        Dim NombreControl, DescripcionControl As String
        Try
            For Each Menu In unform.MainMenuStrip.Items
                NombreControl = Menu.Name
                DescripcionControl = Menu.Text
                If DescripcionControl = "" Then
                    DescripcionControl = Menu.Name
                Else
                    DescripcionControl = Menu.Text
                End If

                objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
                For I = 0 To Menu.DropDownItems.Count - 1
                    If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                        SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
                        NombreControl = SubMenu.Name
                        DescripcionControl = SubMenu.Text
                        If DescripcionControl = "" Then
                            DescripcionControl = Menu.Name + " / " + SubMenu.Name
                        Else
                            DescripcionControl = Menu.Text + " / " + SubMenu.Text
                        End If

                        objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
                        For H = 0 To SubMenu.DropDownItems.Count - 1
                            If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                                submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
                                NombreControl = submenu_.Name
                                DescripcionControl = submenu_.Text
                                If DescripcionControl = "" Then
                                    DescripcionControl = Menu.Name + " / " + SubMenu.Name + " / " + submenu_.Name '"OpcMenu,Sin Definir"
                                Else
                                    DescripcionControl = Menu.Text + " / " + SubMenu.Text + " / " + submenu_.Text '"OpcMenu,Sin Definir"
                                End If
                                objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
                            End If
                        Next
                    End If
                Next
            Next
        Catch ex As Exception
            MessageBox.Show("#ERROR RC002, No se pudo realizar el registro de los controles: " + ex.ToString)
        End Try

    End Sub


    Public Shared Sub DesactivarControlesAplicacion(ByRef unForm As Form) 'se desactivan incialmente los controles para poder controlarlos
        Dim Menu As System.Windows.Forms.ToolStripMenuItem
        Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
        Dim submenu_ As System.Windows.Forms.ToolStripItem
        Dim I, H As Integer
        Dim NombreControl As String

        Try
            For Each Menu In unForm.MainMenuStrip.Items
                NombreControl = Menu.Name
                Menu.Enabled = False
                Menu.Visible = False
                For I = 0 To Menu.DropDownItems.Count - 1
                    If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                        SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
                        NombreControl = SubMenu.Name
                        SubMenu.Enabled = False
                        SubMenu.Visible = False
                        For H = 0 To SubMenu.DropDownItems.Count - 1
                            If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                                submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
                                NombreControl = submenu_.Name
                                submenu_.Enabled = False
                                submenu_.Visible = False
                            End If
                        Next
                    End If
                Next
            Next
        Catch ex As Exception
            MessageBox.Show("#ERROR DC1002, No se pudieron desactivar los controles: " + ex.ToString)
        End Try

    End Sub
    Public Shared Sub ActivarControlesPorPefil(ByRef unForm As Form, ByVal unIdAplicacion As Integer, ByVal unIdPerfil As Integer)
        Dim Menu As System.Windows.Forms.ToolStripMenuItem
        Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
        Dim submenu_ As System.Windows.Forms.ToolStripItem
        Dim I, H As Integer
        Dim NombreControl As String
        Try

            '    ''2) Obtengo el listado de los controles habilitados POR PERFIL desde el sistema de seguridad
            Dim mDtListadoControles = New DataTable

            objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_LISTADO_CONTROLES_POR_PERFIL(My.Application.IDAPLICACION, My.Application.IDPERFIL)
            mDtListadoControles = objPedidosRN.Tabla
            If Not IsNothing(mDtListadoControles) Then

                For Each Menu In unForm.MainMenuStrip.Items
                    NombreControl = Menu.Name
                    'Menu.Enabled = False                    
                    ActivarControlPorSeguridad(Menu, mDtListadoControles)
                    For I = 0 To Menu.DropDownItems.Count - 1
                        If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                            SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
                            NombreControl = SubMenu.Name                           
                            'SubMenu.Enabled = False
                            ActivarControlPorSeguridad(SubMenu, mDtListadoControles)
                            For H = 0 To SubMenu.DropDownItems.Count - 1
                                If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                                    submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
                                    NombreControl = submenu_.Name
                                    ActivarControlPorSeguridad(submenu_, mDtListadoControles)
                                End If
                            Next
                        End If

                    Next
                Next
            End If
        Catch ex As Exception
            MessageBox.Show("#ERROR RC002, No se pudo realizar el activación de los controles: " + ex.ToString)
        End Try

    End Sub
    Public Shared Sub ActivarControlesPorUsuario(ByRef unForm As Form, ByVal unIdAplicacion As Integer, ByVal unIdPerfil As Integer)
        Dim Menu As System.Windows.Forms.ToolStripMenuItem
        Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
        Dim submenu_ As System.Windows.Forms.ToolStripItem
        Dim I, H As Integer
        Dim NombreControl As String
        Try

            ''2) Obtengo el listado de los controles habilitados POR USUARIO desde el sistema de seguridad
            Dim mDtListadoControlesUSu = New DataTable
            objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_LISTADO_CONTROLES_POR_USUARIO(My.Application.IDAPLICACION, My.Application.IDUSUARIO)
            mDtListadoControlesUSu = objPedidosRN.Tabla

            If Not IsNothing(mDtListadoControlesUSu) Then
                For Each Menu In unForm.MainMenuStrip.Items
                    NombreControl = Menu.Name
                    'Menu.Enabled = False
                    ActivarControlPorSeguridad(Menu, mDtListadoControlesUSu)
                    For I = 0 To Menu.DropDownItems.Count - 1
                        If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                            SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
                            NombreControl = SubMenu.Name
                            ' SubMenu.Enabled = False
                            ActivarControlPorSeguridad(SubMenu, mDtListadoControlesUSu)
                            For H = 0 To SubMenu.DropDownItems.Count - 1
                                If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                                    submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
                                    NombreControl = submenu_.Name
                                    ActivarControlPorSeguridad(submenu_, mDtListadoControlesUSu)
                                End If
                            Next
                        End If
                    Next
                Next
            End If
        Catch ex As Exception
            MessageBox.Show("#ERROR AC0034, No se pudo realizar la activación de los controles por usuario: " + ex.ToString)
        End Try
    End Sub


    Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripMenuItem, ByRef mdtListadocontroles1 As DataTable)

        For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
            If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
                NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
                NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
                Exit For
            End If
        Next
    End Sub
    Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripDropDownItem, ByRef mdtListadocontroles1 As DataTable)

        For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
            If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
                NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
                NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
                Exit For
            End If
        Next
    End Sub


    Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripItem, ByRef mdtListadocontroles1 As DataTable)
        For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
            If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
                NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
                NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
                Exit For
            End If
        Next
    End Sub

#End Region

End Class

No hay comentarios:

Publicar un comentario

Los mail de oulook no se pueden reenviar.

 cuando en el asunto poseen un caracter especial por ejemplo @#$ los correos no salen y no te muestra ningun correo de rebote, especialmente...