Foxtable(狐表)用户栏目专家坐堂 → [求助]WEUI明细表编辑以后如何保存


  共有95人关注过本帖树形打印复制链接

主题:[求助]WEUI明细表编辑以后如何保存

帅哥,在线噢!
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]WEUI明细表编辑以后如何保存  发帖心情 Post By:2025/2/23 21:55:00 [显示全部帖子]

定义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) '生成网页

 回到顶部
帅哥,在线噢!
chnfo
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2025/2/23 23:43:00 [显示全部帖子]

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编辑过]

 回到顶部
帅哥,在线噢!
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2025/2/24 9:18:00 [显示全部帖子]

.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编辑过]

 回到顶部
帅哥,在线噢!
chnfo
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2025/2/24 9:53:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:明细展示.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:展示某一订单的明细.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
chnfo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2025/2/24 17:26:00 [显示全部帖子]

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编辑过]

 回到顶部
帅哥,在线噢!
chnfo
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2025/2/24 17:48:00 [显示全部帖子]

e.WriteString(sb.ToString) ---影响不是在这里
改了以后,仍然直接弹窗报错

 回到顶部
帅哥,在线噢!
chnfo
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2025/2/24 17:50:00 [显示全部帖子]

图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
chnfo
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2025/2/24 17:59:00 [显示全部帖子]

点击了确定按钮以后,先是弹报错窗口,然后显示erroe404,但网页url没有变化。
在网址栏按回车以后,网页可以正常加载。
但点确定还是报错的
[此贴子已经被作者于2025/2/24 17:59:28编辑过]

 回到顶部
帅哥,在线噢!
chnfo
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2290 积分:18812 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2025/2/24 18:11:00 [显示全部帖子]

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"))   ''''问题在这里,把did换成ID就对了
        .AddInput("Code", "编号", "text").Value = xr("Code")
        .AddInput("Title", "名称", "text").Value = xr("Title")
    End With

 回到顶部