Foxtable(狐表)用户栏目专家坐堂 → [求助]找不到自定义函数


  共有3682人关注过本帖树形打印复制链接

主题:[求助]找不到自定义函数

帅哥哟,离线,有人找我吗?
2900819580
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助]找不到自定义函数  发帖心情 Post By:2019/12/29 8:53:00 [只看该作者]

  老师,程序偶尔会出现这样的错误,但我自己测试过程就没有发现。

 


此主题相关图片如下:无标题.png
按此在新窗口浏览图片

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:aa.txt

 

HttpRequest 里的代码

 

Dim wb As New weui
wb.AddPageTitle("","pageheader","2020","春节联欢晚会")
Sel ect Case e.Path     
    Case "receive.htm"
        For  Each key As String In e.Files.Keys
            For Each fln As String In e.Files(key)
                e.SaveFile(key,fln,"F:\" & fln) '保存接收到的文件
            Next
        Next
        e.WriteString("OK")
    Case "wefox"
        Functions.Execute("wefox",e)
    Case  "getBrands.htm"
        Dim pps As String = DataTables("人员表").SQLGetComboListString("部门","公司='" & e.PostValues("公司") & "'")
        e.WriteString(pps)
    Case "logon.htm",""
        Dim path As String = e.Path
        If path = Nothing Then path = "logon.htm"
        Functions.Execute(path.replace(".htm",""),e)
    Case Else
        Functions.Execute(e.path.replace(".htm",""),e)
    End  Select

 

 

自定义函数 mact

 

Dim e As RequestEventArgs = args(0)

Dim wb As New weui

wb.AddPageTitle("","pageheader","2020","上格兰格春节联欢晚会")

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

wb.AddPage("","page1") '增加两个page

With wb.AddArticle("page1","ar1")

    .AddTitle("h1","关于节目评分标准")

    .AddContent("使用说明:评委按节目评分标准逐项打分,由计分员收集统计总分..")

    .AddImage("./images/score1.png")

End With

wb.AddForm("","form1","logon.htm")

With wb.AddButtonGroup("form1","btg1",True)  '垂直排列

    .Add("btn5", "返回", "", "homepage.htm") '单击这个按钮可以打开foxtable主页

End With

e.WriteString(wb.Build) '生成网页



[此贴子已经被作者于2019/12/29 8:53:33编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110816 积分:564024 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/29 21:13:00 [只看该作者]

使用日志跟踪一下每次访问的e.path是什么值?这种一般是服务器有多个ip,或者是有代理,等原因导致的。


 回到顶部
帅哥哟,离线,有人找我吗?
2900819580
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/12/30 15:31:00 [只看该作者]

老师不会分析,请帮忙

编辑BeforeShowErrorMessage项目事件,代码如下:

Functions.Execute("LogText",e.ex)

e.Cancel = True

这里定义了一个内部函数LogText,代码如下:

Dim v  = Args(0)

Dim msg As String

If Typeof v Is Exception Then '如果是Exception的异常类型,则递归获取所有的异常堆栈

    Do While v IsNot Nothing

        msg &= v.Message &  vbcrlf & v.StackTrace & vbcrlf

        v = v.InnerException

    Loop

Else '其它情况只能传入错误的文本内容

    msg = v

End If

Output.Logs("AppLogging").Add(Format( Date.Now,"yyyy-MM-dd HH:mm:ss.ffff") & vbCrLf & msg)

Output.Logs("AppLogging").Save(ProjectPath & "Mmsglog.txt",True) '日志位于当前项目目录里

Output.Logs("AppLogging").Clear

 

以下是Mmsglog.txt的内容

2019-12-30 11:50:11.0111
调用的目标发生了异常。
   在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 Foxtable.UserFunctions.Execute(String Name, Object[] Args)
未将对象引用设置到对象的实例。
   在 UserCode.AMlt63PCZEvXtvcPl(Object[] Args)

 

2019-12-30 14:01:27.0816
调用的目标发生了异常。
   在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 Foxtable.UserFunctions.Execute(String Name, Object[] Args)
未将对象引用设置到对象的实例。
   在 UserCode.AMlt63PCZEvXtvcPl(Object[] Args)

[此贴子已经被作者于2019/12/30 15:31:20编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110816 积分:564024 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/30 15:39:00 [只看该作者]

HttpRequest 里的代码

 

Functions.Execute("LogText","e.Path=" & e.Path  & ",e.Host=" & e.Host  ) ‘事件第一行加上这一句代码

Dim wb As New weui
wb.AddPageTitle("","pageheader","2020","春节联欢晚会")
Sel ect Case e.Path      
    Case "receive.htm"
        For  Each key As String In e.Files.Keys
……


 回到顶部
帅哥哟,离线,有人找我吗?
2900819580
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/12/31 10:16:00 [只看该作者]

2019-12-31 08:57:34.5126
e.Path=logon.htm,e.Host=sg.vipgz2.idcfengye.com
2019-12-31 08:57:34.6036
e.Path=logon.htm,e.Host=sg.vipgz2.idcfengye.com
2019-12-31 08:57:34.7136
e.Path=logon.htm,e.Host=sg.vipgz2.idcfengye.com

 

2019-12-31 08:59:06.5888
e.Path=http:\\sg.vipgz2.idcfengye.com\score.htm,e.Host=sg.vipgz2.idcfengye.com

 

老师,文件内看到的内容如上,就发现红色字的与正常的不一样,提示找不到Score内部函数

 


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110816 积分:564024 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/31 10:23:00 [只看该作者]

再跟踪一下:

HttpRequest 里的代码

 

Functions.Execute("LogText","e.Path=" & e.Path  & ",e.Host=" & e.Host & ",完整地址=" &  e.Request.URL.ToString) ‘事件第一行加上这一句代码

Dim wb As New weui
wb.AddPageTitle("","pageheader","2020","春节联欢晚会")


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110816 积分:564024 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/31 10:30:00 [只看该作者]

检查代码。看什么地方有合成访问地址的地方,应该是合成了错误的地址

 回到顶部