Básicamente lo que quiero es asignar valores a las PROPIEDADES de una
clase usando macrosus.
Algo básico pero en mas o menos lo que hago y que quiero optimizar.
#include "Xailer.ch"
//---------------------------------------------------------- --------------------
CLASS Empresas From TComponent
METHOD DevolverID()
PROPERTY idempresa INIT 0
PROPERTY idpersonaj INIT 0
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD DevolverID( ID ) CLASS Empresas
local hArray:= AppData:oSql:QH( "select idempresa, idpersonaj from
empresas")
// Levanto en un hash todos los campos de la tabla.
// Luego a cada PROPIEDAD le asigno el valor de su elemento hash
correspondiente
::idempresa := hArray["idempresa"]
::idpersonaj := hArray["idpersonaj"]
RETURN .t.
---
Lo que busco es hacerlo mas práctico y en un par de lineas
local cCampo := ""
FOR i = 1 to len(hArray) // Recorro el hash
cCampo := HGetKeyAt( hArray, i ) // En cCampo guardo
"idempresa"por ejemplo
::&cCampo := hArray[cCampo] // Acá quiero que
::idempresa := 1 tome el valor del hash
NEXT
Y no quiere, en todos los casos ::&cCampo se setea en 0.
Desde ya muchas gracias.
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.
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.
Sobre PROPERTYs y Macros
- Carlos Ortiz
- Mensajes: 873
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Sobre PROPERTYs y Macros
Carlos,
> ::&cCampo := hArray[cCampo] // Acá quiero que ::idempresa :=
> 1 tome el valor del hash
__ObjSendMsg( Self, "_" + cCampo, hArray[ cCampo ] )
y si lo que quieres es leer su valor, entonces:
__ObjSendMsg( Self, cCampo ) --> <valor>
NOTA: ojo al uso del guión bajo ("_"). Hay que usarlo siempre que vayas
a escribir en esa propiedad, y nunca cuando se va a leer.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> ::&cCampo := hArray[cCampo] // Acá quiero que ::idempresa :=
> 1 tome el valor del hash
__ObjSendMsg( Self, "_" + cCampo, hArray[ cCampo ] )
y si lo que quieres es leer su valor, entonces:
__ObjSendMsg( Self, cCampo ) --> <valor>
NOTA: ojo al uso del guión bajo ("_"). Hay que usarlo siempre que vayas
a escribir en esa propiedad, y nunca cuando se va a leer.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
- Carlos Ortiz
- Mensajes: 873
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Sobre PROPERTYs y Macros
De primera José, muchas gracias! con esto voy a optimizar las clases.
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar