Foxtable(狐表)用户栏目专家坐堂 → 多值字段问题


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

主题:多值字段问题

美女呀,离线,留言给我吧!
13775189031
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:849 积分:5873 威望:0 精华:0 注册:2017/12/19 14:46:00
多值字段问题  发帖心情 Post By:2018/4/4 8:50:00 [只看该作者]

请教:某列多值字段选项:A,B,C,D,E,其中勾选了A,B,C三个选项,想实现以下功能:
第一列到第五列为逻辑列,分别对应A到E的值,若勾选A、B、C值则对应的第一列、第二列、第三列逻辑列打勾,若未勾选则逻辑列不打勾
怎么实现?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/4 10:22:00 [只看该作者]

参考代码

 

Dim ary1() As String = {"A", "B", "C", "D", "E"}
Dim ary2() As String = {"第一列", "第二列", "第三列", "第四列", "第五列"}
Dim str As String = "A,C,E"
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
        msgbox(ary2(i))
        Tables("表A").current(ary2(i)) = True
    Else
        Tables("表A").current(ary2(i)) = False 
    End If
Next


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:849 积分:5873 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/4 11:32:00 [只看该作者]

Dim str As String = "A,C,E"
这行是什么意思?为什么只有A、C、E?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/4 12:35:00 [只看该作者]

如果写到DataColChanged事件,改成

 

Dim str As String = e.DataRow("第一列")


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:849 积分:5873 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/10 8:56:00 [只看该作者]

Dim ary1() As String = {"本合同符合国家法律法规,符合公司经营范围", "各项产品要求都有明确的规定", "文字叙述清楚,无含糊不清或矛盾之处", "公司有能力实现产品的技术要求", "能满足合同交货期的规定", "成本费用及付款风险可控", "无特殊要求"}
Dim ary2() As String = {"第一列", "第二列", "第三列", "第四列", "第五列", "第六列", "第七列"}
If e.DataCol.Name = "事业部评审意见" Then 
    Dim str As String = e.DataRow("事业部评审意见")
    'MessageBox.Show("你选择的是" & str & "项.")
    Dim ary3 = str.split(",")
    'MessageBox.Show("你选择的是" & ary3(0) & "项.")
    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
Else
    'MessageBox.Show("你选择的是" & "项.")
End If


请教:程序编完后,第一列和第三列不显示,是什么问题?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/10 9:04:00 [只看该作者]

应该是逗号的问题吧?多值字段那里,分割符号,请改成|

 

http://www.foxtable.com/webhelp/scr/0939.htm

 

然后修改代码  Dim ary3 = str.split("|")


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:849 积分:5873 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/10 12:29:00 [只看该作者]

Dim ary1() As String = {"本合同符合国家法律法规,符合公司经营范围", "各项产品要求都有明确的规定", "文字叙述清楚,无含糊不清或矛盾之处", "公司有能力实现产品的技术要求", "能满足合同交货期的规定", "成本费用及付款风险可控", "无特殊要求"}
Dim ary2() As String = {"第一列", "第二列", "第三列", "第四列", "第五列", "第六列", "第七列"}
If e.DataCol.Name = "事业部评审意见" Then 
    Dim str As String = e.DataRow("事业部评审意见")
    'MessageBox.Show("你选择的是" & str & "项.")
    Dim ary3 = str.split("|")
    'MessageBox.Show("你选择的是" & ary3(0) & "项.")
    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
Else 'MessageBox.Show("你选择的是" & "项.")
End If


Dim ary4() As String = {"合同及技术协议", "图纸", "标准", "其他"}
Dim ary5() As String = {"第八列", "第九列", "第十列", "第十一列"}
If e.DataCol.Name = "评审表附件" Then 
    Dim str As String = e.DataRow("评审表附件")
    'MessageBox.Show("你选择的是" & str & "项.")
    Dim ary6 = str.split(",")
    'MessageBox.Show("你选择的是" & ary3(0) & "项.")
    For i As Integer = 0 To ary1.length-1
        Dim idx As Integer = array.indexof(ary6, ary4(i))
        If idx >= 0 Then
            Tables("合同评审").current(ary5(i)) = True
        Else
            Tables("合同评审").current(ary5(i)) = False 
        End If
    Next
Else  'MessageBox.Show("你选择的是" & "项.")
End If



运行显示.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.9.1
错误所在事件:表,合同评审,DataColChanged
详细错误信息:
调用的目标发生了异常。
索引超出了数组界限。

哪出了问题?


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:849 积分:5873 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/10 12:31:00 [只看该作者]

单独第一个没问题,加上第二段以后,第八到第十一列值显示没问题,但是会有上面的报错!

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:849 积分:5873 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/10 12:53:00 [只看该作者]

刚刚解决了!谢谢!

 回到顶部