以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]系统报警,如何解决呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48109) |
-- 作者:737182811 -- 发布时间:2014/3/23 14:12:00 -- [求助]系统报警,如何解决呢? 利用代码将目录树的是否逾期列从原来的"true false"显示改成中文后,会导致狐爸后面的代码报错,由于是系统报警,看不懂.... 本页地址:http://www.foxtable.com/help/topics/2503.htm 报错信息 .NET Framework 版本:2.0.50727.5477 Foxtable 版本:2013.10.14.1 错误所在事件: 详细错误信息: 无法在 System.Boolean 和 System.String 上执行“=”操作。 利用的是狐爸的通用设计代码. \'------build复选筛选树 e.Form.Controls("TreeView1").BuildTree("任务追踪表", "是否逾期|责任部门|执行人") \'-----使筛选树的第一级node显示中文逾期 Dim trv1 As WinForm.TreeView = Forms("任务追踪").Controls("TreeView1")\'使筛选树的第一级node显示中文逾期 For Each node As WinForm.TreeNode In trv1.Nodes If node.text = False Then node.text = "未逾期" Else \'node.text = "逾期" End If Next ---通用代码 \'设置复选筛选树 Dim nms As String() = {"是否逾期","责任部门","执行人"} \'指定生成目录树的各列 Dim qts As String() = {"\'","\'","\'"} \'指定将各列的值括起来的符号,这里都是字符型,所以都是单引号 Dim trv As WinForm.TreeView = e.Sender Dim flt As String Dim nd As WinForm.TreeNode For Each nd In e.node.allNodes \'清除子节点的选中标记 nd.Checked = False Next nd = e.Node.ParentNode Do While nd IsNot Nothing \'清除父节点的选中标记 nd.Checked = False nd = nd.ParentNode Loop For Each nd In trv.AllNodes If nd.Checked Then MessageBox.Show(nd.fullpath) Dim rts() As String = nd.FullPath.Split("\\") Dim val As String = "" For i As Integer = 0 To rts.length - 1 If val > "" Then val = val & " And " End If val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i) Next If flt > "" Then flt = flt & " Or (" & val & ")" Else flt = val End If End If Next e.Form.Controls("Table2").Table.Filter = flt |
-- 作者:737182811 -- 发布时间:2014/3/23 14:30:00 -- 问题找到了,出在最后一句表达式上,输出调试结果flt显示为 "是否逾期" = \'逾期\' ,正确的表达是应该是 "是否逾期" = true 但这个问题如何解决呢?????
|
-- 作者:737182811 -- 发布时间:2014/3/23 14:37:00 -- If rts(i) = "逾期" Then \'修正后面会出现的表达式合成错误 rts(i) = "True" ElseIf rts(i) = "未逾期" Then rts(i) = "false" End If 自己搞定了,增加了一段代码,用笨办法解决的,各位高手莫见笑.
|
-- 作者:lsy -- 发布时间:2014/3/23 14:47:00 -- 原来:nd.FullPath.Split("\\") 改成:nd.FullName.Split("\\")
就不用费劲调来调去了。
|
-- 作者:737182811 -- 发布时间:2014/3/23 14:48:00 -- 膜拜版主!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 高,实在是高啊.
|
-- 作者:737182811 -- 发布时间:2014/3/23 15:01:00 -- NND,刚才看到另外一个例子,原来狐爸也讲过这个问题,关键还是走马观花是记不住的,一定要自己动手才知道. |