FoxPro/Visual FoxPro - Nombres de campos cursor cambian

 
Vista:

Nombres de campos cursor cambian

Publicado por Santisteban (6 intervenciones) el 11/04/2017 16:17:28
SELECT carnet, idmateria, nota01 ;
FROM Tblnotas ;
inner join TBLmateri on TBLmateri.idmateria = Tblnotas.idmateria ;
where carnet in (select Carnet from TBLalumnos where codgrado = var_codgrado) ;
order byTblmateri.orden ;
into cursor ademico

Con las sentencias SQL estamos bien, todo funciona muy bien.. excepto porque el usuario cambia de carrera, entonces se generan nuevas materias por lo tanto tambien cambian los nombres de los campos del cursor.. en otras palabras el nombre de los campos del cursor no son los mismos, siempre cambian... busco la manera de referirme a ellos en el reporte pero no lo puedo hacer por nombre de campo debido a cambian....

Desde ya muy agradecido por ayuda que me puedan brindar
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 Daniel

Nombres de campos cursor cambian

Publicado por Daniel (4 intervenciones) el 11/04/2017 16:24:40
Cuando haces el select

agregale "AS" a cada campo y ese nombre es el que quedara en el cursor y lo peudes referir siempre con el alias que seria el nombre del campo en el cursor

SELECT carnet as carnet, idmateria as idmateria , nota01 as nota01
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

Nombres de campos cursor cambian

Publicado por Santisteban (6 intervenciones) el 11/04/2017 17:13:34
Gracias por la ayuda te cuento:

La primera vez que se genera el cursor puede tener N cantidad de campos los cuales varían los nombres de los campos:

Ejemplo:
Campo1 = "MT0102"
Campo2 = "CC0102"
Campo3 = "AR0102"
Etc... Hasta 25 campos

El usuario cambia de carrera, por lo tanto cambian los campos
Campo1 = "NL0103"
Campo2 = "MT0103"
Campo3 = "IG0103"

Asi es pues que los nombres de los campos varían unas 40 veces, estos hacen referencia al código de la materia, por tanto no puedo refererme a ellos con nombre de campo...

Como puedo referirme a ellos para generar un reporte ???

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 Daniel

Nombres de campos cursor cambian

Publicado por Daniel (4 intervenciones) el 11/04/2017 23:04:32
intenta recorriendo toda la tabla y renombrando los campos como quieras para luego llamarlos en el reporte

FOR INDICADOR = 1 TO FCOUNT() && FCOUNT ES LA CANTIDAD DE CAMPOS QUE POSEE LA TABLA
CAMPO = FIELD(INDICADOR) && GUARDAS EL NOMBRE DEL CAMPO EN POSICION INDICADOR
CAMPO2 = LEFT(CAMPO,2) && EN ESTA VARIABLE GUARDAS EL NUEVO NOMBRE DEL CAMPO CON EL CUAL HARAS REFERENCIA EN EL REPORTE
ALTER TABLE DBF() RENAME COLUMN &CAMPO TO &CAMPO2 &&renombras el campo
ENDFOR
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

Nombres de campos cursor cambian

Publicado por Santisteban (6 intervenciones) el 12/04/2017 05:28:09
Tome la sugerencia y la aplique al programa pero me da este mensaje de error

Field name is a duplicate or invalid.

Que puedo hacer para solucionarlo.. 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