以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于图表横坐标取值问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78716)

--  作者:lgj716330
--  发布时间:2015/12/15 16:32:00
--  关于图表横坐标取值问题
在正式开始图表制作前,请教一个问题

如果是分组或交叉统计的情况下,横坐标根据哪一分组列生成可以设置条件吗(如果可以,条件如何设?),还是说只能根据最小分组生成

--  作者:大红袍
--  发布时间:2015/12/15 16:38:00
--  

好好看看chart的全部章节

 

http://www.foxtable.com/help/topics/0970.htm

 


--  作者:lgj716330
--  发布时间:2015/12/15 16:56:00
--  
嗯,有点明白了



--  作者:lgj716330
--  发布时间:2015/12/15 22:15:00
--  
Dim Filter As String \'设置筛选条件
With e.Form.Controls("DW")
    If .Value IsNot Nothing Then
        Filter = "所属单位 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("BMLX") \'在前一筛选条件控制下设置第二项筛选条件,其内容根据第一列的变化而变化
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "部门类型 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("BM") \'在前一筛选条件控制下设置第二项筛选条件,其内容根据第一列的变化而变化
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "上级部门 = \'" & .Value & "\'"
    End If
End With


Dim b As New SQLgroupTableBuilder("零售业务分析","零售业务")  
b.AddTable("零售业务","部门名称","部门档案","部门名称") 
b.Groups.AddExp("年","Year(所属日期)")
b.Groups.AddExp("月","month(所属日期)")
b.Groups.AddDef("所属单位") 
b.Groups.AddDef("上级部门","部门") 
b.Groups.AddDef("部门类型") 
b.Totals.AddDef("零售数量","零售数量_本月")
b.Totals.AddDef("零售数量","零售数量_累计") 
b.Decimals = 0 \'小数点取0位
b.Filter = Filter
b.Build \'生成统计表

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart= e.Form.Controls("进度") \' 引用窗口中的图表
Chart.SeriesList.Clear() \'清除图表原来的图系
For Each Year As String In DataTables("零售业务分析").GetValues("年")
    Series = Chart.SeriesList.Add() \'每年一个图系
    Series.Text = Year  \'指定图系名称为年份
    Series.Length = 12  \'指定图系的数据点数,1年12个月
    Chart.AxisX.Min = 1  \'指定X轴的最小值,也就是从1月开始
    Chart.AxisX.Max = 12 \'\'指定X轴的最大值,一年只有12个月
    For Month As Integer = 1 To 12 \'逐月设置坐标
        Series.X(Month) = Month      \'指定水平坐标为月份
        Dim r As DataRow = DataTables("零售业务分析").Find("年 = " & Year & " And  月 = " & Month)\'找出对应年月的行
        If r IsNot Nothing \'如果找到对应年月的行
            Series.Y(Month) = r("零售数量_本月") \'指定数量作为垂直坐标
        End If
    Next
Next
Chart.TopMost = True

Chart.AxisX.AnnoWithLabels = True \'启用字符标示
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)


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

这里横坐标如何显示月份呢


--  作者:lgj716330
--  发布时间:2015/12/15 22:31:00
--  
知道了,Chart.AxisX.AnnoWithLabels = True \'启用字符标示,把这句删掉就可以了
--  作者:lgj716330
--  发布时间:2015/12/15 22:52:00
--  
Chart.AxisX.SetValueLabel(1"一月份"),1-12月一次性转换如何写
--  作者:大红袍
--  发布时间:2015/12/16 0:23:00
--  
以下是引用lgj716330在2015/12/15 22:52:00的发言:
Chart.AxisX.SetValueLabel(1"一月份"),1-12月一次性转换如何写

 

每一个都是独特的,就最好单独写


--  作者:lgj716330
--  发布时间:2015/12/16 9:00:00
--  
好吧
--  作者:大红袍
--  发布时间:2015/12/16 9:25:00
--  

或者看看数字转文字

 

CUMoney 将数值转换为中文货币格式
CUNumber 将数值转换为中文大写格式
CUNum 将阿拉伯数字转换为中文大写格式
CLNum 将阿拉伯数字转换为中文小写格式
CCNumber 将阿拉伯数字转换为中文格式,符合支票格式,只能处理整数


--  作者:lgj716330
--  发布时间:2015/12/16 9:47:00
--  
好的,谢谢