menu contextual

799 views
Skip to first unread message

Ing.Omar Gonzalez

unread,
Jun 19, 2014, 12:46:40 PM6/19/14
to publice...@googlegroups.com
buenos dias 
Tengo un pequeño problema y quisiera saber si me pueden ayudar

en un formulario tengo un grid en el cual quiero poner un menu contextual con la opcion exportar el cual ya lo tengo realizado 
el problema es que me aparece desactivado  y no puedo activarlo me podrian ayudar?

francisco prieto

unread,
Jun 19, 2014, 1:01:12 PM6/19/14
to publice...@googlegroups.com
Omar,

Te aparece desactivado el menu...

Como lo estas haciendo...bah imagino que es con un do menu.mpr...

O lo haces de alguna otra forma...

Saludos,

Pancho
Córdoba

Ing.Omar Gonzalez

unread,
Jun 19, 2014, 1:34:46 PM6/19/14
to publice...@googlegroups.com
asi es es un do menu1.mpr
y no me lo activa
que puedo hacer

francisco prieto

unread,
Jun 19, 2014, 1:55:35 PM6/19/14
to publice...@googlegroups.com
a ver...

Tanto si el formulario es modal como si no lo es...

si en el evento rightclick pones
do menu.mpr

debería funcionar, salvo que el cursor este vacío pues en ese caso no aparece ningun registro donde hacer clic

Hay una forma sin embargo para dehabilitar la opcion del menu que es poner una barra invertida delante, pero el error que indicas no se me ocurre como reproducirlo.

Quizas si me das mas datos pueda asistirte..

Saludos,

Pancho
Córdoba

Ing.Omar Gonzalez

unread,
Jun 19, 2014, 3:12:26 PM6/19/14
to publice...@googlegroups.com
ya lo puse y no funciona le adjunto una imagen
muestra.png

Hector Colman

unread,
Jun 19, 2014, 8:08:23 PM6/19/14
to publice...@googlegroups.com
Acá te paso este código 




Local menn_local,s
menn_local = 0
Select (This.RecordSource)
If Reccount() > 0
s = 1
Else
s = 0
Endif

Define Popup menucontex SHORTCUT Relative From Mrow(),Mcol()
Define Bar 1 Of menucontex Prompt "\<Nuevo..." Picture "iconos\NewsAdd.png" &&"iconos\WZNEW.BMP"
Define Bar 2 Of menucontex Prompt "\<Modificar..." Picture "iconos\NewsRemove.png" &&WZEDIT.BMP"
Define Bar 3 Of menucontex Prompt "\<Borrar..." Picture "iconos\newspaper_close_32.png" &&WZDELETE.BMP"
Define Bar 4 Of menucontex Prompt "\-"
Define Bar 5 Of menucontex Prompt "\<Cerrar" Picture "iconos\onebit_27.png"     &&PICTURE "iconos\salir.bmp"  cancel.png


*Set Skip Of Bar 1 Of menucontex v_privilegio7 = 0
* para deshabilitar 
Set Skip Of Bar 2 Of menucontex s = 0
Set Skip Of Bar 3 Of menucontex s = 0



On Selection Bar 1 Of menucontex menn_local = 1
On Selection Bar 2 Of menucontex menn_local = 2
On Selection Bar 3 Of menucontex menn_local = 3
On Selection Bar 4 Of menucontex menn_local = 4
On Selection Bar 5 Of menucontex menn_local = 5

Activate Popup menucontex
Do Case

Case menn_local = 1
Thisform.Panel.HOja1.COMmand1.Click

Case menn_local = 2
Thisform.modificar
Case menn_local = 3
v_cliente = clicodigo
Thisform.borrar
Case menn_local = 5
Thisform.cancelar
Endcase
orgware_abm.rar

Ing.Omar Gonzalez

unread,
Jun 20, 2014, 12:43:10 PM6/20/14
to publice...@googlegroups.com
YA TENGO TODO SOLO ME FATA ACTIVAR EL MENU Y ESO ES LO QUE NO PUEDO HACER
ME PODRIAN AYUDAR

