以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  这个报错是不是不能识别?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=131071)

--  作者:blackzhu
--  发布时间:2019/2/15 15:44:00
--  这个报错是不是不能识别?
  Case "09:30-10:00", "10:00-10:30"
                        If e.Row.Isnull(e.Col.Name) = False Then
                            Dim dr As DataRow = e.Table.DataTable.find("(" & e.Col.Name & "= \'" & e.Row(e.Col.Name) & "\') And 预约医生=\'" & e.row("预约医生") & "\'")
                            If dr IsNot Nothing Then
                                e.Style = "b"
                            End If
                        End If



无法解释位置 4 的标记“:”。

--  作者:有点甜
--  发布时间:2019/2/15 15:46:00
--  

列名加上中括号

 

Dim dr As DataRow = e.Table.DataTable.find("([" & e.Col.Name & "]= \'" & e.Row(e.Col.Name) & "\') And 预约医生=\'" & e.row("预约医生") & "\'")


--  作者:blackzhu
--  发布时间:2019/2/15 15:51:00
--  
我试试


--  作者:blackzhu
--  发布时间:2019/2/15 15:57:00
--  
老大 

Dim dr As DataRow = e.Table.DataTable.find("([" & e.Col.Name & "]= \'" & e.Row(e.Col.Name) & "\') And 预约医生=\'" & e.row("预约医生") & "\'")

我想第一个颜色不变色,后面找到的再变色,应该怎么改?

--  作者:有点甜
--  发布时间:2019/2/15 15:59:00
--  
具体实例发上来说明和测试。
--  作者:blackzhu
--  发布时间:2019/2/15 16:08:00
--  
不好做实例,列名全部动态生成的,我上传个截图.




图片点击可在新窗口打开查看此主题相关图片如下:tt截图未命名.jpg
图片点击可在新窗口打开查看

就是这个意思



[此贴子已经被作者于2019/2/15 16:08:41编辑过]

--  作者:有点甜
--  发布时间:2019/2/15 16:11:00
--  

 

你需要循环每一列判断,如果之前的列有值,就满足条件,标记为别的颜色。

 


--  作者:blackzhu
--  发布时间:2019/2/15 16:24:00
--  
Select Case e.Col.Name
                    Case "预约医生"
                        e.Style = "a"
                    Case Else
                        e.Style = "a"
                        If e.Row.IsNull(e.Col.Name) = False Then
                            For Each Cl As Col In e.Table.Cols
                                Select Case Cl.Name
                                    Case "预约医生"
                                    Case Else
                                        Dim dr As DataRow = e.Table.DataTable.Find("([" & Cl.Name & "]= \'" & e.Row(e.Col.Name) & "\') And 预约医生=\'" & e.Row("预约医生") & "\'")
                                        If dr IsNot Nothing Then
                                            e.Style = "c"
                                        End If
                                End Select
                            Next
                        End If
                End Select

我这样写还是全部变色了

--  作者:有点甜
--  发布时间:2019/2/15 16:28:00
--  

For Each Cl As Col In e.Table.Cols

 

改成

 

for i as integer = 0 to e.col.index-1

    Dim cl As Col = e.table.cols(i)

[此贴子已经被作者于2019/2/15 16:28:33编辑过]

--  作者:逛逛
--  发布时间:2019/2/15 16:32:00
--  
和单元格注释一样处理啊,加一个辅助列,记录本行各个单元格的样式值