Foxtable(狐表)用户栏目专家坐堂 → 转置后的临时表怎么用


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

主题:转置后的临时表怎么用

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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/7 22:58:00 [显示全部帖子]

甜老师,目前chart图表还没有好好学,只是照模学样。

你的代码不能用,没反应


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/8 22:57:00 [显示全部帖子]

图标按照下面的代码可以显示,我想只要查询个人成绩情况的图表结果?

 

Dim tb As WinForm.Chart = e.Form.Controls("Chart1")
Dim ts As WinForm.ChartSeries
'Dim TextBox1 As WinForm.TextBox = Forms("统计").Controls("TextBox1")
'Tables("统计_Table2").Filter = "( 姓名='" & TextBox1.Text & "')"
tb.DataSource = "成绩排名表"
tb.SeriesList.Clear() '清除图表原来的图系
ts = tb.serieslist.add()
'tb.VisualEffect = True

ts.x.DataField = ("考试期数")
ts.y.DataField = ("合计_分数")


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/8 23:11:00 [显示全部帖子]

这样写,问题出在哪里

Dim tb As WinForm.Chart = e.Form.Controls("Chart1")
Dim ts As WinForm.ChartSeries
Dim TextBox1 As WinForm.TextBox = Forms("统计").Controls("TextBox1")

tb.DataSource =Tables("统计_Table2").Filter= "( 姓名='" & TextBox1.Text & "')"

 tb.SeriesList.Clear() '清除图表原来的图系
ts = tb.serieslist.add()
'tb.VisualEffect = True

ts.x.DataField = ("考试期数")
ts.y.DataField = ("合计_分数")


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/10 11:59:00 [显示全部帖子]

如果写成交叉统计写成

Dim str3,str4 As String
str3 = forms("统计").Controls("ComboBox3").value
str4 = forms("统计").Controls("ComboBox4").value


Dim g As New CrossTableBuilder("成绩排名表", DataTables("成绩登记表"))
g.HGroups.AddDef("考试期数")
g.HGroups.AddDef("班级")
g.HGroups.AddDef("学号")
g.HGroups.AddDef("姓名")
g.VGroups.AddDef("课程名称")
g.Totals.AddDef("分数", "分数")
g.Totals.AddDef("排名")
g.Filter = "[姓名] = '"& str3 & "'"
g.Filter = "[课程名称] = '"& str4 & "'"
'g.HorizontalTotal = True
g.Build()

 

运行效果

 


此主题相关图片如下:qq图片20181110114448.png
按此在新窗口浏览图片

如果交叉统计写成


 

Dim str3,str4 As String
str3 = forms("统计").Controls("ComboBox3").value
str4 = forms("统计").Controls("ComboBox4").value


Dim g As New CrossTableBuilder("成绩排名表", DataTables("成绩登记表"))
g.HGroups.AddDef("考试期数")
g.HGroups.AddDef("班级")
g.HGroups.AddDef("学号")
g.HGroups.AddDef("姓名")
g.VGroups.AddDef("课程名称")
g.Totals.AddDef("分数", "分数")
g.Totals.AddDef("排名")

g.Filter = "[课程名称] = '"& str4 & "'"
g.Filter = "[姓名] = '"& str3 & "'"


'g.HorizontalTotal = True
g.Build()

 

运行效果是

 


此主题相关图片如下:qq图片20181110114630.png
按此在新窗口浏览图片

 

如何能把个人的单科成绩查询出来


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/10 12:16:00 [显示全部帖子]

解决了

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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/10 14:21:00 [显示全部帖子]

以下是生成图表的代码

'-------------------------生成图表-------------------------
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("成绩排名表") '定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.bar 'XYPlot '图表类型改为Bar(条形)
'Chart.VisualEffect = True
Chart.DataSource = "成绩排名表" '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.Major = 10
Chart.AxisY.Major = 200
For Each c As Col In t.Cols
    If c.Name <> "考试期数" Then
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Text = c.Caption  ' Name '设置图系的标题
        Series.X.DataField = "考试期数" 'X轴绑定到产品列
        Series.Y.DataField = c.Name '设置Y轴的绑定列
        Series.DataLabelText = "{#YVAL}"
    End If
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South
'-------------------------------
Chart.HeaderText = forms("统计").Controls("ComboBox4").value & "成绩变化趋势"
Chart.AxisX.Text = "考试期数"
    Chart.AxisY.Text = "考分"

 

怎样消除不需要的信息,如下图

 

 

 


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

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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/10 16:03:00 [显示全部帖子]

甜老师,无图展现

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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/10 16:08:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成绩管理试做.table


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/11 10:11:00 [显示全部帖子]

甜老师,能不能将两张表的图表叠在一起展示?

只是清除原来图系,即

Chart.SeriesList.Clear() '清除图表原来的图系

 

好像不行


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6175 威望:0 精华:0 注册:2015/7/25 19:14:00
  发帖心情 Post By:2018/11/11 14:05:00 [显示全部帖子]

这段代码运行有问题,会出现“不在字典中”的报错

'------------------生成图表-------------------------
Dim dict As new Dictionary(of String,String)
For Each dc As DataCol In DataTables("统计表1").DataCols
    If dc.Caption > "" Then
    dict.Add(dc.Caption,dc.Name)
    End If
Next
Dim Chart As WinForm.Chart = e.Form.Controls("Chart1")
Dim Series As WinForm.ChartSeries
Dim tt As Table = Tables("统计表1")
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.DataSource = "统计表1"

Series = Chart.SeriesList.add()
Series.Text = "ste6"
Series.x.DataField = "考试期数"
Series.y.DataField = Dict(str6) 'm.Name

Series.DataLabelText = "{#YVAL}"


 回到顶部
总数 99 上一页 1 2 3 4 5 6 7 8 9 10 下一页