Como actualizar variables desde la clausula on init...

Como actualizar variables desde la clausula on init...

Postby Elias Torres » Wed Mar 14, 2007 11:15 am

Hola a todos...

Vamos a ver, tengo el siguiente codigo:

*********************************
FUNCTION Selecciona_proveedor(odlg6)
*********************************

LOCAL hBmp := ReadBitmap( CurDir() + "\go.bmp" ),cSearch:='',nKey,oTmr,num_compra:=''
LOCAL NumD

.....
SELECT 0
USE (CURDIR()+"\proveedor.dbf") VIA "DBFCDX" new
INDEX ON codigo TO codigo
proveedor->(OrdSetFocus( "codigo"))

DEFINE dialog odlg10 resource "seleccion_proveedor"

redefine LISTBOX oBrw; &&nos creamos un brows para la muestra
FIELDS hBmp, proveedor->codigo, proveedor->nombre;
HEADERS "","Código", "Nombre" ID 500 OF oDlg10

oBrw:aActions := {{|| NIL},{|| MsgBeep(),ordenar_por_codigo(aux,oBrw),oBrw:Upstable(),oBrw:Refresh()}, {|| MsgBeep(),ordenar_por_nombre(aux,oBrw),oBrw:Upstable(),oBrw:Refresh()}}

obrw:bKeyChar = { | nKey, nFlags | busca_proveedor( nKey, @cSearch ),oBrw:Refresh(),oSay:REFRESH()}

redefine say oSay prompt cSearch id 130 of odlg10 COLOR CLR_BLACK, CLR_WHITE

redefine button id 140 of odlg10 action MsgBeep(),( nRecno := proveedor->( Recno() ),oDlg10:End(),Compras(num_compra,NumD,FecD))

redefine button id 150 of odlg10 action MsgBeep(),odlg10:end()

redefine get oNumD var NumD id 4002 of odlg10

ACTIVATE dialog odlg10;
on init calendario(odlg10,FecD)

odlg6:end()
RETURN nil

************************
FUNCTION calendario(odlg10,FecD)
************************
LOCAL oFecha

FecD:=DATE()

@ 202, 132 DTPICKER oFecha VAR FecD OF oDlg10 SIZE 90, 20 PIXEL COLOR CLR_BLACK, CLR_WHITE

RETURN nil


El tema es el siguiente. Cuando llamo a la funcion Selecciona_proveedor(odlg6), en la clausula on init del dialogo me llama a la funcion Calendario(). Hasta ahi todo correcto. El DtPicker me muestra el dia correcto y me lo almacena en la variable FecD (que por defecto coge el dia actual). El problema que tengo es que esta variable se inicializa en el init y luego aunque yo le cambie la fecha en el calendario esta variable no se actualiza. He probado con la clausula on change en la funcion calendario() pero tampoco me actualiza la variable.

Alguien puede indicarme como puedo hacerlo...

Saludos y gracias.

Elías Torres.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Postby Antonio Linares » Wed Mar 14, 2007 12:13 pm

Elías,

Tienes que pasar la variable por "referencia":

on init calendario(odlg10, @FecD)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42079
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Elias Torres » Wed Mar 14, 2007 12:58 pm

Gracias Antonio, yo habia optado por crearme una variable public y actualizarla en la ejecucion de un boton y me funcionaba pero de esta otra forma me ahorro esa declaracion publica.


Gracias y saludos.

Elías Torres.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 32 guests