一个简单的录入界面

后台有一个订单表,结构如下:

现在希望设计一个网页用于输入新的订单:

用户输入数据,单击确定后,能在后台的表新增订单,并显示如下页面,让用户选择是否继续增加订单:

看似复杂,实际上HttpRequet事件的代码很简单,望大家仔细体会:

Select Case e.Path
    Case "AddNew.htm"
        If e.PostValues.Count = 0 Then
            Dim sb As New StringBuilder
           
sb.AppendLine("<form action='AddNew.htm' enctype='multipart/form-data' method='post'
id='form1' name='form1'>")
            sb.AppendLine(
"
产品: <input name='cp' id='cp'><br/><br/>")
            sb.AppendLine(
"
客户: <input name='kh' id='kh'><br/><br/>")
            sb.AppendLine(
"
雇员: <input name='gy' id='gy'><br/><br/>")
            sb.AppendLine(
"
单价: <input type='number' name='dj' id='dj'><br/><br/>")
            sb.AppendLine(
"
折扣: <input type='number' name='zk' id='zk' min='0' max='0.15' step='0.01'><br/><br/>")
            sb.AppendLine(
"
数量: <input type='number' name='sl' id='sl'><br/><br/>")
            sb.AppendLine(
"
日期: <input type='date' name='rq' id='rq'><br/><br/>")
            sb.AppendLine(
"<input Type='submit' name='Sumbit' id='Sumbit' value='
确定'>")
            sb.AppendLine("</form>")
            e.WriteString(sb.ToString)
        Else
            Dim dr As DataRow = DataTables(
"
订单").SQLAddNew()
            Dim inms() As String = {"cp","kh","gy","dj","zk","sl","rq"'
输入框名称数组
            Dim cnms() As String =
{"
产品","客户","雇员","单价","折扣","数量","日期"} '列名数组,注意列名和输入框必须一一对应,位置不能错乱
            For i As Integer = 0 To inms.Length -1
                dr(cnms(i)) = e.PostValues(Inms(i))

            Next
            dr.Save()
'
SQLAddNew增加的行,必须保存一下,否则会被丢弃.
           

            Dim sb As New StringBuilder
            sb.AppendLine(
"
增加订单成功! <br/><br/>")
            sb.AppendLine(
"<a href='AddNew.htm'>
继续增加</a>")
            e.WriteString(sb.ToString)
       
End If
End
Select

提示:

1、这里用SQLAddNew直接在后台增加行,SQLAddNew是Foxtable 2017新增加的一个方法,适合加载结构但不加载数据的表,如果希望服务端能即时显示用户通过网页增加的行,请改用AddNew,二者效率差不多。
2、如果用户量很大,需要更高的效率,建议采用SQL语句插入行,需要注意的是,只有外部数据源才支持用SQL语句插入行。


本页地址:http://www.foxtable.com/mobilehelp/topics/0026.htm