以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何用颜色标记一列??  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=12594)

--  作者:zhangqinyun
--  发布时间:2011/9/8 13:56:00
--  [求助]如何用颜色标记一列??

我在编写排产表

要把今天的列用颜色标记出来,怎么标记。

 

我知道标记列标题:

Tables("排产表").SetHeaderCellBackColor("D0",Color.Yellow,1)

 

但不知道怎么标记一整列,难道:

For I = 1 to Tables("排产表").Count

Tables("排产表").SetHeaderCellBackColor("D0",Color.Yellow,1)

Next

这样??

 

有没有简单的啊,我要标记好几列。


--  作者:狐狸爸爸
--  发布时间:2011/9/8 14:12:00
--  

参考:

 

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

 


--  作者:zhangqinyun
--  发布时间:2011/9/8 14:20:00
--  

我的排产表是临时表啊!

\'排产表
Dim Td As Date = Date.Today
Dim Name As String
Dim I As Short
Dim dtb As New DataTableBuilder("排产表")
dtb.AddDef("生产组", Gettype(String), 4)
dtb.AddDef("产品编号", Gettype(String), 12)
dtb.AddDef("令号", Gettype(String), 6)
For I = -3 To 0
    dtb.AddDef("D" & I, Gettype(Integer))
    dtb.AddDef("S" & I, Gettype(Integer))
Next
For I = 1 To 14
    dtb.AddDef("D" & I, Gettype(Integer))
Next
dtb.Build()
Tables("排产表").StopRedraw
\'调整列宽
With Tables("排产表")
    .Cols("生产组").Width = 40
    .Cols("产品编号").Width = 70
    .Cols("令号").Width = 45
    For I = -3 To 14
        .Cols("D" & I).Width = 40
    Next
    For I = -3 To 0
        .Cols("S" & I).Width = 40
    Next
End With
\'重写列标题
Dim Cap As String
Dim ThatD As Date
For I = -3 To 14
    ThatD = Td.AddDays(I)
    If ThatD.DayOfWeek = 0 Then
        Cap = "休息"
    Else
        Cap = ThatD.Day & "日"
    End If
    DataTables("排产表").DataCols("D" & I).Caption = ThatD.Year & "年" & ThatD.Month & "月" & "_" & Cap
Next
For I = -3 To 0
    ThatD = Td.AddDays(I)
    Cap = ThatD.Day & "实"  
    DataTables("排产表").DataCols("S" & I).Caption = ThatD.Year & "年" & ThatD.Month & "月" & "_" & Cap
Next
DataTables("排产表").BuildHeader()
\'颜色标记
For I = -3 To -1
    Tables("排产表").SetHeaderCellBackColor("D" & I,Color.Red,1)
Next
Tables("排产表").SetHeaderCellBackColor("D0",Color.Yellow,1)
Tables("排产表").ResumeRedraw


--  作者:zhangqinyun
--  发布时间:2011/9/8 14:21:00
--  
上面的只有列标题标记颜色!
--  作者:狐狸爸爸
--  发布时间:2011/9/8 14:41:00
--  
二楼有答案,您先看一下,有问题再提问吧。
--  作者:zhangqinyun
--  发布时间:2011/9/8 14:51:00
--  

临时表没有DrawCell~ ~b

自己搞定了,,虽然代码很繁琐

\'颜色标记
N = Plans.Count
For I = -3 To -1
    For I1 = 2 To N
        Tables("排产表").SetHeaderCellBackColor("D" & I,Color.Red,I1)
    Next
Next
For I = -3 To -0
    For I1 = 2 To N
        Tables("排产表").SetHeaderCellBackColor("S" & I,Color.Green,I1)
    Next
Next
For I1 = 2 To N
    Tables("排产表").SetHeaderCellBackColor("D0",Color.Yellow,I1)
Next


--  作者:yangming
--  发布时间:2011/9/8 14:57:00
--  
setHeaderCellBackColor,这就是标题的背景色,呵
--  作者:zhangqinyun
--  发布时间:2011/9/8 15:12:00
--  

也可以标记表里面的内容的啊.呵呵


--  作者:紙上不談兵
--  发布时间:2011/9/8 15:31:00
--  
以下是引用zhangqinyun在2011-9-8 15:12:00的发言:

也可以标记表里面的内容的啊.呵呵

-------------------------------------------------------------------------------------

高!这都给你试出来.这样一来,就很容易有条件地标记数据了


Dim t as Table = Tables("订单")
For I As Integer = 1 To t.Rows.count
    Dim r As Row =t .Rows(i-1)
    If r("单价") > 50 Then
        t.SetHeaderCellBackColor("单价",Color.Red,I)
    End If
Next


--  作者:紙上不談兵
--  发布时间:2011/9/8 15:34:00
--  

SetHeaderCellBackColor

设置指定列的标题的背景颜色呀。


老大,这又是意外之喜吧!