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