francisco prieto

unread,
Jun 20, 2014, 12:50:20 PM6/20/14
to publice...@googlegroups.com
Omar,

Podes trascribir el archivo mpr del menu para que te pueda ayudar.

Gracias,

Pancho
Cordoba

Ing.Omar Gonzalez

unread,
Jun 20, 2014, 3:31:38 PM6/20/14
to publice...@googlegroups.com
hola francisco el codigo del menu es este:

*       *********************************************************
*       *                                                         
*       * 06/11/14              MENU1.MPR               15:45:43  
*       *                                                         
*       *********************************************************
*       *                                                         
*       * Author's Name                                           
*       *                                                         
*       * Copyright (C) 2014 Company Name                         
*       * Address                                                 
*       * City,     Zip                                           
*       *                                                         
*       * Description:                                            
*       * This PROGRAM was automatically generated BY GENMENU.    
*       *                                                         
*       *********************************************************


*       *********************************************************
*       *                                                         
*       *                      Menu Definition                    
*       *                                                         
*       *********************************************************
*
LPARAMETERS nButton, nShift, nXCoord, nYCoord
DEFINE POPUP menúcontex SHORTCUT RELATIVE FROM MROW(),MCOL()
DEFINE BAR _mfi_export OF menúcontex PROMPT "\<Exportar..." ;
MESSAGE "Exporta un archivo de Visual FoxPro a un archivo de otra aplicación"
DEFINE BAR _mfi_quit OF menúcontex PROMPT "\<Salir" ;
KEY ALT+F4, "Alt+F4" ;
MESSAGE "Sale de Visual FoxPro"

ACTIVATE POPUP menúcontex

francisco prieto

unread,
Jun 20, 2014, 3:45:49 PM6/20/14
to publice...@googlegroups.com

El 20 de junio de 2014, 16:31, Ing.Omar Gonzalez <negr...@gmail.com> escribió:
_mfi_export

Lo que me parece que esta mal que que estas poniendo _mfi_export y _mfi_quit, al menos nunca lo he puesto asi.... 

Lo que suelo utilizar en accion no es numero de barra (salvo que use barras definidas en el default de VFP), uso en cambio Comando y a continuacion coloco el comando o a lo sumo uso procedimiento y escribo el procedimiento en el mismo menu.

Proba como te digo y comenta si se solucionó o no...

Saludos,

Pancho
Córdoba
Argentina

Ing.Omar Gonzalez

unread,
Jun 20, 2014, 4:12:35 PM6/20/14
to publice...@googlegroups.com
asi es francisco estoy utilizando la barras definidas por vfp pero aun asi no activa el menu

Iver Manrique

unread,
Apr 16, 2020, 1:46:59 PM4/16/20
to Comunidad de Visual Foxpro en Español
Disculpen, que estoy haciendo mal?, no logro que reemplace el campo...

Clear
Activate Screen
Set Date British
Set Cpdialog Off
Set Exclusive Off
Set Talk Off
Set Century On
Define Popup cargo From 5,5 MultiSelect Margin
Select 1
Use ALL0220
    Store "EMP" To SG
Select 2
Use CARGOS
Set Filter To num>0 .And. &SG<>" "
Go Top
Do While .Not. Eof()
    Store Alltrim(Str(num,3)) To LS
    Store num To LR
    Store "V"+LS To LT
    Store &SG To &LT
    Define Bar &LS Of cargo Prompt &LT
    Skip
Enddo
On Selection Popup cargo Do yourchoice
Activate Popup cargo
RELEASE POPUP cargo
Procedure yourchoice
*** Hasta aqui funciona ***
    Select 1
        If Mrkbar('cargo', LR) = .T.
            Repl cargo With &LT
            DEACTIVATE POPUP cargo
        Endif

HernanCano

