Tengo el siguiente codigo;
- Code: Select all Expand view
Function Recalvi()
LOCAL oExcel, oHoja, nRows, nCols,nRow, nCol,nmanejador,a,numero,numeroa
local nempresa:="R"
local ldrive:=Publicas:cUnidad+"\ficheros\"
local expedi,consigna,albaran,domicilio,cp,pobla,peso,bultos,reembo,tipo
local edisco :='01481000.txt'
local cFile := cGetFile( "Excel (*.slk)| *.slk|" + ;
"Excel (*.xls)| *.xls|" + ;
"Excel (*.xlsx)| *.xlsx|" ;
,"Selecciona un formato de Excel", 4 )
oExcel:= TOleAuto():New( "Excel.Application" )
* cfile :=cGetFile("C:\*.Slk", "Seleccione Fichero")
If empty( cfile )
msgwait("Fichero no valido",3)
Retur nil
Endif
oExcel:WorkBooks:Open(cfile)
oHoja=oExcel:ActiveSheet
nRows := oHoja:UsedRange:Rows:Count()
nCols := oHoja:UsedRange:Columns:Count()
if (nManejador:=fCreate(lDrive + edisco))<>-1
msgwait("Importando Fichero","ESPERA")
For nRow := 4 TO nRows
if (oHoja:Cells(nRow,1):Value)<> Nil
numeroa:=substr(oHoja:Cells(nRow,8):Value,6)
consigna:= oHoja:Cells(nRow,2):Value
domicilio:= oHoja:Cells(nRow,3):Value
cp:= substr(oHoja:Cells(nRow,4):Value,1,5)
pobla:= substr(oHoja:Cells(nRow,4):Value,9)
peso:= 1
if valtype(oHoja:Cells(nRow,6):Value) = 'C'
bultos:=val(oHoja:Cells(nRow,6):Value)
else
bultos:= oHoja:Cells(nRow,6):Value
endif
reembo:= "0,00"
reembo:= strtran(reembo,",",".")
tipo:= "1"
expedi := nempresa+numeroa
fwrite(nManejador,expedi+;
space(9)+;
padr(alltrim(consigna),32)+;
padr(alltrim(domicilio),32)+;
padr(alltrim(cp),5)+;
padr(alltrim(pobla),27)+;
strzero(bultos,4)+;
strzero(peso,5)+;
"000.00"+;
"1"+;
strzero(val(reembo),7,2)+;
space(1)+;
space(35)+;
padr(alltrim(numeroa),12," ")+;
chr(13)+chr(10) )
endif
Next nRow
fclose(nManejador)
msgwait("IMPORTACION REALIZADA","ATENCION",2)
else
msgalert("ERROR EN LA IMPORTACION","ATENCION")
endif
oExcel:Quit()
Retu Nil
Cuando importo ficheros slk me da el siguiente error:
Si pincho en No, todo funciona correctamente y continua la ejecución.
Si pincho en Si, sigue reportandome infinidad de errores hasta que ya no hay mas y continua perfectamente.
La aplicación es un poco antigua y creo que esta compilada con xharbour y fw en una versión sobre 2015 o así, ya que no he podido actualizar a ninguna versión mas actual porque sería muy engorroso.
Habría alguna opción de que no apareciera éste error?
Saludos