Foxtable(狐表)用户栏目专家坐堂 → web服务找不到报错位置


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

主题:web服务找不到报错位置

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 9:33:00 [显示全部帖子]

服务端开发和客户端开发还是有区别的,不要带着发客户端的思维来开发服务端。
1、除非这个网页只有一个人使用,否则请不要使用全局变量传递数据。因为全局变量是服务端共用的,假设有10个人打开网页,那么全局变量的值是这个10个人共用的,谁最后打开网页,这个变量就是最后打开网页的这个人的值,其它人使用这个全局变量也是这个值,这肯定是有问题的
2、不要在httprequest里定义统一的变量,比如【Dim cmd As new SQLCommand】,因为所有访问服务端资源的请求(包括图片,js.....等等等)都会进入httprequest,每次都会初始化一个SQLCommand,即用不到也浪费内存和效率,哪个case里用到,再到那个case里定义变量好了
3、建议使用HttpServer.WebPath替代事件头:http://www.foxtable.com/mobilehelp/topics/0276.htm

比较合理的逻辑应该是
If e.Path.StartsWith("Reports\")
    e.ResponseEncoding = "gb2312"
    Select Case e.Path
        Case "Reports\bg"
Dim cmd As new SQLCommand
cmd.ConnectionName="pk"
            cmd.CommandText= "select t1.编号,t1.单据状态,t1.报告类型,t2.产品名称,t2.规格,t1.生产日期_开始 as 生产日期,t1.批次,t1.结论,t1.质检员,t1.制单,t1.审核,t1.批准 from 质检报告主表 t1  ,成品有出厂检验 t2  where   t1.编号= t2.编号 and t1.生产日期_开始='"& e.PostValues("scrq") &"' And t2.产品名称='"& e.PostValues("cpmc") &"' And t2.规格='"& e.PostValues("gg") &"'"

            Dim dtt As DataTable= cmd.ExecuteReader
            If dtt.DataRows.count>=1 Then
                
                Dim r As DataRow= dtt.DataRows(0)
                e.AsyncExecute = True
                Functions.AsyncExecute("baogao",e,r,e.PostValues("cpmc"),e.PostValues("gg") ,e.PostValues("scrq")  )
            End If
        Case Else
            e.AsReportServer("Reports/")
    End Select
Else
    Select Case e.Path
        Case "test.htm"
            If e.PostValues.Count = 0 Then
                Dim wb As New weui
                wb.AddPageTitle("","ph1","","中粮菏泽包装油质检报告查询")
                wb.AddForm("","form1","Reports/bg")
                With wb.AddInputGroup("form1","ipg1","查询条件")
                    With   .AddInput("scrq","生产日期","date")
                        .Attribute = "onchange=""setAjaxOptions('cpmc','getProducts.htm','scrq',false)"""
                    End With
                    With .AddSelect("cpmc","产品名称","")
                        .Attribute = "onchange=""setAjaxOptions('gg','getProducts.htm','scrq','cpmc',false)"""
                    End With
                    With .AddSelect("gg","规格","")
                        ' .Attribute = "onchange=""setAjaxOptions('gg1','getProducts.htm','scrq','cpmc','gg'false)"""
                        
                    End With
                End With
                With wb.AddButtonGroup("form1","btg1",False)  '垂直排列
                    .Add("btn1", "查询", "submit") '
                End With
                e.WriteString(wb.Build) '生成网页
        Case  "getProducts.htm"
            Dim vals As String
            Dim cmd As new SQLCommand
cmd.ConnectionName="pk"
            cmd.CommandText="select t1.产品名称,t2.生产日期_开始,t1.规格 from 质检报告主表 t2 inner join 成品有出厂检验 t1 on t1.编号=t2.编号 where t2.生产日期_开始= '" & e.PostValues("scrq") & "'"
            
            Dim dt As DataTable= cmd.ExecuteReader
            If e.PostValues.Count = 1 Then
                vals  = "|" & dt.GetComboListString("产品名称","生产日期_开始='" & e.PostValues("scrq") & "'")
                Vars("scrq") = e.PostValues("scrq")
            ElseIf e.PostValues.Count = 2 Then
                Dim Filter As String = "生产日期_开始='" & e.PostValues("scrq") & "' And 产品名称='" & e.PostValues("cpmc") & "'"
                Vars("cpmc") = e.PostValues("cpmc")
                vals = "|" & Dt.GetComboListString("规格", Filter)
                
            End If
            
            e.WriteString(vals)
            
    End Select
    
End If

[此贴子已经被作者于2021/9/27 9:33:52编辑过]

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 13:32:00 [显示全部帖子]

baogao函数的代码?

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 13:59:00 [显示全部帖子]

                e.AsyncExecute = True
                Functions.AsyncExecute("baogao",e,r,e.PostValues("cpmc"),e.PostValues("gg") ,e.PostValues("scrq")  )

改为同步测试有没有问题

Functions.Execute("baogao",e,r,e.PostValues("cpmc"),e.PostValues("gg") ,e.PostValues("scrq")  )
去掉函数里e.Handled = True

另外函数里所有代码都必须在e.WriteBookAsPDF(Book)前处理,

……
Dim rz As DataRow=DataTables("webrz").AddNew
rz("日期")= Date.Now
rz("报告编号")= r("编号")
rz("品名")=CPMC 
rz("规格")=gg
rz("生产日期")=scrq 
DataTables("webrz").Save
e.WriteBookAsPDF(Book)

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 14:15:00 [显示全部帖子]

去掉e.AsyncExecute = True

还不行就上传实例测试

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 15:13:00 [显示全部帖子]

看2楼红色字用法,直接提交,不要画蛇添足加些莫名其妙的用法

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 20:14:00 [显示全部帖子]

这个是企业微信或者手机的问题。正常微信自己是无法直接打开pdf文件的,需要依赖手机能够打开pdf的其它app,比如QQ浏览器,wps等。

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 20:23:00 [显示全部帖子]

加不了提示

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 20:35:00 [显示全部帖子]

应该是微信的原因,微信屏蔽了文件的外链下载

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 21:30:00 [显示全部帖子]

不是一回事。手机和电脑的行为不一样的

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


加好友 发短信
等级:超级版主 帖子:106040 积分:539293 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/27 22:04:00 [显示全部帖子]

请上传实例测试

 回到顶部
总数 16 1 2 下一页