Ayuda
Publicado por Luis Sarabia (1 intervención) el 30/06/2007 02:05:54
Tengo un problema con un código que estoy desarrollando a mi parecer esta correcto pero algo pasa que no me esta dando los resultados correctos ya e probado de varias formas pero sigo sin tener éxito.
Para esto tengo una tabla con la cual estoy trabajando los campos en los cuales me estoy centrando para esta función son 36 ( 9 son para calificaciones de 9 materias de forma regular esta) , 9 muestran la situación de cada alumno ejem: C.R. (Curso de Repetición) o Nada si es que es regular. Se cuenta con esta informasion y es la que se va a usar para comparar, 9 siguientes son para extraordinarios, Tambien se cuenta con esta informasion y 9 para situación del extraordinario que es la que se reuiere ejem: EXT, EXT C.R. ( Si en el periodo normal tiene un C.R. en situación de la calificación correspondiente mas o menos el código para k me de este resultado es el siguiente:
Para las nueve materias:
SET DEFAUL TO "c:\registros\data"
CLEAR
CLOSE TABLES
LOCAL sit_est
sit_est1 = "EXT"
sit_est2 = "EXT C.R."
STORE 0 TO gnCount
GO TOP
DO WHILE .NOT. EOF()
IF se_01 = "C.R." AND ical_01 > "0" && se_01 = situacion, si es regular o no
gnCount = gnCount + 1 && Solo un contador
REPLACE ise_01 WITH sit_est2 WHILE ical_01 > "0" && Toma la informasion
ENDIF
IF se_01 <> "C.R." AND ical_01 > "0"
gnCount = gnCount + 1
REPLACE ise_01 WITH sit_est1 WHILE ical_01 > "0"
ENDIF
SKIP 1
ENDDO
WAIT WINDOW "Registros Coincidentes :"+LTRIM(STR(gnCount)) NOWAIT
GO TOP
DO WHILE .NOT. EOF()
IF se_02 = "C.R." AND ical_02 > "0"
gnCount = gnCount + 1
REPLACE ise_02 WITH sit_est2 WHILE ical_01 > "0"
ENDIF
IF se_02 <> "C.R." AND ical_02 > "0"
gnCount = gnCount + 1
REPLACE ise_02 WITH sit_est1 WHILE ical_01 > "0"
ENDIF
SKIP 1
ENDDO
WAIT WINDOW "Registros Coincidentes :"+LTRIM(STR(gnCount)) NOWAIT
El mismo código es para los siguientes 7 campos y uso la misma estructura el problema es que en algunos no me respeta la condición " ical > "0"" o bien si se_01 = "C.R." por consiguiente me tendría que dar "EXT C.R." pero en algunos casos no lo hace.
Si alguien tiene idea que es lo que esta pasando o en donde estoy cometiendo el error y que me pueda ayudar a resolver este caso se lo voy a agradecer.
Saludos
L. Sarabia
Para esto tengo una tabla con la cual estoy trabajando los campos en los cuales me estoy centrando para esta función son 36 ( 9 son para calificaciones de 9 materias de forma regular esta) , 9 muestran la situación de cada alumno ejem: C.R. (Curso de Repetición) o Nada si es que es regular. Se cuenta con esta informasion y es la que se va a usar para comparar, 9 siguientes son para extraordinarios, Tambien se cuenta con esta informasion y 9 para situación del extraordinario que es la que se reuiere ejem: EXT, EXT C.R. ( Si en el periodo normal tiene un C.R. en situación de la calificación correspondiente mas o menos el código para k me de este resultado es el siguiente:
Para las nueve materias:
SET DEFAUL TO "c:\registros\data"
CLEAR
CLOSE TABLES
LOCAL sit_est
sit_est1 = "EXT"
sit_est2 = "EXT C.R."
STORE 0 TO gnCount
GO TOP
DO WHILE .NOT. EOF()
IF se_01 = "C.R." AND ical_01 > "0" && se_01 = situacion, si es regular o no
gnCount = gnCount + 1 && Solo un contador
REPLACE ise_01 WITH sit_est2 WHILE ical_01 > "0" && Toma la informasion
ENDIF
IF se_01 <> "C.R." AND ical_01 > "0"
gnCount = gnCount + 1
REPLACE ise_01 WITH sit_est1 WHILE ical_01 > "0"
ENDIF
SKIP 1
ENDDO
WAIT WINDOW "Registros Coincidentes :"+LTRIM(STR(gnCount)) NOWAIT
GO TOP
DO WHILE .NOT. EOF()
IF se_02 = "C.R." AND ical_02 > "0"
gnCount = gnCount + 1
REPLACE ise_02 WITH sit_est2 WHILE ical_01 > "0"
ENDIF
IF se_02 <> "C.R." AND ical_02 > "0"
gnCount = gnCount + 1
REPLACE ise_02 WITH sit_est1 WHILE ical_01 > "0"
ENDIF
SKIP 1
ENDDO
WAIT WINDOW "Registros Coincidentes :"+LTRIM(STR(gnCount)) NOWAIT
El mismo código es para los siguientes 7 campos y uso la misma estructura el problema es que en algunos no me respeta la condición " ical > "0"" o bien si se_01 = "C.R." por consiguiente me tendría que dar "EXT C.R." pero en algunos casos no lo hace.
Si alguien tiene idea que es lo que esta pasando o en donde estoy cometiendo el error y que me pueda ayudar a resolver este caso se lo voy a agradecer.
Saludos
L. Sarabia
Valora esta pregunta


0