>>Define Class bIRexGenerador As Session OlePublic >> >>DataSession = 2 && Private Session >> >>PROCEDURE Generar >> >>PARAMETERS formatfile, outputfile,lclosefile,lsaveConfig,lAllowUserInteraction >> SET DELETED ON >> *!* CLEAR ALL >> *!* RELEASE ALL >> SET safety off >> *SET EXCLUSIVE ON >> SET EXCLUSIVE OFF >> CLOSE ALL >> >> lcOldError = ON("ERROR") >> runId=SYS(2015) >> logId=0 >> ON ERROR this.catchError() >> #include EXCEL.H >> [code] >> >>ENDPROC >> >>FUNCTION logs >> LPARAMETERS x >> IF ! ISNULL(oErr) AND TYPE("oErr") = "O" >> IF !hayError >> ErrorEncontrado = "Error"+STR(oErr.ErrorNo)+[ LineNo: ] + STR(oErr.LineNo) +[ Message: ] + oErr.Message +[ Procedure: ] + oErr.Procedure +[ Details: ] + oErr.Details +[ StackLevel: ] + STR(oErr.StackLevel) +[ LineContents: ] + oErr.LineContents +[ UserValue: ] + oErr.UserValue >> ENDIF >> ELSE >> IF !hayError >> ErrorEncontrado ="" >> ENDIF >> >> ENDIF >> >> **INSERT INTO log VALUES (x, DATETIME(), linea,user, formatfile, outputfile, ErrorEncontrado) >> INSERT INTO log VALUES (x, DATETIME(), fcRow,"Demo", formatfile, outputfile, ErrorEncontrado,RunId,LogId) >> logId=LogId+1 >> hayError=.F. >> **? x >> RETURN .t. >> >>ENDfunc >> >> >>FUNCTION GetSheet >> LPARAMETERS wbName,oXcel >> Encontrado=.f. >> FOR i=1 TO oXCEL.worksheets.Count >> IF UPPER(oXcel.worksheets(i).Name) = UPPER(wbName) >> Encontrado=.T. >> RETURN oXcel.worksheets(i) >> ENDIF >> ENDFOR >> oXcel.worksheets.ADD >> xlSheet = oXcel.activesheet >> xlSheet.NAME = wbName >> >> RETURN xlSheet >>ENDfunc >> >>FUNCTION valor >> LPARAMETERS x >> retval="" >> IF !ISNULL(x) >> DO case >> CASE TYPE("x")="C" >> retval=x >> CASE TYPE("x")="N" >> retval=STR(x) >> ENDCASE >> ENDIF >> RETURN retval >>ENDfunc >> >>PROCEDURE CatchError >> hayError=.t. >> ErrorEncontrado = 'error #' + transform( error() ) + ': "' + message() + '"' + 'program: ' + Program( Program(-1)-1) + 'line #' + transform( lineno() ) + ": " + message(1) >> =this.logs(errorencontrado) >> RETURN >>ENDPROC >> >>ENDDEFINE >> >>>>