Por aquí saludando y preguntando, tengo el siguiente pseudo código:
- Code: Select all Expand view RUN
DEFINE WINDOW oWnd MDICHILD OF oWindow FROM 0,0 TO 10,10;
TITLE "Bitacora de viajes" ICON oIcono
….
….
….
ACTIVATE DIALOG oDlg NOWAIT ON INIT oDlg:MOVE(0,0) VALID ! GetASyncKey(VK_ESCAPE)
ACTIVATE WINDOW oWnd ON RESIZE ( IF( oWnd<>NIL, oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29), ));
ON INIT (LaBarra(oWnd,oDlg,oBrw),oBrw:SetFocus()) VALID Cierra()
RETURN(NIL)
STATIC FUNCTION LaBarra(oWnd,oDlg,oBrw)
LOCAL oBar
LOCAL oBtns := ARRAY(07)
DEFINE BUTTONBAR oBar SIZE 28,28 OF oDlg CURSOR oCursor 2007
DEFINE BUTTON oBtns[01] OF oBar RESOURCE "BtnAdd";
ACTION Editar(oBrw,(.T.));
MESSAGE "Agregar un nuevo vale"
DEFINE BUTTON oBtns[02] OF oBar RESOURCE "BtnCan";
WHEN oRsVia:State() = adStateOpen .AND. oRsVia:RecordCount > 0; <--- Condición
ACTION Cancelar(oBrw);
MESSAGE "Cancelar vale"
RETURN(.T.)
Como vemos, el botón oBtns[02] esta condicionado, en otra función abro la tabla oRsVia
y seguro estoy que tiene registros pero el botón no se activa, aún con oDlg:AEValWhen()
Algo que me haga falta?
Saludos