定义Edit.htm,大意是将打开订单表的明细(不过不是用表,是用AddPreview加载明细,然后点各个明细的编辑按钮,需要编辑哪个明细,就点哪个明细的编辑按钮)
Dim wb As New weui
Dim pr As DataRow '定义主表ID
Dim drs As List(Of DataRow) = DataTables("订单2").SQLSe1ect("", 5, "[_Identify] ") '获取前5条记录
For Each dr As DataRow In drs
With wb.AddPreview("", dr("ID"), dr("产品"), dr("金额"))
.AddItem("客户", dr("客户"))
.AddItem("雇员", dr("雇员"))
.AddItem("单价", dr("单价"))
.AddItem("数量", dr("数量"))
.AddItem("折扣", dr("折扣"))
.AddItem("日期", dr("日期"))
.Addbutton("编辑", "EditDetail.htm?page = " & Page & " & did = " & dr("ID") & " & oid = " & pr("ID"), 1, "")
End With
Next
e.WriteString(wb.Build)
有个问题,明细表的数据修改以后,如何保存?
这里定义一个明细表的编辑函数editdetail.
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Dim Page As Integer '页码变量
If e.GetValues.ContainsKey("page") Then '如果地址中有page参数
Integer.TryParse(e.GetValues("page"), page) '提取page参数
End If
Dim oid As String
If e.GetValues.ContainsKey("oid") Then '如果地址中有主表ID参数
oid = e.GetValues("oid") '提取主表ID参数
End If
Dim xr As DataRow
If e.GetValues.ContainsKey("did") Then '如果地址中有明细ID参数
xr = DataTables("明细表").SQLFind("ID = '" & e.GetValues("did") & "'")
Dim url As String = "EditDetail.htm?page=" & page & "&did='" & xr("ID") & "'" & "&oid='" & oid & "'" '传递页码和明细ID
wb.AddForm("", "form1", url)
With wb.AddInputGroup("form1", "ipg1", "编辑明细")
.AddHiddenValue("did", xr("ID"))
.AddInput("Code", "编号", "text").Value = xr("Code")
.AddInput("Title", "名称", "text").Value = xr("Title")
End With
With wb.AddButtonGroup("form1", "btg1", False)
.Add("btnok", "确定", "submit", ) '这个保存应当怎么写?
.Add("btnBack", "返回", "", "Edit.htm?page=" & Page & "&oid=" & oid) '点击返回,就回到上一个界面
End With
End IfIf 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) '生成网页
editdetail函数定义如下:
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Dim Page As Integer '页码变量
Dim oid As String
Dim xr As DataRow
If e.GetValues.ContainsKey("page") AndAlso e.GetValues.ContainsKey("oid") AndAlso e.GetValues.ContainsKey("did") Then
Integer.TryParse(e.GetValues("page"), page) '提取page参数
oid = e.GetValues("oid") '提取主表ID参数
xr = DataTables("TbBProD").SQLFind("ID = '" & e.GetValues("did") & "'")
If xr Is Nothing Then
Return ""
End If
End If
Dim url As String = "EditBProDetail.htm?page=" & page & "&did=" & xr("ID") & "&oid=" & oid '传递页码和明细ID
wb.AddForm("", "form1", url)
With wb.AddInputGroup("form1", "ipg1", "编辑明细")
.AddHiddenValue("did", xr("ID"))
.AddInput("Code", "编号", "text").Value = xr("Code")
.AddInput("Title", "名称", "text").Value = xr("Title")
End With
With wb.AddButtonGroup("form1", "btg1", False)
.Add("btnok", "确定", "submit", url) ''这一句是不是有什么问题?
.Add("btnBack", "取消", "", "Edit.htm?page=" & Page & "&oid=" & oid)
End With
If e.PostValues.Count > 0 Then
xr("Code") = e.PostValues("Code")
xr("Title") = e.PostValues("Title")
xr.Save()
wb.AddToast("", "t1", "已经保存", 0).Msec = 500
End If
wb.AppendHTML("<script src='./lib/order.js'></script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页
但是实际点击“确定”按钮,并没有保存为新输入的值。
名称后面加了“XX”,然后点确定,数据又回去了
ACCESS数据库有延迟?

此主题相关图片如下:无标题2.png

[此贴子已经被作者于2025/2/23 23:52:20编辑过]
Dim url As String = "EditBProDetail.htm?page=" & page & "&did=" & xr("ID") & "&oid=" & oid '传递页码和明细ID
If e.PostValues.Count > 0 Then
xr("Code") = e.PostValues("Code")
xr("Title") = e.PostValues("Title")
xr.Save()
wb.AddToast("", "t1", "已经保存", 0).Msec = 500
End If
wb.AddForm("", "form1", url)
With wb.AddInputGroup("form1", "ipg1", "编辑明细")
.AddHiddenValue("did", xr("ID"))
.AddInput("Code", "编号", "text").Value = xr("Code")
.AddInput("Title", "名称", "text").Value = xr("Title")
End With
With wb.AddButtonGroup("form1", "btg1", False)
.Add("btnok", "确定", "submit")
.Add("btnBack", "取消", "", "Edit.htm?page=" & Page & "&oid=" & oid)
End With
wb.AppendHTML("<script src='./lib/order.js'></script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2025.1.3.1
错误所在事件:自定义函数,EditBProDetail
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。
console报错信息如下:
EditBProDetail.htm:1
POST http://127.0.0.1:32177/EditBProDetail.htm?page=0&did=4b02bb18-f0f7-407c-9ad0-52c4c51b53d6&oid=fd61f691-ac73-4e11-b9a8-1f7e1e9be858 404 (foxtable web server has started(error 404))
[此贴子已经被作者于2025/2/24 9:20:41编辑过]
Case "EditBProDetail.htm"
' Functions.Execute("EditBProDetail", e)
Dim wb As New weui
Dim Page As Integer '页码变量
Dim oid As String
Dim xr As DataRow
If e.GetValues.ContainsKey("page") AndAlso e.GetValues.ContainsKey("oid") AndAlso e.GetValues.ContainsKey("did") Then
Integer.TryParse(e.GetValues("page"), page) '提取page参数
oid = e.GetValues("oid") '提取主表ID参数
xr = DataTables("TbBProD").SQLFind("ID = '" & e.GetValues("did") & "'") '获取明细行
If xr Is Nothing Then
Return
End If
End If
Dim url As String = "EditBProDetail.htm?page=" & page & "&did=" & xr("ID") & "&oid=" & oid '传递页码和明细ID
If e.PostValues.Count > 0 Then
' xr("Code") = e.PostValues("Code")
' xr("Title") = e.PostValues("Title")
' xr.Save()
' wb.AddToast("", "t1", "已经保存", 0).Msec = 500
Dim sb As New StringBuilder
sb.AppendLine("<meta name='viewport' c>")
sb.AppendLine("接收到的数据有:<br/><br/>")
For Each key As String In e.PostValues.Keys
sb.AppendLine(key & ":" & e.PostValues(key) & "<br/>")
Next
e.WriteString(wb.ToString) -----这一段的运行结果并未显示,直接弹出了报错窗口
Else
wb.AddForm("", "form1", url)
With wb.AddInputGroup("form1", "ipg1", "编辑明细")
.AddHiddenValue("did", xr("ID"))
.AddInput("Code", "编号", "text").Value = xr("Code")
.AddInput("Title", "名称", "text").Value = xr("Title")
End With
With wb.AddButtonGroup("form1", "btg1", False)
.Add("btnok", "确定", "submit") ----点确定按钮,就会直接弹报错窗口
.Add("btnBack", "取消", "", "Edit.htm?page=" & Page & "&oid=" & oid) '这个执行结果是正常的
End With
wb.AppendHTML("<script src='./lib/order.js'></script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页
End If
此主题相关图片如下:点击确定报错.png

[此贴子已经被作者于2025/2/24 17:28:25编辑过]