Sustitución de macro en PB

¿Hay alguna manera de tratar el contenido de una variable string como un literal de cadena de caracteres?
Me explico, en Visual Fox Pro, yo hago lo siguiente:
a = "1+1"
b = &a
** esto ultimo es igual que b = 1 + 1
*Otro ejemplo
1. Se tienen 12 botones por cada Mes
2. Los botones se llaman Boton_1, Boton_2 ... Boton_12
3. Quiero poner por código el nombre del mes al titulo del boton
En Visual Fox yo hacia esto:
FOR i = 1 to 12
Boton_x = "Boton_" + TRIM(STR(i))
This.&Boton_x.caption = tabla.mes
ENDFOR
** Este for me ahorraria tener que escribir 12 líneas con:
this.Boton1.caption = tabla.mes
skip
this.Boton2.caption = tabla.mes
skip
etc, etc, etc
¿Hay alguna forma de hacerlo en PB?

1 Respuesta

Respuesta
1
1. Fíjate la función EVALUATE de la DW. POné la expresión que querés en un campo y después llamá al Describe con el evaluate.
dw_1. Describe("evaluate(campo, fila)")
El texto de los botones es la propiedad Text. Los botones a su vez son una propiedad de la ventana o control en el que están. Los controles de la ventana están en un arreglo llamado control.
En el evento open de la ventana podes recorrer este arreglo y obtener los botones.
//codgo para el open de la ventana
integer li_control, li_j
commandButton botones[]
FOR li_control = 1 TO Upperbound(control[])
IF (Control[li_control].TypeOf () = CommandButton!) and (Upper(Control[li_control].Tag) <> "NO") THEN
li_j ++
botones[li_j] = Control[li_control]
END IF
NEXT
Ahora podes recorrer botones[] y setearles la propiedad text (botones[li_i].text) a lo que quieras.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas