Foxtable(狐表)用户栏目专家坐堂 → 编辑完明细之后,明细内容不显示?想实现点击新增按钮时再显示对应的编辑项 不点击新增的时候 对应编辑项直接隐藏 怎么操作呢?


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

主题:编辑完明细之后,明细内容不显示?想实现点击新增按钮时再显示对应的编辑项 不点击新增的时候 对应编辑项直接隐藏 怎么操作呢?

帅哥哟,离线,有人找我吗?
李孝春
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
编辑完明细之后,明细内容不显示?想实现点击新增按钮时再显示对应的编辑项 不点击新增的时候 对应编辑项直接隐藏 怎么操作呢?  发帖心情 Post By:2020/8/4 9:49:00 [只看该作者]


参照移动开发中edit函数设计如下内容

图片点击可在新窗口打开查看此主题相关图片如下:2121.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2222.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:21.png
图片点击可在新窗口打开查看

1、想实现编辑完承办人信息之后  也对应显示当前承办人信息明细  
2、想实现在没有点增加嫌疑人  或增加承办人 按钮时   对应的新增嫌疑人明细  或新增承办人明细  不显示出来
红色部分内容怎么修正呢?

edit函数代码如下:
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
'删除订单明细
If e.GetValues.ContainsKey("deldid") Then
    DataTables("嫌疑人基本信息").SQLDeleteFor("[_Identify] = " & e.GetValues("deldid"))
    DataTables("承办人信息").SQLDeleteFor("[_Identify] = " & e.GetValues("deldid"))
End If
'订单编辑
Dim pr As DataRow '订单
Dim srs As List(of DataRow) '订单明细集合
Dim srs1 As List(of DataRow) '订单明细集合
Dim Page As Integer '页码变量
If e.GetValues.ContainsKey("page") Then  '如果地址中有page参数
    Integer.TryParse(e.GetValues("page"), page) '提取page参数
End If
If e.GetValues.ContainsKey("oid") = False Then '如果没有传递编号,则新增与一个订单
    pr = DataTables("订单").SQLAddNew() '
    pr("编号") = Functions.Execute("GetOrderID") '利用自定义函数GetOrderID为新增订单生成编号.
    pr("申请时间") = Date.Today()
Else '如果传递了编号,则找出此订单进行编辑
    pr = DataTables("订单").SQLFind("编号='" & e.GetValues("oid") & "'")
    If pr Is Nothing Then '多用户情况下,必须考虑其他用户删除订单的可能.
        wb.InSertHtml("此订单已被其他用户删除!")
        e.WriteString(wb.Build)
        Return ""  '必须返回
    End If
    srs =  DataTables("嫌疑人基本信息").SQLSelect("编号='" & pr("编号")  & "'") '获取订单明细
    srs1 =  DataTables("承办人信息").SQLSelect("编号='" & pr("编号")  & "'") '获取订单明细
End If
Dim url As String = "edit.htm?page=" & page &  "&oid=" & pr("编号")  '传递页码和编号
wb.AddForm("","form1",url)
With wb.AddInputGroup("form1","ipg1",iif(e.GetValues.ContainsKey("oid"),"编辑订单","新增订单"))
    With .AddInput("编号","编号","text")
        .Value = pr("编号")
        .Readonly = True
    End With
    With .AddInput("申请时间","申请时间","date")
        .Value = pr("申请时间")
        .Readonly = True
    End With
    With .AddInput("单位","所在单位","text")
        .Value = pr("单位")
        '.Placeholder="请填写申请人所在单位"
    End With
    With .AddInput("申请部门","所在部门","text")
        .Value = pr("申请部门")
        ' .Placeholder="请填写申请人所在部门"
    End With
    With .AddInput("申请人","申请人名","text")
        .Value = pr("申请人")
    End With
    With .AddInput("预约日期","预约日期","datetime-local")
        
        If pr("预约日期")= Nothing
            .value=""
        Else
            .Value = Format(pr("预约日期"),"yyyy-MM-ddTHH:mm")
        End If
    End With
    'With .AddInput("预约时间","预约时间","time")
    '.Value = Format(Date.Now,"HH:mm")
    'End With
    Dim s As String = "|远程提审支持|其它事项|".replace("|" & pr("预约事项") & "|","|[" & pr("预约事项") & "]|").trimend("|")
    With.AddSelect("预约事项","预约事项",s)
