Contador de Registros dentro de FoxPro

Tengo una tabla con 40 tiendas y dentro de estas tiendas tengo un número distinto de productos, lo que necesito es ponerles una numeración a los productos de cada tienda dependiendo del más caro al más barato, el tema es que el contador debe reiniciar en 1 cada que sea una nueva tienda, pero no lo he podido lograr.

1 respuesta

Respuesta
2

Entiendo perfectamente lo que necesitas hacer, pero lo que no alcanzo a comprender es esto de las tiendas. Me ayudaría mucho si pudieses copiarme las estrucura de las tablas involucradas en este proceso que deseas hacer y de paso podría ser más específico en la explicación.

Si, disculpa mi falta de explicación.

Tengo la siguiente base;

tienda n(4)  ** son las tiendas que poseo identificadas por números

producto n(5)  **son códigos de producto

precio n(4,2)

orden n(250) ** que es donde quiero que se pongan los consecutivos por tienda

entonces cada que se cambia de tienda necesitaría que el contador de "orden" volviera a iniciar y así poder poner el numero de productos que posee cada tienda.

tienda                 producto         precio          orden

1212                   12313               12.50          1

1212                   41211               10                2

4343                     87654            15                 1

4343                    12351              12               2

y así consecutivamente

¿Te sirve un poco más esta explicación?

Muchas gracias.

Crear un nuevo Procedimiento, es decir (ya sabes);

MODIFY COMMAND <el nombre que quieras>

dentro de éste copia lo siguiente y correlo...

&& Entre comillas ponle el nombre de la tabla de las tiendas.
cTabla = 'NombreTabla'
Close Databases All
Close Tables All
Use (cTabla) Exclusive
Select Select(1)
Select * From (cTabla) Order By Tienda, Precio Desc Into Cursor csrOrden
Copy To ListaEnOrden
Use ListaEnOrden
cTienda = ''
Scan
    If cTienda # ListaEnOrden.Tienda
        nSuma = 0
        cTienda = ListaEnOrden.Tienda
    Endif
    nSuma = nSuma+1
    Replace ListaEnOrden.Orden With nSuma
Endscan
Browse

Este procedimeinto te creara una nueva tabla (de nombre "ListaEnOrden.dbf") ordenada por tiendas y precios (descendete).

NOTA: De acuerdo a los datos que me enviaste presupuse que el campo Orden era numérico.

Si te vale el resultado y quisieras meterlo dentro de tu tabla podrías abrir tu tabla de tiendas en modo exclusivo, luego hacer DELETE ALL y luego APPEND FROM ListaEnOrden y ya!

Me olvidé de PACK al final para quitar los datos residuales..., es decir:

  1. DELETE ALL
  2. APPEND FROM ListaEnOrden
  3. PACK

¡Gracias! De verdad fue de mega ayuda. 

Es perfecto.

De nada Jorge; me alegro mucho te haya servido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas