FoxPro/Visual FoxPro - Campos en Formularios

 
Vista:

Campos en Formularios

Publicado por Rafael Apesoa (8 intervenciones) el 10/03/2020 18:50:58
Buenas!. Estoy volviendo a programar en VFP, despues de mucho tiempo, y resulta que tengo un problema al iniciar un formulario.
Cuando ingreso al mismo, tanto las variables fechas como las numéricas, quedan en blanco sin actualizar el valor, ya sea la fecha del dia o el valor 0 repectivamente. Puse en LOAD el valor de cada variable y un refresh, y no dio resultado. Tuve que agregar un boton para que haga este trabajo y la verdad es incomodo para los operadores acordarse de apretarlo. La verdad no consigo recordar que se hace. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Campos en Formularios

Publicado por Fidel José (657 intervenciones) el 10/03/2020 23:37:07
Dentro de un formulario scx la mejor opción es trabajar con propiedades del formulario, antes que con variables, salvo en los métodos del formulario donde uno utiliza variables definidas como locales.
Luego lias las propiedades a los controles mediante ControlSource. Recordar que el valor de ControlSource siempre es un script, por lo que si son propiedades del formulario deben ir encomilladas:
Thisform.Text_x,ControlSource = "Thisform.nompropiedad"

Alternativamente, puedes crear un cursor en lugar de propiedades del formulario, en cuyo caso, la relacion surge de:
Thisform.Text_x.ControlSource = lcNombreCursor + "." + lcNombreCampo

Si el nombre de cursor no es una variable y el nombre del campo tampoco, puedes utilizar:
Thisform.Text_X.ControlSource = "miCursor.Fecha" && suponiendo que el cursor se llama "miCursor" y el campo "Fecha".

La asignación de ControlSource se debe hacer en el Init del Formulario ó en un método que dependa del Init del formulario.

Recordar que:
1) Las variables a las cuales no se les asigna un alcance son siempre PRIVATE y son visibles y modificables desde un método o procedure lanzado desde el método o procedure que las crea.
2) Las variables definidas con la cláusula LOCAL, solamente son visibles en el método o procedure donde se declaran. Son las más recomendables.
3) Las propiedades del formulario, en principio, son públicas para todo el formulario.
4) Los controles de un formulario se crean justo antes de lanzar el método Init del form y después de que se ejecuta el método LOAD y se destruyen al ejecutarse el método Destroy del Form.
5) La secuencia inicial de instanciación de un formulario es:
LOAD
INIT
ACTIVATE
SHOW
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Campos en Formularios

Publicado por Rafael (8 intervenciones) el 11/03/2020 02:59:23
Gracias por las Respuestas..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Campos en Formularios

Publicado por Abel (286 intervenciones) el 11/03/2020 15:30:23
Puedes colocar dentro del evento INIT de cada objeto el valor que deseas que tenga al inicio; por ej.

En el objeto Textbox de fecha; en el evento INIT; escribes:
This.Value = Date()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar