Me ha surgido la necesidad de generar un diálogo con unos gets que se deben crear dinámicamente, es decir que bien puede tener 2 o n gets dependiendo de cuántos campos tenga una tabla. Puede alguien darme una mano por favor.
Con el siguiente código me genera bien los says, también se dibujan los gets pero parece que el valor de todos los gets creados toman el del último.
- Code: Select all Expand view
local asay:=array(nfields) //Texto para los says
local aoget:=array(nfields) //Variables para los objeto Get
local avarget:=array(nfields) //Variables con el contenido del oGet
for n:=1 to nfields
asay[n]:=ors:Fields(n-1):Name //Asigno nombre del campo
avarget[n]:=cvaltochar(ors:Fields(n-1):Value) //Asig el valor
next
DEFINE dialog odlgReg from 1,1 to (nfields*30)+30,150 title "Edición de registro" pixel
for n:=1 to nfields
tmp:=n //Si no uso esto devuelve un error al generar el get
@fila,colum say asay[n] of odlgReg pixel //Esto genera bien
@fila,Colum+30 get aoget[tmp] var avarget[tmp] of odlgReg pixel update size 30,10 //<-- Aquí tengo el problema
fila+=15
next
Parece ser por la forma en que el TGet asigna el valor mediante un codeblock bsetget......no se.
Estoy dándole vueltas a esto y no le encuentro solución.
De antemano muchas gracias.
Marcelo Jingo