FoxPro/Visual FoxPro - solicito ayuda para programa de clientes

   
Vista:

solicito ayuda para programa de clientes

Publicado por jero (9 intervenciones) el 22/11/2013 23:58:51
Buenas estoy realizando un programa en vfp y tengo los siguientes problemas
1.- que el formulario me abre siempre con el 1er registro de la base de datos y quiero se me abra con el registro en blanco
2.- Como dar la condición de que cuando estoy introduciendo un cliente me detecte si el código de este existe y si es así me lo digo y no pueda darle de alta.
Gracias por vuestra ayuda
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

solicito ayuda para programa de clientes

Publicado por Fidel José (558 intervenciones) el 23/11/2013 12:58:29
1) Tendríamos que saber qué objeto estás utilizando para dar de alta un cliente. De todos modos te comento, no es buena idea que un formulario se abra con un registro en blanco. La indicación de alta debe ser una decisión que toma el operador. Luego, supongamos que la tabla se llama "clientes".
SELECT * FROM CLIENTES WHERE .F. into cursor NwCliente READWRITE && crea un cursor vacío con la estructura de la tabla
SELECT NWCLIENTE
APPEND BLANK
Rellenas los campos y cuando confirmas el alta, puedes hacer:

INSERT INTO CLIENTES SELECT * FROM NwCliente WHERE .T.
SELECT NWCLIENTE
USE

En resumen, no trabajas sobre la tabla, sino sobre un cursor basado en la tabla. Si no confirmas el alta (cliente repetido, arrepentimiento, etc.), la tabla no se entera y no hay que quitarle un vacío.
Aun trabajando con Buffering 5, es mejor utilizar la técnica del cursor porque nunca falla.


2) La única forma de controlar que el cliente no fue grabado, es verificar a través del número fiscal (Clave Unica de Identificación Tributaria o similar). Esto lo debes hacer en el evento valid del textbox donde colocas el número fiscal.
El código de cliente debe ser un consecutivo autodeterminado. Eso lo puedes gestionar a través de una tabla de numeradores (mi recomendación) o directamente calculando el último código ingresado en la tabla de clientes.
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