正文

名片管理练习——系统错误提示窗口制作2-22006-08-17 10:25:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/pblog/17639.html

分享到:

系统错误提示窗口Open事件代码:

String ls_ErrMsg

String ls_log_file, ls_text

Integer li_file_no

 

If Error.Number = 0 Then Return

 

Choose Case Error.Number

    Case 1

       

        ls_ErrMsg = '除数为零'

       

    Case 2

       

        ls_ErrMsg = '引用空对象'

       

    Case 3

       

        ls_ErrMsg = '数组越界'

       

    Case 4

       

        ls_ErrMsg = '枚举值超出函数范围'

       

    Case 5

       

        ls_ErrMsg = "函数中遇到负值"

       

    Case 6

       

        ls_ErrMsg = "指定的数据窗口行/列无效"

       

    Case 7

       

        ls_ErrMsg = "联接引用时,出现不可解决的外部引用"

       

    Case 8

       

        ls_ErrMsg = "引用带有空下标的数组"

       

    Case 9

       

        ls_ErrMsg = "DLL函数未在当前程序中"

       

    Case 10

       

        ls_ErrMsg = "DLL函数不支持的参数类型"

       

    Case 11

       

        ls_ErrMsg = "对象文件已过期,必须转化为当前版本"

       

    Case 12

       

        ls_ErrMsg = "数据窗口列类型与GetItem类型不匹配"

       

    Case 13

       

        ls_ErrMsg = "不可知的属性引用"

       

    Case 14

       

        ls_ErrMsg = "为外部函数打开错误DLL"

       

    Case 15

       

        ls_ErrMsg = "错误调用外部函数"

       

    Case 16

       

        ls_ErrMsg = "超出最大字符串的长度"

       

    Case 17

       

        ls_ErrMsg = "数据窗口控件中引用的数据窗口对象不存在"

       

    Case 18

       

        ls_ErrMsg = "函数未返回值"

       

    Case 19

       

        ls_ErrMsg = "不能将任意变量中NAME转化为NAME"

       

    Case 20

       

        ls_ErrMsg = "没有成功地准备好数据库命令"

       

    Case 21

       

        ls_ErrMsg = "运行时,不正确地引用函数"

       

    Case 22

       

        ls_ErrMsg = "不可知的对象类型"

       

    Case 23

       

        ls_ErrMsg = "不能将NAME类型的对象赋值为NAME类型的对象"

       

    Case 24

       

        ls_ErrMsg = "函数调用与其定义不匹配"

       

    Case 25

       

        ls_ErrMsg = "DOUBLEREAL表达式溢出"

       

    Case 26

       

        ls_ErrMsg = "不支持对NAME字段的赋值"

       

    Case 27

       

        ls_ErrMsg = "非整型指数不能为负"

       

    Case 28

       

        ls_ErrMsg = "VBX错误:NAME"

       

    Case 29

       

        ls_ErrMsg = "ANY变量需要非整组值"

       

    Case 30

       

        ls_ErrMsg = "外部对象不支持数据类型:NAME"

       

    Case 31

       

        ls_ErrMsg = "不支持外部对象数据类型:NAME"

       

    Case 32

       

        ls_ErrMsg = "调用外部对象函数NAME时,未找到名字"

       

    Case 33

       

        ls_ErrMsg = "调用外部对象函数NAME时,参数类型不合法"

       

    Case 34

       

        ls_ErrMsg = "调用外部对象函数NAME时,使用不正确的参数数目"

       

    Case 35

       

        ls_ErrMsg = "错误调用外部对象函数NAME"

       

    Case 36

       

        ls_ErrMsg = "访问外部对象属性NAME时,未找到名称"

       

    Case 37

       

        ls_ErrMsg = "访问外部对象属性NAME时,类型不匹配"

       

    Case 38

       

        ls_ErrMsg = "询问外部对象属性NAME时,下标数目不正确"

       

    Case 39

       

        ls_ErrMsg = "错误访问外部对象属性NAME"

       

    Case 40

       

        ls_ErrMsg = "与表达式中任意数据类型不匹配"

       

    Case 41

       

        ls_ErrMsg = "表达式中有不合法的任意数据类型"

       

    Case 42

       

        ls_ErrMsg = "DLL函数NAME中,运行时所指定的参数类型与所要求的参数类型不相同"

       

    Case 43

       

        ls_ErrMsg = "父对象不存在"

       

    Case 44

       

        ls_ErrMsg = "祖先的函数中具有发生冲突的参数及返回类型"

       

    Case 45

       

        ls_ErrMsg = "外部表溢出"

       

    Case 46

       

        ls_ErrMsg = "空的对象引用不能被赋值或传递给同类型的变量"

       

    Case 47

       

        ls_ErrMsg = "变量需要数组值"

       

    Case 48

       

        ls_ErrMsg = "数组的大小与对象的转换不匹配"

       

    Case 49

       

        ls_ErrMsg = "数组的类型与对象的转换不匹配"

       

    Case 50

       

        ls_ErrMsg = "分布服务错误"

       

    Case 51

       

        ls_ErrMsg = "函数或事件的参数不合法"

       

    Case 52

       

        ls_ErrMsg = "分布通讯错误"

       

    Case 53

       

        ls_ErrMsg = "未激活所需服务器"

       

    Case 54

       

        ls_ErrMsg = "服务器未接受请求"

       

    Case 55

       

        ls_ErrMsg = "请求非正常终止"

       

    Case 56

       

        ls_ErrMsg = "非完整地相应请求"

       

    Case 57

       

        ls_ErrMsg = "未联接"

       

    Case 58

       

        ls_ErrMsg = "对象实例不存在"

       

    Case 59

       

        ls_ErrMsg = "不合法的列范围"

       

    Case 60

       

        ls_ErrMsg = "不合法的行范围"

       

    Case 61

       

        ls_ErrMsg = "NUMBER维数组不合法地转换成对象"

       

    Case 62

       

        ls_ErrMsg = "服务器忙"

       

    Case 63

       

        ls_ErrMsg = "无返回值的函数或事件用于表达式"

       

    Case 64

       

        ls_ErrMsg = "赋值需要数组对象"

       

    Case Else

       

        ls_ErrMsg = "其他错误"

       

