Principales respuestas
Panel lateral - Purecomponents

Pregunta
-
Buenas, hace unos años que vengo utilizando en una aplicación el control ACCESSNAVIGATOR de PURECOMPONENTS.
Para quien no lo conozca, pongo una captura.
Ahora, necesito realizar ciertas modificaciones y necesitaría poder leer todos los ítems uno a uno, pero no consigo hacerlo.
¿alguien que haya trabajado con dicho control y que quizás pueda haberlo conseguido?
Al poco tiempo de comprar la librería PURECOMPONENTS dejo de dar soporte técnico.
De otro modo, os agradecería si me podéis aconsejar algún otro control similar del que tengáis buenas referencias.
Muchas gracias por anticipado!
Respuestas
-
Hola:
El control AccessNavigatorMDI contiene Grupos. Estos Grupos contienen Items.
En el codigo que te puse antes, a los items en su propiedad Tag les voy dando un numero consecutivo para luego preguntar con la siguiente instruccion
Select Case CInt(e.Item.Tag)
Procedimiento para recorrer los diferentes itemsPrivate Sub lP_RecorrerItem()
For Each grupo As PureComponents.ActionSet.Navigators.Items.NavigatorGroup In Me.AccessNavigatorMDI.Groups
For Each item As PureComponents.ActionSet.Navigators.Items.NavigatorGroupItem In grupo.Items
MessageBox.Show(item.Text)
Next
Next
End Sub¿Cual es la estructura de la tabla donde asignas a cada usuario a que item puede acceder?
Conociendo ese dato, en vez de MessageBox.Show(item.Text) pondras if ..... Then item.visible=FalseCon respecto a lo de abrir 3 veces el mismo Form, he probado y no encuentro la forma, no se si dejara porque tiene "poco" sentido hacer eso. ¿Cual es el motivo que tienes para hacer eso?
Un saludo desde Bilbo
Carlos- Marcado como respuesta mayoko miércoles, 23 de marzo de 2016 17:51
-
Bueno, pues finalmente di con la respuesta para como abrir varias pestañas :
Dim myUserControl As uc_art = New uc_art() AccessNavigatorMDI1.AddTab("Titulo Ventana", myUserControl)
De esta forma, podemos abrir tantas ventanas como queramos de un mismo control.
- Marcado como respuesta mayoko miércoles, 23 de marzo de 2016 17:55
Todas las respuestas
-
Hola:
En el Form que contiene el control AccessNavigatorMDI, tienes que tener el siguiente codigoPrivate Sub AccessNavigatorMDI_MDIControlContentRequest(ByVal sender As Object, ByVal e As PureComponents.ActionSet.Navigators.MDIControlContentRequestEventArgs) Handles AccessNavigatorMDI.MDIControlContentRequest
Me.Cursor = Cursors.WaitCursor
Dim myUserControl As UserControl = Nothing
Select Case CInt(e.Item.Tag)
Case 1
myUserControl = New uscXXXX
Case 2
myUserControl = New uscYYYY
Case 3
myUserControl = New uscZZZZ
etc, etc
Case Else
MessageBox.Show("Opcion NO Disponible", "AccessNavigatorMDI_MDIControlContentRequest", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
Return
End Select
e.Content = myUserControl
e.IsMDI = True
Me.Cursor = Cursors.Default
End Subdonde uscZZZZ es un usercontrol
Espero que te sea de ayuda
Un saludo desde Bilbo
Carlos- Editado J. Carlos Herrero martes, 22 de marzo de 2016 12:59
-
Ante todo, J.Carlos agradecerte la respuesta y disculpa si intente dirigirme a ti preguntando en otro mensaje, era precisamente porque conocía que tu conocías este componente.
Creo que no me explique bien con lo que necesito hacer, lo pongo y a ver si puedes echarme un cable nuevamente:
Dentro del control, ya tengo creado el menú, es decir, siguiendo con la captura anterior :
Informes
- Tipos
- Procesos
- Control
Y ahora, quiero controlar a los usuarios, de tal forma que cada usuario solo vea aquellos "sitios" a los que pueda acceder, para ello estaba intentando algo como esto :
AccessNavigatorMDI.item("Tipos").visible= false
Pero no veo como referenciar el "item" del menu.
Te agradezco si me puedes echar un cable de alguna manera.
Otra cosa, que estoy tratando es que pueda abrir varias veces el mismo formulario. Es decir, que si pincho 3 veces en el menú me abrá 3 pestañas iguales.
Gracias, un saludo!
-
Hola:
El control AccessNavigatorMDI contiene Grupos. Estos Grupos contienen Items.
En el codigo que te puse antes, a los items en su propiedad Tag les voy dando un numero consecutivo para luego preguntar con la siguiente instruccion
Select Case CInt(e.Item.Tag)
Procedimiento para recorrer los diferentes itemsPrivate Sub lP_RecorrerItem()
For Each grupo As PureComponents.ActionSet.Navigators.Items.NavigatorGroup In Me.AccessNavigatorMDI.Groups
For Each item As PureComponents.ActionSet.Navigators.Items.NavigatorGroupItem In grupo.Items
MessageBox.Show(item.Text)
Next
Next
End Sub¿Cual es la estructura de la tabla donde asignas a cada usuario a que item puede acceder?
Conociendo ese dato, en vez de MessageBox.Show(item.Text) pondras if ..... Then item.visible=FalseCon respecto a lo de abrir 3 veces el mismo Form, he probado y no encuentro la forma, no se si dejara porque tiene "poco" sentido hacer eso. ¿Cual es el motivo que tienes para hacer eso?
Un saludo desde Bilbo
Carlos- Marcado como respuesta mayoko miércoles, 23 de marzo de 2016 17:51
-
Buenas!
Pues ahora si que si! muchas gracias de verdad, me estaba volviendo loca, si hasta estaba tratando de modificar el código fuente del control....
Siguiendo con tus instrucciones, por si a alguien mas algún dia pudiera hacerle falta, he comprobado que dentro de los grupos estos pueden tener ITEM y dentro de estos ITEM puede haber otros ITEMS, pues la manera para recorrerlos todos seria tal que asi :
For Each grupo As PureComponents.ActionSet.Navigators.Items.NavigatorGroup In AccessNavigatorMDI1.Groups ' Grupo MessageBox.Show(grupo.Text.ToString) For Each item As PureComponents.ActionSet.Navigators.Items.NavigatorGroupItem In grupo.Items ' Item MessageBox.Show(item.Text) For Each item2 As PureComponents.ActionSet.Navigators.Items.NavigatorGroupSubitem In item.Items ' SubItem MessageBox.Show(item2.Text) Next Next Next
Dentro de lo que yo llamo item2 aun cabria la posibilidad de que hubiera otros ítems, pero en el control a mi nunca me funciono mas de 2 niveles de agrupación.
Muchas muchas gracias!
Lo de poder abrir 2 veces el mismo form es por ejemplo para poder tener cargadas 2 pedidos diferentes a la vez. Ahora mismo lo que tengo es varias veces el mismo ítem dentro del menú por ejemplo :
Clientes #1
Clientes #2
Pero pensaba en algo mas "profesional". No obstante, no quiero hacerte perder mucho tiempo ya con lo anterior me has alegrado el día!!
-
Bueno, pues finalmente di con la respuesta para como abrir varias pestañas :
Dim myUserControl As uc_art = New uc_art() AccessNavigatorMDI1.AddTab("Titulo Ventana", myUserControl)
De esta forma, podemos abrir tantas ventanas como queramos de un mismo control.
- Marcado como respuesta mayoko miércoles, 23 de marzo de 2016 17:55
-