Foxtable(狐表)用户栏目专家坐堂 → drawcell的问题


  共有3655人关注过本帖树形打印复制链接

主题:drawcell的问题

帅哥哟,离线,有人找我吗?
douglas738888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
drawcell的问题  发帖心情 Post By:2021/7/9 10:43:00 [只看该作者]

请教老师,垂直表转横置表后,有什么办法能标注借出档号的文字颜色?
例:
垂直表A  (表A的文字颜色根据逻辑列勾选条件已经能实现)
档号        类别           文件               借出    ........
001        财务          AAAA               
002        工程          BBBB                
003        财务          CCCC
004        市场          DDDD              
..........

转换横置表B (表B没有借出列,drawcell要标注文字颜色,条件代码无法设置)
类别                     列1    列2   ........

财务                     001    003  
工程                     002
市场                     004
............

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/9 10:48:00 [只看该作者]

if e.col.name = "列1"
if tables("表A").compute("count(档号)","档号='" & e.row("列1") & "' and 借出=true") > 0 then
e.style = "样式1"
end if
end if

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2021/7/9 10:59:00 [只看该作者]

老师,这个方法,我曾经想到,问题是列1列2....是不固定的,动态增加的,无法写死e.row("列1"),我用Contains也不行

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/9 11:02:00 [只看该作者]

怎么动态增加的?列名有没有什么规律?

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2021/7/9 11:23:00 [只看该作者]

垂直表A  (表A的文字颜色根据逻辑列勾选条件已经能实现)
档号        类别           文件               借出    ........
001        财务          AAAA               
002        工程          BBBB                
003        财务          CCCC
004        市场          DDDD              
005        财务          EEEE
006        财务          FFFF
007        财务          GGGG

转换横置表B (例如,类型是财务,档号和文件是动态增加)
类别                     列1    列2    列3     列4      列5    .......

财务                     001    003   005     006     007     .......
工程                     002
市场                     004
............

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/9 11:32:00 [只看该作者]

表B的列是怎么动态增加的?列名有没有什么规律?

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2021/7/9 12:32:00 [只看该作者]

表A 有一列分序号隐藏了,是为转换横表设置的排序使用的,表B的的列1列2.....由分序号动态产生
'------------------分序号·用于垂直表转换横表
If e.DataCol.Name = "完成" Then
    If e.DataRow("完成") = True Then
        Dim Val As Integer
        Val = DataTables("表A").SQLCompute("Max(分序号)","类别 = '" & e.DataRow("类别") & "'")
        e.DataRow("分序号") = Val+1
    End If
End If

转换横表
Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("类别", Gettype(String), 10)

For Each v As String In DataTables("表A").SQLGetValues("分序号")
    dtb.AddDef(v, Gettype(String))
Next
Tables("表B").DataSource = dtb.BuildDataSource()

For Each v As String In DataTables("表A").SQLGetValues("类别")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("类别") = v
    For Each dr2 As DataRow In DataTables("表A").SQLSelect("类别 = '" & v & "'")
        dr1(dr2("分序号")) = dr2("档号")
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/9 13:38:00 [只看该作者]

if e.col.name <> "类别"
if tables("表A").compute("count(档号)","档号='" & e.row(e.col.name) & "' and 借出=true") > 0 then
e.style = "样式1"
end if
end if

 回到顶部