以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  图表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97670)

--  作者:yqd1968
--  发布时间:2017/3/16 15:38:00
--  图表问题

老师你好:

 

需求:我想通过复选组合框选择的值,来生成图系,如何处理,有没有前辈们做过类似的项目,请指点一下,谢谢

 

我一个表

 


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

--  作者:有点色
--  发布时间:2017/3/16 16:11:00
--  

 

http://www.foxtable.com/webhelp/scr/0970.htm

 

示例二,

 

        For r As Integer = 0 To t.Rows.Count - 1
            Series.X(r) = r
            Series.Y(r) = t.Rows(r)(c.Name)

        Next

 

改成

 

For r As Integer = 0 To t.GetCheckedRows.count - 1
    Series.X(r) = r
    Series.Y(r) = t.GetCheckedRows(r)(c.Name)
Next


--  作者:yqd1968
--  发布时间:2017/3/16 17:36:00
--  

有点色老师:

 

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("表AA") \'定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
\'Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Chart.SeriesList.Clear() \'清除图表原来的图系
For Each c As Col In t.Cols
    If c.Name <> "开标日期" Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t.Rows.Count \'设置图系的长度
        \'For r As Integer = 0 To t.Rows.Count - 1
        \'Series.X(r) = r
        \'Series.Y(r) = t.Rows(r)(c.Name)
        \'Next
        For r As Integer = 0 To t.GetCheckedRows.count - 1
            Series.X(r) = r
            Series.Y(r) = t.GetCheckedRows(r)(c.Name)
        Next
        Series.FitType = FitTypeEnum.Spline  \'采用平滑线条
    End If
Next
For r As Integer = 0 To t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, Format(t.Rows(r)("开标日期"),"MM-dd")) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示
\'Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度

 

没有显示图系,错在哪里??谢谢


--  作者:有点色
--  发布时间:2017/3/16 17:39:00
--  

Series.Length = t.Rows.Count \'设置图系的长度

 

改成

 

Series.Length = t.GetCheckedRows.count


--  作者:有点色
--  发布时间:2017/3/16 17:40:00
--  
 如果还有问题,做个实例上来。
--  作者:yqd1968
--  发布时间:2017/3/16 18:07:00
--  

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

有点色老师帮我改一下,谢谢


--  作者:有点色
--  发布时间:2017/3/16 19:47:00
--  

哦,理解错你的意思了。

 

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("表AA") \'定义一个变量t引用数据表
Dim dt As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")
Dim ls As new List(Of String)
If dt.Text = "" Then
    For Each c As Col In t.Cols
        If c.name <> "开标日期" Then        ls.add(c.name)
    Next
Else
    ls.AddRange( dt.text.Split(","))
End If
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
chart.AxisX.ClearValueLabel
Chart.SeriesList.Clear() \'清除图表原来的图系
t.sort = "开标日期"
For Each c As String In ls
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Text = c \'设置图系的标题
    Series.Length = t.Rows.Count \'设置图系的长度
    For r As Integer = 0 To t.Rows.Count - 1
        Series.X(r) = r
        Series.Y(r) = t.Rows(r)(c)
    Next
    Series.FitType = FitTypeEnum.Spline  \'采用平滑线条
Next
For r As Integer = 0 To t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, Format(t.Rows(r)("开标日期"),"MM-dd")) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示
\'Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度


--  作者:yqd1968
--  发布时间:2017/3/17 0:05:00
--  

有点色老师你好:

如何取消Y值为空值的点,而直接连接,使线条平滑,谢谢!!!

 


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


--  作者:yqd1968
--  发布时间:2017/3/17 0:06:00
--  
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("代理投标测算_Table1") \'定义一个变量t引用数据表
Dim dt As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")
Dim ls As new List(Of String)
If dt.Text = "" Then
    For Each c As Col In t.Cols
        If c.name <> "开标日期" Then
            ls.add(c.name)
        End If
    Next
Else
    ls.AddRange( dt.text.Split(","))
End If
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
chart.AxisX.ClearValueLabel
Chart.SeriesList.Clear() \'清除图表原来的图系
t.sort = "开标日期"
For Each c As String In ls
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Text = c \'设置图系的标题
    Series.Length = t.Rows.Count \'设置图系的长度
    For r As Integer = 0 To t.Rows.Count - 1
        Series.X(r) = r
        Series.Y(r) = Round2(t.Rows(r)(c) * 100,2)
    Next
    Series.FitType = FitTypeEnum.Spline  \'采用平滑线条
Next
For r As Integer = 0 To t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, Format(t.Rows(r)("开标日期"),"MM-dd")) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示
\'Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度
Series.DataLabelText = "{#YVAL}%" \'数据标示
Chart.AxisX.AnnoFormatString = "00.0%" \'设置坐标轴的标示格式符号,指定日期标示格式

--  作者:yqd1968
--  发布时间:2017/3/17 0:08:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表管理项目1.table