End With
.AddInput("备注","备注说明","text").Readonly=True
With.AddTextArea("yj",1)
.Value = pr("备注")
End With

.AddHiddenValue("编号",Functions.Execute("GetOrderID"))

End With
'订单明细编辑
Dim mr As DataRow '要编辑的订单明细
Dim mr1 As DataRow '要编辑的订单明细
Dim IsNew As Boolean '此变量用于标记是否要新增明细
If e.GetValues.ContainsKey("oid") = False OrElse e.GetValues.ContainsKey("addnext") '如果是新增订单,或这包括addnext参数
    IsNew = True '将IsNew参数设置为True,表明需要新增订单明细
ElseIf e.GetValues.ContainsKey("did") Then '如果传递了订单明细主键
    mr = DataTables("嫌疑人基本信息").SQLFind("[_Identify]=" & e.GetValues("did")) '找出此订单明细进行编辑
    mr1 = DataTables("承办人信息").SQLFind("[_Identify]=" & e.GetValues("did")) '找出此订单明细进行编辑
End If
If IsNew OrElse mr IsNot Nothing  Then
    With wb.AddInputGroup("form1","ipg2",iif(IsNew,"新增承办人明细","编辑承办人明细"))
        If IsNew Then '如果是新增订单明细
            .AddInput("部门","部门","text")
            .AddInput("姓名","姓名","text")
            .AddSelect("职务","职务","|男|女")
        Else
            .AddHiddenValue("DetailID",mr1("_Identify")) '插入一个隐藏的订单明细主键,此值将随表单数据一并提交到服务器.
            .AddInput("部门","部门","text").Value = mr1("部门")
            .AddInput("姓名","姓名","text").value = mr1("姓名")
            .AddInput("职务","职务","text").value = mr1("职务")
        End If
    End With
    
    With wb.AddInputGroup("form1","ipg22",iif(IsNew,"新增嫌疑人明细","编辑嫌疑人明细"))
        If IsNew Then '如果是新增订单明细
            .AddInput("涉嫌罪名","涉嫌罪名","text")
            .AddInput("嫌疑人姓名","嫌疑人姓名","text")
            .AddSelect("性别","性别","|男|女")
        Else
            .AddHiddenValue("DetailID",mr("_Identify")) '插入一个隐藏的订单明细主键,此值将随表单数据一并提交到服务器.
            .AddInput("涉嫌罪名","涉嫌罪名","text").Value = mr("涉嫌罪名")
            .AddInput("嫌疑人姓名","嫌疑人姓名","text").value = mr("嫌疑人姓名")
            .AddInput("性别","性别","text").value = mr("性别")
        End If
    End With
End If
'生成订单明细表格
If e.GetValues.ContainsKey("oid") AndAlso  srs.count > 0 Then '如果不是新增订单,且订单明细行数大于0,则生成订单明细表格.
    With wb.AddTable("form1","detailTable") '为了区分,明细表的名字设为detailTable
        .head.AddRow("涉嫌罪名","嫌疑人姓名","性别")
        .ActiveSheet = "menu" '指定菜单
        For Each sr As DataRow In srs
            With .Body.AddRow(sr("涉嫌罪名"),sr("嫌疑人姓名"),sr("性别"))
                .Primarykey = sr("_Identify") '为此行指定主键值
            End With
        Next
    End With
'设计菜单
    With wb.AddActionSheet("","menu")
        .Add("mnudAdd", "增加明细").Attribute="" '调用js函数
        .Add("mnuEdit", "编辑明细").Attribute =""
        .Add("mnuDelete", "删除明细").Attribute ="""
        .Add("mnuCancel","取消","",True)
    End With
End If



If e.GetValues.ContainsKey("oid") AndAlso  srs1.count > 0 Then '如果不是新增订单,且订单明细行数大于0,则生成订单明细表格.
    With wb.AddTable("form1","detailTable1") '为了区分,明细表的名字设为detailTable
        .head.AddRow("部门","姓名","职务")
        .ActiveSheet = "menu" '指定菜单
        For Each sr1 As DataRow In srs1
            With .Body.AddRow(sr1("部门"),sr1("姓名"),sr1("职务"))
                .Primarykey = sr1("_Identify") '为此行指定主键值
            End With
        Next
    End With
'设计菜单
    With wb.AddActionSheet("","menu")
        .Add("mnudAdd", "增加明细").Attribute="" '调用js函数
        .Add("mnuEdit", "编辑明细").Attribute =""
        .Add("mnuDelete", "删除明细").Attribute ="""
        .Add("mnuCancel","取消","",True)
    End With
End If






With wb.AddDialog("","dlg1", "删除确认","您确定要删除当前明细吗?")
    .AddButton("btnCancel","取消").Kind = 1
    .AddButton("btnOK","确定").Attribute = ""
End With
With wb.AddButtonGroup("form1","btg1",False)
    .Add("btn1", "增加嫌疑人", "submit").FormAction = url & "&addnext=true" '加上addnext参数,表示保存后进入增加明细状态
    .Add("btn11", "增加承办人", "submit").FormAction = url & "&addnext=true" '加上addnext参数,表示保存后进入增加明细状态
    .Add("btn2", "保存", "submit") '正常提交,保存后进入编辑状态
    If  e.GetValues.ContainsKey("oid") = False Then '如过是新增订单
        .Add("btn3", "取消", "button","list.htm?page=" & page & "&deloid=" & pr("编号")) '删除新增订单后返回列表
    ElseIf IsNew OrElse mr IsNot Nothing  Then '如果在给旧订单新增或修改明细,则直接返回编辑状态
        .Add("btn3", "取消", "button",url) '返回编辑状态
    Else
        .Add("btn3", "返回", "button","list.htm?page=" & page) '返回列表
    End If
End With
pr.Save() '必须保存,而且必须在最后保存,因为SQLAddNew增加的行,保存之后就会销毁,无法再调用
If e.PostValues.Count > 0 Then '如果是通过提交按钮访问,则给一个已经保存的提示给用户,时长500毫秒
    wb.AddToast("","t1", "已经保存",0).Msec= 500
