Foxtable(狐表)用户栏目专家坐堂 → 保存报错


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

主题:保存报错

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


加好友 发短信
等级:幼狐 帖子:139 积分:1377 威望:0 精华:0 注册:2013/2/21 21:43:00
保存报错  发帖心情 Post By:2025/3/1 18:43:00 [只看该作者]

函数:SaveNewTask 代码:

Dim e As RequestEventArgs = args(0)


Dim dr As DataRow = DataTables("维修任务明细表").SQLFind("维修任务ID='" & e.PostValues("维修任务ID") & "'")

Dim lst As List(Of String)

Dim nms() As String = {"联系人", "联系电话", "项目地址", "sq", "shgj", "制单日期", "维修任务生成日期", "问题描述", "xmid", "制单人", "制单日期", "gjphone", "userid", "维修任务状态", "jgdate"}

If dr IsNot Nothing Then'查到了维修任务
    Dim nmss() As String = {"联系人", "联系电话", "项目地址", "问题描述"}
    For Each nn As String In nmss
        If e.PostValues.ContainsKey(nn) = False Then
            e.WriteString("请输入" & nn & "!") '返回错误消息
           Return 0
        End If
    Next
    For Each nm As String In nms
        If e.PostValues.ContainsKey(nm) Then
            dr(nm) = e.PostValues(nm)
        End If
    Next
    dr.Save
    e.WriteString("OK") '返回增加成功消息
End If



函数AddNewTask 代码:

Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Dim oid As String
Dim gj As String'管家
Dim pr As DataRow '任务
Dim sq As String'商圈
Dim gjdh As String'管家电话
Dim userid As String'用户唯一识别码(手机号)
Dim wxgid As String'维修工维修识别码(手机号)
Dim jgdate As String

wb.AppendHTML("<link rel='stylesheet' href='./weui/exweui.css'/>", True)
wb.AppendHTML("<script src='./weui/exweui.js' ></script>", True)

If e.Values.ContainsKey("userid") = True Then
    userid = e.Values("userid")
End If 

If e.Values.ContainsKey("oid") = False Then'如果不存在,则新增
    pr = DataTables("维修任务明细表").SQLAddNew() '
    pr("维修任务ID") = Functions.Execute("GetOrderID") '利用自定义函数GetOrderID为新增任务生成编号.
    pr("维修任务生成日期") = Date.Now
    pr("维修任务状态") = "待派单"
    Else'如果存在,则编辑
    pr = DataTables("维修任务明细表").SQLFind("[维修任务ID] = '" & e.Values("oid") & "'")
End If 

'编辑任务界面
wb.AddForm("", "form1", "SaveNewTask.htm")

