Gente:
no consigo pasar el foco a una ventana nomodal desde una ventana no modal, por mas que le pongo al segundo dialogo el SETFOCUS() en el Init no toma el foco
Gracias
no consigo pasar el foco a una ventana nomodal desde una ventana no modal, por mas que le pongo al segundo dialogo el SETFOCUS() en el Init no toma el foco
FUNCTION Guia()
LOCAL oBtn
LOCAL nKey
LOCAL aDatos := {}
DEFINE DIALOG oDlg RESOURCE "BRW_GUIA" TITLE "Notas de Pedido" //FONT oFontS
REDEFINE SAY oSay PROMPT cString ID 111 OF oDlg
REDEFINE XBROWSE oBrw ;
COLUMNS "if(codusu='00',' ', FACBOL)","dtoc(FECHA)","NUMERO","MCODI->NG","IIF(MONEDA=='S', 'S/.', 'US$')",;
"TOTBRUTO","TOTDSCTO","TOTSUB","TOTIGV","TOTAL" ;
ALIAS "CABGUIA","MCODI" ;
FIELDSIZES 30,68,54,200,30,85,60,60,60,85 ;
HEADERS ;
"F/B" ;
,"FECHA" ;
,"NUMERO" ;
,"CLIENTE" ;
,"MON." ;
,"T.BRUTO" ;
,"T.DSCTO" ;
,"SUBTOT" ;
,"IGV" ;
,"TOTAL" ;
PICTURES nil,"99/99/9999",nil,nil, nil, '99,999,999.99', '999,999.99','999,999.99','999,999.99','99,999,999.99' ;
ID 4001 OF oDlg ;
LINES CELL NOBORDER UPDATE
oBrw:aJustify := {.F.,.T.,.F.,.F.,.F.,.T.,.T.,.T.,.T.,.T.}
oBrw:bKeyDown := { |nKey| ProcMtn( nKey ) }
oBrw:bLDblClick := { || ProcMtn( VK_RETURN ) }
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW
oBrw:l2007 := .f.
oBrw:bClrHeader := {|| { CLR_HBLUE,RGB(232, 255, 232) } }
oBrw:nStretchCol := STRETCHCOL_WIDEST
REDEFINE BUTTON oBtn ID ID_NEW OF oDlg ;
ACTION ( ProcMtn(VK_INSERT) )
oBtn:cTooltip := "Ingresa un nuevo registro"
REDEFINE BUTTON oBtn ID ID_CHANGE OF oDlg ;
ACTION ( ProcMtn(VK_RETURN) ) ===> presiono boton y a va abrir el dialogo odlgdet
oBtn:cTooltip := "Modifica el registro"
REDEFINE BUTTON oBtn ID ID_DEL OF oDlg ;
ACTION ( ProcMtn(VK_DELETE) )
oBtn:cTooltip := "Anula Nota de Pedido"
REDEFINE BUTTON oBtn ID ID_CANCEL OF oDlg ;
ACTION ( oDlg:End() ) CANCEL
oBtn:cTooltip := "Sale de la ventana"
ACTIVATE DIALOG oDlg NOWAIT ON INIT (oDlg:MOVE(50,220),oDlg:bLostFocus = { || oDlgDet:Setfocus() } ) ==>blostfocus lo utilizo para que el foco se quede en el dialogo oDlgDet pero no se activa el foco en ese dialogo
....
....
return nil
STATIC FUNCTION ProcMtn(nKey)
LOCAL nRecAnt
*- Evalua
IF nKey>=96 .AND. nKey<=105
nKey:=nKey-48
ENDIF
DO CASE
CASE nKey == VK_RETURN
oDlg:bLostFocus = { || oDlgDet:Setfocus() } ==>le anticipo al primer dialog nomodal que se va quedar el foco en el dialogo odlgdet pero no lo hace
oBrw:bLostFocus = { || oDlgDet:Setfocus() } ==>le anticipo al primer dialog nomodal que se va quedar el foco en el dialogo odlgdet pero no lo hace
NuevoDet(.F.)
....
....
Encase
....
...
Return Nil
Static Function Nuevodet(lmodo)
DEFINE DIALOG oDlgDet RESOURCE "DLG_CABGuia" TITLE "Nota de Pedido" FONT oFontS ==>llamo a esta dialogo lo abre pero el foco se queda en la ventana que lo invoco
REDEFINE GET oGet VAR dFecha ID 100 OF oDlgDet UPDATE ;
VALID (iif(codusu="01" .or. codusu="02" .or. codusu="03" .or. codusu="04", oDlgDet:aControls[2]:oJump:=oDlgDet:aControls[4],),.T.)
REDEFINE GET oGet VAR cNumero ID 104 OF oDlgDet UPDATE ;
VALID( cNumero:=StrZero(val(cNumero),6), oDlgDet:update(), .t.)
....
....
ACTIVATE DIALOG oDlgDet NOWAIT on init (oDlgDet:aControls[2]:Setfocus(), oBrwDet:Refresh() );
valid (detguiat->(DBCloseArea()),.t.)
cabguia->(DBSetOrder(4))
RETURN ( nil )Gracias
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql