exportar a Excel En GX9..¿como?
Publicado por Lestat El Vampiro (61 intervenciones) el 22/08/2007 15:07:33
estimados,
necesito pasar una grilla a excel pero la forma en la ke lo hacia en gx8 no me funca...
entonces buscando encontre un codigo el cual indico mas abajo
msg('Cargando Excel...' ,nowait)
&archivo = "C:\AnalisisSol" ------------------------------>doy la ruta donde se guardara el excel
&Ruta = trim(&archivo) + '.xls' --------------->se da trim para no tener problemas
&Planilla.Open(&RUTA) ----->planilla es una variable de tipo excel document
&Planilla.SelectSheet("Ordenes de Trabajo")
&Planilla.Clear()
&Fila=1----> fila en una variable numerica
&Planilla.Cells(&Fila,1).text = 'Análisis Sol.'----> aka se le da la posision en hoja excel
&Planilla.Cells(&Fila,2).text = 'Fecha Sol'----> lo mismo
&Planilla.Cells(&Fila,3).text = 'Nº Sol/O.T.'--->etc
....
. ...
.........
&Planilla.Cells(&Fila,,20).text = 'fecha'--->etc
if &MCliFaLPCo = &ListaAS .or. &Paso = 1
&Planilla.Cells(&Fila,22).text = 'Descripción Origen 1'
&Planilla.Cells(&Fila,23).text = 'Descripción Origen 2'
&Planilla.Cells(&Fila,24).text = 'Descripción Origen 3'
&Planilla.Cells(&Fila,25).text = 'Descripción Origen 4'
&Planilla.Cells(&Fila,26).text = 'Descripción Origen 5'
&Planilla.Cells(&Fila,27).text = 'Tipo de O.T.'
&Planilla.Cells(&Fila,28).text = 'Sucursal'
endif
&Col = 1
do while &Col < 29
&Planilla.Cells(&Fila,&Col).Bold = 1
&Col = &Col + 1
enddo
&Fila = 2
for each line
&Planilla.Cells(&Fila,1).text = &AnalisDCor
&Planilla.Cells(&Fila,2).text = dtoc(OrTra2Fech)
...
...
...
&Planilla.Cells(&Fila,22).text = &TiOt
&Planilla.Cells(&Fila,23).text = CliSucDeno
if &MCliFaLPCo = &ListaAS .or. &Paso = 1
&Planilla.Cells(&Fila,22).text = &OrTra0DOr1
&Planilla.Cells(&Fila,23).text = &OrTra0DOr2
&Planilla.Cells(&Fila,24).text = &OrTra0DOr3
&Planilla.Cells(&Fila,25).text = &OrTra0DOr4
&Planilla.Cells(&Fila,26).text = &OrTra0DOr5
&Planilla.Cells(&Fila,27).text = &TiOt
&Planilla.Cells(&Fila,28).text = CliSucDeno
endif
msg(str(&Regis) ,nowait)
&Regis = &Regis + 1
&Fila = &Fila + 1
endfor
msg('',nowait)
//&Planilla.Show()----> tengo ke abrir el documento excel ya ke solo lo guarda
buemo mediante este codigo puedo pasar a excel ..pero el problema es ke tarda entre 4 a 5 minutos aprox.....mientras ke la misma grilla con la misma cantidad de datos en GX8 se demora menos de un minuto...
por logica supongo ke es necesariooptimizar este codigo...pero no se me ocurre como y noconosco alguna funcion ......
si alguien conoce alguna funcion o un codigo mas optimo...les agradeceria postearlo...
nos vemos :)
necesito pasar una grilla a excel pero la forma en la ke lo hacia en gx8 no me funca...
entonces buscando encontre un codigo el cual indico mas abajo
msg('Cargando Excel...' ,nowait)
&archivo = "C:\AnalisisSol" ------------------------------>doy la ruta donde se guardara el excel
&Ruta = trim(&archivo) + '.xls' --------------->se da trim para no tener problemas
&Planilla.Open(&RUTA) ----->planilla es una variable de tipo excel document
&Planilla.SelectSheet("Ordenes de Trabajo")
&Planilla.Clear()
&Fila=1----> fila en una variable numerica
&Planilla.Cells(&Fila,1).text = 'Análisis Sol.'----> aka se le da la posision en hoja excel
&Planilla.Cells(&Fila,2).text = 'Fecha Sol'----> lo mismo
&Planilla.Cells(&Fila,3).text = 'Nº Sol/O.T.'--->etc
....
. ...
.........
&Planilla.Cells(&Fila,,20).text = 'fecha'--->etc
if &MCliFaLPCo = &ListaAS .or. &Paso = 1
&Planilla.Cells(&Fila,22).text = 'Descripción Origen 1'
&Planilla.Cells(&Fila,23).text = 'Descripción Origen 2'
&Planilla.Cells(&Fila,24).text = 'Descripción Origen 3'
&Planilla.Cells(&Fila,25).text = 'Descripción Origen 4'
&Planilla.Cells(&Fila,26).text = 'Descripción Origen 5'
&Planilla.Cells(&Fila,27).text = 'Tipo de O.T.'
&Planilla.Cells(&Fila,28).text = 'Sucursal'
endif
&Col = 1
do while &Col < 29
&Planilla.Cells(&Fila,&Col).Bold = 1
&Col = &Col + 1
enddo
&Fila = 2
for each line
&Planilla.Cells(&Fila,1).text = &AnalisDCor
&Planilla.Cells(&Fila,2).text = dtoc(OrTra2Fech)
...
...
...
&Planilla.Cells(&Fila,22).text = &TiOt
&Planilla.Cells(&Fila,23).text = CliSucDeno
if &MCliFaLPCo = &ListaAS .or. &Paso = 1
&Planilla.Cells(&Fila,22).text = &OrTra0DOr1
&Planilla.Cells(&Fila,23).text = &OrTra0DOr2
&Planilla.Cells(&Fila,24).text = &OrTra0DOr3
&Planilla.Cells(&Fila,25).text = &OrTra0DOr4
&Planilla.Cells(&Fila,26).text = &OrTra0DOr5
&Planilla.Cells(&Fila,27).text = &TiOt
&Planilla.Cells(&Fila,28).text = CliSucDeno
endif
msg(str(&Regis) ,nowait)
&Regis = &Regis + 1
&Fila = &Fila + 1
endfor
msg('',nowait)
//&Planilla.Show()----> tengo ke abrir el documento excel ya ke solo lo guarda
buemo mediante este codigo puedo pasar a excel ..pero el problema es ke tarda entre 4 a 5 minutos aprox.....mientras ke la misma grilla con la misma cantidad de datos en GX8 se demora menos de un minuto...
por logica supongo ke es necesariooptimizar este codigo...pero no se me ocurre como y noconosco alguna funcion ......
si alguien conoce alguna funcion o un codigo mas optimo...les agradeceria postearlo...
nos vemos :)
Valora esta pregunta


0