End If
wb.AppendHTML("<script>" & vars("order") & "</script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页
[此贴子已经被作者于2020/8/4 9:54:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/4 10:03:00 [只看该作者]

加多一个参数区分是点了哪一个按钮
    .Add("btn1", "增加嫌疑人", "submit").FormAction = url & "&addnext=true&a=1" '加上addnext参数,表示保存后进入增加明细状态
    .Add("btn11", "增加承办人", "submit").FormAction = url & "&addnext=true&a=2" '加上addnext参数,表示保存后进入增加明细状态

然后代码里判断

If e.GetValues("a") = "1" Then
添加嫌疑人的各种控件
elseIf e.GetValues("a") = "2" Then
添加承办人的各种控件
endif

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)加多一个参数区分是点了哪一个按钮&n...  发帖心情 Post By:2020/8/4 13:02:00 [只看该作者]

OK  谢谢老师的耐心指导

编辑完承办人信息之后  没有对应显示当前承办人信息明细
这个问题有没有办法解决呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/4 13:36:00 [只看该作者]

自行调试显示当前承办人信息明细的代码有没有执行到
[此贴子已经被作者于2020/8/4 13:36:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)自行调试显示当前承办人信息明细的代...  发帖心情 Post By:2020/8/4 15:32:00 [只看该作者]

再次麻烦老师

 

现在承办人信息可以显示列表了 

在edit页面中双击嫌疑人信息列表时,可以弹出菜单,进行新增明细和删除明细操作,在操作编辑明细时出现如下错误:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:自定义函数,Edit
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

 

 

在edit页面中双击承办人人信息列表时,可以弹出菜单,进行新增明细正常,在操作删除明细时出现如下错误

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:
详细错误信息:
至少一个参数没有被指定值。

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:
详细错误信息:
列名 'undefined' 无效。

在edit页面中双击承办人人信息列表时,可以弹出菜单,点击编辑明细 无任何反应

 

 

 

js内容如下:

function edit(){
   location="edit.htm?page=" + table1.pagenumber + "&oid=" + table1.primarykey;
}

function del(){
   location="list.htm?page=" + table1.pagenumber + "&deloid=" + table1.primarykey;
}

function addnew(){
   location="edit.htm?page=" + table1.pagenumber;
}

function addDetail(){
   location=form1.action + "&addnext=true";
}

function editDetail(){
   location = form1.action + "&did=" + detailtable.primarykey;
}

function delDetail() {
   location = form1.action + "&deldid=" + detailtable.primarykey;
}

 

 



以下内容是专门发给有点蓝浏览

[此贴子已经被作者于2020/8/4 15:33:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/4 15:51:00 [只看该作者]

错误所在事件:自定义函数,Edit  -- 自行调试看是那一句代码出错

js也一样自行调试,table1是控件名称,有这个控件名称吗?

js内容如下:

function edit(){

alert("edit.htm?page=" + table1.pagenumber + "&oid=" + table1.primarykey);

   location="edit.htm?page=" + table1.pagenumber + "&oid=" + table1.primarykey; 
}

function del(){

alert("list.htm?page=" + table1.pagenumber + "&deloid=" + table1.primarykey);

   location="list.htm?page=" + table1.pagenumber + "&deloid=" + table1.primarykey; 
}

function addnew(){

alert("edit.htm?page=" + table1.pagenumber);

   location="edit.htm?page=" + table1.pagenumber;
}

function addDetail(){

alert(form1.action + "&addnext=true");

   location=form1.action + "&addnext=true";
}

function editDetail(){

alert(form1.action + "&did=" + detailtable.primarykey);

   location = form1.action + "&did=" + detailtable.primarykey;
}

function delDetail() {

alert(form1.action + "&deldid=" + detailtable.primarykey);

   location = form1.action + "&deldid=" + detailtable.primarykey;
}


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)错误所在事件:自定义函数,Edit ...  发帖心情 Post By:2020/8/4 17:07:00 [只看该作者]

参照移动开发帮助学习写的js

http://www.foxtable.com/mobilehelp/topics/0129.htm
http://www.foxtable.com/mobilehelp/topics/0130.htm

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/4 17:25:00 [只看该作者]

1、如何引用表单元素

我们在设计表单的时候,需要给输入框指定id属性和name属性,例如:

sb.appendLine("单价: <input Type='number' name='dj' id='dj'>")

表示定义了一个输入框用于输入单价,这个输入框的id和name都是"dj",id和name属性可以设置为不同的值,除非有特殊需要,一般设置为相同的值即可。

我们可以在js代码中直接通过id属性引用这个输入框,例如:

dj.value

表示单价输入框的值,这是一种简写方式,使用起来很方便。

还有一种更为标准的写法,例如下面的代码,同样是表示单价输入框的值:

document.getElementById('dj').value

前一种方法更为简洁,但后一种方法更为标准,多数编程书籍使用的都是后一种方法,本帮助文件两种都用。


----------------------------------

function edit(){

   location="edit.htm?page=" + table1.pagenumber + "&oid=" + table1.primarykey; 
}

table1对应的是

Dim wb As New WeUI

With wb.AddTable("","Table1")

    .PageNumber = page '设置页码

    .ActiveSheet = "menu" '指定菜单

    .Primarykey = "订单编号" '指定主键,只要是能唯一区分行的列即可,并非一定要表的实际主键.

    .CreateFromDataTable(dt, False,"","","订单编号","客户","日期","数量","金额")

End With



 回到顶部