Pues despues de dos días de estar invenstigando como programar las tablas dinámicas de Excel, que nos pueden ayudar a darle otro aspecto a los reportes que queramos hacer con una hoja electrónica:
Logre hacer estos otros métodos para la TExcels, y me generá de una manera rápida una tabla pivoteada ó tabla dinámica, con solo poner este código:
Code: Select all
*---------------------------------
* Crea una tabla dinámica en Excel
*---------------------------------
FUNCTION GenTablaDinamica()
LOCAL aPagina[2], aFilas[2], aColumnas[1], aDatos[1], ;
cRango, cArchivo, oExcel, oPivot
* Rango de celdas de la planilla
cRango = "A1:F325"
cArchivo= cFilePath( GetModuleFileName( GetInstance() )) + "Ventas.xls"
*--- Arrays con los datos de la tabla dinamica
aPagina[1]="Vendedor"
aPagina[2]="Zona"
aFilas[1]="Marca"
aFilas[2]="Modelo"
aColumnas[1]="Anio"
aDatos[1]="Cantidad"
oExcel := TExcelScript():New()
oExcel:Add( cArchivo )
oExcel:Visualizar(.T.)
oExcel:TablaDinamica( cRango )
//Filas
oExcel:SetRowTD( aFilas[1] )
oExcel:SetRowTD( aFilas[2] )
//Columnas
oExcel:SetColumnTD( aColumnas[1] )
//Paginas
oExcel:SetPageTD( aPagina[1] )
oExcel:SetPageTD( aPagina[2] )
//Datos
oExcel:SetDataTD( aDatos[1] )
oExcel:NameSheet( "Hoja1", "Tabla Dinámica" )
oExcel:End(.f.)
RETURN NIL
Si a alguien le interesa puede bajar la clase TExcels modificada con estos metodos, mas la la hoja excel para que funcione el ejemplo arriba indicado desde esta direccion:
http://tecnisistemas.com/fideck/modulos ... PIVOTT.ZIP
Espero les pueda servir.
Saludos.
Carlos Sincuir