将这个函数写到app的systemerror事件即可
//==============================================================================
// 名称: Function - gf_apperror
//------------------------------------------------------------------------------
// 功能: 应用错误
//------------------------------------------------------------------------------
// 参数:
// 1.Integer ai_sysid <说明>
//------------------------------------------------------------------------------
// 返回: Integer
//------------------------------------------------------------------------------
// 作者: Sunlf 日期: 2001.12.12
//------------------------------------------------------------------------------
// 修改: 日期:
//------------------------------------------------------------------------------
// 备注:
//==============================================================================
String ls_ErrInfo
ls_ErrInfo = "1.代号:" + String(Error.Number) + "~n" + &
"2.信息:" + Error.Text + "~n" + &
"3.对象:" + Error.WindowMenu + "~n" + &
"4.控件:" + Error.Object + "~n" + &
"5.脚本:" + Error.ObjectEvent + "~n" + &
"6.行号:" + "第 " + String(Error.Line) + " 行"
IF sqlca.DBHandle() <= 0 THEN GOTO Process_WriteFile // 数据库未连接
//==============================================================================
// 为防止系统非法操作事务不能回滚,不管有没有事务发生均执行Rollback函数
//==============================================================================
gf_Rollback_Transaction(sqlca)
//==============================================================================
// 在数据库中写错误日志
//==============================================================================
gf_InsertErrLog(Error.Number,Error.Text,Error.WindowMenu,Error.Object,&
Error.Objectevent,Error.Line)
//GOTO Process_ShowError
//==============================================================================
// 在文件中写错误日志
//==============================================================================
Process_WriteFile:
Integer li_FileNum
li_FileNum = FileOpen("AppError.txt",LineMode!,Write!,LockWrite!,Append!)
FileWrite(li_FileNum,"")
FileWrite(li_FileNum,"//==============================================================================")
FileWrite(li_FileNum,"// " + String(Today(),"yyyy.mm.dd") + " " + String(Now(),"hh:mm:ss"))
FileWrite(li_FileNum,"//------------------------------------------------------------------------------")
FileWrite(li_FileNum," 1.代号:" + String(Error.Number))
FileWrite(li_FileNum," 2.信息:" + Error.Text)
FileWrite(li_FileNum," 3.对象:" + Error.WindowMenu)
FileWrite(li_FileNum," 4.控件:" + Error.Object)
FileWrite(li_FileNum," 5.脚本:" + Error.ObjectEvent)
FileWrite(li_FileNum," 6.行号:" + "第 " + String(Error.Line) + " 行")
FileWrite(li_FileNum,"//==============================================================================")
FileClose(li_FileNum)
//==============================================================================
// 提示错误信息
//==============================================================================
//Process_ShowError:
ls_ErrInfo = "~n系统发生错误,请记录以下错误信息后联系管理员处理。~n~n" + ls_ErrInfo + &
"~n~n是否退出系统?"
IF MessageBox("提示信息",ls_ErrInfo,StopSign!,YesNo!,1) = 1 THEN
HALT CLOSE
END IF
RETURN 1