Foxtable(狐表)用户栏目专家坐堂 → 图表的代码日期格式化后总错误


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

主题:图表的代码日期格式化后总错误

美女呀,离线,留言给我吧!
tesia255
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:240 积分:2041 威望:0 精华:0 注册:2011/9/19 9:21:00
图表的代码日期格式化后总错误  发帖心情 Post By:2014/8/11 11:11:00 [只看该作者]

Dim d As Date =Date.Today
Dim sd As WinForm.DateTimePicker = e.Form.Controls("StartDate")
Dim ed As WinForm.DateTimePicker = e.Form.Controls("EndDate")

ed.value=d.AddDays(-1)
sd.value=d.AddDays(-7)

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim tbl As DataTable = DataTables("订单财务明细") '定义一个变量tbl引用数据表
Dim lst As List(Of String) = tbl.GetValues("交易时间","[交易时间]>=#" & sd.Value & "# And [交易时间]<=#" & ed.Value & "# ) '获得交易时间集合
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = lst.Count '设置图系的长度
Chart.ChartType = ChartTypeEnum.Bar
Chart.AxisX.DateType = True 'X轴是日期型
Chart.AxisX.AnnoFormatString = "dddd"   '只显示星期
Series.TooltipText = "费用 =¥ {#YVAL}"
For i As Integer = 0 To lst.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = tbl.Compute("Sum(原价)","[交易时间] = '" & lst(i) & "'") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i,Format(lst(i),"dddd"))  '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示


结果X轴显示的坐标值  都是 dddd  
请各位老师指教~



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/11 11:20:00 [只看该作者]

Dim d As Date =Date.Today
Dim sd As WinForm.DateTimePicker = e.Form.Controls("StartDate")
Dim ed As WinForm.DateTimePicker = e.Form.Controls("EndDate")

ed.value=d.AddDays(-1)
sd.value=d.AddDays(-7)

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim tbl As DataTable = DataTables("订单财务明细") '定义一个变量tbl引用数据表
Dim lst As List(Of String) = tbl.GetValues("交易时间","[交易时间]>=#" & sd.Value & "# And [交易时间]<=#" & ed.Value & "# ) '获得交易时间集合
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = lst.Count '设置图系的长度
Chart.ChartType = ChartTypeEnum.Bar
Chart.AxisX.DateType = True 'X轴是日期型
Series.TooltipText = "费用 =¥ {#YVAL}"
For i As Integer = 0 To lst.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = tbl.Compute("Sum(原价)","[交易时间] = '" & lst(i) & "'") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i,Format(cdate(lst(i)),"dddd"))  '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示

 回到顶部
美女呀,离线,留言给我吧!
tesia255
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:240 积分:2041 威望:0 精华:0 注册:2011/9/19 9:21:00
  发帖心情 Post By:2014/8/11 11:41:00 [只看该作者]

可以了  十分感谢

再请教下,如果我想两行显示X轴坐标  第一行是日期(即交易时间),第二行是星期(即交易时间的星期显示)

怎么实现呢?

另外,Series.TooltipText  这个函数是否可以实现显示X轴的日期,我设置 {#XVAL}  总是显示 0,1,2,3,……

请指教,谢谢~

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/11 11:49:00 [只看该作者]

1、你可以变通处理

 

Chart.AxisX.SetValueLabel(i,lst(i) & chr(13) & Format(cdate(lst(i)),"dddd"))  '指定字符表示

 

2、{#XVAL}只能显示坐标,无法自定义成对应的值。


 回到顶部
美女呀,离线,留言给我吧!
tesia255
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:240 积分:2041 威望:0 精华:0 注册:2011/9/19 9:21:00
  发帖心情 Post By:2014/8/11 13:14:00 [只看该作者]

了解了

谢谢您!十分感谢

 回到顶部