End Choose

 

//  将错误信息增加到dw_error

dw_error.InsertRow(0)

dw_error.SetItem( 1, 'err_number'   , String(Error.Number)  )

dw_error.SetItem( 1, 'err_message'  , ls_ErrMsg                 )

dw_error.SetItem( 1, 'err_where'        , Error.WindowMenu      )

dw_error.SetItem( 1, 'err_event'        , Error.ObjectEvent     )

dw_error.SetItem( 1, 'err_object'   , Error.Object              )

dw_error.SetItem( 1, 'err_line'     , String(Error.Line)        )

 

 

// 以下代码段将错误号和错误信息写进日志文件syserror.log

ls_text  =  "~r~n----------------------------------------------------------------"

ls_text +=  "~r~n"

ls_text +=  "~r~n 出错时间 : " + String(Today(),'yyyy/mm/dd') + " " + String(Now())

//ls_text +=  "~r~n 操作员   : " + gs_user_name

ls_text +=  "~r~n 错误代码 : " + String(Error.Number)

ls_text +=  "~r~n 错误信息 : " + ls_ErrMsg

ls_text +=  "~r~n 窗口/菜单: " + Error.WindowMenu

ls_text +=  "~r~n 出错控件 : " + Error.Object

ls_text +=  "~r~n 出错事件 : " + Error.ObjectEvent

ls_text +=  "~r~n 出错行数 : " + String(Error.Line)

 

// 打开系统错误日志文件

If Trim(ls_log_file) = "" OR IsNull(ls_log_file) Then

   

    ls_log_file = "syserror.log"

   

End If

 

 

 

li_file_no = FileOpen(ls_log_file,LineMode!,Write!,SHARED!,Append!)

 

If li_file_no = 0 Then

   

    MessageBox("出错信息","不能打开系统出错日志文件!",Exclamation!)

   

Else

   

    If FileWrite(li_file_no, ls_text)  <  0 Then

       

        MessageBox("出错信息","写系统出错日志文件出错!", Exclamation!)

       

    End If

   

End If

将窗口保存为“w_system_error”

然后在应用对象mpglsystemerror事件中加入代码:Open(w_system_error)即可。

OK!到此为止,系统错误提示窗口设计完成,大家可以故意设计一些错误测试一下。

 

阅读(3560) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册