FoxPro/Visual FoxPro - cursor vs tabla

 
Vista:
sin imagen de perfil

cursor vs tabla

Publicado por wenceslao piraquive (137 intervenciones) el 18/09/2010 16:54:28
hola a todos, estoy haciendo un programa de facturacion pos, uso un cursor donde guardo la informacion ingresada, a este cursor le quito, modifico valores y cuando pienso imprimir la factura, tomo el cursor y la vaceo en una tabla, la cual imprimo.

Bueno hasta ahi todo bien, pero me encuentro que imprimo en un equipo y cuando imprimo en otro terminal, me sale la informacion del primer equipo, que estara sucediendo??

Ademas, si pienso cambiar la cantidad de algun producto en el grid que muestra el cursor, me actualiza el grid y el texto donde voy colocando el parcial de lo facturado no se refresca y hay que darle dos veces enter en campo del grid donde se cambio la cantidad.

estoy usando algo asi

sum c_curso.cantidad*c_cursor.valor thisform.text1.value

con esto dediera funcionar, entoces que estara pasando??

espero me colaboren con estas dos inquietudes.

Desde colombia muchas gracias por sus aportes.
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:cursor vs tabla

Publicado por Edgar Zambrano (31 intervenciones) el 23/09/2010 20:37:21
no entendi muy bien lo que necesitas y según dices tu aplicación esta en un entorno de red compartida (multiusuario)... lo que deberias es filtrar los datos de la tabla donde recojes la información con un campo switch que identifique en equivoque estas imprimiendo o que usuario es el que imprime.

el otro problema si no entendi lo que necesitas.
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
sin imagen de perfil

RE:cursor vs tabla

Publicado por victor perez (278 intervenciones) el 04/10/2010 07:06:23
Hola,

Tampoco entiendo tu problema. Debes grabar antes de imprimir y para poder controlar el numero de factura se hace un seek del numero, si lo encuentra (al momento de grabar) debe incrementarlo en "1" y asi suceviamente. No importa cuanto te demores con el form de facturacion abierto mientras no Cliquees en grabar no se grabara el numero de factura en el registro.

Aqui el asunto esta que las facturas tienen un numero preimmpreso y alli a veces es donde puede haber incongruencias. Si la persona se demora entre grabar e imprimir. Yo solucionaria ese problema haciendo que se imprima al momento de guardar y listo. Algunas compañias usan una impresora por terminal y asi los formularios continuos se actualizan segun la numeracion en uso...util tambien en sucursales por ejemplo, a menos que cada sucursal use su propio sistema de numeracion.

En mi caso en particular, las facturas no estan preimpresas, por ahora, y usualmente una sola persona imprime asi que es facil de controlarlo si usaramos un sistema preimpreso de facturas.

He visto en muchos lugares que se imprimen El numero de factura preimpresa (ya viene en el documento) y el numero de factura interna, generada por la computadora.

Espero haber contribuido con algo...en realidad es que no se lo que deseas.

Victor,
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
sin imagen de perfil

RE:cursor vs tabla

Publicado por wenceslao piraquive (137 intervenciones) el 04/10/2010 21:13:33
ok, victor he solucionado lo de refrescar el grid, pero me sigue molestando la impresion; a ver te cuento, yo guardo la informacion en un cursor y luego si todo va bien, le cambio el numero de factura, el cual se toma internamente y al hacerlo se incrementa en 1; luego vacio el contido del cursor en una tabla de donde saco el informe de la factura para imprimirla; hasta ahi todo bien... pero en ocasiones me imprime en una terminal, lo que se imprimio en otra, es decir pareciera que a la tabla donde vacio el cursor le faltara algo; cabe anotar que no todas las veces sucede, sino de vez en cuando.

que debo hacer???
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:cursor vs tabla

Publicado por DEVILSITO (311 intervenciones) el 12/10/2010 17:18:27
No entiendo cuando señalas:
"pero me encuentro que imprimo en un equipo y cuando imprimo en otro terminal, me sale la informacion del primer equipo"
El cursor es una tabla de memoria (no fisica) de modo que cuando se le da un USE o cierras el programa, esta desaparece y es propia del equipo en que estas trabajando.
La ventaja de usar cursores es lejos la mejor opcion frente a tablas auxiliares o locales (a nivel de PC)
La unica precaucion es que cuando cierras el cursor PREVIAMENTE DEBES GRABAR A LA TABLA DE LA BASE DE DATOS.
Como sabras, los cursores se pueden crear por: SELECT FROM, y por CREATE CURSOR (otro par de ventajas y extremadamente faciles de implementar)
Si cursor y tabla tienen los mismos campos y tipos (munerico, caracter, fecha) Las cosas se facilitan mas aún con SCATTER MEMVAR, GATHER MEMVAR (esto en el caso de la BD nativa de FOX)

Suerte
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
sin imagen de perfil

RE:cursor vs tabla

Publicado por wenceslao piraquive (137 intervenciones) el 12/10/2010 22:07:10
ok, DEVILSITO pero me sigue pasando lo mismo, es decir tengo la aplicacion compartida en una red, y si mando a imprimir en uno de los equipos, a veces me toma la informacion de otro equipo que haya impreso algo; por decir una cosa:
un equipo imprimio : alambre, puntillas, etc,
entonces otro equipo donde se ingreso: papel, seguetas, etc,deberia imprimir lo que registro, pero a veces imprime sus datos + los datos del que imprimio puntillas, alambre, etc.

yo para imprimir vacio el cursor en una tabla fisica, de donde saco el reporte; no obstante los numeros de folio son diferentes.

alguien me decia que sacara el reporte del cursor y asi me quitaba el problema.. lo hice, pero si he ingresado 10 productos, el reporte o me muestra el primero o me muestra el segundo.

Que debo hacer???
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