Foxtable(狐表)用户栏目专家坐堂 → 参照移动开发帮助中edit的写法 怎么显示datetime-local的值 AddSelect已经选择的值


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

主题:参照移动开发帮助中edit的写法 怎么显示datetime-local的值 AddSelect已经选择的值

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
参照移动开发帮助中edit的写法 怎么显示datetime-local的值 AddSelect已经选择的值  发帖心情 Post By:2020/8/3 10:29:00 [只看该作者]

参照移动开发帮助中edit的写法

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

预约日期如果为日期时间列的话  不显示已经查询到的预约日期值  请问红色部分有什么办法补正么   在不改变列属性的情况下
    With .AddInput("预约日期","预约日期","datetime-local")
        .Value = pr("预约日期")
    End With


预约事项是属于选择列表,当选择后,如果要编辑该表单,想直接显示当前表单中预约事项的值,如果没有预约事项无值,则允许选择
    With.AddSelect("预约事项","预约事项","|远程提审支持|其它事项")
    .Attribute=pr("预约事项")
    End With
结果上述预约事项代码  没有显示值   数据库中是有值的  请问红色部分有什么办法补正呢?

[此贴子已经被作者于2020/8/3 10:31:08编辑过]

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


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

1、.Value = Format(r("预约日期"),"yyyy-MM-dd HH:mm")

2、
dim s as string = "|远程提审支持|其它事项|".replace("|" & pr("预约事项") & "|","|[" & pr("预约事项") & "]|").trimend("|")
With.AddSelect("预约事项","预约事项",s)

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)1、.Value = Format(r("预约日期"),"...  发帖心情 Post By:2020/8/3 11:06:00 [只看该作者]

 Format(b("预约日期"),"G"))
Format(b("预约日期"),"yyyy-MM-dd HH:mm"))
预约日期这个问题还是没有能够正常显示值  还是第一楼图一样  麻烦老师继续指导下  谢谢

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


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

如果是苹果手机,改为:.Value = Format(r("预约日期"),"yyyy-MM-ddTHH:mm")

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)如果是苹果手机,改为:.Value = For...  发帖心情 Post By:2020/8/3 22:38:00 [只看该作者]

    老师  按照你的指导 现在操作如下

With .AddInput("预约日期","预约日期","datetime-local")
        .Value = Format(pr("预约日期"),"yyyy-MM-ddTHH:mm")
    End With

在录入选择时间的时候出现如下图(怎么解决年份为0001的问题)

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

[此贴子已经被作者于2020/8/3 23:31:33编辑过]

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


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

判断一下单元格如果没有值,就不要赋值了

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)判断一下单元格如果没有值,就不要赋...  发帖心情 Post By:2020/8/3 23:30:00 [只看该作者]

OK  灰常感谢老师深夜的指导  解决了时间显示的问题 

我参照老师帖子里的exweui做了一个项目,
我想实现新增嫌疑人信息  新增承办人信息  
当我点新增承办人信息按钮时,就只显示承办人信息录入项目  隐藏嫌疑人信息录入项目  反之就显示对应打开的部分
当前可能在按钮事件代码中出现了思维混乱  不管是点击承办人新增还是嫌疑人新增  两个录入项目都会显示出来
且承办人信息不能正常保存  出现第一个问题中的红色部分错误

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


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

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
    '设计菜单
Else If e.GetValues.ContainsKey("oid") AndAlso  srs1.count > 0 Then '如果不是新增订单,且订单明细行数大于0,则生成订单明细表格.
    With wb.AddTable("form1","detailTable1") '为了区分,明细表的名字设为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
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) '生成网页


save函数代码如下
Dim e As RequestEventArgs = args(0)
'保存订单
Dim dr As DataRow = DataTables("订单").SQLFind("编号='" & e.PostValues("编号") & "'")
Dim nms() As String = {"编号","申请时间","单位","申请人","预约日期","预约事项","申请部门","备注"}  '""
If dr IsNot Nothing Then
    For Each nm As String In nms
        If e.PostValues.ContainsKey(nm) Then
            dr(nm)= e.PostValues(nm)
            dr("备注")= e.PostValues("yj")
            dr("状态")="新建"
        End If
    Next
End If
dr.Save()
'保存明细
Dim valid As Boolean '用于判断用户是否 输入了订单明细数据
nms = New String() {"涉嫌罪名","嫌疑人姓名","性别"}
For Each nm As String In nms
    If e.PostValues.ContainsKey(nm) Then
        valid = True '如果 输入了订单明细数据,将valid变量设置为True
    End If
Next
If valid Then '如果提交了订单明细数据
    Dim sr As DataRow
    If e.PostValues.ContainsKey("DetailID") Then '如果传递了订单明细主键
        sr = DataTables("嫌疑人基本信息").SQLFind("[_Identify]=" & e.PostValues("DetailID"))
        If sr Is Nothing  Then  '多用户环境,必须考虑其他用户删除此明细的可能,避免程序报错
            Return ""
        End If
    Else
        sr = DataTables("嫌疑人基本信息").SQLAddNew() '增加一个订单明细
        sr("编号") = dr("编号")
    End If
    For Each nm As String  In nms
        sr(nm) = e.PostValues(nm)
    Next
    sr.Save()  '必须保存,而且必须在最后保存,因为用SQLAddNew增加的行,一旦保存,就不能再引用此行
End If

'保存明细
Dim valid1 As Boolean '用于判断用户是否 输入了订单明细数据
nms = New String() {"部门","姓名","职务"}
For Each nm1 As String In nms
    If e.PostValues.ContainsKey(nm1) Then
        valid1 = True '如果 输入了订单明细数据,将valid变量设置为True
    End If
Next
If valid1 Then '如果提交了订单明细数据
    Dim sr1 As DataRow
    If e.PostValues.ContainsKey("DetailID") Then '如果传递了订单明细主键
        sr1 = DataTables("承办人信息").SQLFind("[_Identify]=" & e.PostValues("DetailID"))
        If sr1 Is Nothing  Then  '多用户环境,必须考虑其他用户删除此明细的可能,避免程序报错
            Return ""
        End If
    Else
        sr1 = DataTables("承办人信息").SQLAddNew() '增加一个订单明细
        sr1("编号") = dr("编号")
    End If
    For Each nm1 As String  In nms
        sr1(nm1) = e.PostValues(nm1)
        sr1("操作单位")=e.PostValues("单位")
        sr1("电话")="123"
    Next
    sr1.Save()  '必须保存,而且必须在最后保存,因为用SQLAddNew增加的行,一旦保存,就不能再引用此行
End If
[此贴子已经被作者于2020/8/4 9:53:31编辑过]

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


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

请按正常方式建项目做测试,测试通了再把代码搬到函数表里测试。这种用法很难跟踪和调试问题。

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)请按正常方式建项目做测试,测试通了...  发帖心情 Post By:2020/8/4 9:59:00 [只看该作者]

谢谢老师提醒  

提示“_Identify”不能为空值 无法保存数据的问题已经解决
谢谢老师
现在的问题一个是承办人信息不能显示 (当前已经可以保存承办人信息了,且有记录)
一个是怎么实现点击按钮后  对应的编辑项才能显示  不点击的话  就不显示
[此贴子已经被作者于2020/8/4 9:59:23编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=153212

 回到顶部