FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Problemas con Setfocus()
Posts: 214
Joined: Sat Aug 19, 2006 01:37 PM
Problemas con Setfocus()
Posted: Wed Aug 23, 2006 07:43 PM

Hola Foro

Nuevamente yo molestanto

tengo dos problemitas son el Setfocus() y el valor de una Variable Local no me funcionan bien

tengo un dialogo,, con algunos get,, en uno de ello pongo un VALID y bifurco a un Function XXXX,, en donde valido el ingreso, y al volver con Return .t. analizo el retorno de informacion y si corresponde o no ,, necesito que un Get en especial tenga el foco de entrada,, le pongo oTget:Setfocus() y nada ,, el foco siempre de queda en un objeto COMBOX que tengo dentro del dialogo,, alguna sugerencia ?????

y el otro usanto dentro de una Function la misma donde valido la informacion asigna una variable LOCAL ccc:=.F. ,, dentro de ese function para esa variable a otro function y manejo su valor asi.. ccc=.T.,, y luego retorno,, pero la variable siempre asume el primer valor,,

la mire con Msginfo,,, al momento de poner ccc=.T. me entrega ese valor pero cuando retorna cambia a .F.,, que sera ?????

Mi segundo amor es Programar
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con Setfocus()
Posted: Wed Aug 23, 2006 09:01 PM

Para que desde un control saltes al que quieras en una validaci贸n, haz:

oControl:oJump = <oControl_a_donde_ir>

por ejemplo:

oGet2:oJump = oGet1

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con Setfocus()
Posted: Wed Aug 23, 2006 09:02 PM

Est谩s pasando la variable l贸gica por referencia @ ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con Setfocus()
Posted: Thu Aug 24, 2006 07:41 AM

Oscar,

El m茅todo (贸 funci贸n) SetFocus() no siempre te permite cambiar el foco en los procesos de validaci贸n, por eso se usa la DATA oJump en algunos casos.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 214
Joined: Sat Aug 19, 2006 01:37 PM
Problemas con Setfocus()
Posted: Thu Aug 24, 2006 07:41 PM

Antonio molestanto de nuevo,, no me funciona oControl:oJump....

pq sera.. mira el codigo fuente...

REDEFINE GET TgGet[19] VAR Det [01] ID 218 OF oDlg COLOR nRGB(0,0,128), nRGB(255,255,255) PICTURE "@!" VALID BusProd(TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto)

Function BusProd (TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto)
Do Case
Case vCbx2="TF"
//Scopes de Productos
oProducto:Setorder(1)
oProducto:Gotop()
oProducto:Seek(Det[01])
If oProducto:found()
Det[1]=oProducto:codprod
Det[2]=oProducto:descri
Else
Det[01]:=space(27)
Det[02]:=space(40)
VNominaP(oProducto,Det,TgGet,oPreprod)
Endif
//
If !empty(Det[1])
//Buscar Precio
oPreprod:Setorder(2)
oPreprod:Gotop()
oPreprod:Seek(PADR((Alltrim(Det[1])+Alltrim(PPD[1])),29))

If oPreprod:Found()
Det[4]=oPreprod:total
Det[8]=oPreprod:desc
Det[9]=oPreprod:total
Else
//Buscar Precio por Defecto
oPreprod:Setorder(2)
oPreprod:Gotop()
oPreprod:Seek(PADR((Alltrim(Det[1])+Alltrim(Defecto)),29))
If oPreprod:Found()
MsgInfo("No existe Precio de Referencia para Producto"+CHR(13)+"Se utilizaran el precio de Defecto del sistema")
Det[4]=oPreprod:total
Det[8]=oPreprod:desc
Det[9]=oPreprod:total
Else
MsgInfo("No existe Precio de Referencia para Producto")
Det[01]:=space(27)
Det[02]:=space(40)
Det[03]=0
Det[04]=0
Det[05]=0
Det[06]=0
Det[07]=0
Det[08]=0
Det[09]=0
Endif
Endif
Else
Det[01]:=space(27)
Det[02]:=space(40)
Det[03]=0
Det[04]=0
Det[05]=0
Det[06]=0
Det[07]=0
Det[08]=0
Det[09]=0
Endif
//
For x=19 to 24
TgGet[x]:Refresh()
Next x
TgGet[19]:oJump=TgGet[21]
Otherwise

Endcase
Return .T.

Function VNominaP(oProducto,Det,TgGet,oPreprod)
Local oDlg
Local oFont
Local oSay
Local oCbx
Local vCombox
Local oGet
Local vGet
Local oBtn1,oBtn2
Local oTbr
Local oBp
Local oBmp
//
oProducto:Setorder(4)
oProducto:Gotop()
//
DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0,-12

DEFINE DIALOG oDlg RESOURCE 22 FONT oFont

REDEFINE BITMAP oBmp ID 600 OF oDlg FILENAME "bmp\cemento.bmp" TRANSPAREN
REDEFINE BITMAP oBmp ID 601 OF oDlg FILENAME "bmp\osb.bmp" TRANSPAREN
REDEFINE BITMAP oBmp ID 602 OF oDlg FILENAME "bmp\pizarre.bmp" TRANSPAREN

