以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  移动开发在使用过程中偶有这样的错误提示  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=109530)

--  作者:zhao2006
--  发布时间:2017/11/14 10:26:00
--  移动开发在使用过程中偶有这样的错误提示
我的食堂订餐小软件已正式上线试用,但在使用过程中偶有这样的提示(到底是错在哪里呢?):

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2017.10.26.1
错误所在事件:自定义函数AddNew
详细错误信息:
调用的目标发生了异常。
从字符串“undefined”到类型“Integer”的转换无效。
输入字符串的格式不正确。

------------------------我的自定义函数AddNew为:
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Dim Pagetext As Integer = e.GetValues("page")
Dim PrimaryKey As Integer = e.GetValues("key")
wb.AppendHTML("<link rel=\'stylesheet\' href=\'./lib/mark.css\'/>",True)
If e.PostValues.Count = 0 Then \'生成增加订单网页
    Dim dr As DataRow = DataTables("订餐明细表").SQLFind("[_Identify]=" & PrimaryKey)
    If dr IsNot Nothing Then
        wb.AddForm("","form1","addnew.htm?key=" & PrimaryKey &  "&page=" & Pagetext)
    End If
    wb.AddForm("","form1","addnew.htm")
    With wb.AddInputGroup("form1","ipg1","增加订单主表")
        \' .AddHiddenValue("编号", dr("_Identify"))
        .AddInput("xm","姓名","text") \'.value= User.name 默认登录用户,已试可用
        .AddInput("rq","日期","date").value = Date.today
        .AddInput("fs","份数","text").value = 1
    End With
    With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1", "确定", "submit")
    End With
Else \'保存新增的订单
    Dim dr As DataRow = DataTables("订餐明细表").addnew()
    Dim inms() As String = {"xm","rq","fs"} \'输入框名称数组
    Dim cnms() As String = {"姓名","日期","份数"} \'列名数组,注意列名和输入框必须一一对应,位置不能错乱
    For i As Integer = 0 To inms.Length -1
        dr(cnms(i)) = e.PostValues(Inms(i))
    Next
    dr.Save()
    With wb.AddMsgPage("","msgpage","增加成功", "不错!继续努力!!") \'增加订单成功提示信息
        .AddButton("btn1","继续增加","addnew.htm")
        .AddButton("btn1","返回列表","list.htm")
    End With
End If
wb.AppendHTML("<script src=\'./lib/order.js\'></script>")
e.WriteString(wb.Build) \'生成网页

--  作者:有点蓝
--  发布时间:2017/11/14 10:50:00
--  
undefined是js中的空值,检查一下js

其次这里看看接收的表单数据

For i As Integer = 0 To inms.Length -1
msgbox(e.PostValues(Inms(i)))
        dr(cnms(i)) = e.PostValues(Inms(i))
    Next

--  作者:有点甜
--  发布时间:2017/11/14 11:05:00
--  

For i As Integer = 0 To inms.Length -1
    dr(cnms(i)) = e.PostValues(Inms(i))
Next

 

改成

 

For i As Integer = 0 To inms.Length -1
   
    If cnms(i) = "份数" Then
        dr(cnms(i)) = val(e.PostValues(Inms(i)))
    Else
        dr(cnms(i)) = e.PostValues(Inms(i))
    End If
   
Next


--  作者:zhao2006
--  发布时间:2017/11/14 11:35:00
--  
谢谢各位老师,我调好再发布试试看。
--  作者:Zhao2006
--  发布时间:2017/11/20 16:49:00
--  移动开发如何能“一次录入多行”
甜老师好,addnew函数经您这么一改后试运行几天,感觉一切正常没再出错误提示了。现想给系统它再上一档次即:如何能“一次录入多行”。现在一次一行想一
图片点击可在新窗口打开查看此主题相关图片如下:多行录入.jpg
图片点击可在新窗口打开查看
次订一星期的用餐操作还不是很灵便的。。
--  作者:有点甜
--  发布时间:2017/11/20 17:17:00
--  

1、你可以用复选框,列出一星期的日期,别人勾选就好了

 

http://www.foxtable.com/mobilehelp/scr/0053.htm

 

2、你也可以放入多个日期框,有多少个日期有值,你就增加多少行数据