Cambiar picture de un get despues de activar un dialogo

Cambiar picture de un get despues de activar un dialogo

Postby DanielPuente » Sun Feb 12, 2006 7:23 pm

Amigos:

En un dialogo de carga de articulos a facturar, con cantidad, precio unitario, etc, necesito cambiar el picture del precio unitario de 2 o 4 digitos para los decimales segun el rubro que tenga el articulo que se esta facturando (si es combustible necesito 4 digitos, sino 2).

Esto no funciona:

OT:cPicture:=IF(cRub==1,"999,999.9999","999,999.99")

Por supuesto en la funcion donde se valida el articulo se actualiza esa variable pero no el picture del get, por mas :refresh(), :settext() o lo que sea que se haga con el.

Necesito algun metodo que "redefina" el get para que se entere que cambio el picture.

Saludos,
Daniel Puente
Mar del Plata, Argentina
danielpuente@speedy.com.ar
puenteda@hotmail.com
DanielPuente
 
Posts: 108
Joined: Sun Oct 09, 2005 6:12 pm
Location: Mar del Plata - Argentina

Postby manuramos » Sun Feb 12, 2006 8:37 pm

Este es un trozo de código de uno de mis programas:

cPic1 := IF(nEuro=1,"@E 9,999.99","@E 999,999")
cPic2 := IF(nEuro=1,"@E 9999.99" ,"@E 999999" )

DEFINE DIALOG oDLct RESOURCE "CUOTAS2" OF oDlg PIXEL FONT oFnt

REDEFINE GET aGet[1] VAR oGet1 ID 134 OF oDLct ;
WHEN { || aGet[1]:oGet:Picture:=cPic2 , .T. } ;
VALID { || aGet[1]:oGet:Picture:=cPic1 , .T. }

...

y me funciona perfectamente.

Fijate que en ambos casos, la cantidad de nueves es la misma, quizá esté ahí tu problema. Por si acaso, inicializa las variables con 'o.oo' en lugar de con '0', hay veces que da problemas con los decimales si no se han inicializado adecuadamente.
Nos Gusta Programar
manuramos
 
Posts: 219
Joined: Mon Dec 26, 2005 7:25 pm
Location: Jerez de la Frontera (Spain)

Postby manuramos » Sun Feb 12, 2006 8:49 pm

Si lo que necesitas es definirlos después que el Dialogo, entonces a lo mejor tendrás que hacerlo dentro de una funcion de inicalización

ACTIVATE DIALOG oDlg ON INIT MiFuncionDeIni(oGet)
...
function MiFuncionDeIni(oGet)
oGet:oGet:Pìcture := .....
RETURN NIL

Aunque en teoría no es necesario.

Por cierto, te has dado cuenta que es oGet:oGet:Picture Y NO oGet:cPicture !!! reminicencias de la clase GET de CLIPPER.
Nos Gusta Programar
manuramos
 
Posts: 219
Joined: Mon Dec 26, 2005 7:25 pm
Location: Jerez de la Frontera (Spain)

Postby DanielPuente » Mon Feb 13, 2006 1:50 am

Manuranos:

te has dado cuenta que es oGet:oGet:Picture Y NO oGet:cPicture !!!


Ahi estaba la clave, tantos años programando en fw y recien me entero. Usaba :oGet:picture, oGet:cPicture,oGet:cPict y todo daba error, y eso que mire los fuentes en tget.prg.

Muchas gracias, me solucionastes el problema. Quedo:

IF CRUB==1
OT:CPICTURE:='999,999.9999'
oPuni:oGet:Picture:=OT:CPICTURE
oPuni:Refresh()
ELSE
OT:CPICTURE:='999,999.99'
oPuni:oGet:Picture:=OT:CPICTURE
oPuni:Refresh()
ENDIF

Y funciona perfecto.

Saludos,
Daniel Puente
Mar del Plata, Argentina
danielpuente@speedy.com.ar
puenteda@hotmail.com
DanielPuente
 
Posts: 108
Joined: Sun Oct 09, 2005 6:12 pm
Location: Mar del Plata - Argentina


Return to FiveWin for CA-Clipper

Who is online

Users browsing this forum: No registered users and 21 guests