REDEFINE SAY oSay ID 100 OF oDlg COLOR nRGB(0,0,128)
REDEFINE COMBOBOX oCbx VAR vCombox ITEMS {oemtoansi("Por C垄digo"),"Por Grupo",oemtoansi("Por Descripci垄n")} ID 300 OF oDlg ON CHANGE VCboP(oProducto,vCombox,oTbr)
REDEFINE GET oGet VAR vGet ID 200 OF oDlg COLOR nRGB(0,0,128),nRGB(255,255,255) PICTURE "@!"
REDEFINE BTNBMP oBtn ID 50 OF oDlg FILENAME "bmp\Buscar.bmp" ACTION SSBBrowse(oProducto,oTbr,vGet),Refresco(oTbr,oProducto),vGet:=Space(40),oGet:Refresh()

REDEFINE BROWSE oBp ID 501 OF oDlg FONT oFont

ADD COLUMN TO BROWSE oBp DATA oPreprod:Descri;
HEADER "Tipo"+CHR(13)+"Cliente";
SIZE 100;
PICTURE "@";
ALIGN DT_LEFT,DT_CENTER;
3DLOOK TRUE

ADD COLUMN TO BROWSE oBp DATA oPreprod:Sigla;
HEADER "T"+CHR(13)+"C";
SIZE 20;
PICTURE "@";
ALIGN DT_LEFT,DT_CENTER;
3DLOOK TRUE

ADD COLUMN TO BROWSE oBp DATA oPreprod:Neto;
HEADER "Precio"+CHR(13)+"Neto";
SIZE 70;
PICTURE "9,999,999";
ALIGN DT_RIGHT,DT_CENTER;
3DLOOK TRUE

ADD COLUMN TO BROWSE oBp DATA oPreprod:iva;
HEADER "IVA";
SIZE 70;
PICTURE "9,999,999";
ALIGN DT_RIGHT,DT_CENTER;
3DLOOK TRUE

ADD COLUMN TO BROWSE oBp DATA oPreprod:Total;
HEADER "TOTAL";
SIZE 70;
PICTURE "9,999,999";
ALIGN DT_RIGHT,DT_CENTER;
3DLOOK TRUE

oBp:Setcolor({2,15},{;
nRGB(220,255,220),; //Fondo Linea
nRGB(255,200,255) ; //Lineas del Grid
})

oBp:SetOdbf(oPreprod)
oBp:lNoHScroll := .T. //Conecta la barra scroll horizontal
oBp:nFreeze:=1

REDEFINE BROWSE oTbr ID 500 OF oDlg FONT oFont;
ON CHANGE (MMDatos(oProducto,oFont,oTbr,oBp,oPreprod))

ADD COLUMN TO BROWSE oTbr DATA oProducto:Codprod;
HEADER oemtoansi("C垄digo");
SIZE 150;
PICTURE "@!";
ALIGN DT_LEFT;
3DLOOK TRUE

ADD COLUMN TO BROWSE oTbr DATA oProducto:codi_fami;
HEADER "Grupos"+CHR(13)+"T/F";
SIZE 50 ;
PICTURE "999";
ALIGN DT_LEFT;
3DLOOK TRUE

ADD COLUMN TO BROWSE oTbr DATA oProducto:Descri;
HEADER oemtoansi("Descripci垄n");
SIZE 300 ;
PICTURE "@!";
ALIGN DT_LEFT;
3DLOOK TRUE

ADD COLUMN TO BROWSE oTbr DATA oProducto:Stock;
HEADER "Stock Producto";
SIZE 100 ;
COLOR nRGB(0,0,255);
PICTURE "9,999,999.99";
ALIGN DT_RIGHT;
3DLOOK TRUE

oTbr:Setcolor({2,15},{;
nRGB(255,255,220),; //Fondo Linea
nRGB(255,200,255) ; //Lineas del Grid
})
oTbr:Setcolor({1},{;
{|| If(oProducto:Stock>=0,nRGB(0,0,255),nRGB(255,0,0))} ; //Texto Linea
},4)
oTbr:SetOdbf(oProducto)
oTbr:nFreeze :=1
oTbr:lNoHScroll := .F. //Conecta la barra scroll horizontal
oTbr:bkeydown := { |nKey|VKP(oProducto,oTbr,nKey,Det,TgGet,oDlg)}
oTbr:bLDblClicked := { || VKDbP(oProducto,oTbr,Det,TgGet,oDlg)}

REDEFINE SBUTTON oBtn1 ID 400 OF oDlg ACTION VKDbP(oProducto,oTbr,Det,TgGet,oDlg)
REDEFINE SBUTTON oBtn2 ID 401 OF oDlg ACTION oDlg:End()
oCbx:LostFocus()
vCombox:=oemtoansi("Por Descripci垄n")