unread,
Apr 16, 2020, 2:31:01 PM4/16/20
to Comunidad de Visual Foxpro en Español
On Selection Popup cargo Do yourchoice


Procedure yourchoice
*** Hasta aqui funciona ***

       
If Mrkbar('cargo', LR) = .T.
           
Repl cargo With &LT
            DEACTIVATE POPUP cargo
       
Endif


La instrucción IF dice que sólo ejecute si la opción está marcada.... Pero LR siempre llega a YOURCHOICE valiendo la última opción del menú.

Por lo tanto sólo se ejecuta cuando se escoge la última opción y está marcada.
----------------------
Mirando el ejemplo de la función BAR( ) Function, observo que el comando ON SELECTION se debe ejecutar con la opción seleccionada:
 
ON SELECTION POPUP popCard DO choice [[ IN bar_exam ]] WITH BAR(), POPUP()

Por lo tanto estás ejecutando de la forma no-adecuada.

Cuidado: La cláusula IN BAR_EXAM yo la escribo entre paréntesis cuadrados para indicar que es opcional y --para tu escenario-- (lo más probable) no es requerida.

Iver Manrique

unread,
Apr 16, 2020, 3:47:01 PM4/16/20
to publice...@googlegroups.com
IN BAR_EXAM lo usaria en un actipop pero no tengo menu entre menu, solo es una lista simple de cargos. logre crear la lista pero no la seleccion para que reemplace el cargo. me falta algo como un parametro. pero no tengo idea.


Clear
Activate Screen
Set Date British
Set Cpdialog Off
Set Exclusive Off
Set Talk Off
Set Century On
Define Popup cargo From 5,5 MultiSelect Margin
Select 1
Use ALL0220
    Store "EMP" To SG
Select 2
Use CARGOS
Set Filter To num>0 .And. &SG<>" "
Go Top
Do While .Not. Eof()
    Store Alltrim(Str(num,3)) To LS
    Store num To LR
    Store "V"+LS To LT
    Store &SG To &LT
    Define Bar &LS Of cargo Prompt &LT
    Skip
Enddo
On Selection Popup cargo Do choice with BAR()      && inclui lo que me dijiste. BAR(&LS); BAR()=&LS

Activate Popup cargo
RELEASE POPUP cargo
Procedure choice

*** Hasta aqui funciona ***
If PARAMETERS()=&LS  && inclui esto. PARAMETERS(&LS).  dice que: "no hay un parametro asignado." No PARAMETER statement is found"
    Select 1

        If Mrkbar('cargo', LR) = .T.
            Repl cargo With &LT
            DEACTIVATE POPUP cargo
        Endif
Endif

Iver Manrique

unread,
Apr 16, 2020, 3:47:42 PM4/16/20
to publice...@googlegroups.com
disculpa la molestia.

--
Iver

Zarlu

unread,
Apr 16, 2020, 4:48:26 PM4/16/20
to Comunidad de Visual Foxpro en Español
Buenas tardes Iver Manrique!

Disculpa, para entender mejor...Qué es lo que no funciona?
-No entra el If del procedimiento "yourchoice"?
-Si entra y no remplaza?
-No funciona con todas las opciones del menú?
-No reemplaza el valor deseado?

Recreeé tu código y si lo reemplaza, pero solo con la última opción y según veo es porque es el último valor de la tabla que toma "LR"

Suerte
zarlu
Chetumal, Quintana Roo, México



HernanCano

unread,
Apr 16, 2020, 8:43:22 PM4/16/20
to Comunidad de Visual Foxpro en Español
Así tamnpoco es.....

Debes mirar como está en la ayuda.....


El jueves, 16 de abril de 2020, 14:47:01 (UTC-5), Iver Manrique escribió:
On Selection Popup cargo Do choice with BAR()      && inclui lo que me dijiste. BAR(&LS); BAR()=&LS
 
If PARAMETERS()=&LS  && inclui esto. PARAMETERS(&LS).  dice que: "no hay un parametro asignado." No PARAMETER statement is found"

