以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]根据样式给列赋值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73733)

--  作者:fox20150629
--  发布时间:2015/8/25 15:52:00
--  [求助]根据样式给列赋值
怎么根据单元格自定义样式给单元格自动赋值,在列的哪个属性设置呢,例如表的e.style="绿色",想要排序列值自动为1
--  作者:大红袍
--  发布时间:2015/8/25 16:01:00
--  

不行。

 

去datacolchanged事件根据逻辑写代码。然后重置列计算。


--  作者:fox20150629
--  发布时间:2015/8/25 16:21:00
--  
以下是引用大红袍在2015/8/25 16:01:00的发言:

不行。

 

去datacolchanged事件根据逻辑写代码。然后重置列计算。


如何重置列计算呢,我的表drawcell代码这样设置颜色的


If e.Row.IsNull("列1") = False AndAlso e.Row.IsNull("列2") AndAlso e.Row.IsNull("列3") Then

   e.Style = "绿色"

End If

If e.Row.IsNull("列1") = False  AndAlso e.Row.IsNull("列3") = False AndAlso e.Row.IsNull("列2")  Then

    e.Style = "橙色"

End If

If e.Row.IsNull("列2") = False AndAlso e.Row.IsNull("列3") = False AndAlso e.Row.IsNull("ATA")= False Then

    e.Style = "灰色"

End If

If e.Row.IsNull("列1")  AndAlso e.Row.IsNull("列2") AndAlso e.Row.IsNull("列3") Then

    e.Style = "白色"

End If


想根据这些样式颜色给列4赋值1,2,3,4然后好将相同颜色排序

[此贴子已经被作者于2015/8/25 16:21:58编辑过]

--  作者:有点蓝
--  发布时间:2015/8/25 16:27:00
--  

If e.Row.IsNull("列1") = False AndAlso e.Row.IsNull("列2") AndAlso e.Row.IsNull("列3") Then

   e.Style = "绿色"

   e.Row(“列4”) = 1

试一下画的时候直接赋值


--  作者:大红袍
--  发布时间:2015/8/25 16:28:00
--  

http://www.foxtable.com/help/topics/1469.htm

 

 

Select Case e.DataCol.Name
   
    Case "列1","列2","列3"
        If e.DataRow.IsNull("列1") = False AndAlso e.DataRow.IsNull("列2") AndAlso e.DataRow.IsNull("列3") Then
           
            e.DataRow("排序") = 1
           
        End If
       
        If e.DataRow.IsNull("列1") = False  AndAlso e.DataRow.IsNull("列3") = False AndAlso e.DataRow.IsNull("列2")  Then
           
            e.DataRow("排序") = 2
            
        End If
       
        If e.DataRow.IsNull("列2") = False AndAlso e.DataRow.IsNull("列3") = False AndAlso e.DataRow.IsNull("ATA")= False Then
           
            e.DataRow("排序") = 3
            
        End If
       
        If e.DataRow.IsNull("列1")  AndAlso e.DataRow.IsNull("列2") AndAlso e.DataRow.IsNull("列3") Then
           
            e.DataRow("排序") = 4
            
        End If
       
End Select

[此贴子已经被作者于2015/8/25 16:28:15编辑过]

--  作者:fox20150629
--  发布时间:2015/8/25 16:41:00
--  
以下是引用有点蓝在2015/8/25 16:27:00的发言:

If e.Row.IsNull("列1") = False AndAlso e.Row.IsNull("列2") AndAlso e.Row.IsNull("列3") Then

   e.Style = "绿色"

   e.Row(“列4”) = 1

试一下画的时候直接赋值



谢谢这样可以的~


--  作者:有点蓝
--  发布时间:2015/8/25 16:48:00
--  
写在DrawCell中的东西多可能会影响效率,你要观察,如果影响效率你就写在datacolchanged中比较好