ACTIVATE DIALOG oDlg ON PAINT oTbr:Setfocus()
Return

EL PROBLEMA LO TENGO CUANDO INGRESO UN CODIGO DE PRODUCTO ATRAVEZ DE TGGET[19] VAR DET[1],, Y EL PRODUCTO NO SE ENCUENTRA,, AHI ES DONDE SE ABRE LA FUNCTION VNOMINAP,, PARA SELECCIONAR UNO DE LA LISTA,,, AL SELECCIONAR CUALQUIERA O APRETAR EL ESC... CUANDO SE SALE DE LA FUNCTION VNOMINAP,,, EL FOCO NO QUE EN EL TGGET[19], SE VA A OTRO OBJETO

PORFA ILUMINAME,,,

GRACIAS

ahhh.. y referente a como pasa las variables las paso igual que en este codigo fuente las defino entre parentesis con en busprod... o esta mal hacerlo asi...,, del la duda que tenia sabes que si uso matrices me se actualiza su valor pero si son variables locales no,, QUE RARO

Function BusProd (TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto)

Mi segundo amor es Programar
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con Setfocus()
Posted: Thu Aug 24, 2006 10:34 PM

> EL FOCO NO QUE EN EL TGGET[19], SE VA A OTRO OBJETO

A que otro objeto se va el foco ? Puedes poner una imagen de la caja de di谩logo ? (usa www.imageshack.us para alojar la imagen y pon aqui el url).

>
VALID BusProd(TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto)
>

Las variables que ah铆 sean l贸gicas, ponles un @ delante, en caso de que las vayas a cambiar desde la funci贸n BusProd().

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 214
Joined: Sat Aug 19, 2006 01:37 PM
Problemas con Setfocus()
Posted: Sat Aug 26, 2006 03:41 AM

http://img245.imageshack.us/my.php?image=dialogojq9.png

AHI ESTA LA IMAGEN DE LA CAJA DE DIALOGO

EN PROBLEMA ESTE QUE CUANDO EL PRODUCTO NOSE ENCUENTA Y EL SISTEMA ABRE UNA NUEVA CAJA DE DIALOGO CON UN LISTADO DE PRODUCTOS,, AL PRECIONAR ESC O SALIR DE ESE DIALOGO DE CUANQUIER MODO,, INCLUSO SELECCIONANDO ALGUNO DE ELLOS,, EL FOCO LO RECIBE UN COMBOX ,, ESE DND DICE Arturo Millan,, QUE SERA,,,

PORFA ILUMINAME,,,

GRACIAS

SALUDOS DESDE CHILE

Mi segundo amor es Programar
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con Setfocus()
Posted: Sat Aug 26, 2006 06:17 AM

Tu est谩s en el GET C贸digo cuando llamas a la caja de di谩logo para seleccionar un producto ?

Prueba con:

REDEFINE GET TgGet[19] VAR Det [01] ID 218 OF oDlg COLOR nRGB(0,0,128), nRGB(255,255,255) PICTURE "@!" VALID ( BusProd(TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto), TgGet[21]:SetFocus(), .T. )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 214
Joined: Sat Aug 19, 2006 01:37 PM
Problemas con Setfocus()
Posted: Sat Aug 26, 2006 12:16 PM

Efeticamente ANTONIO,, yo estoy en el get codigo cuando se llama la function que abre el otro dialogo del listado,, cuando me salgo de ese dialogo es donde se pierde el foco,, lo mas raro que si digito el codigo del producto sin abrir el dialogo de listado de codigo,, el foco no se pierde...

QUE SERA.. !!!!!

GRACIAS

Mi segundo amor es Programar
Posts: 214
Joined: Sat Aug 19, 2006 01:37 PM
Problemas con Setfocus()
Posted: Sat Aug 26, 2006 12:21 PM

Antonio se me olvidaba probe tu cambio y no funciona.. siempre se enfoca en ese combo,,,,

Mi segundo amor es Programar
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con Setfocus()
Posted: Sat Aug 26, 2006 04:00 PM

Pru茅balo as铆:

REDEFINE GET TgGet[19] VAR Det [01] ID 218 OF oDlg COLOR nRGB(0,0,128), nRGB(255,255,255) PICTURE "@!" VALID ( BusProd(TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto), TgGet[19]:oJump := TgGet[21], .T. )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 214
Joined: Sat Aug 19, 2006 01:37 PM
Problemas con Setfocus()
Posted: Sun Aug 27, 2006 04:32 PM

Estimado ANTONIO

ya resolvi en problema...

y sabes q era jajajaja

el dialogo principal el que contiene a Tgget[19],,, en el ACTIVATE DIALOG

le puse un ON PAINT con el combo donde se enfocaba siempre,,, lo saque y el setfocus() funciona a la perfecci贸n

NO EXISTEN MISTERIOS DE LA CIBERCIENCIA,, NO CREES... TODO DEBE TENER UNA EXPLICACION LOGICA..

GRACIAS por tu ayuda...

Mi segundo amor es Programar

Continue the discussion