HernanCano

unread,
Apr 16, 2020, 10:03:01 PM4/16/20
to Comunidad de Visual Foxpro en Español
Correcto, Zarlu.
El código que él muestra no tiene sentido: tiene muchos bugs y uno de ellos es ése....

HernanCano

unread,
Apr 16, 2020, 10:09:29 PM4/16/20
to Comunidad de Visual Foxpro en Español
** ** **
** ** ** Te cuento que analicé tu código y descubrí lo que intentas.
** ** **
** ** ** Tu problema está en el uso de las vbles (SG, LS, LR, LT)
** ** ** Si bien se les puede dar uso, te hicieron confundir la lógica requerida......
** ** ** De hecho te digo: el uso de estas vbles es plenamente confuso y en su
** ** **    conjunto no hacen nada... perdón: no hacen nada útil.....
** ** **
** ** ** Te recomiendo que cambies tu código por el sgte....
** ** ** Y nos cuentas......
** ** **

Clear
Activate Screen
Set Date British
Set Cpdialog Off
Set Exclusive Off
Set Talk Off
Set Century On
Define Popup cargo From 5,5 MultiSelect Margin
Select 1
Use ALL0220
** ** ** Store "EMP" To SG
Select 2
Use CARGOS
** ** ** Set Filter To num>0 .And. &SG<>" "
Set Filter To num>0 .And. EMP<>" "
Go Top
** ** ** Do While .Not. Eof()
** ** **     Store Alltrim(Str(num,3)) To LS
** ** **     Store num To LR
** ** **     Store "V"+LS To LT
** ** **     Store &SG To &LT
** ** **     Define Bar &LS Of cargo Prompt &LT
** ** **     Skip
** ** ** Enddo

** ** **
** ** ** Para tu escenario no es necesario el uso de MultiSelect:
** ** ** De hecho en la ayuda dice:
** ** **   You cannot make multiple selections from a menu created with a PROMPT clause.
** ** **
** ** ** Me doy cuenta que estás utilizando una Procedure YOURCHOICE del ejemplo del comando DEFINE POPUP,
** ** **   que no es aplicable a tu escenario; ese ejemplo aplica cuando se usa multiselección
** ** **   que --como ya te dije-- no es tu caso.
** ** **

** **
** ** lo hago de esta forma, para no hacerte la tarea:
** ** debes mostrar algo de esfuerzo
** ** (el código aquí mostrado funciona como debe--->>> lo probé!!!)
** **
define bar NUM of CARGO prompt EMP
skip
define bar NUM of CARGO prompt EMP
skip
define bar NUM of CARGO prompt EMP
skip
define bar NUM of CARGO prompt EMP
skip
define bar NUM of CARGO prompt EMP
skip


On Selection Popup cargo Do yourchoice with bar(), prompt()  &&
Activate Popup cargo
RELEASE POPUP cargo

Procedure yourchoice
*** Hasta aqui funciona ***


lparameters M
.gnBar, M.gcPrompt

   
Select 1
       
***If Mrkbar('cargo', LR) = .T.
      MESSAGEB
(M.gcPrompt)
           
Repl cargo With M.gcPrompt  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&    &LT
            DEACTIVATE POPUP cargo
       
***Endif

**


El jueves, 16 de abril de 2020, 14:47:01 (UTC-5), Iver Manrique escribió:
IN BAR_EXAM lo usaria en un actipop pero no tengo menu entre menu, solo es una lista simple de cargos. logre crear la lista pero no la seleccion para que reemplace el cargo. me falta algo como un parametro. pero no tengo idea.

On Selection Popup cargo Do choice with BAR()      && inclui lo que me dijiste. BAR(&LS); BAR()=&LS
If PARAMETERS()=&LS  && inclui esto. PARAMETERS(&LS).  dice que: "no hay un parametro asignado." No PARAMETER statement is found"
 

IMAGEN01.png


Reply all
Reply to author
Forward
0 new messages