If e.Values.ContainsKey("oid") Then
    With wb.AddInputGroup("form1", "ipg1", "查看任务")'查看任务
        With .AddInput("维修任务ID", "任务ID", "text")
            .Value = pr("维修任务ID")
            .Readonly = True
        End With
        With .AddInput("jgdate", "竣工日期", "text")
            .Value = pr("jgdate")
            .Placeholder = "自动匹配"
            .Readonly = True
        End With
        Dim ipg As ExWeUI.ExInputGroup = ExWeUI.WebUI.AddInputGroup("", "ipg11", "")
        Dim Inp As ExWeUI.ExQuerySelect = ipg.AddQuerySelect("项目地址", "项目地址*", "|" & DataTables("项目明细表").SQLGetComboListString("收货详细地址"))
        Inp.Url = "getSelect1"
        Inp.Value = pr("项目地址")
        Inp.Readonly = True
        Inp.Placeholder = "搜索项目地址/业主姓名"
        Inp.Attribute = ""
        
        .AddHiddenValue("拆单人", UserName)
        .AddHiddenValue("拆单日期", Date.Now)
        .AddHiddenValue("制单人", UserName)
        .AddHiddenValue("制单日期", Date.Now)
        .AddHiddenValue("xmid", pr("xmid"))
        .AddHiddenValue("sq", pr("sq"))
        
        With .AddInput("联系人", "联系人*", "text")
            .Value = pr("联系人")
            .Readonly = True
        End With
        With .AddInput("联系电话", "联系电话*", "text")
            .Value = pr("联系电话")
            .Readonly = True
        End With
        
        With .AddInput("gjphone", "管家电话", "text")
            .Value = pr("gjphone")
            .Placeholder = "自动匹配"
            .Readonly = True
        End With
        With .AddInput("shgj", "售后管家", "text")
            .Value = pr("shgj")
            .Placeholder = "自动匹配"
            .Readonly = True
        End With
        .AddHiddenValue("userid", userid)
        
        wb.InsertHTML("form1", ipg.BuildHtml)
        wb.AppendHTML("<script>initExWeUI();</script>")
    End With
    
    With wb.AddInputGroup("form1", "ipg2", "问题描述*")
        With .AddTextArea("问题描述", 4)
            .Value = pr("问题描述")
            .Readonly = True
        End With
    End With
    
    With wb.AddButtonGroup("form1", "btg1", False)
        .Add("btn0", "返回", "button", "default.htm")
        .Add("btn0", "新增任务", "button", "addnewtask.htm")
    End With 
    
Else
    With wb.AddInputGroup("form1", "ipg1", "新增任务")'新增任务
        With .AddInput("维修任务ID", "任务ID", "text")
            .Value = pr("维修任务ID")
            .Readonly = True
        End With
        With .AddInput("jgdate", "竣工日期", "text")
            .Value = pr("jgdate")
            .Placeholder = "自动匹配"
            .Readonly = True
        End With
        Dim ipg As ExWeUI.ExInputGroup = ExWeUI.WebUI.AddInputGroup("", "ipg11", "")
        Dim Inp1 As ExWeUI.ExQuerySelect = ipg.AddQuerySelect("shgj", "售后管家*", "|" & DataTables("Users").SQLGetComboListString("Name"))
        Inp1.Url = "getSelect3"
        Inp1.Value = pr("shgj")
        Inp1.Placeholder = "自动匹配/手动输入"
        Inp1.Attribute = ""
        Dim Inp As ExWeUI.ExQuerySelect = ipg.AddQuerySelect("项目地址", "项目地址*", "|" & DataTables("项目明细表").SQLGetComboListString("收货详细地址"))
        Inp.Url = "getSelect1"
        Inp.Value = pr("项目地址")
        Inp.Placeholder = "搜索项目地址/业主姓名"
        Inp.Attribute = ""
        .AddHiddenValue("oid", pr("维修任务ID"))
        .AddHiddenValue("拆单人", UserName)
        .AddHiddenValue("拆单日期", Date.Now)
        .AddHiddenValue("制单人", UserName)
        .AddHiddenValue("制单日期", Date.Now)
        .AddHiddenValue("xmid", pr("xmid"))
        .AddHiddenValue("sq", pr("sq"))
        '元素id统一用小写英文,和JS保持一致,否则容易报错
        .AddInput("联系人", "联系人*", "text").Value = pr("联系人")
        .AddInput("联系电话", "联系电话*", "text").Value = pr("联系电话")
        With .AddInput("gjphone", "管家电话", "text")
            .Value = pr("gjphone")
            .Placeholder = "自动匹配"
        End With
        .AddHiddenValue("userid", "")
        wb.InsertHTML("form1", ipg.BuildHtml)
        wb.AppendHTML("<script>initExWeUI();</script>")
    End With
    With wb.AddInputGroup("form1", "ipg2", "问题描述*")
        .AddTextArea("问题描述", 4).Value = pr("问题描述")
        
    End With
    With wb.AddButtonGroup("form1", "btg1", False)
        .Add("btsave", "保存", "button").Attribute = ""
    End With
    With wb.AddDialog("", "dlg1", "提示", "保存成功") '增加订单成功提示框
        'pr.Save() 
        .AddButton("btnOK", "确定").Attribute = ""
    End With
    With wb.AddDialog("", "dlg2", "错误", "保存失败") '增加订单失败提示框
        .AddButton("btnOK", "确定")
    End With
    wb.AppendHTML("<script src='./lib/ajaxform.js'></script>") '引入脚本文件
    
