以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于图表中数据进行筛选显示的问题 求解!  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=68130)

--  作者:李孝春
--  发布时间:2015/5/10 22:11:00
--  关于图表中数据进行筛选显示的问题 求解!

Dim t As Table = Tables("统计表1") \'定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型该为Bar(条形)
Chart.DataSource = "统计表1" \'设置绑定表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.X.DataField = "产品" \'X轴绑定到产品列
Series.Y.DataField = "数量" \'Y轴绑定到数量列
Series.DataLabelText = "{#YVAL}"

 

以上代码是帮助中的实例代码

 

求修正实现如下效果:

1、只显示对应月份的数据,比如只显示当前时间对应的月份数据。

2、产品列 由于字数不一定固定,所以会存在大于15个字符的字,有没有办法让字换行显示。

3、补充1的问题,让数据只显示对应七天的数据



--  作者:大红袍
--  发布时间:2015/5/10 22:16:00
--  
1、用编码的方式生成图表 http://www.foxtable.com/help/topics/0968.htm 2、你可以在生成的过程中检测有多少个字符,然后控制换行; 或者 http://www.foxtable.com/help/topics/1030.htm 3、设置筛选条件 http://www.foxtable.com/help/topics/2720.htm
--  作者:李孝春
--  发布时间:2015/5/10 22:30:00
--  回复:(大红袍)1、用编码的方式生成图表 http://www...

1、已经用代码对应生成

2、采用名称咧角度变化 效果不美观

3、设置了筛选条件  但是不知道怎么结合代码整体实现 

下面的代码就是实现筛选本周信息 然后会图表 求指导

 

Dim  y As  Integer =  Date.Today.Year
 Dim  w As  Integer =  Date.Today.DayOfWeek  \'算出今天是星期几
Dim  dt1 As  Date =  Date.Today.AddDays(-w)  \'获取本周的第一天
Dim  dt2 As  Date =  Date.Today.AddDays(6 -  w)  \'获取本周的最后一天
Dim  Filter As  String
 Filter =  "接单日期 >= #"  &  dt1  &  "# And  接单日期 <= #"  &  dt2  &  "#"
 Tables("客户信息").Filter =  Filter


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 \'图表类型该为Bar(条形)
Chart.DataSource = "客户信息" \'设置绑定表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.X.DataField = "客户姓名" \'X轴绑定到产品列
Series.Y.DataField = "合同总款" \'Y轴绑定到数量列
Series.DataLabelText = "{#YVAL}" & "{#XVAL}"
Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度

 

红色部分怎么按照你的思路获取字符数然后换行呢  假设五个字后换行


--  作者:大红袍
--  发布时间:2015/5/10 22:33:00
--  
1、看方法二; 2、在循环的过程中,判断内容的字符长度,然后处理是否换行; 3、看1;
--  作者:李孝春
--  发布时间:2015/5/10 23:00:00
--  回复:(大红袍)1、看方法二;2、在循环的过程中...

2号问题还是没有得以解决 继续求助

 

当前运行效果如图

 


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

--  作者:大红袍
--  发布时间:2015/5/10 23:20:00
--  

处理长字符,参考代码

 

Dim s As String = "111113"
Dim rn As Integer = 5
Dim ns As String = ""
If s.Length > rn Then
    ns = s.SubString(0,rn)
    For i As Integer = 2 To Math.Ceiling(s.Length / rn)
        If i = Math.Ceiling(s.Length / rn) Then
            ns &= vbcrlf & s.SubString(rn*(i-1))
        Else
            ns &= vbcrlf & s.SubString(rn*(i-1), rn)
        End If
    Next
Else
    ns = s
End If

msgbox(ns)

[此贴子已经被作者于2015/5/10 23:19:56编辑过]

--  作者:李孝春
--  发布时间:2015/5/10 23:32:00
--  回复:(大红袍)处理长字符,参考代码 Dim ...

经过对比  对于图标里面的这个操作还是无法实现大于五个字符时候换行 一旦先行换行 然后再赋值的话 提示没有对应的值  继续求解!

由于第一次操作图表 没有实际经验 还望大红袍老师多多指导  再次谢谢

 

Dim Chart  As WinForm.Chart  \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table =  Tables("客户信息") \'定义一个变量t引用数据表
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.DataSource = "客户信息" \'设置绑定表
Chart.ChartType = ChartTypeEnum.Bar
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = t.Rows.Count \'设置图系的长度
For i As Integer =  0  To t.Rows.Count -  1  \'指定每个数据点的位置
    Series.X(i) = i \'指定水平坐标
    Series.Y(i) = t.Rows(i)("合同总款") \'指定垂直坐标
    Chart.AxisX.SetValueLabel(i, t.Rows(i)("客户姓名") )\'在位置4插入456) \'指定字符表示
Next
Series.DataLabelText = "{#YVAL}元"
 Chart.AxisX.AnnoWithLabels = True \'启用字符标

 

Dim s1 As Row= Tables("客户信息").Current
Dim s As String = s1("客户姓名")
Dim rn As Integer = 5
Dim ns As String = ""
If s.Length > rn Then
    ns = s.SubString(0,rn)
    For i As Integer = 2 To Math.Ceiling(s.Length / rn)
        If i = Math.Ceiling(s.Length / rn) Then
            ns &= vbcrlf & s.SubString(rn*(i-1))
        Else
            ns &= vbcrlf & s.SubString(rn*(i-1), rn)
        End If
    Next
Else
    ns = s
End If


--  作者:大红袍
--  发布时间:2015/5/11 9:34:00
--  

很湿望

 

Dim Chart  As WinForm.Chart  \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table =  Tables("客户信息") \'定义一个变量t引用数据表
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.DataSource = "客户信息" \'设置绑定表
Chart.ChartType = ChartTypeEnum.Bar
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = t.Rows.Count \'设置图系的长度
For i As Integer =  0  To t.Rows.Count -  1  \'指定每个数据点的位置
    Series.X(i) = i \'指定水平坐标
    Series.Y(i) = t.Rows(i)("合同总款") \'指定垂直坐标
   
    Dim s As String = t.Rows(i)("客户姓名")
    Dim rn As Integer = 5
    Dim ns As String = ""
    If s.Length > rn Then
        ns = s.SubString(0,rn)
        For i As Integer = 2 To Math.Ceiling(s.Length / rn)
            If i = Math.Ceiling(s.Length / rn) Then
                ns &= vbcrlf & s.SubString(rn*(i-1))
            Else
                ns &= vbcrlf & s.SubString(rn*(i-1), rn)
            End If
        Next
    Else
        ns = s
    End If
   
    Chart.AxisX.SetValueLabel(i,  ns)\'在位置4插入456) \'指定字符表示
Next
Series.DataLabelText = "{#YVAL}元"
Chart.AxisX.AnnoWithLabels = True \'启用字符标

[此贴子已经被作者于2015/5/11 9:34:24编辑过]

--  作者:李孝春
--  发布时间:2015/5/11 9:56:00
--  回复:(大红袍)很湿望  Dim Chart  A...

谢谢