一个简单的录入界面
后台有一个订单表,结构如下:
现在希望设计一个网页用于输入新的订单:
用户输入数据,单击确定后,能在后台的表新增订单,并显示如下页面,让用户选择是否继续增加订单:
看似复杂,实际上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语句插入行。