FoxPro/Visual FoxPro - Perdida a pasar Campos de Curso a Tabla

   
Vista:

Perdida a pasar Campos de Curso a Tabla

Publicado por Jesus (85 intervenciones) el 18/11/2013 19:23:53
Mi Problema es que para Genera un Listado de Asistencia paso datos de una Tabla Matricula a un Cursor q luego pasa los datos a la Tabla Asistencia q es q Alimenta el Reporte. pero se pierden campos cuando el aula es de 15 alumnos solo me visualiza 10 o cuando son 72 solo 25 y no se por que les envio el código q estoy usando.

Set NullDisplay To " "
Xmes=SUBSTR(ALLTRIM(Ast_Alu2s.Fec_Ast),4,2)
Xcon=0
CALC MAX(Ast_Alu2s.Ncl_Ast) TO Xvalor
nDcl_Asts=51
nPrevios=7
ni=1

DIMENSION gaCampos(nPrevios+nDcl_Asts,4)
gaCampos[ni,1]="Dat_Alu"
gaCampos[ni,2]="C"
gacampos[ni,3]=80
gaCampos[ni,4]=0

ni=ni+1
gaCampos[ni,1]="Cod_Alu"
gaCampos[ni,2]="C"
gacampos[ni,3]=10
gaCampos[ni,4]=0

ni=ni+1
gaCampos[ni,1]="Fec_Ast"
*gaCampos[ni,2]="D"
gaCampos[ni,2]="C"
gacampos[ni,3]=10
gaCampos[ni,4]=0

ni=ni+1
gaCampos[ni,1]="Per_Aca"
gaCampos[ni,2]="C"
gacampos[ni,3]=6
gaCampos[ni,4]=0

ni=ni+1
gaCampos[ni,1]="Pln_Est"
gaCampos[ni,2]="C"
gacampos[ni,3]=4
gaCampos[ni,4]=0

ni=ni+1
gaCampos[ni,1]="Aul_Ast"
gaCampos[ni,2]="C"
gacampos[ni,3]=6
gaCampos[ni,4]=0

ni=ni+1
gaCampos[ni,1]="Ord_Nro"
gaCampos[ni,2]="C"
gacampos[ni,3]=3
gaCampos[ni,4]=0

FOR i=1 TO nDcl_Asts
gaCampos[i+ni,1]="Clase_"+LTRIM(STR(i))
gaCampos[i+ni,2]="C"
gacampos[i+ni,3]=15
gaCampos[i+ni,4]=0
NEXT

* Creamos el cursor transpositor desde el array
CREATE CURSOR curShow FROM ARRAY gacampos
SELECT curShow

INDEX on Dat_Alu TAG cursNom && se indexa el cursor por Dat_Alu de empleado
lcExact=SET("Exact")
SET EXACT ON

SELECT Ast_Alu2s
Set Filter to Allt(Ast_Alu2s.Aul_Ast)=Allt(Thisform.Aula.Value) And;
Allt(Ast_Alu2s.Cod_Asg)=Allt(Thisform.Cod_Asg.Value) And;
Righ(Allt(Ast_Alu2s.Per_Aca),1)=Allt(Thisform.Semestre1.Value)
GO Top
INDEX on ALLTRIM(Dat_Alu) TAG Xalu
SET ORDER To Xalu

SCAN
lcOrd_Nro=ALLTRIM(Ord_Nro)
lcDat_Alu=ALLTRIM(Dat_Alu)
ldcod_Alu=ALLTRIM(Cod_Alu)
ldfec_Ast=ALLTRIM(Fec_Ast)
ldPer_Aca=ALLTRIM(Per_Aca)
ldPln_Est=ALLTRIM(Pln_Est)
ldAul_Ast=ALLTRIM(Aul_Ast)

&& Graba los Demas Datos del Alumno del Aula
IF !INDEXSEEK(lcDat_Alu,.t.,"curShow","CURSNOM")
INSERT INTO curShow (Dat_Alu, Cod_Alu, fec_Ast, Per_Aca, Pln_Est, Aul_Ast, ord_nro) VALUES (lcDat_Alu,;
ldcod_Alu, ldfec_Ast, ldPer_Aca, ldPln_Est, ldAul_Ast, lcOrd_nro)
ENDIF

&& Graba solo los dias de clases del Aula
FOR I=1 TO Xvalor
LcCampo="Clase_"+LTRIM(STR(I))
SELECT CurShow
INDEXSEEK(lcDat_Alu,.t.,"CurShow","CURSNOM")
replace (lcCampo) WITH Ast_Alu2s.Asi_Ast
SELECT Ast_Alu2s
SKIP
ENDFOR

ENDSCAN

SELECT CurShow
COPY TO Asistencias

************************
Select Distinc Fec_Ast From Asistencias;
ORDER BY Fec_Ast Asc;
Into Table Tmp

SELECT Tmp
GO Top
DO WHILE !EOF()
Xdf=Xdf+" "+LEFT(ALLTRIM(Tmp.Fec_Ast),2)
Xdm=Xdm+" "+Xmes
SKIP
ENDDO
************************
SET EXACT &lcExact && devuelve la configuración
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