FoxPro/Visual FoxPro - Ayuda con Logica

   
Vista:

Ayuda con Logica

Publicado por Leo Maraza (15 intervenciones) el 17/06/2010 23:38:03
Hola amigos, me pueden ayudar con lo siguiente, tengo una tabla con 3 campos
Cclase, clase, modelo

? AA A00001
? AA A00002
? AA A00003
? BB B00001
? BB B00002
? BB B00003
? BB B00004
? BB B00005
? CC C00001
? CC C00002
? CC C00003
? CC C00004
? CC C00005
? CC C00006
? DD D00001
? DD D00001
? FF F00001

Lo que deseo es enumar el primer campo con el numero de claes que tiene cada registro, deberia quedar algo asi:

1 AA A00001
2 AA A00002
3 AA A00003
1 BB B00001
2 BB B00002
3 BB B00003
4 BB B00004
5 BB B00005
1 CC C00001
2 CC C00002
3 CC C00003
4 CC C00004
5 CC C00005
6 CC C00006
1 DD D00001
2 DD D00001
1 FF F00001

Gracias por cualquier ayuda, saludos.
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
Imágen de perfil de Mauricio

Ayuda con Logica

Publicado por Mauricio (1367 intervenciones) el 18/06/2010 00:09:56
*
Sele mi_tabla
vcampo = ""

SCAN
vcampo = SUBSTR(modelo,6,1)
REPLACE cclase WITH vcampo
ENDSCAN
*******************
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:Ayuda con Logica

Publicado por Leo Maraza (15 intervenciones) el 18/06/2010 00:33:37
Hola mauricio, es buena la idea pero por coincidencia da, lo que necesito es que me enumere el numero de CClase con el campo Clase.

Osea si en segundo campo tengo 20 registro que me los enumere del 1 al 20, y si en otra clase tego solo 5 registros que me los enumere del 1 al 5.

Gracias.
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 Mauricio

Ayuda con Logica

Publicado por Mauricio (1367 intervenciones) el 18/06/2010 01:21:51
Explicate mejor desde el primer momento entonces:
USE mi_tabla IN 0 ORDER clase
PUBLIC vcampo, vclase
Sele mi_tabla
STORE "" TO vcampo, vclase
SCAN
vclase = clase
SCAN WHILE vclase = clase
vcampo = SUBSTR(modelo,6,1)
REPLACE cclase WITH vcampo
ENDSAN
SKIP -1 && Esto para que inicio con el corte de clase
ENDSCAN
*******************
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 Mauricio

Ayuda con Logica CORREGIDO

Publicado por Mauricio (1367 intervenciones) el 18/06/2010 07:24:52
Tiene error pero aca trato de corregirlo:

USE mi_tabla IN 0 ORDER clase
PUBLIC vclase, vcont
Sele mi_tabla
GO TOP
vclase = ""
vcont = 0
SCAN
vclase = clase
SCAN WHILE vclase = clase
vcont = vcont + 1
REPLACE cclase WITH STR(vcont)
ENDSCAN
IF !EOF() && Si es EOF, termina el proceso caso contrario hace esto:
SKIP -1 && Esto para que inicio con el corte de clase
****************** Resetear contadores
vclase = ""
vcont = 0
ENDIF
ENDSCAN
Prueba y avisa si te funciono!!!!!!!!
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:Ayuda con Logica

Publicado por Juanma Cruz (508 intervenciones) el 18/06/2010 10:35:58
Esto debería funcionar:

*---------------------------------------------------------------
Local vClase, nPivot

Select Tabla
Go top
vClase= Tabla.clase
nPivot=0
Scan
If vClase=Tabla.clase
nPivot+1
Else
nPivot=1
vClase=Tabla.clase
EndIf
Replace cClase with nPivot in Tabla
EndScan

*---------------------------------------------------------------
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:Ayuda con Logica

Publicado por Leo Maraza (15 intervenciones) el 19/06/2010 07:07:14
Gracias amigos por su atencion, funciono.

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