Estoy teniendo problemas para generar una funci贸n param茅trica que genere planillas con la clase TExcels, la raz贸n naturalmente no es un bug de la clase sino falta de ingenio.
Utilizo un array que contiene un block de c贸digo con los datos que deben colocarse en cada celda, cuando cargo la celda, si es una f贸rmula de excel no me funciona el block de c贸digo, creo porque no es una expresi贸n v谩lida para el block.
Alguien me puede sugerir como resolverlo?
Aqui va el c贸digo:
..........
aTitulo[1]:="KGS.PIE"
aTitulo[2]:="PROM."
aDato[1]:={||LINCVH->PESO}
aDato[2]:={||+( _CELL(nRow,19)/_CELL( nRow, 18) )}
aAlign[1]:=3
aAlign[2]:=3
aAncho[1]:=13
aAncho[2]:=10
aPicture[1]:="#,##0"
aPicture[2]:="#,##0"
aFormula[1]:=.F.
aFormula[2]:=.T.
aTotal[1]:=.T.
aTotal[2]:=.T.
FOR i= 1 to len(aDato)
DEFINE XLS FORMAT aFormat[i] PICTURE aPicture[i]
NEXT
//Creo objeto XLS
XLS oXLS FILE &cNomFile AUTOEXEC
//establezco ancho de columnas
FOR i=1 TO len(aDato)
XLS COL i WIDTH aAncho[i] OF oXLS
NEXT
//Escribo titulos en la primera Fila
nRow=1
FOR i = 1 to LEN(aDato)
@ nRow, i XLS SAY aTitulo[i] FONT aFnt[2] SHADED;
BORDER 64 ALIGNAMENT 2 OF oXLS
NEXT
GO TOP
DO WHILE !Eof()
nRow++
FOR i to len(aDato)
IF !aFormula[i]
@ nRow, i XLS SAY EVAL(aDato[i]) FONT aFnt[3] FORMAT ;
aFormat[i] ALIGNAMENT aAlign[i] OF oXls
ELSE
// aca da error
@ nRow, 20 XLS FORMULA aDato[i] FONT aFnt[3] FORMAT ;
aFormat[20] ALIGNAMENT aAlign[20] OF oXls
ENDIF
NEXT
SKIP
ENDDO
nRow++
FOR I=1 TO len(aDato) //Pongo los totales
@ nRow, i XLS FORMULA _SUM(2,i,nRow,i) FONT aFnt[2] FORMAT ;
aFormat[i] ALIGNAMENT 3 BORDER 32 OF oXLS
NEXT
ENDXLS oXLS //Fin de la XLS
.......
Utilizo un array que contiene un block de c贸digo con los datos que deben colocarse en cada celda, cuando cargo la celda, si es una f贸rmula de excel no me funciona el block de c贸digo, creo porque no es una expresi贸n v谩lida para el block.
Alguien me puede sugerir como resolverlo?
Aqui va el c贸digo:
..........
aTitulo[1]:="KGS.PIE"
aTitulo[2]:="PROM."
aDato[1]:={||LINCVH->PESO}
aDato[2]:={||+( _CELL(nRow,19)/_CELL( nRow, 18) )}
aAlign[1]:=3
aAlign[2]:=3
aAncho[1]:=13
aAncho[2]:=10
aPicture[1]:="#,##0"
aPicture[2]:="#,##0"
aFormula[1]:=.F.
aFormula[2]:=.T.
aTotal[1]:=.T.
aTotal[2]:=.T.
FOR i= 1 to len(aDato)
DEFINE XLS FORMAT aFormat[i] PICTURE aPicture[i]
NEXT
//Creo objeto XLS
XLS oXLS FILE &cNomFile AUTOEXEC
//establezco ancho de columnas
FOR i=1 TO len(aDato)
XLS COL i WIDTH aAncho[i] OF oXLS
NEXT
//Escribo titulos en la primera Fila
nRow=1
FOR i = 1 to LEN(aDato)
@ nRow, i XLS SAY aTitulo[i] FONT aFnt[2] SHADED;
BORDER 64 ALIGNAMENT 2 OF oXLS
NEXT
GO TOP
DO WHILE !Eof()
nRow++
FOR i to len(aDato)
IF !aFormula[i]
@ nRow, i XLS SAY EVAL(aDato[i]) FONT aFnt[3] FORMAT ;
aFormat[i] ALIGNAMENT aAlign[i] OF oXls
ELSE
// aca da error
aFormat[20] ALIGNAMENT aAlign[20] OF oXls
ENDIF
NEXT
SKIP
ENDDO
nRow++
FOR I=1 TO len(aDato) //Pongo los totales
@ nRow, i XLS FORMULA _SUM(2,i,nRow,i) FONT aFnt[2] FORMAT ;
aFormat[i] ALIGNAMENT 3 BORDER 32 OF oXLS
NEXT
ENDXLS oXLS //Fin de la XLS
.......
Saludos/Regards,
Jos茅 Murugosa
"Los errores en programaci贸n, siempre est谩n entre la silla, el teclado y la IA!!"
Jos茅 Murugosa
"Los errores en programaci贸n, siempre est谩n entre la silla, el teclado y la IA!!"