FoxPro/Visual FoxPro - ¡Por favor! ¿Me pueden decir donde le erro??

   
Vista:

¡Por favor! ¿Me pueden decir donde le erro??

Publicado por Andrea (325 intervenciones) el 13/04/2008 15:03:59
Hola a todos.
Tengo un problema grande sobre un programa que está funcionando (es decir, que fue una modificación) y no lo puedo solucionar.

Generé una VISTA LOCAL (ficha_mov) con el Diseñador de Vistas donde hay 2 tablas combinadas.

Como quiero que desde esa vista se actualice las tablas nativas (datos_mov, datos_clientes), habilité la opción "ENVIAR ACTUALIZACIONES SQL" y habilité los campos que se pueden actualizar en el Diseñador.

Hasta acá todo bien.

En el FORM, cargué esta vista en el "Entorno de Datos" y se la asigné a un GRID que muestra perfectamente lo que hay

EL PROBLEMA QUE TENGO ES QUE CADA VEZ QUE HAGO UNA MODIFICACIÓN EN ALGÚN DATO DE LA VISTA (lo guardo con el comando UPDATE de SQL) NO SE ACTUALIZA CORRECTAMENTE LOS DATOS EN EL GRID.

LA ACTUALIZACION FUNCIONA, PORQUE SI CIERRO Y VUELVO A ABRIR EL GRID LOS DATOS APARECEN ACTUALIZADOS.

He intentado todo:
- REQUERRY("ficha_mov")

- Hacer foco en el GRID y luego hacer un REFRESH

¿QUÉ ESTOY HACIENDO MAL???????????????????????????

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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por Plinio (7771 intervenciones) el 13/04/2008 17:24:33
Despues del REQUERY dale un BROWSE a ficha_mov para ver si te lo muestra actualizado. (es para probar que esta pansado)
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por jose camilo (1 intervención) el 13/04/2008 19:57:51
DALE UN REFRESH
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por Andrea (325 intervenciones) el 14/04/2008 00:28:00
Refresh lo hago y sigue igual

Si hago un BROWSE me muestra la tabla actualizada (es decir, que está correcto) y al salir del BROWSE el GRID se muestra bien

Pero si elimino la línea del BROWSE, el GRID sigue mostrándose mal

Resumiendo:
- TANTO SI SALGO DEL FORM COMO SI HAGO UN BROWSE, LA VISTA Y LAS TABLAS ORIGEN SE ACTUALIZAN BIEN (y también se muestran bien en el GRID)

- PERO SI NO HAGO NINGUNA DE LAS 2 COSAS ANTERIORES, LA TABLA NO SE ACTUALIZA HASTA QUE SALGO DEL FORM

¿QUE PUEDE SER???
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por KONG (681 intervenciones) el 14/04/2008 03:45:02
que tal si haces el refresh al form
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por kong (681 intervenciones) el 14/04/2008 03:54:51
o tal vez tu idea es de copiar la estructura de un cursor, eso si es simple.
SELECT * FROM cursororigen WHERE .F. INTO CURSOR cursordestino;
READWRITE
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por Andrea (325 intervenciones) el 14/04/2008 18:35:16
Lo del Refresh no es porque lo hice en varias partes y el problema sigue: no actualiza correctamente las tablas base mientras estoy en el formulario.

Otro dato que los puede ayudar, es contarles que esta vista (y el GRID) están dentro de un PAGEFRAME en la PAGE2

Cuando voy al PAGE1 que tiene otro GRID con una vista independiente de la anterior, tampoco lo muestra actualizado.

Si salgo del FORMULARIO y vuelvo a entrar, todo se muestra bien, PERO NO ME PARECE BUENO QUE EL USUARIO TENGA QUE SALIR DEL FORM Y VOLVER A ENTRAR PARA QUE SE MUESTREN LOS DATOS CORRECTAMENTE.

¿ALGUNA OTRA IDEA???
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por Plinio (7771 intervenciones) el 15/04/2008 13:06:04
Dale un refresh al page
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por jorge (422 intervenciones) el 14/04/2008 18:52:23
Hola
1) el grid de preferencia que trabaje sobre un cursor y no una tabla,

2) en un procedimiento llenas el grid: Ejemplo
Select * from Tabla 1 INTO CURSOR tmpcur1
ThisFrom.grid1.recordsource="tmpCur1"
ThisForm.grid1.requery

3) Cuando Actualizas, supongo que lo haces mediante un boton.
inmediatamente despues ejecutas el procedimiento anterior (2)
Ej;
update tabla set campo="valor" WHERE clave=id
ThisForm.ActualizaGrid

de esta forma, el grid se vuelve mas estable por que lo controlas tu, al utilizar cursores
tambien tienes el proceso d actualizacion del grid, en un procedimiento y lo usas cuando deseas. otro factor es que despues de cambios importantes, modificacion, insercion, borrado, te aseguras que vuelves a generar el cursor con la informacion nueva y la guardas en el grid

espero te sirva
Saludos
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por kong (681 intervenciones) el 15/04/2008 05:34:01
creo que ya se donde esta el error!!!!!!!!!!
Si tus datos del grid son tomadas de la vista, pero si la vista no se actualiza, entonces no es posible que el grid muestre los cambios.....En otras palabras, intenta actualizar la vista en alguna rutina, cada vez que guardes la informacion.

me avisas.
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

RE:¡Por favor! ¿Me pueden decir donde le erro??

Publicado por Edgardo Mejia (1 intervención) el 16/05/2008 22:11:37
Puedes utilizar un Tableupdate() para que el mismo momento te actualice la tabla, como ya usaste el refresh el grid se tiene que actualizar con los datos ya modificados.
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