以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 保存报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=195693) |
-- 作者:qinqinwo1114 -- 发布时间: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 详细错误信息: 调用的目标发生了异常。 未将对象引用设置到对象的实例。 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2025/3/3 14:04:00 -- 代码按照蓝版的改正以后,SaveNewTask代码不报错了,但是现在AddNewTask报错;报错内容:提示错误并返回;为什么pr会不存在呀。。。 |
-- 作者:有点蓝 -- 发布时间:2025/3/3 14:20:00 -- 提交的oid有问题,比如有多余的空格 后台没有此oid,比如没有保存
|