In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Uso de DATA en funciones

Foro de Xailer profesional en español
Responder
jrcsistemas
Mensajes: 180
Registrado: Lun Sep 15, 2008 2:53 pm

Uso de DATA en funciones

Mensaje por jrcsistemas »

Hola.
Como hago referencia a un DATA dentro de una funcion.
Tengo varios DATA en un formulario que son array llenados al iniciar el
formulario. Dentro de varias funciones necesito hacer uso de esos DATA.
Por ejemplo en el armado de un campo calculado
METHOD DbfAfiliadosCreate( oSender ) CLASS TFormAfiliados
WITH OBJECT oSender
:lOpen := .t.
:AddCalcField( "NumAfiliado", {|oField| F_NumAfiliado( oField ) } )
:AddCalcField( "Domicilio" , {|oField| F_Domicilio( oField ) } )
END WITH
RETURN Nil
STATIC FUNCTION F_Domicilio( oField )
LOCAL cData
Local nPos
WITH OBJECT oField:oDataSet
nPos := aScan( :Calle( dsFIELD), ::aCalleNumeros )
cData := ::aCalleDetalles[nPos]" "+ :NumeroCasa( dsFIELD )
END WITH
RETURN cData
:.aCalleNumeros y :.aCalleDetalles son DATA
El error es Variable no existe SELF
Gracias
Juan
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Uso de DATA en funciones

Mensaje por Xevi »

Juan,
Pásale self a la función i tendrás TODAS sus datas, eventos...
:AddCalcField( "Domicilio" , {|oField| F_Domicilio( oField,
self ) } )
STATIC FUNCTION F_Domicilio( oField, self )
Un Saludo,
Xevi.
"Juan Castañeda" <jrcsistemas@speedy.com.ar> escribió en el mensaje
news:[email=4b8f3869@svctag-j7w3v3j....]4b8f3869@svctag-j7w3v3j....[/email]
> Hola.
> Como hago referencia a un DATA dentro de una funcion.
> Tengo varios DATA en un formulario que son array llenados al iniciar el
> formulario. Dentro de varias funciones necesito hacer uso de esos DATA.
> Por ejemplo en el armado de un campo calculado
>
> METHOD DbfAfiliadosCreate( oSender ) CLASS TFormAfiliados
> WITH OBJECT oSender
> :lOpen := .t.
> :AddCalcField( "NumAfiliado", {|oField| F_NumAfiliado( oField ) } )
> :AddCalcField( "Domicilio" , {|oField| F_Domicilio( oField ) } )
> END WITH
> RETURN Nil
>
> STATIC FUNCTION F_Domicilio( oField )
>
> LOCAL cData
> Local nPos
>
> WITH OBJECT oField:oDataSet
> nPos := aScan( :Calle( dsFIELD), ::aCalleNumeros )
> cData := ::aCalleDetalles[nPos]" "+ :NumeroCasa( dsFIELD )
> END WITH
>
> RETURN cData
>
> :.aCalleNumeros y :.aCalleDetalles son DATA
>
> El error es Variable no existe SELF
>
> Gracias
>
> Juan
>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Uso de DATA en funciones

Mensaje por ignacio »

Juan,
Sencillamente pase el propio objeto en ámbito a la función. Algo así­:
:AddCalcField( "Domicilio" , {|oField| F_Domicilio( oField, Self ) } )
> STATIC FUNCTION F_Domicilio( oField, Self )
Saludos
--
Ignacio Ortiz de Zúñiga
[Equipo de Xailer/Xailer team]
http://www.xailer.com
http://www.xailer.info
"Juan Castañeda" <jrcsistemas@speedy.com.ar> escribió en el mensaje de
noticias:[email=4b8f3869@svctag-j7w3v3j....]4b8f3869@svctag-j7w3v3j....[/email]
> Hola.
> Como hago referencia a un DATA dentro de una funcion.
> Tengo varios DATA en un formulario que son array llenados al iniciar el
> formulario. Dentro de varias funciones necesito hacer uso de esos DATA.
> Por ejemplo en el armado de un campo calculado
>
> METHOD DbfAfiliadosCreate( oSender ) CLASS TFormAfiliados
> WITH OBJECT oSender
> :lOpen := .t.
> :AddCalcField( "NumAfiliado", {|oField| F_NumAfiliado( oField ) } )
> :AddCalcField( "Domicilio" , {|oField| F_Domicilio( oField ) } )
> END WITH
> RETURN Nil
>
> STATIC FUNCTION F_Domicilio( oField )
>
> LOCAL cData
> Local nPos
>
> WITH OBJECT oField:oDataSet
> nPos := aScan( :Calle( dsFIELD), ::aCalleNumeros )
> cData := ::aCalleDetalles[nPos]" "+ :NumeroCasa( dsFIELD )
> END WITH
>
> RETURN cData
>
> :.aCalleNumeros y :.aCalleDetalles son DATA
>
> El error es Variable no existe SELF
>
> Gracias
>
> Juan
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
jrcsistemas
Mensajes: 180
Registrado: Lun Sep 15, 2008 2:53 pm

Uso de DATA en funciones

Mensaje por jrcsistemas »

Gracias Xevi e Ignacio.
Lo habia probado pero seguramente mal porque no me funcionaba. Le pasaba
Self y en la funcion ponia Self:CalleNumeros al usarlo.
Funcion perfecto.
Juan Castañeda
Responder