Foxtable(狐表)用户栏目专家坐堂 → [求助]自定义样式统一设置


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

主题:[求助]自定义样式统一设置

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


加好友 发短信
等级:六尾狐 帖子:1394 积分:10728 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]自定义样式统一设置  发帖心情 Post By:2024/11/15 18:32:00 [只看该作者]

在项目AfterOpenProject事件中设置了以下代码
For Each t As DataTable In DataTables
    t.AddUserStyle("红色", Color.Red, Color.White)
    t.AddUserStyle("橙色", Color.Orange, Color.White)
    t.AddUserStyle("黄色", Color.Yellow, Color.White)
    t.AddUserStyle("绿色", Color.Green, Color.White)
Next

然后在全局表事件DrawCell中如下设置
Select Case e.Table.Name
    Case "测试数据","示例_Table1"
    If e.Col.Name = "本期销售" Then
        If e.Row.IsNull(e.Col.Name) = False Then 
            If e.Row("本期销售") < 80 Then
                e.Style = "橙色"
            End If
        End If
    End If
End Select

其中"测试数据"是项目固定的表,"示例_Table1"是窗口统计生成的,但上述设置对"测试数据"有效,对"示例_Table1"无效,不知什么原因。"示例_Table1"代码如下

Dim b As New SQLGroupTableBuilder("统计表1", "测试数据")
b.C
b.Groups.AddDef("年份")
b.Groups.AddDef("月份")
b.Totals.AddDef("本期销售")
b.Totals.AddDef("同期销售")
b.Build

Tables("示例_Table1").DataSource = DataTables("统计表1")

Dim t As Table = Tables("示例_Table1")
t.DataTable.GlobalHandler.DrawCell = True

[此贴子已经被作者于2024/11/15 18:54:31编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110726 积分:563550 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/16 8:50:00 [只看该作者]

Dim b As New SQLGroupTableBuilder("统计表1", "测试数据")
b.C
b.Groups.AddDef("年份")
b.Groups.AddDef("月份")
b.Totals.AddDef("本期销售")
b.Totals.AddDef("同期销售")
Tables("示例_Table1").DataSource = b.BuildDataSource 
Dim t As Table = Tables("示例_Table1")
t.DataTable.GlobalHandler.DrawCell = True

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


加好友 发短信
等级:六尾狐 帖子:1394 积分:10728 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2024/11/16 9:43:00 [只看该作者]

不是这个原因,这些都测过,经反复测试是窗口设置的问题,必须得自动打开为true才有效

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110726 积分:563550 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/16 10:06:00 [只看该作者]

Dim b As New SQLGroupTableBuilder("统计表1", "测试数据")
b.C
b.Groups.AddDef("年份")
b.Groups.AddDef("月份")
b.Totals.AddDef("本期销售")
b.Totals.AddDef("同期销售")
Tables("示例_Table1").DataSource = b.BuildDataSource 
Dim t As Table = Tables("示例_Table1")
t.DataTable.GlobalHandler.DrawCell = True
t.DataTable.AddUserStyle("红色", Color.Red, Color.White)
t.DataTable.AddUserStyle("橙色", Color.Orange, Color.White)
t.DataTable.AddUserStyle("黄色", Color.Yellow, Color.White)
t.DataTable.AddUserStyle("绿色", Color.Green, Color.White)

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


加好友 发短信
等级:六尾狐 帖子:1394 积分:10728 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2024/11/16 11:42:00 [只看该作者]

在菜单中弄了个自定义表样式,如何实现选择样式后能保存住,下次进系统不需要重新选择

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20241116113735.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2024/11/16 11:43:16编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110726 积分:563550 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/16 12:19:00 [只看该作者]

1、把选择的项保存到设置里:http://www.foxtable.com/webhelp/topics/1544.htm

2、项目启动的时候到AfterOpenProject事件从设置里取值重新设置表样式

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


加好友 发短信
等级:六尾狐 帖子:1394 积分:10728 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2024/11/16 14:40:00 [只看该作者]

我在组合框的SelectedIndexChanged事件中如下设置
If e.ComboBox.Text.Length > 0 Then
    SaveConfigValue("xtys", e.ComboBox.Text)
Else
    SaveConfigValue("mrxtys", e.ComboBox.Text)
End if

然后在AfterOpenProject事件中如下设置,结果还是不行
GetConfigValue("xtys","mrxtys")

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110726 积分:563550 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/16 14:45:00 [只看该作者]

GetConfigValue只是获取到设置的值,并没有给组合框设置

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110726 积分:563550 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/16 14:50:00 [只看该作者]

组合框的SelectedIndexChanged事件中如下设置
If e.ComboBox.Text  > "" Then
    SaveConfigValue("xtys", e.ComboBox.Text)
End if

AfterOpenProject事件
dim s as string = GetConfigValue("xtys","mrxtys")
RibbonTabs("功能区1").Groups("功能组1").Items("组合框1").Text = s

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


加好友 发短信
等级:六尾狐 帖子:1394 积分:10728 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2024/11/17 11:24:00 [只看该作者]

MainTableChanged事件
Dim dr1 As DataRow
Dim dr2 As DataRow
dr1 = DataTables("自定义样式配置表").Find("表名 ='" & MainTable.Name & "' and 系统内置表样式 is not null and 设置人 ='" & _UserName & "'")
dr2 = DataTables("自定义样式配置表").Find("表名 ='" & MainTable.Name & "' and 自定义表样式 is not null and 设置人 ='" & _UserName & "'")
If dr1 IsNot Nothing Then
    RibbonTabs("hlcz").Groups("bcz").Items("zdybdys").Items("xtbdys").Text = dr1("系统内置表样式")
    MainTable.Theme = dr1("系统内置表样式")
ElseIf dr2 IsNot Nothing Then
    RibbonTabs("hlcz").Groups("bcz").Items("zdybdys").Items("zdybys").Text = dr2("自定义表样式")
    MainTable.Theme = dr2("自定义表样式")
End If
系统内置表样式没有问题,自定义表样式是自己整的一个样式,在菜单中选择设置时也没有问题,但设置完成后切换到其他表再切换回来时就提示错误

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20241117112320.png
图片点击可在新窗口打开查看

另外,下面这两种也有同样问题
Tables("A").Theme = "(none)"
Tables
("B").Theme = "(default)"


[此贴子已经被作者于2024/11/17 12:21:58编辑过]

 回到顶部
总数 17 1 2 下一页