以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  多值字段怎么一键取消选中状态?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=75838)

--  作者:shilhoue
--  发布时间:2015/10/15 16:57:00
--  多值字段怎么一键取消选中状态?

项目中碰到这样一个问题,A列设置为多值字段,如果通过事件代码一次性取消该列被选中的状态。

注意,取消选中后曾经选择的数据还要保留。


--  作者:大红袍
--  发布时间:2015/10/15 17:29:00
--  
没理解你什么意思,上传实例说明。
--  作者:shilhoue
--  发布时间:2015/10/19 13:39:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:检测业务管理系统.table

 

任务安排表中的采样人员是多值字段,选择的人员表示在此项目中承担工作的人员,是独占性质,在解除占用前不会出现在可选列表中。其他设备安排中也是如此。

问题来了,当项目结束后如何通过点击解除占用复选框(最好是按钮,但不知道如何实现)解除被选择人员的选中状态,试过将单元格赋值为空可以实现,但我的要求是仅仅解除选中状态,单元格还保留原先的值。

这个代码不会写,请版主指点。

 

另外如果实现自己的交互界面,看了帮助还是不太明白。


--  作者:大红袍
--  发布时间:2015/10/19 14:20:00
--  

If e.Col.Name = "采样人员"  Then
    Dim val As String  = DataTables("任务安排").GetComboListString("采样人员","[_Identify] <> " & e.Row("_Identify") & " and (解除占用 = false or 解除占用 is null)")
    val = val.Replace("|",",").replace(",","\',\'")

    e.Col.ComboList = DataTables("人员表").GetComboListString("姓名","姓名 not in (\'" & val & "\')")
End If


--  作者:shilhoue
--  发布时间:2015/10/20 8:42:00
--  谢谢版主
谢谢
--  作者:shilhoue
--  发布时间:2015/10/20 9:13:00
--  没有效果
 将代码复制在AfterCheckRow事件中无效啊
--  作者:大红袍
--  发布时间:2015/10/20 9:47:00
--  
汗,prepareEdit事件啊
--  作者:shilhoue
--  发布时间:2015/10/22 11:35:00
--  

日均设备的字段列表是从设备表中根据条件取得的,下面的代码出错,请版主看看是哪里错了?

 

If e.Col.Name = "日均设备"  Then
    Dim val As String  = DataTables("任务安排").GetComboListString("日均设备","[_Identify] <> " & e.Row("_Identify") & "and (解除占用 = false or 解除占用 is null)" & "and datables("设备表").cols(设备类别)= & "\'24小时综合\'")
    val = val.Replace("|",",").replace(",","\',\'")
    e.Col.ComboList = DataTables("设备表").GetComboListString("设备编号","设备编号 not in (\'" & val & "\')")
End If


--  作者:大红袍
--  发布时间:2015/10/22 11:58:00
--  

If e.Col.Name = "日均设备"  Then
    Dim val As String  = DataTables("任务安排").GetComboListString("日均设备","[_Identify] <> " & e.Row("_Identify") & " and (解除占用 = false or 解除占用 is null)")
    val = val.Replace("|",",").replace(",","\',\'")
    e.Col.ComboList = DataTables("设备表").GetComboListString("设备编号","设备编号 not in (\'" & val & "\') and 设备类别 = \'24小时综合\'")
End If

--  作者:shilhoue
--  发布时间:2015/10/22 12:26:00
--  

谢谢袍哥,比我以前的代码简洁多了。

另外问一下关于代码的学习除了帮助,还应如何学习和提高,帮助里有些也没这么细致