FoxPro/Visual FoxPro - COMO RESTAR DE UN REGISTRO VFP 9

   
Vista:
Imágen de perfil de freddy

COMO RESTAR DE UN REGISTRO VFP 9

Publicado por freddy (10 intervenciones) el 16/12/2015 20:07:29
HOLA DE ANTEMANO GRACIAS POR SU AYUDA A CONTINUACION LES EXPRESO MI PROBLEMA :


ESTOY REALIZANDO UN PROYECTO EN VFP9 SOBRE UN STOCK DE FARMACIA Y QUISIERA SABER COMO SE RESTA DE UN REGISTRO EJEMPLO:

TENGO EN STOCK 25CAPSULAS (ESTAS ESTAN REGISTRADAS EN LA TABLA) LLAMADA VENT

ME VIENEN A COMPRAR 10

QUISIERA SABER COMO REALIZAR ESA RESTA AL MOMENTO DE VENDER EN LA TABLA ME QUEDARIA 15 Y ESOS 15 Q QUEDEN EN LA TABLA POR FAVOR AYUDA

GRACIAS POR TODO
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

COMO RESTAR DE UN REGISTRO VFP 9

Publicado por Fidel José (321 intervenciones) el 16/12/2015 21:18:06
Seleccionar Tabla (SELECT VENT)
Ir al Registro correspondiente ( LOCATE / SEEK() / INDEXSEEK() / GO nREgistro / etc)

* Supongo aquí que el campo se llama "Stock"
REPLACE CampoStock WITH Stock - lnCantidadVendida
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 freddy

COMO RESTAR DE UN REGISTRO VFP 9

Publicado por freddy (10 intervenciones) el 16/12/2015 23:30:49
pero tendria q tomar el registro y restarlo aparte
osea
select vent
public vt
vt=stock
rt=(thisform.text1.text-vt)
replace stock with rt
espero darme a enterder
si no es asi
por favor ayudenme con un ejemplo
gracias por su tiempo y ayuda
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

COMO RESTAR DE UN REGISTRO VFP 9

Publicado por Fidel José (321 intervenciones) el 17/12/2015 16:43:03
Freddy, normalmente vas a estar vendiendo o comprando, o tramitando una devolución, de varios artículos.
Estos varios artículos los recoges en un cursor, que es lo que vas mostrando en un control Grid.
Mirá este ejemplo hecho con cursores (simplifico todo lo que corresponde a precio, impuestos, totales, etc. para concentrarme únicamente en stock.)
En la práctica, los cursores curVentas y curCompras son la base para actualizar tablas de detalles de ventas y compras.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
* Creo un cursor con productos (id, Descripción y una cantidad inicial)
CREATE CURSOR curProductos("idProducto" I ,"Descrip" c(40),;
		"Compra" n(12,2),;
		"Venta" n(12,2),;
		"Stock" n(12,2))
 
FOR i=1 TO 10
	INSERT INTO curProductos(Descrip,idproducto,stock) ;
		VALUES ("PRODUCTO"+TRANSFORM(i), (i+i^2) , 0 )
NEXT
SELECT curProductos
INDEX on idProducto TAG idProduc
* Miro el cursor de productos
SELECT curProductos
GO top
BROWSE
 
 
* Simulo una operación de Compras
CREATE CURSOR curCompras ("IdProducto" I , "Cantidad" n(12,2))
 
RAND(-1)
FOR i=1 TO 10
	INSERT INTO curCompras (idproducto,cantidad) VALUES (i+i^2, CEILING(RAND()*100 ) )
NEXT
 
* Actualizo Stock por Compras
SELECT curCompras
SCAN
	IF INDEXSEEK(idProducto,.t.,"curProductos","idProduc")
		SELECT curProductos
		REPLACE stock WITH stock + curCompras.Cantidad,;
			compra WITH compra + curCompras.Cantidad
	ENDIF
ENDSCAN
 
* Miro el cursor de productos
SELECT curProductos
GO top
BROWSE
 
 
 
* Simulo una operación de Ventas
CREATE CURSOR curVentas ("IdProducto" I , "Cantidad" n(12,2))
 
RAND(-1)
FOR i=1 TO 10
	INSERT INTO curVentas (idproducto,cantidad) VALUES ((i+i^2),CEILING(RAND()*10) )
NEXT
* Actualizo Stock por Ventas
SELECT curVentas
SCAN
	IF INDEXSEEK(idProducto,.t.,"curProductos","idProduc")
		SELECT curProductos
		REPLACE stock WITH stock - curVentas.Cantidad,;
			venta WITH venta + curVentas.Cantidad
	ENDIF
ENDSCAN
 
 
* Miro el cursor de productos
SELECT curProductos
GO top
BROWSE
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

COMO RESTAR DE UN REGISTRO VFP 9

Publicado por wences (30 intervenciones) el 17/12/2015 09:25:28
En el momento de registrar la venta lees el stock , por si hubiese otra venta mientras generas esa (no se si en tu caso se puede dar) , y una vez leido el stock haces la operación y la guardas ...

SELECT tabla
set order to clave
SEEK producto
IF .NOT. EOF()
replace stock with stock-vendido
ENDIF
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