Hola amigos del foro, como deshabilitar cada modulo usando ejemplo: oMenu:Altas:Disable() y volver habilitar nuevamente, estoy usando ventanas hijas y que el usuario no pueda volver abrir el mismo módulo nuevamente, o si alguien tiene alguna rutina que me pueda ayudar o un ejemplo de codigo ? en mi programa lo deshabilita, pero no logro habilitar nuevamente ya intente de varias formas y nada , les agradecere su ayuda inmediata gracias
Adriano C. C.
acc69@hotmail.com
Como Deshabilitar y habilitar cada módulo del menú
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: Como Deshabilitar y habilitar cada módulo del menú
Utiliza la variable cargo que tienen los objetos Ventanas. Ejemplo
if ASCAN( oWndMain:oWndClient:aWnd, {|x| x:cargo == "VENTAS"} ) == 0 // comparas si ya existe x:cargo devuelve cero
// si es cero significa que x:cargo está vacio y por eso entra en esta rama
/*
Aqui viene tu codigo para trabajar la ventana hija
*/
oWndVta:cargo := "VENTAS" // se asigna por primera vez x:cargo con lo que quieras
ACTIVATE WINDOW oWndVta
oFont:end()
oFont2:end()
DBSELECTAREA("Stock")
*
ELSE // como ya x:cargo tiene valor solo reactiva la ventana y no se vuelve a cargar nuevamente.
oWndVta:SetFocus()
oWndVta:restore()
oWndVta:refresh()
ENDIF
RETURN
Espero te sirva como plantilla. Hay otras soluciones pero esta es a prueba de "cañones y palurdos"
if ASCAN( oWndMain:oWndClient:aWnd, {|x| x:cargo == "VENTAS"} ) == 0 // comparas si ya existe x:cargo devuelve cero
// si es cero significa que x:cargo está vacio y por eso entra en esta rama
/*
Aqui viene tu codigo para trabajar la ventana hija
*/
oWndVta:cargo := "VENTAS" // se asigna por primera vez x:cargo con lo que quieras
ACTIVATE WINDOW oWndVta
oFont:end()
oFont2:end()
DBSELECTAREA("Stock")
*
ELSE // como ya x:cargo tiene valor solo reactiva la ventana y no se vuelve a cargar nuevamente.
oWndVta:SetFocus()
oWndVta:restore()
oWndVta:refresh()
ENDIF
RETURN
Espero te sirva como plantilla. Hay otras soluciones pero esta es a prueba de "cañones y palurdos"
ACC69 wrote:Hola amigos del foro, como deshabilitar cada modulo usando ejemplo: oMenu:Altas:Disable() y volver habilitar nuevamente, estoy usando ventanas hijas y que el usuario no pueda volver abrir el mismo módulo nuevamente, o si alguien tiene alguna rutina que me pueda ayudar o un ejemplo de codigo ? en mi programa lo deshabilita, pero no logro habilitar nuevamente ya intente de varias formas y nada , les agradecere su ayuda inmediata gracias
Adriano C. C.
acc69@hotmail.com
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Re: Como Deshabilitar y habilitar cada módulo del menú
El chiste es abrir el modulo y deshabilitar mientras que el usuario haga ciertos procesos y al terminar y cerrar el modulo, que se habilite regresando al menu, porque muchas veces el usuario se le olvida que tiene minimizado x modulo y sin darse cuenta, vuelve abrir mismo modulo, porque es una ventana MDIChldArmando Picon wrote:Utiliza la variable cargo que tienen los objetos Ventanas. Ejemplo
if ASCAN( oWndMain:oWndClient:aWnd, {|x| x:cargo == "VENTAS"} ) == 0 // comparas si ya existe x:cargo devuelve cero
// si es cero significa que x:cargo está vacio y por eso entra en esta rama
/*
Aqui viene tu codigo para trabajar la ventana hija
*/
oWndVta:cargo := "VENTAS" // se asigna por primera vez x:cargo con lo que quieras
ACTIVATE WINDOW oWndVta
oFont:end()
oFont2:end()
DBSELECTAREA("Stock")
*
ELSE // como ya x:cargo tiene valor solo reactiva la ventana y no se vuelve a cargar nuevamente.
oWndVta:SetFocus()
oWndVta:restore()
oWndVta:refresh()
ENDIF
RETURN
Espero te sirva como plantilla. Hay otras soluciones pero esta es a prueba de "cañones y palurdos"
ACC69 wrote:Hola amigos del foro, como deshabilitar cada modulo usando ejemplo: oMenu:Altas:Disable() y volver habilitar nuevamente, estoy usando ventanas hijas y que el usuario no pueda volver abrir el mismo módulo nuevamente, o si alguien tiene alguna rutina que me pueda ayudar o un ejemplo de codigo ? en mi programa lo deshabilita, pero no logro habilitar nuevamente ya intente de varias formas y nada , les agradecere su ayuda inmediata gracias
Adriano C. C.
acc69@hotmail.com
Esto es un ejemplo de poner disable al seleccionar el modulo
MENU
MENUITEM oItem[07] Prompt "&Referencias y proveedores" ACTION AccModul(BUSCAR1(),oItem[07]) ;
MESSAGE "Búsqueda de referencias"
ENDMENU
Y esta la rutina de deshabilitar x modulo del menu
//------------------------------------------------------------------------------
FUNCTION AccModul(bFunction,oItem)
oItem:Disable()
return nil
Ahora como logro habilitar nuevamente, cuando el usuario termine de usar el modulo .
Les agradecere su ayuda gracias
Adriano
- Patricio Avalos Aguirre
- Posts: 1028
- Joined: Fri Oct 07, 2005 1:56 pm
- Location: La Serena, Chile
- Contact:
ACC69
Prueba con esto
Espero que te sirva
Saludos
Patricio
Prueba con esto
Code: Select all
MENUITEM "&Ingresar" ACTION (FormaPago( oMenuItem )) RESOURCE "BTNARTICU"
function FormaPago( oMenuItem )
oMenuItem:Disabled()
bla...ble
bla.. bla..
etc..
oMenuItem:Enabled()
return nil
Espero que te sirva
Saludos
Patricio
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: Como Deshabilitar y habilitar cada módulo del menú
No te preocupes que quede habilitado... Cuando el usuario vuelve a querer entrar en el modulo, como la ventana ya tiene x:cargo con contenido solamente se reactiva porque ya está activado. Como te tije esta rutina la utilizo y me ha funcionado aunque el usuario sea un palurdo.
ACC69 wrote:El chiste es abrir el modulo y deshabilitar mientras que el usuario haga ciertos procesos y al terminar y cerrar el modulo, que se habilite regresando al menu, porque muchas veces el usuario se le olvida que tiene minimizado x modulo y sin darse cuenta, vuelve abrir mismo modulo, porque es una ventana MDIChldArmando Picon wrote:Utiliza la variable cargo que tienen los objetos Ventanas. Ejemplo
if ASCAN( oWndMain:oWndClient:aWnd, {|x| x:cargo == "VENTAS"} ) == 0 // comparas si ya existe x:cargo devuelve cero
// si es cero significa que x:cargo está vacio y por eso entra en esta rama
/*
Aqui viene tu codigo para trabajar la ventana hija
*/
oWndVta:cargo := "VENTAS" // se asigna por primera vez x:cargo con lo que quieras
ACTIVATE WINDOW oWndVta
oFont:end()
oFont2:end()
DBSELECTAREA("Stock")
*
ELSE // como ya x:cargo tiene valor solo reactiva la ventana y no se vuelve a cargar nuevamente.
oWndVta:SetFocus()
oWndVta:restore()
oWndVta:refresh()
ENDIF
RETURN
Espero te sirva como plantilla. Hay otras soluciones pero esta es a prueba de "cañones y palurdos"
ACC69 wrote:Hola amigos del foro, como deshabilitar cada modulo usando ejemplo: oMenu:Altas:Disable() y volver habilitar nuevamente, estoy usando ventanas hijas y que el usuario no pueda volver abrir el mismo módulo nuevamente, o si alguien tiene alguna rutina que me pueda ayudar o un ejemplo de codigo ? en mi programa lo deshabilita, pero no logro habilitar nuevamente ya intente de varias formas y nada , les agradecere su ayuda inmediata gracias
Adriano C. C.
acc69@hotmail.com
Esto es un ejemplo de poner disable al seleccionar el modulo
MENU
MENUITEM oItem[07] Prompt "&Referencias y proveedores" ACTION AccModul(BUSCAR1(),oItem[07]) ;
MESSAGE "Búsqueda de referencias"
ENDMENU
Y esta la rutina de deshabilitar x modulo del menu
//------------------------------------------------------------------------------
FUNCTION AccModul(bFunction,oItem)
oItem:Disable()
return nil
Ahora como logro habilitar nuevamente, cuando el usuario termine de usar el modulo .
Les agradecere su ayuda gracias
Adriano
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Como siempre amigos, estan matando pulgas a cañonazos, la solucion es mas facil:
Code: Select all
Function VentanaHija
STATIC oWnd := NIL
IF oWnd == NIL
Define Window oWnd.... bla bla bla MDICHILD OF ....
... bla
... bla
... bla
ACTIVATE WINDOW ..... bla bla bla .... [b]VALID (oWnd:= NIL)[/b] // esta es la importante
ELSE
oWnd:SetFocus()
oWnd:restore()
ENDIF
Saludos
R.F.
R.F.
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Bueno... por ahí va la cosa. Al final el usuario no se va ha enterar si se ha utilizado un misil para matar la paloma!!!
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Gracias amigos del foro
Gracias amigos del foro por la ayuda y sugerencias, problema resuelto, ya el usuario no podra abrir nuevamente mismo menu, estando deshabilitado...Armando Picon wrote:Bueno... por ahí va la cosa. Al final el usuario no se va ha enterar si se ha utilizado un misil para matar la paloma!!!
Gracias se los agradezco
Adriano C. C.