End If 

With wb.AddButtonGroup("form1", "btg2", False)
    .Add("btn1", "任务派发", "button", "sendtask.htm?RWID=" & pr("维修任务ID") & "&UserID=" & userid) '点击任务派发,任务就通过企业微信发送消息,点击任务派发之前必须保存此任务,也就是此任务在数据库中已经存在;
    .Add("btn2", "任务跟进", "button", "changestatus.htm?oid=" & pr("维修任务ID")) '提交后进入任务跟进界面,调整任务的状态:待接单、待邀约、待上门、维修中、待审核
End With

pr.Save() '必须保存,而且必须在最后保存,因为SQLAddNew增加的行,保存之后就会销毁,无法再调用


If e.PostValues.Count > 0 Then '如果是通过提交按钮访问,则给一个已经保存的提示给用户,时长500毫秒
    wb.AddToast("", "t1", "已经保存", 0).Msec = 500
End If
wb.AppendHTML("<script src='./lib/order.js'></script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页




如果是一个人使用的时候 一切正常,如果是多个人同时使用的时候,在AddNewTask的界面点击保存的时候,服务器就会联系弹窗:
弹窗1:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2025.1.3.1
错误所在事件:自定义函数,SaveNewTask
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。
关闭这个弹窗后就会弹窗2:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2025.1.3.1
错误所在事件:自定义函数,AddNewTask
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

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


加好友 发短信
等级:超级版主 帖子:112503 积分:572807 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/2 19:36:00 [只看该作者]

1、可能没有这个维修任务ID

函数:SaveNewTask 代码:

Dim e As RequestEventArgs = args(0)

if e.PostValues.ContainsKey("维修任务ID")
Dim dr As DataRow = DataTables("维修任务明细表").SQLFind("维修任务ID='" & e.PostValues("维修任务ID") & "'")
……
else
msgbox("提示错误并返回")
end if

2、可能找不到这个任务oid

……
If e.Values.ContainsKey("oid") = False Then'如果不存在,则新增
    pr = DataTables("维修任务明细表").SQLAddNew() '
    pr("维修任务ID") = Functions.Execute("GetOrderID") '利用自定义函数GetOrderID为新增任务生成编号.
    pr("维修任务生成日期") = Date.Now
    pr("维修任务状态") = "待派单"
    Else'如果存在,则编辑
    pr = DataTables("维修任务明细表").SQLFind("[维修任务ID] = '" & e.Values("oid") & "'")
if pr is nothing then
msgbox("提示错误并返回")
return "错误"
end if
End If 
……

3、UserName这个变量在哪里定义和赋值的?

4、下面代码不全,重新发一下,放到记事本里发上来

    With wb.AddButtonGroup("form1", "btg1", False)
        .Add("btsave", "保存", "button").Attribute = ""
    End With

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


加好友 发短信
等级:幼狐 帖子:139 积分:1377 威望:0 精华:0 注册:2013/2/21 21:43:00
  发帖心情 Post By:2025/3/3 14:04:00 [只看该作者]

代码按照蓝版的改正以后,SaveNewTask代码不报错了,但是现在AddNewTask报错;报错内容:提示错误并返回;为什么pr会不存在呀。。。

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


加好友 发短信
等级:超级版主 帖子:112503 积分:572807 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/3 14:20:00 [只看该作者]

提交的oid有问题,比如有多余的空格

后台没有此oid,比如没有保存

 回到顶部