以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=144757) |
-- 作者:我的碗里有个晋晋 -- 发布时间:2019/12/28 21:42:00 -- [求助] 请大佬帮助,我想将"总表"内"抄送单位"一栏(复选框)内的"单位"在每被选中一次后,就在"所有单位"表中将该单位的编号+1,但我写的代码在表事件中点击确定没报错,但是在我每次点击选定"抄送单位"栏几个单位后, 却提示: "Exception has been thrown by the target of an invocation. Unable to cast object of type \'System.String[]\' to type \'System.Collections.Generic.List`1[System.String]\'." 请问是什么原因呢?烦请大佬解惑,谢谢! Select Case e.DataCol.name \'此代码写在DataTables("总表")内的表属性-DataColChanged内 Case "抄送单位" \'现选定若干个抄送单位(抄送单位的值为链接到DataTables("所有单位")内"单位"列下的复选框) If e.DataRow("抄送单位") IsNot Nothing Then Dim cs As List(Of String) = e.DataRow("抄送单位").Split(",") \'将"抄送单位"复选框内的值以集合形式赋给变量cs Dim dws As List(Of String) dws = DataTables("所有单位").GetValues("单位") \'将DataTables("所有单位")内的所有"单位"以集合形式赋给变量dws For Each dw As String In dws If cs.Contains("& dw &") = True Then \'分别对DataTables("所有单位")内的"单位"进行判断,是否被包含在新添加的抄送单位内,如果包含 Dim dr As DataRow dr = DataTables("所有单位").Find("单位 = \'" & dw & "\'") \'找到DataTables("所有单位")内该单位的行 dr("抄送单位编号") = dr("抄送单位编号") + 1 \'然后对该单位的抄送编号+1 End If Next End If End Select
[此贴子已经被作者于2019/12/28 21:42:02编辑过]
|
-- 作者:2900819580 -- 发布时间:2019/12/29 8:59:00 -- If cs.Contains(dw) = True Then |
-- 作者:有点蓝 -- 发布时间:2019/12/29 21:17:00 -- Select Case e.DataCol.name \'此代码写在DataTables("总表")内的表属性-DataColChanged内 Case "抄送单位" \'现选定若干个抄送单位(抄送单位的值为链接到DataTables("所有单位")内"单位"列下的复选框) If e.DataRow("抄送单位") IsNot Nothing Then Dim cs As new List(Of String) cs.AddRange(e.DataRow("抄送单位").Split(",")) \'将"抄送单位"复选框内的值以集合形式赋给变量cs Dim dws As List(Of String) dws = DataTables("所有单位").GetValues("单位") \'将DataTables("所有单位")内的所有"单位"以集合形式赋给变量dws For Each dw As String In dws If cs.Contains(dw) = True Then \'分别对DataTables("所有单位")内的"单位"进行判断,是否被包含在新添加的抄送单位内,如果包含 Dim dr As DataRow dr = DataTables("所有单位").Find("单位 = \'" & dw & "\'") \'找到DataTables("所有单位")内该单位的行 dr("抄送单位编号") = dr("抄送单位编号") + 1 \'然后对该单位的抄送编号+1 End If Next End If End Select
|