Foxtable(狐表)用户栏目专家坐堂 → 怎样给临时表突出选中行背景设置


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

主题:怎样给临时表突出选中行背景设置

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


加好友 发短信
等级:二尾狐 帖子:588 积分:5677 威望:0 精华:0 注册:2020/5/7 13:05:00
怎样给临时表突出选中行背景设置  发帖心情 Post By:2025/3/25 9:49:00 [只看该作者]

Dim dtb As New DataTableBuilder("temp")生成了临时表,我在一个窗口的table1的数据源使用代码tb.DataSource = DataTables("temp")。现怎样代码设置选中行背景色

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


加好友 发短信
等级:超级版主 帖子:113015 积分:575474 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/25 9:50:00 [只看该作者]

http://www.foxtable.com/webhelp/topics/1577.htm

DataTables("temp").SysStyles("CurrentRow").BackColor = Color.red

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


加好友 发短信
等级:二尾狐 帖子:588 积分:5677 威望:0 精华:0 注册:2020/5/7 13:05:00
  发帖心情 Post By:2025/3/25 11:30:00 [只看该作者]

如果还想符合“选中=true”的行设成另一个背景色用什么代码,在“系统样式”中好像没合适可选

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


加好友 发短信
等级:超级版主 帖子:113015 积分:575474 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/25 11:34:00 [只看该作者]

生成临时表的代码发上来

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


加好友 发短信
等级:二尾狐 帖子:588 积分:5677 威望:0 精华:0 注册:2020/5/7 13:05:00
  发帖心情 Post By:2025/3/25 11:53:00 [只看该作者]

Dim tb As Table = Tables("导入凭证库财政记录_table1")

tb.StopRedraw()
Dim Book As New XLS.Book(e.Form.Controls("TextBox2").text)
Dim Sheet As XLS.Sheet = Book.Sheets(e.Sender.text)
For m1 As Integer = 1 To tb.DataTable.DataCols.Count 
    If tb.DataTable.DataCols.Contains("第" & m1 & "列") = True Then
        tb.DataTable.DataCols.Delete ("第" & m1 & "列")
    End If
Next
Dim dtb As New DataTableBuilder("temp")
dtb.AddDef("已导入", GetType(Boolean))
For m1 As Integer = 1 To Sheet.cols.Count
    dtb.AddDef("第" & m1 & "列", GetType(String), 255)
Next
dtb.Build()
tb.DataSource = DataTables("temp")

For n As Integer = 0 To Sheet.Rows.Count - 1
    Dim r As Row = tb.AddNew()
    For m As Integer = 0 To Sheet.cols.Count - 1
        r(tb.Cols(m + 1).name) = Sheet(n, m).Value
    Next
Next
If tb.rows.Count > 0 Then
    tb.Select(0, 0)
End If
tb.ResumeRedraw()
tb.Cols("已导入").Width = 45
tb.SetHeaderRowHeight(35, 25)
tb.DefaultRowHeight = 35

Dim st As String 
For i As Integer = tb.Cols.Count - 1 To 1 Step - 1
    st = "|第" & i & "列" & st
Next
e.Form.Controls("ComboBox3").ComboList = st.Remove(0, 1)
e.Form.Controls("ComboBox4").ComboList = st.Remove(0, 1)
e.Form.Controls("ComboBox5").ComboList = st.Remove(0, 1)
e.Form.Controls("ComboBox6").ComboList = st.Remove(0, 1)
e.Form.Controls("ComboBox7").ComboList = st.Remove(0, 1)
e.Form.Controls("ComboBox8").ComboList = st.Remove(0, 1)


希望,当这个表的“已导入”为true时变改其背景色,

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


加好友 发短信
等级:超级版主 帖子:113015 积分:575474 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/25 12:14:00 [只看该作者]

每次设置DataSource 都是新表,没有必要浪费时间再删除一下列

Dim tb As Table = Tables("导入凭证库财政记录_table1")

tb.StopRedraw()
Dim Book As New XLS.Book(e.Form.Controls("TextBox2").text)
Dim Sheet As XLS.Sheet = Book.Sheets(e.Sender.text)

Dim dtb As New DataTableBuilder("temp")
dtb.AddDef("已导入", GetType(Boolean))
For m1 As Integer = 1 To Sheet.cols.Count
    dtb.AddDef("第" & m1 & "列", GetType(String), 255)
Next
tb.DataSource = dtb.BuildDataSource ()
tb.DataTable.GlobalHandler.DrawCell=true ’http://www.foxtable.com/webhelp/topics/0671.htm
tb.DataTable.AddUserStyle("a"Color.RedColor.black) ‘http://www.foxtable.com/webhelp/topics/1579.htm
……其他代码

然后说道全局表事件DrawCell事件写代码
If e.Row("已导入")=true Then
    e.Style = "a"

End If

 回到顶部