以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多值字段问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126727)

--  作者:13775189031
--  发布时间:2018/10/27 13:52:00
--  多值字段问题

表“焊接部件清单”中列“焊接方法”,是由“焊接工艺卡清单中筛选出来的,并且设置了多值字段

PrepareEdit事件

”If e.IsFocusCell Then
    If e.Col.Name = "焊接方法" Then
        e.Col.Combolist = DataTables("焊接工艺卡清单").GetComboListString("焊接方法", "[生产令号] = \'" & e.Row("生产令号") & "\' And [工艺卡号] = \'" & e.Row("工艺卡号") & "\'")
    End If
End If

 

现在想实现在“焊接方法”列中勾选某项,则在相应的逻辑列中自动勾选,

编码如下:

Dim ary1() As String = {"焊接方法_GTAW","焊接方法_SMAW","焊接方法_SAW","焊接方法_GMAW"}
Dim ary2() As String = {"焊接方法_GTAW","焊接方法_SMAW","焊接方法_SAW","焊接方法_GMAW"}
If e.DataCol.Name = "焊接方法" Then
    Dim str As String = e.DataRow("焊接方法")
    Dim ary3 = str.split("|")
    For i As Integer = 0 To ary1.length-1
        Dim idx As Integer = array.indexof(ary3, ary1(i))
        If idx >= 0 Then
            e.DataRow(ary2(i)) = True
        Else
            e.DataRow(ary2(i)) = False
        End If
    Next
End If

但是没反应,不知道是哪里有问题?

 


--  作者:有点蓝
--  发布时间:2018/10/27 14:14:00
--  
代码看不出什么问题。上传实例看看
--  作者:13775189031
--  发布时间:2018/10/27 14:21:00
--  

改了下代码搞定了!谢谢!

Dim ary1() As String = {"GTAW","SMAW","SAW","GMAW"}
Dim ary2() As String = {"GTAW","SMAW","SAW","GMAW"}
If e.DataCol.Name = "焊接方法" Then
    Dim str As String = e.DataRow("焊接方法")
    Dim ary3 = str.split("|")
    For i As Integer = 0 To ary1.length-1
        Dim idx As Integer = array.indexof(ary3, ary1(i))
        If idx >= 0 Then
            Tables("焊接部件清单").current(ary2(i)) = True
        Else
            Tables("焊接部件清单").current(ary2(i)) = False
        End If
    Next
ElseEnd If


--  作者:13775189031
--  发布时间:2018/10/29 8:44:00
--  

“焊接方法”筛选取值后设为多值字段,然后再选择,能不能让多值字段自动显示勾选,不选的进行人工去除

If e.IsFocusCell Then
    If e.Col.Name = "焊接方法" Then
        e.Col.Combolist = DataTables("焊接工艺卡及焊缝清单").GetComboListString("焊接方法", "[生产令号] = \'" & e.Row("生产令号") & "\' And [工艺卡号] = \'" & e.Row("工艺卡号") & "\'")
    End If
End If


--  作者:有点甜
--  发布时间:2018/10/29 12:37:00
--  
以下是引用13775189031在2018/10/29 8:44:00的发言:

“焊接方法”筛选取值后设为多值字段,然后再选择,能不能让多值字段自动显示勾选,不选的进行人工去除

If e.IsFocusCell Then
    If e.Col.Name = "焊接方法" Then
        e.Col.Combolist = DataTables("焊接工艺卡及焊缝清单").GetComboListString("焊接方法", "[生产令号] = \'" & e.Row("生产令号") & "\' And [工艺卡号] = \'" & e.Row("工艺卡号") & "\'")
    End If
End If

 

实例发上来测试吧,你的描述信息不充足。