anonymous Log in
Search
Recents:
v3.0
gxpublic-l
Carga de Archivo de Excel 2. Megas.
08/11/16 12:32

alomiatito

Replies: 0


Hola estoy tratando de leer una plantilla de excel que contiene 2900
registros de clientes que deben ser importados a la BD, el proceso funciona
pero es demasiado lento, ya que debo validar por cada fila leída si el
cliente existe en la BD, y sino pues crearlo..Además desde mi WP llamo un
procedimiento que lee y procesa ese archivo y tengo unos msg por cada fila
leida pero no muestran nada..
El siguiente el el evento enter del WP.

Event Uploadify1.OnAllComplete
for &File in &UploadedFiles
//&Archivo = &File.OriginalFileName //Uploadify1.UploadedFileName
&Archivo = &File.TemporalFileName
msg(&File.OriginalFileName)
endfor
EndEvent

Event Enter
//&filepath = &File.OriginalFileName
//&filepath = 'c:\Xls\Clientes.xls' //&File.OriginalFileName
//&Filepath = 'D:\SIIGO\XLS\Clientes.xls'
//&Archivo='C:\Xls\Clientes.xlsx'
if (&Archivo.IsEmpty())
&mensaje=(concat('El archivo',&Archivo,'esta vacío'))
msg(&mensaje,nowait)
return
endif
&mensaje="Iniciando carga de archivo"
msg(&mensaje,nowait)
&status=UploadCliente.Udp(&Archivo)
if &status=true
&mensaje="Imposible hacer la carga de archivo"
else
&mensaje="El proceso de carga se realizó satisfactoriamente"
endif
msg(&mensaje,nowait)
Endevent


Y ESTE ES EL PROCEDIMIENTO:

&Status=true
&ExcelDocument.Clear()
&Ok = &ExcelDocument.Open(&Archivo)
if &Ok = 0
&ExcelDocument.ReadOnly=1
&Renglon = 8
Do While &ExcelDocument.Cells(&Renglon,1).Number <> 0
&ClienteId = &ExcelDocument.Cells(&Renglon,1).Number
&Existe = ValidarCliente.Udp(&ClienteId)
if (&Existe=false)
New
ClienteId = &ExcelDocument.Cells(&Renglon , 1).Number
Nombre = &ExcelDocument.Cells(&Renglon , 4).Text
Direccion = &ExcelDocument.Cells(&Renglon , 6).Text
Ciudad = &ExcelDocument.Cells(&Renglon , 7).Text
Telefono1 = &ExcelDocument.Cells(&Renglon , 9).Text
Telefono2 = &ExcelDocument.Cells(&Renglon , 10).Text
Telefono3 = &ExcelDocument.Cells(&Renglon , 11).Text
EndNew
&Renglon = &Renglon + 1
&mensaje = concat('Actualizando cliente:',&ExcelDocument.Cells(&Renglon ,
4).Text,' ') // Mensaje, sólo, para saber que está corriendo
msg(&mensaje,nowait)
else
&mensaje = concat('Imposible grabar registro:',str(&Renglon,4,0),' ') //
Mensaje, sólo, para saber que está corriendo
msg(&mensaje ,nowait)
endif
Enddo
&mensaje="Final de cargar de archivos de cliente"
msg(&mensaje,nowait)
&ExcelDocument.Close()
Else
&Status=false
endif
//


PROCEDIMIENTO PARA VALIDA EL CLIENTE:

for each order ClienteId
where ClienteId = &ClienteId
&Existe = true
endfor


GRACIAS POR LA AYUDA.

---------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,5
Por consultas owner-gxpublic-l@gxtech.com.uy


Back to gxpublic-l