| alomiatito | |
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
|
|
|
|