Foxtable(狐表)用户栏目专家坐堂 → [求助]图表和统计表数据更新不一致


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

主题:[求助]图表和统计表数据更新不一致

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


加好友 发短信
等级:幼狐 帖子:151 积分:1306 威望:0 精华:0 注册:2013/5/13 13:28:00
[求助]图表和统计表数据更新不一致  发帖心情 Post By:2016/5/3 23:43:00 [只看该作者]

各位老师大侠们,我再窗体中放了一个图表控件和一个Table控件,

 

图表和table控件的数据源都来自交叉统计表“实时库存统计表", 代码如下,但是,图表会根据实时库存数量变化而变化,但是Table表中的数据没变更新。(图表中第10个料号数量有变化,下面的数据表第10项没有数据变化,数据源都是交叉统计产生的统计表)

 

请老师大侠指教,不知道原因在哪儿! 叩谢!!!

 

 

DataTables("入库主表").LoadTop = "10000"
DataTables("入库主表").LoadOrder = "入库日期 Desc"
DataTables("入库主表").Load
DataTables("入库主表").LoadChildren("入库记录表", "收货fa piao号", "收货fa piao号")

Dim Filter1 As String
Filter1 = "核销 = 0"
DataTables("入库记录表").LoadFilter = Filter1
DataTables("入库记录表").Load()

'================================

Dim YMax As WinForm.TextBox = e.Form.Controls("Y最大值")
Dim YMin As WinForm.TextBox = e.Form.Controls("Y最小值")
Dim cxsj As WinForm.DateTimePicker = e.Form.Controls("查询时间")
cxsj.value=now()

Dim g As New GroupTableBuilder("实时库存统计表", DataTables("入库记录表"))
g.Groups.AddDef("料号")
g.Groups.AddDef("品名")
g.Totals.AddDef("剩余数量")
g.Totals.AddDef("库存_良品")
g.Totals.AddDef("库存_不良品")
g.Totals.AddDef("库存_待处理品")
g.Totals.AddDef("库存_冻结产品")
g.Build()

MainTable = Tables("主表")

'========================产生图表=================================
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
Chart.ChartType2 = ChartTypeEnum.XYPlot
Chart.AxisY.Min = YMin.text  '指定Y轴的最小值
Chart.AxisY.Max =YMax.text '指定Y轴的最大值

Chart.AxisY2.Min = YMin.text  '指定Y轴的最小值
Chart.AxisY2.Max =YMax.text '指定Y轴的最大值

Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisY.Major = YMax.text*0.1
Series = Chart.SeriesList.Add() '给图表2增加一个图系
Series.FillColor = Color.DeepSkyBlue '设置条形图的填充颜色

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, i+1) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Series.DataLabelText = "{#YVAL}"

'=====================
'--------Chart.SeriesList2.Clear() '清除图表原来的图系
Chart.SeriesList2.Clear() '清除图表原来的图系
Chart.AxisY2.Major = YMax.text*0.1
Series = Chart.SeriesList2.Add() '给图表2增加一个图系
Series.FillColor = Color.Red '设置条形图的填充颜色
Series.MarkShape = MarkShapeEnum.none

Series.Length = t.Rows.Count '设置图系的长度
For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = 1000 '指定垂直坐标 (安全库存)
    'Chart.AxisX.SetValueLabel(i, t.Rows(i)("料号")) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示

'==========================================================
Tables("实时库存表").DataSource = DataTables("实时库存统计表")
Tables("实时库存表").sort="料号"
Tables("实时库存表").Font =New Font("微软雅黑",9,FontStyle.Regular)

 

 


此主题相关图片如下:11.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2016/5/3 23:44:15编辑过]

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/5/4 8:29:00 [只看该作者]

代码看不出什么问题,上传例子看看

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/4 9:37:00 [只看该作者]

DataTables("入库主表").LoadTop = "10000"
DataTables("入库主表").LoadOrder = "入库日期 Desc"
DataTables("入库主表").Load
DataTables("入库主表").LoadChildren("入库记录表", "收货fa piao号", "收货fa piao号")

Dim Filter1 As String
Filter1 = "核销 = 0"
DataTables("入库记录表").LoadFilter = Filter1
DataTables("入库记录表").Load()

'================================

Dim YMax As WinForm.TextBox = e.Form.Controls("Y最大值")
Dim YMin As WinForm.TextBox = e.Form.Controls("Y最小值")
Dim cxsj As WinForm.DateTimePicker = e.Form.Controls("查询时间")
cxsj.value=now()

Dim g As New GroupTableBuilder("实时库存统计表", DataTables("入库记录表"))
g.Groups.AddDef("料号")
g.Groups.AddDef("品名")
g.Totals.AddDef("剩余数量")
g.Totals.AddDef("库存_良品")
g.Totals.AddDef("库存_不良品")
g.Totals.AddDef("库存_待处理品")
g.Totals.AddDef("库存_冻结产品")
dim t  as table = e.form.controls("Table1").Table
t.DataSource  = g.BuildDataSource
t.sort="料号"
t.Font =New Font("微软雅黑",9,FontStyle.Regular)

MainTable = Tables("主表")

'========================产生图表=================================
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量

Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar
Chart.ChartType2 = ChartTypeEnum.XYPlot
Chart.AxisY.Min = YMin.text  '指定Y轴的最小值
Chart.AxisY.Max =YMax.text '指定Y轴的最大值

Chart.AxisY2.Min = YMin.text  '指定Y轴的最小值
Chart.AxisY2.Max =YMax.text '指定Y轴的最大值

Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisY.Major = YMax.text*0.1
Series = Chart.SeriesList.Add() '给图表2增加一个图系
Series.FillColor = Color.DeepSkyBlue '设置条形图的填充颜色

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, i+1) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Series.DataLabelText = "{#YVAL}"

'=====================
'--------Chart.SeriesList2.Clear() '清除图表原来的图系
Chart.SeriesList2.Clear() '清除图表原来的图系
Chart.AxisY2.Major = YMax.text*0.1
Series = Chart.SeriesList2.Add() '给图表2增加一个图系
Series.FillColor = Color.Red '设置条形图的填充颜色
Series.MarkShape = MarkShapeEnum.none

Series.Length = t.Rows.Count '设置图系的长度
For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = 1000 '指定垂直坐标 (安全库存)
    'Chart.AxisX.SetValueLabel(i, t.Rows(i)("料号")) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示

 


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


加好友 发短信
等级:幼狐 帖子:151 积分:1306 威望:0 精华:0 注册:2013/5/13 13:28:00
  发帖心情 Post By:2016/5/4 14:42:00 [只看该作者]

大红袍老师,我按照你的方法进行了修改,还是不能更新。

 

后来我在打开这个窗体的命令中采用“打开窗体---关闭窗体---打开窗体”它更新了,

 

相当于多打开一次!

 

呵呵,具体也不知道什么原因!

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/4 16:14:00 [只看该作者]

 不可能,请照抄3楼代码。不会做,就上具体实例


 回到顶部